summaryrefslogtreecommitdiff
path: root/mg2d.c
diff options
context:
space:
mode:
Diffstat (limited to 'mg2d.c')
-rw-r--r--mg2d.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/mg2d.c b/mg2d.c
index ce92ba2..3e02ac1 100644
--- a/mg2d.c
+++ b/mg2d.c
@@ -376,9 +376,12 @@ static int mg_levels_init(MG2DContext *ctx)
else
op_interp = GRID_TRANSFER_LAGRANGE_3;
- if (cur->solver->domain_size[0] == 2 * (cur->child->solver->domain_size[0] - 1) + 1)
- op_restrict = GRID_TRANSFER_FW_1;
- else
+ if (cur->solver->domain_size[0] == 2 * (cur->child->solver->domain_size[0] - 1) + 1) {
+ if (ctx->fd_stencil == 1)
+ op_restrict = GRID_TRANSFER_FW_1;
+ else
+ op_restrict = GRID_TRANSFER_FW_3;
+ } else
op_restrict = op_interp;
cur->transfer_restrict = mg2di_gt_alloc(op_restrict);