EBMGInterp Class Reference

#include <EBMGInterp.H>

List of all members.


Detailed Description

Piecewise constant interpolation.

Finedata += coarse data.

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
LevelData< EBCellFABm_buffer
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)


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  )  [inline, private]

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  )  [inline, private]

References MayDay::Error().


Member Data Documentation

bool EBMGInterp::m_isDefined [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]


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

Generated on Fri Apr 5 04:25:03 2019 for Chombo + EB by  doxygen 1.5.5