File braginskii_collisions.hxx#

Defines

COLLISIONS_H#
struct BraginskiiCollisions : public Component#
#include <braginskii_collisions.hxx>

Calculates the collision rate of each species with all other species, using the Braginskii equation.

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

BraginskiiCollisions(const 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

The user can also set

  • ei_multiplier arbitrary multiplier on electron-ion collision rate

Parameters:

alloptions – Settings, which should include:

  • units

    • eV

    • inv_meters_cubed

    • meters

    • seconds

virtual void outputVars(Options &state) override#

Add extra fields for output, or set attributes e.g docstrings.

Private Functions

virtual void transform_impl(GuardedOptions &state) override#

The implementation of the transform method. Modify the given simulation state. All components must implement this function. It will only allow the reading from/writing to state variables with the appropriate permissiosn in state_variable_access.

void collide(GuardedOptions &species1, GuardedOptions &species2, const Field3D &nu_12)#

Update collision frequencies, momentum and energy exchange nu_12 normalised frequency

Calculate apply collision data for the two species. nu_12 normalised frequency

Modifies species1 and species2

  • collision_frequency

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#
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?