Chombo + EB + MF  3.2
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
 
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)
 

Detailed Description

Piecewise constant interpolation.

Finedata += coarse data.

Constructor & Destructor Documentation

◆ EBMGInterp() [1/3]

EBMGInterp::EBMGInterp ( )

Default constructor. User must subsequently call define().

◆ ~EBMGInterp()

EBMGInterp::~EBMGInterp ( )

◆ EBMGInterp() [2/3]

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() [3/3]

EBMGInterp::EBMGInterp ( const EBMGInterp ebcin)
inlineprivate

References MayDay::Error().

Member Function Documentation

◆ define()

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.

◆ isDefined()

bool EBMGInterp::isDefined ( ) const

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

◆ pwcInterp()

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

Piecewise constant interpolation function FineData += coarseData

◆ pwlInterp()

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.

◆ pwlInterpMG()

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.

◆ pwcInterpMG()

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

◆ defineLinearStencil()

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

◆ defineConstantStencil()

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

◆ fillGhostCellsPWC()

void EBMGInterp::fillGhostCellsPWC ( LevelData< EBCellFAB > &  a_data,
const EBISLayout a_ebisl,
const ProblemDomain a_dom 
)
protected

◆ pwcInterpFAB()

void EBMGInterp::pwcInterpFAB ( EBCellFAB a_refCoar,
const Box a_coarBox,
const EBCellFAB a_fine,
const DataIndex a_datInd,
const Interval a_variables 
) const
protected

◆ pwlInterpFAB()

void EBMGInterp::pwlInterpFAB ( EBCellFAB a_refCoar,
const Box a_coarBox,
const EBCellFAB a_fine,
const DataIndex a_datInd,
const Interval a_variables 
) const
protected

◆ setDefaultValues()

void EBMGInterp::setDefaultValues ( )
protected

◆ defineStencils()

void EBMGInterp::defineStencils ( )
protected

◆ operator=()

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

References MayDay::Error().

Member Data Documentation

◆ m_isDefined

bool EBMGInterp::m_isDefined
protected

◆ m_ghost

IntVect EBMGInterp::m_ghost
protected

◆ m_coarGrids

DisjointBoxLayout EBMGInterp::m_coarGrids
protected

◆ m_fineGrids

DisjointBoxLayout EBMGInterp::m_fineGrids
protected

◆ m_coarDomain

ProblemDomain EBMGInterp::m_coarDomain
protected

◆ m_fineDomain

ProblemDomain EBMGInterp::m_fineDomain
protected

◆ m_coarEBISL

EBISLayout EBMGInterp::m_coarEBISL
protected

◆ m_fineEBISL

EBISLayout EBMGInterp::m_fineEBISL
protected

◆ m_buffer

LevelData<EBCellFAB> EBMGInterp::m_buffer
protected

◆ m_refRat

int EBMGInterp::m_refRat
protected

◆ m_nComp

int EBMGInterp::m_nComp
protected

◆ m_doLinear

bool EBMGInterp::m_doLinear
protected

◆ m_layoutChanged

bool EBMGInterp::m_layoutChanged
protected

◆ m_coarsenable

bool EBMGInterp::m_coarsenable
protected

◆ m_buffGrids

DisjointBoxLayout EBMGInterp::m_buffGrids
protected

◆ m_buffEBISL

EBISLayout EBMGInterp::m_buffEBISL
protected

◆ m_copierFtoRC

Copier EBMGInterp::m_copierFtoRC
protected

◆ m_copierRCtoF

Copier EBMGInterp::m_copierRCtoF
protected

◆ m_interpEBStencil

LayoutData<RefCountedPtr<EBStencil> > EBMGInterp::m_interpEBStencil
protected

◆ m_linearEBStencil

LayoutData<RefCountedPtr<EBStencil> > EBMGInterp::m_linearEBStencil
protected

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