Chombo + EB + MF
3.2
|
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) |
this does area weighted face averaging More... | |
void | average (LevelData< BaseIVFAB< Real > > &a_coarData, const LevelData< BaseIVFAB< Real > > &a_fineData, const Interval &a_variables) |
this does area-weighted averaging for the irregular area (for data on the EB) More... | |
Protected Member Functions | |
void | averageFAB (EBCellFAB &a_coar, const EBCellFAB &a_fine, const DataIndex &a_datInd, const Interval &a_fineInterv, const Interval &a_coarInterv) const |
void | averageFAB (EBFaceFAB &a_coar, const EBFaceFAB &a_fine, const DataIndex &a_datInd, const Interval &a_fineInterv, const Interval &a_coarInterv, 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< IntVectSet > | m_irregSetsCoFi |
LayoutData< IntVectSet > | m_irregSetsFine |
int | m_refRat |
int | m_nComp |
Private Member Functions | |
EBCoarseAverage (const EBCoarseAverage &ebcin) | |
void | operator= (const EBCoarseAverage &fabin) |
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.
EBCoarseAverage::EBCoarseAverage | ( | ) |
Default constructor. User must subsequently call define().
EBCoarseAverage::~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 | ||
) |
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::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.
|
inlineprivate |
References MayDay::Error().
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.
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.
bool EBCoarseAverage::isDefined | ( | ) | const |
Returns true if this object was created with the defining constructor or if define() has been called.
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.
void EBCoarseAverage::average | ( | LevelData< EBFluxFAB > & | a_coarData, |
const LevelData< EBFluxFAB > & | a_fineData, | ||
const Interval & | a_variables | ||
) |
this does area weighted face averaging
void EBCoarseAverage::average | ( | LevelData< BaseIVFAB< Real > > & | a_coarData, |
const LevelData< BaseIVFAB< Real > > & | a_fineData, | ||
const Interval & | a_variables | ||
) |
this does area-weighted averaging for the irregular area (for data on the EB)
|
protected |
|
protected |
|
protected |
|
protected |
|
inlineprivate |
References MayDay::Error().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |