ASL 0.1.7
Advanced Simulation Library
Loading...
Searching...
No Matches
asl::FDBVKinetics Class Reference

Numerical method which computes electrode reactions. More...

#include <aslFDElChemKinetics.h>

Inheritance diagram for asl::FDBVKinetics:
Collaboration diagram for asl::FDBVKinetics:

Public Types

typedef SPDataWithGhostNodesACLData Data
typedef SPAbstractDataWithGhostNodes Field
typedef acl::VectorOfElements Param
typedef SPDataWithGhostNodesACLData Data
typedef SPAbstractDataWithGhostNodes Field
typedef acl::VectorOfElements Param
Public Types inherited from asl::SingleKernelMapNM
typedef SPAbstractDataWithGhostNodes Field
typedef SPAbstractDataWithGhostNodes Field

Public Member Functions

 FDBVKinetics (Data a0, double n0, Data aI, double nI, Data phiS, Field phi, const Param &j0, const Param &beta, double n)
void setElectricFieldSource (Field phi)
Field getElectricFieldSource () const
DatagetAI (unsigned int i=0)
void addAI (Data ai, double ni)
void executeJ ()
 FDBVKinetics (Data a0, double n0, Data aI, double nI, Data phiS, Field phi, const Param &j0, const Param &beta, double n)
void setElectricFieldSource (Field phi)
Field getElectricFieldSource () const
DatagetAI (unsigned int i=0)
void addAI (Data ai, double ni)
void executeJ ()
Public Member Functions inherited from asl::SingleKernelMapNM
void setMap (Field map)
 ~SingleKernelMapNM ()
void setMap (Field map)
 ~SingleKernelMapNM ()
Public Member Functions inherited from asl::SingleKernelNM
virtual void execute ()
 Executes the numerical procedure.
virtual void init ()
 Builds the necesery internal data and kernels.
virtual ~SingleKernelNM ()
virtual void execute ()
 Executes the numerical procedure.
virtual void init ()
 Builds the necesery internal data and kernels.
virtual ~SingleKernelNM ()
Public Member Functions inherited from asl::NumMethod
virtual ~NumMethod ()
virtual ~NumMethod ()

Additional Inherited Members

Protected Member Functions inherited from asl::SingleKernelMapNM
 SingleKernelMapNM (const acl::KernelConfiguration &kernelCongig)
 SingleKernelMapNM (Field map, const acl::KernelConfiguration &kernelCongig)
void initMapInfrastructure (acl::ExpressionContainer &k)
 SingleKernelMapNM (const acl::KernelConfiguration &kernelCongig)
 SingleKernelMapNM (Field map, const acl::KernelConfiguration &kernelCongig)
void initMapInfrastructure (acl::ExpressionContainer &k)
Protected Member Functions inherited from asl::SingleKernelNM
virtual void preProcessing ()
 the function executed before kernel->compute()
virtual void postProcessing ()
 the function executed after kernel->compute()
 SingleKernelNM (const acl::KernelConfiguration &kernelCongig)
virtual void preProcessing ()
 the function executed before kernel->compute()
virtual void postProcessing ()
 the function executed after kernel->compute()
 SingleKernelNM (const acl::KernelConfiguration &kernelCongig)
Protected Attributes inherited from asl::SingleKernelNM
acl::SPKernel kernel

Detailed Description

Numerical method which computes electrode reactions.

!!!!!!!!!!!!need corrections

Description of an electrochemical kinetic reaction on an electrode:

\[ \ce{A <-> A^{n+} + n e-} \]

The reaction kinetics is described by the Butler-Volmer equation:

\[ j = j_0 c_A \cdot \left( e^{\frac { \alpha_a nF \eta} {RT}} - e^{ - { \frac { \alpha_c nF \eta} {RT}} } \right), \]

where

  • \( j_0 \) is an exchange current density, \( A/m^2 \), note the algorithm assumes \( mol/m^2/s \)
  • \( T \) is absolute temperature, \(K\)
  • \( n \) is number of electrons involved in the electrode reaction
  • \( F \) is the Faraday constant, \( 9.64853399 \cdot 10^4 C mol^{-1} \)
  • \( R \) is universal gas constant, \( 8.3144621 J K^{-1} mol^{-1} \)
  • \(\alpha_c\) is so-called cathodic charge transfer coefficient
  • \(\alpha_a\) is so-called anodic charge transfer coefficient, dimensionless
  • \(\eta\) is activation overpotential defined as: \(\eta = \phi - \phi_{eq}\)
  • \(E\) is electrode potential, \( V \)
  • \(E_{eq}\) equilibrium potential, \( V \)
  • \(c_A\) concentration of the component \(\ce{A}\)

The equation describes chemical reaction namely it can be used together with an appropriate transport equations and equation for the elecrostatic potential:

\[ c_A^R = c_A - j \]

\[ c_{A^{n+}}^R = c_{A^{n+}} + j \]

\[ \vec\nabla \kappa \vec\nabla\phi + S_\phi = 0 \]

class parameters are related to the quation ones as follows

Parameters
a0molar concentration of the component before reaction
aImolar concentration of the ionized component
efSPhisource term in the equation for electrostatic potential
phielectrostatic potential, \( \phi \)
j0corresponds to \( j_0 \), note it should have the same units as concentrations
phi0corresponds to \( \phi_{eq} \)
alphaAcorresponds to \( \frac { \alpha_a F} {RT} \)
alphaCcorresponds to \( \frac { \alpha_c F} {RT} \)
ncorresponds to \( n \)

Definition at line 88 of file aslFDElChemKinetics.h.

Member Typedef Documentation

◆ Data [1/2]

◆ Data [2/2]

◆ Field [1/2]

◆ Field [2/2]

◆ Param [1/2]

◆ Param [2/2]

Constructor & Destructor Documentation

◆ FDBVKinetics() [1/2]

asl::FDBVKinetics::FDBVKinetics ( Data a0,
double n0,
Data aI,
double nI,
Data phiS,
Field phi,
const Param & j0,
const Param & beta,
double n )

◆ FDBVKinetics() [2/2]

asl::FDBVKinetics::FDBVKinetics ( Data a0,
double n0,
Data aI,
double nI,
Data phiS,
Field phi,
const Param & j0,
const Param & beta,
double n )

Member Function Documentation

◆ addAI() [1/2]

void asl::FDBVKinetics::addAI ( Data ai,
double ni )

◆ addAI() [2/2]

void asl::FDBVKinetics::addAI ( Data ai,
double ni )

◆ executeJ() [1/2]

void asl::FDBVKinetics::executeJ ( )

◆ executeJ() [2/2]

void asl::FDBVKinetics::executeJ ( )

◆ getAI() [1/2]

FDBVKinetics::Data & asl::FDBVKinetics::getAI ( unsigned int i = 0)
inline

Definition at line 141 of file aslFDElChemKinetics.h.

◆ getAI() [2/2]

Data & asl::FDBVKinetics::getAI ( unsigned int i = 0)
inline

◆ getElectricFieldSource() [1/2]

Field asl::FDBVKinetics::getElectricFieldSource ( ) const

◆ getElectricFieldSource() [2/2]

Field asl::FDBVKinetics::getElectricFieldSource ( ) const

◆ setElectricFieldSource() [1/2]

void asl::FDBVKinetics::setElectricFieldSource ( Field phi)

◆ setElectricFieldSource() [2/2]

void asl::FDBVKinetics::setElectricFieldSource ( Field phi)

The documentation for this class was generated from the following files: