#include <AMReX_YAFluxRegister.H>
Public Types | |
enum | CellType : int { crse_cell = 0 , crse_fine_boundary_cell , fine_cell } |
using | T = typename MF::value_type |
using | FAB = typename MF::fab_type |
Public Member Functions | |
YAFluxRegisterT ()=default | |
YAFluxRegisterT (const BoxArray &fba, const BoxArray &cba, const DistributionMapping &fdm, const DistributionMapping &cdm, const Geometry &fgeom, const Geometry &cgeom, const IntVect &ref_ratio, int fine_lev, int nvar) | |
void | define (const BoxArray &fba, const BoxArray &cba, const DistributionMapping &fdm, const DistributionMapping &cdm, const Geometry &fgeom, const Geometry &cgeom, const IntVect &ref_ratio, int fine_lev, int nvar) |
void | reset () |
void | CrseAdd (const MFIter &mfi, const std::array< FAB const *, AMREX_SPACEDIM > &flux, const Real *dx, Real dt, RunOn runon) noexcept |
void | CrseAdd (const MFIter &mfi, const std::array< FAB const *, AMREX_SPACEDIM > &flux, const Real *dx, Real dt, int srccomp, int destcomp, int numcomp, RunOn runon) noexcept |
void | FineAdd (const MFIter &mfi, const std::array< FAB const *, AMREX_SPACEDIM > &flux, const Real *dx, Real dt, RunOn runon) noexcept |
void | FineAdd (const MFIter &mfi, const std::array< FAB const *, AMREX_SPACEDIM > &a_flux, const Real *dx, Real dt, int srccomp, int destcomp, int numcomp, RunOn runon) noexcept |
void | Reflux (MF &state, int dc=0) |
void | Reflux (MF &state, int srccomp, int destcomp, int numcomp) |
bool | CrseHasWork (const MFIter &mfi) const noexcept |
bool | FineHasWork (const MFIter &mfi) const noexcept |
MF & | getFineData () |
MF & | getCrseData () |
void | setCrseVolume (MF const *cvol) |
Protected Attributes | |
MF | m_crse_data |
iMultiFab | m_crse_flag |
Vector< int > | m_crse_fab_flag |
MF | m_cfpatch |
This is built on crse/fine patches. More... | |
MF | m_cfp_mask |
Vector< Vector< FAB * > > | m_cfp_fab |
The size of this is (# of local fine grids (# of crse/fine patches for that grid)) More... | |
Vector< int > | m_cfp_localindex |
Geometry | m_fine_geom |
Geometry | m_crse_geom |
IntVect | m_ratio |
int | m_fine_level |
int | m_ncomp |
MF const * | m_cvol = nullptr |
YAFluxRegister is yet another Flux Register for refluxing.
At the beginning of a coarse step, reset()
is called. In MFIter for the coarse level advance, CrseAdd
is called with coarse flux. The flux is not scaled. In MFIter for the fine level advance, FineAdd
is called. After the fine level finished its time steps, Reflux
is called to update the coarse cells next to the coarse/fine boundary.
using amrex::YAFluxRegisterT< MF >::FAB = typename MF::fab_type |
using amrex::YAFluxRegisterT< MF >::T = typename MF::value_type |
enum amrex::YAFluxRegisterT::CellType : int |
|
default |
amrex::YAFluxRegisterT< MF >::YAFluxRegisterT | ( | const BoxArray & | fba, |
const BoxArray & | cba, | ||
const DistributionMapping & | fdm, | ||
const DistributionMapping & | cdm, | ||
const Geometry & | fgeom, | ||
const Geometry & | cgeom, | ||
const IntVect & | ref_ratio, | ||
int | fine_lev, | ||
int | nvar | ||
) |
|
noexcept |
|
noexcept |
|
inlinenoexcept |
void amrex::YAFluxRegisterT< MF >::define | ( | const BoxArray & | fba, |
const BoxArray & | cba, | ||
const DistributionMapping & | fdm, | ||
const DistributionMapping & | cdm, | ||
const Geometry & | fgeom, | ||
const Geometry & | cgeom, | ||
const IntVect & | ref_ratio, | ||
int | fine_lev, | ||
int | nvar | ||
) |
|
noexcept |
|
noexcept |
|
inlinenoexcept |
MF & amrex::YAFluxRegisterT< MF >::getCrseData |
MF & amrex::YAFluxRegisterT< MF >::getFineData |
void amrex::YAFluxRegisterT< MF >::Reflux | ( | MF & | state, |
int | dc = 0 |
||
) |
void amrex::YAFluxRegisterT< MF >::Reflux | ( | MF & | state, |
int | srccomp, | ||
int | destcomp, | ||
int | numcomp | ||
) |
void amrex::YAFluxRegisterT< MF >::reset |
|
inline |
For curvilinear coordinates only. In that case, the flux passed to YAFluxRegister is assumed to have been multiplied by area. Note that YAFluxRegister does NOT make a copy of the volume data. So the coarse volume MF must be alive during the life time of YAFluxRegister.
|
protected |
The size of this is (# of local fine grids (# of crse/fine patches for that grid))
|
protected |
|
protected |
|
protected |
This is built on crse/fine patches.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |