Go to the documentation of this file.
12 #ifndef CD_ItoPlasmaReaction_H
13 #define CD_ItoPlasmaReaction_H
20 #include <CD_NamespaceHeader.H>
42 const std::initializer_list<int> a_particle_products,
43 const std::initializer_list<int> a_photon_products,
44 const std::initializer_list<std::pair<int, Real>> a_energy_jumps)
45 : m_reactants(a_reactants),
46 m_particle_products(a_particle_products),
47 m_photon_products(a_photon_products),
48 m_energy_jumps(a_energy_jumps)
58 const std::initializer_list<int> a_particle_products,
59 const std::initializer_list<std::pair<int, Real>> a_energy_jumps)
60 : m_reactants(a_reactants),
61 m_particle_products(a_particle_products),
63 m_energy_jumps(a_energy_jumps)
73 const std::initializer_list<int> a_particle_products,
74 const std::initializer_list<int> a_photon_products)
75 : m_reactants(a_reactants),
76 m_particle_products(a_particle_products),
77 m_photon_products(a_photon_products),
88 const std::initializer_list<int> a_particle_products)
89 : m_reactants(a_reactants), m_particle_products(a_particle_products), m_photon_products(0), m_energy_jumps(0)
104 jumpState(Vector<long long>& a_particles,
const long long a_num_reactions)
const;
110 jumpState(Vector<long long>& a_particles, Vector<long long>& a_Photons,
const long long a_num_reactions)
const;
116 jumpEnergy(Vector<Real>& a_energies,
const Vector<Real>& a_mean_energies,
const long long a_num_reactions)
const;
123 const Vector<Real>& a_mean_energies,
124 const Vector<Real>& a_sources,
125 const long long a_num_reactions,
126 const Real a_dt)
const;
138 propensity(
const Vector<long long>& a_particles)
const;
144 getGi(
const Vector<long long>& a_particles)
const;
149 inline const std::list<int>&
155 inline const std::list<int>&
161 inline const std::list<int>&
167 inline const std::map<int, int>&
179 inline const std::map<int, Real>&
192 std::list<int> m_reactants;
193 std::list<int> m_particle_products;
194 std::list<int> m_photon_products;
195 std::list<std::pair<int, Real>> m_energy_jumps;
217 #include <CD_NamespaceFooter.H>
Name containing various physics models for running chombo-discharge code.
Definition: CD_AdvectionDiffusion.H:15
~ItoPlasmaReaction()
Dtor. Not much to see here.
Definition: CD_ItoPlasmaReaction.H:98
const std::map< int, Real > & getEnergychange() const
Get the energy change. You need to iterate through this map.
Definition: CD_ItoPlasmaReactionImplem.H:204
ItoPlasmaReaction(const std::initializer_list< int > a_reactants, const std::initializer_list< int > a_particle_products, const std::initializer_list< int > a_photon_products, const std::initializer_list< std::pair< int, Real >> a_energy_jumps)
Full ctor. Includes Photons and energies. LEA fodder.
Definition: CD_ItoPlasmaReaction.H:41
void jumpState(Vector< long long > &a_particles, const long long a_num_reactions) const
Allows a state to jump with N reactions.
Definition: CD_ItoPlasmaReactionImplem.H:24
ItoPlasmaReaction(const std::initializer_list< int > a_reactants, const std::initializer_list< int > a_particle_products, const std::initializer_list< std::pair< int, Real >> a_energy_jumps)
Full ctor. Includes energies but not Photons. LEA fodder.
Definition: CD_ItoPlasmaReaction.H:57
Implementation of CD_ItoPlasmaReaction.H.
ItoPlasmaReaction(const std::initializer_list< int > a_reactants, const std::initializer_list< int > a_particle_products, const std::initializer_list< int > a_photon_products)
Full Ctor, includes possible Photons but disregards energy. LFA fodder.
Definition: CD_ItoPlasmaReaction.H:72
void computeStateChange()
Compute the state change.
Definition: CD_ItoPlasmaReactionImplem.H:151
ItoPlasmaReaction()=default
Allow, but you need full ctor to do anything.
void jumpEnergy(Vector< Real > &a_energies, const Vector< Real > &a_mean_energies, const long long a_num_reactions) const
Allows the energies to jump with N reactions. Assumes no energy sources.
Definition: CD_ItoPlasmaReactionImplem.H:69
ItoPlasmaReaction(const std::initializer_list< int > a_reactants, const std::initializer_list< int > a_particle_products)
Partial ctor. No Photons generated and no energy. LFA fodder.
Definition: CD_ItoPlasmaReaction.H:87
const std::list< int > & getReactants() const
Get reactants.
Definition: CD_ItoPlasmaReactionImplem.H:133
Reaction class for ItoPlasmaPhysics.
Definition: CD_ItoPlasmaReaction.H:30
int getGi(const Vector< long long > &a_particles) const
Get gi.
Definition: CD_ItoPlasmaReactionImplem.H:127
const std::list< int > & getParticleProdcuts() const
Get reactants.
Definition: CD_ItoPlasmaReactionImplem.H:139
void computeEnergyChange()
Compute the state change.
Definition: CD_ItoPlasmaReactionImplem.H:176
const std::map< int, int > & getStateChange() const
Get the state change. You need to iterate through this map.
Definition: CD_ItoPlasmaReactionImplem.H:186
const std::list< int > & getPhotonProducts() const
Get reactants.
Definition: CD_ItoPlasmaReactionImplem.H:145
Real propensity(const Vector< long long > &a_particles) const
Get propensity function.
Definition: CD_ItoPlasmaReactionImplem.H:110
Real & rate() const
Return a modifiable version of the reaction rate.
Definition: CD_ItoPlasmaReactionImplem.H:104