Chombo + EB  3.0
Public Member Functions | Public Attributes | Private Attributes | List of all members
DirichletPoissonDomainBC Class Reference

#include <DirichletPoissonDomainBC.H>

Inheritance diagram for DirichletPoissonDomainBC:
Inheritance graph
[legend]

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, const bool &a_doDivFreeOutflow)
 
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, const bool &a_doDivFreeOutflow)
 
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 bool &a_doDivFreeOutflow, const int &a_comp)
 

Public Attributes

bool m_isDefined
 

Private Attributes

bool m_onlyHomogeneous
 
bool m_isFunctional
 
Real m_value
 
RefCountedPtr< BaseBCValuem_func
 
int m_ebOrder
 

Constructor & Destructor Documentation

DirichletPoissonDomainBC::DirichletPoissonDomainBC ( )
virtual DirichletPoissonDomainBC::~DirichletPoissonDomainBC ( )
virtual

Member Function Documentation

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,
const bool &  a_doDivFreeOutflow 
)
virtual

This is used by the projections to get velocity at domain faces where eb intersects. Sets velocity to a dirichlet value.

Implements 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
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.

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 
)

Member Data Documentation

bool DirichletPoissonDomainBC::m_isDefined
bool DirichletPoissonDomainBC::m_onlyHomogeneous
private
bool DirichletPoissonDomainBC::m_isFunctional
private
Real DirichletPoissonDomainBC::m_value
private
RefCountedPtr<BaseBCValue> DirichletPoissonDomainBC::m_func
private
int DirichletPoissonDomainBC::m_ebOrder
private

The documentation for this class was generated from the following file: