Chombo + EB
3.2
|
#include <DirichletViscousTensorEBBC.H>
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) |
![]() | |
ViscousBaseEBBC () | |
virtual | ~ViscousBaseEBBC () |
void | setCoef (EBLevelGrid &a_eblg, Real &a_beta, RefCountedPtr< LevelData< BaseIVFAB< Real > > > &a_eta, RefCountedPtr< LevelData< BaseIVFAB< Real > > > &a_lambda, RefCountedPtr< LevelData< EBFluxFAB > > &a_etaOpen, RefCountedPtr< LevelData< EBFluxFAB > > &a_lambdaOpen) |
virtual void | setValue (Real a_value) |
virtual void | setFunction (RefCountedPtr< BaseBCFuncEval > a_func) |
void | getBoundaryGrad (Real a_grad[CH_SPACEDIM][CH_SPACEDIM], const VolIndex &a_vof, const RealVect &a_dx, const RealVect &a_probLo, const EBISBox &a_ebisBox) |
void | getFluxFromGrad (Real a_flux[CH_SPACEDIM][CH_SPACEDIM], const Real a_grad[CH_SPACEDIM][CH_SPACEDIM], const VolIndex &a_vof, const DataIndex &a_dit) |
void | getChangeInSolution (Real a_deltaLph[CH_SPACEDIM], const Real a_flux[CH_SPACEDIM][CH_SPACEDIM], const RealVect &a_dx, const VolIndex &a_vof, const DataIndex &a_dit, const EBISBox &a_ebisBox) |
![]() | |
BaseEBBC () | |
virtual | ~BaseEBBC () |
virtual void | getEBFlux (Real &a_flux, const VolIndex &a_vof, const LevelData< EBCellFAB > &a_phi, const LayoutData< IntVectSet > &a_cfivs, const DataIndex &a_dit, const RealVect &a_probLo, const RealVect &a_dx, const bool &a_useHomogeneous, const Real &a_time, const pair< int, Real > *a_cacheHint=0) |
deprecated interface. More... | |
virtual void | setData (RefCountedPtr< LevelData< BaseIVFAB< Real > > > &a_data) |
bool | dataBased () const |
virtual void | setType (RefCountedPtr< LevelData< BaseIVFAB< int > > > &a_type) |
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 |
![]() | |
bool | m_isFunction |
Real | m_value |
RefCountedPtr< BaseBCFuncEval > | m_func |
EBLevelGrid | m_eblg |
bool | m_coefSet |
Real | m_beta |
RefCountedPtr< LevelData< BaseIVFAB< Real > > > | m_eta |
RefCountedPtr< LevelData< BaseIVFAB< Real > > > | m_lambda |
RefCountedPtr< LevelData< EBFluxFAB > > | m_etaOpen |
RefCountedPtr< LevelData< EBFluxFAB > > | m_lambdaOpen |
![]() | |
RefCountedPtr< LevelData< BaseIVFAB< Real > > > | m_data |
bool | m_dataBased |
Static Protected Attributes | |
static int | s_leastSquaresRad |
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 |
|
virtual |
Implements BaseEBBC.
|
inlinevirtual |
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 applyEBFlux(), getCartesianGradientStencil(), getFirstOrderStencil(), getFlux(), getGradient(), getGradientFunction(), getGradientStenValue(), getGradInhomOnly(), getInhomogeneousContribution(), getJacobianAndInverse(), getNormalStencil(), getSecondOrderStencil(), m_fluxStencil, and SpaceDim.
|
virtual |
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).
Referenced by getFluxStencil().
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 | ||
) |
Referenced by getFluxStencil().
|
protected |
Referenced by getFluxStencil().
|
protected |
Referenced by getFluxStencil().
|
protected |
|
protected |
Referenced by getFluxStencil().
|
protected |
Referenced by getFluxStencil().
|
protected |
Referenced by getFluxStencil().
|
protected |
Referenced by getFluxStencil().
|
protectedvirtual |
Referenced by getFluxStencil().
|
protected |
Referenced by getFluxStencil().
|
protected |
Referenced by getFluxStencil().
|
staticprotected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Referenced by getFluxStencil().
|
protected |
|
protected |
|
protected |