Correct1D2D Class Reference

#include <Correct1D2D.H>

List of all members.


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.

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)

Constructor & Destructor Documentation

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

Correct1D2D::~Correct1D2D (  )  [inline]

Correct1D2D::Correct1D2D (  )  [inline, private]

References MayDay::Error().

Correct1D2D::Correct1D2D ( const Correct1D2D a_in  )  [inline, private]

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 
) [inline, protected]

References SpaceDim.

void Correct1D2D::operator= ( const Correct1D2D a_in  )  [inline, private]

References MayDay::Error().


Member Data Documentation

LevelData< BaseFab<int> > Correct1D2D::m_1d2d [protected]

int Correct1D2D::m_nvar [protected]


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

Generated on Fri Apr 5 04:24:58 2019 for Chombo + EB by  doxygen 1.5.5