chombo-discharge
Loading...
Searching...
No Matches
CD_CdrDomainBC.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_CDRDOMAINBC_H
14#define CD_CDRDOMAINBC_H
15
16// Std includes
17#include <map>
18#include <functional>
19
20// Our includes
21#include <CD_NamespaceHeader.H>
22
32{
33public:
37 enum class BcType
38 {
39 DataBased,
40 Wall,
41 Function,
42 Outflow,
43 Solver,
44 };
45
53
58
63 inline CdrDomainBC();
64
69 CdrDomainBC(const CdrDomainBC& a_other) = default;
70
75 CdrDomainBC(const CdrDomainBC&& a_other) = delete;
76
83 operator=(const CdrDomainBC& a_other) = default;
84
90 operator=(const CdrDomainBC&& a_other) = delete;
91
98 inline DomainSide
99 domainSide(const int a_dir, const Side::LoHiSide a_side) const;
100
104 inline ~CdrDomainBC();
105
111 inline const BcType&
112 getBcType(const DomainSide& a_domainSide) const;
113
119 inline const FluxFunction&
121
127 inline void
129
135 inline void
137
138protected:
143
148};
149
150#include <CD_NamespaceFooter.H>
151
152#include <CD_CdrDomainBCImplem.H>
153
154#endif
Implementation of CD_CdrDomainBC.H.
Class for encapsulating possible domain boundary conditions for CdrSolver.
Definition CD_CdrDomainBC.H:32
~CdrDomainBC()
Destructor. Does nothing.
Definition CD_CdrDomainBCImplem.H:40
const FluxFunction & getBcFunction(const DomainSide &a_domainSide) const
Get the BC type on a particular domain side.
Definition CD_CdrDomainBCImplem.H:56
void setBcFunction(const DomainSide &a_domainSide, const FluxFunction &a_function)
Set the BC type on a domain side.
Definition CD_CdrDomainBCImplem.H:68
CdrDomainBC()
Initializing constructor.
Definition CD_CdrDomainBCImplem.H:20
CdrDomainBC(const CdrDomainBC &&a_other)=delete
Disallowed copy constructor.
std::function< Real(const RealVect a_position, const Real a_time)> FluxFunction
Function which maps f(R^3,t) : R. Used for setting the associated value and boundary condition type.
Definition CD_CdrDomainBC.H:52
CdrDomainBC & operator=(const CdrDomainBC &&a_other)=delete
Disallowed move assignment.
const BcType & getBcType(const DomainSide &a_domainSide) const
Get the BC type on a particular domain side.
Definition CD_CdrDomainBCImplem.H:50
std::map< DomainSide, FluxFunction > m_bcFunctions
BC functions on various domain edges.
Definition CD_CdrDomainBC.H:147
std::map< DomainSide, BcType > m_bcTypes
BC types on various domain edges.
Definition CD_CdrDomainBC.H:142
std::pair< int, Side::LoHiSide > DomainSide
Alias for mapping a direction and side. The first element in pair is the coordinate direction and the...
Definition CD_CdrDomainBC.H:57
void setBcType(const DomainSide &a_domainSide, const BcType &a_bcType)
Set the BC type on a domain side.
Definition CD_CdrDomainBCImplem.H:62
CdrDomainBC(const CdrDomainBC &a_other)=default
Copy constructor.
BcType
Boundary condition types for the CDR solvers.
Definition CD_CdrDomainBC.H:38
DomainSide domainSide(const int a_dir, const Side::LoHiSide a_side) const
Create a domain side from dir/side.
Definition CD_CdrDomainBCImplem.H:44
CdrDomainBC & operator=(const CdrDomainBC &a_other)=default
Copy assignment.
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:26