2#ifndef AMREX_AmrLevel_H_
3#define AMREX_AmrLevel_H_
4#include <AMReX_Config.H>
61 std::string &LevelDir,
62 std::string &FullPath)
const;
80 static const std::string the_plot_file_type(
"HyperCLaw-V1.1");
81 return the_plot_file_type;
105 virtual void checkPoint (
const std::string& dir,
108 bool dump_old =
true);
118 bool bReadSpecial =
false);
150 int post_regrid_flag) = 0;
239 EBFactory () const noexcept {
300 virtual std::unique_ptr<
MultiFab>
derive (const std::
string& name,
307 virtual
void derive (const std::
string& name,
379#ifdef AMREX_PARTICLES
381 virtual void particle_redistribute (
int = 0,
bool =
false) {;}
396 amrex::Real time,
int state_index,
int scomp);
437 template <
typename F,
typename P = RungeKutta::PostStageNoOp>
438 void RK (
int order,
int state_type, Real time, Real dt,
int iteration,
439 int ncycle,
F&& f, P&& p = RungeKutta::PostStageNoOp());
442 static void SetEBMaxGrowCells (
int nbasic,
int nvolume,
int nfull)
noexcept {
443 m_eb_basic_grow_cells = nbasic;
444 m_eb_volume_grow_cells = nvolume;
445 m_eb_full_grow_cells = nfull;
447 static int m_eb_basic_grow_cells;
448 static int m_eb_volume_grow_cells;
449 static int m_eb_full_grow_cells;
450 static void SetEBSupportLevel (
EBSupport ebs) { m_eb_support_level = ebs; }
457 StateDescriptor
const& desc,
int SComp);
500 template <std::
size_t order>
506 int stage,
int iteration,
int ncycle);
550 void FillFromLevel0 (Real time,
int idx,
int scomp,
int dcomp,
int ncomp);
600 Real
m_time = std::numeric_limits<Real>::lowest();
607 std::map< int,Vector< Vector<Box> > >
m_fbox;
608 std::map< int,Vector< Vector<Box> > >
m_cbox;
609 std::map< int,Vector< Vector< Vector<FillBoxId> > > >
m_fbid;
612template <
typename F,
typename P>
613void AmrLevel::RK (
int order,
int state_type, Real time, Real dt,
int iteration,
614 int ncycle,
F&& f, P&& p)
622 const Real t_old =
state[state_type].prevTime();
623 const Real t_new =
state[state_type].curTime();
632 }
else if (order == 3) {
634 [&] (
int stage,
MultiFab& mf, Real t) {
635 FillRKPatch(state_type, mf, t, stage, iteration, ncycle);
638 if (level < parent->finestLevel()) {
643 }
else if (order == 4) {
645 [&] (
int stage,
MultiFab& mf, Real t) {
646 FillRKPatch(state_type, mf, t, stage, iteration, ncycle);
649 if (level < parent->finestLevel()) {
655 amrex::Abort(
"AmrLevel::RK: order = "+std::to_string(order)+
" is not supported");
659template <std::
size_t order>
670 fillpatcher = std::make_unique<FillPatcher<MultiFab>>
677 fillpatcher->storeRKCoarseData(time, dt, S_old, rkk);
#define BL_PROFILE(a)
Definition AMReX_BLProfiler.H:551
#define AMREX_ASSERT(EX)
Definition AMReX_BLassert.H:38
#define AMREX_ALWAYS_ASSERT(EX)
Definition AMReX_BLassert.H:50
Virtual base class for managing individual levels. AmrLevel functions both as a container for state d...
Definition AMReX_AmrLevel.H:38
virtual void post_regrid(int lbase, int new_finest)=0
Operations to be done after regridding This is a pure virtual function and hence MUST be implemented ...
virtual Real estimateWork()
Estimate the amount of work required to advance Just this level based on the number of cells....
Definition AMReX_AmrLevel.cpp:2053
virtual void restart(Amr &papa, std::istream &is, bool bReadSpecial=false)
Restart from a checkpoint file.
Definition AMReX_AmrLevel.cpp:386
void reset()
Reset data to initial time by swapping new and old time data.
Definition AMReX_AmrLevel.cpp:596
Long countCells() const noexcept
Returns number of cells on level.
Definition AMReX_AmrLevel.cpp:504
IntVect fine_ratio
Definition AMReX_AmrLevel.H:482
int level
Definition AMReX_AmrLevel.H:476
virtual void checkPoint(const std::string &dir, std::ostream &os, VisMF::How how=VisMF::NFiles, bool dump_old=true)
Write current state to checkpoint file.
Definition AMReX_AmrLevel.cpp:510
int Level() const noexcept
Returns this AmrLevel.
Definition AMReX_AmrLevel.H:227
virtual void writePlotFilePre(const std::string &dir, std::ostream &os)
Do pre-plotfile work to avoid synchronizations while writing the amr hierarchy.
Definition AMReX_AmrLevel.cpp:372
virtual int WorkEstType()
Which state data type is for work estimates? -1 means none.
Definition AMReX_AmrLevel.H:365
virtual bool writePlotNow()
Does the AmrLevel want Amr to write a plotfile now?
Definition AMReX_AmrLevel.cpp:2059
virtual void init(AmrLevel &old)=0
Init data on this level from another AmrLevel (during regrid). This is a pure virtual function and he...
const Geometry & Geom() const noexcept
Returns the geometry object.
Definition AMReX_AmrLevel.H:253
static IntVect ProperBlockingFactor(AmrLevel const &amr_level, int boxGrow, IndexType const &boxType, StateDescriptor const &desc, int SComp)
Recommendation of a proper blocking factor.
Definition AMReX_AmrLevel.cpp:2276
virtual void computeInitialDt(int finest_level, int sub_cycle, Vector< int > &n_cycle, const Vector< IntVect > &ref_ratio, Vector< Real > &dt_level, Real stop_time)=0
Compute the initial time step. This is a pure virtual function and hence MUST be implemented by deriv...
void FillRKPatch(int state_index, MultiFab &S, Real time, int stage, int iteration, int ncycle)
Definition AMReX_AmrLevel.cpp:2256
Vector< std::unique_ptr< FillPatcher< MultiFab > > > m_fillpatcher
Definition AMReX_AmrLevel.H:496
virtual bool writeSmallPlotNow()
Does the AmrLevel want Amr to write a small plotfile now?
Definition AMReX_AmrLevel.cpp:2065
void LevelDirectoryNames(const std::string &dir, std::string &LevelDir, std::string &FullPath) const
Get the level directory names.
Definition AMReX_AmrLevel.cpp:2223
virtual void computeNewDt(int finest_level, int sub_cycle, Vector< int > &n_cycle, const Vector< IntVect > &ref_ratio, Vector< Real > &dt_min, Vector< Real > &dt_level, Real stop_time, int post_regrid_flag)=0
Compute the next time step. This is a pure virtual function and hence MUST be implemented by derived ...
virtual std::unique_ptr< MultiFab > derive(const std::string &name, Real time, int ngrow)
Returns a MultiFab containing the derived data for this level. The user is responsible for deleting t...
Definition AMReX_AmrLevel.cpp:1615
const BoxArray & boxArray() const noexcept
List of grids at this level.
Definition AMReX_AmrLevel.H:229
virtual void manual_tags_placement(TagBoxArray &tags, const Vector< IntVect > &bf_lev)
Called in grid_places after other tagging routines to modify the list of tagged points....
Definition AMReX_AmrLevel.cpp:63
virtual void setPhysBoundaryValues(FArrayBox &dest, int state_indx, Real time, int dest_comp, int src_comp, int num_comp)
Function to set physical boundary conditions.
Definition AMReX_AmrLevel.cpp:647
const MultiFab & get_old_data(int state_indx) const noexcept
State data at old time.
Definition AMReX_AmrLevel.H:316
void SetLevelDirectoryCreated(bool ldc) noexcept
Set if the Level_ directory was created or to clear the value. CreateLevelDirectory sets levelDirecto...
Definition AMReX_AmrLevel.H:69
void setPostStepRegrid(int new_val) noexcept
Sets a new value for the post-timestep regrid trigger.
Definition AMReX_AmrLevel.H:328
const IntVect & fineRatio() const noexcept
Definition AMReX_AmrLevel.H:255
virtual void writePlotFilePost(const std::string &dir, std::ostream &os)
Do post-plotfile work to avoid synchronizations while writing the amr hierarchy.
Definition AMReX_AmrLevel.cpp:379
BoxArray nodal_grids
Definition AMReX_AmrLevel.H:509
Vector< int > getBCArray(int State_Type, int gridno, int strt_comp, int ncomp)
Boundary condition access function.
Definition AMReX_AmrLevel.cpp:1869
const FabFactory< FArrayBox > & Factory() const noexcept
Definition AMReX_AmrLevel.H:235
Box m_AreaToTag
Definition AMReX_AmrLevel.H:488
static void FillPatch(AmrLevel &amrlevel, MultiFab &leveldata, int boxGrow, Real time, int index, int scomp, int ncomp, int dcomp=0)
Definition AMReX_AmrLevel.cpp:2187
virtual void removeOldData()
Delete old-time data.
Definition AMReX_AmrLevel.cpp:587
Geometry geom
Definition AMReX_AmrLevel.H:477
TimeLevel which_time(int state_indx, Real time) const noexcept
Returns one the TimeLevel enums. Asserts that time is between AmrOldTime and AmrNewTime.
Definition AMReX_AmrLevel.cpp:2018
virtual void setTimeLevel(Real time, Real dt_old, Real dt_new)
Set the time levels of state data.
Definition AMReX_AmrLevel.cpp:476
virtual int okToContinue()
Is it ok to continue the calculation?
Definition AMReX_AmrLevel.H:191
const BoxArray & getNodalBoxArray() const noexcept
Definition AMReX_AmrLevel.cpp:637
StateData & get_state_data(int state_indx) noexcept
State data object.
Definition AMReX_AmrLevel.H:312
MultiFab & get_data(int state_indx, Real time) noexcept
Get state data at specified index and time.
Definition AMReX_AmrLevel.cpp:605
BoxArray grids
Definition AMReX_AmrLevel.H:478
virtual void allocOldData()
Alloc space for old time data.
Definition AMReX_AmrLevel.cpp:578
virtual void set_state_in_checkpoint(Vector< int > &state_in_checkpoint)
Old checkpoint may have different number of states than the new source code.
Definition AMReX_AmrLevel.cpp:467
void UpdateDistributionMaps(DistributionMapping &dmap)
Update the distribution maps in StateData based on the size of the map.
Definition AMReX_AmrLevel.cpp:1852
const DistributionMapping & DistributionMap() const noexcept
Definition AMReX_AmrLevel.H:233
virtual void postCoarseTimeStep(Real time)
Contains operations to be done only after a full coarse timestep. The default implementation does not...
Definition AMReX_AmrLevel.cpp:43
virtual void post_timestep(int iteration)
Contains operations to be done after a timestep. If this function is overridden, don't forget to rese...
Definition AMReX_AmrLevel.cpp:35
const Box & Domain() const noexcept
Returns the indices defining physical domain.
Definition AMReX_AmrLevel.H:249
virtual void errorEst(TagBoxArray &tb, int clearval, int tagval, Real time, int n_error_buf=0, int ngrow=0)=0
Error estimation for regridding. This is a pure virtual function and hence MUST be implemented by der...
static DeriveList derive_lst
Definition AMReX_AmrLevel.H:483
void constructAreaNotToTag()
Construct the area not to tag.
Definition AMReX_AmrLevel.cpp:2085
bool levelDirectoryCreated
Definition AMReX_AmrLevel.H:492
BoxArray edge_grids[AMREX_SPACEDIM]
Definition AMReX_AmrLevel.H:508
static DeriveList & get_derive_lst() noexcept
Returns list of derived variables.
Definition AMReX_AmrLevel.cpp:57
IntVect crse_ratio
Definition AMReX_AmrLevel.H:481
virtual void setPlotVariables()
Modify list of variables to be plotted.
Definition AMReX_AmrLevel.cpp:1897
const Box & getAreaToTag() noexcept
Definition AMReX_AmrLevel.cpp:2075
virtual void writeSmallPlotFile(const std::string &, std::ostream &, VisMF::How=VisMF::NFiles)
Write small plot file stuff to specified directory.
Definition AMReX_AmrLevel.H:101
TimeLevel
What time are we at?
Definition AMReX_AmrLevel.H:45
@ Amr1QtrTime
Definition AMReX_AmrLevel.H:48
@ AmrOldTime
Definition AMReX_AmrLevel.H:45
@ AmrNewTime
Definition AMReX_AmrLevel.H:47
@ AmrOtherTime
Definition AMReX_AmrLevel.H:50
@ AmrHalfTime
Definition AMReX_AmrLevel.H:46
@ Amr3QtrTime
Definition AMReX_AmrLevel.H:49
virtual void initData()=0
Init grid data at problem start-up. This is a pure virtual function and hence MUST be implemented by ...
AmrLevel & operator=(const AmrLevel &)=delete
virtual void checkPointPost(const std::string &dir, std::ostream &os)
Do post-checkpoint work to avoid synchronizations while writing the amr hierarchy.
Definition AMReX_AmrLevel.cpp:565
std::unique_ptr< FabFactory< FArrayBox > > m_factory
Definition AMReX_AmrLevel.H:494
void finishConstructor()
Common code used by all constructors.
Definition AMReX_AmrLevel.cpp:473
void RK(int order, int state_type, Real time, Real dt, int iteration, int ncycle, F &&f, P &&p=RungeKutta::PostStageNoOp())
Evolve one step with Runge-Kutta (2, 3, or 4)
Definition AMReX_AmrLevel.H:613
virtual void CreateLevelDirectory(const std::string &dir)
Create the Level_ directory for checkpoint and plot files.
Definition AMReX_AmrLevel.cpp:2239
virtual Real advance(Real time, Real dt, int iteration, int ncycle)=0
Do an integration step on this level. Returns maximum safe time step. This is a pure virtual function...
void FillCoarsePatch(MultiFab &mf, int dcomp, Real time, int state_idx, int scomp, int ncomp, int nghost=0)
Interpolate from coarse level to the valid area in mf.
Definition AMReX_AmrLevel.cpp:1519
int post_step_regrid
Definition AMReX_AmrLevel.H:490
BoxArray m_AreaNotToTag
Definition AMReX_AmrLevel.H:487
virtual int okToRegrid()
Should I regrid with this level as base level? This test is only evaluated if regrid_int > 0 and leve...
Definition AMReX_AmrLevel.cpp:1891
static void FillPatchAdd(AmrLevel &amrlevel, MultiFab &leveldata, int boxGrow, Real time, int index, int scomp, int ncomp, int dcomp=0)
Definition AMReX_AmrLevel.cpp:2205
virtual void checkPointPre(const std::string &dir, std::ostream &os)
Do pre-checkpoint work to avoid synchronizations while writing the amr hierarchy.
Definition AMReX_AmrLevel.cpp:557
int numStates() const noexcept
Number of states at this level.
Definition AMReX_AmrLevel.H:247
virtual void writePlotFile(const std::string &dir, std::ostream &os, VisMF::How how=VisMF::NFiles)
Write plot file stuff to specified directory.
Definition AMReX_AmrLevel.cpp:134
virtual std::string thePlotFileType() const
A string written as the first item in writePlotFile() at level zero. It is so we can distinguish betw...
Definition AMReX_AmrLevel.H:78
DistributionMapping dmap
Definition AMReX_AmrLevel.H:479
AmrLevel(AmrLevel &&)=delete
void storeRKCoarseData(int state_type, Real time, Real dt, MultiFab const &S_old, Array< MultiFab, order > const &rkk)
Definition AMReX_AmrLevel.H:660
Vector< StateData > state
Definition AMReX_AmrLevel.H:485
const MultiFab & get_new_data(int state_indx) const noexcept
State data at new time.
Definition AMReX_AmrLevel.H:320
int nStep() const noexcept
Timestep n at this level.
Definition AMReX_AmrLevel.H:251
virtual void post_init(Real stop_time)=0
Operations to be done after initialization. This is a pure virtual function and hence MUST be impleme...
static void FlushFPICache()
void setAreaNotToTag(BoxArray &ba) noexcept
Set the area not to tag.
Definition AMReX_AmrLevel.cpp:2080
static bool isStateVariable(const std::string &name, int &state_indx, int &ncomp)
Is name a state variable?
Definition AMReX_AmrLevel.cpp:487
static DescriptorList desc_lst
Definition AMReX_AmrLevel.H:484
const BoxArray & getEdgeBoxArray(int dir) const noexcept
Definition AMReX_AmrLevel.cpp:626
AmrLevel(const AmrLevel &)=delete
virtual void set_preferred_boundary_values(MultiFab &S, int state_index, int scomp, int dcomp, int ncomp, Real time) const
Hack to allow override of (non-fine-fine) fillpatched boundary data.
Definition AMReX_AmrLevel.cpp:48
virtual void setSmallPlotVariables()
Modify list of variables to be plotted.
Definition AMReX_AmrLevel.cpp:1957
AmrLevel() noexcept
The constructors – for derived classes.
Definition AMReX_AmrLevel.H:461
static const DescriptorList & get_desc_lst() noexcept
Returns list of Descriptors.
Definition AMReX_AmrLevel.H:322
int postStepRegrid() const noexcept
Returns whether or not we want a post-timestep regrid.
Definition AMReX_AmrLevel.H:326
int numGrids() const noexcept
Number of grids at this level.
Definition AMReX_AmrLevel.H:245
Amr * parent
Definition AMReX_AmrLevel.H:480
MultiFab & get_new_data(int state_indx) noexcept
State data at new time.
Definition AMReX_AmrLevel.H:318
MultiFab & get_old_data(int state_indx) noexcept
State data at old time.
Definition AMReX_AmrLevel.H:314
void resetFillPatcher()
Definition AMReX_AmrLevel.cpp:2122
virtual ~AmrLevel()
The destructor.
Definition AMReX_AmrLevel.cpp:572
void FillPatcherFill(amrex::MultiFab &mf, int dcomp, int ncomp, int nghost, amrex::Real time, int state_index, int scomp)
Fill with FillPatcher on level > 0 and AmrLevel::FillPatch on level 0.
Definition AMReX_AmrLevel.cpp:2130
virtual void post_restart()
Operations to be done after restart.
Definition AMReX_AmrLevel.H:174
const BoxArray & getAreaNotToTag() noexcept
Get the area not to tag.
Definition AMReX_AmrLevel.cpp:2070
const Vector< DistributionMapping > & DistributionMap() const noexcept
Definition AMReX_AmrMesh.H:107
int finestLevel() const noexcept
Return the finest level.
Definition AMReX_AmrMesh.H:95
const Vector< Geometry > & Geom() const noexcept
Definition AMReX_AmrMesh.H:106
const Vector< BoxArray > & boxArray() const noexcept
Definition AMReX_AmrMesh.H:108
Manage hierarchy of levels for time-dependent AMR computations.
Definition AMReX_Amr.H:35
AmrLevel & getLevel(int lev) noexcept
AmrLevel lev.
Definition AMReX_Amr.H:189
int levelSteps(int lev) const noexcept
Number of time steps at specified level.
Definition AMReX_Amr.H:103
A collection of Boxes stored in an Array.
Definition AMReX_BoxArray.H:550
Long size() const noexcept
Return the number of boxes in the BoxArray.
Definition AMReX_BoxArray.H:597
A list of DeriveRecs.
Definition AMReX_Derive.H:364
Definition AMReX_StateDescriptor.H:437
Calculates the distribution of FABs to MPI processes.
Definition AMReX_DistributionMapping.H:41
Definition AMReX_EBFabFactory.H:24
A Fortran Array of REALs.
Definition AMReX_FArrayBox.H:229
int nGrow(int direction=0) const noexcept
Return the grow factor that defines the region of definition.
Definition AMReX_FabArrayBase.H:77
int nComp() const noexcept
Return number of variables (aka components) associated with each point.
Definition AMReX_FabArrayBase.H:82
Definition AMReX_FabFactory.H:50
Definition AMReX_AmrLevel.H:564
void Initialize(int boxGrow, Real time, int idx, int scomp, int ncomp, InterpBase *mapper)
Definition AMReX_AmrLevel.cpp:739
std::map< int, Vector< Vector< Box > > > m_cbox
Definition AMReX_AmrLevel.H:608
std::map< int, Vector< Vector< Vector< FillBoxId > > > > m_fbid
Definition AMReX_AmrLevel.H:609
bool m_FixUpCorners
Definition AMReX_AmrLevel.H:605
std::map< int, Vector< Vector< Box > > > m_fbox
Definition AMReX_AmrLevel.H:607
int m_scomp
Definition AMReX_AmrLevel.H:603
AmrLevel * m_amrlevel
Definition AMReX_AmrLevel.H:594
int m_growsize
Definition AMReX_AmrLevel.H:601
void fill(FArrayBox &fab, int dcomp, int idx)
Definition AMReX_AmrLevel.cpp:1266
int m_index
Definition AMReX_AmrLevel.H:602
MultiFabCopyDescriptor m_mfcd
Definition AMReX_AmrLevel.H:596
int m_ncomp
Definition AMReX_AmrLevel.H:604
Real m_time
Definition AMReX_AmrLevel.H:600
Vector< Vector< MultiFabId > > m_mfid
Definition AMReX_AmrLevel.H:597
std::map< int, Box > m_ba
Definition AMReX_AmrLevel.H:599
MultiFab * m_leveldata
Definition AMReX_AmrLevel.H:595
Interpolater * m_map
Definition AMReX_AmrLevel.H:598
Definition AMReX_AmrLevel.H:520
std::vector< std::pair< int, int > > m_range
Definition AMReX_AmrLevel.H:558
void FillFromLevel0(Real time, int idx, int scomp, int dcomp, int ncomp)
Definition AMReX_AmrLevel.cpp:1100
FArrayBox & operator()() noexcept
Definition AMReX_AmrLevel.H:542
MultiFab * m_leveldata
Definition AMReX_AmrLevel.H:557
int m_ncomp
Definition AMReX_AmrLevel.H:560
MultiFab & get_mf() noexcept
Definition AMReX_AmrLevel.H:546
Box UngrownBox() const noexcept
Definition AMReX_AmrLevel.H:544
void FillFromTwoLevels(Real time, int idx, int scomp, int dcomp, int ncomp)
Definition AMReX_AmrLevel.cpp:1119
AmrLevel * m_amrlevel
Definition AMReX_AmrLevel.H:556
MultiFab m_fabs
Definition AMReX_AmrLevel.H:559
Rectangular problem domain geometry.
Definition AMReX_Geometry.H:73
const Box & Domain() const noexcept
Returns our rectangular domain.
Definition AMReX_Geometry.H:210
Definition AMReX_InterpBase.H:26
Virtual base class for interpolaters.
Definition AMReX_Interpolater.H:22
Definition AMReX_MFIter.H:57
Box validbox() const noexcept
Return the valid Box in which the current tile resides.
Definition AMReX_MFIter.H:132
int index() const noexcept
The index into the underlying BoxArray of the current FAB.
Definition AMReX_MFIter.H:144
void Initialize()
Definition AMReX_MFIter.cpp:274
Definition AMReX_MFCopyDescriptor.H:46
A collection (stored as an array) of FArrayBox objects.
Definition AMReX_MultiFab.H:38
Current and previous level-time data.
Definition AMReX_StateData.H:33
Attributes of StateData.
Definition AMReX_StateDescriptor.H:33
InterpBase * interp() const noexcept
Returns the interpolater.
Definition AMReX_StateDescriptor.cpp:251
int nComp() const noexcept
Returns number of components.
Definition AMReX_StateDescriptor.cpp:239
int nExtra() const noexcept
Returns the grow factor.
Definition AMReX_StateDescriptor.cpp:245
An array of TagBoxes.
Definition AMReX_TagBox.H:150
This class is a thin wrapper around std::vector. Unlike vector, Vector::operator[] provides bound che...
Definition AMReX_Vector.H:27
How
How we write out FabArray<FArrayBox>s. These are deprecated, we always use NFiles....
Definition AMReX_VisMF.H:41
@ NFiles
Definition AMReX_VisMF.H:41
void RK2(MF &Uold, MF &Unew, Real time, Real dt, F const &frhs, FB const &fillbndry, P const &post_stage=PostStageNoOp())
Time stepping with RK2.
Definition AMReX_RungeKutta.H:158
void RK4(MF &Uold, MF &Unew, Real time, Real dt, F const &frhs, FB const &fillbndry, R const &store_crse_data, P const &post_stage=PostStageNoOp())
Time stepping with RK4.
Definition AMReX_RungeKutta.H:246
void RK3(MF &Uold, MF &Unew, Real time, Real dt, F const &frhs, FB const &fillbndry, R const &store_crse_data, P const &post_stage=PostStageNoOp())
Time stepping with RK3.
Definition AMReX_RungeKutta.H:196
Definition AMReX_Amr.cpp:49
EBSupport
Definition AMReX_EBSupport.H:7
IntVectND< AMREX_SPACEDIM > IntVect
Definition AMReX_BaseFwd.H:30
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE std::enable_if_t< std::is_floating_point_v< T >, bool > almostEqual(T x, T y, int ulp=2)
Definition AMReX_Algorithm.H:93
void Abort(const std::string &msg)
Print out message to cerr and exit via abort().
Definition AMReX.cpp:230
IndexTypeND< AMREX_SPACEDIM > IndexType
Definition AMReX_BaseFwd.H:33
std::array< T, N > Array
Definition AMReX_Array.H:24