commit 5843a3a1d804e22a751f9bc63a71cf54a88fbcdc
parent ed32338a7ab21414ac1835cc082f88b8d4179f71
Author: Anders Damsgaard <anders@adamsgaard.dk>
Date: Wed, 14 Jan 2026 09:35:09 +0100
fix(simulation): improve residual calculation stability
Use max of absolute values for denominator to prevent issues when old_val is negative or near machine epsilon.
Diffstat:
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/simulation.c b/simulation.c
@@ -635,7 +635,7 @@ set_bc_dirichlet(double *a,
double
residual(double new_val, double old_val)
{
- return (new_val - old_val) / (old_val + 1e-16);
+ return (new_val - old_val) / (fmax(fabs(old_val), fabs(new_val)) + 1e-16);
}
static void