7#ifndef CT_ELECTRONCOLLISIONPLASMARATE_H
8#define CT_ELECTRONCOLLISIONPLASMARATE_H
13#include "cantera/numerics/eigen_dense.h"
120 virtual void setParameters(
const AnyMap& node,
const UnitStack& units)
override;
125 return unique_ptr<MultiRateBase>(
129 virtual const std::string
type()
const override {
130 return "electron-collision-plasma";
146 double& kf,
double& kr);
A map of string keys to values whose type can vary at runtime.
Electron collision plasma reaction rate type.
void updateInterpolatedCrossSection(span< const double >)
Update the value of m_crossSectionsInterpolated [m2].
vector< double > m_crossSectionsInterpolated
collision cross sections [m2] after interpolation
virtual void setContext(const Reaction &rxn, const Kinetics &kin) override
Set context of reaction rate evaluation.
int m_levelNumberSuperelastic
Counter used to indicate when m_crossSectionsOffset needs to be synced with the phase.
double ddTScaledFromStruct(const ElectronCollisionPlasmaData &shared_data) const
Evaluate derivative of reaction rate with respect to temperature divided by reaction rate.
unique_ptr< MultiRateBase > newMultiRate() const override
Create a rate evaluator for reactions of a particular derived type.
string m_product
The product of electron collision.
int m_levelNumber
Counter used to indicate when m_energyLevels needs to be synced with the phase.
string m_target
The name of the target of electron collision.
span< const double > crossSectionInterpolated() const
The value of m_crossSectionsInterpolated [m2].
vector< double > m_crossSections
collision cross sections [m2] at m_energyLevels
const string & kind() const
The kind of the process which will be one of the following:
double m_threshold
The energy threshold of electron collision.
double threshold() const
Get the energy threshold of electron collision [eV].
string m_kind
The name of the kind of electron collision.
const string & product() const
Get the product of the electron collision process.
virtual void getParameters(AnyMap &node) const override
Get parameters.
void modifyRateConstants(const ElectronCollisionPlasmaData &shared_data, double &kf, double &kr)
Calculate the reverse rate coefficient for super-elastic collisions.
span< const double > crossSections() const
The value of m_crossSections [m2].
Eigen::ArrayXd m_crossSectionsOffset
collision cross section [m2] interpolated on m_energyLevels offset by the threshold energy (the first...
const string & target() const
Get the target species of the electron collision process.
vector< double > m_energyLevels
electron energy levels [eV]
virtual void setParameters(const AnyMap &node, const UnitStack &units) override
Set parameters.
ElectronCollisionPlasmaRate(const AnyMap &node, const UnitStack &rate_units={})
Constructor from YAML input for ElectronCollisionPlasmaRate.
span< const double > energyLevels() const
The value of m_energyLevels [eV].
virtual const std::string type() const override
String identifying reaction rate specialization.
double evalFromStruct(const ElectronCollisionPlasmaData &shared_data)
Evaluate reaction rate.
Public interface for kinetics managers.
A class template handling ReactionRate specializations.
An error indicating that an unimplemented function has been called.
Abstract base class for reaction rate definitions; this base class is used by user-facing APIs to acc...
Abstract base class which stores data about a reaction and its rate parameterization so that it can b...
Base class for a phase with thermodynamic properties.
Namespace for the Cantera kernel.
Data container holding shared data specific to ElectronCollisionPlasmaRate.
vector< double > energyLevels
electron energy levels
virtual bool update(const ThermoPhase &phase, const Kinetics &kin) override
Update data container based on thermodynamic phase state.
int levelNumber
integer that is incremented when electron energy levels change
virtual void invalidateCache() override
Force shared data and reaction rates to be updated next time.
vector< double > distribution
electron energy distribution
int m_dist_number
integer that is incremented when electron energy distribution changes
Data container holding shared data used for ReactionRate calculation.
virtual void update(double T)
Update data container based on temperature T
virtual void invalidateCache()
Force shared data and reaction rates to be updated next time.
Unit aggregation utility.