chombo-discharge
Loading...
Searching...
No Matches
CD_CdrSpeciesJSON.H
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2022-2026 SINTEF Energy Research
3 *
4 * SPDX-License-Identifier: GPL-3.0-or-later
5 */
6
13#ifndef CD_CDRSPECIESJSON_H
14#define CD_CDRSPECIESJSON_H
15
16// Std includes
17#include <list>
18
19// Chombo includes
20#include <RealVect.H>
21
22// Our includes
23#include <CD_CdrSpecies.H>
24#include <CD_NamespaceHeader.H>
25
26namespace Physics {
27 namespace CdrPlasma {
28
33 {
34 public:
38 using InitFunction = std::function<Real(const RealVect a_pos, const Real a_time)>;
39
43 CdrSpeciesJSON() = default;
44
53 CdrSpeciesJSON(const std::string& a_name,
54 const int a_Z,
55 const bool a_diffusive,
56 const bool a_mobile,
57 const InitFunction& a_initialData);
58
63 CdrSpeciesJSON(const CdrSpeciesJSON& a_other) = delete;
64
69 CdrSpeciesJSON(const CdrSpeciesJSON&& a_other) = delete;
70
76 operator=(const CdrSpeciesJSON& a_other) = delete;
77
83 operator=(const CdrSpeciesJSON&& a_other) = delete;
84
88 virtual ~CdrSpeciesJSON();
89
98 void
99 define(const std::string& a_name,
100 const int a_Z,
101 const bool a_diffusive,
102 const bool a_mobile,
103 const InitFunction& a_initialData);
104
111 Real
112 initialData(const RealVect& a_pos, const Real a_time) const override final;
113
114 protected:
119
124 };
125 } // namespace CdrPlasma
126} // namespace Physics
127
128#include <CD_NamespaceFooter.H>
129
130#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
Encapsulation of species settings and initial conditions for CDR species in CdrPlasma.
Definition CD_CdrSpeciesJSON.H:33
bool m_isDefined
Make sure model has initial data.
Definition CD_CdrSpeciesJSON.H:118
virtual ~CdrSpeciesJSON()
Destructor.
std::function< Real(const RealVect a_pos, const Real a_time)> InitFunction
Alias for initial data function.
Definition CD_CdrSpeciesJSON.H:38
Real initialData(const RealVect &a_pos, const Real a_time) const override final
Initial data function.
Definition CD_CdrSpeciesJSON.cpp:49
CdrSpeciesJSON(const CdrSpeciesJSON &a_other)=delete
Disallowed constructor.
CdrSpeciesJSON & operator=(const CdrSpeciesJSON &&a_other)=delete
Disallowed move assignment.
CdrSpeciesJSON & operator=(const CdrSpeciesJSON &a_other)=delete
Disallowed copy assignment.
void define(const std::string &a_name, const int a_Z, const bool a_diffusive, const bool a_mobile, const InitFunction &a_initialData)
Define function.
Definition CD_CdrSpeciesJSON.cpp:34
CdrSpeciesJSON()=default
Default constructor. Must subsequently call define.
CdrSpeciesJSON(const CdrSpeciesJSON &&a_other)=delete
Disallowed move constructor.
InitFunction m_initFunction
Initial data function.
Definition CD_CdrSpeciesJSON.H:123
Namespace containing physics models for use with chombo-discharge.
Definition CD_AdvectionDiffusion.H:16