Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
c00109b
check_that_commits_work
Gaetanosaure May 6, 2026
a1f9401
[YAML] Grid specification: Linear, Quadratic and Geometric now availa…
Gaetanosaure May 6, 2026
a8deddf
[thermo] Correct the instrinsic heating expression in PlasmaPhase: th…
Gaetanosaure May 6, 2026
b96f091
[thermo] include the option to have the eedf grid adapting it's maxim…
Gaetanosaure May 12, 2026
5d4e066
[thermo] Verify plasma EEDF input data are acceptable and correct
Gaetanosaure May 12, 2026
f9ddf93
[thermo] Initialize plasma EEDF solver before loading input (PlasmaPh…
Gaetanosaure May 12, 2026
d6fd205
[thermo] Update electron temperature after solving Boltzmann EEDF if …
Gaetanosaure May 12, 2026
49e19bc
[thermo] Impose Maxwellian distribution with T_e = T_gas at low E/N (…
Gaetanosaure May 12, 2026
fc56981
[thermo] check electron mobility value before returning it
Gaetanosaure May 12, 2026
6390487
[thermo] Exclude attachment collisions from elastic power loss
Gaetanosaure May 12, 2026
66f82a3
[thermo] change vector handling in electronEnergyLevelChanged
Gaetanosaure May 12, 2026
23df3c3
[YAML] Change the YAML input file format. Compatibility is retained w…
Gaetanosaure May 13, 2026
e4b3596
[YAML] added parameter "reduced_field_threshold_before_maxwellian_Td"…
Gaetanosaure May 13, 2026
93d515b
[thermo] changed the name of electronMobility to computeElectronMobil…
Gaetanosaure May 13, 2026
a5665bc
[general] ElectronCollisionPlasmaRate, EEDFTwoTermApproximation and P…
Gaetanosaure May 13, 2026
d042c37
[Kinetics] Added the class DetailedVVVTRate to be able to compute the…
Gaetanosaure May 14, 2026
1527744
[python] Adding the access to reading the electronMobility of the gas
Gaetanosaure May 14, 2026
b27674b
[thermo] Allowing collapsed inelastic channels entries in the YAML
Gaetanosaure May 15, 2026
55eba45
cleaning the code from debug messages + adding an optional parameter …
Gaetanosaure May 15, 2026
49cbc70
[Kinetics] Enlarge DetailedVVVTRate into VibrationalRelaxationRate to…
Gaetanosaure May 18, 2026
63963dc
Added some details in the header of the VibrationalRelaxationRate cla…
Gaetanosaure May 21, 2026
1097c7c
more comments
Gaetanosaure May 22, 2026
d6eec19
[thermo] Fixed the EEDF calculation - as shoown on the official websi…
Gaetanosaure May 22, 2026
c137c1d
[thermo] Added function checkSpeciesNoCrossSections for additional er…
Gaetanosaure May 22, 2026
98e070b
[thermo] added some routines to check for the potential declaration o…
Gaetanosaure May 22, 2026
aea876e
cleaned code and added some comments
Gaetanosaure May 22, 2026
a0318f1
[yaml] Added the possibility to control the geometric grid ratio from…
Gaetanosaure May 22, 2026
40db335
[thermo] Corrected the extension of cross-sections using the new func…
Gaetanosaure May 25, 2026
34f6516
[kinetics] changed the subtype name in the class VibrationalRelaxatio…
Gaetanosaure May 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 25 additions & 5 deletions include/cantera/kinetics/ElectronCollisionPlasmaRate.h
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,18 @@ class ElectronCollisionPlasmaRate : public ReactionRate
//! Update the value of #m_crossSectionsInterpolated [m2]
void updateInterpolatedCrossSection(span<const double>);

//! Returns the name of the collision linking the reaction to the data stored in electron-collision
const string& collisionName() const;

//! Return whether this rate object has tabulated cross-section data.
bool hasCrossSectionData() const;

//! Enters the collision data found in the YAML when it is given in the old (still accepted but deprecated) format.
void applyCollisionData(const AnyMap& node);

//! Checks the validity of the YAML entry.
void validateCollisionData(const AnyMap& node) const;

private:
//! The name of the kind of electron collision
string m_kind;
Expand All @@ -222,7 +234,7 @@ class ElectronCollisionPlasmaRate : public ReactionRate
string m_product;

//! The energy threshold of electron collision
double m_threshold;
double m_threshold = 0;

//! electron energy levels [eV]
vector<double> m_energyLevels;
Expand All @@ -240,11 +252,19 @@ class ElectronCollisionPlasmaRate : public ReactionRate
//! collision cross sections [m2] after interpolation
vector<double> m_crossSectionsInterpolated;

//! collision cross section [m2] interpolated on #m_energyLevels offset by the
//! threshold energy (the first energy level).
//! This is used for the calculation of the super-elastic collision reaction
//! rate coefficient.
//! Super-elastic cross sections [m²] interpolated on the shared EEDF grid
//! after shifting the tabulated energy levels by #m_threshold.
Eigen::ArrayXd m_crossSectionsOffset;

//! The name of the collision field in the new YAML PlasmaPhase implementation
string m_collisionName;

//! Check whether a YAML node entry offers some cross section data
bool m_hasCrossSectionData = false;

//! Get the energy threshold for the reaction from the energy levels and cross sections data if threshold is not given in the reaction
void setDefaultThreshold();

};

}
Expand Down
18 changes: 13 additions & 5 deletions include/cantera/kinetics/TwoTempPlasmaRate.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,14 @@ struct TwoTempPlasmaData : public ReactionData
* activation energy for electron is included.
*
* @f[
* k_f = A T_e^b \exp (-E_{a,g}/RT) \exp (E_{a,e} (T_e - T)/(R T T_e))
* k_f = A T^{b_g} T_e^b * exp(-E_{a,g}/RT) * exp(E_{a,e}(T_e - T)/(R T T_e))
* @f]
*
* where @f$ T_e @f$ is the electron temperature, @f$ E_{a,g} @f$ is the activation
* energy for gas, and @f$ E_{a,e} @f$ is the activation energy for electron, see
* Kossyi, et al. @cite kossyi1992.
* The optional gas temperature exponent b_g defaults to zero, which stricly corresponds to @cite kossyi1992.
* If b_g is non-zero, a generalisation is used.
*
* @ingroup arrheniusGroup
*/
Expand All @@ -69,7 +71,10 @@ class TwoTempPlasmaRate : public ArrheniusBase
* @param b Temperature exponent (non-dimensional)
* @param Ea Activation energy in energy units [J/kmol]
* @param EE Activation electron energy in energy units [J/kmol]
* @param bg Gas temperature exponent (non-dimensional). If not specified, defaults to 0.
*/
TwoTempPlasmaRate(double A, double b, double Ea, double EE, double bg);

TwoTempPlasmaRate(double A, double b, double Ea=0.0, double EE=0.0);

TwoTempPlasmaRate(const AnyMap& node, const UnitStack& rate_units={});
Expand All @@ -90,12 +95,12 @@ class TwoTempPlasmaRate : public ArrheniusBase
*/
double evalFromStruct(const TwoTempPlasmaData& shared_data) const {
// m_E4_R is the electron activation (in temperature units)
return m_A * std::exp(m_b * shared_data.logTe -
m_Ea_R * shared_data.recipT +
m_E4_R * (shared_data.electronTemp - shared_data.temperature)
* shared_data.recipTe * shared_data.recipT);
return m_A * std::exp(m_bg * shared_data.logT + m_b * shared_data.logTe
- m_Ea_R * shared_data.recipT + m_E4_R * (shared_data.electronTemp - shared_data.temperature)
* shared_data.recipTe * shared_data.recipT);
}


//! Evaluate derivative of reaction rate with respect to temperature
//! divided by reaction rate
/*!
Expand All @@ -109,6 +114,9 @@ class TwoTempPlasmaRate : public ArrheniusBase
double activationElectronEnergy() const {
return m_E4_R * GasConstant;
}

protected:
double m_bg = 0.0; //!< Gas temperature exponent
};

}
Expand Down
Loading
Loading