chombo-discharge
Loading...
Searching...
No Matches
CD_ItoKMCCDRSpecies.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_ITOKMCCDRSPECIES_H
14#define CD_ITOKMCCDRSPECIES_H
15
16// Std includes
17#include <functional>
18
19// Our includes
20#include <CD_CdrSpecies.H>
21#include <CD_NamespaceHeader.H>
22
23namespace Physics {
24namespace ItoKMC {
25
30{
31public:
37 using FunctionXt = std::function<Real(const RealVect a_position, const Real a_time)>;
38
46 ItoKMCCDRSpecies(const std::string& a_name, const int a_chargeNumber, const bool a_isMobile, const bool a_isDiffusive)
47 {
48 m_name = a_name;
49 m_chargeNumber = a_chargeNumber;
50 m_isMobile = a_isMobile;
51 m_isDiffusive = a_isDiffusive;
52
54
55 m_initialData = [&](const RealVect& a_pos, const Real a_time) -> Real {
56 return 0.0;
57 };
58 }
59
63 virtual ~ItoKMCCDRSpecies() noexcept
64 {}
65
72 virtual Real
73 initialData(const RealVect& a_pos, const Real a_time) const override final
74 {
75 return m_initialData(a_pos, a_time);
76 }
77
82 virtual void
83 setInitialData(const FunctionXt& a_initialData)
84 {
85 m_initialData = a_initialData;
86 }
87
88protected:
93};
94
95} // namespace ItoKMC
96} // namespace Physics
97
98#include <CD_NamespaceFooter.H>
99
100#endif
Declaration of a class that passes information into CdrSolver (e.g., initial conditions).
Abstract class that describes the scalar quantity that is advected in CdrSolver.
Definition CD_CdrSpecies.H:31
bool m_isMobile
Mobile CdrSpecies or not.
Definition CD_CdrSpecies.H:122
ParticleSoA< NoPayload > m_initialParticles
Initial particles.
Definition CD_CdrSpecies.H:127
bool m_isDiffusive
Diffusive CdrSpecies or not.
Definition CD_CdrSpecies.H:117
int m_chargeNumber
Charge.
Definition CD_CdrSpecies.H:112
std::string m_name
Cdr_Species name.
Definition CD_CdrSpecies.H:107
void clear() noexcept
Drop all particles (keeps the arena; invalidates the cell sort).
Definition CD_ParticleSoA.H:911
Simple CdrSpecies class for usage with ItoKMC.
Definition CD_ItoKMCCDRSpecies.H:30
virtual void setInitialData(const FunctionXt &a_initialData)
Set the initial data function for this species.
Definition CD_ItoKMCCDRSpecies.H:83
FunctionXt m_initialData
Initial data function.
Definition CD_ItoKMCCDRSpecies.H:92
ItoKMCCDRSpecies(const std::string &a_name, const int a_chargeNumber, const bool a_isMobile, const bool a_isDiffusive)
Full constructor.
Definition CD_ItoKMCCDRSpecies.H:46
std::function< Real(const RealVect a_position, const Real a_time)> FunctionXt
Function alias for e.g. initial data.
Definition CD_ItoKMCCDRSpecies.H:37
virtual Real initialData(const RealVect &a_pos, const Real a_time) const override final
Returns initial data for this species.
Definition CD_ItoKMCCDRSpecies.H:73
virtual ~ItoKMCCDRSpecies() noexcept
Destructor. Does nothing.
Definition CD_ItoKMCCDRSpecies.H:63
Namespace containing physics models for use with chombo-discharge.
Definition CD_AdvectionDiffusion.H:16