chombo-discharge
Loading...
Searching...
No Matches
CD_AdvectionDiffusionSpecies.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_ADVECTIONDIFFUSIONSPECIES_H
14#define CD_ADVECTIONDIFFUSIONSPECIES_H
15
16// Our includes
17#include <CD_CdrSpecies.H>
18#include <CD_NamespaceHeader.H>
19
20namespace Physics {
21 namespace AdvectionDiffusion {
22
30 {
31 public:
38 AdvectionDiffusionSpecies(const std::function<Real(const RealVect& a_pos)>& a_initialData,
39 const bool a_mobile,
40 const bool a_diffusive)
41 : m_initialData(a_initialData)
42 {
43 m_isMobile = a_mobile;
44 m_isDiffusive = a_diffusive;
46 m_name = "AdvectionDiffusionSpecies";
47 }
48
52 ~AdvectionDiffusionSpecies() override = default;
53
59
66 operator=(const AdvectionDiffusionSpecies& a_other) = default;
67
73
81
87 Real
88 initialData(const RealVect& a_pos, const Real /*a_time*/) const override
89 {
90 return m_initialData(a_pos);
91 }
92
93 protected:
97 std::function<Real(const RealVect& a_pos)> m_initialData;
98 };
99 } // namespace AdvectionDiffusion
100} // namespace Physics
101
102#include <CD_NamespaceFooter.H>
103
104#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
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
Concrete CdrSpecies implementation for the advection-diffusion test problem.
Definition CD_AdvectionDiffusionSpecies.H:30
std::function< Real(const RealVect &a_pos)> m_initialData
Functor encoding the initial concentration profile.
Definition CD_AdvectionDiffusionSpecies.H:97
AdvectionDiffusionSpecies(const AdvectionDiffusionSpecies &a_other)=default
Copy constructor.
AdvectionDiffusionSpecies(AdvectionDiffusionSpecies &&a_other)=default
Move constructor.
~AdvectionDiffusionSpecies() override=default
Destructor.
AdvectionDiffusionSpecies & operator=(const AdvectionDiffusionSpecies &a_other)=default
Copy assignment operator.
AdvectionDiffusionSpecies(const std::function< Real(const RealVect &a_pos)> &a_initialData, const bool a_mobile, const bool a_diffusive)
Full constructor.
Definition CD_AdvectionDiffusionSpecies.H:38
AdvectionDiffusionSpecies & operator=(AdvectionDiffusionSpecies &&a_other)=default
Move assignment operator.
Real initialData(const RealVect &a_pos, const Real) const override
Return the initial scalar concentration at a given position and time.
Definition CD_AdvectionDiffusionSpecies.H:88
Namespace containing physics models for use with chombo-discharge.
Definition CD_AdvectionDiffusion.H:16