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

#include <EBLevelRedist.H>

Public Member Functions

 EBLevelRedist ()
 
 ~EBLevelRedist ()
 
 EBLevelRedist (const DisjointBoxLayout &a_dbl, const EBISLayout &a_ebisl, const ProblemDomain &a_domain, const int &a_ncomp, int a_redistRad=1, bool a_do2DStencil=false)
 
void define (const DisjointBoxLayout &a_dbl, const EBISLayout &a_ebisl, const ProblemDomain &a_domain, const int &a_ncomp, int a_redistRad=1, bool a_do2DStencil=false)
 
void resetWeights (const LevelData< EBCellFAB > &modifier, const int &ivar)
 
void increment (const BaseIVFAB< Real > &massDiff, const DataIndex &datInd, const Interval &variables)
 
void redistribute (LevelData< EBCellFAB > &solution, const Interval &variables)
 
void redistribute (LevelData< EBCellFAB > &a_solution, const Interval &a_srcVar, const Interval &a_dstVar)
 
void fixExplicitLap (const LevelData< EBCellFAB > &a_kappaLap, LevelData< EBCellFAB > &a_solution, const Interval &variables)
 
bool isDefined () const
 
void setToZero ()
 

Protected Attributes

int redistRad
 
RedistStencil m_stencil
 
int m_ncomp
 
int m_redistRad
 
DisjointBoxLayout m_grids
 
ProblemDomain m_domain
 
EBISLayout m_ebisl
 
bool m_isDefined
 
LevelData< BaseIVFAB< Real > > m_buffer
 
LayoutData< IntVectSetm_sets
 

Private Member Functions

void operator= (const EBLevelRedist &a_stenin)
 
 EBLevelRedist (const EBLevelRedist &a_stenin)
 

Constructor & Destructor Documentation

EBLevelRedist::EBLevelRedist ( )

Default constructor. User must subsequently call define().

EBLevelRedist::~EBLevelRedist ( )
EBLevelRedist::EBLevelRedist ( const DisjointBoxLayout a_dbl,
const EBISLayout a_ebisl,
const ProblemDomain a_domain,
const int &  a_ncomp,
int  a_redistRad = 1,
bool  a_do2DStencil = false 
)

Defining constructor. Constructs a valid object. Equivalent to default construction followed by define(). ebisl needs ghost cells out to 3*redistradius of the stencil. This sets the stencil to volume-weighted. Use resetWeights to set to mass weighted or whatever.

EBLevelRedist::EBLevelRedist ( const EBLevelRedist a_stenin)
inlineprivate

References MayDay::Error().

Member Function Documentation

void EBLevelRedist::define ( const DisjointBoxLayout a_dbl,
const EBISLayout a_ebisl,
const ProblemDomain a_domain,
const int &  a_ncomp,
int  a_redistRad = 1,
bool  a_do2DStencil = false 
)

Defines this object. Existing information is overriden. ebisl needs ghost cells out to 3*redistradius

void EBLevelRedist::resetWeights ( const LevelData< EBCellFAB > &  modifier,
const int &  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.

void EBLevelRedist::increment ( const BaseIVFAB< Real > &  massDiff,
const DataIndex datInd,
const Interval variables 
)

Store the input mass difference in the buffers of the class by INCREMENTING the buffer. \ dm += massDiff

void EBLevelRedist::redistribute ( LevelData< EBCellFAB > &  solution,
const Interval variables 
)

Redistribute the data contained in the internal buffers. \ solution += weight*dm

void EBLevelRedist::redistribute ( LevelData< EBCellFAB > &  a_solution,
const Interval a_srcVar,
const Interval a_dstVar 
)

version where solution is not necessarily ncomp long. intervals have to be the same length. srcVar can be up to m_ncomp long. dstVar can be up to solution.nComp().

void EBLevelRedist::fixExplicitLap ( const LevelData< EBCellFAB > &  a_kappaLap,
LevelData< EBCellFAB > &  a_solution,
const Interval variables 
)

Adjusts an explicit Laplacian calculation so that: a_solution_i = kappa_i*lap_i + (1-kappa_i)*sum_s(kappa_s*lap_s)/(sum_s kappa_s) where s is the set of cells neighboring, but not including i NOTE: a_solution must be passed in equal to a_kappaLap

bool EBLevelRedist::isDefined ( ) const

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

void EBLevelRedist::setToZero ( )

Reset the mass buffers of the class.

void EBLevelRedist::operator= ( const EBLevelRedist a_stenin)
inlineprivate

References MayDay::Error().

Member Data Documentation

int EBLevelRedist::redistRad
protected
RedistStencil EBLevelRedist::m_stencil
protected
int EBLevelRedist::m_ncomp
protected
int EBLevelRedist::m_redistRad
protected
DisjointBoxLayout EBLevelRedist::m_grids
protected
ProblemDomain EBLevelRedist::m_domain
protected
EBISLayout EBLevelRedist::m_ebisl
protected
bool EBLevelRedist::m_isDefined
protected
LevelData<BaseIVFAB<Real> > EBLevelRedist::m_buffer
protected
LayoutData<IntVectSet> EBLevelRedist::m_sets
protected

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