File izn_rec_reaction.hxx#

Defines

IZN_REC_REACTION_H#
namespace hermes
struct IznRecReaction : public hermes::Reaction#
#include <izn_rec_reaction.hxx>

Reaction subclass that acts as a common base for ionisation and recombination reactions.

See IznRecReaction::transform_additional for the ionisation/recombination-specific sources.

Subclassed by hermes::IznReaction, hermes::RecReaction

Protected Functions

IznRecReaction(std::string short_reaction_type, std::string name, Options &options)#

Main constructor for ionisation/recombination reaction base class.

Adds appropriate permissions and diagnostics for ionisation/recombination reactions, checks that the reaction string includes at least one heavy reactant and one heavy product.

Parameters:
  • name

  • options – The options object containing configuration parameters

void transform_additional(GuardedOptions &state, const RateData &rate_data) final#

Perform additional transform tasks specific to ionisation/recombination reactions.

This function adds:

  • Sources to handle the kinetic=>thermal energy transfer for electrons, and for the heavy product.

  • An electron energy source that capture the losses associated with the ionisation potential energy cost as well as the photon emission during excitation and de-excitation.

Parameters:
  • state – The current simulation state to be modified

  • rate_data – The rate calculation results from parent class

Protected Attributes

std::string heavy_reactant#

Name of the heavy reactant species.

std::string heavy_product#

Name of the heavy product species.

std::string heavy_collfreq_species#

Name of the (heavy) species with which collision freqs. are associated in the state.

Private Members

const std::string short_reaction_type#

Short reaction type string used in diagnostic names (“iz” or “rec”)

std::unique_ptr<ReactionData> e_energy_loss_data#

Pointer to reaction data used to compute electron energy loss.

struct IznReaction : public hermes::IznRecReaction#
#include <izn_rec_reaction.hxx>

Reaction subclass for ionisation reactions.

This class only exists to add ionisation-specific options; see IznRecReaction::transform_additional for related sources.

Public Functions

IznReaction(std::string name, Options &options)#

Main constructor for ionisation reaction objects.

Parameters:
  • name

  • options – The options object

inline IznReaction(std::string name, Options &options, [[maybe_unused]] Solver *solver)#

Constructor used by the component factory.

Parameters:
  • name

  • options – The options object

  • solver – The solver object for the simulation (discarded by this class)

struct RecReaction : public hermes::IznRecReaction#
#include <izn_rec_reaction.hxx>

Reaction subclass for recombination reactions.

This class only exists to add recombination-specific options; see IznRecReaction::transform_additional for related sources.

Public Functions

RecReaction(std::string name, Options &options)#

Main constructor for recombination reaction objects.

Parameters:
  • name

  • options

inline RecReaction(std::string name, Options &options, [[maybe_unused]] Solver *solver)#

Constructor used by the component factory.

Parameters:
  • name

  • options – The options object

  • solver – The solver object for the simulation (discarded by this class)