File collisions.hxx
Defines
-
COLLISIONS_H
-
struct Collisions : public Component
- #include <collisions.hxx>
Calculates the collision rate of each species with all other species
Important: Be careful when including both ion_neutral collisions and reactions such as charge exchange, since that may result in double counting. Similarly for electron_neutral collisions and ionization reactions.
Public Functions
-
Collisions(std::string name, Options &alloptions, Solver*)
The following boolean options under alloptions[name] control which collisions are calculated:
electron_electron
electron_ion
electron_neutral
ion_ion
ion_neutral
neutral_neutral
There are also switches for other terms:
frictional_heating Include R dot v heating term as energy source? (includes Ohmic heating)
- Parameters:
alloptions – Settings, which should include:
units
eV
inv_meters_cubed
meters
seconds
-
virtual void transform(Options &state) override
Modify the given simulation state All components must implement this function
-
virtual void outputVars(Options &state) override
Add extra fields for output, or set attributes e.g docstrings.
Private Functions
-
void collide(Options &species1, Options &species2, const Field3D &nu_12, BoutReal momentum_coefficient)
Update collision frequencies, momentum and energy exchange nu_12 normalised frequency momentum_coefficient Leading coefficient on parallel friction e.g 0.51 for electron-ion with Zi=1
Calculate transfer of momentum and energy between species1 and species2 nu_12 normalised frequency
Modifies species1 and species2
collision_frequency
momentum_source if species1 or species2 velocity is set
energy_source if species1 or species2 temperature is set or velocity is set and frictional_heating
Note: A* variables are used for atomic mass numbers; mass* variables are species masses in kg
Private Members
-
BoutReal Tnorm
-
BoutReal Nnorm
-
BoutReal rho_s0
-
BoutReal Omega_ci
-
bool electron_electron
Which types of collisions to include?
-
bool electron_ion
-
bool electron_neutral
-
bool ion_ion
-
bool ion_neutral
-
bool neutral_neutral
-
bool frictional_heating
Include frictional heating term?
-
BoutReal ei_multiplier
-
Options collision_rates
Calculated collision rates saved for post-processing and use by other components Saved in options, the BOUT++ dictionary-like object
-
bool diagnose
Save more diagnostics?
-
Collisions(std::string name, Options &alloptions, Solver*)