chombo-discharge
CD_ItoKMCSurfaceReactions.H
Go to the documentation of this file.
1 /* chombo-discharge
2  * Copyright © 2023 SINTEF Energy Research.
3  * Please refer to Copyright.txt and LICENSE in the chombo-discharge root directory.
4  */
5 
12 #ifndef CD_ItoKMCSurfaceReactions_H
13 #define CD_ItoKMCSurfaceReactions_H
14 
15 // Std includes
16 #include <random>
17 
18 // Our includes
20 #include <CD_NamespaceHeader.H>
21 
22 namespace Physics {
23  namespace ItoKMC {
24 
30  {
31  public:
35  using Products = std::list<size_t>;
36 
40  inline ItoKMCSurfaceReactions() noexcept;
41 
45  virtual inline ~ItoKMCSurfaceReactions() noexcept;
46 
50  inline void
51  add(const ItoKMCSurfaceReaction& a_surfaceReaction) noexcept;
52 
56  inline void
57  reset() noexcept;
58 
62  inline const size_t&
63  getReactant() const noexcept;
64 
68  inline const std::vector<Products>&
69  getProducts() const noexcept;
70 
74  inline const std::vector<Real>&
75  getEfficiencies() const noexcept;
76 
80  inline std::discrete_distribution<size_t>&
81  getDistribution() const noexcept;
82 
83  protected:
88 
92  size_t m_reactant;
93 
97  std::vector<Products> m_products;
98 
102  std::vector<Real> m_efficiencies;
103 
107  mutable std::discrete_distribution<size_t> m_distribution;
108  };
109  } // namespace ItoKMC
110 } // namespace Physics
111 
112 #include <CD_NamespaceFooter.H>
113 
115 
116 #endif
Declaration of a class that encapsulates a set secondary emission at EBs and domain edges/faces.
Implementation of CD_ItoKMCSurfaceReactions.H.
Reaction class for describing secondary emissions due to a single outgoing particle in ItoKMCPhysics.
Definition: CD_ItoKMCSurfaceReaction.H:32
Reaction class for describing multiple pathways of secondary emissions due to a single outgoing parti...
Definition: CD_ItoKMCSurfaceReactions.H:30
size_t m_reactant
Reactant index.
Definition: CD_ItoKMCSurfaceReactions.H:92
void add(const ItoKMCSurfaceReaction &a_surfaceReaction) noexcept
Add a reaction.
Definition: CD_ItoKMCSurfaceReactionsImplem.H:32
std::list< size_t > Products
Alias for list of products.
Definition: CD_ItoKMCSurfaceReactions.H:35
const size_t & getReactant() const noexcept
Get the reactant.
Definition: CD_ItoKMCSurfaceReactionsImplem.H:65
std::discrete_distribution< size_t > & getDistribution() const noexcept
Get the discrete distribution for the reaction efficiencies.
Definition: CD_ItoKMCSurfaceReactionsImplem.H:83
const std::vector< Real > & getEfficiencies() const noexcept
Get the reaction efficiency.
Definition: CD_ItoKMCSurfaceReactionsImplem.H:77
std::vector< Products > m_products
Plasma product indices.
Definition: CD_ItoKMCSurfaceReactions.H:97
bool m_isDefined
Is defined or not.
Definition: CD_ItoKMCSurfaceReactions.H:87
const std::vector< Products > & getProducts() const noexcept
Get the plasma products for each reaction.
Definition: CD_ItoKMCSurfaceReactionsImplem.H:71
ItoKMCSurfaceReactions() noexcept
Allowed, but you need to call the define function afterwards.
Definition: CD_ItoKMCSurfaceReactionsImplem.H:21
std::discrete_distribution< size_t > m_distribution
Discrete distribution – useful when drawing a reaction.
Definition: CD_ItoKMCSurfaceReactions.H:107
std::vector< Real > m_efficiencies
Reaction efficiencies.
Definition: CD_ItoKMCSurfaceReactions.H:102
void reset() noexcept
Reset method for clearing class.
Definition: CD_ItoKMCSurfaceReactionsImplem.H:55
Name containing various physics models for running chombo-discharge code.
Definition: CD_AdvectionDiffusion.H:15