Chombo + EB + MF  3.2
Static Public Member Functions | Static Private Attributes | List of all members
EBArith Class Reference

#include <EBArith.H>

Static Public Member Functions

static void getAllVoFsWithinRadiusExcludingStartVoF (Vector< VolIndex > &a_vofList, Vector< IntVect > &a_dist, const VolIndex &a_vof, const EBISBox &a_ebisBox, const int &a_redistRad)
 
static void convertToITM (IndexTM< Real, SpaceDim > &a_diffrv, const RealVect &a_rv)
 
static void convertToITM (IndexTM< int, SpaceDim > &a_diffrv, const IntVect &a_rv)
 
static void convertToITM (IndexTM< Real, SpaceDim-1 > &a_diffrv, const RealVect &a_rv, const int &a_ignoreIndex)
 
static void convertToITM (IndexTM< int, SpaceDim-1 > &a_diffrv, const IntVect &a_rv, const int &a_ignoreIndex)
 
static int getFirstDerivStencilWidthOne (VoFStencil &a_sten, const VolIndex &a_vof, const EBISBox &a_ebisBox, const int &a_idir, const Real &a_dx, IntVectSet *a_cfivsPtr, int ivar)
 
static void getLeastSquaresGradStenAllVoFsRad (VoFStencil &a_stencil, Real &a_weight, const RealVect &a_normal, const RealVect &a_centroid, const VolIndex &a_vof, const EBISBox &a_ebisBox, const RealVect &a_dx, const ProblemDomain &a_domain, int a_ivar, int a_rad)
 
static int getFirstOrderExtrapolationStencil (VoFStencil &a_stencil, const RealVect &a_dist, const RealVect &a_dx, const VolIndex &a_startVoF, const EBISBox &a_ebisBox, int a_noExtrapThisDir, IntVectSet *a_cfivsPtr, int ivar)
 
static int orderScript (int icomp, int inorm, int ncomp)
 
static void compareError (Vector< Real > &a_orders, const LevelData< EBCellFAB > &a_errorFine, const LevelData< EBCellFAB > &a_errorCoar, const DisjointBoxLayout &a_gridsFine, const DisjointBoxLayout &a_gridsCoar, const EBISLayout &a_ebislFine, const EBISLayout &a_ebislCoar, const Box &a_coarseDom, int a_testverbosity, fstream *a_fout=NULL, Vector< string > a_names=Vector< string >(), string a_prefix=string())
 
static void compareError (Vector< Real > &a_orders, const Vector< LevelData< EBCellFAB > * > &a_errorFine, const Vector< LevelData< EBCellFAB > * > &a_errorCoar, const Vector< DisjointBoxLayout > &a_gridsFine, const Vector< DisjointBoxLayout > &a_gridsCoar, const Vector< EBISLayout > &a_ebislFine, const Vector< EBISLayout > &a_ebislCoar, const Vector< int > &a_refRat, const Box &a_coarseDom, int a_testverbosity, fstream *a_fout=NULL, Vector< string > names=Vector< string >(), string prefix=string())
 
static Real irregNorm (const LevelData< BaseIVFAB< Real > > &a_dataOne, const DisjointBoxLayout &a_layout, const EBISLayout &a_ebisl, const int &a_comp, const int &a_p)
 
static void irregNorm (Real &a_ebIrregNorm, const BaseIVFAB< Real > &a_ebiError, const IntVectSet &a_ivsIrreg, const EBISBox &a_ebisBox, const int &a_comp, const int &a_normtype)
 
static void compareIrregError (Vector< Real > &a_orders, const LevelData< BaseIVFAB< Real > > &a_errorFine, const LevelData< BaseIVFAB< Real > > &a_errorCoar, const DisjointBoxLayout &a_gridsFine, const DisjointBoxLayout &a_gridsCoar, const EBISLayout &a_ebislFine, const EBISLayout &a_ebislCoar, const Box &a_coarseDom, const string &a_prefix, Vector< string > a_names)
 
static void shrinkIVS (IntVectSet &a_ivs, const int &a_numShrink)
 
static void timeInterpolate (LevelData< EBCellFAB > &a_U, const LevelData< EBCellFAB > &a_UOld, const LevelData< EBCellFAB > &a_UNew, const DisjointBoxLayout &a_grids, const Real &a_time, const Real &a_told, const Real &a_tnew)
 
static Real getDiagWeight (VoFStencil &a_vofStencil, const VolIndex &a_vof, int a_var=0)
 
static void getMultiColors (Vector< IntVect > &a_colors)
 
static void interpolateCFH (EBCellFAB &a_phi, const int &a_idir, const Side::LoHiSide &a_hiorlo, const EBISBox &a_ebisBox, const Real &a_dxfine, const Real &a_dxcoar, const IntVectSet &a_interpIVS)
 
static int getExtrapolationStencil (VoFStencil &a_stencil, const RealVect &a_dist, const RealVect &a_dx, const VolIndex &a_startVoF, const EBISBox &a_ebisBox, int a_noExtrapThisDirection=-1, IntVectSet *a_cfivsPtr=NULL, int ivar=0)
 
static int get1stOrderExtrapolationStencil (VoFStencil &a_stencil, const RealVect &a_dist, const RealVect &a_dx, const VolIndex &a_startVoF, const EBISBox &a_ebisBox, int a_noExtrapThisDirection=-1, IntVectSet *a_cfivsPtr=NULL, int ivar=0)
 
static void getDir1Dir2 (int &a_dir1, int &a_dir2, const int &a_dir)
 
static void loHiCenter (Box &a_loBox, int &a_hasLo, Box &a_hiBox, int &a_hasHi, Box &a_centerBox, const ProblemDomain &a_eblg, const Box &a_inBox, const int &a_dir, IntVectSet *a_cfivsPtr=NULL)
 
static void loHi (Box &a_loBox, int &a_hasLo, Box &a_hiBox, int &a_hasHi, const ProblemDomain &a_eblg, const Box &a_inBox, const int &a_dir)
 
static bool getCoarserLayouts (DisjointBoxLayout &a_dblCoar, ProblemDomain &a_domainCoar, const DisjointBoxLayout &a_dblFine, const ProblemDomain &a_domainFine, int a_refToCoar, int a_maxBoxSize, bool &a_layoutChanged, int a_testRef=2)
 
static int getFirstDerivStencil (VoFStencil &a_sten, const VolIndex &a_vof, const EBISBox &a_ebisBox, const int &a_idir, const Real &a_dx, IntVectSet *a_cfivsPtr=NULL, int ivar=0)
 
static int getMixedDerivStencil (VoFStencil &a_sten, const VolIndex &a_vof, const EBISBox &a_ebisBox, const int &a_dir1, const int &a_dir2, const Real &a_dx1, const Real &a_dx2, IntVectSet *a_cfivsPtr=NULL, int ivar=0)
 
static int getSecondDerivStencil (VoFStencil &a_sten, const VolIndex &a_vof, const EBISBox &a_ebisBox, const int &a_idir, const Real &a_dx, IntVectSet *a_cfivsPtr=NULL, int ivar=0)
 
static void getVoFsDir (bool &a_hasClose, VolIndex &a_closeVoF, bool &a_hasFar, VolIndex &a_farVoF, const EBISBox &a_ebisBox, const VolIndex &a_vof, int a_idir, Side::LoHiSide a_sd, IntVectSet *a_cfivsPtr)
 
static void defineCFIVS (LayoutData< IntVectSet > &a_cfivs, const DisjointBoxLayout &a_grids, const ProblemDomain &a_probDom)
 
static Real extrapFaceGradToOutflow (const FaceIndex &a_bndryFace, const Side::LoHiSide &a_side, const int &a_idir, const EBGraph &a_ebGraph, const EBFaceFAB &a_faceData, const int &a_comp)
 
static Real extrapFaceValueToDomain (const FaceIndex &a_bndryFace, const Side::LoHiSide &a_side, const int &a_idir, const EBGraph &a_ebGraph, const EBFaceFAB &a_faceData, const int &a_comp, const Real &a_dropOrderValue=0.)
 
static Real extrapFaceVelToOutflow (const FaceIndex &a_bndryFace, const Side::LoHiSide &a_side, const int &a_idir, const EBGraph &a_ebGraph, const EBFaceFAB &a_faceData, const int &a_comp)
 
static Real interpolateVel (const EBFaceFAB &a_vel, const EBISBox &a_ebisBox, const FaceIndex &a_face)
 
static Real deInterpolateVel (const Real &a_centroidVel, const EBFaceFAB &a_vel, const EBISBox &a_ebisBox, const FaceIndex &a_face)
 
static Real getFaceVelForDivFreeCell (const FaceIndex &a_face, const VolIndex &a_vof, const int &a_idir, const Side::LoHiSide &a_side, const EBFluxFAB &a_vel, const RealVect &a_dx, const EBISBox &a_ebisBox)
 
static void meanOverHierarchy (Real &a_mean, const Vector< LevelData< EBCellFAB > *> &a_divu, const Vector< DisjointBoxLayout > &a_grids, const Vector< EBISLayout > &a_ebisl, const Vector< int > &a_refRat, const ProblemDomain &a_domainCoarsest, const RealVect &a_dxCoarsest, const int &a_comp, int pval=-1)
 
static Real getJohanVoFWeight (const VolIndex &a_whichVoF, const RealVect &a_intersectLoc, const IntVect &a_intersectIV, const int &a_nMaxDir, const RealVect &a_dx)
 
static void johanStencil (bool &a_dropOrder, Vector< VoFStencil > &a_pointStencils, Vector< Real > &a_distanceAlongLine, const RealVect &a_normal, const RealVect &a_bndryCentroid, const VolIndex &a_vof, const EBISBox &a_ebisBox, const RealVect &a_dx, const IntVectSet &a_cfivs, int a_ivar=0)
 version which uses incoming normal, boundary centroid More...
 
static void johanStencil (bool &a_dropOrder, Vector< VoFStencil > &a_pointStencils, Vector< Real > &a_distanceAlongLine, const VolIndex &a_vof, const EBISBox &a_ebisBox, const RealVect &a_dx, const IntVectSet &a_cfivs, int a_ivar=0)
 
static void getLeastSquaresGradSten (VoFStencil &a_stencil, Real &a_weight, const VolIndex &a_vof, const EBISBox &a_ebisBox, const RealVect &a_dx, const ProblemDomain &a_domain, int a_ivar=0)
 standard interface More...
 
static void getLeastSquaresGradSten (VoFStencil &a_stencil, Real &a_weight, const RealVect &a_normal, const RealVect &a_centroid, const VolIndex &a_vof, const EBISBox &a_ebisBox, const RealVect &a_dx, const ProblemDomain &a_domain, int a_ivar=0)
 version which uses incoming normal, boundary centroid More...
 
static void getLeastSquaresGradSten (VoFStencil &a_stencil, Real &a_weight, const RealVect &a_normal, const RealVect &a_centroid, const IntVect &a_quadrant, const VolIndex &a_vof, const EBISBox &a_ebisBox, const RealVect &a_dx, const ProblemDomain &a_domain, int a_ivar=0)
 version which uses incoming normal, boundary centroid More...
 
static void getLeastSquaresGradStenAllVoFs (VoFStencil &a_stencil, Real &a_weight, const RealVect &a_normal, const RealVect &a_centroid, const VolIndex &a_vof, const EBISBox &a_ebisBox, const RealVect &a_dx, const ProblemDomain &a_domain, int a_ivar)
 
static void getLeastSquaresGradStenAllQuad (VoFStencil &a_stencil, Real &a_weight, const RealVect &a_normal, const RealVect &a_centroid, const VolIndex &a_vof, const EBISBox &a_ebisBox, const RealVect &a_dx, const ProblemDomain &a_domain, int a_ivar, bool a_doSymmetric=false)
 
static void calculateWeightingMatrix (RealVect x0, Vector< RealVect > &xp, Vector< RealVect > &weightMatrix, bool &detZero)
 
static void calculateWeightingMatrixRed (RealVect x0, Vector< RealVect > &xp, IntVect dimm, Vector< RealVect > &weightMatrix, bool &deadRed)
 
static RealVect getDomainNormal (int a_idir, Side::LoHiSide a_side)
 gets the normal of a domain face More...
 
static RealVect getFaceLocation (const FaceIndex &a_face, const RealVect &a_dx, const RealVect &a_probLo)
 gets the location in real space of a face center More...
 
static RealVect getFaceLocation (const FaceIndex &a_face, const Real &a_dx, const RealVect &a_probLo)
 gets the location in real space of a face center More...
 
static void dataRayCast (bool &a_dropOrder, Vector< VoFStencil > &a_pointStencils, Vector< Real > &a_distanceAlongLine, const RealVect &a_normal, const RealVect &a_bndryCentroid, const VolIndex &a_vof, const EBISBox &a_ebisBox, const RealVect &a_dx, const IntVectSet &a_cfivs, int a_ivar, int a_numPoints)
 get stencils for points along a line (generalized johansen stencil) More...
 
static RealVect getVofLocation (const VolIndex &a_vof, const RealVect &a_dx, const RealVect &a_probLo)
 gets the location in real space of a cell center More...
 
static RealVect getVoFLocation (const VolIndex &a_vof, const RealVect &a_dx, const RealVect &a_probLo)
 I have misspelled this one time too many. More...
 
static RealVect getVoFLocation (const VolIndex &a_vof, const Real &a_dx, const RealVect &a_probLo)
 I have misspelled this one time too many. More...
 
static RealVect getVofLocation (const VolIndex &a_vof, const Real &a_dx, const RealVect &a_probLo)
 I have misspelled this one time too many. More...
 
static RealVect getIVLocation (const IntVect &a_iv, const RealVect &a_dx, const RealVect &a_probLo)
 gets the location in real space of a cell center More...
 
static void defineFluxInterpolant (LevelData< BaseIFFAB< Real > > &a_fluxInterpolant, LayoutData< IntVectSet > &a_irregSetsGrown, const DisjointBoxLayout &a_dbl, const EBISLayout &a_ebisl, const ProblemDomain &a_domain, const int &a_ncomp, const int &a_faceDir)
 
static void interpolateFluxToCentroids (LevelData< EBFluxFAB > &a_centroidFlux, const LevelData< EBFluxFAB > &a_faceCentFlux, const DisjointBoxLayout &a_grids, const EBISLayout &a_ebisl, const ProblemDomain &a_domain)
 
static void interpolateFluxToCentroids (EBFaceFAB &a_centroidFlux, const EBFaceFAB &a_faceCentFlux, const Box &a_box, const EBISBox &a_ebisBox, const ProblemDomain &a_domain, const int &a_idir)
 
static FaceStencil getInterpStencil (const FaceIndex &a_face, const IntVectSet &a_coarseFineIVS, const EBISBox &a_ebisBox, const ProblemDomain &a_domainBox)
 
static void getInterpStencil2D (FaceStencil &a_sten, const FaceIndex &a_face, const IntVectSet &a_coarseFineIVS, const EBISBox &a_ebisBox, const ProblemDomain &a_domainBox)
 
static void getInterpStencil3D (FaceStencil &a_sten, const FaceIndex &a_face, const IntVectSet &a_coarseFineIVS, const EBISBox &a_ebisBox, const ProblemDomain &a_domainBox)
 
static bool isVoFHere (VolIndex &a_vof, const Vector< VolIndex > &a_vofsStencil, const IntVect &a_cell)
 
static bool isVoFHere (VolIndex &a_vof, int &a_whichVoF, const Vector< VolIndex > &a_vofsStencil, const IntVect &a_cell)
 
static void getAllVoFsInMonotonePath (Vector< VolIndex > &a_vofList, const VolIndex &a_vof, const EBISBox &a_ebisBox, const int &a_redistRad)
 
static void getAllVoFsWithinRadius (Vector< VolIndex > &a_vofList, Vector< IntVect > &a_dist, const VolIndex &a_vof, const EBISBox &a_ebisBox, const int &a_redistRad)
 
static void getKVolRZ (Real &a_kvol, Real &a_cellVol, const EBISBox &a_ebisBox, const Real &a_dx, const VolIndex &a_vof)
 get volume of a vof in rz coords More...
 
static void getKVolRZNoDx (Real &a_kvol, Real &a_cellVolDx3, const EBISBox &a_ebisBox, const VolIndex &a_vof)
 get volume of a vof in rz coords More...
 
static bool getAdjacentFace (FaceIndex &a_adjacentFace, const FaceIndex &a_face, const EBISBox &a_ebisBox, const ProblemDomain &a_domain, const int &a_idir, const Side::LoHiSide &a_side)
 
static void computeGradFluxStencil (VoFStencil &a_thisStencil, const FaceIndex &a_thisFace, const EBISBox &a_ebisBox, const ProblemDomain &a_domain, const int &a_dir)
 
static void computeInterpStencil (FaceStencil &a_thisStencil, const FaceIndex &a_thisFace, const EBISBox &a_ebisBox, const ProblemDomain &a_domain, const int &a_dir)
 
static void volWeightedSum (Real &a_norm, Real &a_volume, const EBCellFAB &a_src, const Box &a_region, const EBISBox &a_ebisBox, const RealVect &a_dx, const IntVectSet &a_ivsExclude, const int &a_comp, const int &a_p, EBNormType::NormMode=EBNormType::OverBoth)
 
static void getCompVolRZ (Real &a_compVol, const EBISBox &a_ebisBox, const Real &a_dx, const VolIndex &a_vof, bool a_verbose=false)
 
static void computeSum (Real &a_norm, Real &a_volume, const EBCellFAB &a_src, const Box &a_region, const EBISBox &a_ebisBox, const RealVect &a_dx, const IntVectSet &a_ivsExclude, const int &a_comp, EBNormType::NormMode=EBNormType::OverBoth)
 
static void computeUnweightedSum (Real &a_norm, Real &a_volume, const EBCellFAB &a_src, const Box &a_region, const EBISBox &a_ebisBox, const RealVect &a_dx, const IntVectSet &a_ivsExclude, const int &a_comp, EBNormType::NormMode=EBNormType::OverBoth)
 
static Real norm (const BoxLayoutData< EBCellFAB > &a_dataOne, const BoxLayout &a_layout, const EBISLayout &a_ebisl, const int &comp, const int &p, EBNormType::NormMode=EBNormType::OverBoth)
 
static Real norm (const Vector< LevelData< EBCellFAB > * > &a_data, const Vector< DisjointBoxLayout > &a_layout, const Vector< EBISLayout > &a_ebisl, const Vector< int > &a_refRatio, const int &comp, const int &p, EBNormType::NormMode=EBNormType::OverBoth)
 
static void computeCoveredFaces (Vector< VolIndex > &a_coveredFace, IntVectSet &a_coveredSets, IntVectSet &a_irregIVS, const int &a_idir, const Side::LoHiSide &a_sd, const EBISBox &a_ebisBox, const Box &a_region)
 
static Real norm (Real &volume, const BoxLayoutData< EBCellFAB > &a_dataOne, const BoxLayout &a_layout, const EBISLayout &a_ebisl, const int &comp, const int &p, EBNormType::NormMode=EBNormType::OverBoth)
 
static Real norm (const EBCellFAB &a_dataOne, const Box &a_grid, const EBISBox &a_ebisl, const int &a_comp, const int &a_p, EBNormType::NormMode=EBNormType::OverBoth)
 
static Real norm (Real &volume, const EBCellFAB &a_dataOne, const Box &a_grid, const EBISBox &a_ebisl, const int &a_comp, const int &a_p, EBNormType::NormMode=EBNormType::OverBoth)
 
static void volWeightedSum (Real &a_sum, Real &a_volume, const BoxLayoutData< EBCellFAB > &a_dataOne, const BoxLayout &a_layout, const EBISLayout &a_ebisl, const RealVect &a_dx, const IntVectSet &a_ivsExclude, const int &a_comp, const int &a_p, EBNormType::NormMode=EBNormType::OverBoth)
 
static void sumBndryArea (Real &a_area, const BoxLayout &a_region, const EBISLayout &a_ebisl)
 
static Real dotProduct (const BoxLayoutData< EBCellFAB > &a_dataOne, const BoxLayoutData< EBCellFAB > &a_dataTwo, const BoxLayout &a_layout, const EBISLayout &a_ebisl, const int &a_comp)
 
static Real dotProduct (const EBCellFAB &a_dataOne, const EBCellFAB &a_dataTwo, const Box &a_layout, const EBISBox &a_ebisBox, const int &a_comp)
 
static void monotonePathVoFToCellMultiVoFs (Vector< VolIndex > &a_vofsInCell, const Vector< VolIndex > &a_vofsInPath, const IntVect &a_cell2, const EBISBox &a_ebisBox)
 
static bool monotonePathVoFToCellVoF (VolIndex &a_vof2, const VolIndex &a_vof1, const IntVect &a_cell2, const EBISBox &a_ebisBox)
 
static void getAllVoFsWithinRadius (Vector< VolIndex > &a_vofList, const VolIndex &a_vof, const EBISBox &a_ebisBox, const int &a_redistRad)
 
static void getAllVoFsWithinRadius (Vector< VolIndex > &a_vofList, const IntVect &a_timesMoved, const VolIndex &a_vof, const EBISBox &a_ebisBox, const int &a_redistRad)
 
static void getAllVoFsInMonotonePath (Vector< VolIndex > &a_vofs, const IntVect &a_timesMoved, const IntVect &a_pathSign, const VolIndex &a_vof, const EBISBox &a_ebisBox, const int &a_radius)
 
static VolIndexgetVoFMax ()
 
static RealgetValMax ()
 
static void setMinVolumeFraction (Real a_minVolFrac)
 

Static Private Attributes

static VolIndex s_vofMax
 
static Real s_valMax
 
static Real s_minVolFrac
 

Detailed Description

class to encapsulate the common arithmatic operations for ebfabs

Member Function Documentation

◆ getAllVoFsWithinRadiusExcludingStartVoF()

static void EBArith::getAllVoFsWithinRadiusExcludingStartVoF ( Vector< VolIndex > &  a_vofList,
Vector< IntVect > &  a_dist,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const int &  a_redistRad 
)
static

◆ convertToITM() [1/4]

static void EBArith::convertToITM ( IndexTM< Real, SpaceDim > &  a_diffrv,
const RealVect a_rv 
)
static

◆ convertToITM() [2/4]

static void EBArith::convertToITM ( IndexTM< int, SpaceDim > &  a_diffrv,
const IntVect a_rv 
)
static

◆ convertToITM() [3/4]

static void EBArith::convertToITM ( IndexTM< Real, SpaceDim-1 > &  a_diffrv,
const RealVect a_rv,
const int &  a_ignoreIndex 
)
static

◆ convertToITM() [4/4]

static void EBArith::convertToITM ( IndexTM< int, SpaceDim-1 > &  a_diffrv,
const IntVect a_rv,
const int &  a_ignoreIndex 
)
static

◆ getFirstDerivStencilWidthOne()

static int EBArith::getFirstDerivStencilWidthOne ( VoFStencil a_sten,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const int &  a_idir,
const Real a_dx,
IntVectSet a_cfivsPtr,
int  ivar 
)
static

Gets the stencil to take the first derivative of cell centered data. no high order one sided stuff (to keep stencil close)

◆ getLeastSquaresGradStenAllVoFsRad()

static void EBArith::getLeastSquaresGradStenAllVoFsRad ( VoFStencil a_stencil,
Real a_weight,
const RealVect a_normal,
const RealVect a_centroid,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const RealVect a_dx,
const ProblemDomain a_domain,
int  a_ivar,
int  a_rad 
)
static

Least square sten using all cells in a monotone path of radius a_rad

◆ getFirstOrderExtrapolationStencil()

static int EBArith::getFirstOrderExtrapolationStencil ( VoFStencil a_stencil,
const RealVect a_dist,
const RealVect a_dx,
const VolIndex a_startVoF,
const EBISBox a_ebisBox,
int  a_noExtrapThisDir,
IntVectSet a_cfivsPtr,
int  ivar 
)
static

◆ orderScript()

static int EBArith::orderScript ( int  icomp,
int  inorm,
int  ncomp 
)
static

◆ compareError() [1/2]

static void EBArith::compareError ( Vector< Real > &  a_orders,
const LevelData< EBCellFAB > &  a_errorFine,
const LevelData< EBCellFAB > &  a_errorCoar,
const DisjointBoxLayout a_gridsFine,
const DisjointBoxLayout a_gridsCoar,
const EBISLayout a_ebislFine,
const EBISLayout a_ebislCoar,
const Box a_coarseDom,
int  a_testverbosity,
fstream *  a_fout = NULL,
Vector< string >  a_names = Vector< string >(),
string  a_prefix = string() 
)
static

◆ compareError() [2/2]

static void EBArith::compareError ( Vector< Real > &  a_orders,
const Vector< LevelData< EBCellFAB > * > &  a_errorFine,
const Vector< LevelData< EBCellFAB > * > &  a_errorCoar,
const Vector< DisjointBoxLayout > &  a_gridsFine,
const Vector< DisjointBoxLayout > &  a_gridsCoar,
const Vector< EBISLayout > &  a_ebislFine,
const Vector< EBISLayout > &  a_ebislCoar,
const Vector< int > &  a_refRat,
const Box a_coarseDom,
int  a_testverbosity,
fstream *  a_fout = NULL,
Vector< string >  names = Vector< string >(),
string  prefix = string() 
)
static

o

◆ irregNorm() [1/2]

static Real EBArith::irregNorm ( const LevelData< BaseIVFAB< Real > > &  a_dataOne,
const DisjointBoxLayout a_layout,
const EBISLayout a_ebisl,
const int &  a_comp,
const int &  a_p 
)
static

◆ irregNorm() [2/2]

static void EBArith::irregNorm ( Real a_ebIrregNorm,
const BaseIVFAB< Real > &  a_ebiError,
const IntVectSet a_ivsIrreg,
const EBISBox a_ebisBox,
const int &  a_comp,
const int &  a_normtype 
)
static

◆ compareIrregError()

static void EBArith::compareIrregError ( Vector< Real > &  a_orders,
const LevelData< BaseIVFAB< Real > > &  a_errorFine,
const LevelData< BaseIVFAB< Real > > &  a_errorCoar,
const DisjointBoxLayout a_gridsFine,
const DisjointBoxLayout a_gridsCoar,
const EBISLayout a_ebislFine,
const EBISLayout a_ebislCoar,
const Box a_coarseDom,
const string &  a_prefix,
Vector< string >  a_names 
)
static

◆ shrinkIVS()

static void EBArith::shrinkIVS ( IntVectSet a_ivs,
const int &  a_numShrink 
)
static

◆ timeInterpolate()

static void EBArith::timeInterpolate ( LevelData< EBCellFAB > &  a_U,
const LevelData< EBCellFAB > &  a_UOld,
const LevelData< EBCellFAB > &  a_UNew,
const DisjointBoxLayout a_grids,
const Real a_time,
const Real a_told,
const Real a_tnew 
)
static

◆ getDiagWeight()

static Real EBArith::getDiagWeight ( VoFStencil a_vofStencil,
const VolIndex a_vof,
int  a_var = 0 
)
static

◆ getMultiColors()

static void EBArith::getMultiColors ( Vector< IntVect > &  a_colors)
static

◆ interpolateCFH()

static void EBArith::interpolateCFH ( EBCellFAB a_phi,
const int &  a_idir,
const Side::LoHiSide a_hiorlo,
const EBISBox a_ebisBox,
const Real a_dxfine,
const Real a_dxcoar,
const IntVectSet a_interpIVS 
)
static

◆ getExtrapolationStencil()

static int EBArith::getExtrapolationStencil ( VoFStencil a_stencil,
const RealVect a_dist,
const RealVect a_dx,
const VolIndex a_startVoF,
const EBISBox a_ebisBox,
int  a_noExtrapThisDirection = -1,
IntVectSet a_cfivsPtr = NULL,
int  ivar = 0 
)
static

returns the order of the extrapolation. the reason for the last argument is that you might not want the stencil to leak over in the noExtrap direction even though you have set a_dist to zero. This happens in CF interpolation where you have to really worry about stencil width.

◆ get1stOrderExtrapolationStencil()

static int EBArith::get1stOrderExtrapolationStencil ( VoFStencil a_stencil,
const RealVect a_dist,
const RealVect a_dx,
const VolIndex a_startVoF,
const EBISBox a_ebisBox,
int  a_noExtrapThisDirection = -1,
IntVectSet a_cfivsPtr = NULL,
int  ivar = 0 
)
static

returns the order of the extrapolation. the reason for the last argument is that you might not want the stencil to leak over in the noExtrap direction even though you have set a_dist to zero. This happens in CF interpolation where you have to really worry about stencil width.

◆ getDir1Dir2()

static void EBArith::getDir1Dir2 ( int &  a_dir1,
int &  a_dir2,
const int &  a_dir 
)
static

◆ loHiCenter()

static void EBArith::loHiCenter ( Box a_loBox,
int &  a_hasLo,
Box a_hiBox,
int &  a_hasHi,
Box a_centerBox,
const ProblemDomain a_eblg,
const Box a_inBox,
const int &  a_dir,
IntVectSet a_cfivsPtr = NULL 
)
static

send null ivs if you do not want lohicenter to care about cfivs

◆ loHi()

static void EBArith::loHi ( Box a_loBox,
int &  a_hasLo,
Box a_hiBox,
int &  a_hasHi,
const ProblemDomain a_eblg,
const Box a_inBox,
const int &  a_dir 
)
static

◆ getCoarserLayouts()

static bool EBArith::getCoarserLayouts ( DisjointBoxLayout a_dblCoar,
ProblemDomain a_domainCoar,
const DisjointBoxLayout a_dblFine,
const ProblemDomain a_domainFine,
int  a_refToCoar,
int  a_maxBoxSize,
bool &  a_layoutChanged,
int  a_testRef = 2 
)
static

testRef is the size of the coarsest domain allowed in multigrid. If testRef=2, then the coarsest domain in multigrid will be 2x2(x2)

◆ getFirstDerivStencil()

static int EBArith::getFirstDerivStencil ( VoFStencil a_sten,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const int &  a_idir,
const Real a_dx,
IntVectSet a_cfivsPtr = NULL,
int  ivar = 0 
)
static

Gets the stencil to take the first derivative in the given direction of cell centered data. Returns the expected order of the derivative. When we need them, we prefer first derivataves to be second order if at all possible, so we take some pains to achieve that

◆ getMixedDerivStencil()

static int EBArith::getMixedDerivStencil ( VoFStencil a_sten,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const int &  a_dir1,
const int &  a_dir2,
const Real a_dx1,
const Real a_dx2,
IntVectSet a_cfivsPtr = NULL,
int  ivar = 0 
)
static

Gets the stencil to take the mixed (in the given directions) derivative of cell centered data. Returns the expected order of the derivative. When we need them, we usually only need second derivatives to O(h), so this just shifts stencil when it has to.

◆ getSecondDerivStencil()

static int EBArith::getSecondDerivStencil ( VoFStencil a_sten,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const int &  a_idir,
const Real a_dx,
IntVectSet a_cfivsPtr = NULL,
int  ivar = 0 
)
static

Gets the stencil to take the second derivative in the given direction) of cell centered data. Returns the expected order of the derivative. When we need them, we usually only need second derivatives to O(h), so this just shifts stencil when it has to.

◆ getVoFsDir()

static void EBArith::getVoFsDir ( bool &  a_hasClose,
VolIndex a_closeVoF,
bool &  a_hasFar,
VolIndex a_farVoF,
const EBISBox a_ebisBox,
const VolIndex a_vof,
int  a_idir,
Side::LoHiSide  a_sd,
IntVectSet a_cfivsPtr 
)
static

a function that could possibly take over the world.

◆ defineCFIVS()

static void EBArith::defineCFIVS ( LayoutData< IntVectSet > &  a_cfivs,
const DisjointBoxLayout a_grids,
const ProblemDomain a_probDom 
)
static

define an intvectset of ghost cells which live on the coarse fine interface. includes corner cells.

◆ extrapFaceGradToOutflow()

static Real EBArith::extrapFaceGradToOutflow ( const FaceIndex a_bndryFace,
const Side::LoHiSide a_side,
const int &  a_idir,
const EBGraph a_ebGraph,
const EBFaceFAB a_faceData,
const int &  a_comp 
)
static

◆ extrapFaceValueToDomain()

static Real EBArith::extrapFaceValueToDomain ( const FaceIndex a_bndryFace,
const Side::LoHiSide a_side,
const int &  a_idir,
const EBGraph a_ebGraph,
const EBFaceFAB a_faceData,
const int &  a_comp,
const Real a_dropOrderValue = 0. 
)
static

◆ extrapFaceVelToOutflow()

static Real EBArith::extrapFaceVelToOutflow ( const FaceIndex a_bndryFace,
const Side::LoHiSide a_side,
const int &  a_idir,
const EBGraph a_ebGraph,
const EBFaceFAB a_faceData,
const int &  a_comp 
)
static

◆ interpolateVel()

static Real EBArith::interpolateVel ( const EBFaceFAB a_vel,
const EBISBox a_ebisBox,
const FaceIndex a_face 
)
static

◆ deInterpolateVel()

static Real EBArith::deInterpolateVel ( const Real a_centroidVel,
const EBFaceFAB a_vel,
const EBISBox a_ebisBox,
const FaceIndex a_face 
)
static

◆ getFaceVelForDivFreeCell()

static Real EBArith::getFaceVelForDivFreeCell ( const FaceIndex a_face,
const VolIndex a_vof,
const int &  a_idir,
const Side::LoHiSide a_side,
const EBFluxFAB a_vel,
const RealVect a_dx,
const EBISBox a_ebisBox 
)
static

◆ meanOverHierarchy()

static void EBArith::meanOverHierarchy ( Real a_mean,
const Vector< LevelData< EBCellFAB > *> &  a_divu,
const Vector< DisjointBoxLayout > &  a_grids,
const Vector< EBISLayout > &  a_ebisl,
const Vector< int > &  a_refRat,
const ProblemDomain a_domainCoarsest,
const RealVect a_dxCoarsest,
const int &  a_comp,
int  pval = -1 
)
static

evaluates integral(a_divu dV)/integral(dV) over a hierarchy. pval = -1—>assumes volfrac already multiplied in pval = -2—>multiply by volume fraction

◆ getJohanVoFWeight()

static Real EBArith::getJohanVoFWeight ( const VolIndex a_whichVoF,
const RealVect a_intersectLoc,
const IntVect a_intersectIV,
const int &  a_nMaxDir,
const RealVect a_dx 
)
static

gets the weight of a vof to interpolate (linear in 2d, bilinear in 3d) to an interpolation point in the plane this is used to get one of the points along the johansen ray

◆ johanStencil() [1/2]

static void EBArith::johanStencil ( bool &  a_dropOrder,
Vector< VoFStencil > &  a_pointStencils,
Vector< Real > &  a_distanceAlongLine,
const RealVect a_normal,
const RealVect a_bndryCentroid,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const RealVect a_dx,
const IntVectSet a_cfivs,
int  a_ivar = 0 
)
static

version which uses incoming normal, boundary centroid

splitting up stuff this way to facillitate multifluid which can have multiple normals and boundary centroids per cell.

◆ johanStencil() [2/2]

static void EBArith::johanStencil ( bool &  a_dropOrder,
Vector< VoFStencil > &  a_pointStencils,
Vector< Real > &  a_distanceAlongLine,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const RealVect a_dx,
const IntVectSet a_cfivs,
int  a_ivar = 0 
)
static

Gets the stencils to get the data points along the Johansen ray. If a_dropOrder returns true then the stencil does not exist. Also returns the distances along the ray to each point.

◆ getLeastSquaresGradSten() [1/3]

static void EBArith::getLeastSquaresGradSten ( VoFStencil a_stencil,
Real a_weight,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const RealVect a_dx,
const ProblemDomain a_domain,
int  a_ivar = 0 
)
static

standard interface

gets the normal and calls the other version

◆ getLeastSquaresGradSten() [2/3]

static void EBArith::getLeastSquaresGradSten ( VoFStencil a_stencil,
Real a_weight,
const RealVect a_normal,
const RealVect a_centroid,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const RealVect a_dx,
const ProblemDomain a_domain,
int  a_ivar = 0 
)
static

version which uses incoming normal, boundary centroid

splitting up stuff this way to facillitate multifluid which can have multiple normals and boundary centroids per cell.

◆ getLeastSquaresGradSten() [3/3]

static void EBArith::getLeastSquaresGradSten ( VoFStencil a_stencil,
Real a_weight,
const RealVect a_normal,
const RealVect a_centroid,
const IntVect a_quadrant,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const RealVect a_dx,
const ProblemDomain a_domain,
int  a_ivar = 0 
)
static

version which uses incoming normal, boundary centroid

splitting up stuff this way to facillitate multifluid which can have multiple normals and boundary centroids per cell.

◆ getLeastSquaresGradStenAllVoFs()

static void EBArith::getLeastSquaresGradStenAllVoFs ( VoFStencil a_stencil,
Real a_weight,
const RealVect a_normal,
const RealVect a_centroid,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const RealVect a_dx,
const ProblemDomain a_domain,
int  a_ivar 
)
static

version which uses incoming normal, boundary centroid, and all available VoFs. splitting up stuff this way to facillitate multifluid which can have multiple normals and boundary centroids per cell.

◆ getLeastSquaresGradStenAllQuad()

static void EBArith::getLeastSquaresGradStenAllQuad ( VoFStencil a_stencil,
Real a_weight,
const RealVect a_normal,
const RealVect a_centroid,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const RealVect a_dx,
const ProblemDomain a_domain,
int  a_ivar,
bool  a_doSymmetric = false 
)
static

version which uses incoming normal, boundary centroid, and all quadrants. splitting up stuff this way to facillitate multifluid which can have multiple normals and boundary centroids per cell.

◆ calculateWeightingMatrix()

static void EBArith::calculateWeightingMatrix ( RealVect  x0,
Vector< RealVect > &  xp,
Vector< RealVect > &  weightMatrix,
bool &  detZero 
)
static

split matrix computations for least squares into separate routine that is independent of stencil size, so that the code can be reused

◆ calculateWeightingMatrixRed()

static void EBArith::calculateWeightingMatrixRed ( RealVect  x0,
Vector< RealVect > &  xp,
IntVect  dimm,
Vector< RealVect > &  weightMatrix,
bool &  deadRed 
)
static

◆ getDomainNormal()

static RealVect EBArith::getDomainNormal ( int  a_idir,
Side::LoHiSide  a_side 
)
static

gets the normal of a domain face

◆ getFaceLocation() [1/2]

static RealVect EBArith::getFaceLocation ( const FaceIndex a_face,
const RealVect a_dx,
const RealVect a_probLo 
)
static

gets the location in real space of a face center

◆ getFaceLocation() [2/2]

static RealVect EBArith::getFaceLocation ( const FaceIndex a_face,
const Real a_dx,
const RealVect a_probLo 
)
inlinestatic

gets the location in real space of a face center

References RealVect::Unit.

◆ dataRayCast()

static void EBArith::dataRayCast ( bool &  a_dropOrder,
Vector< VoFStencil > &  a_pointStencils,
Vector< Real > &  a_distanceAlongLine,
const RealVect a_normal,
const RealVect a_bndryCentroid,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const RealVect a_dx,
const IntVectSet a_cfivs,
int  a_ivar,
int  a_numPoints 
)
static

get stencils for points along a line (generalized johansen stencil)

◆ getVofLocation() [1/2]

static RealVect EBArith::getVofLocation ( const VolIndex a_vof,
const RealVect a_dx,
const RealVect a_probLo 
)
static

gets the location in real space of a cell center

Referenced by ViscousBaseEBBC::getBoundaryGrad(), and BaseBCValue::value().

◆ getVoFLocation() [1/2]

static RealVect EBArith::getVoFLocation ( const VolIndex a_vof,
const RealVect a_dx,
const RealVect a_probLo 
)
inlinestatic

◆ getVoFLocation() [2/2]

static RealVect EBArith::getVoFLocation ( const VolIndex a_vof,
const Real a_dx,
const RealVect a_probLo 
)
inlinestatic

I have misspelled this one time too many.

References RealVect::Unit.

◆ getVofLocation() [2/2]

static RealVect EBArith::getVofLocation ( const VolIndex a_vof,
const Real a_dx,
const RealVect a_probLo 
)
inlinestatic

I have misspelled this one time too many.

References computeSum(), norm(), EBNormType::OverBoth, and RealVect::Unit.

◆ getIVLocation()

static RealVect EBArith::getIVLocation ( const IntVect a_iv,
const RealVect a_dx,
const RealVect a_probLo 
)
static

gets the location in real space of a cell center

◆ defineFluxInterpolant()

static void EBArith::defineFluxInterpolant ( LevelData< BaseIFFAB< Real > > &  a_fluxInterpolant,
LayoutData< IntVectSet > &  a_irregSetsGrown,
const DisjointBoxLayout a_dbl,
const EBISLayout a_ebisl,
const ProblemDomain a_domain,
const int &  a_ncomp,
const int &  a_faceDir 
)
static

A very easy to screw up piece of code that was in four places.

◆ interpolateFluxToCentroids() [1/2]

static void EBArith::interpolateFluxToCentroids ( LevelData< EBFluxFAB > &  a_centroidFlux,
const LevelData< EBFluxFAB > &  a_faceCentFlux,
const DisjointBoxLayout a_grids,
const EBISLayout a_ebisl,
const ProblemDomain a_domain 
)
static

◆ interpolateFluxToCentroids() [2/2]

static void EBArith::interpolateFluxToCentroids ( EBFaceFAB a_centroidFlux,
const EBFaceFAB a_faceCentFlux,
const Box a_box,
const EBISBox a_ebisBox,
const ProblemDomain a_domain,
const int &  a_idir 
)
static

◆ getInterpStencil()

static FaceStencil EBArith::getInterpStencil ( const FaceIndex a_face,
const IntVectSet a_coarseFineIVS,
const EBISBox a_ebisBox,
const ProblemDomain a_domainBox 
)
static

◆ getInterpStencil2D()

static void EBArith::getInterpStencil2D ( FaceStencil a_sten,
const FaceIndex a_face,
const IntVectSet a_coarseFineIVS,
const EBISBox a_ebisBox,
const ProblemDomain a_domainBox 
)
static

◆ getInterpStencil3D()

static void EBArith::getInterpStencil3D ( FaceStencil a_sten,
const FaceIndex a_face,
const IntVectSet a_coarseFineIVS,
const EBISBox a_ebisBox,
const ProblemDomain a_domainBox 
)
static

◆ isVoFHere() [1/2]

static bool EBArith::isVoFHere ( VolIndex a_vof,
const Vector< VolIndex > &  a_vofsStencil,
const IntVect a_cell 
)
static

Return true if there is unique vof associated with a_cell that lies in the a_vofsStencil. If so, a_vof = vof. Else return false.

◆ isVoFHere() [2/2]

static bool EBArith::isVoFHere ( VolIndex a_vof,
int &  a_whichVoF,
const Vector< VolIndex > &  a_vofsStencil,
const IntVect a_cell 
)
static

◆ getAllVoFsInMonotonePath() [1/2]

static void EBArith::getAllVoFsInMonotonePath ( Vector< VolIndex > &  a_vofList,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const int &  a_redistRad 
)
static

Returns all vofs that can be reached from a_vof via a monotone path of length <= than radius

◆ getAllVoFsWithinRadius() [1/3]

static void EBArith::getAllVoFsWithinRadius ( Vector< VolIndex > &  a_vofList,
Vector< IntVect > &  a_dist,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const int &  a_redistRad 
)
static

◆ getKVolRZ()

static void EBArith::getKVolRZ ( Real a_kvol,
Real a_cellVol,
const EBISBox a_ebisBox,
const Real a_dx,
const VolIndex a_vof 
)
static

get volume of a vof in rz coords

◆ getKVolRZNoDx()

static void EBArith::getKVolRZNoDx ( Real a_kvol,
Real a_cellVolDx3,
const EBISBox a_ebisBox,
const VolIndex a_vof 
)
static

get volume of a vof in rz coords

◆ getAdjacentFace()

static bool EBArith::getAdjacentFace ( FaceIndex a_adjacentFace,
const FaceIndex a_face,
const EBISBox a_ebisBox,
const ProblemDomain a_domain,
const int &  a_idir,
const Side::LoHiSide a_side 
)
static

Return true if there is a unique adjacent face in the given direction. False if either covered or multivalued.

◆ computeGradFluxStencil()

static void EBArith::computeGradFluxStencil ( VoFStencil a_thisStencil,
const FaceIndex a_thisFace,
const EBISBox a_ebisBox,
const ProblemDomain a_domain,
const int &  a_dir 
)
static

compute a stencil for one of our fancy interpolated gradients.

◆ computeInterpStencil()

static void EBArith::computeInterpStencil ( FaceStencil a_thisStencil,
const FaceIndex a_thisFace,
const EBISBox a_ebisBox,
const ProblemDomain a_domain,
const int &  a_dir 
)
static

compute a stencil for one of our fancy interpolated fluxes.

◆ volWeightedSum() [1/2]

static void EBArith::volWeightedSum ( Real a_norm,
Real a_volume,
const EBCellFAB a_src,
const Box a_region,
const EBISBox a_ebisBox,
const RealVect a_dx,
const IntVectSet a_ivsExclude,
const int &  a_comp,
const int &  a_p,
EBNormType::NormMode  = EBNormType::OverBoth 
)
static

return lp-norm of component comp of a_src, weighted by local volume fraction. not normalized by number of points or anything like that. if p==0, volume returned is one and norm returned is Max(abs(a_src)) over uncovered regions. otherwise, returns sum(volfrac*a_src(iv,comp)**p) of component comp of a_src weighted by local volume fraction and also returns volume of uncovered regions. Only uncovered regions count here.

◆ getCompVolRZ()

static void EBArith::getCompVolRZ ( Real a_compVol,
const EBISBox a_ebisBox,
const Real a_dx,
const VolIndex a_vof,
bool  a_verbose = false 
)
static

◆ computeSum()

static void EBArith::computeSum ( Real a_norm,
Real a_volume,
const EBCellFAB a_src,
const Box a_region,
const EBISBox a_ebisBox,
const RealVect a_dx,
const IntVectSet a_ivsExclude,
const int &  a_comp,
EBNormType::NormMode  = EBNormType::OverBoth 
)
static

return volume-weighted sum of component comp of a_src, weighted by local volume fraction. and norm returned is Max(abs(a_src)) over uncovered regions. otherwise, returns sum(volfrac*a_src(iv,comp)**p) of component comp of a_src weighted by local volume fraction and also returns volume of uncovered regions. Only uncovered regions count here.

◆ computeUnweightedSum()

static void EBArith::computeUnweightedSum ( Real a_norm,
Real a_volume,
const EBCellFAB a_src,
const Box a_region,
const EBISBox a_ebisBox,
const RealVect a_dx,
const IntVectSet a_ivsExclude,
const int &  a_comp,
EBNormType::NormMode  = EBNormType::OverBoth 
)
static

return volume-weighted sum of component comp of a_src, weighted by local volume fraction. and norm returned is Max(abs(a_src)) over uncovered regions. otherwise, returns sum(volfrac*a_src(iv,comp)**p) of component comp of a_src weighted by local volume fraction and also returns volume of uncovered regions. Only uncovered regions count here.

◆ norm() [1/5]

static Real EBArith::norm ( const BoxLayoutData< EBCellFAB > &  a_dataOne,
const BoxLayout a_layout,
const EBISLayout a_ebisl,
const int &  comp,
const int &  p,
EBNormType::NormMode  = EBNormType::OverBoth 
)
static

return l-p norm of a_src. if p==0, v norm returned is Max(abs(a_src)) over uncovered regions. otherwise, returns 1/vol(sum(volfrac*a_src(iv,comp)**p)^(1/p)) of component comp of a_src weighted by local volume fraction and also returns volume of uncovered regions. Only uncovered regions count here. The data must have the same layout as a_layout with the possible exception of ghost cells.

int pmode = -2; //norm = (1/v)(sum(phi dv)) —no absolute values and multiply kappa as you go int pmode = -1; //norm = (1/v)(sum(phi dv)) —no absolute values and assume kappa already multiplied in

◆ norm() [2/5]

static Real EBArith::norm ( const Vector< LevelData< EBCellFAB > * > &  a_data,
const Vector< DisjointBoxLayout > &  a_layout,
const Vector< EBISLayout > &  a_ebisl,
const Vector< int > &  a_refRatio,
const int &  comp,
const int &  p,
EBNormType::NormMode  = EBNormType::OverBoth 
)
static

◆ computeCoveredFaces()

static void EBArith::computeCoveredFaces ( Vector< VolIndex > &  a_coveredFace,
IntVectSet a_coveredSets,
IntVectSet a_irregIVS,
const int &  a_idir,
const Side::LoHiSide a_sd,
const EBISBox a_ebisBox,
const Box a_region 
)
static

◆ norm() [3/5]

static Real EBArith::norm ( Real volume,
const BoxLayoutData< EBCellFAB > &  a_dataOne,
const BoxLayout a_layout,
const EBISLayout a_ebisl,
const int &  comp,
const int &  p,
EBNormType::NormMode  = EBNormType::OverBoth 
)
static

◆ norm() [4/5]

static Real EBArith::norm ( const EBCellFAB a_dataOne,
const Box a_grid,
const EBISBox a_ebisl,
const int &  a_comp,
const int &  a_p,
EBNormType::NormMode  = EBNormType::OverBoth 
)
static

return l-p norm of a_src. if p==0, v norm returned is Max(abs(a_src)) over uncovered regions. otherwise, returns 1/vol(sum(volfrac*a_src(iv,comp)**p)^(1/p)) of component comp of a_src weighted by local volume fraction and also returns volume of uncovered regions. Only uncovered regions count here. The data must have the same layout as a_layout with the possible exception of ghost cells.

◆ norm() [5/5]

static Real EBArith::norm ( Real volume,
const EBCellFAB a_dataOne,
const Box a_grid,
const EBISBox a_ebisl,
const int &  a_comp,
const int &  a_p,
EBNormType::NormMode  = EBNormType::OverBoth 
)
static

◆ volWeightedSum() [2/2]

static void EBArith::volWeightedSum ( Real a_sum,
Real a_volume,
const BoxLayoutData< EBCellFAB > &  a_dataOne,
const BoxLayout a_layout,
const EBISLayout a_ebisl,
const RealVect a_dx,
const IntVectSet a_ivsExclude,
const int &  a_comp,
const int &  a_p,
EBNormType::NormMode  = EBNormType::OverBoth 
)
static

return l-p norm of a_src. if p==0, v norm returned is Max(abs(a_src)) over uncovered regions. otherwise, returns sum(volfrac*a_src(iv,comp)**p) of component comp of a_src weighted by local volume fraction and also returns volume of uncovered regions. Only uncovered regions count here. The data must have the same layout as a_layout with the possible exception of ghost cells.

◆ sumBndryArea()

static void EBArith::sumBndryArea ( Real a_area,
const BoxLayout a_region,
const EBISLayout a_ebisl 
)
static

return the sum of all irregular boundary areas

◆ dotProduct() [1/2]

static Real EBArith::dotProduct ( const BoxLayoutData< EBCellFAB > &  a_dataOne,
const BoxLayoutData< EBCellFAB > &  a_dataTwo,
const BoxLayout a_layout,
const EBISLayout a_ebisl,
const int &  a_comp 
)
static

return the dotproduct of two leveldatas of ebfabs, Only uncovered regions count here.

◆ dotProduct() [2/2]

static Real EBArith::dotProduct ( const EBCellFAB a_dataOne,
const EBCellFAB a_dataTwo,
const Box a_layout,
const EBISBox a_ebisBox,
const int &  a_comp 
)
static

return the dotproduct of two ebfabs, Only uncovered regions count here.

◆ monotonePathVoFToCellMultiVoFs()

static void EBArith::monotonePathVoFToCellMultiVoFs ( Vector< VolIndex > &  a_vofsInCell,
const Vector< VolIndex > &  a_vofsInPath,
const IntVect a_cell2,
const EBISBox a_ebisBox 
)
static

Given a VoF, a_vof1, and a cell, a_cell2, determine if there is a vector of VoFs in a_cell2 that connects to a_vof1 via a monotone path. A vector of VolIndices is returned, even if empty.

◆ monotonePathVoFToCellVoF()

static bool EBArith::monotonePathVoFToCellVoF ( VolIndex a_vof2,
const VolIndex a_vof1,
const IntVect a_cell2,
const EBISBox a_ebisBox 
)
static

Given a VoF, a_vof1, and a cell, a_cell2, determine if there is a single VoF in a_cell2 that connects to a_vof1 via a monotone path. If there is one such VoF then TRUE is returned (and the VolIndex is returned, a_vof2). If there is no such VoF or if there are more than one such VoF then FALSE is returned (and a_vof2 is unchanged).

◆ getAllVoFsWithinRadius() [2/3]

static void EBArith::getAllVoFsWithinRadius ( Vector< VolIndex > &  a_vofList,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const int &  a_redistRad 
)
static

◆ getAllVoFsWithinRadius() [3/3]

static void EBArith::getAllVoFsWithinRadius ( Vector< VolIndex > &  a_vofList,
const IntVect a_timesMoved,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const int &  a_redistRad 
)
static

◆ getAllVoFsInMonotonePath() [2/2]

static void EBArith::getAllVoFsInMonotonePath ( Vector< VolIndex > &  a_vofs,
const IntVect a_timesMoved,
const IntVect a_pathSign,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const int &  a_radius 
)
static

Returns all vofs that can be reached from a_vof via a monotone path of length <= than radius

◆ getVoFMax()

static VolIndex& EBArith::getVoFMax ( )
inlinestatic

◆ getValMax()

static Real& EBArith::getValMax ( )
inlinestatic

◆ setMinVolumeFraction()

static void EBArith::setMinVolumeFraction ( Real  a_minVolFrac)
inlinestatic

Member Data Documentation

◆ s_vofMax

VolIndex EBArith::s_vofMax
staticprivate

◆ s_valMax

Real EBArith::s_valMax
staticprivate

◆ s_minVolFrac

Real EBArith::s_minVolFrac
staticprivate

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