aboutsummaryrefslogtreecommitdiff
path: root/mg2d.c
diff options
context:
space:
mode:
Diffstat (limited to 'mg2d.c')
-rw-r--r--mg2d.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/mg2d.c b/mg2d.c
index 84985d7..25a1759 100644
--- a/mg2d.c
+++ b/mg2d.c
@@ -192,7 +192,7 @@ static int mg_solve_subgrid(MG2DContext *ctx, MG2DLevel *level, int allow_exact)
/* prolongate the coarser-level correction */
mg2di_timer_start(&level->timer_prolong);
ret = mg2di_gt_transfer(level->transfer_prolong, level->prolong_tmp,
- level->child->solver->u);
+ level->child->solver->u_base);
mg2di_timer_stop(&level->timer_prolong);
if (ret < 0)
return ret;
@@ -444,8 +444,10 @@ static int mg_levels_init(MG2DContext *ctx)
cur->transfer_prolong->dst.step[0] = cur->solver->step[0];
cur->transfer_prolong->dst.step[1] = cur->solver->step[1];
- cur->transfer_prolong->src.size[0] = cur->child->solver->domain_size[0];
- cur->transfer_prolong->src.size[1] = cur->child->solver->domain_size[1];
+ cur->transfer_prolong->src.start[0] = -FD_STENCIL_MAX;
+ cur->transfer_prolong->src.start[1] = -FD_STENCIL_MAX;
+ cur->transfer_prolong->src.size[0] = cur->child->solver->domain_size[0] + 2 * FD_STENCIL_MAX;
+ cur->transfer_prolong->src.size[1] = cur->child->solver->domain_size[1] + 2 * FD_STENCIL_MAX;
cur->transfer_prolong->src.step[0] = cur->child->solver->step[0];
cur->transfer_prolong->src.step[1] = cur->child->solver->step[1];