pub struct ButlerVolmer {
pub i0: f64,
pub alpha_a: f64,
pub alpha_c: f64,
pub temperature: f64,
}Expand description
Butler-Volmer electrode kinetics.
Models the current–overpotential relationship:
i = i₀ · [exp(αa · F · η / RT) − exp(−αc · F · η / RT)]
Fields§
§i0: f64Exchange current density i₀ [A/m²].
alpha_a: f64Anodic charge-transfer coefficient αa (dimensionless, typically 0.5).
alpha_c: f64Cathodic charge-transfer coefficient αc (dimensionless, typically 0.5).
temperature: f64Absolute temperature T [K].
Implementations§
Source§impl ButlerVolmer
impl ButlerVolmer
Sourcepub fn new(i0: f64, alpha_a: f64, alpha_c: f64, temperature: f64) -> Self
pub fn new(i0: f64, alpha_a: f64, alpha_c: f64, temperature: f64) -> Self
Create a new Butler-Volmer model.
Sourcepub fn current_density(&self, eta: f64) -> f64
pub fn current_density(&self, eta: f64) -> f64
Current density [A/m²] at overpotential eta [V].
Sourcepub fn charge_transfer_resistance(&self) -> f64
pub fn charge_transfer_resistance(&self) -> f64
Linearised charge-transfer resistance [Ω·m²] near equilibrium (η → 0).
Rct = RT / [i₀ · (αa + αc) · F]
Sourcepub fn tafel_slope_anodic(&self) -> f64
pub fn tafel_slope_anodic(&self) -> f64
Anodic Tafel slope [V/decade].
ba = ln(10) · RT / (αa · F)
Sourcepub fn tafel_slope_cathodic(&self) -> f64
pub fn tafel_slope_cathodic(&self) -> f64
Cathodic Tafel slope [V/decade].
bc = ln(10) · RT / (αc · F)
Sourcepub fn tafel_overpotential(&self, i_target: f64) -> f64
pub fn tafel_overpotential(&self, i_target: f64) -> f64
Overpotential [V] for a target current density using the Tafel approximation.
Valid for |η| >> RT/F (large overpotential limit).
Sign follows the input i_target: positive → anodic branch.
Trait Implementations§
Source§impl Clone for ButlerVolmer
impl Clone for ButlerVolmer
Source§fn clone(&self) -> ButlerVolmer
fn clone(&self) -> ButlerVolmer
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more