Forward simulation
Simulate a reaction mechanism
Select a mechanism, choose cyclic voltammetry or a potential step, and simulate the electrochemical response.
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
Choose each phase first. Solution species use concentration and diffusion; surface species use coverage and do not have a diffusion coefficient. Changing phase resets the initial amount because its units change.
Reactions
Define the species and their phases first. For each elementary step, enter its participants; EchemLab will then offer only reaction types compatible with those phases.
Adsorption, electron transfer, and custom rate-law reference
Adsorption means binding at the electrode surface (not absorption into a bulk material). Model each hypothesized elementary step explicitly:
- Adsorption first:
Ox(solution) + * → Ox_ads, followed byOx_ads + n e⁻ ⇌ Red_ads. CreateOxas a solution species and bothOx_adsandRed_adsas surface species. Use an Adsorption row, then a Surface-confined electron transfer row. - Electron transfer first:
Ox(solution) + n e⁻ ⇌ Red(solution), followed byRed(solution) + * → Red_ads. Create all three species, then use a Solution electron transfer row and an Adsorption row. - Concerted adsorption and electron transfer:
Ox(solution) + * + n e⁻ ⇌ Red_ads. Use one Concerted electron-transfer adsorption row only when binding and electron transfer are treated as the same elementary event.
The * represents a vacant surface site; do not add it as a species. EchemLab accounts for available sites through the maximum surface coverage and the Surface-site occupancy choices. The product is counted automatically; select another surface species only if it competes for the same site pool. A very fast second row can represent the fast-step limit of a sequential mechanism when that intermediate is chemically plausible, but it is not a substitute for a concerted row: the intermediate, its site occupancy, and its kinetic parameters can change the voltammogram.
Solution electron transfer connects two solution species. Surface-confined electron transfer connects two surface species. Plain adsorption and desorption each represent one direction, transfer no electron, and produce no faradaic current. Add both rows when the model requires an adsorption equilibrium. Concerted electron-transfer adsorption does produce faradaic current; its k0 is an exchange flux and requires a finite maximum surface coverage.
Interfacial mass action is available when a step contains a surface species because dissolved and adsorbed species can react chemically at the interface—for example, A_sol + B_ads → C_ads. It is irreversible, includes no electron-transfer current, and has no vacant-site factor. Use Adsorption when the intended forward step is site-limited binding.
Mass-action and custom rate laws describe chemical steps without an electron-transfer current. 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⁻¹. Interfacial rates return mol cm⁻² s⁻¹. Formula inputs use M for solution species and mol cm⁻² for surface coverages.
Electrode film
Keep surface-site occupancy separate from any optional loss or relocation of electroactive area.
Transport
Use supported-electrolyte diffusion for routine work or solve migration and diffuse charge explicitly with PNP.
Enter an integer charge for every mobile species and include all counterions. The bulk inventory must satisfy Σzᵢcᵢ = 0. PNP supplies Stern and diffuse-layer charging, so empirical Cdl and fixed-integrator controls are not used.
Experimental conditions
Numerical settings
Uses automatic fixed resolution with second-order fully implicit stepping after a BDF1 startup step. EchemLab reports the change relative to a calculation using half as many steps and spatial intervals.
Adaptation begins when the simulation starts.Simulated response
Cyclic voltammogram
Run a simulation to calculate the current for this setup.
U.S. convention: cathodic current is positive and more negative potentials appear to the right.
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.
Inside the experiment
Concentrations over time
Run a simulation to explore how the species change during the experiment.
Parameter estimation · Step 1
Add the experiments you want to fit
Load one or more cyclic voltammograms or potential-step traces collected for the same fixed species inventory, confirm their normalization, then continue to parameter selection.
Import one or more electrochemical traces
Select several files together or return later to add another batch. Every loaded experiment is fitted simultaneously.
Study datasets 0 loaded
Confirm the technique, column mapping, unit conversion, current sign, and reference-potential shift before fitting.
Parameter estimation · Step 2
Select the parameters to estimate
Estimate the unknown quantities and hold independently measured quantities at their reported values.
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.
Optimization
Deterministic multistart reduces dependence on a single starting guess. Review every warning before interpreting a fit.
Select the unknown parameters using the Estimate checkboxes above.
Fit result
Parameter estimates
Load your experiments in Fit data before comparing mechanisms.
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 initially absent intermediates. Enter the number of atoms of each element, for example Fe=1; C=6; N=6 for a hexacyanoferrate complex, and enter its charge separately. Initial values are mol/L in solution and mol/cm² on the surface.
Copy your current species, then enter their elemental compositions. Required reactions stay in every model; Candidate reactions are tested; Excluded reactions are never used. Species diffusion values here remain fixed.
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.
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.
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
Parameter inference
How well are the parameters determined?
Start with a profile likelihood, then account for measured-input uncertainty. Bayesian sampling is an advanced option and requires converged chains.
No fitted model selected. Complete a fit, then choose Analyze uncertainty.
Profile likelihood
Pin one fitted parameter and refit the remainder.
Measured fixed-input uncertainty
Refit at ± one standard uncertainty for independently measured inputs, then combine their effects with the conditional fit covariance.
Advanced: Bayesian posterior sampling
Bayesian posterior sampling · advanced
Run independent chains and check whether they agree. More samples alone may not fix poor mixing; do not report intervals while diagnostics need review.
Start with independent noise. Compare AR(1) only when fitted residuals show substantial lag-one correlation or long runs.
Parameter priors
The default is uniform in the parameter's natural units over its fitted bounds. Add a normal or log-normal prior only when it represents information obtained independently of this voltammogram; using the fitted estimate as prior information would count the data twice.
Finite fitted bounds are converted to unconstrained sampling coordinates; proposals are never clipped at a boundary. Report intervals only when R̂, effective sample sizes, and the likelihood profile are satisfactory.
Uncertainty result
Confidence and identifiability
Reference
Browser simulation guide
How to define, run, compare, and export solution-mechanism simulations.
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.
Choose the experiment and simulate
Select cyclic voltammetry or potential-step chronoamperometry, set the potentials and scan rate or hold times, then validate and simulate the editable setup. Import and export mechanism JSON when you want to preserve or share it.
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.
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.
Fit data and assess uncertainty
Upload measured time, potential, and current, confirm each experiment's conditions, and select the parameters to estimate. Inspect the fit and residuals, then use profiles or posterior sampling to assess which parameters the data constrain.