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.cc79
1 files changed, 78 insertions, 1 deletions
diff --git a/ML_BSSN/src/ML_BSSN_Advect.cc b/ML_BSSN/src/ML_BSSN_Advect.cc
index 2543f21..15053d6 100644
--- a/ML_BSSN/src/ML_BSSN_Advect.cc
+++ b/ML_BSSN/src/ML_BSSN_Advect.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_Advect_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_trace_curvrhs.");
@@ -277,6 +280,8 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
CCTK_REAL_VEC gt33rhsL = vec_load(gt33rhs[index]);
CCTK_REAL_VEC phiL = vec_load(phi[index]);
CCTK_REAL_VEC phirhsL = vec_load(phirhs[index]);
+ CCTK_REAL_VEC ThetaL = vec_load(Theta[index]);
+ CCTK_REAL_VEC ThetarhsL = vec_load(Thetarhs[index]);
CCTK_REAL_VEC trKL = vec_load(trK[index]);
CCTK_REAL_VEC trKrhsL = vec_load(trKrhs[index]);
CCTK_REAL_VEC Xt1L = vec_load(Xt1[index]);
@@ -431,6 +436,12 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
CCTK_REAL_VEC PDupwindNthSymm2phi;
CCTK_REAL_VEC PDupwindNthAnti3phi;
CCTK_REAL_VEC PDupwindNthSymm3phi;
+ CCTK_REAL_VEC PDupwindNthAnti1Theta;
+ CCTK_REAL_VEC PDupwindNthSymm1Theta;
+ CCTK_REAL_VEC PDupwindNthAnti2Theta;
+ CCTK_REAL_VEC PDupwindNthSymm2Theta;
+ CCTK_REAL_VEC PDupwindNthAnti3Theta;
+ CCTK_REAL_VEC PDupwindNthSymm3Theta;
CCTK_REAL_VEC PDupwindNthAnti1trK;
CCTK_REAL_VEC PDupwindNthSymm1trK;
CCTK_REAL_VEC PDupwindNthAnti2trK;
@@ -585,6 +596,12 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
PDupwindNthSymm2phi = PDupwindNthSymmfdOrder22(&phi[index]);
PDupwindNthAnti3phi = PDupwindNthAntifdOrder23(&phi[index]);
PDupwindNthSymm3phi = PDupwindNthSymmfdOrder23(&phi[index]);
+ PDupwindNthAnti1Theta = PDupwindNthAntifdOrder21(&Theta[index]);
+ PDupwindNthSymm1Theta = PDupwindNthSymmfdOrder21(&Theta[index]);
+ PDupwindNthAnti2Theta = PDupwindNthAntifdOrder22(&Theta[index]);
+ PDupwindNthSymm2Theta = PDupwindNthSymmfdOrder22(&Theta[index]);
+ PDupwindNthAnti3Theta = PDupwindNthAntifdOrder23(&Theta[index]);
+ PDupwindNthSymm3Theta = PDupwindNthSymmfdOrder23(&Theta[index]);
PDupwindNthAnti1trK = PDupwindNthAntifdOrder21(&trK[index]);
PDupwindNthSymm1trK = PDupwindNthSymmfdOrder21(&trK[index]);
PDupwindNthAnti2trK = PDupwindNthAntifdOrder22(&trK[index]);
@@ -738,6 +755,12 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
PDupwindNthSymm2phi = PDupwindNthSymmfdOrder42(&phi[index]);
PDupwindNthAnti3phi = PDupwindNthAntifdOrder43(&phi[index]);
PDupwindNthSymm3phi = PDupwindNthSymmfdOrder43(&phi[index]);
+ PDupwindNthAnti1Theta = PDupwindNthAntifdOrder41(&Theta[index]);
+ PDupwindNthSymm1Theta = PDupwindNthSymmfdOrder41(&Theta[index]);
+ PDupwindNthAnti2Theta = PDupwindNthAntifdOrder42(&Theta[index]);
+ PDupwindNthSymm2Theta = PDupwindNthSymmfdOrder42(&Theta[index]);
+ PDupwindNthAnti3Theta = PDupwindNthAntifdOrder43(&Theta[index]);
+ PDupwindNthSymm3Theta = PDupwindNthSymmfdOrder43(&Theta[index]);
PDupwindNthAnti1trK = PDupwindNthAntifdOrder41(&trK[index]);
PDupwindNthSymm1trK = PDupwindNthSymmfdOrder41(&trK[index]);
PDupwindNthAnti2trK = PDupwindNthAntifdOrder42(&trK[index]);
@@ -891,6 +914,12 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
PDupwindNthSymm2phi = PDupwindNthSymmfdOrder62(&phi[index]);
PDupwindNthAnti3phi = PDupwindNthAntifdOrder63(&phi[index]);
PDupwindNthSymm3phi = PDupwindNthSymmfdOrder63(&phi[index]);
+ PDupwindNthAnti1Theta = PDupwindNthAntifdOrder61(&Theta[index]);
+ PDupwindNthSymm1Theta = PDupwindNthSymmfdOrder61(&Theta[index]);
+ PDupwindNthAnti2Theta = PDupwindNthAntifdOrder62(&Theta[index]);
+ PDupwindNthSymm2Theta = PDupwindNthSymmfdOrder62(&Theta[index]);
+ PDupwindNthAnti3Theta = PDupwindNthAntifdOrder63(&Theta[index]);
+ PDupwindNthSymm3Theta = PDupwindNthSymmfdOrder63(&Theta[index]);
PDupwindNthAnti1trK = PDupwindNthAntifdOrder61(&trK[index]);
PDupwindNthSymm1trK = PDupwindNthSymmfdOrder61(&trK[index]);
PDupwindNthAnti2trK = PDupwindNthAntifdOrder62(&trK[index]);
@@ -1044,6 +1073,12 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
PDupwindNthSymm2phi = PDupwindNthSymmfdOrder82(&phi[index]);
PDupwindNthAnti3phi = PDupwindNthAntifdOrder83(&phi[index]);
PDupwindNthSymm3phi = PDupwindNthSymmfdOrder83(&phi[index]);
+ PDupwindNthAnti1Theta = PDupwindNthAntifdOrder81(&Theta[index]);
+ PDupwindNthSymm1Theta = PDupwindNthSymmfdOrder81(&Theta[index]);
+ PDupwindNthAnti2Theta = PDupwindNthAntifdOrder82(&Theta[index]);
+ PDupwindNthSymm2Theta = PDupwindNthSymmfdOrder82(&Theta[index]);
+ PDupwindNthAnti3Theta = PDupwindNthAntifdOrder83(&Theta[index]);
+ PDupwindNthSymm3Theta = PDupwindNthSymmfdOrder83(&Theta[index]);
PDupwindNthAnti1trK = PDupwindNthAntifdOrder81(&trK[index]);
PDupwindNthSymm1trK = PDupwindNthSymmfdOrder81(&trK[index]);
PDupwindNthAnti2trK = PDupwindNthAntifdOrder82(&trK[index]);
@@ -1099,6 +1134,7 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
CCTK_REAL_VEC JacPDupwindNthAnti1gt23;
CCTK_REAL_VEC JacPDupwindNthAnti1gt33;
CCTK_REAL_VEC JacPDupwindNthAnti1phi;
+ CCTK_REAL_VEC JacPDupwindNthAnti1Theta;
CCTK_REAL_VEC JacPDupwindNthAnti1trK;
CCTK_REAL_VEC JacPDupwindNthAnti1Xt1;
CCTK_REAL_VEC JacPDupwindNthAnti1Xt2;
@@ -1124,6 +1160,7 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
CCTK_REAL_VEC JacPDupwindNthAnti2gt23;
CCTK_REAL_VEC JacPDupwindNthAnti2gt33;
CCTK_REAL_VEC JacPDupwindNthAnti2phi;
+ CCTK_REAL_VEC JacPDupwindNthAnti2Theta;
CCTK_REAL_VEC JacPDupwindNthAnti2trK;
CCTK_REAL_VEC JacPDupwindNthAnti2Xt1;
CCTK_REAL_VEC JacPDupwindNthAnti2Xt2;
@@ -1149,6 +1186,7 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
CCTK_REAL_VEC JacPDupwindNthAnti3gt23;
CCTK_REAL_VEC JacPDupwindNthAnti3gt33;
CCTK_REAL_VEC JacPDupwindNthAnti3phi;
+ CCTK_REAL_VEC JacPDupwindNthAnti3Theta;
CCTK_REAL_VEC JacPDupwindNthAnti3trK;
CCTK_REAL_VEC JacPDupwindNthAnti3Xt1;
CCTK_REAL_VEC JacPDupwindNthAnti3Xt2;
@@ -1174,6 +1212,7 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
CCTK_REAL_VEC JacPDupwindNthSymm1gt23;
CCTK_REAL_VEC JacPDupwindNthSymm1gt33;
CCTK_REAL_VEC JacPDupwindNthSymm1phi;
+ CCTK_REAL_VEC JacPDupwindNthSymm1Theta;
CCTK_REAL_VEC JacPDupwindNthSymm1trK;
CCTK_REAL_VEC JacPDupwindNthSymm1Xt1;
CCTK_REAL_VEC JacPDupwindNthSymm1Xt2;
@@ -1199,6 +1238,7 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
CCTK_REAL_VEC JacPDupwindNthSymm2gt23;
CCTK_REAL_VEC JacPDupwindNthSymm2gt33;
CCTK_REAL_VEC JacPDupwindNthSymm2phi;
+ CCTK_REAL_VEC JacPDupwindNthSymm2Theta;
CCTK_REAL_VEC JacPDupwindNthSymm2trK;
CCTK_REAL_VEC JacPDupwindNthSymm2Xt1;
CCTK_REAL_VEC JacPDupwindNthSymm2Xt2;
@@ -1224,6 +1264,7 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
CCTK_REAL_VEC JacPDupwindNthSymm3gt23;
CCTK_REAL_VEC JacPDupwindNthSymm3gt33;
CCTK_REAL_VEC JacPDupwindNthSymm3phi;
+ CCTK_REAL_VEC JacPDupwindNthSymm3Theta;
CCTK_REAL_VEC JacPDupwindNthSymm3trK;
CCTK_REAL_VEC JacPDupwindNthSymm3Xt1;
CCTK_REAL_VEC JacPDupwindNthSymm3Xt2;
@@ -1294,6 +1335,9 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
JacPDupwindNthAnti1phi =
kmadd(J11L,PDupwindNthAnti1phi,kmadd(J21L,PDupwindNthAnti2phi,kmul(J31L,PDupwindNthAnti3phi)));
+ JacPDupwindNthAnti1Theta =
+ kmadd(J11L,PDupwindNthAnti1Theta,kmadd(J21L,PDupwindNthAnti2Theta,kmul(J31L,PDupwindNthAnti3Theta)));
+
JacPDupwindNthAnti1trK =
kmadd(J11L,PDupwindNthAnti1trK,kmadd(J21L,PDupwindNthAnti2trK,kmul(J31L,PDupwindNthAnti3trK)));
@@ -1369,6 +1413,9 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
JacPDupwindNthSymm1phi =
kmadd(J11L,PDupwindNthSymm1phi,kmadd(J21L,PDupwindNthSymm2phi,kmul(J31L,PDupwindNthSymm3phi)));
+ JacPDupwindNthSymm1Theta =
+ kmadd(J11L,PDupwindNthSymm1Theta,kmadd(J21L,PDupwindNthSymm2Theta,kmul(J31L,PDupwindNthSymm3Theta)));
+
JacPDupwindNthSymm1trK =
kmadd(J11L,PDupwindNthSymm1trK,kmadd(J21L,PDupwindNthSymm2trK,kmul(J31L,PDupwindNthSymm3trK)));
@@ -1444,6 +1491,9 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
JacPDupwindNthAnti2phi =
kmadd(J12L,PDupwindNthAnti1phi,kmadd(J22L,PDupwindNthAnti2phi,kmul(J32L,PDupwindNthAnti3phi)));
+ JacPDupwindNthAnti2Theta =
+ kmadd(J12L,PDupwindNthAnti1Theta,kmadd(J22L,PDupwindNthAnti2Theta,kmul(J32L,PDupwindNthAnti3Theta)));
+
JacPDupwindNthAnti2trK =
kmadd(J12L,PDupwindNthAnti1trK,kmadd(J22L,PDupwindNthAnti2trK,kmul(J32L,PDupwindNthAnti3trK)));
@@ -1519,6 +1569,9 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
JacPDupwindNthSymm2phi =
kmadd(J12L,PDupwindNthSymm1phi,kmadd(J22L,PDupwindNthSymm2phi,kmul(J32L,PDupwindNthSymm3phi)));
+ JacPDupwindNthSymm2Theta =
+ kmadd(J12L,PDupwindNthSymm1Theta,kmadd(J22L,PDupwindNthSymm2Theta,kmul(J32L,PDupwindNthSymm3Theta)));
+
JacPDupwindNthSymm2trK =
kmadd(J12L,PDupwindNthSymm1trK,kmadd(J22L,PDupwindNthSymm2trK,kmul(J32L,PDupwindNthSymm3trK)));
@@ -1594,6 +1647,9 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
JacPDupwindNthAnti3phi =
kmadd(J13L,PDupwindNthAnti1phi,kmadd(J23L,PDupwindNthAnti2phi,kmul(J33L,PDupwindNthAnti3phi)));
+ JacPDupwindNthAnti3Theta =
+ kmadd(J13L,PDupwindNthAnti1Theta,kmadd(J23L,PDupwindNthAnti2Theta,kmul(J33L,PDupwindNthAnti3Theta)));
+
JacPDupwindNthAnti3trK =
kmadd(J13L,PDupwindNthAnti1trK,kmadd(J23L,PDupwindNthAnti2trK,kmul(J33L,PDupwindNthAnti3trK)));
@@ -1669,6 +1725,9 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
JacPDupwindNthSymm3phi =
kmadd(J13L,PDupwindNthSymm1phi,kmadd(J23L,PDupwindNthSymm2phi,kmul(J33L,PDupwindNthSymm3phi)));
+ JacPDupwindNthSymm3Theta =
+ kmadd(J13L,PDupwindNthSymm1Theta,kmadd(J23L,PDupwindNthSymm2Theta,kmul(J33L,PDupwindNthSymm3Theta)));
+
JacPDupwindNthSymm3trK =
kmadd(J13L,PDupwindNthSymm1trK,kmadd(J23L,PDupwindNthSymm2trK,kmul(J33L,PDupwindNthSymm3trK)));
@@ -1725,6 +1784,8 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
JacPDupwindNthAnti1phi = PDupwindNthAnti1phi;
+ JacPDupwindNthAnti1Theta = PDupwindNthAnti1Theta;
+
JacPDupwindNthAnti1trK = PDupwindNthAnti1trK;
JacPDupwindNthAnti1Xt1 = PDupwindNthAnti1Xt1;
@@ -1775,6 +1836,8 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
JacPDupwindNthSymm1phi = PDupwindNthSymm1phi;
+ JacPDupwindNthSymm1Theta = PDupwindNthSymm1Theta;
+
JacPDupwindNthSymm1trK = PDupwindNthSymm1trK;
JacPDupwindNthSymm1Xt1 = PDupwindNthSymm1Xt1;
@@ -1825,6 +1888,8 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
JacPDupwindNthAnti2phi = PDupwindNthAnti2phi;
+ JacPDupwindNthAnti2Theta = PDupwindNthAnti2Theta;
+
JacPDupwindNthAnti2trK = PDupwindNthAnti2trK;
JacPDupwindNthAnti2Xt1 = PDupwindNthAnti2Xt1;
@@ -1875,6 +1940,8 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
JacPDupwindNthSymm2phi = PDupwindNthSymm2phi;
+ JacPDupwindNthSymm2Theta = PDupwindNthSymm2Theta;
+
JacPDupwindNthSymm2trK = PDupwindNthSymm2trK;
JacPDupwindNthSymm2Xt1 = PDupwindNthSymm2Xt1;
@@ -1925,6 +1992,8 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
JacPDupwindNthAnti3phi = PDupwindNthAnti3phi;
+ JacPDupwindNthAnti3Theta = PDupwindNthAnti3Theta;
+
JacPDupwindNthAnti3trK = PDupwindNthAnti3trK;
JacPDupwindNthAnti3Xt1 = PDupwindNthAnti3Xt1;
@@ -1975,6 +2044,8 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
JacPDupwindNthSymm3phi = PDupwindNthSymm3phi;
+ JacPDupwindNthSymm3Theta = PDupwindNthSymm3Theta;
+
JacPDupwindNthSymm3trK = PDupwindNthSymm3trK;
JacPDupwindNthSymm3Xt1 = PDupwindNthSymm3Xt1;
@@ -2014,6 +2085,9 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
Xt3rhsL =
kadd(Xt3rhsL,kmadd(beta1L,JacPDupwindNthAnti1Xt3,kmadd(beta2L,JacPDupwindNthAnti2Xt3,kmadd(beta3L,JacPDupwindNthAnti3Xt3,kmadd(JacPDupwindNthSymm1Xt3,kfabs(beta1L),kmadd(JacPDupwindNthSymm2Xt3,kfabs(beta2L),kmul(JacPDupwindNthSymm3Xt3,kfabs(beta3L))))))));
+ ThetarhsL = kadd(ThetarhsL,IfThen(conformalMethod ==
+ 2,kmadd(beta1L,JacPDupwindNthAnti1Theta,kmadd(beta2L,JacPDupwindNthAnti2Theta,kmadd(beta3L,JacPDupwindNthAnti3Theta,kmadd(JacPDupwindNthSymm1Theta,kfabs(beta1L),kmadd(JacPDupwindNthSymm2Theta,kfabs(beta2L),kmul(JacPDupwindNthSymm3Theta,kfabs(beta3L))))))),ToReal(0)));
+
trKrhsL =
kadd(trKrhsL,kmadd(beta1L,JacPDupwindNthAnti1trK,kmadd(beta2L,JacPDupwindNthAnti2trK,kmadd(beta3L,JacPDupwindNthAnti3trK,kmadd(JacPDupwindNthSymm1trK,kfabs(beta1L),kmadd(JacPDupwindNthSymm2trK,kfabs(beta2L),kmul(JacPDupwindNthSymm3trK,kfabs(beta3L))))))));
@@ -2082,6 +2156,7 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
vec_store_nta_partial(gt23rhs[index],gt23rhsL);
vec_store_nta_partial(gt33rhs[index],gt33rhsL);
vec_store_nta_partial(phirhs[index],phirhsL);
+ vec_store_nta_partial(Thetarhs[index],ThetarhsL);
vec_store_nta_partial(trKrhs[index],trKrhsL);
vec_store_nta_partial(Xt1rhs[index],Xt1rhsL);
vec_store_nta_partial(Xt2rhs[index],Xt2rhsL);
@@ -2123,9 +2198,11 @@ extern "C" void ML_BSSN_Advect(CCTK_ARGUMENTS)
"ML_BSSN::ML_metricrhs",
"ML_BSSN::ML_shift",
"ML_BSSN::ML_shiftrhs",
+ "ML_BSSN::ML_Theta",
+ "ML_BSSN::ML_Thetarhs",
"ML_BSSN::ML_trace_curv",
"ML_BSSN::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_Advect", 18, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_Advect", 20, groups);
switch(fdOrder)
{