Skip to content

Commit

Permalink
Add regrid on restart (AMReX-Fluids#101)
Browse files Browse the repository at this point in the history
  • Loading branch information
cgilet authored Jun 14, 2024
1 parent 4a94e63 commit 844091a
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 19 deletions.
24 changes: 14 additions & 10 deletions Docs/sphinx_documentation/source/InputsCheckpoint.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,18 @@ Checkpoint/Restart

The following inputs must be preceded by "amr" and control checkpoint/restart.

+------------------+-----------------------------------------------------------------------+-------------+-----------+
| | Description | Type | Default |
+==================+=======================================================================+=============+===========+
| restart | If present, then the name of file to restart from | String | None |
+------------------+-----------------------------------------------------------------------+-------------+-----------+
| check_int | Frequency of checkpoint output; | Int | -1 |
| | if -1 then no checkpoints will be written | | |
+------------------+-----------------------------------------------------------------------+-------------+-----------+
| check_file | Prefix to use for checkpoint output | String | chk |
+------------------+-----------------------------------------------------------------------+-------------+-----------+
+---------------------+-----------------------------------------------------------------------+-------------+-----------+
| | Description | Type | Default |
+=====================+=======================================================================+=============+===========+
| restart | If present, then the name of file to restart from | String | None |
+---------------------+-----------------------------------------------------------------------+-------------+-----------+
| plotfile_on_restart | Write a plotfile before taking a time step | bool | false |
+---------------------+-----------------------------------------------------------------------+-------------+-----------+
| regrid_on_restart | Create new grids, including level 0, on restart | bool | false |
+---------------------+-----------------------------------------------------------------------+-------------+-----------+
| check_int | Frequency of checkpoint output; | Int | -1 |
| | if -1 then no checkpoints will be written | | |
+---------------------+-----------------------------------------------------------------------+-------------+-----------+
| check_file | Prefix to use for checkpoint output | String | chk |
+---------------------+-----------------------------------------------------------------------+-------------+-----------+

1 change: 1 addition & 0 deletions src/incflo.H
Original file line number Diff line number Diff line change
Expand Up @@ -520,6 +520,7 @@ private:
std::string m_tag_file;

bool m_plotfile_on_restart = false;
bool m_regrid_on_restart = false;

amrex::Vector<amrex::Real> tag_region_lo;
amrex::Vector<amrex::Real> tag_region_hi;
Expand Down
1 change: 1 addition & 0 deletions src/setup/init.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,7 @@ void incflo::ReadIOParameters()
pp.query("restart", m_restart_file);

pp.query("plotfile_on_restart", m_plotfile_on_restart);
pp.query("regrid_on_restart", m_regrid_on_restart);

pp.query("plot_file", m_plot_file);
pp.query("plot_int" , m_plot_int);
Expand Down
22 changes: 13 additions & 9 deletions src/utilities/io.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -188,17 +188,21 @@ void incflo::ReadCheckpointFile()
Geom(lev).isPeriodic()));
}

for(int lev = 0; lev <= finest_level; ++lev)
{
// read in level 'lev' BoxArray from Header
BoxArray ba;
ba.readFrom(is);
GotoNextLine(is);
if ( m_regrid_on_restart ) {
MakeNewGrids(m_cur_time);
} else {
for(int lev = 0; lev <= finest_level; ++lev)
{
// read in level 'lev' BoxArray from Header
BoxArray ba;
ba.readFrom(is);
GotoNextLine(is);

// Create distribution mapping
DistributionMapping dm{ba, ParallelDescriptor::NProcs()};
// Create distribution mapping
DistributionMapping dm{ba, ParallelDescriptor::NProcs()};

MakeNewLevelFromScratch(lev, m_cur_time, ba, dm);
MakeNewLevelFromScratch(lev, m_cur_time, ba, dm);
}
}

/***************************************************************************
Expand Down

0 comments on commit 844091a

Please sign in to comment.