summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2022-08-27 01:37:10 +0200
committerAnton Khirnov <anton@khirnov.net>2022-08-27 01:37:10 +0200
commitfe0d44a860cfe9baae52f96e9aadf08808ee9f16 (patch)
tree80dbba79d3e06778d4ae631db3a4062a51ffb0d2
parentd42045155e75f0569e435c07f1639df19ad0f35f (diff)
Make sure the smooth transition width is always non-negative.
One may want to use outer_smooth_fact > 1 to disable smoothing.
-rw-r--r--src/qms.c4
1 files 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);