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

Piecewise constant interpolation. More...

#include <EBMGInterp.H>

Public Member Functions

 EBMGInterp ()
 
 ~EBMGInterp ()
 
 EBMGInterp (const DisjointBoxLayout &dblFine, const DisjointBoxLayout &dblCoar, const EBISLayout &ebislFine, const EBISLayout &ebislCoar, const ProblemDomain &domainCoar, const int &nref, const int &nvar, const EBIndexSpace *ebisPtr, const IntVect &ghostCellsPhi, const bool &layoutChanged=true, const bool &doLinear=false)
 
void define (const DisjointBoxLayout &dblFine, const DisjointBoxLayout &dblCoar, const EBISLayout &ebislFine, const EBISLayout &ebislCoar, const ProblemDomain &domainCoar, const int &nref, const int &nvar, const EBIndexSpace *ebisPtr, const IntVect &ghostCellsPhi, const bool &layoutChanged=true, const bool &doLinear=false)
 
bool isDefined () const
 
void pwcInterp (LevelData< EBCellFAB > &a_fineData, const LevelData< EBCellFAB > &a_coarseData, const Interval &a_variables)
 
void pwlInterp (LevelData< EBCellFAB > &a_fineData, const LevelData< EBCellFAB > &a_coarseData, const Interval &a_variables)
 
void pwlInterpMG (LevelData< EBCellFAB > &a_fineData, const LevelData< EBCellFAB > &a_coarseData, const Interval &a_variables)
 
void pwcInterpMG (LevelData< EBCellFAB > &a_fineData, const LevelData< EBCellFAB > &a_coarseData, const Interval &a_variables)
 

Protected Member Functions

void defineLinearStencil (const DataIndex &a_dit, const Vector< VolIndex > &a_allFineVoFs, const EBISLayout &a_ebislStenFine, const EBISLayout &a_ebislStenCoar, const Box &a_boxFine, const Box &a_boxCoar)
 
void defineConstantStencil (const DataIndex &a_dit, const Vector< VolIndex > &a_allFineVoFs, const EBISLayout &a_ebislStenFine, const EBISLayout &a_ebislStenCoar, const Box &a_boxFine, const Box &a_boxCoar)
 
void fillGhostCellsPWC (LevelData< EBCellFAB > &a_data, const EBISLayout &a_ebisl, const ProblemDomain &a_dom)
 
void pwcInterpFAB (EBCellFAB &a_refCoar, const Box &a_coarBox, const EBCellFAB &a_fine, const DataIndex &a_datInd, const Interval &a_variables) const
 
void pwlInterpFAB (EBCellFAB &a_refCoar, const Box &a_coarBox, const EBCellFAB &a_fine, const DataIndex &a_datInd, const Interval &a_variables) const
 
void setDefaultValues ()
 
void defineStencils ()
 

Protected Attributes

bool m_isDefined
 
IntVect m_ghost
 
DisjointBoxLayout m_coarGrids
 
DisjointBoxLayout m_fineGrids
 
ProblemDomain m_coarDomain
 
ProblemDomain m_fineDomain
 
EBISLayout m_coarEBISL
 
EBISLayout m_fineEBISL
 
int m_refRat
 
int m_nComp
 
bool m_doLinear
 
bool m_layoutChanged
 
bool m_coarsenable
 
DisjointBoxLayout m_buffGrids
 
EBISLayout m_buffEBISL
 
Copier m_copierFtoRC
 
Copier m_copierRCtoF
 
LayoutData< RefCountedPtr
< EBStencil > > 
m_interpEBStencil
 
LayoutData< RefCountedPtr
< EBStencil > > 
m_linearEBStencil
 

Private Member Functions

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

Detailed Description

Piecewise constant interpolation.

Finedata += coarse data.

Constructor & Destructor Documentation

EBMGInterp::EBMGInterp ( )

Default constructor. User must subsequently call define().

EBMGInterp::~EBMGInterp ( )
EBMGInterp::EBMGInterp ( const DisjointBoxLayout dblFine,
const DisjointBoxLayout dblCoar,
const EBISLayout ebislFine,
const EBISLayout ebislCoar,
const ProblemDomain domainCoar,
const int &  nref,
const int &  nvar,
const EBIndexSpace ebisPtr,
const IntVect ghostCellsPhi,
const bool &  layoutChanged = true,
const bool &  doLinear = false 
)

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.

EBMGInterp::EBMGInterp ( const EBMGInterp ebcin)
inlineprivate

References MayDay::Error().

Member Function Documentation

void EBMGInterp::define ( const DisjointBoxLayout dblFine,
const DisjointBoxLayout dblCoar,
const EBISLayout ebislFine,
const EBISLayout ebislCoar,
const ProblemDomain domainCoar,
const int &  nref,
const int &  nvar,
const EBIndexSpace ebisPtr,
const IntVect ghostCellsPhi,
const bool &  layoutChanged = true,
const bool &  doLinear = false 
)

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.

bool EBMGInterp::isDefined ( ) const

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

void EBMGInterp::pwcInterp ( LevelData< EBCellFAB > &  a_fineData,
const LevelData< EBCellFAB > &  a_coarseData,
const Interval a_variables 
)

Piecewise constant interpolation function FineData += coarseData

void EBMGInterp::pwlInterp ( LevelData< EBCellFAB > &  a_fineData,
const LevelData< EBCellFAB > &  a_coarseData,
const Interval a_variables 
)

Piecewise linear interpolation function FineData += coarseData + slope*dist only works if you turned on useLinear in define function. Ghost cells for the coarse data must be filled coming into the function.

void EBMGInterp::pwlInterpMG ( LevelData< EBCellFAB > &  a_fineData,
const LevelData< EBCellFAB > &  a_coarseData,
const Interval a_variables 
)

Piecewise linear interpolation function FineData += coarseData + slope*dist only works if you turned on useLinear in define function. no copies here Ghost cells for the coarse data must be filled coming into the function.

void EBMGInterp::pwcInterpMG ( LevelData< EBCellFAB > &  a_fineData,
const LevelData< EBCellFAB > &  a_coarseData,
const Interval a_variables 
)

Piecewise constant interpolation function for unchanged layouts (no agglomeration) there are no copies here FineData += coarseData

void EBMGInterp::defineLinearStencil ( const DataIndex a_dit,
const Vector< VolIndex > &  a_allFineVoFs,
const EBISLayout a_ebislStenFine,
const EBISLayout a_ebislStenCoar,
const Box a_boxFine,
const Box a_boxCoar 
)
protected
void EBMGInterp::defineConstantStencil ( const DataIndex a_dit,
const Vector< VolIndex > &  a_allFineVoFs,
const EBISLayout a_ebislStenFine,
const EBISLayout a_ebislStenCoar,
const Box a_boxFine,
const Box a_boxCoar 
)
protected
void EBMGInterp::fillGhostCellsPWC ( LevelData< EBCellFAB > &  a_data,
const EBISLayout a_ebisl,
const ProblemDomain a_dom 
)
protected
void EBMGInterp::pwcInterpFAB ( EBCellFAB a_refCoar,
const Box a_coarBox,
const EBCellFAB a_fine,
const DataIndex a_datInd,
const Interval a_variables 
) const
protected
void EBMGInterp::pwlInterpFAB ( EBCellFAB a_refCoar,
const Box a_coarBox,
const EBCellFAB a_fine,
const DataIndex a_datInd,
const Interval a_variables 
) const
protected
void EBMGInterp::setDefaultValues ( )
protected
void EBMGInterp::defineStencils ( )
protected
void EBMGInterp::operator= ( const EBMGInterp fabin)
inlineprivate

References MayDay::Error().

Member Data Documentation

bool EBMGInterp::m_isDefined
protected
IntVect EBMGInterp::m_ghost
protected
DisjointBoxLayout EBMGInterp::m_coarGrids
protected
DisjointBoxLayout EBMGInterp::m_fineGrids
protected
ProblemDomain EBMGInterp::m_coarDomain
protected
ProblemDomain EBMGInterp::m_fineDomain
protected
EBISLayout EBMGInterp::m_coarEBISL
protected
EBISLayout EBMGInterp::m_fineEBISL
protected
int EBMGInterp::m_refRat
protected
int EBMGInterp::m_nComp
protected
bool EBMGInterp::m_doLinear
protected
bool EBMGInterp::m_layoutChanged
protected
bool EBMGInterp::m_coarsenable
protected
DisjointBoxLayout EBMGInterp::m_buffGrids
protected
EBISLayout EBMGInterp::m_buffEBISL
protected
Copier EBMGInterp::m_copierFtoRC
protected
Copier EBMGInterp::m_copierRCtoF
protected
LayoutData<RefCountedPtr<EBStencil> > EBMGInterp::m_interpEBStencil
protected
LayoutData<RefCountedPtr<EBStencil> > EBMGInterp::m_linearEBStencil
protected

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