Chombo + EB + MF  3.2
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
AggEBPWLFillPatch Class Reference

#include <AggEBPWLFillPatch.H>

Classes

struct  access_t
 
struct  coar_logic_t
 
struct  fine_logic_t
 

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 More...
 
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)
 

Detailed Description

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

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

LayoutData< Vector<fine_logic_t> > AggEBPWLFillPatch::m_fineOffsets
protected
LayoutData< Vector<coar_logic_t> > AggEBPWLFillPatch::m_coarOffsets
protected
bool AggEBPWLFillPatch::m_forceNoEBCF
protected
bool AggEBPWLFillPatch::m_isDefined
protected

Referenced by isDefined().

PiecewiseLinearFillPatch* AggEBPWLFillPatch::m_patcher
protected
IntVect AggEBPWLFillPatch::m_ghost
protected
ProblemDomain AggEBPWLFillPatch::m_coarDomain
protected
DisjointBoxLayout AggEBPWLFillPatch::m_coarsenedFineGrids
protected
DisjointBoxLayout AggEBPWLFillPatch::m_fineGrids
protected
DisjointBoxLayout AggEBPWLFillPatch::m_coarGrids
protected
EBISLayout AggEBPWLFillPatch::m_coarsenedFineEBISL
protected
EBISLayout AggEBPWLFillPatch::m_fineEBISL
protected
LevelData<EBCellFAB> AggEBPWLFillPatch::m_coarOnFDataOld
mutableprotected
LevelData<EBCellFAB> AggEBPWLFillPatch::m_coarOnFDataNew
mutableprotected
int AggEBPWLFillPatch::m_refRat
protected
int AggEBPWLFillPatch::m_nComp
protected
int AggEBPWLFillPatch::m_radius
protected
int AggEBPWLFillPatch::m_coarGhostRad
protected
LayoutData< BaseIVFAB<Real> > AggEBPWLFillPatch::m_slopeLoOld[SpaceDim]
mutableprotected
LayoutData< BaseIVFAB<Real> > AggEBPWLFillPatch::m_slopeHiOld[SpaceDim]
mutableprotected
LayoutData< BaseIVFAB<Real> > AggEBPWLFillPatch::m_slopeCeOld[SpaceDim]
mutableprotected
LayoutData< BaseIVFAB<Real> > AggEBPWLFillPatch::m_slopeLoNew[SpaceDim]
mutableprotected
LayoutData< BaseIVFAB<Real> > AggEBPWLFillPatch::m_slopeHiNew[SpaceDim]
mutableprotected
LayoutData< BaseIVFAB<Real> > AggEBPWLFillPatch::m_slopeCeNew[SpaceDim]
mutableprotected
LayoutData< RefCountedPtr<AggStencil <EBCellFAB, BaseIVFAB<Real> > > > AggEBPWLFillPatch::m_stenLo[SpaceDim]
protected
LayoutData< RefCountedPtr<AggStencil <EBCellFAB, BaseIVFAB<Real> > > > AggEBPWLFillPatch::m_stenHi[SpaceDim]
protected

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