#include <DirichletPoissonDomainBC.H>
Public Member Functions | |
DirichletPoissonDomainBC () | |
virtual | ~DirichletPoissonDomainBC () |
virtual void | setValue (Real a_value) |
virtual void | setFunction (RefCountedPtr< BaseBCValue > a_func) |
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 Attributes | |
bool | m_isDefined |
Private Attributes | |
bool | m_onlyHomogeneous |
bool | m_isFunctional |
Real | m_value |
RefCountedPtr< BaseBCValue > | m_func |
int | m_ebOrder |
DirichletPoissonDomainBC::DirichletPoissonDomainBC | ( | ) |
virtual DirichletPoissonDomainBC::~DirichletPoissonDomainBC | ( | ) | [virtual] |
virtual void DirichletPoissonDomainBC::setValue | ( | Real | a_value | ) | [virtual] |
virtual void DirichletPoissonDomainBC::setFunction | ( | RefCountedPtr< BaseBCValue > | a_func | ) | [virtual] |
virtual void DirichletPoissonDomainBC::setEBOrder | ( | int | a_ebOrder | ) | [virtual] |
use this for order of domain boundary
virtual void DirichletPoissonDomainBC::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] |
This is used by the projections to get velocity at domain faces where eb intersects. Sets velocity to a dirichlet value.
Reimplemented from BaseDomainBC.
virtual void DirichletPoissonDomainBC::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 | |||
) | [virtual] |
Implements BaseDomainBC.
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 | |||
) |
virtual void DirichletPoissonDomainBC::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 | |||
) | [virtual] |
Elliptic solver flux.
Implements BaseDomainBC.
void DirichletPoissonDomainBC::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 | |||
) | [virtual] |
Elliptic solver flux.
Reimplemented from BaseDomainBC.
bool DirichletPoissonDomainBC::isDirichletDom | ( | const VolIndex & | a_ivof, | |
const VolIndex & | a_jvof, | |||
const EBCellFAB & | a_phi | |||
) | const [inline, virtual] |
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.
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
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 void DirichletPoissonDomainBC::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 | |||
) | [virtual] |
This is used by the projections to get grad(phi) at domain faces (usually outflow). Called by InflowOutflowPoissonDomainBC::getFaceFlux.
Implements BaseDomainBC.
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.
virtual void DirichletPoissonDomainBC::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] |
Reimplemented from BaseDomainBC.
virtual void DirichletPoissonDomainBC::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 | |||
) | [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 | |||
) |
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 | |||
) |
bool DirichletPoissonDomainBC::m_onlyHomogeneous [private] |
bool DirichletPoissonDomainBC::m_isFunctional [private] |
Real DirichletPoissonDomainBC::m_value [private] |
int DirichletPoissonDomainBC::m_ebOrder [private] |