Base class for passing Robin domain boundary conditions into EBHelmholtzOp.
More...
#include <CD_EBHelmholtzRobinDomainBC.H>
|
| EBHelmholtzRobinDomainBC () |
| Default constructor. Must subsequently set coefficients.
|
|
virtual | ~EBHelmholtzRobinDomainBC () |
| Destructor.
|
|
void | setCoefficients (const Real a_A, const Real a_B, const Real a_C) |
| Set constant coefficients. More...
|
|
void | setCoefficients (const std::function< Real(const RealVect &a_pos)> &a_A, const std::function< Real(const RealVect &a_pos)> &a_B, const std::function< Real(const RealVect &a_pos)> &a_C) |
| Set variable coefficients. 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 override |
| 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 override |
| Get face flux. This is for irregular cells. More...
|
|
Public Member Functions inherited from EBHelmholtzDomainBC |
| 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...
|
|
|
Protected Member Functions inherited from EBHelmholtzDomainBC |
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...
|
|
Static Protected Attributes inherited from EBHelmholtzDomainBC |
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 Robin domain boundary conditions into EBHelmholtzOp.
Robin bcs are in the form A*phi + B*dphi/dn = C. We impose dphi/dn = (C - A*phi)/B where phi is extrapolated to the EB to first order.
- Note
- The B-coefficient is not the same as in the Helmholtz equation...
-
In our notation, n points into the computational domain.
◆ getFaceFlux() [1/2]
void EBHelmholtzRobinDomainBC::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 |
|
overridevirtual |
Get face flux. This is for regular cells.
- Parameters
-
[in,out] | a_faceFlux | Face-centered flux. |
[in] | a_phi | Cell-centered data |
[in] | a_Bcoef | Face-centered B-coefficient |
[in] | a_dir | Coordinate direction |
[in] | a_side | High or low side |
[in] | a_dit | Data index |
[in] | a_useHomogeneous | Homogeneous physical BCs or not. |
- Note
- a_faceFlux is defined in the first strip of interior cells on the (dir,side) edge of the domain.
Implements EBHelmholtzDomainBC.
◆ getFaceFlux() [2/2]
Real EBHelmholtzRobinDomainBC::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 |
|
overridevirtual |
Get face flux. This is for irregular cells.
- Parameters
-
[in] | a_vof | Grid cell |
[in] | a_phi | Cell-centered data |
[in] | a_Bcoef | Face-centered B-coefficient |
[in] | a_dir | Coordinate direction |
[in] | a_side | High or low side |
[in] | a_dit | Data index |
[in] | a_useHomogeneous | Homogeneous physical BCs or not. |
Implements EBHelmholtzDomainBC.
◆ setCoefficients() [1/2]
void EBHelmholtzRobinDomainBC::setCoefficients |
( |
const Real |
a_A, |
|
|
const Real |
a_B, |
|
|
const Real |
a_C |
|
) |
| |
Set constant coefficients.
- Parameters
-
[in] | a_A | Constant A-coefficient |
[in] | a_B | Constant B-coefficient |
[in] | a_C | Constant C-coefficient |
◆ setCoefficients() [2/2]
void EBHelmholtzRobinDomainBC::setCoefficients |
( |
const std::function< Real(const RealVect &a_pos)> & |
a_A, |
|
|
const std::function< Real(const RealVect &a_pos)> & |
a_B, |
|
|
const std::function< Real(const RealVect &a_pos)> & |
a_C |
|
) |
| |
Set variable coefficients.
- Parameters
-
[in] | a_A | Spatially dependent A-coefficient |
[in] | a_B | Spatially dependent B-coefficient |
[in] | a_C | Spatially dependent C-coefficient |
The documentation for this class was generated from the following files: