Cyclic voltammetry

EchemLab

Loading browser engine

Forward simulation

Simulate a reaction mechanism

Select a mechanism, enter the experimental and kinetic parameters, and simulate the cyclic voltammogram.

Reaction setup

Start from a familiar mechanism, then edit its species, reactions, and parameter values. The setup shown here is always the model used for simulation.

Edit species, reactions, and transport

Species

Enter the simulation concentration or surface coverage and diffusion coefficient for each species.

Reactions

Use separate forward and reverse rows for reversible homogeneous chemistry.

Custom rate-law formula reference

Formulas can use species names, declared parameters, arithmetic, powers, and exp, log, log10, sqrt, abs, min, max, sin, cos, tanh, and ifelse.

Homogeneous rates return M s⁻¹. Heterogeneous rates return mol cm⁻² s⁻¹. Formula inputs use M for solution species and mol cm⁻² for surface coverages.

Transport

Use supported-electrolyte diffusion for routine work or solve migration and diffuse charge explicitly with PNP.

Validate the reaction setup to review its equations and browser compatibility.

Experimental conditions

Numerical settings

Simulated response

Cyclic voltammogram

Plot

U.S. convention: cathodic current is positive and more negative potentials appear to the right.

Peak current
Peak potential
Comparison peak ratio
Solver time

Expected response

Select a mechanism to review the expected dependence of the voltammogram on its parameters.

Check the supporting-electrolyte approximation

Use independently measured electrolyte properties to screen whether migration and diffuse charge are small enough to omit. This is a validity check for the current simulation, not a migration-corrected model.

Parameter estimation · Step 1

Add the experiments you want to fit

Load one or more scan rates collected for the same fixed species inventory, confirm their normalization, then continue to parameter selection.

A

Import one or more voltammograms

Select several files together or return later to add another batch. Every loaded experiment is fitted simultaneously.

B

Study datasets 0 loaded

Confirm each scan rate, column mapping, unit conversion, current sign, and reference-potential shift before fitting.

No experimental files loaded yet.

Your data are processed in memory and fitted together as one study. The application does not retain uploaded files.

Parameter estimation · Step 2

Select the parameters to estimate

Estimate the unknown quantities and hold independently measured quantities at their reported values.

A

Active reaction setup and parameter vector

The editable reaction setup from the simulation page is the forward model. Choose parameters supported by the number and range of experimental datasets.

Free and fixed quantitiesChecked: estimated from the loaded voltammograms. Unchecked: held at the displayed value. Starting values and bounds are configured here, after data have been supplied.
B

Optimization

Deterministic multistart reduces dependence on a single starting guess. Review every warning before interpreting a fit.

Fit result

Parameter estimates

Estimate the selected parameters to see results.

Model selection

Discover plausible reaction networks

Compare standard EC mechanisms or chemically balanced candidates, and retain mechanisms whose predicted currents cannot be distinguished by the supplied experiments.

Each candidate is fitted through the Rust transport model and ranked with a complexity penalty. Use at least three scan rates whenever possible.

Describe every known dissolved and surface-confined species, including zero-initial-amount intermediates. Composition uses JSON element counts such as {"C":6,"H":6}. Initial values are mol/L in solution and mol/cm² on the surface.

Automatic search enumerates every admissible support when the generated library has at most the selected limit; larger spaces use the beam budget.

Generate candidates to estimate the number of fitted supports.

Start with the known species and electron-transfer steps in the active reaction setup. Choose one unresolved homogeneous reaction below. Each candidate polynomial rate is placed inside the transport model, fitted to the loaded voltammograms, and compared by its predicted current. Concentrations remain unobserved model states.

Bootstrap stability is optional and needs at least three voltammograms. It resamples complete experiments to show how often each rate term wins; 20 replicates is a useful first check but requires roughly 20 additional searches.

C

Candidate concentration inputs

Select the species that may appear in the rate law and give a representative concentration for coefficient scaling.

Optional concentration–rate regression check

If independent concentration and local-rate measurements later become available, this secondary STLSQ utility can check a proposed expression without solving the voltammetry inverse problem.

No concentration–rate table loaded.

Estimate an ideal EC′ catalytic rate from a catalytic voltammogram and its matched substrate-free catalyst trace. These analytical checks assume reversible electron transfer, pseudo-first-order substrate excess, and either a linear foot or a flat kinetic plateau; the result reports failed applicability checks instead of silently accepting them.

The two traces must share the same sampled potential grid. Use the import controls to normalize potential and current units before running this diagnostic.

Mechanism evidence

Ranked models and reaction inclusion

Run a discovery analysis to compare mechanisms.

Parameter inference

Assess uncertainty and identifiability

Calculate profile likelihoods or sample the joint posterior for a fitted parameter vector or a selected voltammetric rate-law support.

A

Profile likelihood

Pin one fitted parameter and refit the remainder.

B

Posterior sampling

Random-walk Metropolis around the fitted optimum.

Posterior sampling requires finite lower and upper bounds for every fitted parameter. Results use independent uniform priors over those declared bounds.

C

Measured fixed-input uncertainty

Refit at ± one standard uncertainty for independently measured inputs, then combine their effects with the conditional fit covariance.

No measured-input uncertainties added.

Uncertainty result

Confidence and identifiability

Complete a parameter fit or choose a ranked rate law for UQ.

Reference

Browser simulation guide

How to define, run, compare, and export solution-mechanism simulations.

1

Choose and edit the reaction setup

Load a familiar template, then edit its species, elementary steps, parameter values, or rate laws directly on the simulation page.

2

Validate and simulate

Validate the current equations, then simulate that exact editable setup. Import and export mechanism JSON when you want to preserve or share it.

3

Compare controlled variants

Save a simulated trace, change one or more parameters, and run the model again. The saved trace remains available as a user-controlled dashed comparison; set a reaction rate to zero when you want a nonreactive reference.

4

Export calculated data

Download the latest time, potential, and current arrays as CSV for plotting or analysis elsewhere. Keep the mechanism JSON with the exported trace so the calculation remains interpretable.