summaryrefslogtreecommitdiff
path: root/ell_grid_solve.c
diff options
context:
space:
mode:
Diffstat (limited to 'ell_grid_solve.c')
-rw-r--r--ell_grid_solve.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/ell_grid_solve.c b/ell_grid_solve.c
index f8512f6..978c26f 100644
--- a/ell_grid_solve.c
+++ b/ell_grid_solve.c
@@ -171,11 +171,12 @@ static void boundaries_apply_reflect(double *dst, const ptrdiff_t dst_stride[2],
for (int j = 1; j <= FD_STENCIL_MAX; j++)
memcpy(dst + j * dst_stride[1], dst - j * dst_stride[1], sizeof(*dst) * boundary_size);
} else {
+//#pragma omp parallel for
for (size_t i = 0; i < boundary_size; i++) {
for (int j = 1; j <= FD_STENCIL_MAX; j++)
- dst[dst_stride[1] * j] = dst[-dst_stride[1] * j];
+ dst[dst_stride[0] * i + dst_stride[1] * j] = dst[dst_stride[0] * i -dst_stride[1] * j];
- dst += dst_stride[0];
+ //dst += dst_stride[0];
}
}
}
@@ -304,7 +305,7 @@ static void line_madd_c(ptrdiff_t linesize, double *dst, const double *src, doub
dst[i] += c * src[i];
}
-static int residual_add_task(void *arg, unsigned int job_idx, unsigned int thread_idx)
+static inline int residual_add_task(void *arg, unsigned int job_idx, unsigned int thread_idx)
{
#if 1
EGSContext *ctx = arg;
@@ -313,6 +314,8 @@ static int residual_add_task(void *arg, unsigned int job_idx, unsigned int threa
priv->r.line_add(ctx->domain_size[0], ctx->u->data + ctx->u->stride[0] * job_idx,
ctx->residual->data + ctx->residual->stride[0] * job_idx, priv->r.relax_factor);
#else
+ EGSContext *ctx = arg;
+ EGSInternal *priv = ctx->priv;
for (int idx0 = 0; idx0 < ctx->domain_size[0]; idx0++) {
ptrdiff_t idx = job_idx * ctx->u->stride[0] + idx0;