Base class for passing domain boundary conditions into EBHelmholtzOp.
More...
#include <CD_EBHelmholtzDomainBC.H>
|
| EBHelmholtzDomainBC () |
| Constructor.
|
|
virtual | ~EBHelmholtzDomainBC () |
| Destructor.
|
|
| EBHelmholtzDomainBC (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.
|
|
EBHelmholtzDomainBC & | operator= (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.
|
|
virtual void | define (const Location::Cell a_dataLocation, const EBLevelGrid &a_eblg, const RealVect &a_probLo, const Real a_dx) |
| Define function. More...
|
|
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. More...
|
|
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. More...
|
|
|
RealVect | getBoundaryPosition (const IntVect &a_iv, const int &a_dir, const Side::LoHiSide &a_side) const |
| Returns the cell-centered position at the boundary. More...
|
|
void | multiplyByBcoef (BaseFab< Real > &a_flux, const BaseFab< Real > &a_bco, const int a_dir, const Side::LoHiSide a_side) const |
| Utility function which multiplies the flux (or actually, dphi/dn) by the B-coefficient. This is used by the implementation classes when they compute the regular flux at the domain edges/faces. More...
|
|
|
constexpr static int | m_comp = 0 |
| Component that everything is defined for. Always have m_comp = 0.
|
|
constexpr static int | m_nComp = 1 |
| Number of components. Always have m_nComp = 1.
|
|
Base class for passing domain boundary conditions into EBHelmholtzOp.
◆ define()
void EBHelmholtzDomainBC::define |
( |
const Location::Cell |
a_dataLocation, |
|
|
const EBLevelGrid & |
a_eblg, |
|
|
const RealVect & |
a_probLo, |
|
|
const Real |
a_dx |
|
) |
| |
|
virtual |
◆ getBoundaryPosition()
RealVect EBHelmholtzDomainBC::getBoundaryPosition |
( |
const IntVect & |
a_iv, |
|
|
const int & |
a_dir, |
|
|
const Side::LoHiSide & |
a_side |
|
) |
| const |
|
inlineprotected |
Returns the cell-centered position at the boundary.
- Parameters
-
[in] | a_iv | Grid cell |
[in] | a_dir | Face coordinate direction |
[in] | a_side | Lo/Hi side |
◆ getFaceFlux() [1/2]
virtual void EBHelmholtzDomainBC::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 |
|
pure virtual |
◆ getFaceFlux() [2/2]
virtual Real EBHelmholtzDomainBC::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 |
|
pure virtual |
◆ multiplyByBcoef()
void EBHelmholtzDomainBC::multiplyByBcoef |
( |
BaseFab< Real > & |
a_flux, |
|
|
const BaseFab< Real > & |
a_bco, |
|
|
const int |
a_dir, |
|
|
const Side::LoHiSide |
a_side |
|
) |
| const |
|
protected |
Utility function which multiplies the flux (or actually, dphi/dn) by the B-coefficient. This is used by the implementation classes when they compute the regular flux at the domain edges/faces.
- Parameters
-
[in,out] | a_flux | On input, contains dphi/dn. On output, contains B*dphi/dn |
[in] | a_bco | Helmholtz B-coefficient |
[in] | a_dir | Coordinate direction |
[in] | a_side | Side |
- Note
- This routine is weird because the flux data holder in the BC classes lives on the cell centers next to the domain face/edge. So we need to shift the box over when we multiply. Because both Dirichlet, Neumann, and the Robin Bcs need to do this, I'm putting this routine in the parent class.
The documentation for this class was generated from the following files: