chombo-discharge
Loading...
Searching...
No Matches
CD_ItoKMCSurfaceReactions.H
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2021-2026 SINTEF Energy Research
3 *
4 * SPDX-License-Identifier: GPL-3.0-or-later
5 */
6
13#ifndef CD_ITOKMCSURFACEREACTIONS_H
14#define CD_ITOKMCSURFACEREACTIONS_H
15
16// Std includes
17#include <random>
18
19// Our includes
21#include <CD_NamespaceHeader.H>
22
23namespace Physics {
24namespace ItoKMC {
25
33{
34public:
38 using Products = std::list<size_t>;
39
43 inline ItoKMCSurfaceReactions() noexcept;
44
48 virtual inline ~ItoKMCSurfaceReactions() noexcept;
49
54 inline void
55 add(const ItoKMCSurfaceReaction& a_surfaceReaction) noexcept;
56
60 inline void
61 reset() noexcept;
62
67 inline const size_t&
68 getReactant() const noexcept;
69
74 inline const std::vector<Products>&
75 getProducts() const noexcept;
76
81 inline const std::vector<Real>&
82 getEfficiencies() const noexcept;
83
88 inline std::discrete_distribution<int>&
89 getDistribution() const noexcept;
90
91protected:
96
101
105 std::vector<Products> m_products;
106
110 std::vector<Real> m_efficiencies;
111
115 mutable std::discrete_distribution<int> m_distribution;
116};
117} // namespace ItoKMC
118} // namespace Physics
119
120#include <CD_NamespaceFooter.H>
121
123
124#endif
Declaration of the Physics::ItoKMC::ItoKMCSurfaceReaction class.
Implementation of CD_ItoKMCSurfaceReactions.H.
Reaction class for describing secondary emissions due to a single outgoing particle in ItoKMCPhysics.
Definition CD_ItoKMCSurfaceReaction.H:34
Reaction class for describing multiple pathways of secondary emissions due to a single outgoing parti...
Definition CD_ItoKMCSurfaceReactions.H:33
size_t m_reactant
Reactant index.
Definition CD_ItoKMCSurfaceReactions.H:100
void add(const ItoKMCSurfaceReaction &a_surfaceReaction) noexcept
Add a reaction to this collection.
Definition CD_ItoKMCSurfaceReactionsImplem.H:36
std::list< size_t > Products
Alias for list of products.
Definition CD_ItoKMCSurfaceReactions.H:38
const size_t & getReactant() const noexcept
Get the reactant species index.
Definition CD_ItoKMCSurfaceReactionsImplem.H:69
std::discrete_distribution< int > & getDistribution() const noexcept
Get the discrete distribution used to randomly select a reaction pathway.
Definition CD_ItoKMCSurfaceReactionsImplem.H:87
const std::vector< Real > & getEfficiencies() const noexcept
Get the efficiency (probability) for each competing reaction pathway.
Definition CD_ItoKMCSurfaceReactionsImplem.H:81
std::vector< Products > m_products
Plasma product indices.
Definition CD_ItoKMCSurfaceReactions.H:105
bool m_isDefined
Is defined or not.
Definition CD_ItoKMCSurfaceReactions.H:95
std::discrete_distribution< int > m_distribution
Discrete distribution – useful when drawing a reaction.
Definition CD_ItoKMCSurfaceReactions.H:115
const std::vector< Products > & getProducts() const noexcept
Get the plasma product index lists for each competing reaction pathway.
Definition CD_ItoKMCSurfaceReactionsImplem.H:75
ItoKMCSurfaceReactions() noexcept
Allowed, but you need to call the define function afterwards.
Definition CD_ItoKMCSurfaceReactionsImplem.H:25
std::vector< Real > m_efficiencies
Reaction efficiencies.
Definition CD_ItoKMCSurfaceReactions.H:110
void reset() noexcept
Reset method for clearing class.
Definition CD_ItoKMCSurfaceReactionsImplem.H:59
Namespace containing physics models for use with chombo-discharge.
Definition CD_AdvectionDiffusion.H:16