From fe0d44a860cfe9baae52f96e9aadf08808ee9f16 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sat, 27 Aug 2022 01:37:10 +0200 Subject: Make sure the smooth transition width is always non-negative. One may want to use outer_smooth_fact > 1 to disable smoothing. --- src/qms.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/qms.c b/src/qms.c index a70ca03..576fcbf 100644 --- a/src/qms.c +++ b/src/qms.c @@ -1184,7 +1184,7 @@ static void solution_to_grid(QMSMGContext *ms, CoordPatch *cp, MG2DContext *solv for (int i = 0; i < solver->local_size[0]; i++) { const double x_val = (i + solver->local_start[0]) * solver->step[0]; const double r = sqrt(SQR(x_val) + SQR(z_val)); - const double dist = (r - transition_start) / (bnd_loc - transition_start); + const double dist = (r - transition_start) / fabs(bnd_loc - transition_start); const double smooth_fact = 1.0 - smooth_step(dist); @@ -1564,7 +1564,7 @@ skip_solve: const double coarse_val = W_pred1[idx]; const double r = sqrt(SQR(x_val) + SQR(z_val)); - const double dist = (r - transition_start) / (bnd_loc - transition_start); + const double dist = (r - transition_start) / abs(bnd_loc - transition_start); const double bnd_fact = 1.0 - smooth_step(dist); -- cgit v1.2.3