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.
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 the empirical Cdl field is ignored.
Experimental conditions
Numerical settings
Simulated response
Cyclic voltammogram
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.
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.
Import one or more voltammograms
Select several files together or return later to add another batch. Every loaded experiment is fitted simultaneously.
Study datasets 0 loaded
Confirm each scan rate, 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.
Fit result
Parameter estimates
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.
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
Assess uncertainty and identifiability
Calculate profile likelihoods or sample the joint posterior for a fitted parameter vector or a selected voltammetric rate-law support.
Profile likelihood
Pin one fitted parameter and refit the remainder.
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.
Measured fixed-input uncertainty
Refit at ± one standard uncertainty for independently measured inputs, then combine their effects with the conditional fit covariance.
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.
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.
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.