summaryrefslogtreecommitdiff
path: root/src/qms.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/qms.c')
-rw-r--r--src/qms.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/qms.c b/src/qms.c
index a1366bd..b5abcd2 100644
--- a/src/qms.c
+++ b/src/qms.c
@@ -1302,6 +1302,7 @@ void qms_mg_solve(CCTK_ARGUMENTS)
ts_tmp /= 2;
reflevel_top--;
}
+ reflevel_top = MAX(reflevel_top, ms->solve_level_max);
if (reflevel < ms->solve_level_max)
goto skip_solve;
@@ -1359,7 +1360,7 @@ void qms_mg_solve(CCTK_ARGUMENTS)
ms->time_bnd += gettime() - start;
ms->count_bnd++;
- fprintf(stderr, "%d qms solve: time %g\n", reflevel, time);
+ fprintf(stderr, "%d qms solve: time %g step %d\n", reflevel, time, timestep);
start = gettime();
ret = mg2d_solve(cp->solver);
ms->time_mg2d += gettime() - start;
@@ -1376,6 +1377,11 @@ skip_solve:
memcpy(W_val_tl1, W_val, grid_size * sizeof(*W_val_tl1));
}
+ if (reflevel > ms->solve_level_max && timestep % 2)
+ goto skip_export;
+
+
+ fprintf(stderr, "%d qms export: time %g step %d\n", reflevel, time, timestep);
/* add the solution to the list of past solutions */
{
#if 0
@@ -1493,6 +1499,8 @@ skip_solve:
ms->time_export += gettime() - start;
ms->count_export++;
+skip_export:
+
ms->time_solve += gettime() - total_start;
ms->count_solve++;
@@ -1650,9 +1658,13 @@ void qms_mg_inithist(CCTK_ARGUMENTS)
DECLARE_CCTK_PARAMETERS;
const int reflevel = ctz(cctk_levfac[0]);
- const double dt = cctk_delta_time / (1 << MIN(reflevel, solve_level));
size_t grid_size = cctk_lsh[0] * cctk_lsh[1] * cctk_lsh[2];
+ double dt;
+
+ dt = cctk_delta_time / (1 << MIN(reflevel, solve_level));
+ if (reflevel > solve_level_max)
+ dt *= 2;
fprintf(stderr, "%d inithist\n", reflevel);