Mechanisms
Module for semi-integration simulation of cyclic voltammetry (CV) of one- and two-electron processes.
- Algorithm Reference:
[1] Oldham, K. B.; Myland, J. C. “Modelling cyclic voltammetry without digital simulation.” Electrochimica Acta, 56, 2011, 10612-10625.
- class src.cvsim.mechanisms.CyclicVoltammetryScheme(start_potential: float, switch_potential: float, reduction_potential: float, scan_rate: float, c_bulk: float, diffusion_reactant: float, diffusion_product: float, step_size: float = 1.0, disk_radius: float = 1.5, temperature: float = 298.0)[source]
A scheme for a simulated cyclic voltammogram on a disk macro-electrode.
- Parameters:
start_potential (float) – Starting potential of scan (V vs. reference).
switch_potential (float) – Switching potential of scan (V vs. reference).
reduction_potential (float) – Reduction potential of the one-electron transfer process (V vs. reference).
scan_rate (float) – Potential sweep rate (V/s).
c_bulk (float) – Bulk concentration of redox species (mM or mol/m^3).
diffusion_reactant (float) – Diffusion coefficient of reactant (cm^2/s).
diffusion_product (float) – Diffusion coefficient of product (cm^2/s).
step_size (float) – Voltage increment during CV scan (mV). Default is 1.0 mV, a typical potentiostat default.
disk_radius (float) – Radius of disk macro-electrode (mm). Default is 1.5 mm, a typical working electrode.
temperature (float) – Temperature (K). Default is 298.0 K (24.85C).
- class src.cvsim.mechanisms.E_rev(start_potential: float, switch_potential: float, reduction_potential: float, scan_rate: float, c_bulk: float, diffusion_reactant: float, diffusion_product: float, step_size: float = 1.0, disk_radius: float = 1.5, temperature: float = 298.0)[source]
Provides a current-potential profile for a reversible (Nernstian) one-electron transfer mechanism. This is equation (7:7) from [1].
- Parameters:
start_potential (float) – Starting potential of scan (V vs. reference).
switch_potential (float) – Switching potential of scan (V vs. reference).
reduction_potential (float) – Reduction potential of the one-electron transfer process (V vs. reference).
scan_rate (float) – Potential sweep rate (V/s).
c_bulk (float) – Bulk concentration of redox species (mM or mol/m^3).
diffusion_reactant (float) – Diffusion coefficient of reactant (cm^2/s).
diffusion_product (float) – Diffusion coefficient of product (cm^2/s).
step_size (float) – Voltage increment during CV scan (mV). Default is 1.0 mV, a typical potentiostat default.
disk_radius (float) – Radius of disk macro-electrode (mm). Default is 1.5 mm, a typical working electrode.
temperature (float) – Temperature (K). Default is 298.0 K (24.85C).
- class src.cvsim.mechanisms.E_q(start_potential: float, switch_potential: float, reduction_potential: float, scan_rate: float, c_bulk: float, diffusion_reactant: float, diffusion_product: float, alpha: float, k0: float, step_size: float = 1.0, disk_radius: float = 1.5, temperature: float = 298.0)[source]
Provides a current-potential profile for a quasi-reversible one-electron transfer mechanism. This is equation (8:3) from [1].
- Parameters:
start_potential (float) – Starting potential of scan (V vs. reference).
switch_potential (float) – Switching potential of scan (V vs. reference).
reduction_potential (float) – Reduction potential of the one-electron transfer process (V vs. reference).
scan_rate (float) – Potential sweep rate (V/s).
c_bulk (float) – Bulk concentration of redox species (mM or mol/m^3).
diffusion_reactant (float) – Diffusion coefficient of reactant (cm^2/s).
diffusion_product (float) – Diffusion coefficient of product (cm^2/s).
alpha (float) – Charge transfer coefficient (no units).
k0 (float) – Standard electrochemical rate constant (cm/s).
step_size (float) – Voltage increment during CV scan (mV). Default is 1.0 mV, a typical potentiostat default.
disk_radius (float) – Radius of disk macro-electrode (mm). Default is 1.5 mm, a typical working electrode.
temperature (float) – Temperature (K). Default is 298.0 K (24.85C).
- class src.cvsim.mechanisms.E_qC(start_potential: float, switch_potential: float, reduction_potential: float, scan_rate: float, c_bulk: float, diffusion_reactant: float, diffusion_product: float, alpha: float, k0: float, k_forward: float, k_backward: float, step_size: float = 1.0, disk_radius: float = 1.5, temperature: float = 298.0)[source]
Provides a current-potential profile for a quasi-reversible one-electron transfer, followed by a reversible first order homogeneous chemical transformation mechanism. This is equation (10:4) from [1].
- Parameters:
start_potential (float) – Starting potential of scan (V vs. reference).
switch_potential (float) – Switching potential of scan (V vs. reference).
reduction_potential (float) – Reduction potential of the one-electron transfer process (V vs. reference).
scan_rate (float) – Potential sweep rate (V/s).
c_bulk (float) – Bulk concentration of redox species (mM or mol/m^3).
diffusion_reactant (float) – Diffusion coefficient of reactant (cm^2/s).
diffusion_product (float) – Diffusion coefficient of product (cm^2/s).
alpha (float) – Charge transfer coefficient (no units).
k0 (float) – Standard electrochemical rate constant (cm/s).
k_forward (float) – First order forward chemical rate constant (1/s).
k_backward (float) – First order backward chemical rate constant (1/s).
step_size (float) – Voltage increment during CV scan (mV). Default is 1.0 mV, a typical potentiostat default.
disk_radius (float) – Radius of disk macro-electrode (mm). Default is 1.5 mm, a typical working electrode.
temperature (float) – Temperature (K). Default is 298.0 K (24.85C).
- simulate() tuple[ndarray, ndarray][source]
Simulates the CV for a quasi-reversible one-electron transfer followed by a reversible first order homogeneous chemical transformation mechanism.
- Returns:
potential (np.ndarray) – Potential values in full CV sweep.
current (np.ndarray) – Current values in full CV sweep.
- class src.cvsim.mechanisms.EE(start_potential: float, switch_potential: float, reduction_potential: float, reduction_potential2: float, scan_rate: float, c_bulk: float, diffusion_reactant: float, diffusion_intermediate: float, diffusion_product: float, alpha: float, alpha2: float, k0: float, k0_2: float, step_size: float = 1.0, disk_radius: float = 1.5, temperature: float = 298.0)[source]
Provides a current-potential profile for two successive one-electron quasi-reversible transfers. This is equation (12:19) from [1].
- Parameters:
start_potential (float) – Starting potential of scan (V vs. reference).
switch_potential (float) – Switching potential of scan (V vs. reference).
reduction_potential (float) – Reduction potential of the first one-electron transfer process (V vs. reference).
reduction_potential2 (float) – Reduction potential of the second one-electron transfer process (V vs. reference).
scan_rate (float) – Potential sweep rate (V/s).
c_bulk (float) – Bulk concentration of redox species (mM or mol/m^3).
diffusion_reactant (float) – Diffusion coefficient of reactant (cm^2/s).
diffusion_intermediate (float) – Diffusion coefficient of intermediate (cm^2/s).
diffusion_product (float) – Diffusion coefficient of product (cm^2/s).
alpha (float) – Charge transfer coefficient of first redox process (no units).
alpha2 (float) – Charge transfer coefficient of second redox process (no units).
k0 (float) – Standard electrochemical rate constant of first redox process (cm/s).
k0_2 (float) – Standard electrochemical rate constant of second redox process (cm/s).
step_size (float) – Voltage increment during CV scan (mV). Default is 1.0 mV, a typical potentiostat default.
disk_radius (float) – Radius of disk macro-electrode (mm). Default is 1.5 mm, a typical working electrode.
temperature (float) – Temperature (K). Default is 298.0 K (24.85C).
- class src.cvsim.mechanisms.SquareScheme(start_potential: float, switch_potential: float, reduction_potential: float, reduction_potential2: float, scan_rate: float, c_bulk: float, diffusion_reactant: float, diffusion_product: float, alpha: float, alpha2: float, k0: float, k0_2: float, k_forward: float, k_backward: float, k_forward2: float, k_backward2: float, step_size: float = 1.0, disk_radius: float = 1.5, temperature: float = 298.0)[source]
Provides a current-potential profile for two quasi-reversible, one-electron transfers of homogeneously interconverting reactants (Square Scheme). This is equations (14:14 and 14:15) from [1].
- Parameters:
start_potential (float) – Starting potential of scan (V vs. reference).
switch_potential (float) – Switching potential of scan (V vs. reference).
reduction_potential (float) – Reduction potential of the first one-electron transfer process (V vs. reference).
reduction_potential2 (float) – Reduction potential of the second one-electron transfer process (V vs. reference).
scan_rate (float) – Potential sweep rate (V/s).
c_bulk (float) – Bulk concentration of redox species (mM or mol/m^3).
diffusion_reactant (float) – Diffusion coefficient of reactant (cm^2/s).
diffusion_product (float) – Diffusion coefficient of product (cm^2/s).
alpha (float) – Charge transfer coefficient of first redox process (no units).
alpha2 (float) – Charge transfer coefficient of second redox process (no units).
k0 (float) – Standard electrochemical rate constant of first redox process (cm/s).
k0_2 (float) – Standard electrochemical rate constant of second redox process (cm/s).
k_forward (float) – First order forward chemical rate constant for first redox species (1/s).
k_backward (float) – First order backward chemical rate constant for first redox species (1/s).
k_forward2 (float) – First order forward chemical rate constant for second redox species (1/s).
k_backward2 (float) – First order backward chemical rate constant for second redox species (1/s).
step_size (float) – Voltage increment during CV scan (mV). Default is 1.0 mV, a typical potentiostat default.
disk_radius (float) – Radius of disk macro-electrode (mm). Default is 1.5 mm, a typical working electrode.
temperature (float) – Temperature (K). Default is 298.0 K (24.85C).