diff options
Diffstat (limited to 'ML_BSSN/src/ML_BSSN_constraints1.cc')
-rw-r--r-- | ML_BSSN/src/ML_BSSN_constraints1.cc | 43 |
1 files changed, 40 insertions, 3 deletions
diff --git a/ML_BSSN/src/ML_BSSN_constraints1.cc b/ML_BSSN/src/ML_BSSN_constraints1.cc index 92d8583..b09147f 100644 --- a/ML_BSSN/src/ML_BSSN_constraints1.cc +++ b/ML_BSSN/src/ML_BSSN_constraints1.cc @@ -231,7 +231,7 @@ static void ML_BSSN_constraints1_Body(const cGH* restrict const cctkGH, const in /* Assign local copies of grid functions */ - CCTK_REAL_VEC alphaL CCTK_ATTRIBUTE_UNUSED = vec_load(alpha[index]); + CCTK_REAL_VEC alpL CCTK_ATTRIBUTE_UNUSED = vec_load(alp[index]); CCTK_REAL_VEC At11L CCTK_ATTRIBUTE_UNUSED = vec_load(At11[index]); CCTK_REAL_VEC At12L CCTK_ATTRIBUTE_UNUSED = vec_load(At12[index]); CCTK_REAL_VEC At13L CCTK_ATTRIBUTE_UNUSED = vec_load(At13[index]); @@ -703,6 +703,43 @@ static void ML_BSSN_constraints1_Body(const cGH* restrict const cctkGH, const in default: CCTK_BUILTIN_UNREACHABLE(); } + + double xx = x[index]; + int origin = fabs(xx) < 1e-8; + + PDstandardNth2gt11 = 0; + PDstandardNth22gt11 = origin ? PDstandardNth11gt22 : PDstandardNth1gt11 / xx - 2 * (gt11[index] - gt22[index]) / (xx * xx); + PDstandardNth12gt11 = 0; + PDstandardNth23gt11 = 0; + PDstandardNth2gt12 = origin ? 0 : (gt11[index] - gt22[index]) / xx; + PDstandardNth22gt12 = 0; + PDstandardNth12gt12 = origin ? (PDstandardNth11gt11 - PDstandardNth11gt22) / 2 : (PDstandardNth1gt11 - PDstandardNth1gt22) / xx - (gt11[index] - gt22[index]) / (xx * xx); + PDstandardNth23gt12 = origin ? 0 : (PDstandardNth3gt11 - PDstandardNth3gt22) / xx; + PDstandardNth2gt13 = 0; + PDstandardNth22gt13 = origin ? PDstandardNth11gt13 : PDstandardNth1gt13 / xx - gt13[index] / (xx * xx); + PDstandardNth12gt13 = 0; + PDstandardNth23gt13 = 0; + PDstandardNth2gt22 = 0; + PDstandardNth22gt22 = origin ? PDstandardNth11gt11 : PDstandardNth1gt22 / xx + 2 * (gt11[index] - gt22[index]) / (xx * xx); + PDstandardNth12gt22 = 0; + PDstandardNth23gt22 = 0; + PDstandardNth2gt23 = origin ? 0 : gt13[index] / xx; + PDstandardNth22gt23 = 0; + PDstandardNth12gt23 = origin ? 0 : PDstandardNth1gt13 / xx - gt13[index] / (xx * xx); + PDstandardNth23gt23 = origin ? 0 : PDstandardNth3gt13 / xx; + PDstandardNth2gt33 = 0; + PDstandardNth22gt33 = origin ? PDstandardNth11gt33 : PDstandardNth1gt33 / xx; + PDstandardNth12gt33 = 0; + PDstandardNth23gt33 = 0; + + PDstandardNth2phi = 0; + PDstandardNth22phi = origin ? PDstandardNth11phi : PDstandardNth1phi / xx; + PDstandardNth12phi = 0; + PDstandardNth23phi = 0; + PDstandardNth2Xt1 = 0; + PDstandardNth2Xt2 = origin ? PDstandardNth1Xt1 : Xt1[index] / xx; + PDstandardNth2Xt3 = 0; + /* Calculate temporaries and grid functions */ CCTK_REAL_VEC JacPDstandardNth11gt11 CCTK_ATTRIBUTE_UNUSED; @@ -1598,7 +1635,7 @@ static void ML_BSSN_constraints1_Body(const cGH* restrict const cctkGH, const in kmadd(At13L,gtu13,kmadd(At23L,gtu23,kmul(At33L,gtu33))); CCTK_REAL_VEC rho CCTK_ATTRIBUTE_UNUSED = - kdiv(kadd(eTttL,kmadd(eTxxL,kmul(beta1L,beta1L),kmadd(eTyyL,kmul(beta2L,beta2L),kmadd(eTzzL,kmul(beta3L,beta3L),kmadd(kmadd(beta2L,eTtyL,kmul(beta3L,eTtzL)),ToReal(-2),kmul(kmadd(beta2L,kmul(beta3L,eTyzL),kmul(beta1L,kmadd(beta2L,eTxyL,kmsub(beta3L,eTxzL,eTtxL)))),ToReal(2))))))),kmul(alphaL,alphaL)); + kdiv(kadd(eTttL,kmadd(eTxxL,kmul(beta1L,beta1L),kmadd(eTyyL,kmul(beta2L,beta2L),kmadd(eTzzL,kmul(beta3L,beta3L),kmadd(kmadd(beta2L,eTtyL,kmul(beta3L,eTtzL)),ToReal(-2),kmul(kmadd(beta2L,kmul(beta3L,eTyzL),kmul(beta1L,kmadd(beta2L,eTxyL,kmsub(beta3L,eTxzL,eTtxL)))),ToReal(2))))))),kmul(alpL,alpL)); CCTK_REAL_VEC HL CCTK_ATTRIBUTE_UNUSED = kadd(trR,kmadd(kmadd(Atm12,Atm21,kmadd(Atm13,Atm31,kmul(Atm23,Atm32))),ToReal(-2),knmsub(Atm11,Atm11,knmsub(Atm22,Atm22,knmsub(Atm33,Atm33,kmadd(kmul(trKL,trKL),ToReal(0.666666666666666666666666666667),kmul(rho,ToReal(-50.2654824574366918154022941325)))))))); @@ -1627,10 +1664,10 @@ extern "C" void ML_BSSN_constraints1(CCTK_ARGUMENTS) } const char* const groups[] = { + "ADMBase::lapse", "ML_BSSN::ML_curv", "ML_BSSN::ML_Gamma", "ML_BSSN::ML_Ham", - "ML_BSSN::ML_lapse", "ML_BSSN::ML_log_confac", "ML_BSSN::ML_metric", "ML_BSSN::ML_shift", |