aboutsummaryrefslogtreecommitdiff
path: root/ell_grid_solve.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2019-01-29 15:38:17 +0100
committerAnton Khirnov <anton@khirnov.net>2019-01-29 15:38:17 +0100
commit40e686b7688345a903f4afb97362de7d57cbb3c7 (patch)
treee28466537988295de240e6c1aac4b96e35880a6b /ell_grid_solve.c
parent2d00e4bf8b63bbe1c4442cd7f765ef8782f5ac6c (diff)
mg2d: account for effect of the ~u term on the relaxation factor
The maximum allowed time step in the presence of a -K * u term goes like 2 (dx ** 2) / (4 + K (dx ** 2))
Diffstat (limited to 'ell_grid_solve.c')
-rw-r--r--ell_grid_solve.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/ell_grid_solve.c b/ell_grid_solve.c
index 370deab..20de6bc 100644
--- a/ell_grid_solve.c
+++ b/ell_grid_solve.c
@@ -751,6 +751,9 @@ int mg2di_egs_init(EGSContext *ctx)
else
priv->r.relax_factor = r->relax_factor;
priv->r.relax_factor *= ctx->step[0] * ctx->step[0];
+
+ if (r->relax_multiplier > 0.0)
+ priv->r.relax_factor *= r->relax_multiplier;
}
priv->fd_factors[MG2D_DIFF_COEFF_00] = 1.0 / fd_denoms[ctx->fd_stencil - 1][MG2D_DIFF_COEFF_00];