DirichletPoissonDomainBC Class Reference

#include <DirichletPoissonDomainBC.H>

Inheritance diagram for DirichletPoissonDomainBC:

Inheritance graph
[legend]

List of all members.

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 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 [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 
)


Member Data Documentation


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

Generated on Thu Apr 27 04:03:48 2017 for Chombo + EB by  doxygen 1.5.5