Chombo + EB
3.2
|
#include <DirichletPoissonDomainBC.H>
Public Member Functions | |
DirichletPoissonDomainBC () | |
virtual | ~DirichletPoissonDomainBC () |
virtual void | setValue (Real a_value) |
virtual void | setFunction (RefCountedPtr< BaseBCValue > a_func) |
virtual void | setData (LevelData< EBCellFAB > *a_data) |
virtual void | setEBOrder (int a_ebOrder) |
virtual void | getFaceVel (Real &a_faceFlux, const FaceIndex &a_face, const EBFluxFAB &a_vel, const RealVect &a_probLo, const RealVect &a_dx, const int &a_idir, const int &a_icomp, const Real &a_time, const Side::LoHiSide &a_side) |
virtual void | getFaceFlux (BaseFab< Real > &a_faceFlux, const BaseFab< Real > &a_phi, const RealVect &a_probLo, const RealVect &a_dx, const int &a_idir, const Side::LoHiSide &a_side, const DataIndex &a_dit, const Real &a_time, const bool &a_useHomogeneous) |
void | getHigherOrderFaceFlux (BaseFab< Real > &a_faceFlux, const BaseFab< Real > &a_phi, const RealVect &a_probLo, const RealVect &a_dx, const int &a_idir, const Side::LoHiSide &a_side, const DataIndex &a_dit, const Real &a_time, const bool &a_useHomogeneous) |
virtual void | getFaceFlux (Real &a_faceFlux, const VolIndex &a_vof, const int &a_comp, const EBCellFAB &a_phi, const RealVect &a_probLo, const RealVect &a_dx, const int &a_idir, const Side::LoHiSide &a_side, const DataIndex &a_dit, const Real &a_time, const bool &a_useHomogeneous) |
void | getInhomFaceFlux (Real &a_faceFlux, const VolIndex &a_vof, const int &a_comp, const EBCellFAB &a_phi, const RealVect &a_probLo, const RealVect &a_dx, const int &a_idir, const Side::LoHiSide &a_side, const DataIndex &a_dit, const Real &a_time) |
bool | isDirichletDom (const VolIndex &a_ivof, const VolIndex &a_jvof, const EBCellFAB &a_phi) const |
void | getHigherOrderFaceFlux (Real &a_faceFlux, const VolIndex &a_vof, const int &a_comp, const EBCellFAB &a_phi, const RealVect &a_probLo, const RealVect &a_dx, const int &a_idir, const Side::LoHiSide &a_side, const DataIndex &a_dit, const Real &a_time, const bool &a_useHomogeneous) |
void | getHigherOrderFaceFlux (Real &a_faceFlux, const FaceIndex &a_face, const int &a_comp, const EBCellFAB &a_phi, const RealVect &a_probLo, const RealVect &a_dx, const int &a_idir, const Side::LoHiSide &a_side, const DataIndex &a_dit, const Real &a_time, const bool &a_useAreaFrac, const RealVect &a_centroid, const bool &a_useHomogeneous) |
void | getHigherOrderInhomFaceFlux (Real &a_faceFlux, const VolIndex &a_vof, const int &a_comp, const EBCellFAB &a_phi, const RealVect &a_probLo, const RealVect &a_dx, const int &a_idir, const Side::LoHiSide &a_side, const DataIndex &a_dit, const Real &a_time) |
void | getHigherOrderInhomFaceFlux (Real &a_faceFlux, const FaceIndex &a_face, const int &a_comp, const EBCellFAB &a_phi, const RealVect &a_probLo, const RealVect &a_dx, const int &a_idir, const Side::LoHiSide &a_side, const DataIndex &a_dit, const Real &a_time, const bool &a_useAreaFrac, const RealVect &a_centroid) |
virtual void | getFaceGradPhi (Real &a_faceFlux, const FaceIndex &a_face, const int &a_comp, const EBCellFAB &a_phi, const RealVect &a_probLo, const RealVect &a_dx, const int &a_idir, const Side::LoHiSide &a_side, const DataIndex &a_dit, const Real &a_time, const bool &a_useAreaFrac, const RealVect &a_centroid, const bool &a_useHomogeneous) |
void | getInhomFaceGradPhi (Real &a_faceFlux, const FaceIndex &a_face, const int &a_comp, const EBCellFAB &a_phi, const RealVect &a_probLo, const RealVect &a_dx, const int &a_idir, const Side::LoHiSide &a_side, const DataIndex &a_dit, const Real &a_time, const bool &a_useAreaFrac, const RealVect &a_centroid) |
virtual void | getFluxStencil (VoFStencil &a_stencil, const VolIndex &a_vof, const int &a_comp, const RealVect &a_dx, const int &a_idir, const Side::LoHiSide &a_side, const EBISBox &a_ebisBox) |
virtual void | getFluxStencil (VoFStencil &a_stencil, const FaceIndex &a_face, const int &a_comp, const RealVect &a_dx, const int &a_idir, const Side::LoHiSide &a_side, const EBISBox &a_ebisBox) |
void | getFirstOrderFluxStencil (VoFStencil &a_stencil, const FaceIndex &a_face, const int &a_comp, const RealVect &a_dx, const int &a_idir, const Side::LoHiSide &a_side, const EBISBox &a_ebisBox) |
void | getSecondOrderFluxStencil (VoFStencil &a_stencil, const FaceIndex &a_face, const int &a_comp, const RealVect &a_dx, const int &a_idir, const Side::LoHiSide &a_side, const EBISBox &a_ebisBox) |
Public Member Functions inherited from BaseDomainBC | |
BaseDomainBC () | |
virtual | ~BaseDomainBC () |
virtual void | enforceFaceVel (LevelData< EBFluxFAB > &a_velocity, const DisjointBoxLayout &a_grids, const EBISLayout &a_ebisl, const ProblemDomain &a_domain, const RealVect &a_dx, const Real &a_time, const RealVect &a_origin) |
virtual void | enforceFaceVel (LevelData< EBFluxFAB > &a_velocity, const DisjointBoxLayout &a_grids, const EBISLayout &a_ebisl, const ProblemDomain &a_domain, const RealVect &a_dx, const Real &a_time, const RealVect &a_origin, const int &a_comp) |
bool | dataBased () const |
Public Attributes | |
bool | m_isDefined |
Private Attributes | |
bool | m_onlyHomogeneous |
bool | m_isFunctional |
Real | m_value |
RefCountedPtr< BaseBCValue > | m_func |
LevelData< EBCellFAB > * | m_data |
bool | m_dataBased |
int | m_ebOrder |
Additional Inherited Members | |
Protected Attributes inherited from BaseDomainBC | |
LevelData< EBCellFAB > * | m_data |
bool | m_dataBased |
DirichletPoissonDomainBC::DirichletPoissonDomainBC | ( | ) |
|
virtual |
|
virtual |
|
virtual |
Reimplemented from BaseDomainBC.
References getFaceFlux(), getFaceVel(), getHigherOrderFaceFlux(), getInhomFaceFlux(), m_data, m_dataBased, m_onlyHomogeneous, and setEBOrder().
|
virtual |
use this for order of domain boundary
Referenced by setData(), and DirichletPoissonDomainBCFactory::setData().
|
virtual |
This is used by the projections to get velocity at domain faces where eb intersects. Sets velocity to a dirichlet value.
Reimplemented from BaseDomainBC.
Referenced by setData().
|
virtual |
Implements BaseDomainBC.
Referenced by setData().
void DirichletPoissonDomainBC::getHigherOrderFaceFlux | ( | BaseFab< Real > & | a_faceFlux, |
const BaseFab< Real > & | a_phi, | ||
const RealVect & | a_probLo, | ||
const RealVect & | a_dx, | ||
const int & | a_idir, | ||
const Side::LoHiSide & | a_side, | ||
const DataIndex & | a_dit, | ||
const Real & | a_time, | ||
const bool & | a_useHomogeneous | ||
) |
Referenced by isDirichletDom(), and setData().
|
virtual |
Elliptic solver flux.
Implements BaseDomainBC.
|
inlinevirtual |
A query of whether a_jvof is Dirichlet Domain boundary to a_ivof. a_jvof is the ghost vof; a_ivof is the valid computational vof. If the code runs into here it's got to be Dirichlet BC
Reimplemented from BaseDomainBC.
References getFaceGradPhi(), getFirstOrderFluxStencil(), getFluxStencil(), getHigherOrderFaceFlux(), getHigherOrderInhomFaceFlux(), getInhomFaceGradPhi(), and getSecondOrderFluxStencil().
void DirichletPoissonDomainBC::getHigherOrderFaceFlux | ( | Real & | a_faceFlux, |
const VolIndex & | a_vof, | ||
const int & | a_comp, | ||
const EBCellFAB & | a_phi, | ||
const RealVect & | a_probLo, | ||
const RealVect & | a_dx, | ||
const int & | a_idir, | ||
const Side::LoHiSide & | a_side, | ||
const DataIndex & | a_dit, | ||
const Real & | a_time, | ||
const bool & | a_useHomogeneous | ||
) |
This is called by InflowOutflowHelmholtzDomainBC::getFaceFlux, which is called by EBAMRPoissonOp::applyOp when EB x domain. Used for higher-order velocity boundary conditions. This routine iterates over the possible multiple faces at a domain face and calls getHigherOrderFaceFlux(...) below for the individual face extrapolation
void DirichletPoissonDomainBC::getHigherOrderFaceFlux | ( | Real & | a_faceFlux, |
const FaceIndex & | a_face, | ||
const int & | a_comp, | ||
const EBCellFAB & | a_phi, | ||
const RealVect & | a_probLo, | ||
const RealVect & | a_dx, | ||
const int & | a_idir, | ||
const Side::LoHiSide & | a_side, | ||
const DataIndex & | a_dit, | ||
const Real & | a_time, | ||
const bool & | a_useAreaFrac, | ||
const RealVect & | a_centroid, | ||
const bool & | a_useHomogeneous | ||
) |
This is called by DirichletPoissonDomain::getHigherOrderFaceflux which is called by InflowOutflowHelmholtzDomainBC::getFaceFlux. This is used by the projections to get extrapolated grad(phi) at domain faces for cell-centered gradient. Called by getFaceFlux.
void DirichletPoissonDomainBC::getHigherOrderInhomFaceFlux | ( | Real & | a_faceFlux, |
const VolIndex & | a_vof, | ||
const int & | a_comp, | ||
const EBCellFAB & | a_phi, | ||
const RealVect & | a_probLo, | ||
const RealVect & | a_dx, | ||
const int & | a_idir, | ||
const Side::LoHiSide & | a_side, | ||
const DataIndex & | a_dit, | ||
const Real & | a_time | ||
) |
This is called by InflowOutflowHelmholtzDomainBC::getFaceFlux, which is called by EBAMRPoissonOp::applyOp when EB x domain. Used for higher-order velocity boundary conditions. This routine iterates over the possible multiple faces at a domain face and calls getHigherOrderFaceFlux(...) below for the individual face extrapolation
Referenced by isDirichletDom().
void DirichletPoissonDomainBC::getHigherOrderInhomFaceFlux | ( | Real & | a_faceFlux, |
const FaceIndex & | a_face, | ||
const int & | a_comp, | ||
const EBCellFAB & | a_phi, | ||
const RealVect & | a_probLo, | ||
const RealVect & | a_dx, | ||
const int & | a_idir, | ||
const Side::LoHiSide & | a_side, | ||
const DataIndex & | a_dit, | ||
const Real & | a_time, | ||
const bool & | a_useAreaFrac, | ||
const RealVect & | a_centroid | ||
) |
This is called by DirichletPoissonDomain::getHigherOrderFaceflux which is called by InflowOutflowHelmholtzDomainBC::getFaceFlux. This is used by the projections to get extrapolated grad(phi) at domain faces for cell-centered gradient. Called by getFaceFlux.
|
virtual |
This is used by the projections to get grad(phi) at domain faces (usually outflow). Called by InflowOutflowPoissonDomainBC::getFaceFlux.
Implements BaseDomainBC.
Referenced by isDirichletDom().
void DirichletPoissonDomainBC::getInhomFaceGradPhi | ( | Real & | a_faceFlux, |
const FaceIndex & | a_face, | ||
const int & | a_comp, | ||
const EBCellFAB & | a_phi, | ||
const RealVect & | a_probLo, | ||
const RealVect & | a_dx, | ||
const int & | a_idir, | ||
const Side::LoHiSide & | a_side, | ||
const DataIndex & | a_dit, | ||
const Real & | a_time, | ||
const bool & | a_useAreaFrac, | ||
const RealVect & | a_centroid | ||
) |
This is used by the projections to get grad(phi) at domain faces (usually outflow). Called by InflowOutflowPoissonDomainBC::getFaceFlux.
Referenced by isDirichletDom().
|
virtual |
Reimplemented from BaseDomainBC.
Referenced by isDirichletDom().
|
virtual |
Reimplemented from BaseDomainBC.
void DirichletPoissonDomainBC::getFirstOrderFluxStencil | ( | VoFStencil & | a_stencil, |
const FaceIndex & | a_face, | ||
const int & | a_comp, | ||
const RealVect & | a_dx, | ||
const int & | a_idir, | ||
const Side::LoHiSide & | a_side, | ||
const EBISBox & | a_ebisBox | ||
) |
Referenced by isDirichletDom().
void DirichletPoissonDomainBC::getSecondOrderFluxStencil | ( | VoFStencil & | a_stencil, |
const FaceIndex & | a_face, | ||
const int & | a_comp, | ||
const RealVect & | a_dx, | ||
const int & | a_idir, | ||
const Side::LoHiSide & | a_side, | ||
const EBISBox & | a_ebisBox | ||
) |
Referenced by isDirichletDom().
bool DirichletPoissonDomainBC::m_isDefined |
|
private |
Referenced by setData(), and DirichletPoissonDomainBCFactory::setData().
|
private |
|
private |
|
private |
Referenced by setData(), and DirichletPoissonDomainBCFactory::setData().
|
private |
Referenced by setData(), and DirichletPoissonDomainBCFactory::setData().
|
private |