Cantera  3.1.0a2
Loading...
Searching...
No Matches

Electron collision plasma reaction rate type. More...

#include <ElectronCollisionPlasmaRate.h>

Inheritance diagram for ElectronCollisionPlasmaRate:
[legend]

Detailed Description

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 [10] 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 [11]), \( 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 convience 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}. \]

Since
New in Cantera 3.1.

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< MultiRateBasenewMultiRate () 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)
 
ReactionRateoperator= (const ReactionRate &other)
 
virtual unique_ptr< MultiRateBasenewMultiRate () 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 UnitsconversionUnits () 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.
 

Constructor & Destructor Documentation

◆ ElectronCollisionPlasmaRate()

ElectronCollisionPlasmaRate ( const AnyMap node,
const UnitStack rate_units = {} 
)
inline

Definition at line 94 of file ElectronCollisionPlasmaRate.h.

Member Function Documentation

◆ setParameters()

void setParameters ( const AnyMap node,
const UnitStack units 
)
overridevirtual

Set parameters.

Parameters
nodeAnyMap object containing reaction rate specification
unitsunit definitions specific to rate information

Reimplemented from ReactionRate.

Definition at line 49 of file ElectronCollisionPlasmaRate.cpp.

◆ getParameters()

void getParameters ( AnyMap node) const
overridevirtual

Get parameters.

Parameters
nodeAnyMap 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.

◆ newMultiRate()

unique_ptr< MultiRateBase > newMultiRate ( ) const
inlineoverridevirtual

Create a rate evaluator for reactions of a particular derived type.

Derived classes usually implement this as:

unique_ptr<MultiRateBase> newMultiRate() const override {
return make_unique<MultiRate<RateType, DataType>>();
unique_ptr< MultiRateBase > newMultiRate() const override
Create a rate evaluator for reactions of a particular derived type.

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.

◆ type()

virtual const std::string type ( ) const
inlineoverridevirtual

String identifying reaction rate specialization.

Implements ReactionRate.

Definition at line 109 of file ElectronCollisionPlasmaRate.h.

◆ setContext()

void setContext ( const Reaction rxn,
const Kinetics kin 
)
overridevirtual

Set context of reaction rate evaluation.

Parameters
rxnReaction object associated with rate
kinKinetics 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.

◆ evalFromStruct()

double evalFromStruct ( const ElectronCollisionPlasmaData shared_data)

Evaluate reaction rate.

Parameters
shared_datadata shared by all reactions of a given type

Definition at line 73 of file ElectronCollisionPlasmaRate.cpp.

◆ ddTScaledFromStruct()

double ddTScaledFromStruct ( const ElectronCollisionPlasmaData shared_data) const
inline

Evaluate derivative of reaction rate with respect to temperature divided by reaction rate.

Parameters
shared_datadata shared by all reactions of a given type

Definition at line 124 of file ElectronCollisionPlasmaRate.h.

◆ energyLevels()

const vector< double > & energyLevels ( ) const
inline

The value of m_energyLevels [eV].

Definition at line 129 of file ElectronCollisionPlasmaRate.h.

◆ crossSections()

const vector< double > & crossSections ( ) const
inline

The value of m_crossSections [m2].

Definition at line 134 of file ElectronCollisionPlasmaRate.h.

Member Data Documentation

◆ m_energyLevels

vector<double> m_energyLevels
private

electron energy levels [eV]

Definition at line 140 of file ElectronCollisionPlasmaRate.h.

◆ m_crossSections

vector<double> m_crossSections
private

collision cross sections [m2] at m_energyLevels

Definition at line 143 of file ElectronCollisionPlasmaRate.h.

◆ m_crossSectionsInterpolated

vector<double> m_crossSectionsInterpolated
private

collision cross sections [m2] after interpolation

Definition at line 146 of file ElectronCollisionPlasmaRate.h.


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