Chombo + EB  3.2
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Friends | List of all members
EBFineToCoarRedist Class Reference

#include <EBFineToCoarRedist.H>

Public Member Functions

void resetWeights (const LevelData< EBCellFAB > &a_modifierCoar, const int &a_ivar)
 
 EBFineToCoarRedist ()
 
 ~EBFineToCoarRedist ()
 
void define (const DisjointBoxLayout &a_dblFine, const DisjointBoxLayout &a_dblCoar, const EBISLayout &a_ebislFine, const EBISLayout &a_ebislCoar, const Box &a_domainCoar, const int &a_nref, const int &a_nvar, int a_redistRad=1, const EBIndexSpace *const a_ebisPtr=Chombo_EBIS::instance())
 uglier but general define fcn More...
 
void define (const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblgCoar, const int &a_nref, const int &a_nvar, const int &a_redistRad)
 
void setToZero ()
 
void increment (const BaseIVFAB< Real > &a_fineMass, const DataIndex &a_fineDataIndex, const Interval &a_variables)
 
void redistribute (LevelData< EBCellFAB > &a_coarSolution, const Interval &a_variables)
 
bool isDefined () const
 

Protected Member Functions

void setDefaultValues ()
 
void defineDataHolders ()
 

Protected Attributes

bool m_isDefined
 
int m_redistRad
 
int m_nComp
 
int m_refRat
 
Box m_domainCoar
 
DisjointBoxLayout m_gridsFine
 
DisjointBoxLayout m_gridsCoar
 
DisjointBoxLayout m_gridsRefCoar
 
LevelData< BaseIVFAB< Real > > m_regsFine
 
LevelData< BaseIVFAB< Real > > m_regsRefCoar
 
LayoutData< BaseIVFAB< VoFStencil > > m_stenRefCoar
 
LayoutData< BaseIVFAB< VoFStencil > > m_volumeStenc
 
LayoutData< BaseIVFAB< VoFStencil > > m_standardStenc
 
LevelData< EBCellFABm_densityCoar
 
LayoutData< IntVectSetm_setsFine
 
LayoutData< IntVectSetm_setsRefCoar
 
EBISLayout m_ebislFine
 
EBISLayout m_ebislCoar
 
EBISLayout m_ebislRefCoar
 

Private Member Functions

void operator= (const EBFineToCoarRedist &)
 
 EBFineToCoarRedist (const EBFineToCoarRedist &)
 

Friends

class EBFluxRegister
 

Detailed Description

A EBFineToCoarRedist handles all the data choreography for fine to coarse redistribution.

Constructor & Destructor Documentation

◆ EBFineToCoarRedist() [1/2]

EBFineToCoarRedist::EBFineToCoarRedist ( )

Default constructor. Leaves object undefined.

◆ ~EBFineToCoarRedist()

EBFineToCoarRedist::~EBFineToCoarRedist ( )

◆ EBFineToCoarRedist() [2/2]

EBFineToCoarRedist::EBFineToCoarRedist ( const EBFineToCoarRedist )
inlineprivate

References MayDay::Error().

Member Function Documentation

◆ resetWeights()

void EBFineToCoarRedist::resetWeights ( const LevelData< EBCellFAB > &  a_modifierCoar,
const int &  a_ivar 
)

Modify the weights in the stencil by multiplying by the inputs in a normalized way. If you want mass weighting, send in the density on the coarse layout.

◆ define() [1/2]

void EBFineToCoarRedist::define ( const DisjointBoxLayout a_dblFine,
const DisjointBoxLayout a_dblCoar,
const EBISLayout a_ebislFine,
const EBISLayout a_ebislCoar,
const Box a_domainCoar,
const int &  a_nref,
const int &  a_nvar,
int  a_redistRad = 1,
const EBIndexSpace *const  a_ebisPtr = Chombo_EBIS::instance() 
)

uglier but general define fcn

Full define function. Define the stencils with volume weights. If you want mass weights or whatever, use reset weights.

◆ define() [2/2]

void EBFineToCoarRedist::define ( const EBLevelGrid a_eblgFine,
const EBLevelGrid a_eblgCoar,
const int &  a_nref,
const int &  a_nvar,
const int &  a_redistRad 
)

potentially faster define function, especially with large numbers of boxes.

◆ setToZero()

void EBFineToCoarRedist::setToZero ( )

Initialize values of registers to zero.

◆ increment()

void EBFineToCoarRedist::increment ( const BaseIVFAB< Real > &  a_fineMass,
const DataIndex a_fineDataIndex,
const Interval a_variables 
)

Increments the register with data from coarseMass. This is the full redistribution mass. Internally the class figures out what actually goes to the coarse level.

◆ redistribute()

void EBFineToCoarRedist::redistribute ( LevelData< EBCellFAB > &  a_coarSolution,
const Interval a_variables 
)

Redistribute the data contained in the internal buffers.

◆ isDefined()

bool EBFineToCoarRedist::isDefined ( ) const

◆ setDefaultValues()

void EBFineToCoarRedist::setDefaultValues ( )
protected

◆ defineDataHolders()

void EBFineToCoarRedist::defineDataHolders ( )
protected

◆ operator=()

void EBFineToCoarRedist::operator= ( const EBFineToCoarRedist )
inlineprivate

References MayDay::Error().

Friends And Related Function Documentation

◆ EBFluxRegister

friend class EBFluxRegister
friend

Member Data Documentation

◆ m_isDefined

bool EBFineToCoarRedist::m_isDefined
protected

◆ m_redistRad

int EBFineToCoarRedist::m_redistRad
protected

◆ m_nComp

int EBFineToCoarRedist::m_nComp
protected

◆ m_refRat

int EBFineToCoarRedist::m_refRat
protected

◆ m_domainCoar

Box EBFineToCoarRedist::m_domainCoar
protected

◆ m_gridsFine

DisjointBoxLayout EBFineToCoarRedist::m_gridsFine
protected

◆ m_gridsCoar

DisjointBoxLayout EBFineToCoarRedist::m_gridsCoar
protected

◆ m_gridsRefCoar

DisjointBoxLayout EBFineToCoarRedist::m_gridsRefCoar
protected

◆ m_regsFine

LevelData<BaseIVFAB<Real> > EBFineToCoarRedist::m_regsFine
protected

◆ m_regsRefCoar

LevelData<BaseIVFAB<Real> > EBFineToCoarRedist::m_regsRefCoar
protected

◆ m_stenRefCoar

LayoutData<BaseIVFAB<VoFStencil> > EBFineToCoarRedist::m_stenRefCoar
protected

◆ m_volumeStenc

LayoutData<BaseIVFAB<VoFStencil> > EBFineToCoarRedist::m_volumeStenc
protected

◆ m_standardStenc

LayoutData<BaseIVFAB<VoFStencil> > EBFineToCoarRedist::m_standardStenc
protected

◆ m_densityCoar

LevelData<EBCellFAB> EBFineToCoarRedist::m_densityCoar
protected

◆ m_setsFine

LayoutData<IntVectSet> EBFineToCoarRedist::m_setsFine
protected

◆ m_setsRefCoar

LayoutData<IntVectSet> EBFineToCoarRedist::m_setsRefCoar
protected

◆ m_ebislFine

EBISLayout EBFineToCoarRedist::m_ebislFine
protected

◆ m_ebislCoar

EBISLayout EBFineToCoarRedist::m_ebislCoar
protected

◆ m_ebislRefCoar

EBISLayout EBFineToCoarRedist::m_ebislRefCoar
protected

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