diff options
author | Anton Khirnov <anton@khirnov.net> | 2018-12-27 12:21:16 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2018-12-27 12:21:16 +0100 |
commit | 7606e74f1a0310c1031aad48f77a7c701791025a (patch) | |
tree | b86c10c0167f9b4b4e0cd1256de3afe5305d5c51 | |
parent | 32cd1b5680db2122eb3321ef967dc3cbe2c7109d (diff) |
mg2d: initialize the solver stepsize before it is used
-rw-r--r-- | mg2d.c | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -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; |