13#ifndef CD_EBHELMHOLTZDOMAINBC_H
14#define CD_EBHELMHOLTZDOMAINBC_H
17#include <EBLevelGrid.H>
18#include <RefCountedPtr.H>
24#include <CD_NamespaceHeader.H>
73 define(
const Location::Cell a_dataLocation,
const EBLevelGrid& a_eblg,
const RealVect& a_probLo,
const Real a_dx);
88 const BaseFab<Real>& a_phi,
89 const BaseFab<Real>& a_Bcoef,
91 const Side::LoHiSide& a_side,
92 const DataIndex& a_dit,
93 const bool a_useHomogeneous)
const = 0;
108 const EBCellFAB& a_phi,
109 const EBFaceFAB& a_Bcoef,
111 const Side::LoHiSide& a_side,
112 const DataIndex& a_dit,
113 const bool a_useHomogeneous)
const = 0;
181 getBoundaryPosition(
const IntVect& a_iv,
const int& a_dir,
const Side::LoHiSide& a_side)
const;
195 multiplyByBcoef(BaseFab<Real>& a_flux,
const BaseFab<Real>& a_bco,
const int a_dir,
const Side::LoHiSide a_side);
198#include <CD_NamespaceFooter.H>
200#include <CD_EBHelmholtzDomainBCImplem.H>
Declaration of cell positions.
Base class for passing domain boundary conditions into EBHelmholtzOp.
Definition CD_EBHelmholtzDomainBC.H:30
EBLevelGrid m_eblg
Level grid.
Definition CD_EBHelmholtzDomainBC.H:171
RealVect getBoundaryPosition(const IntVect &a_iv, const int &a_dir, const Side::LoHiSide &a_side) const
Returns the cell-centered position at the boundary.
Definition CD_EBHelmholtzDomainBCImplem.H:21
virtual Real getFaceFlux(const VolIndex &a_vof, const EBCellFAB &a_phi, const EBFaceFAB &a_Bcoef, const int &a_dir, const Side::LoHiSide &a_side, const DataIndex &a_dit, const bool a_useHomogeneous) const =0
Get face flux. This is for irregular cells.
virtual Real getDiagWeight(const int a_dir, const Side::LoHiSide a_side) const =0
Diagonal-weight multiplier for this boundary face's contribution to the relaxation diagonal.
Location::Cell m_dataLocation
Data centering.
Definition CD_EBHelmholtzDomainBC.H:156
EBHelmholtzDomainBC & operator=(const EBHelmholtzDomainBC &a_other)=delete
Disallowed - don't see why you would need it.
EBHelmholtzDomainBC()
Constructor.
Definition CD_EBHelmholtzDomainBC.cpp:24
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 =0
Get face flux. This is for regular cells.
static constexpr int m_nComp
Number of components. Always have m_nComp = 1.
Definition CD_EBHelmholtzDomainBC.H:151
static constexpr int m_comp
Component that everything is defined for. Always have m_comp = 0.
Definition CD_EBHelmholtzDomainBC.H:146
EBHelmholtzDomainBC(const EBHelmholtzDomainBC &a_other)=delete
Disallowed – don't see why you would need it.
EBHelmholtzDomainBC & operator=(const EBHelmholtzDomainBC &&a_other)=delete
Disallowed - don't see why you would need it.
EBHelmholtzDomainBC(const EBHelmholtzDomainBC &&a_other)=delete
Disallowed – don't see why you would need it.
static void multiplyByBcoef(BaseFab< Real > &a_flux, const BaseFab< Real > &a_bco, const int a_dir, const Side::LoHiSide a_side)
Utility function which multiplies the flux (or actually, dphi/dn) by the B-coefficient....
Definition CD_EBHelmholtzDomainBC.cpp:51
Real m_dx
Grid resolution.
Definition CD_EBHelmholtzDomainBC.H:161
virtual ~EBHelmholtzDomainBC()
Destructor.
Definition CD_EBHelmholtzDomainBC.cpp:29
virtual void define(const Location::Cell a_dataLocation, const EBLevelGrid &a_eblg, const RealVect &a_probLo, const Real a_dx)
Define function.
Definition CD_EBHelmholtzDomainBC.cpp:35
RealVect m_probLo
Lower-left corner of computational domain.
Definition CD_EBHelmholtzDomainBC.H:166
Cell
Enum for distinguishing between cell locations.
Definition CD_Location.H:31