EBFluxRegister Class Reference

#include <EBFluxRegister.H>

Inheritance diagram for EBFluxRegister:

Inheritance graph
[legend]

List of all members.


Detailed Description

EBFluxRegister-A class to encapsulate a levels worth of flux registers.

A EBFluxRegister handles all the data choreography necessary to create a levels worth of flux registers.

Public Member Functions

 EBFluxRegister ()
 EBFluxRegister (const DisjointBoxLayout &a_dblFine, const DisjointBoxLayout &a_dblCoar, const EBISLayout &a_ebislFine, const EBISLayout &a_ebislCoar, const Box &a_domainCoar, const int &a_nref, const int &a_nvar, const EBIndexSpace *ebisPtr, bool a_forceNoEBCF=false)
virtual ~EBFluxRegister ()
void define (const DisjointBoxLayout &a_dblFine, const DisjointBoxLayout &a_dblCoar, const EBISLayout &a_ebislFine, const EBISLayout &a_ebislCoar, const ProblemDomain &a_domainCoar, const int &a_nref, const int &a_nvar, const EBIndexSpace *ebisPtr, bool a_forceNoEBCF=false)
void incrementCoarseRegular (const EBFaceFAB &a_coarseFlux, const Real &a_scale, const DataIndex &a_coarseDataIndex, const Interval &a_variables, const int &a_dir)
void incrementCoarse (const EBFaceFAB &a_coarseFlux, const Real &a_scale, const DataIndex &a_coarseDataIndex, const Interval &a_varSrc, const Interval &a_varDst, const int &a_dir)
void incrementCoarseIrregular (const BaseIFFAB< Real > &a_coarseFlux, const Real &a_scale, const DataIndex &a_coarseDataIndex, const Interval &a_variables, const int &a_dir)
void incrementCoarseIrregular (const EBFaceFAB &a_coarFlux, const Real &a_scale, const DataIndex &a_coarDatInd, const Interval &a_variables, const int &a_dir)
void incrementFineRegular (const EBFaceFAB &a_fineFlux, const Real &a_scale, const DataIndex &a_fineDataIndex, const Interval &a_variables, const int &a_dir, const Side::LoHiSide &a_sd)
void incrementFine (const EBFaceFAB &a_fineFlux, const Real &a_scale, const DataIndex &a_fineDataIndex, const Interval &a_varSrc, const Interval &a_varDst, const int &a_dir)
void incrementFineIrregular (const BaseIFFAB< Real > &a_fineFlux, const Real &a_scale, const DataIndex &a_fineDataIndex, const Interval &a_variables, const int &a_dir, const Side::LoHiSide &a_sd)
void incrementFineIrregular (const EBFaceFAB &a_fineFlux, const Real &a_scale, const DataIndex &a_fineDataIndex, const Interval &a_variables, const int &a_dir, const Side::LoHiSide &a_sd)
void incrementRedistRegister (EBCoarToFineRedist &a_register, const Interval &a_variables, const Real &a_scale)
void incrementRedistRegister (EBCoarToCoarRedist &a_register, const Interval &a_variables, const Real &a_scale)
bool isDefined () const

Private Member Functions

bool copyBIFFToEBFF (EBFaceFAB &a_dst, const BaseIFFAB< Real > &a_src, const Box &a_box, const EBISBox &a_ebisBox)
void operator= (const EBFluxRegister &)
 EBFluxRegister (const EBFluxRegister &)


Constructor & Destructor Documentation

EBFluxRegister::EBFluxRegister (  )  [inline]

Default constructor. Leaves object undefined.

EBFluxRegister::EBFluxRegister ( const DisjointBoxLayout a_dblFine,
const DisjointBoxLayout a_dblCoar,
const EBISLayout a_ebislFine,
const EBISLayout a_ebislCoar,
const Box a_domainCoar,
const int &  a_nref,
const int &  a_nvar,
const EBIndexSpace ebisPtr,
bool  a_forceNoEBCF = false 
)

Full constructor. Calls the define function which creates a levels worth of flux registers.

virtual EBFluxRegister::~EBFluxRegister (  )  [virtual]

EBFluxRegister::EBFluxRegister ( const EBFluxRegister  )  [inline, private]

References MayDay::Error().


Member Function Documentation

void EBFluxRegister::define ( const DisjointBoxLayout a_dblFine,
const DisjointBoxLayout a_dblCoar,
const EBISLayout a_ebislFine,
const EBISLayout a_ebislCoar,
const ProblemDomain a_domainCoar,
const int &  a_nref,
const int &  a_nvar,
const EBIndexSpace ebisPtr,
bool  a_forceNoEBCF = false 
)

Full define function. Creates a levels worth of flux registers.

void EBFluxRegister::incrementCoarseRegular ( const EBFaceFAB a_coarseFlux,
const Real a_scale,
const DataIndex a_coarseDataIndex,
const Interval a_variables,
const int &  a_dir 
) [inline]

increments the register with data from coarseFlux, multiplied by scale. Increment coarse buffer with the area-weighted sum of the fluxes on the faces. buf += -scale*sum(areaFrac*flux) CoarseFlux must contain the coarse fluxes in the dir direction for the grid m_coarseLayout[coarseDataIndex].

References EBFastFR::incrementCoarRegul().

void EBFluxRegister::incrementCoarse ( const EBFaceFAB a_coarseFlux,
const Real a_scale,
const DataIndex a_coarseDataIndex,
const Interval a_varSrc,
const Interval a_varDst,
const int &  a_dir 
) [inline]

void EBFluxRegister::incrementCoarseIrregular ( const BaseIFFAB< Real > &  a_coarseFlux,
const Real a_scale,
const DataIndex a_coarseDataIndex,
const Interval a_variables,
const int &  a_dir 
)

increments the register with data from coarseFlux, multiplied by scale. Increment coarse buffer with the area-weighted sum of the fluxes on the faces. buf += -scale*sum(areaFrac*flux) CoarseFlux must contain the coarse fluxes in the dir direction for the grid m_coarseLayout[coarseDataIndex].

void EBFluxRegister::incrementCoarseIrregular ( const EBFaceFAB a_coarFlux,
const Real a_scale,
const DataIndex a_coarDatInd,
const Interval a_variables,
const int &  a_dir 
) [inline]

For when you have an EBFaceFAB lying around instead of a BaseIFFAB

References EBFastFR::incrementCoarIrreg().

void EBFluxRegister::incrementFineRegular ( const EBFaceFAB a_fineFlux,
const Real a_scale,
const DataIndex a_fineDataIndex,
const Interval a_variables,
const int &  a_dir,
const Side::LoHiSide a_sd 
) [inline]

increments the register with data from fineFlux, multiplied by scale. fineFlux must contain the coarse fluxes in the dir direction for the grid m_fineLayout[fineDataIndex]. This operation is local.

References EBFastFR::incrementFineRegul().

void EBFluxRegister::incrementFine ( const EBFaceFAB a_fineFlux,
const Real a_scale,
const DataIndex a_fineDataIndex,
const Interval a_varSrc,
const Interval a_varDst,
const int &  a_dir 
) [inline]

void EBFluxRegister::incrementFineIrregular ( const BaseIFFAB< Real > &  a_fineFlux,
const Real a_scale,
const DataIndex a_fineDataIndex,
const Interval a_variables,
const int &  a_dir,
const Side::LoHiSide a_sd 
)

increments the register with data from fineFlux, multiplied by scale. fineFlux must contain the coarse fluxes in the dir direction for the grid m_fineLayout[fineDataIndex]. This operation is local.

void EBFluxRegister::incrementFineIrregular ( const EBFaceFAB a_fineFlux,
const Real a_scale,
const DataIndex a_fineDataIndex,
const Interval a_variables,
const int &  a_dir,
const Side::LoHiSide a_sd 
) [inline]

For when you have a EBFaceFAB lying around instead of a BaseIFFAB

References EBFastFR::incrementFineIrreg().

void EBFluxRegister::incrementRedistRegister ( EBCoarToFineRedist a_register,
const Interval a_variables,
const Real a_scale 
)

Increments redistribution register with left-over mass from reflux divergence.

void EBFluxRegister::incrementRedistRegister ( EBCoarToCoarRedist a_register,
const Interval a_variables,
const Real a_scale 
)

Increments redistribution register with left-over mass from reflux divergence.

bool EBFluxRegister::isDefined (  )  const

Reimplemented from EBFastFR.

bool EBFluxRegister::copyBIFFToEBFF ( EBFaceFAB a_dst,
const BaseIFFAB< Real > &  a_src,
const Box a_box,
const EBISBox a_ebisBox 
) [private]

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

References MayDay::Error().


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

Generated on Sat Oct 21 04:03:43 2017 for Chombo + EB by  doxygen 1.5.5