diff options
Diffstat (limited to 'mg2d.c')
-rw-r--r-- | mg2d.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -224,7 +224,7 @@ static int mg_solve_subgrid(MG2DContext *ctx, MG2DLevel *level) finish: res_new = level->solver->residual_max; if (!isfinite(res_new) || - (res_new > 1e2 * DBL_EPSILON && res_old / res_new <= 1e-1)) { + (res_new > 1e2 * DBL_EPSILON && res_old / res_new <= 1e-2)) { mg2di_log(&ctx->priv->logger, MG2D_LOG_ERROR, "The relaxation step at level %d has diverged: %g -> %g\n", level->depth, res_old, res_new); @@ -399,6 +399,8 @@ static int mg_levels_init(MG2DContext *ctx) switch (ctx->fd_stencil) { case 1: op_interp = GRID_TRANSFER_LAGRANGE_3; break; case 2: op_interp = GRID_TRANSFER_LAGRANGE_5; break; + case 3: op_interp = GRID_TRANSFER_LAGRANGE_7; break; + case 4: op_interp = GRID_TRANSFER_LAGRANGE_7; break; default: return -ENOSYS; } |