EBCoarseAverage Class Reference

#include <EBCoarseAverage.H>

List of all members.


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.

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

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< IntVectSetm_irregSetsCoFi
LayoutData< IntVectSetm_irregSetsFine
int m_refRat
int m_nComp

Private Member Functions

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


Constructor & Destructor Documentation

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.

EBCoarseAverage::EBCoarseAverage ( const EBCoarseAverage ebcin  )  [inline, private]

References MayDay::Error().


Member Function Documentation

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)

void EBCoarseAverage::averageFAB ( EBCellFAB a_coar,
const EBCellFAB a_fine,
const DataIndex a_datInd,
const Interval a_fineInterv,
const Interval a_coarInterv 
) const [protected]

void EBCoarseAverage::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 [protected]

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

void EBCoarseAverage::setDefaultValues (  )  [protected]

void EBCoarseAverage::operator= ( const EBCoarseAverage fabin  )  [inline, private]

References MayDay::Error().


Member Data Documentation

bool EBCoarseAverage::m_isDefined [protected]

int EBCoarseAverage::m_refRat [protected]

int EBCoarseAverage::m_nComp [protected]


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

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