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

#include <Correct1D2D.H>

Public Member Functions

 Correct1D2D (const EBLevelGrid &a_eblg, const LayoutData< bool > &a_is1D, int a_nvar)
 
 ~Correct1D2D ()
 
void setToZero ()
 
void increment1D (const EBFaceFAB &a_1DFlux, const Real &a_scale, const DataIndex &a_dit)
 
void increment2D (const EBFaceFAB &a_2DFlux, const Real &a_scale, const DataIndex &a_dit)
 
void correctSolution (LevelData< EBCellFAB > &a_U)
 

Static Public Member Functions

static void makeIntMap (LevelData< BaseFab< int > > &a_intmap, const LayoutData< bool > &a_is1D, const DisjointBoxLayout &a_dbl)
 

Protected Member Functions

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

Protected Attributes

LevelData< BaseFab< int > > m_1d2d
 
DisjointBoxLayout m_dbl1d [2 *SpaceDim]
 
DisjointBoxLayout m_dbl2d [2 *SpaceDim]
 
int m_nvar
 
EBLevelGrid m_eblg
 
LayoutData< Vector< VolIndex > > m_sets1d [2 *SpaceDim]
 
LayoutData< Vector< VolIndex > > m_sets2d [2 *SpaceDim]
 
LevelData< EBCellFABm_deltaU1d [2 *SpaceDim]
 
LevelData< EBCellFABm_deltaU2d [2 *SpaceDim]
 

Private Member Functions

 Correct1D2D ()
 
 Correct1D2D (const Correct1D2D &a_in)
 
void operator= (const Correct1D2D &a_in)
 

Detailed Description

Given an EB application that uses one algorithm for fluxes on some boxes and another on other boxes, this will make the solution's fluxes match at box-box boundaries. In all this class, the winning algorithm at the boundary is denoted by 2D, the losing by 1D but this would work for whatever polyalgorithm you choose.

Constructor & Destructor Documentation

Correct1D2D::Correct1D2D ( const EBLevelGrid a_eblg,
const LayoutData< bool > &  a_is1D,
int  a_nvar 
)
Correct1D2D::~Correct1D2D ( )
inline
Correct1D2D::Correct1D2D ( )
inlineprivate

References MayDay::Error().

Correct1D2D::Correct1D2D ( const Correct1D2D a_in)
inlineprivate

References MayDay::Error().

Member Function Documentation

static void Correct1D2D::makeIntMap ( LevelData< BaseFab< int > > &  a_intmap,
const LayoutData< bool > &  a_is1D,
const DisjointBoxLayout a_dbl 
)
static
void Correct1D2D::setToZero ( )

sets buffers to zero

void Correct1D2D::increment1D ( const EBFaceFAB a_1DFlux,
const Real a_scale,
const DataIndex a_dit 
)

increments the 1D (losing) buffer by -flux*scale*sign(side) (side is which side of the changed cell we are talking about) typically scale = 1/dx[idir]

void Correct1D2D::increment2D ( const EBFaceFAB a_2DFlux,
const Real a_scale,
const DataIndex a_dit 
)

increments the 2D (winning) buffer by flux*scale*sign(side) (side is which side of the changed cell we are talking about) typically scale = 1/dx[idir]

void Correct1D2D::correctSolution ( LevelData< EBCellFAB > &  a_U)

subtracts off change in solution due to losing flux and adds in change in solution due to winning flux.

int Correct1D2D::index ( int  a_dir,
Side::LoHiSide  a_sd 
)
inlineprotected

References SpaceDim.

void Correct1D2D::operator= ( const Correct1D2D a_in)
inlineprivate

References MayDay::Error().

Member Data Documentation

LevelData< BaseFab<int> > Correct1D2D::m_1d2d
protected
DisjointBoxLayout Correct1D2D::m_dbl1d[2 *SpaceDim]
protected
DisjointBoxLayout Correct1D2D::m_dbl2d[2 *SpaceDim]
protected
int Correct1D2D::m_nvar
protected
EBLevelGrid Correct1D2D::m_eblg
protected
LayoutData< Vector<VolIndex> > Correct1D2D::m_sets1d[2 *SpaceDim]
protected
LayoutData< Vector<VolIndex> > Correct1D2D::m_sets2d[2 *SpaceDim]
protected
LevelData<EBCellFAB> Correct1D2D::m_deltaU1d[2 *SpaceDim]
protected
LevelData<EBCellFAB> Correct1D2D::m_deltaU2d[2 *SpaceDim]
protected

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