Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

EBFluxRegister Class Reference

EBFluxRegister-A class to encapsulate a levels worth of flux registers. More...

#include <EBFluxRegister.H>

Collaboration diagram for EBFluxRegister:

Collaboration graph
[legend]
List of all members.

Public Methods

 EBFluxRegister ()
 EBFluxRegister (const DisjointBoxLayout &a_dblFine, const DisjointBoxLayout &a_dblCoar, const EBISLayout &ebislFine, const EBISLayout &ebislCoar, const Box &domainCoar, const int &nref, const int &nvar)
 ~EBFluxRegister ()
void define (const DisjointBoxLayout &a_dblFine, const DisjointBoxLayout &a_dblCoar, const EBISLayout &ebislFine, const EBISLayout &ebislCoar, const Box &domainCoar, const int &nref, const int &nvar)
void setToZero ()
void incrementCoarseRegular (const EBFaceFAB &a_coarseFlux, const Real &a_scale, const DataIndex &a_coarseDataIndex, const Interval &a_variables, const int &a_dir)
void incrementCoarseIrregular (const BaseIFFAB< Real > &a_coarseFlux, const Real &a_scale, const DataIndex &a_coarseDataIndex, const Interval &a_variables, const int &a_dir)
void incrementFineRegular (const EBFaceFAB &a_fineFlux, const Real &a_scale, const DataIndex &a_fineDataIndex, const Interval &a_variables, const int &a_dir, const Side::LoHiSide &a_sd)
void incrementFineIrregular (const BaseIFFAB< Real > &a_fineFlux, const Real &a_scale, const DataIndex &a_fineDataIndex, const Interval &a_variables, const int &a_dir, const Side::LoHiSide &a_sd)
void reflux (LevelData< EBCellFAB > &a_uCoarse, const Interval &a_variables, const Real &a_scale)
void incrementRedistRegister (EBCoarToFineRedist &a_register, const Interval &a_variables, const Real &a_scale)
void incrementRedistRegister (EBCoarToCoarRedist &a_register, const Interval &a_variables, const Real &a_scale)
void incrementDensityArray (LevelData< EBCellFAB > &a_coarMass, const Interval &a_variables, const Real &a_scale)
bool isDefined () const
void dumpCoar (const int &a_idir, const Side::LoHiSide &a_sd)
void dumpFine (const int &a_idir, const Side::LoHiSide &a_sd)
void dumpBIVF (const BaseIVFAB< Real > &reg, const EBISBox &a_ebisBox)

Protected Methods

void setDefaultValues ()

Static Protected Methods

int index (int a_dir, Side::LoHiSide a_side)

Protected Attributes

DisjointBoxLayout m_gridsFine
DisjointBoxLayout m_gridsCoar
DisjointBoxLayout m_bufGridsFine [SpaceDim *2]
DisjointBoxLayout m_bufGridsCoar [SpaceDim *2]
LevelData< BaseIVFAB< Real > > m_regsCoar [SpaceDim *2]
LevelData< BaseIVFAB< Real > > m_regsFine [SpaceDim *2]
LevelData< BaseIVFAB< Real > > m_scratchc [SpaceDim *2]
LayoutData< IntVectSetm_cfivsFine [SpaceDim *2]
LayoutData< IntVectSetm_cfivsCoar [SpaceDim *2]
EBISLayout m_ebislFine
EBISLayout m_ebislCoar
EBISLayout m_ebislBufCoar [2 *SpaceDim]
EBISLayout m_ebislBufFine [2 *SpaceDim]
LayoutData< Vector< DataIndex > > m_coarIndexMap [SpaceDim *2]
bool m_isDefined
int m_nComp
int m_refRat
Box m_domainCoar

Private Methods

void operator= (const EBFluxRegister &)
 EBFluxRegister (const EBFluxRegister &)

Detailed Description

EBFluxRegister-A class to encapsulate a levels worth of flux registers.

A EBFluxRegister handles all the data choreography necessary to create a levels worth of flux registers.


Constructor & Destructor Documentation

EBFluxRegister::EBFluxRegister  
 

Default constructor. Leaves object undefined.

EBFluxRegister::EBFluxRegister const DisjointBoxLayout   a_dblFine,
const DisjointBoxLayout   a_dblCoar,
const EBISLayout   ebislFine,
const EBISLayout   ebislCoar,
const Box   domainCoar,
const int &    nref,
const int &    nvar
 

Full constructor. Calls the define function which creates a levels worth of flux registers.

EBFluxRegister::~EBFluxRegister  
 

EBFluxRegister::EBFluxRegister const EBFluxRegister &    [inline, private]
 


Member Function Documentation

void EBFluxRegister::define const DisjointBoxLayout   a_dblFine,
const DisjointBoxLayout   a_dblCoar,
const EBISLayout   ebislFine,
const EBISLayout   ebislCoar,
const Box   domainCoar,
const int &    nref,
const int &    nvar
 

Full define function. Creates a levels worth of flux registers.

void EBFluxRegister::dumpBIVF const BaseIVFAB< Real > &    reg,
const EBISBox   a_ebisBox
 

void EBFluxRegister::dumpCoar const int &    a_idir,
const Side::LoHiSide   a_sd
 

void EBFluxRegister::dumpFine const int &    a_idir,
const Side::LoHiSide   a_sd
 

void EBFluxRegister::incrementCoarseIrregular const BaseIFFAB< Real > &    a_coarseFlux,
const Real   a_scale,
const DataIndex   a_coarseDataIndex,
const Interval   a_variables,
const int &    a_dir
 

increments the register with data from coarseFlux, multiplied by scale. Increment coarse buffer with the area-weighted sum of the fluxes on the faces. buf += -scale*sum(areaFrac*flux) CoarseFlux must contain the coarse fluxes in the dir direction for the grid m_coarseLayout[coarseDataIndex].

void EBFluxRegister::incrementCoarseRegular const EBFaceFAB   a_coarseFlux,
const Real   a_scale,
const DataIndex   a_coarseDataIndex,
const Interval   a_variables,
const int &    a_dir
 

increments the register with data from coarseFlux, multiplied by scale. Increment coarse buffer with the area-weighted sum of the fluxes on the faces. buf += -scale*sum(areaFrac*flux) CoarseFlux must contain the coarse fluxes in the dir direction for the grid m_coarseLayout[coarseDataIndex].

void EBFluxRegister::incrementDensityArray LevelData< EBCellFAB > &    a_coarMass,
const Interval   a_variables,
const Real   a_scale
 

Increments mass array with left-over mass from reflux divergence.

void EBFluxRegister::incrementFineIrregular const BaseIFFAB< Real > &    a_fineFlux,
const Real   a_scale,
const DataIndex   a_fineDataIndex,
const Interval   a_variables,
const int &    a_dir,
const Side::LoHiSide   a_sd
 

increments the register with data from fineFlux, multiplied by scale. fineFlux must contain the coarse fluxes in the dir direction for the grid m_fineLayout[fineDataIndex]. This operation is local.

void EBFluxRegister::incrementFineRegular const EBFaceFAB   a_fineFlux,
const Real   a_scale,
const DataIndex   a_fineDataIndex,
const Interval   a_variables,
const int &    a_dir,
const Side::LoHiSide   a_sd
 

increments the register with data from fineFlux, multiplied by scale. fineFlux must contain the coarse fluxes in the dir direction for the grid m_fineLayout[fineDataIndex]. This operation is local.

void EBFluxRegister::incrementRedistRegister EBCoarToCoarRedist   a_register,
const Interval   a_variables,
const Real   a_scale
 

Increments redistribution register with left-over mass from reflux divergence.

void EBFluxRegister::incrementRedistRegister EBCoarToFineRedist   a_register,
const Interval   a_variables,
const Real   a_scale
 

Increments redistribution register with left-over mass from reflux divergence.

int EBFluxRegister::index int    a_dir,
Side::LoHiSide    a_side
[static, protected]
 

bool EBFluxRegister::isDefined   const
 

void EBFluxRegister::operator= const EBFluxRegister &    [inline, private]
 

void EBFluxRegister::reflux LevelData< EBCellFAB > &    a_uCoarse,
const Interval   a_variables,
const Real   a_scale
 

increments uCoarse with the reflux divergence of the contents of the flux register. This operation is global and blocking.

void EBFluxRegister::setDefaultValues   [protected]
 

void EBFluxRegister::setToZero  
 

Initialize values of registers to zero.


Member Data Documentation

DisjointBoxLayout EBFluxRegister::m_bufGridsCoar[SpaceDim*2] [protected]
 

DisjointBoxLayout EBFluxRegister::m_bufGridsFine[SpaceDim*2] [protected]
 

LayoutData<IntVectSet> EBFluxRegister::m_cfivsCoar[SpaceDim*2] [protected]
 

LayoutData<IntVectSet> EBFluxRegister::m_cfivsFine[SpaceDim*2] [protected]
 

LayoutData<Vector<DataIndex> > EBFluxRegister::m_coarIndexMap[SpaceDim*2] [protected]
 

Box EBFluxRegister::m_domainCoar [protected]
 

EBISLayout EBFluxRegister::m_ebislBufCoar[2*SpaceDim] [protected]
 

EBISLayout EBFluxRegister::m_ebislBufFine[2*SpaceDim] [protected]
 

EBISLayout EBFluxRegister::m_ebislCoar [protected]
 

EBISLayout EBFluxRegister::m_ebislFine [protected]
 

DisjointBoxLayout EBFluxRegister::m_gridsCoar [protected]
 

DisjointBoxLayout EBFluxRegister::m_gridsFine [protected]
 

bool EBFluxRegister::m_isDefined [protected]
 

int EBFluxRegister::m_nComp [protected]
 

int EBFluxRegister::m_refRat [protected]
 

LevelData<BaseIVFAB<Real> > EBFluxRegister::m_regsCoar[SpaceDim*2] [protected]
 

LevelData<BaseIVFAB<Real> > EBFluxRegister::m_regsFine[SpaceDim*2] [protected]
 

LevelData<BaseIVFAB<Real> > EBFluxRegister::m_scratchc[SpaceDim*2] [protected]
 


The documentation for this class was generated from the following file:
Generated on Wed Apr 16 14:35:12 2003 for EBChombo by doxygen1.2.16