#include <AggEBPWLFillPatch.H>
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 |
PiecewiseLinearFillPatch * | m_patcher |
IntVect | m_ghost |
ProblemDomain | m_coarDomain |
DisjointBoxLayout | m_coarsenedFineGrids |
DisjointBoxLayout | m_fineGrids |
DisjointBoxLayout | m_coarGrids |
EBISLayout | m_coarsenedFineEBISL |
EBISLayout | m_fineEBISL |
LevelData< EBCellFAB > | m_coarOnFDataOld |
LevelData< EBCellFAB > | m_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 |
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] |
saner interface
References define(), EBLevelGrid::getDBL(), EBLevelGrid::getDomain(), EBLevelGrid::getEBISL(), and setDefaultValues().
AggEBPWLFillPatch::AggEBPWLFillPatch | ( | const AggEBPWLFillPatch & | ebcin | ) | [private] |
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] |
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_fineGrids [protected] |
DisjointBoxLayout AggEBPWLFillPatch::m_coarGrids [protected] |
EBISLayout AggEBPWLFillPatch::m_coarsenedFineEBISL [protected] |
EBISLayout AggEBPWLFillPatch::m_fineEBISL [protected] |
LevelData<EBCellFAB> AggEBPWLFillPatch::m_coarOnFDataOld [mutable, protected] |
LevelData<EBCellFAB> AggEBPWLFillPatch::m_coarOnFDataNew [mutable, protected] |
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] [mutable, protected] |
LayoutData< BaseIVFAB<Real> > AggEBPWLFillPatch::m_slopeHiOld[SpaceDim] [mutable, protected] |
LayoutData< BaseIVFAB<Real> > AggEBPWLFillPatch::m_slopeCeOld[SpaceDim] [mutable, protected] |
LayoutData< BaseIVFAB<Real> > AggEBPWLFillPatch::m_slopeLoNew[SpaceDim] [mutable, protected] |
LayoutData< BaseIVFAB<Real> > AggEBPWLFillPatch::m_slopeHiNew[SpaceDim] [mutable, protected] |
LayoutData< BaseIVFAB<Real> > AggEBPWLFillPatch::m_slopeCeNew[SpaceDim] [mutable, protected] |
LayoutData< RefCountedPtr<AggStencil <EBCellFAB, BaseIVFAB<Real> > > > AggEBPWLFillPatch::m_stenLo[SpaceDim] [protected] |
LayoutData< RefCountedPtr<AggStencil <EBCellFAB, BaseIVFAB<Real> > > > AggEBPWLFillPatch::m_stenHi[SpaceDim] [protected] |