12 #ifndef CD_CdrDomainBC_H
13 #define CD_CdrDomainBC_H
20 #include <CD_NamespaceHeader.H>
51 using FluxFunction = std::function<Real(
const RealVect a_position,
const Real a_time)>;
97 domainSide(
const int a_dir,
const Side::LoHiSide a_side)
const;
148 #include <CD_NamespaceFooter.H>
Implementation of CD_CdrDomainBC.H.
Class for encapsulating possible domain boundary conditions for CdrSolver.
Definition: CD_CdrDomainBC.H:31
~CdrDomainBC()
Destructor. Does nothing.
Definition: CD_CdrDomainBCImplem.H:39
const FluxFunction & getBcFunction(const DomainSide &a_domainSide) const
Get the BC type on a particular domain side.
Definition: CD_CdrDomainBCImplem.H:55
CdrDomainBC & operator=(const CdrDomainBC &&a_other)=delete
Disallowed move assignment.
void setBcFunction(const DomainSide &a_domainSide, const FluxFunction &a_function)
Set the BC type on a domain side.
Definition: CD_CdrDomainBCImplem.H:67
CdrDomainBC()
Initializing constructor.
Definition: CD_CdrDomainBCImplem.H:19
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:51
const BcType & getBcType(const DomainSide &a_domainSide) const
Get the BC type on a particular domain side.
Definition: CD_CdrDomainBCImplem.H:49
std::map< DomainSide, FluxFunction > m_bcFunctions
BC functions on various domain edges.
Definition: CD_CdrDomainBC.H:145
std::map< DomainSide, BcType > m_bcTypes
BC types on various domain edges.
Definition: CD_CdrDomainBC.H:140
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:56
void setBcType(const DomainSide &a_domainSide, const BcType &a_bcType)
Set the BC type on a domain side.
Definition: CD_CdrDomainBCImplem.H:61
CdrDomainBC(const CdrDomainBC &a_other)=default
Copy constructor.
BcType
Boundary condition types for the CDR solvers.
Definition: CD_CdrDomainBC.H:37
DomainSide domainSide(const int a_dir, const Side::LoHiSide a_side) const
Create a domain side from dir/side.
Definition: CD_CdrDomainBCImplem.H:43
CdrDomainBC & operator=(const CdrDomainBC &a_other)=default
Copy assignment.