Skip to main content

A package for cyclic voltammetry simulation via the semi-analytical method

Project description

Documentation Status codecov Checked with mypy linting: pylint

CVsim

cvsim is a Python package for cyclic voltammogram (CV) simulation via a semi-analytical method developed by Oldham and Myland1. It is valid for CV experiments performed on disk macroelectrodes, and uses a semi-integration algorithm. In the limit of infinitely small potential steps, this algorithm is an exact solution. Due to the precision of standard potentiostats, simulations that use a potential step of 1-5 mV typically provide a reasonable accuracy-computing time trade-off, where accuracy sanity checks (e.g. Randles-Sevcik relationship for Er and Eq mechanisms) have been performed.

Currently available mechanisms:

  • One-electron process: Er , Eq , and EqC
  • Two-electron process: EqEq and Square scheme

Installation

cvsim can be installed from PyPI using pip:

pip install cvsim

See Getting started with cvsim.py for instructions on simulating CVs.

Dependencies

cvsim requires:

  • Python (>=3.10)
  • SciPy

Package Structure

  • mechanisms.py: Specifies one-/two-electron process mechanisms to be simulated.
  • fit_curve.py: Performs fitting of experimental CV data according to a desired mechanism.

Example

To simulate a reversible (Nernstian) CV:

from cvsim.mechanisms import E_rev

potential, current = E_rev(
    start_potential=0.3,       # V vs. reference
    switch_potential=-0.5,     # V vs. reference
    reduction_potential=-0.1,  # V vs. reference
    scan_rate=0.1,             # V/s
    c_bulk=1.0,                # mM (mol/m^3)
    diffusion_reactant=1e-6,   # cm^2/s
    diffusion_product=2e-6,    # cm^2/s
).simulate()

Input Parameters

  • Estart/Eswitch/Eo' = V vs ref.
  • Scanrate = V/s
  • Active species concentration = mM (mol/m3)
  • Diffusion coefficients = cm2/s

Optional Parameters

  • Potential step size = mV
  • Disk radius = mm
  • Temperature = K

and if needed

  • Standard rate constant, ko = cm/s
  • 1st order chemical rate constants (kforward, kbackward) = s-1

[1] Oldham, K. B.; Myland, J. C. Modelling cyclic voltammetry without digital simulation, Electrochimica Acta, 56, 2011, 10612-10625.

*The schemes for CEr , catalytic C'Eq , and ErCEr need development, PRs welcome!

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cvsim-1.0.0.tar.gz (262.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cvsim-1.0.0-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file cvsim-1.0.0.tar.gz.

File metadata

  • Download URL: cvsim-1.0.0.tar.gz
  • Upload date:
  • Size: 262.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.4

File hashes

Hashes for cvsim-1.0.0.tar.gz
Algorithm Hash digest
SHA256 8597ea604ea69943116746c749f53246ecac15a347032a23ed5fe99afc633efd
MD5 e050e3c41dbfaaf82858898dd26002ee
BLAKE2b-256 340be424bc7c0c9de574c62fac7dae04930b38ed5a7a209c16ed12791221b7e1

See more details on using hashes here.

File details

Details for the file cvsim-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: cvsim-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.4

File hashes

Hashes for cvsim-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1f39295a76361a50aa02bc24d92940db79b710395b51116d7f5c5618301f64b5
MD5 cdaf92c65272754c029e9ad3746da90c
BLAKE2b-256 11fe9cceb606e746a4a1a4b0cb0d608972b5b8c7ffdf9b48e8e3ca911e529df9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page