Restart
The Restart block controls loading from a previous solution database and the schedule for writing new restart files during the current run.
Restart
{
file = "none"
regenerate_grid = true
allow_interpolation = false
output_start = 10000
output_interval = 10000
}
Keys
file
Selects which restart database to load at startup. Accepted values:
"none"— do not load any restart (start fromInitialCondition)."recent"/"recent_name"— load the file with the lexicographically latest filename in the restart directory."recent_time"— load the file with the latest timestamp in the restart directory.- Integer (e.g.,
250000) — search the restart directory for the most recent file whose filename contains that integer (interpreted as a timestep ID). - Filename or path — if the path exists, load that file directly.
Search location. The solver looks in the restart directory under the run’s primary simulation directory (see IO).
If the specifier can’t be resolved to a file, the solver throws an error with a list of valid options.
What gets restored
When a restart file is loaded, the solver restores:
- Solution fields (conserved/primitive, etc.)
- Time/iteration counters (simulation clock, step indices)
- Domain/subdomain geometry placement (positions/poses)
(Subdomains present in the parent run are also restored.)
⚠️ Physics model compatibility: You cannot change
phys_modelbetween the saved DB and the current run. KeepProperties(e.g.,phys_model,gamma,Rgas, viscosity law) consistent.
regenerate_grid
Controls how the grid is obtained at restart:
true— Rebuild the grid from the current input underDomain/Grid(includingdx_target,Refinement, etc.), then map the restart solution onto this grid.false— Use the grid stored in the restart database as-is. Any currentDomain/Gridsettings (bounds, spacing, refinement, etc.) are ignored and overwritten by what’s in the restart file.
If the current
Domain/Gridchanges don’t match the restart DB and you setregenerate_grid = true, the solver may need interpolation (seeallow_interpolation).
allow_interpolation
If true, the solver may interpolate the restart solution from the restart DB’s grid to the current grid (e.g., when regenerate_grid = true or grids otherwise differ).
If false, the solver requires the loaded solution and the current grid to be compatible (otherwise it fails).
Constraints: Interpolation requires the same variable set as the restart database (same physics model and fields).
output_start, output_interval
Control when the current run begins writing new restart files and how often they are written after that.
These use the same timing/threshold machinery as other output schedules, with timestep-based defaults.
output_start— first timestep at which restart output is allowed.output_interval— number of timesteps between restart outputs afteroutput_start.
(If you need more advanced timing controls later, we can align nomenclature/specifiers with the general time-threshold system.)
Examples
1) Continue from most recent restart, reuse stored grid (no regeneration)
Restart
{
file = "recent"
regenerate_grid = false
allow_interpolation = false
output_start = 50000
output_interval = 50000
}
- Loads the lexicographically newest file in the restart directory.
- Uses the grid from the restart DB; any
Domain/Gridchanges in the current input are ignored. - Begins writing new restart files at step 50,000, then every 50,000 steps.
2) Continue from a specific step, rebuild grid from current input (with interpolation)
Restart
{
file = "250000"
regenerate_grid = true
allow_interpolation = true
output_start = 10000
output_interval = 10000
}
- Picks the most recent file whose name contains “250000” in the restart directory.
- Rebuilds the grid from the current
Domain/Gridconfiguration and interpolates the solution from the DB. - Writes restart dumps starting at step 10,000 and then every 10,000 steps.
Best practices
- Keep the physics model and properties identical between the restart DB and the resumed run.
- If you changed
Domain/Grid(bounds/refinement), preferregenerate_grid = trueand setallow_interpolation = true. - For AMR workflows where the saved grid should be reused exactly, set
regenerate_grid = false.