#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< IntVectSet > | m_sets |
Private Member Functions | |
void | operator= (const EBLevelRedist &a_stenin) |
EBLevelRedist (const EBLevelRedist &a_stenin) |
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 | ) | [inline, private] |
References MayDay::Error().
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
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
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 | ) | [inline, private] |
References MayDay::Error().
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] |