From e1474028b17651bd9ad75c366ad1bb46aab63a8f Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sun, 12 May 2019 13:33:04 +0200 Subject: Make the ghost points explicit in prolongation --- mg2d.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'mg2d.c') 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]; -- cgit v1.2.3