aboutsummaryrefslogtreecommitdiff
path: root/ML_BSSN/src/ML_BSSN_Advect.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ML_BSSN/src/ML_BSSN_Advect.cc')
-rw-r--r--ML_BSSN/src/ML_BSSN_Advect.cc100
1 files changed, 55 insertions, 45 deletions
diff --git a/ML_BSSN/src/ML_BSSN_Advect.cc b/ML_BSSN/src/ML_BSSN_Advect.cc
index e03d073..c9dd430 100644
--- a/ML_BSSN/src/ML_BSSN_Advect.cc
+++ b/ML_BSSN/src/ML_BSSN_Advect.cc
@@ -1033,57 +1033,67 @@ static void ML_BSSN_Advect_Body(const cGH* restrict const cctkGH, const int dir,
CCTK_BUILTIN_UNREACHABLE();
}
- double xx = x[index];
- int origin = fabs(xx) < 1e-8;
+ CCTK_REAL_VEC kzero = ToReal(0.0);
+ CCTK_REAL_VEC kone = ToReal(1.0);
+ CCTK_REAL_VEC ktwo = ToReal(2.0);
+ CCTK_REAL_VEC xx = vec_load(x[index]);
+ CCTK_REAL_VEC x2 = kmul(xx, xx);
- PDupwindNthAnti2At11 = 0;
- PDupwindNthSymm2At11 = 0;
- PDupwindNthAnti2At12 = origin ? PDupwindNthAnti1At11 - PDupwindNthAnti1At22 : (At11[index] - At22[index]) / xx;
- PDupwindNthSymm2At12 = origin ? PDupwindNthSymm1At11 - PDupwindNthSymm1At22 : (At11[index] - At22[index]) / xx;
- PDupwindNthAnti2At13 = 0;
- PDupwindNthSymm2At13 = 0;
- PDupwindNthAnti2At22 = 0;
- PDupwindNthSymm2At22 = 0;
- PDupwindNthAnti2At23 = origin ? PDupwindNthAnti1At13 : At13[index] / xx;
- PDupwindNthSymm2At23 = origin ? PDupwindNthSymm1At13 : At13[index] / xx;
- PDupwindNthAnti2At33 = 0;
- PDupwindNthSymm2At33 = 0;
+ CCTK_REAL_VEC xinv = kdiv(kone, xx);
+ CCTK_REAL_VEC x2inv = kdiv(kone, x2);
- PDupwindNthAnti2B1 = 0;
- PDupwindNthSymm2B1 = 0;
- PDupwindNthAnti2B2 = origin ? PDupwindNthAnti1B1 : B1[index] / xx;
- PDupwindNthSymm2B2 = origin ? PDupwindNthSymm1B1 : B1[index] / xx;
- PDupwindNthAnti2B3 = 0;
- PDupwindNthSymm2B3 = 0;
+ CCTK_REAL_VEC absx = kfabs(xx);
+ CCTK_REAL_VEC eps = ToReal(1e-8);
+ CCTK_BOOLEAN_VEC origin = kcmplt(absx, eps);
- PDupwindNthAnti2beta1 = 0;
- PDupwindNthSymm2beta1 = 0;
- PDupwindNthAnti2beta2 = origin ? PDupwindNthAnti1beta1 : beta1[index] / xx;
- PDupwindNthSymm2beta2 = origin ? PDupwindNthSymm1beta1 : beta1[index] / xx;
- PDupwindNthAnti2beta3 = 0;
- PDupwindNthSymm2beta3 = 0;
+ PDupwindNthAnti2At11 = kzero;
+ PDupwindNthSymm2At11 = kzero;
+ PDupwindNthAnti2At12 = kifthen(origin, ksub(PDupwindNthAnti1At11, PDupwindNthAnti1At22), kmul(ksub(At11L, At22L), xinv));
+ PDupwindNthSymm2At12 = kifthen(origin, ksub(PDupwindNthSymm1At11, PDupwindNthSymm1At22), kmul(ksub(At11L, At22L), xinv));
+ PDupwindNthAnti2At13 = kzero;
+ PDupwindNthSymm2At13 = kzero;
+ PDupwindNthAnti2At22 = kzero;
+ PDupwindNthSymm2At22 = kzero;
+ PDupwindNthAnti2At23 = kifthen(origin, PDupwindNthAnti1At13, kmul(At13L, xinv));
+ PDupwindNthSymm2At23 = kifthen(origin, PDupwindNthSymm1At13, kmul(At13L, xinv));
+ PDupwindNthAnti2At33 = kzero;
+ PDupwindNthSymm2At33 = kzero;
- PDupwindNthAnti2gt11 = 0;
- PDupwindNthSymm2gt11 = 0;
- PDupwindNthAnti2gt12 = origin ? PDupwindNthAnti1gt11 - PDupwindNthAnti1gt22 : (gt11[index] - gt22[index]) / xx;
- PDupwindNthSymm2gt12 = origin ? PDupwindNthSymm1gt11 - PDupwindNthSymm1gt22 : (gt11[index] - gt22[index]) / xx;
- PDupwindNthAnti2gt13 = 0;
- PDupwindNthSymm2gt13 = 0;
- PDupwindNthAnti2gt22 = 0;
- PDupwindNthSymm2gt22 = 0;
- PDupwindNthAnti2gt23 = origin ? PDupwindNthAnti1gt13 : gt13[index] / xx;
- PDupwindNthSymm2gt23 = origin ? PDupwindNthSymm1gt13 : gt13[index] / xx;
- PDupwindNthAnti2gt33 = 0;
- PDupwindNthSymm2gt33 = 0;
+ PDupwindNthAnti2B1 = kzero;
+ PDupwindNthSymm2B1 = kzero;
+ PDupwindNthAnti2B2 = kifthen(origin, PDupwindNthAnti1B1, kmul(B1L, xinv));
+ PDupwindNthSymm2B2 = kifthen(origin, PDupwindNthSymm1B1, kmul(B1L, xinv));
+ PDupwindNthAnti2B3 = kzero;
+ PDupwindNthSymm2B3 = kzero;
+
+ PDupwindNthAnti2beta1 = kzero;
+ PDupwindNthSymm2beta1 = kzero;
+ PDupwindNthAnti2beta2 = kifthen(origin, PDupwindNthAnti1beta1, kmul(beta1L, xinv));
+ PDupwindNthSymm2beta2 = kifthen(origin, PDupwindNthSymm1beta1, kmul(beta1L, xinv));
+ PDupwindNthAnti2beta3 = kzero;
+ PDupwindNthSymm2beta3 = kzero;
+
+ PDupwindNthAnti2gt11 = kzero;
+ PDupwindNthSymm2gt11 = kzero;
+ PDupwindNthAnti2gt12 = kifthen(origin, ksub(PDupwindNthAnti1gt11, PDupwindNthAnti1gt22), kmul(ksub(gt11L, gt22L), xinv));
+ PDupwindNthSymm2gt12 = kifthen(origin, ksub(PDupwindNthSymm1gt11, PDupwindNthSymm1gt22), kmul(ksub(gt11L, gt22L), xinv));
+ PDupwindNthAnti2gt13 = kzero;
+ PDupwindNthSymm2gt13 = kzero;
+ PDupwindNthAnti2gt22 = kzero;
+ PDupwindNthSymm2gt22 = kzero;
+ PDupwindNthAnti2gt23 = kifthen(origin, PDupwindNthAnti1gt13, kmul(gt13L, xinv));
+ PDupwindNthSymm2gt23 = kifthen(origin, PDupwindNthSymm1gt13, kmul(gt13L, xinv));
+ PDupwindNthAnti2gt33 = kzero;
+ PDupwindNthSymm2gt33 = kzero;
+
+ PDupwindNthAnti2phi = kzero;
+ PDupwindNthSymm2phi = kzero;
+ PDupwindNthAnti2trK = kzero;
+ PDupwindNthSymm2trK = kzero;
+ PDupwindNthAnti2Xt2 = kifthen(origin, PDupwindNthAnti1Xt1, kmul(Xt1L, xinv));
+ PDupwindNthSymm2Xt2 = kifthen(origin, PDupwindNthSymm1Xt1, kmul(Xt1L, xinv));
- PDupwindNthAnti2phi = 0;
- PDupwindNthSymm2phi = 0;
- PDupwindNthAnti2trK = 0;
- PDupwindNthSymm2trK = 0;
- PDupwindNthAnti2Xt2 = origin ? PDupwindNthAnti1Xt1 : Xt1[index] / xx;
- PDupwindNthSymm2Xt2 = origin ? PDupwindNthSymm1Xt1 : Xt1[index] / xx;
-
/* Calculate temporaries and grid functions */
ptrdiff_t dir1 CCTK_ATTRIBUTE_UNUSED = kisgn(beta1L);