diff options
Diffstat (limited to 'ML_ADMQuantities/src/ML_ADMQuantities.cc')
-rw-r--r-- | ML_ADMQuantities/src/ML_ADMQuantities.cc | 48 |
1 files changed, 37 insertions, 11 deletions
diff --git a/ML_ADMQuantities/src/ML_ADMQuantities.cc b/ML_ADMQuantities/src/ML_ADMQuantities.cc index 22f7587..597cd72 100644 --- a/ML_ADMQuantities/src/ML_ADMQuantities.cc +++ b/ML_ADMQuantities/src/ML_ADMQuantities.cc @@ -6,6 +6,7 @@ #include <math.h> #include <stdio.h> #include <stdlib.h> +#include <string.h> #include "cctk.h" #include "cctk_Arguments.h" #include "cctk_Parameters.h" @@ -56,15 +57,21 @@ static void ML_ADMQuantities_Body(cGH const * restrict const cctkGH, int const d const char *groups[] = {"grid::coordinates","Grid::coordinates","ML_BSSN::ML_curv","ML_BSSN::ML_Gamma","ML_BSSN::ML_lapse","ML_BSSN::ML_log_confac","ML_BSSN::ML_metric","ML_BSSN::ML_shift","ML_BSSN::ML_trace_curv","ML_ADMQuantities::ML_Jadm","ML_ADMQuantities::ML_Madm"}; GenericFD_AssertGroupStorage(cctkGH, "ML_ADMQuantities", 11, groups); + GenericFD_EnsureStencilFits(cctkGH, "ML_ADMQuantities", 2, 2, 2); + /* Include user-supplied include files */ /* Initialise finite differencing variables */ ptrdiff_t const di = 1; ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; CCTK_REAL const dx = ToReal(CCTK_DELTA_SPACE(0)); CCTK_REAL const dy = ToReal(CCTK_DELTA_SPACE(1)); CCTK_REAL const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL const dt = ToReal(CCTK_DELTA_TIME); CCTK_REAL const dxi = INV(dx); CCTK_REAL const dyi = INV(dy); CCTK_REAL const dzi = INV(dz); @@ -100,6 +107,7 @@ static void ML_ADMQuantities_Body(cGH const * restrict const cctkGH, int const d ptrdiff_t const index = di*i + dj*j + dk*k; /* Assign local copies of grid functions */ + CCTK_REAL alphaL = alpha[index]; CCTK_REAL At11L = At11[index]; CCTK_REAL At12L = At12[index]; @@ -110,16 +118,6 @@ static void ML_ADMQuantities_Body(cGH const * restrict const cctkGH, int const d CCTK_REAL beta1L = beta1[index]; CCTK_REAL beta2L = beta2[index]; CCTK_REAL beta3L = beta3[index]; - CCTK_REAL eTttL = (*stress_energy_state) ? eTtt[index] : ToReal(0.0); - CCTK_REAL eTtxL = (*stress_energy_state) ? eTtx[index] : ToReal(0.0); - CCTK_REAL eTtyL = (*stress_energy_state) ? eTty[index] : ToReal(0.0); - CCTK_REAL eTtzL = (*stress_energy_state) ? eTtz[index] : ToReal(0.0); - CCTK_REAL eTxxL = (*stress_energy_state) ? eTxx[index] : ToReal(0.0); - CCTK_REAL eTxyL = (*stress_energy_state) ? eTxy[index] : ToReal(0.0); - CCTK_REAL eTxzL = (*stress_energy_state) ? eTxz[index] : ToReal(0.0); - CCTK_REAL eTyyL = (*stress_energy_state) ? eTyy[index] : ToReal(0.0); - CCTK_REAL eTyzL = (*stress_energy_state) ? eTyz[index] : ToReal(0.0); - CCTK_REAL eTzzL = (*stress_energy_state) ? eTzz[index] : ToReal(0.0); CCTK_REAL gt11L = gt11[index]; CCTK_REAL gt12L = gt12[index]; CCTK_REAL gt13L = gt13[index]; @@ -135,6 +133,35 @@ static void ML_ADMQuantities_Body(cGH const * restrict const cctkGH, int const d CCTK_REAL yL = y[index]; CCTK_REAL zL = z[index]; + CCTK_REAL eTttL, eTtxL, eTtyL, eTtzL, eTxxL, eTxyL, eTxzL, eTyyL, eTyzL, eTzzL; + + if (*stress_energy_state) + { + eTttL = eTtt[index]; + eTtxL = eTtx[index]; + eTtyL = eTty[index]; + eTtzL = eTtz[index]; + eTxxL = eTxx[index]; + eTxyL = eTxy[index]; + eTxzL = eTxz[index]; + eTyyL = eTyy[index]; + eTyzL = eTyz[index]; + eTzzL = eTzz[index]; + } + else + { + eTttL = ToReal(0.0); + eTtxL = ToReal(0.0); + eTtyL = ToReal(0.0); + eTtzL = ToReal(0.0); + eTxxL = ToReal(0.0); + eTxyL = ToReal(0.0); + eTxzL = ToReal(0.0); + eTyyL = ToReal(0.0); + eTyzL = ToReal(0.0); + eTzzL = ToReal(0.0); + } + /* Include user supplied include files */ /* Precompute derivatives */ @@ -626,7 +653,6 @@ static void ML_ADMQuantities_Body(cGH const * restrict const cctkGH, int const d At33L*dgtu331 - 1.33333333333333333333333333333*PDstandardNth1trK - 50.26548245743669181540229413247204614715*S1)*yL)*pow(ephi,6); - /* Copy local copies back to grid functions */ Jadm1[index] = Jadm1L; Jadm2[index] = Jadm2L; |