4#include <AMReX_Config.H>
22#if defined(AMREX_USE_SENSEI_INSITU) && !defined(AMREX_NO_SENSEI_AMR_INST)
206 bool initial = false) override;
222 std::unique_ptr<MultiFab>
derive (
const std::string& name,
228 void derive (
const std::string& name,
256 const
Real* est_work,
257 const
int* cycle_max);
337#ifdef AMREX_PARTICLES
350 const
BoxArray* lev0_grids =
nullptr, const
Vector<
int>* pmap =
nullptr);
351#ifndef AMREX_NO_PROBINIT
358 void restart (
const std::string& filename);
466#ifndef AMREX_NO_PROBINIT
492#if defined(AMREX_USE_SENSEI_INSITU) && !defined(AMREX_NO_SENSEI_AMR_INST)
493 static AmrInSituBridge *insitu_bridge;
#define BL_ASSERT(EX)
Definition AMReX_BLassert.H:39
Provide basic functionalities to set up an AMR hierarchy.
Definition AMReX_AmrCore.H:26
Virtual base class for managing individual levels. AmrLevel functions both as a container for state d...
Definition AMReX_AmrLevel.H:39
Manage hierarchy of levels for time-dependent AMR computations.
Definition AMReX_Amr.H:36
Real smallplotPer() const noexcept
Time between plot files.
Definition AMReX_Amr.H:130
std::string check_file_root
Root name of checkpoint file.
Definition AMReX_Amr.H:437
virtual void init(Real strt_time, Real stop_time)
Init data after construction. Must be called before timestepping.
Definition AMReX_Amr.cpp:1160
std::string probin_file
Definition AMReX_Amr.H:467
virtual void writeSmallPlotFile()
Write the small plot file to be used for visualization.
Definition AMReX_Amr.cpp:920
bool bUserStopRequest
Definition AMReX_Amr.H:476
BoundaryPointList & getIntersectHiX() noexcept
Definition AMReX_Amr.H:316
void RemakeLevel(int, Real, const BoxArray &, const DistributionMapping &) override
Remake an existing level using provided BoxArray and DistributionMapping and fill with existing fine ...
Definition AMReX_Amr.H:390
static void clearDeriveSmallPlotVarList()
Definition AMReX_Amr.cpp:726
static const std::list< std::string > & deriveSmallPlotVars() noexcept
Definition AMReX_Amr.H:165
static void fillDerivePlotVarList()
Fill the list of derive_plot_vars with all derived quantities.
Definition AMReX_Amr.cpp:690
Vector< int > n_cycle
Definition AMReX_Amr.H:430
void checkInput()
Check for valid input.
Definition AMReX_Amr.cpp:1082
void setRecordGridInfo(const std::string &)
Definition AMReX_Amr.cpp:771
DistributionMapping makeLoadBalanceDistributionMap(int lev, Real time, const BoxArray &ba) const
Definition AMReX_Amr.cpp:2801
void setRecordDataInfo(int i, const std::string &)
Definition AMReX_Amr.cpp:813
void setNCycle(const Vector< int > &ns) noexcept
Set the cycle count on each level.
Definition AMReX_Amr.cpp:841
Vector< int > level_count
Definition AMReX_Amr.H:429
Vector< Real > dt_level
Timestep at this level.
Definition AMReX_Amr.H:427
static const Vector< BoxArray > & getInitialBA() noexcept
Definition AMReX_Amr.cpp:3429
void setLevelSteps(int lev, int n) noexcept
Number of time steps at specified level.
Definition AMReX_Amr.H:106
int file_name_digits
How many digits to use in the plotfile and checkpoint names.
Definition AMReX_Amr.H:448
static const BoxArray & initialBa(int level) noexcept
Array of BoxArrays read in to initially define grid hierarchy.
Definition AMReX_Amr.H:212
static void deleteDerivePlotVar(const std::string &name)
Remove the string from derive_plot_vars.
Definition AMReX_Amr.cpp:748
void writePlotFileDoit(std::string const &pltfile, bool regular)
Definition AMReX_Amr.cpp:959
int sub_cycle
Definition AMReX_Amr.H:463
const Vector< Real > & dtLevel() const noexcept
Array of time steps at all levels.
Definition AMReX_Amr.H:100
void initPltAndChk()
Definition AMReX_Amr.cpp:3268
int plot_max_level
Maximum AMR level to write to a plotfile.
Definition AMReX_Amr.H:443
int stream_max_tries
Definition AMReX_Amr.H:471
int NumDataLogs() noexcept
How many datalogs have been opened.
Definition AMReX_Amr.cpp:162
int stepOfLastSmallPlotFile() const noexcept
Definition AMReX_Amr.H:265
virtual void timeStep(int level, Real time, int iteration, int niter, Real stop_time)
Do a single timestep on level L.
Definition AMReX_Amr.cpp:1961
void MakeNewLevelFromCoarse(int, Real, const BoxArray &, const DistributionMapping &) override
Make a new level using provided BoxArray and DistributionMapping and fill with interpolated coarse le...
Definition AMReX_Amr.H:388
std::string restart_pltfile
Definition AMReX_Amr.H:465
int smallplotInt() const noexcept
Number of time steps between small plot files.
Definition AMReX_Amr.H:128
Vector< std::string > datalogname
Definition AMReX_Amr.H:462
Real coarseTimeStepDt(Real stop_time)
Do a complete integration cycle and return the coarse dt.
Definition AMReX_Amr.cpp:2128
Vector< int > regrid_int
Interval between regridding.
Definition AMReX_Amr.H:433
void restart(const std::string &filename)
Restart from a checkpoint file.
Definition AMReX_Amr.cpp:1417
int plotMaxLevel() const noexcept
Maximum level to plot.
Definition AMReX_Amr.H:126
Vector< std::unique_ptr< std::fstream > > datalog
Definition AMReX_Amr.H:461
static void clearStatePlotVarList()
Clear the list of state_plot_vars.
Definition AMReX_Amr.cpp:626
int message_int
How often checking messages touched by user, such as "stop_run".
Definition AMReX_Amr.H:449
Vector< int > level_steps
Number of time steps at this level.
Definition AMReX_Amr.H:428
AmrLevel & getLevel(int lev) noexcept
AmrLevel lev.
Definition AMReX_Amr.H:190
void setDtMin(const Vector< Real > &dt_min_in) noexcept
Set the dtmin on each level.
Definition AMReX_Amr.cpp:174
Real plotLogPer() const noexcept
Spacing in log10(time) of logarithmically spaced plot files.
Definition AMReX_Amr.H:124
std::unique_ptr< MultiFab > derive(const std::string &name, Real time, int lev, int ngrow)
Retrieve derived data. User is responsible for deleting pointer.
Definition AMReX_Amr.cpp:200
static bool compute_new_dt_on_regrid
Definition AMReX_Amr.H:490
BoundaryPointList & getIntersectLoY() noexcept
Definition AMReX_Amr.H:320
static Real computeOptimalSubcycling(int n, int *best, const Real *dt_max, const Real *est_work, const int *cycle_max)
Compute the optimal subcycling pattern. This assumes that anything less than cycle_max[i] is a valid ...
Definition AMReX_Amr.cpp:3376
Vector< Real > dt_min
Definition AMReX_Amr.H:432
static bool isStateSmallPlotVar(const std::string &name)
Definition AMReX_Amr.cpp:605
const std::string & theRestartPlotFile() const noexcept
Name of the restart plotfile.
Definition AMReX_Amr.H:239
Vector< std::unique_ptr< AmrLevel > > amr_level
Vector of levels.
Definition AMReX_Amr.H:424
static Vector< BoxArray > initial_ba
Array of BoxArrays read in to initially define grid hierarchy.
Definition AMReX_Amr.H:487
void printGridInfo(std::ostream &os, int min_lev, int max_lev)
Definition AMReX_Amr.cpp:2929
BoundaryPointList intersect_hiz
Definition AMReX_Amr.H:502
int loadbalance_level0_int
Definition AMReX_Amr.H:473
void InitializeInit(Real strt_time, Real stop_time, const BoxArray *lev0_grids=nullptr, const Vector< int > *pmap=nullptr)
First part of initialInit.
Definition AMReX_Amr.cpp:1309
static void clearDerivePlotVarList()
Clear the list of derive_plot_vars.
Definition AMReX_Amr.cpp:720
static std::list< std::string > derive_small_plot_vars
Derived Vars to dump to small plotfile.
Definition AMReX_Amr.H:484
BoundaryPointList & getIntersectHiY() noexcept
Definition AMReX_Amr.H:324
static bool isDerivePlotVar(const std::string &name) noexcept
Is the string the name of a variable in derive_plot_vars?
Definition AMReX_Amr.cpp:676
std::string small_plot_file_root
Root name of small plotfile.
Definition AMReX_Amr.H:451
static int finalizeInSitu()
Definition AMReX_Amr.cpp:582
int nCycle(int level) const noexcept
Number of subcycled time steps.
Definition AMReX_Amr.H:102
static void addDerivePlotVar(const std::string &name)
If the string is not the name of a variable in derive_plot_vars, add it to derive_plot_vars.
Definition AMReX_Amr.cpp:732
void defBaseLevel(Real strt_time, const BoxArray *lev0_grids=nullptr, const Vector< int > *pmap=nullptr)
Define and initialize coarsest level.
Definition AMReX_Amr.cpp:2555
Real plotPer() const noexcept
Time between plot files.
Definition AMReX_Amr.H:122
virtual void regrid_level_0_on_restart()
Regrid level 0 on restart.
Definition AMReX_Amr.cpp:2867
static void clearStateSmallPlotVarList()
Definition AMReX_Amr.cpp:646
int loadbalance_with_workestimates
Definition AMReX_Amr.H:472
int stepOfLastPlotFile() const noexcept
Definition AMReX_Amr.H:262
int small_plot_int
How often small plotfile (# of time steps)
Definition AMReX_Amr.H:444
void RegridOnly(Real time, bool do_io=true)
Regrid only!
Definition AMReX_Amr.cpp:1926
BoundaryPointList & getIntersectLoX() noexcept
Definition AMReX_Amr.H:312
static std::list< std::string > state_small_plot_vars
State Vars to dump to small plotfile.
Definition AMReX_Amr.H:482
BoundaryPointList intersect_loy
Definition AMReX_Amr.H:498
const std::string & theRestartFile() const noexcept
Name of the restart chkpoint file.
Definition AMReX_Amr.H:237
static std::list< std::string > state_plot_vars
State Vars to dump to plotfile.
Definition AMReX_Amr.H:481
std::ofstream runlog_terse
Definition AMReX_Amr.H:460
static bool isDeriveSmallPlotVar(const std::string &name) noexcept
Definition AMReX_Amr.cpp:683
int plotInt() const noexcept
Number of time steps between plot files.
Definition AMReX_Amr.H:120
int regridInt(int lev) const noexcept
Interval between regridding.
Definition AMReX_Amr.H:114
std::string plot_file_root
Root name of plotfile.
Definition AMReX_Amr.H:450
void setStartTime(Real t) noexcept
Definition AMReX_Amr.H:94
Vector< std::unique_ptr< AmrLevel > > & getAmrLevels() noexcept
Array of AmrLevels.
Definition AMReX_Amr.cpp:182
Real startTime() const noexcept
Physical time this simulation started.
Definition AMReX_Amr.H:93
int which_level_being_advanced
Only >=0 if we are in Amr::timeStep(level,...)
Definition AMReX_Amr.H:453
std::string subcycling_mode
Type of subcycling to use.
Definition AMReX_Amr.H:431
BoundaryPointList intersect_lox
Definition AMReX_Amr.H:497
static void setComputeNewDtOnRegrid(bool flag)
Definition AMReX_Amr.H:185
std::ostream & DataLog(int i)
The ith datalog file. Do with it what you want.
Definition AMReX_Amr.cpp:156
bool writeSmallPlotNow() noexcept
Definition AMReX_Amr.cpp:2482
void RedistributeParticles()
Redistribute particles.
Definition AMReX_Amr.cpp:3436
static std::list< std::string > derive_plot_vars
Derived Vars to dump to plotfile.
Definition AMReX_Amr.H:483
void ErrorEst(int lev, TagBoxArray &tags, Real time, int ngrow) override
Tag cells for refinement. TagBoxArray tags is built on level lev grids.
Definition AMReX_Amr.cpp:3076
int levelSteps(int lev) const noexcept
Number of time steps at specified level.
Definition AMReX_Amr.H:104
BoundaryPointList & getIntersectLoZ() noexcept
Definition AMReX_Amr.H:328
void setCumTime(Real t) noexcept
Definition AMReX_Amr.H:91
int stepOfLastCheckPoint() const noexcept
Definition AMReX_Amr.H:269
Amr(const Amr &rhs)=delete
BoundaryPointList & getIntersectHiZ() noexcept
Definition AMReX_Amr.H:332
int updateInSitu()
Definition AMReX_Amr.cpp:569
int last_plotfile
Step number of previous plotfile.
Definition AMReX_Amr.H:438
~Amr() override
The destructor.
Definition AMReX_Amr.cpp:763
void ClearLevel(int) override
Delete level data.
Definition AMReX_Amr.H:392
static bool isStatePlotVar(const std::string &name)
Is the string the name of a variable in state_plot_vars?
Definition AMReX_Amr.cpp:598
int plot_int
How often plotfile (# of time steps)
Definition AMReX_Amr.H:440
std::ofstream gridlog
Definition AMReX_Amr.H:458
void grid_places(int lbase, Real time, int &new_finest, Vector< BoxArray > &new_grids)
Define new grid locations (called from regrid) and put into new_grids.
Definition AMReX_Amr.cpp:2975
void setBoundaryGeometry(BoundaryPointList &IntersectLoX, BoundaryPointList &IntersectHiX, BoundaryPointList &IntersectLoY, BoundaryPointList &IntersectHiY) noexcept
Specialized version: Define BoundaryPointLists that give the intersections of the external geometry w...
Definition AMReX_Amr.H:279
void InitAmr()
Definition AMReX_Amr.cpp:267
int okToContinue() noexcept
More work to be done?
Definition AMReX_Amr.cpp:869
void readProbinFile(int &init)
Read the probin file.
Definition AMReX_Amr.cpp:1199
static int initInSitu()
Definition AMReX_Amr.cpp:555
bool abort_on_stream_retry_failure
Definition AMReX_Amr.H:470
LevelBld * levelbld
Definition AMReX_Amr.H:469
static void deleteDeriveSmallPlotVar(const std::string &name)
Definition AMReX_Amr.cpp:756
Real cumtime
Physical time variable.
Definition AMReX_Amr.H:425
void setRecordRunInfo(const std::string &)
Definition AMReX_Amr.cpp:785
void ManualTagsPlacement(int lev, TagBoxArray &tags, const Vector< IntVect > &bf_lev) override
Manually tag. Note that tags is built on level lev grids coarsened by bf_lev[lev].
Definition AMReX_Amr.cpp:3088
void regrid(int lbase, Real time, bool initial=false) override
Rebuild grid hierarchy finer than lbase.
Definition AMReX_Amr.cpp:2616
Real check_per
How often checkpoint (units of time).
Definition AMReX_Amr.H:436
static int initialBaLevels() noexcept
Number of levels at which the grids are initially specified.
Definition AMReX_Amr.H:215
Real checkPer() const noexcept
Time between checkpoint files.
Definition AMReX_Amr.H:118
static void Initialize()
Definition AMReX_Amr.cpp:105
static void fillStatePlotVarList()
Fill the list of state_plot_vars with all of the state quantities.
Definition AMReX_Amr.cpp:612
BoundaryPointList intersect_hix
Definition AMReX_Amr.H:500
static bool Plot_Files_Output()
Write out plotfiles (True/False)?
Definition AMReX_Amr.cpp:153
Real small_plot_per
How often small plotfile (in units of time)
Definition AMReX_Amr.H:445
std::string regrid_grids_file
Grids file that will bypass regridding.
Definition AMReX_Amr.H:422
std::multimap< std::pair< int, int >, double > BoundaryPointList
Definition AMReX_Amr.H:37
Amr & operator=(const Amr &rhs)=delete
int check_int
How often checkpoint (# time steps).
Definition AMReX_Amr.H:435
Real dtLevel(int level) const noexcept
Time step at specified level.
Definition AMReX_Amr.H:96
static const std::list< std::string > & stateSmallPlotVars() noexcept
Definition AMReX_Amr.H:139
static void fillDeriveSmallPlotVarList()
Definition AMReX_Amr.cpp:705
static bool first_smallplotfile
Definition AMReX_Amr.H:504
bool checkPointNow() noexcept
Definition AMReX_Amr.cpp:2361
std::string initial_grids_file
Grids file that will bypass regridding only at initialization.
Definition AMReX_Amr.H:423
const std::string & subcyclingMode() const noexcept
How are we subcycling?
Definition AMReX_Amr.H:82
Long cellCount() noexcept
Total number of cells.
Definition AMReX_Amr.cpp:849
void LoadBalanceLevel0(Real time)
Definition AMReX_Amr.cpp:2845
int record_run_info_terse
Definition AMReX_Amr.H:457
virtual void coarseTimeStep(Real stop_time)
Do a complete integration cycle.
Definition AMReX_Amr.cpp:2135
static void deleteStatePlotVar(const std::string &name)
Remove the string from state_plot_vars.
Definition AMReX_Amr.cpp:668
Real small_plot_log_per
How often small plotfile (in units of log10(time))
Definition AMReX_Amr.H:446
void bldFineLevels(Real strt_time)
Define and initialize refined levels.
Definition AMReX_Amr.cpp:3094
std::ofstream runlog
Definition AMReX_Amr.H:459
int record_grid_info
Definition AMReX_Amr.H:455
std::string restart_chkfile
Definition AMReX_Amr.H:464
Real plot_log_per
How often plotfile (in units of log10(time))
Definition AMReX_Amr.H:442
int checkInt() const noexcept
Number of time steps between checkpoint files.
Definition AMReX_Amr.H:116
static void addStatePlotVar(const std::string &name)
If the string is not the name of a variable in state_plot_vars, add it to state_plot_vars.
Definition AMReX_Amr.cpp:652
int last_smallplotfile
Step number of previous small plotfile.
Definition AMReX_Amr.H:439
void InstallNewDistributionMap(int lev, const DistributionMapping &newdm)
Definition AMReX_Amr.cpp:2854
bool writePlotNow() noexcept
Whether to write a plotfile now.
Definition AMReX_Amr.cpp:2409
void setLevelCount(int lev, int n) noexcept
Which step are we at for the specified level?
Definition AMReX_Amr.H:110
void initSubcycle()
Definition AMReX_Amr.cpp:3166
BoundaryPointList intersect_loz
Definition AMReX_Amr.H:499
static const std::list< std::string > & statePlotVars() noexcept
The names of state variables to output in the plotfile. They can be set using the amr....
Definition AMReX_Amr.H:138
std::string DataLogName(int i) const noexcept
The filename of the ith datalog file.
Definition AMReX_Amr.H:243
bool write_plotfile_with_checkpoint
Write out a plotfile whenever we checkpoint.
Definition AMReX_Amr.H:447
void FinalizeInit(Real strt_time, Real stop_time)
Second part of initialInit.
Definition AMReX_Amr.cpp:1341
static void fillStateSmallPlotVarList()
Definition AMReX_Amr.cpp:632
Real dtMin(int level) const noexcept
Max time step (typically based on physics) at specified level.
Definition AMReX_Amr.H:98
static Vector< BoxArray > regrid_ba
Array of BoxArrays read in to externally define grid hierarchy at each regrid.
Definition AMReX_Amr.H:489
int levelCount(int lev) const noexcept
Which step are we at for the specified level?
Definition AMReX_Amr.H:108
static bool RegridOnRestart() noexcept
Whether to regrid right after restart.
Definition AMReX_Amr.cpp:168
BoundaryPointList intersect_hiy
Definition AMReX_Amr.H:501
int numGrids() noexcept
Total number of grids.
Definition AMReX_Amr.cpp:859
int record_run_info
Definition AMReX_Amr.H:456
Real start_time
Physical time this simulation started.
Definition AMReX_Amr.H:426
Real loadbalance_max_fac
Definition AMReX_Amr.H:474
static void Finalize()
Definition AMReX_Amr.cpp:141
static void addStateSmallPlotVar(const std::string &name)
Definition AMReX_Amr.cpp:660
void setBoundaryGeometry(BoundaryPointList &IntersectLoX, BoundaryPointList &IntersectHiX, BoundaryPointList &IntersectLoY, BoundaryPointList &IntersectHiY, BoundaryPointList &IntersectLoZ, BoundaryPointList &IntersectHiZ) noexcept
More general version: Define BoundaryPointLists that give the intersections of the external geometry ...
Definition AMReX_Amr.H:297
Real cumTime() const noexcept
Physical time.
Definition AMReX_Amr.H:90
int subCycle() const noexcept
Subcycle in time?
Definition AMReX_Amr.H:79
void setDtLevel(const Vector< Real > &dt_lev) noexcept
Set the timestep on each level.
Definition AMReX_Amr.cpp:827
Real smallplotLogPer() const noexcept
Spacing in log10(time) of logarithmically spaced small plot files.
Definition AMReX_Amr.H:132
void MakeNewLevelFromScratch(int, Real, const BoxArray &, const DistributionMapping &) override
Definition AMReX_Amr.H:386
int last_checkpoint
Step number of previous checkpoint.
Definition AMReX_Amr.H:434
static const std::list< std::string > & derivePlotVars() noexcept
The names of derived variables to output in the plotfile. They can be set using the amr....
Definition AMReX_Amr.H:164
bool okToRegrid(int level) noexcept
Should we regrid this level?
Definition AMReX_Amr.cpp:3366
Real plot_per
How often plotfile (in units of time)
Definition AMReX_Amr.H:441
static bool UsingPrecreateDirectories() noexcept
Definition AMReX_Amr.cpp:99
int level_being_advanced() const noexcept
What is "level" in Amr::timeStep? This is only relevant if we are still in Amr::timeStep; it is set b...
Definition AMReX_Amr.H:88
static bool first_plotfile
Definition AMReX_Amr.H:485
void setRecordRunInfoTerse(const std::string &)
Definition AMReX_Amr.cpp:799
void initialInit(Real strt_time, Real stop_time, const BoxArray *lev0_grids=nullptr, const Vector< int > *pmap=nullptr)
Initialize grid hierarchy – called by Amr::init.
Definition AMReX_Amr.cpp:1291
static void addDeriveSmallPlotVar(const std::string &name)
Definition AMReX_Amr.cpp:740
BoxArray GetAreaNotToTag(int lev) override
Definition AMReX_Amr.cpp:3082
A collection of Boxes stored in an Array.
Definition AMReX_BoxArray.H:567
Calculates the distribution of FABs to MPI processes.
Definition AMReX_DistributionMapping.H:43
Builds problem-specific AmrLevels.
Definition AMReX_LevelBld.H:22
A Box with real dimensions.
Definition AMReX_RealBox.H:26
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:28
amrex_real Real
Floating Point Type for Fields.
Definition AMReX_REAL.H:79
amrex_long Long
Definition AMReX_INT.H:30
virtual void writePlotFile()
Definition AMReX_Amr.cpp:882
virtual void checkPoint()
Definition AMReX_Amr.cpp:1741
Definition AMReX_Amr.cpp:49
void Abort(const std::string &msg)
Print out message to cerr and exit via abort().
Definition AMReX.cpp:230