File adas_lithium.hxx#

Defines

ADAS_LITHIUM_H#

Variables

constexpr std::array<BoutReal, 3> lithium_ionisation_energy = {5.39, 75.64, 122.45}#

Ionisation energies in eV from https://www.webelements.com/lithium/atoms.html Conversion 1 kJ mol‑1 = 1.0364e-2 eV These are added (removed) from the electron energy during recombination (ionisation)

template<int level>
constexpr char lithium_species_name[5] = {'l', 'i', '+', char('0' + level), '\0'}#

The name of the species. This initializer list can be passed to a string constructor, or used to index into an Options tree.

li, li+, li+2, …

Special cases for level=0, 1 and 3

Template Parameters:

level – The ionisation level: 0 is neutral, 3 is fully stripped.

template<>
constexpr char lithium_species_name<3>[5] = {'l', 'i', '+', '3', '\0'}#
template<>
constexpr char lithium_species_name<1>[5] = {'l', 'i', '+', '\0'}#
template<>
constexpr char lithium_species_name<0>[5] = {'l', 'i', '\0'}#
template<int level>
struct lithium_species#
#include <adas_lithium.hxx>

Public Static Attributes

static constexpr auto value = lithium_species_name<level>#
template<int level>
struct ADASLithiumIonisation : public OpenADAS#
#include <adas_lithium.hxx>

ADAS effective ionisation (ADF11)

Template Parameters:

level – The ionisation level of the ion on the left of the reaction

Public Functions

ADASLithiumIonisation(const ADASLithiumIonisation&) = delete#
ADASLithiumIonisation(ADASLithiumIonisation&&) = delete#
ADASLithiumIonisation &operator=(const ADASLithiumIonisation&) = delete#
ADASLithiumIonisation &operator=(ADASLithiumIonisation&&) = delete#
inline ADASLithiumIonisation(std::string name, Options &alloptions, Solver*)#
inline virtual std::string typeName() const final#

Public Static Attributes

static constexpr auto type = izn_component_name_v<lithium_species, level>#

Private Functions

inline 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.

template<int level>
struct ADASLithiumRecombination : public OpenADAS#
#include <adas_lithium.hxx>

ADAS effective recombination coefficients (ADF11)

Template Parameters:

level – The ionisation level of the ion on the right of the reaction

Public Functions

inline ADASLithiumRecombination(std::string name, Options &alloptions, Solver*)#
Parameters:

alloptions – The top-level options. Only uses the [“units”] subsection.

inline virtual std::string typeName() const final#

Public Static Attributes

static constexpr auto type = rec_component_name_v<lithium_species, level>#

Private Functions

inline 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.

template<int level, char Hisotope>
struct ADASLithiumCX : public OpenADASChargeExchange#
#include <adas_lithium.hxx>
Template Parameters:
  • level – The ionisation level of the ion on the right of the reaction

  • Hisotope – The hydrogen isotope (‘h’, ‘d’ or ‘t’)

Public Functions

inline ADASLithiumCX(std::string name, Options &alloptions, Solver*)#
Parameters:

alloptions – The top-level options. Only uses the [“units”] subsection.

inline virtual std::string typeName() const final#

Public Static Attributes

static constexpr auto type = cx_component_name_v<lithium_species, level, Hisotope>#

Private Functions

inline 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.