aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2019-04-23 15:40:01 +0200
committerAnton Khirnov <anton@khirnov.net>2019-04-24 14:44:38 +0200
commit8b54b3860926a06730c406f45623ee87d22c10d3 (patch)
tree6388dd0ff3c2363dba1c1b3c253d91115b21cb9b
parent86ad823b9ade211bfa9361b61571933aff1c9d24 (diff)
mg2d: set egs init flags properly in all cases
-rw-r--r--mg2d.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/mg2d.c b/mg2d.c
index 59df5c1..c8896d2 100644
--- a/mg2d.c
+++ b/mg2d.c
@@ -201,11 +201,13 @@ static int mg_solve_subgrid(MG2DContext *ctx, MG2DLevel *level)
/* re-init the current-level solver (re-calc the residual) */
res_prev = level->solver->residual_max;
mg2di_timer_start(&level->timer_reinit);
- ret = mg2di_egs_init(level->solver, 0);
+ ret = mg2di_egs_init(level->solver, level->egs_init_flags);
mg2di_timer_stop(&level->timer_reinit);
if (ret < 0)
return ret;
+ level->egs_init_flags |= EGS_INIT_FLAG_SAME_DIFF_COEFFS;
+
log_relax_step(ctx, level, "correct", res_prev, level->solver->residual_max);
/* post-correct relaxation */
@@ -513,6 +515,8 @@ int mg2d_solve(MG2DContext *ctx)
if (ret < 0)
goto finish;
+ root->egs_init_flags |= EGS_INIT_FLAG_SAME_DIFF_COEFFS;
+
res_orig = s_root->residual_max;
res_prev = res_orig;