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

#include <EBPWLFillPatch.H>

Public Member Functions

 EBPWLFillPatch ()
 
virtual ~EBPWLFillPatch ()
 
 EBPWLFillPatch (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 bool &a_forceNoEBCF=false, const EBIndexSpace *const a_eb=Chombo_EBIS::instance())
 
virtual 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 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)
 
virtual void pwConstInterp (Real &a_fineValOld, Real &a_fineValNew, const VolIndex &a_fineVof, const int &a_ivar, const Real &a_coarDataOld, const Real &a_coarDataNew, const VolIndex &a_coarseVof) const
 
virtual void incrementLinearInterp (Real &a_fineValOld, Real &a_fineValNew, const VolIndex &a_fineVof, const int &a_ivar, const Real &a_deltaOldOld, const Real &a_deltaNew, const Real &a_differenceFineLocCoarseLoc, const VolIndex &a_coarseVof) const
 
virtual void definePieceWiseLinearFillPatch (const DisjointBoxLayout &a_dblfine, const DisjointBoxLayout &a_dblCoar)
 

Protected Member Functions

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 getIVS ()
 
void getLoHiCenIVS ()
 
void getSten ()
 
void setDefaultValues ()
 
bool extractFromSten (Real &a_value, const VoFStencil &a_vofsten, const EBCellFAB &a_coarData, const int &ivar) const
 
virtual Real computeDMinMod (const BaseIVFAB< VoFStencil > &a_lostenBF, const BaseIVFAB< VoFStencil > &a_histenBF, const VolIndex &a_coarVoF, const EBCellFAB &a_coarData, const int &ivar, const IntVectSet &loInterpSet, const IntVectSet &hiInterpSet, const IntVectSet &ceInterpSet) const
 

Protected Attributes

bool m_isDefined
 
bool m_forceNoEBCF
 
PiecewiseLinearFillPatchm_patcher
 
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< IntVectSetm_irregRegionsFine
 
LayoutData< BaseIVFAB< VoFStencil > > m_hiStencils [SpaceDim]
 
LayoutData< BaseIVFAB< VoFStencil > > m_loStencils [SpaceDim]
 
LayoutData< IntVectSetm_coarCeInterp [SpaceDim]
 
LayoutData< IntVectSetm_coarLoInterp [SpaceDim]
 
LayoutData< IntVectSetm_coarHiInterp [SpaceDim]
 

Private Member Functions

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

Detailed Description

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

Constructor & Destructor Documentation

◆ EBPWLFillPatch() [1/3]

EBPWLFillPatch::EBPWLFillPatch ( )

Default constructor. User must subsequently call define().

◆ ~EBPWLFillPatch()

virtual EBPWLFillPatch::~EBPWLFillPatch ( )
virtual

◆ EBPWLFillPatch() [2/3]

EBPWLFillPatch::EBPWLFillPatch ( 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 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.

◆ EBPWLFillPatch() [3/3]

EBPWLFillPatch::EBPWLFillPatch ( const EBPWLFillPatch ebcin)
inlineprivate

References MayDay::Error().

Member Function Documentation

◆ define()

virtual void EBPWLFillPatch::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 bool &  a_forceNoEBCF = false,
const EBIndexSpace *const  a_eb = Chombo_EBIS::instance() 
)
virtual

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.

◆ isDefined()

bool EBPWLFillPatch::isDefined ( ) const

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

◆ interpolate()

virtual void EBPWLFillPatch::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 
)
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.

◆ pwConstInterp()

virtual void EBPWLFillPatch::pwConstInterp ( Real a_fineValOld,
Real a_fineValNew,
const VolIndex a_fineVof,
const int &  a_ivar,
const Real a_coarDataOld,
const Real a_coarDataNew,
const VolIndex a_coarseVof 
) const
virtual

◆ incrementLinearInterp()

virtual void EBPWLFillPatch::incrementLinearInterp ( Real a_fineValOld,
Real a_fineValNew,
const VolIndex a_fineVof,
const int &  a_ivar,
const Real a_deltaOldOld,
const Real a_deltaNew,
const Real a_differenceFineLocCoarseLoc,
const VolIndex a_coarseVof 
) const
virtual

◆ definePieceWiseLinearFillPatch()

virtual void EBPWLFillPatch::definePieceWiseLinearFillPatch ( const DisjointBoxLayout a_dblfine,
const DisjointBoxLayout a_dblCoar 
)
virtual

◆ interpolateFAB()

void EBPWLFillPatch::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

◆ makeStencils()

void EBPWLFillPatch::makeStencils ( )
protected

◆ getIVS()

void EBPWLFillPatch::getIVS ( )
protected

◆ getLoHiCenIVS()

void EBPWLFillPatch::getLoHiCenIVS ( )
protected

◆ getSten()

void EBPWLFillPatch::getSten ( )
protected

◆ setDefaultValues()

void EBPWLFillPatch::setDefaultValues ( )
protected

◆ extractFromSten()

bool EBPWLFillPatch::extractFromSten ( Real a_value,
const VoFStencil a_vofsten,
const EBCellFAB a_coarData,
const int &  ivar 
) const
protected

◆ computeDMinMod()

virtual Real EBPWLFillPatch::computeDMinMod ( const BaseIVFAB< VoFStencil > &  a_lostenBF,
const BaseIVFAB< VoFStencil > &  a_histenBF,
const VolIndex a_coarVoF,
const EBCellFAB a_coarData,
const int &  ivar,
const IntVectSet loInterpSet,
const IntVectSet hiInterpSet,
const IntVectSet ceInterpSet 
) const
protectedvirtual

◆ operator=()

void EBPWLFillPatch::operator= ( const EBPWLFillPatch fabin)
inlineprivate

References MayDay::Error().

Member Data Documentation

◆ m_isDefined

bool EBPWLFillPatch::m_isDefined
protected

◆ m_forceNoEBCF

bool EBPWLFillPatch::m_forceNoEBCF
protected

◆ m_patcher

PiecewiseLinearFillPatch* EBPWLFillPatch::m_patcher
protected

◆ m_coarDomain

ProblemDomain EBPWLFillPatch::m_coarDomain
protected

◆ m_coarsenedFineGrids

DisjointBoxLayout EBPWLFillPatch::m_coarsenedFineGrids
protected

◆ m_fineGrids

DisjointBoxLayout EBPWLFillPatch::m_fineGrids
protected

◆ m_coarGrids

DisjointBoxLayout EBPWLFillPatch::m_coarGrids
protected

◆ m_coarsenedFineEBISL

EBISLayout EBPWLFillPatch::m_coarsenedFineEBISL
protected

◆ m_fineEBISL

EBISLayout EBPWLFillPatch::m_fineEBISL
protected

◆ m_coarOnFDataOld

LevelData<EBCellFAB> EBPWLFillPatch::m_coarOnFDataOld
protected

◆ m_coarOnFDataNew

LevelData<EBCellFAB> EBPWLFillPatch::m_coarOnFDataNew
protected

◆ m_refRat

int EBPWLFillPatch::m_refRat
protected

◆ m_nComp

int EBPWLFillPatch::m_nComp
protected

◆ m_radius

int EBPWLFillPatch::m_radius
protected

◆ m_coarGhostRad

int EBPWLFillPatch::m_coarGhostRad
protected

◆ m_irregRegionsFine

LayoutData<IntVectSet> EBPWLFillPatch::m_irregRegionsFine
protected

◆ m_hiStencils

LayoutData<BaseIVFAB<VoFStencil> > EBPWLFillPatch::m_hiStencils[SpaceDim]
protected

◆ m_loStencils

LayoutData<BaseIVFAB<VoFStencil> > EBPWLFillPatch::m_loStencils[SpaceDim]
protected

◆ m_coarCeInterp

LayoutData<IntVectSet> EBPWLFillPatch::m_coarCeInterp[SpaceDim]
protected

◆ m_coarLoInterp

LayoutData<IntVectSet> EBPWLFillPatch::m_coarLoInterp[SpaceDim]
protected

◆ m_coarHiInterp

LayoutData<IntVectSet> EBPWLFillPatch::m_coarHiInterp[SpaceDim]
protected

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