summaryrefslogtreecommitdiff
path: root/mg2d.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2019-04-09 09:45:16 +0200
committerAnton Khirnov <anton@khirnov.net>2019-06-14 11:05:39 +0200
commit373dbd15f216c2ce97396af37ea3f7cc5d39455c (patch)
tree9fec3609181410c7584bced57b118c23499a90eb /mg2d.c
parent33d18edb8db8cad947b7a06206d4000ad0bfa619 (diff)
egs: add higher-order finite difference operatorstmp
Diffstat (limited to 'mg2d.c')
-rw-r--r--mg2d.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/mg2d.c b/mg2d.c
index 11a8158..b4a9124 100644
--- a/mg2d.c
+++ b/mg2d.c
@@ -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;
}