summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2018-12-27 12:21:16 +0100
committerAnton Khirnov <anton@khirnov.net>2018-12-27 12:21:16 +0100
commit7606e74f1a0310c1031aad48f77a7c701791025a (patch)
treeb86c10c0167f9b4b4e0cd1256de3afe5305d5c51
parent32cd1b5680db2122eb3321ef967dc3cbe2c7109d (diff)
mg2d: initialize the solver stepsize before it is used
-rw-r--r--mg2d.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/mg2d.c b/mg2d.c
index 82a5546..4ad048c 100644
--- a/mg2d.c
+++ b/mg2d.c
@@ -303,6 +303,14 @@ static int mg_levels_init(MG2DContext *ctx)
cur = priv->root;
prev = NULL;
while (cur) {
+ if (!prev) {
+ cur->solver->step[0] = ctx->step[0];
+ cur->solver->step[1] = ctx->step[1];
+ } else {
+ cur->solver->step[0] = prev->solver->step[0] * ((double)(prev->solver->domain_size[0] - 1) / (cur->solver->domain_size[0] - 1));
+ cur->solver->step[1] = prev->solver->step[1] * ((double)(prev->solver->domain_size[1] - 1) / (cur->solver->domain_size[1] - 1));
+ }
+
/* Set the equation coefficients. */
if (prev) {
for (int i = 0; i < ARRAY_ELEMS(prev->solver->diff_coeffs); i++) {
@@ -338,14 +346,6 @@ static int mg_levels_init(MG2DContext *ctx)
}
cur->solver->logger = priv->logger;
-
- if (!prev) {
- cur->solver->step[0] = ctx->step[0];
- cur->solver->step[1] = ctx->step[1];
- } else {
- cur->solver->step[0] = prev->solver->step[0] * ((double)(prev->solver->domain_size[0] - 1) / (cur->solver->domain_size[0] - 1));
- cur->solver->step[1] = prev->solver->step[1] * ((double)(prev->solver->domain_size[1] - 1) / (cur->solver->domain_size[1] - 1));
- }
cur->solver->cpuflags = priv->cpuflags;
cur->solver->fd_stencil = ctx->fd_stencil;