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

#include <NeumannPoissonDomainBC.H>

Inheritance diagram for NeumannPoissonDomainBC:
Inheritance graph
[legend]

Public Member Functions

 NeumannPoissonDomainBC ()
 
virtual ~NeumannPoissonDomainBC ()
 
virtual void setValue (Real a_value)
 
virtual void setFunction (RefCountedPtr< BaseBCValue > a_flux)
 
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)
 
bool isDirichletDom (const VolIndex &a_ivof, const VolIndex &a_jvof, const EBCellFAB &a_phi) const
 
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)
 
virtual 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)
 
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)
 
virtual void getFaceFluxGradPhi (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 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 getInhomFaceFluxGradPhi (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 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)
 
- Public Member Functions inherited from BaseDomainBC
 BaseDomainBC ()
 
virtual ~BaseDomainBC ()
 
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)
 
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)
 

Private Attributes

bool m_onlyHomogeneous
 
bool m_isFunction
 
Real m_value
 
RefCountedPtr< BaseBCValuem_flux
 

Constructor & Destructor Documentation

◆ NeumannPoissonDomainBC()

NeumannPoissonDomainBC::NeumannPoissonDomainBC ( )

◆ ~NeumannPoissonDomainBC()

virtual NeumannPoissonDomainBC::~NeumannPoissonDomainBC ( )
virtual

Member Function Documentation

◆ setValue()

virtual void NeumannPoissonDomainBC::setValue ( Real  a_value)
virtual

◆ setFunction()

virtual void NeumannPoissonDomainBC::setFunction ( RefCountedPtr< BaseBCValue a_flux)
virtual

◆ getFaceFlux() [1/2]

virtual void NeumannPoissonDomainBC::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.

Referenced by isDirichletDom().

◆ isDirichletDom()

bool NeumannPoissonDomainBC::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 Neumann BC

Reimplemented from BaseDomainBC.

References getFaceFlux(), getFaceFluxGradPhi(), getFaceGradPhi(), getFaceVel(), getInhomFaceFlux(), getInhomFaceFluxGradPhi(), and getInhomFaceGradPhi().

◆ getFaceFlux() [2/2]

virtual void NeumannPoissonDomainBC::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.

◆ getInhomFaceFlux()

virtual void NeumannPoissonDomainBC::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

This is used by the elliptic solvers to get the flux of stuff through domain faces.

Reimplemented from BaseDomainBC.

Referenced by isDirichletDom().

◆ getFaceGradPhi()

virtual void NeumannPoissonDomainBC::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 operator to get grad(phi) at domain faces.

Implements BaseDomainBC.

Referenced by isDirichletDom().

◆ getFaceFluxGradPhi()

virtual void NeumannPoissonDomainBC::getFaceFluxGradPhi ( 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 extrapolated grad(phi) at domain faces for cell-centered gradient. Called by getFaceFlux.

Referenced by isDirichletDom().

◆ getInhomFaceGradPhi()

virtual void NeumannPoissonDomainBC::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

Referenced by isDirichletDom().

◆ getInhomFaceFluxGradPhi()

virtual void NeumannPoissonDomainBC::getInhomFaceFluxGradPhi ( 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

Referenced by isDirichletDom().

◆ getFaceVel()

virtual void NeumannPoissonDomainBC::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. This one just returns the value in a_vel(a_face).

Implements BaseDomainBC.

Referenced by isDirichletDom().

Member Data Documentation

◆ m_onlyHomogeneous

bool NeumannPoissonDomainBC::m_onlyHomogeneous
private

◆ m_isFunction

bool NeumannPoissonDomainBC::m_isFunction
private

◆ m_value

Real NeumannPoissonDomainBC::m_value
private

◆ m_flux

RefCountedPtr<BaseBCValue> NeumannPoissonDomainBC::m_flux
private

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