Electron collision plasma reaction rate type. More...
#include <ElectronCollisionPlasmaRate.h>
Electron collision plasma reaction rate type.
The electron collision plasma reaction rate uses the electron collision data and the electron energy distribution to calculate the reaction rate. Hagelaar and Pitchford [11] define the reaction rate coefficient (Eqn. 63) as,
\[ k = \gamma \int_0^{\infty} \epsilon \sigma F_0 d\epsilon, \]
where \( \gamma = \sqrt{2/m_e} \) (Eqn.4 in [12]), \( m_e \) [kg] is the electron mass, \( \epsilon \) [J] is the electron energy, \( \sigma \) [m2] is the reaction collision cross section, \( F_0 \) [J^(-3/2)] is the normalized electron energy distribution function, and \( k \) has the unit of [m3/s]. The collision process is treated as a bimolecular reaction and should have units of [m3/kmol/s]. Therefore the forward reaction coefficient becomes,
\[ k_f = \gamma N_A \int_0^{\infty} \epsilon \sigma F_0 d\epsilon, \]
where \( N_A \) [1/kmol] is the Avogadro's number. Since the unit of the electron energy downloaded from LXCat is in [V], the forward reaction coefficient can be written as,
\[ k_f = \sqrt{\frac{2e}{m_e}} N_A \int_0^{\infty} \epsilon_V \sigma F_0 d\epsilon_V. \]
For the convenience of calculation, the final form becomes,
\[ k_f = 0.5 \sqrt{\frac{2e}{m_e}} N_A \int_0^{\infty} \sigma F_0 d{{\epsilon_V}^2}. \]
Definition at line 89 of file ElectronCollisionPlasmaRate.h.
Public Member Functions | |
ElectronCollisionPlasmaRate (const AnyMap &node, const UnitStack &rate_units={}) | |
virtual void | setParameters (const AnyMap &node, const UnitStack &units) override |
Set parameters. | |
virtual void | getParameters (AnyMap &node) const override |
Get parameters. | |
unique_ptr< MultiRateBase > | newMultiRate () const override |
Create a rate evaluator for reactions of a particular derived type. | |
virtual const std::string | type () const override |
String identifying reaction rate specialization. | |
virtual void | setContext (const Reaction &rxn, const Kinetics &kin) override |
Set context of reaction rate evaluation. | |
double | evalFromStruct (const ElectronCollisionPlasmaData &shared_data) |
Evaluate reaction rate. | |
double | ddTScaledFromStruct (const ElectronCollisionPlasmaData &shared_data) const |
Evaluate derivative of reaction rate with respect to temperature divided by reaction rate. | |
const vector< double > & | energyLevels () const |
The value of m_energyLevels [eV]. | |
const vector< double > & | crossSections () const |
The value of m_crossSections [m2]. | |
Public Member Functions inherited from ReactionRate | |
ReactionRate (const ReactionRate &other) | |
ReactionRate & | operator= (const ReactionRate &other) |
virtual unique_ptr< MultiRateBase > | newMultiRate () const |
Create a rate evaluator for reactions of a particular derived type. | |
virtual const string | type () const =0 |
String identifying reaction rate specialization. | |
virtual const string | subType () const |
String identifying sub-type of reaction rate specialization. | |
virtual void | setParameters (const AnyMap &node, const UnitStack &units) |
Set parameters. | |
AnyMap | parameters () const |
Return the parameters such that an identical Reaction could be reconstructed using the newReaction() function. | |
const Units & | conversionUnits () const |
Get the units for converting the leading term in the reaction rate expression. | |
virtual void | setRateUnits (const UnitStack &rate_units) |
Set the units of the reaction rate expression. | |
virtual void | check (const string &equation) |
Check basic syntax and settings of reaction rate expression. | |
virtual void | validate (const string &equation, const Kinetics &kin) |
Validate the reaction rate expression. | |
size_t | rateIndex () const |
Reaction rate index within kinetics evaluator. | |
void | setRateIndex (size_t idx) |
Set reaction rate index within kinetics evaluator. | |
virtual void | setContext (const Reaction &rxn, const Kinetics &kin) |
Set context of reaction rate evaluation. | |
double | eval (double T) |
Evaluate reaction rate based on temperature. | |
double | eval (double T, double extra) |
Evaluate reaction rate based on temperature and an extra parameter. | |
double | eval (double T, const vector< double > &extra) |
Evaluate reaction rate based on temperature and an extra vector parameter. | |
bool | valid () const |
Get flag indicating whether reaction rate is set up correctly. | |
bool | compositionDependent () |
Boolean indicating whether rate has compositional dependence. | |
void | setCompositionDependence (bool comp_dep) |
Set rate compositional dependence. | |
Private Attributes | |
vector< double > | m_energyLevels |
electron energy levels [eV] | |
vector< double > | m_crossSections |
collision cross sections [m2] at m_energyLevels | |
vector< double > | m_crossSectionsInterpolated |
collision cross sections [m2] after interpolation | |
Additional Inherited Members | |
virtual void | getParameters (AnyMap &node) const |
Get parameters. | |
Protected Attributes inherited from ReactionRate | |
AnyMap | m_input |
Input data used for specific models. | |
size_t | m_rate_index = npos |
Index of reaction rate within kinetics evaluator. | |
bool | m_valid = false |
Flag indicating whether reaction rate is set up correctly. | |
bool | m_composition_dependent_rate = false |
Flag indicating composition dependent rate. | |
Units | m_conversion_units {0.} |
Units of the leading term in the reaction rate expression. | |
|
inline |
Definition at line 94 of file ElectronCollisionPlasmaRate.h.
Set parameters.
node | AnyMap object containing reaction rate specification |
units | unit definitions specific to rate information |
Reimplemented from ReactionRate.
Definition at line 49 of file ElectronCollisionPlasmaRate.cpp.
|
overridevirtual |
Get parameters.
node | AnyMap containing rate information Store the parameters of a ReactionRate needed to reconstruct an identical object. Does not include user-defined fields available in the m_input map. |
Reimplemented from ReactionRate.
Definition at line 67 of file ElectronCollisionPlasmaRate.cpp.
|
inlineoverridevirtual |
Create a rate evaluator for reactions of a particular derived type.
Derived classes usually implement this as:
where RateType
is the derived class name and DataType
is the corresponding container for parameters needed to evaluate reactions of that type.
Reimplemented from ReactionRate.
Definition at line 104 of file ElectronCollisionPlasmaRate.h.
|
inlineoverridevirtual |
String identifying reaction rate specialization.
Implements ReactionRate.
Definition at line 109 of file ElectronCollisionPlasmaRate.h.
Set context of reaction rate evaluation.
rxn | Reaction object associated with rate |
kin | Kinetics object used for rate evaluation This method allows for passing of information specific to the associated reaction when a ReactionRate object is added a MultiRate reaction evaluator. |
Reimplemented from ReactionRate.
Definition at line 106 of file ElectronCollisionPlasmaRate.cpp.
double evalFromStruct | ( | const ElectronCollisionPlasmaData & | shared_data | ) |
Evaluate reaction rate.
shared_data | data shared by all reactions of a given type |
Definition at line 73 of file ElectronCollisionPlasmaRate.cpp.
|
inline |
Evaluate derivative of reaction rate with respect to temperature divided by reaction rate.
shared_data | data shared by all reactions of a given type |
Definition at line 124 of file ElectronCollisionPlasmaRate.h.
|
inline |
The value of m_energyLevels [eV].
Definition at line 129 of file ElectronCollisionPlasmaRate.h.
|
inline |
The value of m_crossSections [m2].
Definition at line 134 of file ElectronCollisionPlasmaRate.h.
|
private |
electron energy levels [eV]
Definition at line 140 of file ElectronCollisionPlasmaRate.h.
|
private |
collision cross sections [m2] at m_energyLevels
Definition at line 143 of file ElectronCollisionPlasmaRate.h.
|
private |
collision cross sections [m2] after interpolation
Definition at line 146 of file ElectronCollisionPlasmaRate.h.