13#ifndef CD_EBHELMHOLTZROBINDOMAINBC_H
14#define CD_EBHELMHOLTZROBINDOMAINBC_H
20#include <CD_EBHelmholtzDomainBC.H>
21#include <CD_NamespaceHeader.H>
60 const std::function<Real(
const RealVect& a_pos)>& a_B,
61 const std::function<Real(
const RealVect& a_pos)>& a_C);
76 const BaseFab<Real>& a_phi,
77 const BaseFab<Real>& a_Bcoef,
79 const Side::LoHiSide& a_side,
80 const DataIndex& a_dit,
81 const bool a_useHomogeneous)
const override;
96 const EBCellFAB& a_phi,
97 const EBFaceFAB& a_Bcoef,
99 const Side::LoHiSide& a_side,
100 const DataIndex& a_dit,
101 const bool a_useHomogeneous)
const override;
113 getDiagWeight(
const int a_dir,
const Side::LoHiSide a_side)
const override;
157#include <CD_NamespaceFooter.H>
Base class for passing domain boundary conditions into EBHelmholtzOp.
Definition CD_EBHelmholtzDomainBC.H:30
Base class for passing Robin domain boundary conditions into EBHelmholtzOp.
Definition CD_EBHelmholtzRobinDomainBC.H:31
std::function< Real(const RealVect &a_pos)> m_functionB
Function-based B-coefficient.
Definition CD_EBHelmholtzRobinDomainBC.H:149
bool m_useFunction
Use function for BC value.
Definition CD_EBHelmholtzRobinDomainBC.H:124
std::function< Real(const RealVect &a_pos)> m_functionA
Function-based A-coefficient.
Definition CD_EBHelmholtzRobinDomainBC.H:144
void setCoefficients(const Real a_A, const Real a_B, const Real a_C)
Set constant coefficients.
Definition CD_EBHelmholtzRobinDomainBC.cpp:33
Real m_constantC
Constant C-coefficient.
Definition CD_EBHelmholtzRobinDomainBC.H:139
Real m_constantA
Constant A-coefficient.
Definition CD_EBHelmholtzRobinDomainBC.H:129
Real m_constantB
Constant B-coefficient.
Definition CD_EBHelmholtzRobinDomainBC.H:134
virtual ~EBHelmholtzRobinDomainBC()
Destructor.
Definition CD_EBHelmholtzRobinDomainBC.cpp:27
virtual void getFaceFlux(BaseFab< Real > &a_faceFlux, const BaseFab< Real > &a_phi, const BaseFab< Real > &a_Bcoef, const int &a_dir, const Side::LoHiSide &a_side, const DataIndex &a_dit, const bool a_useHomogeneous) const override
Get face flux. This is for regular cells.
Definition CD_EBHelmholtzRobinDomainBC.cpp:61
Real getDiagWeight(const int a_dir, const Side::LoHiSide a_side) const override
Diagonal-weight multiplier for the domain-face contribution to the relaxation diagonal.
Definition CD_EBHelmholtzRobinDomainBC.cpp:231
bool m_useConstant
Use constant for BC.
Definition CD_EBHelmholtzRobinDomainBC.H:119
std::function< Real(const RealVect &a_pos)> m_functionC
Function-based C-coefficient.
Definition CD_EBHelmholtzRobinDomainBC.H:154
EBHelmholtzRobinDomainBC()
Default constructor. Must subsequently set coefficients.
Definition CD_EBHelmholtzRobinDomainBC.cpp:22