app
Charge-Injection Capacity
The CIC app measures charge delivered by a biphasic current pulse, normalizes charge by electrode area, and reports voltage-transient polarization metrics at a controlled delay after each pulse phase.
Requirements And Launch
The app requires a chrono DTA curve with valid T, Vf, and Im columns.
labkit_CIC_app
Inputs And Batch Behavior
Add one or more chrono .DTA files. The selected row is decoded for immediate preview; batch calculation is performed with the same analysis settings when results are exported. This avoids repeatedly decoding every large file while the user is only switching previews. Saved projects preserve file order and portable source identity through removal, later additions, and reopen.
Electrode area comes from a positive UI override when supplied, otherwise from the parsed DTA metadata. Without a valid positive area, charge in coulombs can still be calculated but area-normalized CIC fields are NaN.
Basic Workflow
- Add chrono DTA files and select a representative file.
- Choose a water-window preset or set custom cathodic/anodic limits.
- Choose pulse detection, post-pulse delay, electrode area, phase mode, and output unit.
- Inspect detected phases, sampling markers, and voltage/current plots.
- Review the current-file summary.
- Export the batch result CSV.
Analysis Parameters
| Parameter | Default | Legal choices or unit |
|---|---|---|
| Preset | Pt (-0.6 to 0.8 V) | Pt, PEDOT:PSS, or Custom |
| Cathodic / anodic limits | -0.6 / 0.8 | volts |
| Delay | 10 | microseconds after each phase end |
| Pulse detection | Metadata first, then auto | metadata fallback, metadata only, or current-only auto |
| CIC phase | Total biphasic | Cathodic phase, Anodic phase, Total biphasic |
| CIC unit | mC/cm^2 | mC/cm^2 or uC/cm^2 |
| Use measured current | on | integrate measured Im; otherwise use detected pulse estimates |
Plot markers, limit lines, shading, axes, and grid choices affect presentation only. Analysis controls apply to the entire exported batch.
Calculation Semantics
The app removes samples where time, voltage, or current is not finite and requires at least five valid points. labkit.dta.detectPulses identifies the cathodic phase, interpulse gap, anodic phase, and surrounding baseline windows.
Measured-current mode integrates each detected current phase over time. The phase charges Qc_C and Qa_C are positive magnitudes; total charge is their sum. With area A in cm^2:
CIC_mC_cm2 = 1000 * Q_C / A_cm2
Maximum cathodic and anodic polarization potentials are interpolated at phase end + delay. The app does not extrapolate: if either requested time is outside the recorded range, that file fails with an explicit delay message. Baseline candidates are selected from pre-pulse, interpulse, and post-pulse windows, with documented fallbacks recorded in the result struct.
Water-window status compares the calculated polarization potentials with the selected cathodic and anodic limits. The limits are an app policy and do not change the integrated charge.
Output Schema
The batch CSV contains source identity, area, delay, pulse-detection method, phase timing, measured/estimated current information, charge fields, area-normalized CIC fields, polarization and baseline values, water-window status, and a per-file result message. Area_cm2 and Delay_us are exported so normalization and sample timing remain auditable.
A .labkit.json result manifest accompanies the CSV and records source references, parameters, and the output role.
Use Without The GUI
[item, status] = labkit.dta.loadFile("pulse.DTA", "chrono");
assert(status.ok, status.message);
options = struct( ...
"delay_s", 10e-6, ...
"cathLimit", -0.6, ...
"anodLimit", 0.8, ...
"area_cm2", 0.05, ...
"pulseMode", "Metadata first, then auto", ...
"usedMeasuredCurrent", true);
result = cic.analysisRun.computeCIC(item, options);
assert(result.ok, result.message);
Errors And Limitations
- Missing
T,Vf, orIm, fewer than five valid samples, or failed pulse detection returnsok=falsewith a message. - A delay outside the recorded time range fails instead of extrapolating.
- Area-normalized values require a positive area; invalid area is not replaced by an arbitrary default.
- CIC results depend on pulse detection, baseline selection, sampling rate, electrode area, and whether measured or estimated current is used.
Related Topics
Functions And API
Open a function for exact MATLAB syntax, arguments, outputs, behavior, and source.
| Function | Purpose |
|---|---|
cic.analysisRun.computeCIC | Calculate charge-injection and voltage-transient metrics. |
Change history
- 2026-07-20 - App actions require explanatory hover helpfeat | compatible
- 2026-07-19 - App SDK explicit contract replaces the retired UI runtimerefactor | breaking
- 2026-07-17 - Explicit layout action contractrefactor | compatible
- 2026-07-16 - Electrochemistry source-field validation boundaryfix | compatible
- 2026-07-16 - Runtime-owned project shape validationrefactor | compatible
- 2026-07-16 - CIC uses Runtime-owned source and workflow mechanicsrefactor | compatible
- 2026-07-16 - Electrochem Apps stop reading portable referencesrefactor | compatible
- 2026-07-16 - CIC consolidates its project contract without losing lazy loadingrefactor | compatible
- 2026-07-16 - UI 7 public runtime boundaryrefactor | breaking
- 2026-07-15 - Runtime V2 lifecycle ownership across the app fleetrefactor | breaking
- 2026-07-13 - Consistent electrochemistry batch analysisfix | compatible
- 2026-07-06 - UI 5 facade redesign, app migration, and plot refreshrefactor | breaking
- 2026-07-03 - CSC export and viewport policyfeat | compatible
- 2026-07-03 - UI groups migrationrefactor | compatible
- 2026-07-03 - App file-selection and electrochem control fixesfix | compatible
- 2026-07-03 - Declarative app runtimerefactor | compatible
- 2026-07-01 - Debug sample packsfeat | compatible
- 2026-06-30 - App alerts through UI facadefeat | compatible
- 2026-06-24 - File-panel migrationrefactor | breaking
- 2026-06-23 - Version metadata baselinefeat | compatible