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

replaces coarse level data with an average of fine level data. More...

#include <EBCoarseAverage.H>

Public Member Functions

 EBCoarseAverage ()
 
 ~EBCoarseAverage ()
 
 EBCoarseAverage (const DisjointBoxLayout &dblFine, const DisjointBoxLayout &dblCoar, const EBISLayout &ebislFine, const EBISLayout &ebislCoar, const ProblemDomain &domainCoar, const int &nref, const int &nvar, const EBIndexSpace *ebisPtr)
 
 EBCoarseAverage (const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblgCoar, const EBLevelGrid &a_eblgCoFi, const int &nref, const int &nvar)
 
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)
 
void define (const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblgCoar, const EBLevelGrid &a_eblgCoFi, const int &nref, const int &nvar)
 
bool isDefined () const
 
void average (LevelData< EBCellFAB > &a_coarData, const LevelData< EBCellFAB > &a_fineData, const Interval &a_variables)
 
void average (LevelData< EBFluxFAB > &a_coarData, const LevelData< EBFluxFAB > &a_fineData, const Interval &a_variables)
 
void average (LevelData< BaseIVFAB< Real > > &a_coarData, const LevelData< BaseIVFAB< Real > > &a_fineData, const Interval &a_variables)
 

Protected Member Functions

void averageFAB (EBCellFAB &a_coar, const EBCellFAB &a_fine, const DataIndex &a_datInd, const Interval &a_variables) const
 
void averageFAB (EBFaceFAB &a_coar, const EBFaceFAB &a_fine, const DataIndex &a_datInd, const Interval &a_variables, const int &a_dir) const
 
void averageFAB (BaseIVFAB< Real > &a_coar, const BaseIVFAB< Real > &a_fine, const DataIndex &a_datInd, const Interval &a_variables) const
 
void setDefaultValues ()
 

Protected Attributes

bool m_isDefined
 
bool m_useFineBuffer
 
EBLevelGrid m_eblgCoar
 
EBLevelGrid m_eblgFine
 
EBLevelGrid m_eblgCoFi
 
LayoutData< IntVectSetm_irregSetsCoFi
 
LayoutData< IntVectSetm_irregSetsFine
 
int m_refRat
 
int m_nComp
 

Private Member Functions

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

Detailed Description

replaces coarse level data with an average of fine level data.

This class replaces data at a coarse level of refinement with an average of data at a finer level of refinement, in areas where fine data is present. Coarse level data is not modified where fine level data is not present.

Constructor & Destructor Documentation

◆ EBCoarseAverage() [1/4]

EBCoarseAverage::EBCoarseAverage ( )

Default constructor. User must subsequently call define().

◆ ~EBCoarseAverage()

EBCoarseAverage::~EBCoarseAverage ( )

◆ EBCoarseAverage() [2/4]

EBCoarseAverage::EBCoarseAverage ( const DisjointBoxLayout dblFine,
const DisjointBoxLayout dblCoar,
const EBISLayout ebislFine,
const EBISLayout ebislCoar,
const ProblemDomain domainCoar,
const int &  nref,
const int &  nvar,
const EBIndexSpace ebisPtr 
)

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.

◆ EBCoarseAverage() [3/4]

EBCoarseAverage::EBCoarseAverage ( const EBLevelGrid a_eblgFine,
const EBLevelGrid a_eblgCoar,
const EBLevelGrid a_eblgCoFi,
const int &  nref,
const int &  nvar 
)

Defining constructor. Constructs a valid object. Equivalent to default construction followed by define().

{ Arguments:}\ eblgFine, eblgCoar: The fine and coarse EBLevelGrids \ nref: The refinement ratio between the two levels. \ nvar: The number of variables contained in the data at each VoF.

◆ EBCoarseAverage() [4/4]

EBCoarseAverage::EBCoarseAverage ( const EBCoarseAverage ebcin)
inlineprivate

References MayDay::Error().

Member Function Documentation

◆ define() [1/2]

void EBCoarseAverage::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 
)

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.

◆ define() [2/2]

void EBCoarseAverage::define ( const EBLevelGrid a_eblgFine,
const EBLevelGrid a_eblgCoar,
const EBLevelGrid a_eblgCoFi,
const int &  nref,
const int &  nvar 
)

Defines this object. Existing information is overriden.

{ Arguments:}\ eblgFine, eblgCoar: The fine and coarse EBLevelGrids \ nref: The refinement ratio between the two levels. \ nvar: The number of variables contained in the data at each VoF.

◆ isDefined()

bool EBCoarseAverage::isDefined ( ) const

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

◆ average() [1/3]

void EBCoarseAverage::average ( LevelData< EBCellFAB > &  a_coarData,
const LevelData< EBCellFAB > &  a_fineData,
const Interval a_variables 
)

Replaces a_coarse_data with the average of a_fine_data within the coarsening of the domain of the fine level. Elsewhere, the coarse data is unchanged. It is an error to call if not this->isDefined(). The domain of a_fine_data should be the same as the fine domain specified in the most recent call to define(). It is expected that the coarse and fine level's domains are properly nested. Both a_coarse_data and a_fine_data should have the same number of components specified in the most recent call to define().

{ Arguments:}\ coarData: The data over the coarse layout.\ fineData: The data over the fine layout. \ Fine and coarse data must have the same number of variables.\ variables: The variables to average. Those not in this range will be left alone. This range of variables must be in both the coarse and fine data.

◆ average() [2/3]

void EBCoarseAverage::average ( LevelData< EBFluxFAB > &  a_coarData,
const LevelData< EBFluxFAB > &  a_fineData,
const Interval a_variables 
)

◆ average() [3/3]

void EBCoarseAverage::average ( LevelData< BaseIVFAB< Real > > &  a_coarData,
const LevelData< BaseIVFAB< Real > > &  a_fineData,
const Interval a_variables 
)

◆ averageFAB() [1/3]

void EBCoarseAverage::averageFAB ( EBCellFAB a_coar,
const EBCellFAB a_fine,
const DataIndex a_datInd,
const Interval a_variables 
) const
protected

◆ averageFAB() [2/3]

void EBCoarseAverage::averageFAB ( EBFaceFAB a_coar,
const EBFaceFAB a_fine,
const DataIndex a_datInd,
const Interval a_variables,
const int &  a_dir 
) const
protected

◆ averageFAB() [3/3]

void EBCoarseAverage::averageFAB ( BaseIVFAB< Real > &  a_coar,
const BaseIVFAB< Real > &  a_fine,
const DataIndex a_datInd,
const Interval a_variables 
) const
protected

◆ setDefaultValues()

void EBCoarseAverage::setDefaultValues ( )
protected

◆ operator=()

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

References MayDay::Error().

Member Data Documentation

◆ m_isDefined

bool EBCoarseAverage::m_isDefined
protected

◆ m_useFineBuffer

bool EBCoarseAverage::m_useFineBuffer
protected

◆ m_eblgCoar

EBLevelGrid EBCoarseAverage::m_eblgCoar
protected

◆ m_eblgFine

EBLevelGrid EBCoarseAverage::m_eblgFine
protected

◆ m_eblgCoFi

EBLevelGrid EBCoarseAverage::m_eblgCoFi
protected

◆ m_irregSetsCoFi

LayoutData<IntVectSet> EBCoarseAverage::m_irregSetsCoFi
protected

◆ m_irregSetsFine

LayoutData<IntVectSet> EBCoarseAverage::m_irregSetsFine
protected

◆ m_refRat

int EBCoarseAverage::m_refRat
protected

◆ m_nComp

int EBCoarseAverage::m_nComp
protected

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