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.
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.
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.
const vector< double > & crossSections() const
The value of m_crossSections [m2].
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.
const vector< double > & crossSectionInterpolated() const
The value of m_crossSectionsInterpolated [m2].
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.
Eigen::ArrayXd m_crossSectionsOffset
collision cross section [m2] interpolated on m_energyLevels offset by the threshold energy (the first...
void updateInterpolatedCrossSection(const vector< double > &)
Update the value of m_crossSectionsInterpolated [m2].
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.
virtual const std::string type() const override
String identifying reaction rate specialization.
const vector< double > & energyLevels() const
The value of m_energyLevels [eV].
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.