AggEBPWLFillPatch Class Reference

#include <AggEBPWLFillPatch.H>

List of all members.


Detailed Description

Fills one layer of fine level ghost cells by piecewise linear interpolation from the coarse level.

Public Member Functions

 AggEBPWLFillPatch ()
virtual ~AggEBPWLFillPatch ()
 AggEBPWLFillPatch (const DisjointBoxLayout &a_dblFine, const DisjointBoxLayout &a_dblCoar, const EBISLayout &a_ebislFine, const EBISLayout &a_ebislCoar, const ProblemDomain &a_domainCoar, const int &a_nref, const int &a_nvar, const int &a_radius, const IntVect &a_ghost, const bool &a_forceNoEBCF=false, const EBIndexSpace *const a_eb=Chombo_EBIS::instance())
 AggEBPWLFillPatch (const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblgCoar, const int &a_nref, const int &a_nvar, const int &a_radius, const IntVect &a_ghost, const bool &a_forceNoEBCF=false, const EBIndexSpace *const a_eb=Chombo_EBIS::instance())
 saner interface
void define (const DisjointBoxLayout &a_dblFine, const DisjointBoxLayout &a_dblCoar, const EBISLayout &a_ebislFine, const EBISLayout &a_ebislCoar, const ProblemDomain &a_domainCoar, const int &a_nref, const int &a_nvar, const int &a_radius, const IntVect &a_ghost, const bool &a_forceNoEBCF=false, const EBIndexSpace *const a_eb=Chombo_EBIS::instance())
bool isDefined () const
virtual void interpolate (LevelData< EBCellFAB > &a_fineData, const LevelData< EBCellFAB > &a_coarDataOld, const LevelData< EBCellFAB > &a_coarDataNew, const Real &a_coarTimeOld, const Real &a_coarTimeNew, const Real &a_fineTime, const Interval &a_variables) const

Protected Member Functions

virtual void definePieceWiseLinearFillPatch (const DisjointBoxLayout &a_dblfine, const DisjointBoxLayout &a_dblCoar)
void getOffsets (const LayoutData< Vector< VolIndex > > &a_srcVoFsCoar, const LayoutData< IntVectSet > &a_irregRegionsFine, const LayoutData< Vector< VoFStencil > > a_loStencils[SpaceDim], const LayoutData< Vector< VoFStencil > > a_hiStencils[SpaceDim], const LayoutData< IntVectSet > a_coarLoInterp[SpaceDim], const LayoutData< IntVectSet > a_coarHiInterp[SpaceDim], const LayoutData< IntVectSet > a_coarCeInterp[SpaceDim])
void interpolateFAB (EBCellFAB &a_fine, const EBCellFAB &a_coarOld, const EBCellFAB &a_coarNew, const Real &a_coarTimeOld, const Real &a_coarTimeNew, const Real &a_fineTime, const DataIndex &a_datInd, const Interval &a_variables) const
void makeStencils ()
void defineSlopeHolders (const LayoutData< IntVectSet > &a_irregRegionsCoFi)
void getIVS (LayoutData< IntVectSet > &a_irregRegionsFine, LayoutData< IntVectSet > &a_irregRegionsCoFi, LayoutData< Vector< VolIndex > > &a_srcVoFs)
void defineAggStencils (LayoutData< Vector< VoFStencil > > a_loStencils[SpaceDim], LayoutData< Vector< VoFStencil > > a_hiStencils[SpaceDim], const LayoutData< Vector< VolIndex > > &a_srcVoFs)
void getLoHiCenIVS (LayoutData< IntVectSet > a_coarLoInterp[SpaceDim], LayoutData< IntVectSet > a_coarHiInterp[SpaceDim], LayoutData< IntVectSet > a_coarCeInterp[SpaceDim])
void getSten (LayoutData< Vector< VoFStencil > > a_loStencils[SpaceDim], LayoutData< Vector< VoFStencil > > a_hiStencils[SpaceDim], LayoutData< IntVectSet > a_coarLoInterp[SpaceDim], LayoutData< IntVectSet > a_coarHiInterp[SpaceDim], LayoutData< IntVectSet > a_coarCeInterp[SpaceDim], const LayoutData< Vector< VolIndex > > &a_srcVoFs)
void getSlopes (const EBCellFAB &a_coarDataOld, const EBCellFAB &a_coarDataNew, const DataIndex &a_dit, const Interval &a_variables) const
void deltaMinMod (Real &a_slope, Real &a_slopeLo, Real &a_slopeHi) const
void setDefaultValues ()

Protected Attributes

LayoutData< Vector
< fine_logic_t > > 
m_fineOffsets
LayoutData< Vector
< coar_logic_t > > 
m_coarOffsets
bool m_forceNoEBCF
bool m_isDefined
PiecewiseLinearFillPatchm_patcher
IntVect m_ghost
ProblemDomain m_coarDomain
DisjointBoxLayout m_coarsenedFineGrids
DisjointBoxLayout m_fineGrids
DisjointBoxLayout m_coarGrids
EBISLayout m_coarsenedFineEBISL
EBISLayout m_fineEBISL
LevelData< EBCellFABm_coarOnFDataOld
LevelData< EBCellFABm_coarOnFDataNew
int m_refRat
int m_nComp
int m_radius
int m_coarGhostRad
LayoutData< BaseIVFAB< Real > > m_slopeLoOld [SpaceDim]
LayoutData< BaseIVFAB< Real > > m_slopeHiOld [SpaceDim]
LayoutData< BaseIVFAB< Real > > m_slopeCeOld [SpaceDim]
LayoutData< BaseIVFAB< Real > > m_slopeLoNew [SpaceDim]
LayoutData< BaseIVFAB< Real > > m_slopeHiNew [SpaceDim]
LayoutData< BaseIVFAB< Real > > m_slopeCeNew [SpaceDim]
LayoutData< RefCountedPtr
< AggStencil< EBCellFAB,
BaseIVFAB< Real > > > > 
m_stenLo [SpaceDim]
LayoutData< RefCountedPtr
< AggStencil< EBCellFAB,
BaseIVFAB< Real > > > > 
m_stenHi [SpaceDim]

Private Member Functions

 AggEBPWLFillPatch (const AggEBPWLFillPatch &ebcin)
void operator= (const AggEBPWLFillPatch &fabin)

Classes

struct  access_t
struct  coar_logic_t
struct  fine_logic_t

Constructor & Destructor Documentation

AggEBPWLFillPatch::AggEBPWLFillPatch (  ) 

Default constructor. User must subsequently call define().

virtual AggEBPWLFillPatch::~AggEBPWLFillPatch (  )  [virtual]

AggEBPWLFillPatch::AggEBPWLFillPatch ( const DisjointBoxLayout a_dblFine,
const DisjointBoxLayout a_dblCoar,
const EBISLayout a_ebislFine,
const EBISLayout a_ebislCoar,
const ProblemDomain a_domainCoar,
const int &  a_nref,
const int &  a_nvar,
const int &  a_radius,
const IntVect a_ghost,
const bool &  a_forceNoEBCF = false,
const EBIndexSpace *const   a_eb = Chombo_EBIS::instance() 
)

Defining constructor. Constructs a valid object. Equivalent to default construction followed by define().

{ Arguments:}\ dblFine, dblCoar: The fine and coarse layouts of the data.\ ebislFine, ebislCoar: The fine and coarse layouts of the geometric description.\ nref: The refinement ratio between the two levels. \ nvar: The number of variables contained in the data at each VoF.\ radius: the total number of ghost cells filled. forceNoEBCF = true promises that the embedded boundary will not cross the coarse-fine interface. This will save you a lot of compute time if you are certain you are tagging all irregulkar cells.

AggEBPWLFillPatch::AggEBPWLFillPatch ( const EBLevelGrid a_eblgFine,
const EBLevelGrid a_eblgCoar,
const int &  a_nref,
const int &  a_nvar,
const int &  a_radius,
const IntVect a_ghost,
const bool &  a_forceNoEBCF = false,
const EBIndexSpace *const   a_eb = Chombo_EBIS::instance() 
) [inline]

AggEBPWLFillPatch::AggEBPWLFillPatch ( const AggEBPWLFillPatch ebcin  )  [private]


Member Function Documentation

void AggEBPWLFillPatch::define ( const DisjointBoxLayout a_dblFine,
const DisjointBoxLayout a_dblCoar,
const EBISLayout a_ebislFine,
const EBISLayout a_ebislCoar,
const ProblemDomain a_domainCoar,
const int &  a_nref,
const int &  a_nvar,
const int &  a_radius,
const IntVect a_ghost,
const bool &  a_forceNoEBCF = false,
const EBIndexSpace *const   a_eb = Chombo_EBIS::instance() 
)

Defines this object. Existing information is overriden.

{ Arguments:}\ dblFine, dblCoar: The fine and coarse layouts of the data.\ ebislFine, ebislCoar: The fine and coarse layouts of the geometric description.\ nref: The refinement ratio between the two levels. \ nvar: The number of variables contained in the data at each VoF. radius: the total number of ghost cells filled. forceNoEBCF = true promises that the embedded boundary will not cross the coarse-fine interface. This will save you a lot of compute time if you are certain you are tagging all irregulkar cells.

Referenced by AggEBPWLFillPatch().

bool AggEBPWLFillPatch::isDefined (  )  const [inline]

Returns true if this object was created with the defining constructor or if define() has been called.

References m_isDefined.

virtual void AggEBPWLFillPatch::interpolate ( LevelData< EBCellFAB > &  a_fineData,
const LevelData< EBCellFAB > &  a_coarDataOld,
const LevelData< EBCellFAB > &  a_coarDataNew,
const Real a_coarTimeOld,
const Real a_coarTimeNew,
const Real a_fineTime,
const Interval a_variables 
) const [virtual]

Interpolate the fine data from the coarse data over the intersection of the fine layout with the refined coarse layout. \ { Arguments:}\ coarDataOld: The data over the coarse layout at coarse time old.\ coarDatanew: The data over the coarse layout at coarse time new.\ fineData: The data over the fine layout. \ Error occurs unless coarTimeOld <= fineTime <= coarTimeNew \ Fine and coarse data must have the same number of variables.\ variables: The variables to interpolate. Those not in this range will be left alone. This range of variables must be in both the coarse and fine data.

virtual void AggEBPWLFillPatch::definePieceWiseLinearFillPatch ( const DisjointBoxLayout a_dblfine,
const DisjointBoxLayout a_dblCoar 
) [protected, virtual]

void AggEBPWLFillPatch::getOffsets ( const LayoutData< Vector< VolIndex > > &  a_srcVoFsCoar,
const LayoutData< IntVectSet > &  a_irregRegionsFine,
const LayoutData< Vector< VoFStencil > >  a_loStencils[SpaceDim],
const LayoutData< Vector< VoFStencil > >  a_hiStencils[SpaceDim],
const LayoutData< IntVectSet a_coarLoInterp[SpaceDim],
const LayoutData< IntVectSet a_coarHiInterp[SpaceDim],
const LayoutData< IntVectSet a_coarCeInterp[SpaceDim] 
) [protected]

void AggEBPWLFillPatch::interpolateFAB ( EBCellFAB a_fine,
const EBCellFAB a_coarOld,
const EBCellFAB a_coarNew,
const Real a_coarTimeOld,
const Real a_coarTimeNew,
const Real a_fineTime,
const DataIndex a_datInd,
const Interval a_variables 
) const [protected]

void AggEBPWLFillPatch::makeStencils (  )  [protected]

void AggEBPWLFillPatch::defineSlopeHolders ( const LayoutData< IntVectSet > &  a_irregRegionsCoFi  )  [protected]

void AggEBPWLFillPatch::getIVS ( LayoutData< IntVectSet > &  a_irregRegionsFine,
LayoutData< IntVectSet > &  a_irregRegionsCoFi,
LayoutData< Vector< VolIndex > > &  a_srcVoFs 
) [protected]

void AggEBPWLFillPatch::defineAggStencils ( LayoutData< Vector< VoFStencil > >  a_loStencils[SpaceDim],
LayoutData< Vector< VoFStencil > >  a_hiStencils[SpaceDim],
const LayoutData< Vector< VolIndex > > &  a_srcVoFs 
) [protected]

void AggEBPWLFillPatch::getLoHiCenIVS ( LayoutData< IntVectSet a_coarLoInterp[SpaceDim],
LayoutData< IntVectSet a_coarHiInterp[SpaceDim],
LayoutData< IntVectSet a_coarCeInterp[SpaceDim] 
) [protected]

void AggEBPWLFillPatch::getSten ( LayoutData< Vector< VoFStencil > >  a_loStencils[SpaceDim],
LayoutData< Vector< VoFStencil > >  a_hiStencils[SpaceDim],
LayoutData< IntVectSet a_coarLoInterp[SpaceDim],
LayoutData< IntVectSet a_coarHiInterp[SpaceDim],
LayoutData< IntVectSet a_coarCeInterp[SpaceDim],
const LayoutData< Vector< VolIndex > > &  a_srcVoFs 
) [protected]

void AggEBPWLFillPatch::getSlopes ( const EBCellFAB a_coarDataOld,
const EBCellFAB a_coarDataNew,
const DataIndex a_dit,
const Interval a_variables 
) const [protected]

void AggEBPWLFillPatch::deltaMinMod ( Real a_slope,
Real a_slopeLo,
Real a_slopeHi 
) const [protected]

void AggEBPWLFillPatch::setDefaultValues (  )  [protected]

Referenced by AggEBPWLFillPatch().

void AggEBPWLFillPatch::operator= ( const AggEBPWLFillPatch fabin  )  [private]


Member Data Documentation

Referenced by isDefined().

int AggEBPWLFillPatch::m_refRat [protected]

int AggEBPWLFillPatch::m_nComp [protected]

int AggEBPWLFillPatch::m_radius [protected]


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

Generated on Fri Apr 5 04:24:51 2019 for Chombo + EB by  doxygen 1.5.5