Skip to content

Commit

Permalink
Merge branch 'development' into fix_nonconsv_tracer
Browse files Browse the repository at this point in the history
  • Loading branch information
asalmgren committed Jun 14, 2024
2 parents b1464aa + 844091a commit 0a4ee9e
Show file tree
Hide file tree
Showing 7 changed files with 37 additions and 22 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 |
+---------------------+-----------------------------------------------------------------------+-------------+-----------+

4 changes: 4 additions & 0 deletions Docs/sphinx_documentation/source/InputsTimeStepping.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ The inputs below must be preceded by "incflo."
+----------------------+-----------------------------------------------------------------------+-------------+--------------+
| cfl | CFL constraint (dt < cfl * dx / u) if fixed_dt not > 0 | Real | 0.5 |
+----------------------+-----------------------------------------------------------------------+-------------+--------------+
| dt_change_max | maximum percentage dt can increase | Real | 1.1 |
+----------------------+-----------------------------------------------------------------------+-------------+--------------+
| init_shrink | reduce the initial time step by this safety factor | Real | 0.1 |
+----------------------+-----------------------------------------------------------------------+-------------+--------------+

Setting the Time Step
---------------------
Expand Down
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
5 changes: 3 additions & 2 deletions src/incflo_apply_predictor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ using namespace amrex;
//
// vel = u** - dt * grad p / rho^nph
//
// It is assumed that the ghost cels of the old data have been filled and
// It is assumed that the ghost cells of the old data have been filled and
// the old and new data are the same in valid region.
//
void incflo::ApplyPredictor (bool incremental_projection)
Expand Down Expand Up @@ -139,6 +139,7 @@ void incflo::ApplyPredictor (bool incremental_projection)

// *************************************************************************************
// Compute explicit viscous term
// Note that for !advect_momentum, this actually computes divtau / rho
// *************************************************************************************
if (need_divtau() || use_tensor_correction )
{
Expand All @@ -160,7 +161,7 @@ void incflo::ApplyPredictor (bool incremental_projection)
// *************************************************************************************
bool include_pressure_gradient = !(m_use_mac_phi_in_godunov);
compute_vel_forces(GetVecOfPtrs(vel_forces), get_velocity_old_const(),
get_density_old_const(), get_tracer_old_const(), get_tracer_new_const(),
get_density_old_const(), get_tracer_old_const(), get_tracer_old_const(),
include_pressure_gradient);
compute_MAC_projected_velocities(get_velocity_old_const(), get_density_old_const(),
AMREX_D_DECL(GetVecOfPtrs(u_mac), GetVecOfPtrs(v_mac),
Expand Down
2 changes: 1 addition & 1 deletion src/incflo_compute_dt.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ void incflo::ComputeDt (int initialization, bool explicit_diffusion)
dt_new = Real(0.5) * m_dt;
}

// Don't let the timestep grow by more than 10% per step
// Don't let the timestep grow by more than m_dt_change_max per step
// unless the previous time step was unduly shrunk to match m_plot_per_exact
Real allowed_change_factor = m_dt_change_max;
if( (m_dt > Real(0.0)) && !(m_plot_per_exact > 0 && m_last_plt == m_nstep && m_nstep > 0) )
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 0a4ee9e

Please sign in to comment.