17 static Vector<int> last_regrid_step(max_level+1, 0);
22 if (lev < max_level &&
istep[lev] > last_regrid_step[lev])
28 int old_finest = finest_level;
31#ifdef REMORA_USE_PARTICLES
32 if (finest_level != old_finest) {
33 particleData.Redistribute();
38 for (
int k = lev; k <= finest_level; ++k) {
39 last_regrid_step[k] =
istep[k];
43 for (
int k = old_finest+1; k <= finest_level; ++k) {
44 dt[k] =
dt[k-1] / MaxRefRatio(k-1);
54 amrex::Print() <<
"[Level " << lev <<
" step " <<
istep[lev]+1 <<
"] ";
55 amrex::Print() <<
"ADVANCE from time = " <<
t_old[lev] <<
" to " <<
t_new[lev]
56 <<
" with dt = " <<
dt[lev] << std::endl;
72 amrex::Print() <<
"[Level " << lev <<
" step " <<
istep[lev] <<
"] ";
73 amrex::Print() <<
"Advanced " << CountCells(lev) <<
" cells" << std::endl;
76 if (lev < finest_level)
79 for (
int i = 1; i <=
nsubsteps[lev+1]; ++i)
amrex::Vector< amrex::MultiFab * > cons_new
multilevel data container for current step's scalar data: temperature, salinity, passive scalar
amrex::Vector< amrex::MultiFab * > zvel_new
multilevel data container for current step's z velocities (largely unused; W stored separately)
amrex::Vector< amrex::MultiFab * > xvel_old
multilevel data container for last step's x velocities (u in ROMS)
amrex::Vector< amrex::MultiFab * > yvel_new
multilevel data container for current step's y velocities (v in ROMS)
int regrid_int
how often each level regrids the higher levels of refinement (after a level advances that many time s...
void AverageDownTo(int crse_lev)
more flexible version of AverageDown() that lets you average down across multiple levels
amrex::Vector< amrex::MultiFab * > zvel_old
multilevel data container for last step's z velocities (largely unused; W stored separately)
amrex::Vector< amrex::MultiFab * > xvel_new
multilevel data container for current step's x velocities (u in ROMS)
amrex::Vector< int > nsubsteps
How many substeps on each level?
amrex::Vector< int > istep
which step?
amrex::Vector< amrex::MultiFab * > yvel_old
multilevel data container for last step's y velocities (v in ROMS)
void Advance(int lev, amrex::Real time, amrex::Real dt_lev, int iteration, int ncycle)
advance a single level for a single time step
amrex::Vector< amrex::Real > t_new
new time at each level
static SolverChoice solverChoice
Container for algorithmic choices.
amrex::Vector< amrex::MultiFab * > cons_old
multilevel data container for last step's scalar data: temperature, salinity, passive scalar
void timeStep(int lev, amrex::Real time, int iteration)
advance a level by dt, includes a recursive call for finer levels
amrex::Vector< amrex::Real > t_old
old time at each level
amrex::Vector< amrex::Real > dt
time step at each level
CouplingType coupling_type