#include <EBFluxRegister.H>
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 &) |
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().
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] |
References CH_assert, and EBFastFR::incrementCoarseBoth().
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] |
References CH_assert, and EBFastFR::incrementFineBoth().
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().