rizer.cantera_ext
C++ Cantera 1-D plasma extension (custom Domain1D models and solvers)
Toggle main menu visibility
Loading...
Searching...
No Matches
CollisionModel.h
Go to the documentation of this file.
1
46
47
#ifndef RIZER_COLLISION_MODEL_H
48
#define RIZER_COLLISION_MODEL_H
49
50
#include "
numeric/PropertyTable.h
"
51
52
#include <cstddef>
53
#include <vector>
54
55
namespace
rizer
{
56
57
class
CollisionModel
{
58
public
:
61
struct
SpeciesSpec
{
62
std::vector<double>
energy_J
;
63
std::vector<double>
sigma_m2
;
64
double
radius
= -1.0;
65
int
Z
= 0;
66
bool
is_electron
=
false
;
67
double
molar_mass
= 0.0;
68
};
69
70
CollisionModel
() =
default
;
76
CollisionModel
(
const
std::vector<SpeciesSpec>& specs,
double
Te_min,
double
Te_max,
77
std::size_t Te_n);
78
79
bool
empty
()
const
{
return
m_species.empty(); }
80
105
void
evaluate
(
double
Te,
double
n_e,
const
double
* n_k, std::size_t nsp,
106
double
& sigma,
double
& nu_E,
double
& nu_eH,
double
& nu_eI,
107
double
& nu_eH_mass_weighted)
const
;
108
120
static
double
electronElectronCollisionFrequency
(
double
n_e,
double
Te);
121
134
static
double
meanCrossSection
(
const
std::vector<double>& energy_J,
135
const
std::vector<double>& sigma_m2,
double
Te,
136
double
x_max = 20.0,
int
N = 1000);
137
146
static
std::vector<double>
meanCrossSectionTable
(
147
const
std::vector<double>& energy_J,
const
std::vector<double>& sigma_m2,
148
const
std::vector<double>& Te,
double
x_max = 20.0,
int
N = 1000);
149
150
private
:
151
enum class
SpeciesCollisionKind { Skip, Tabulated, HardSphere, Ion };
152
struct
SpeciesCollisionConfig {
153
SpeciesCollisionKind kind = SpeciesCollisionKind::Skip;
154
PropertyTable Qbar;
155
double
cst = 0.0;
156
int
Z = 0;
157
double
two_me_over_mh = 0.0;
158
double
inv_mh = 0.0;
159
};
160
std::vector<SpeciesCollisionConfig> m_species;
161
};
162
163
}
// namespace rizer
164
165
#endif
PropertyTable.h
rizer::CollisionModel::empty
bool empty() const
Definition
CollisionModel.h:79
rizer::CollisionModel::electronElectronCollisionFrequency
static double electronElectronCollisionFrequency(double n_e, double Te)
Electron-electron collision frequency [1/s] (Mitchner II-8.11e with Z=1), the closed-form ingredient...
Definition
CollisionModel.cpp:280
rizer::CollisionModel::meanCrossSection
static double meanCrossSection(const std::vector< double > &energy_J, const std::vector< double > &sigma_m2, double Te, double x_max=20.0, int N=1000)
The Maxwellian momentum-transfer kernel Qbar(Te) [m^2] (single source of truth; also exposed to Pytho...
Definition
CollisionModel.cpp:299
rizer::CollisionModel::evaluate
void evaluate(double Te, double n_e, const double *n_k, std::size_t nsp, double &sigma, double &nu_E, double &nu_eH, double &nu_eI, double &nu_eH_mass_weighted) const
Composition-resolved electron transport.
Definition
CollisionModel.cpp:181
rizer::CollisionModel::meanCrossSectionTable
static std::vector< double > meanCrossSectionTable(const std::vector< double > &energy_J, const std::vector< double > &sigma_m2, const std::vector< double > &Te, double x_max=20.0, int N=1000)
Tabulated variant of meanCrossSection, evaluated at each Te in the input vector.
Definition
CollisionModel.cpp:345
rizer::CollisionModel::CollisionModel
CollisionModel()=default
rizer
Definition
ElectronReactions.cpp:11
rizer::CollisionModel::SpeciesSpec
Per-species spec, in species-index order.
Definition
CollisionModel.h:61
rizer::CollisionModel::SpeciesSpec::is_electron
bool is_electron
true for the electron species (skipped)
Definition
CollisionModel.h:66
rizer::CollisionModel::SpeciesSpec::energy_J
std::vector< double > energy_J
tabulated cross-section abscissa [J]
Definition
CollisionModel.h:62
rizer::CollisionModel::SpeciesSpec::molar_mass
double molar_mass
[kg/mol], for the elastic 2 m_e/m_h factor
Definition
CollisionModel.h:67
rizer::CollisionModel::SpeciesSpec::radius
double radius
hard-sphere radius [m] (>0 if used)
Definition
CollisionModel.h:64
rizer::CollisionModel::SpeciesSpec::sigma_m2
std::vector< double > sigma_m2
tabulated cross-section [m^2]
Definition
CollisionModel.h:63
rizer::CollisionModel::SpeciesSpec::Z
int Z
ion charge number (>0 marks an ion)
Definition
CollisionModel.h:65
rizer
cantera_ext
transport
CollisionModel.h
Generated by
1.18.0