Cantera
Loading...
Searching...
No Matches

Two temperature plasma reaction rate type depends on both gas temperature and electron temperature. More...

#include <TwoTempPlasmaRate.h>

Inheritance diagram for TwoTempPlasmaRate:
[legend]

Detailed Description

Two temperature plasma reaction rate type depends on both gas temperature and electron temperature.

The form of the two temperature plasma reaction rate coefficient is similar to an Arrhenius reaction rate coefficient. The temperature exponent (b) is applied to the electron temperature instead. In addition, the exponential term with activation energy for electron is included.

\[ k_f = A T^{b_g} T_e^b \exp\left(-\frac{E_{a,g}}{RT}\right) \exp\left(\frac{E_{a,e}(T_e - T)}{R T T_e}\right) \exp\left(-\frac{T}{T_\mathrm{inv}}\right) \]

where \( T_e \) is the electron temperature, \( E_{a,g} \) is the activation energy for gas, and \( E_{a,e} \) is the activation energy for electron, see Kossyi, et al. [25]. The Kossyi parameterization is generalized by the addition of two optional terms, the optional gas temperature exponent \( b_g \) (defaulting to 0) and the optional temperature scale \( T_\mathrm{inv} \) [4]. The term \( \exp(-T/T_\mathrm{inv}) \) is active only if a value is provided for \( T_\mathrm{inv} \).

Definition at line 67 of file TwoTempPlasmaRate.h.

Public Member Functions

 TwoTempPlasmaRate (double A, double b, double Ea=0.0, double EE=0.0, double bg=0.0, double Tinv=0.0)
 Constructor.
 TwoTempPlasmaRate (const AnyMap &node, const UnitStack &rate_units={})
 Constructor based on an AnyMap object instead of all parameters directly.
void setParameters (const AnyMap &node, const UnitStack &rate_units) override
 Set parameters from an AnyMap object.
unique_ptr< MultiRateBasenewMultiRate () const override
 Creates a new two-temperature-plasma reaction.
const string type () const override
 Returns the reaction type.
void setContext (const Reaction &rxn, const Kinetics &kin) override
 Check that the reaction does not have the 'reversible: true' attribute.
double evalFromStruct (const TwoTempPlasmaData &shared_data) const
 Evaluates reaction rate.
double ddTScaledFromStruct (const TwoTempPlasmaData &shared_data) const
 Evaluate derivative of reaction rate with respect to temperature divided by reaction rate.
double activationElectronEnergy () const
 Return the electron activation energy Ea [J/kmol].
Public Member Functions inherited from ArrheniusBase
 ArrheniusBase ()
 Default constructor.
 ArrheniusBase (double A, double b, double Ea)
 Constructor.
 ArrheniusBase (const AnyValue &rate, const UnitSystem &units, const UnitStack &rate_units)
 Constructor based on AnyValue content.
 ArrheniusBase (const AnyMap &node, const UnitStack &rate_units={})
void setRateParameters (const AnyValue &rate, const UnitSystem &units, const UnitStack &rate_units)
 Perform object setup based on AnyValue node information.
void getRateParameters (AnyMap &node) const
 Get Arrhenius parameters used to populate the rate-coefficient or equivalent field.
void check (const string &equation) override
 Check rate expression.
void validate (const string &equation, const Kinetics &kin) override
 Validate the reaction rate expression.
virtual double preExponentialFactor () const
 Return the pre-exponential factor A (in m, kmol, s to powers depending on the reaction order).
virtual double temperatureExponent () const
 Return the temperature exponent b.
virtual double activationEnergy () const
 Return the activation energy Ea [J/kmol] The value corresponds to the constant specified by input parameters;.
double order () const
 Return reaction order associated with the reaction rate.
void setRateUnits (const UnitStack &rate_units) override
 Set units of the reaction rate expression.
bool allowNegativePreExponentialFactor () const
 Get flag indicating whether negative A values are permitted.
void setAllowNegativePreExponentialFactor (bool value)
 Set flag indicating whether negative A values are permitted.
Public Member Functions inherited from ReactionRate
 ReactionRate (const ReactionRate &other)
ReactionRate & operator= (const ReactionRate &other)
virtual const string subType () const
 String identifying sub-type of reaction rate specialization.
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.
size_t rateIndex () const
 Reaction rate index within kinetics evaluator.
void setRateIndex (size_t idx)
 Set reaction rate index within kinetics evaluator.
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, span< const 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.

Protected Member Functions

void getParameters (AnyMap &node) const override
 Get parameters.

Protected Attributes

double m_bg = 0.0
 Gas temperature exponent.
double m_recip_Tinv = 0.0
 Reciprocate of the temperature scale for the optional term \( \exp(-T/T_\mathrm{inv}) \).
Protected Attributes inherited from ArrheniusBase
bool m_negativeA_ok = false
 Permissible negative A values.
double m_A = NAN
 Pre-exponential factor.
double m_b = NAN
 Temperature exponent.
double m_Ea_R = 0.
 Activation energy (in temperature units).
double m_E4_R = 0.
 Optional 4th energy parameter (in temperature units).
double m_logA = NAN
 Logarithm of pre-exponential factor.
double m_order = NAN
 Reaction order.
string m_A_str = "A"
 The string for the pre-exponential factor.
string m_b_str = "b"
 The string for temperature exponent.
string m_Ea_str = "Ea"
 The string for activation energy.
string m_E4_str = ""
 The string for an optional 4th parameter.
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

◆ TwoTempPlasmaRate() [1/3]

TwoTempPlasmaRate ( )

Definition at line 48 of file TwoTempPlasmaRate.cpp.

◆ TwoTempPlasmaRate() [2/3]

TwoTempPlasmaRate ( double A,
double b,
double Ea = 0.0,
double EE = 0.0,
double bg = 0.0,
double Tinv = 0.0 )

Constructor.

Parameters
APre-exponential factor. The unit system is (kmol, m, s); actual units depend on the reaction order and the dimensionality (surface or bulk).
bElectron temperature exponent (non-dimensional).
EaActivation energy in energy units [J/kmol]. Defaults to 0.
EEActivation electron energy in energy units [J/kmol]. Defaults to 0.
bgOptional. Gas temperature exponent (non-dimensional). Defaults to 0.
TinvOptional. Temperature scale for the term \( \exp(-T/T_\mathrm{inv}) \) [K]. If zero, this term is omitted. Defaults to 0.

Definition at line 54 of file TwoTempPlasmaRate.cpp.

◆ TwoTempPlasmaRate() [3/3]

TwoTempPlasmaRate ( const AnyMap & node,
const UnitStack & rate_units = {} )

Constructor based on an AnyMap object instead of all parameters directly.

Definition at line 67 of file TwoTempPlasmaRate.cpp.

Member Function Documentation

◆ setParameters()

void setParameters ( const AnyMap & node,
const UnitStack & rate_units )
overridevirtual

Set parameters from an AnyMap object.

Reimplemented from ArrheniusBase.

Definition at line 94 of file TwoTempPlasmaRate.cpp.

◆ newMultiRate()

unique_ptr< MultiRateBase > newMultiRate ( ) const
inlineoverridevirtual

Creates a new two-temperature-plasma reaction.

Reimplemented from ReactionRate.

Definition at line 94 of file TwoTempPlasmaRate.h.

◆ type()

const string type ( ) const
inlineoverridevirtual

Returns the reaction type.

Implements ReactionRate.

Definition at line 99 of file TwoTempPlasmaRate.h.

◆ setContext()

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

Check that the reaction does not have the 'reversible: true' attribute.

Reimplemented from ReactionRate.

Definition at line 163 of file TwoTempPlasmaRate.cpp.

◆ evalFromStruct()

double evalFromStruct ( const TwoTempPlasmaData & shared_data) const
inline

Evaluates reaction rate.

Parameters
shared_datadata shared by all reactions of a given type.

Definition at line 110 of file TwoTempPlasmaRate.h.

◆ ddTScaledFromStruct()

double ddTScaledFromStruct ( const TwoTempPlasmaData & shared_data) const

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

This method does not consider changes of electron temperature. A corresponding warning is raised.

Parameters
shared_datadata shared by all reactions of a given type.

Definition at line 155 of file TwoTempPlasmaRate.cpp.

◆ activationElectronEnergy()

double activationElectronEnergy ( ) const
inline

Return the electron activation energy Ea [J/kmol].

Definition at line 130 of file TwoTempPlasmaRate.h.

◆ getParameters()

void getParameters ( AnyMap & node) const
overrideprotectedvirtual

Get parameters.

Reimplemented from ArrheniusBase.

Definition at line 73 of file TwoTempPlasmaRate.cpp.

Member Data Documentation

◆ m_bg

double m_bg = 0.0
protected

Gas temperature exponent.

Definition at line 139 of file TwoTempPlasmaRate.h.

◆ m_recip_Tinv

double m_recip_Tinv = 0.0
protected

Reciprocate of the temperature scale for the optional term \( \exp(-T/T_\mathrm{inv}) \).

A value of zero disables this term.

Definition at line 146 of file TwoTempPlasmaRate.h.


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