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)
 
 EBLevelRedist (const EBLevelGrid &a_eblg, const int &a_ncomp, int a_redistRad=1, bool a_do2DStencil=false)
 
void define (const EBLevelGrid &a_eblg, 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 increment (const LevelData< IrregFAB > &a_dm, const Interval &a_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() [1/4]

EBLevelRedist::EBLevelRedist ( )

Default constructor. User must subsequently call define().

◆ ~EBLevelRedist()

EBLevelRedist::~EBLevelRedist ( )

◆ EBLevelRedist() [2/4]

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() [3/4]

EBLevelRedist::EBLevelRedist ( const EBLevelGrid a_eblg,
const int &  a_ncomp,
int  a_redistRad = 1,
bool  a_do2DStencil = false 
)
inline

References define().

◆ EBLevelRedist() [4/4]

EBLevelRedist::EBLevelRedist ( const EBLevelRedist a_stenin)
inlineprivate

References MayDay::Error().

Member Function Documentation

◆ define() [1/2]

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

Referenced by define(), and EBLevelRedist().

◆ define() [2/2]

void EBLevelRedist::define ( const EBLevelGrid a_eblg,
const int &  a_ncomp,
int  a_redistRad = 1,
bool  a_do2DStencil = false 
)
inline

◆ resetWeights()

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.

Referenced by define().

◆ increment() [1/2]

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

Referenced by define(), and increment().

◆ increment() [2/2]

void EBLevelRedist::increment ( const LevelData< IrregFAB > &  a_dm,
const Interval a_variables 
)
inline

◆ redistribute() [1/2]

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

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

Referenced by increment().

◆ redistribute() [2/2]

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

◆ fixExplicitLap()

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

Referenced by increment().

◆ isDefined()

bool EBLevelRedist::isDefined ( ) const

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

Referenced by increment().

◆ setToZero()

void EBLevelRedist::setToZero ( )

Reset the mass buffers of the class.

Referenced by increment().

◆ operator=()

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

References MayDay::Error().

Member Data Documentation

◆ redistRad

int EBLevelRedist::redistRad
protected

◆ m_stencil

RedistStencil EBLevelRedist::m_stencil
protected

◆ m_ncomp

int EBLevelRedist::m_ncomp
protected

◆ m_redistRad

int EBLevelRedist::m_redistRad
protected

◆ m_grids

DisjointBoxLayout EBLevelRedist::m_grids
protected

◆ m_domain

ProblemDomain EBLevelRedist::m_domain
protected

◆ m_ebisl

EBISLayout EBLevelRedist::m_ebisl
protected

◆ m_isDefined

bool EBLevelRedist::m_isDefined
protected

◆ m_buffer

LevelData<BaseIVFAB<Real> > EBLevelRedist::m_buffer
protected

◆ m_sets

LayoutData<IntVectSet> EBLevelRedist::m_sets
protected

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