DirichletViscousTensorEBBC Class Reference

#include <DirichletViscousTensorEBBC.H>

Inheritance diagram for DirichletViscousTensorEBBC:

Inheritance graph
[legend]

List of all members.

Public Member Functions

 DirichletViscousTensorEBBC ()
 DirichletViscousTensorEBBC (const ProblemDomain &a_domain, const EBISLayout &a_layout, const RealVect &a_dx, const IntVect *a_ghostCellsPhi, const IntVect *a_ghostCellsRhs)
virtual ~DirichletViscousTensorEBBC ()
virtual void define (const LayoutData< IntVectSet > &a_cfivs, const Real &a_factor)
virtual LayoutData< BaseIVFAB
< VoFStencil > > * 
getFluxStencil (int ivar)
virtual void applyEBFlux (EBCellFAB &a_lphi, const EBCellFAB &a_phi, VoFIterator &a_vofit, const LayoutData< IntVectSet > &a_cfivs, const DataIndex &a_dit, const RealVect &a_probLo, const RealVect &a_dx, const Real &a_factor, const bool &a_useHomogeneous, const Real &a_time)
void getGradient (Real a_grad[SpaceDim][SpaceDim], const VolIndex &a_vof, const EBCellFAB &a_phi, const EBISBox &a_ebisBox, const DataIndex &a_dit, const Real &a_dx, bool a_homogeneous)
void getGradientStenValue (Real a_grad[SpaceDim][SpaceDim], const VolIndex &a_vof, const EBCellFAB &a_phi, const EBISBox &a_ebisBox, const DataIndex &a_dit, const Real &a_dx, bool a_homogeneous)

Protected Member Functions

void getGradInhomOnly (Real a_grad[SpaceDim][SpaceDim], const Real &a_weight, const VolIndex &a_vof, const EBISBox &a_ebisBox, const Real &a_dx)
void getNormalStencil (VoFStencil &a_stencil, Real &a_weight, const VolIndex &a_vof, const EBISBox &a_ebisBox, const RealVect &a_dx, const IntVectSet &a_cfivs)
void getFluxStencil (VoFStencil a_stencil[SpaceDim], Real a_weight[SpaceDim], const DataIndex &a_dit, const VolIndex &a_vof, const EBISBox &a_ebisBox, const RealVect &a_dx, const IntVectSet &a_cfivs)
void getGradientFunction (Real a_grad[SpaceDim][SpaceDim], const VolIndex &a_vof, const EBCellFAB &a_phi, const EBISBox &a_ebisBox, const DataIndex &a_dit, const Real &a_dx, bool a_homogeneous)
bool getSecondOrderStencil (VoFStencil &a_stencil, Real &a_weight, Vector< VoFStencil > &a_pointStencil, Vector< Real > &a_distanceAlongLine, const VolIndex &a_vof, const EBISBox &a_ebisBox, const RealVect &a_dx, const IntVectSet &a_cfivs)
void getFirstOrderStencil (VoFStencil &a_stencil, Real &a_weight, const VolIndex &a_vof, const EBISBox &a_ebisBox, const RealVect &a_dx, const IntVectSet &a_cfivs)
void getJacobianAndInverse (Real a_Jacobian[SpaceDim][SpaceDim], Real a_Jinverse[SpaceDim][SpaceDim], RealVect &a_normal, RealVect a_tangents[SpaceDim-1])
virtual RealVect getInhomogeneousContribution (const VolIndex &a_vof, const EBCellFAB &a_phi, const EBISBox &a_ebisBox, const DataIndex &a_dit, const Real &a_dx)
void getFlux (Real a_flux[SpaceDim][SpaceDim], const VolIndex &a_vof, const EBCellFAB &a_phi, const EBISBox &a_ebisBox, const DataIndex &a_dit, const Real &a_dx, bool a_homogeneous)
void getCartesianGradientStencil (VoFStencil a_gradStencils[SpaceDim][SpaceDim], VoFStencil &a_normalStencil, const DataIndex &a_dit, const VolIndex &a_vof, const EBISBox &a_ebisBox, const RealVect &a_dx)

Protected Attributes

bool m_isDefined
ProblemDomain m_domain
EBISLayout m_ebisl
RealVect m_dx
LayoutData< BaseIVFAB
< VoFStencil > > 
m_fluxStencil [CH_SPACEDIM]
LayoutData< BaseIVFAB< Real > > m_fluxWeight [CH_SPACEDIM]
const IntVect m_ghostCellsPhi
const IntVect m_ghostCellsRHS

Static Protected Attributes

static int s_leastSquaresRad


Constructor & Destructor Documentation

DirichletViscousTensorEBBC::DirichletViscousTensorEBBC (  ) 

DirichletViscousTensorEBBC::DirichletViscousTensorEBBC ( const ProblemDomain a_domain,
const EBISLayout a_layout,
const RealVect a_dx,
const IntVect a_ghostCellsPhi,
const IntVect a_ghostCellsRhs 
)

If the optional a_ghostCells(Phi,Rhs) args are NULL, we won't use the VoF cache.

virtual DirichletViscousTensorEBBC::~DirichletViscousTensorEBBC (  )  [virtual]


Member Function Documentation

virtual void DirichletViscousTensorEBBC::define ( const LayoutData< IntVectSet > &  a_cfivs,
const Real a_factor 
) [virtual]

Implements BaseEBBC.

virtual LayoutData<BaseIVFAB<VoFStencil> >* DirichletViscousTensorEBBC::getFluxStencil ( int  ivar  )  [inline, virtual]

Return a pointer to the homogenous flux stencil for the boundary condition. contribution. In the case where there in no contribution in the homogeneous case (ie. homogeneous Neumann) return NULL.

Implements BaseEBBC.

References m_fluxStencil.

virtual void DirichletViscousTensorEBBC::applyEBFlux ( EBCellFAB a_lphi,
const EBCellFAB a_phi,
VoFIterator a_vofit,
const LayoutData< IntVectSet > &  a_cfivs,
const DataIndex a_dit,
const RealVect a_probLo,
const RealVect a_dx,
const Real a_factor,
const bool &  a_useHomogeneous,
const Real a_time 
) [virtual]

add change in lphi due to eb flux

Implements BaseEBBC.

void DirichletViscousTensorEBBC::getGradient ( Real  a_grad[SpaceDim][SpaceDim],
const VolIndex a_vof,
const EBCellFAB a_phi,
const EBISBox a_ebisBox,
const DataIndex a_dit,
const Real a_dx,
bool  a_homogeneous 
)

public for testing. gets the gradient of the solution at centroid of the embedded boundary given the boundary condition and the solution. In both cases, it uses the johansen stencil for the normal gradient. For the tangential gradient, in the function case, it calls the derivative function (in the value case, it sets tangential gradients to zero). Since the derivative function operates in cartesian space there is some complication (set all cartesian gradients. rotate to NT space. overwrite normal gradient. rotate back to cartesian space).

void DirichletViscousTensorEBBC::getGradientStenValue ( Real  a_grad[SpaceDim][SpaceDim],
const VolIndex a_vof,
const EBCellFAB a_phi,
const EBISBox a_ebisBox,
const DataIndex a_dit,
const Real a_dx,
bool  a_homogeneous 
)

void DirichletViscousTensorEBBC::getGradInhomOnly ( Real  a_grad[SpaceDim][SpaceDim],
const Real a_weight,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const Real a_dx 
) [protected]

void DirichletViscousTensorEBBC::getNormalStencil ( VoFStencil a_stencil,
Real a_weight,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const RealVect a_dx,
const IntVectSet a_cfivs 
) [protected]

void DirichletViscousTensorEBBC::getFluxStencil ( VoFStencil  a_stencil[SpaceDim],
Real  a_weight[SpaceDim],
const DataIndex a_dit,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const RealVect a_dx,
const IntVectSet a_cfivs 
) [protected]

void DirichletViscousTensorEBBC::getGradientFunction ( Real  a_grad[SpaceDim][SpaceDim],
const VolIndex a_vof,
const EBCellFAB a_phi,
const EBISBox a_ebisBox,
const DataIndex a_dit,
const Real a_dx,
bool  a_homogeneous 
) [protected]

bool DirichletViscousTensorEBBC::getSecondOrderStencil ( VoFStencil a_stencil,
Real a_weight,
Vector< VoFStencil > &  a_pointStencil,
Vector< Real > &  a_distanceAlongLine,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const RealVect a_dx,
const IntVectSet a_cfivs 
) [protected]

void DirichletViscousTensorEBBC::getFirstOrderStencil ( VoFStencil a_stencil,
Real a_weight,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const RealVect a_dx,
const IntVectSet a_cfivs 
) [protected]

void DirichletViscousTensorEBBC::getJacobianAndInverse ( Real  a_Jacobian[SpaceDim][SpaceDim],
Real  a_Jinverse[SpaceDim][SpaceDim],
RealVect a_normal,
RealVect  a_tangents[SpaceDim-1] 
) [protected]

virtual RealVect DirichletViscousTensorEBBC::getInhomogeneousContribution ( const VolIndex a_vof,
const EBCellFAB a_phi,
const EBISBox a_ebisBox,
const DataIndex a_dit,
const Real a_dx 
) [protected, virtual]

void DirichletViscousTensorEBBC::getFlux ( Real  a_flux[SpaceDim][SpaceDim],
const VolIndex a_vof,
const EBCellFAB a_phi,
const EBISBox a_ebisBox,
const DataIndex a_dit,
const Real a_dx,
bool  a_homogeneous 
) [protected]

void DirichletViscousTensorEBBC::getCartesianGradientStencil ( VoFStencil  a_gradStencils[SpaceDim][SpaceDim],
VoFStencil a_normalStencil,
const DataIndex a_dit,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const RealVect a_dx 
) [protected]


Member Data Documentation

Referenced by getFluxStencil().


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

Generated on Fri Apr 5 04:25:00 2019 for Chombo + EB by  doxygen 1.5.5