diff options
author | Anton Khirnov <anton@khirnov.net> | 2019-05-12 13:33:04 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2019-05-21 14:55:36 +0200 |
commit | e1474028b17651bd9ad75c366ad1bb46aab63a8f (patch) | |
tree | 2eb774fa29f8d9fae67811d98391416f9bd9a9d8 /mg2d.c | |
parent | 6ca76797cb4034a961166ae782db550ba9a7e6e6 (diff) |
Make the ghost points explicit in prolongation
Diffstat (limited to 'mg2d.c')
-rw-r--r-- | mg2d.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -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]; |