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;
612 template <
typename F,
typename P>
613 void 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");
659 template <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
const MultiFab & get_new_data(int state_indx) const noexcept
State data at new time.
Definition: AMReX_AmrLevel.H:320
void reset()
Reset data to initial time by swapping new and old time data.
Definition: AMReX_AmrLevel.cpp:596
const DistributionMapping & DistributionMap() const noexcept
Definition: AMReX_AmrLevel.H:233
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
const FabFactory< FArrayBox > & Factory() const noexcept
Definition: AMReX_AmrLevel.H:235
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...
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
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
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
MultiFab & get_old_data(int state_indx) noexcept
State data at old time.
Definition: AMReX_AmrLevel.H:314
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
const IntVect & fineRatio() const noexcept
Definition: AMReX_AmrLevel.H:255
static const DescriptorList & get_desc_lst() noexcept
Returns list of Descriptors.
Definition: AMReX_AmrLevel.H:322
AmrLevel & operator=(const AmrLevel &)=delete
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
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
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
const MultiFab & get_old_data(int state_indx) const noexcept
State data at old time.
Definition: AMReX_AmrLevel.H:316
void UpdateDistributionMaps(DistributionMapping &dmap)
Update the distribution maps in StateData based on the size of the map.
Definition: AMReX_AmrLevel.cpp:1852
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
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
const BoxArray & boxArray() const noexcept
List of grids at this level.
Definition: AMReX_AmrLevel.H:229
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 ...
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...
StateData & get_state_data(int state_indx) noexcept
State data object.
Definition: AMReX_AmrLevel.H:312
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
MultiFab & get_new_data(int state_indx) noexcept
State data at new time.
Definition: AMReX_AmrLevel.H:318
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
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
const Geometry & Geom() const noexcept
Returns the geometry object.
Definition: AMReX_AmrLevel.H:253
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
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
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
const Box & Domain() const noexcept
Returns the indices defining physical domain.
Definition: AMReX_AmrLevel.H:249
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< BoxArray > & boxArray() const noexcept
Definition: AMReX_AmrMesh.H:108
const Vector< Geometry > & Geom() const noexcept
Definition: AMReX_AmrMesh.H:106
int finestLevel() const noexcept
Return the finest level.
Definition: AMReX_AmrMesh.H:95
const Vector< DistributionMapping > & DistributionMap() const noexcept
Definition: AMReX_AmrMesh.H:107
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:22
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_AmrLevel.H:564
void Initialize(int boxGrow, Real time, int idx, int scomp, int ncomp, InterpBase *mapper)
Definition: AMReX_AmrLevel.cpp:739
FillPatchIteratorHelper(AmrLevel &amrlevel, MultiFab &leveldata)
Definition: AMReX_AmrLevel.cpp:664
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
FArrayBox & operator()() noexcept
Definition: AMReX_AmrLevel.H:542
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
MultiFab & get_mf() noexcept
Definition: AMReX_AmrLevel.H:546
MultiFab * m_leveldata
Definition: AMReX_AmrLevel.H:557
int m_ncomp
Definition: AMReX_AmrLevel.H:560
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
FillPatchIterator(AmrLevel &amrlevel, MultiFab &leveldata)
Definition: AMReX_AmrLevel.cpp:672
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
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
static int f(amrex::Real t, N_Vector y_data, N_Vector y_rhs, void *user_data)
Definition: AMReX_SundialsIntegrator.H:44
static constexpr int P
Definition: AMReX_OpenBC.H:14
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:225
IndexTypeND< AMREX_SPACEDIM > IndexType
Definition: AMReX_BaseFwd.H:33
std::array< T, N > Array
Definition: AMReX_Array.H:24