From b212d1e5048f48d3e5146ccdac8386f075e8aee7 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Wed, 3 Oct 2018 14:43:15 +0200 Subject: Add 3rd order dissipation. --- src/apply_dissipation.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/apply_dissipation.c b/src/apply_dissipation.c index 6920ef5..ce6e223 100644 --- a/src/apply_dissipation.c +++ b/src/apply_dissipation.c @@ -23,6 +23,16 @@ void apply_dissipation(const cGH *gh, const double *var, double *rhs, double dx[ } switch (order) { + case 3: +#pragma omp parallel for + for (int k = 2; k < nk - 2; k++) + for (int i = 2; i < nk - 2; i++) { + int idx = CCTK_GFINDEX3D(gh, i, y_idx, k); + rhs[idx] += epsdis[idx] / 16.0 * + ((var[idx - 2] - 4.0 * var[idx - 1] + 6.0 * var[idx] - 4.0 * var[idx + 1] + var[idx + 2]) * inv_dx[0] + + (var[idx - 2 * ni * nj] - 4.0 * var[idx - 1 * ni * nj] + 6.0 * var[idx] - 4.0 * var[idx + 1 * ni * nj] + var[idx + 2 * ni * nj]) * inv_dx[2]); + } + break; case 5: #pragma omp parallel for for (int k = 3; k < nk - 3; k++) -- cgit v1.2.3