aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2018-10-03 14:43:15 +0200
committerAnton Khirnov <anton@khirnov.net>2018-10-03 14:43:15 +0200
commitb212d1e5048f48d3e5146ccdac8386f075e8aee7 (patch)
tree9a93fc3b0436c194591e4afac0912319351abbbe
parentbf3002ba5787f22666faac0ab7178005d9432c70 (diff)
Add 3rd order dissipation.
-rw-r--r--src/apply_dissipation.c10
1 files changed, 10 insertions, 0 deletions
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++)