aboutsummaryrefslogtreecommitdiff
path: root/src/psis_calc_2nd.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/psis_calc_2nd.cc')
-rw-r--r--src/psis_calc_2nd.cc376
1 files changed, 321 insertions, 55 deletions
diff --git a/src/psis_calc_2nd.cc b/src/psis_calc_2nd.cc
index 29d1c23..018b3a7 100644
--- a/src/psis_calc_2nd.cc
+++ b/src/psis_calc_2nd.cc
@@ -57,7 +57,24 @@ static void psis_calc_2nd_Body(cGH const * restrict const cctkGH, int const dir,
const char *groups[] = {"admbase::curv","admbase::metric","grid::coordinates","WeylScal4::Psi4i_group","WeylScal4::Psi4r_group"};
GenericFD_AssertGroupStorage(cctkGH, "psis_calc_2nd", 5, groups);
- GenericFD_EnsureStencilFits(cctkGH, "psis_calc_2nd", 1, 1, 1);
+ switch(fdOrder)
+ {
+ case 2:
+ GenericFD_EnsureStencilFits(cctkGH, "psis_calc_2nd", 1, 1, 1);
+ break;
+
+ case 4:
+ GenericFD_EnsureStencilFits(cctkGH, "psis_calc_2nd", 1, 1, 1);
+ break;
+
+ case 6:
+ GenericFD_EnsureStencilFits(cctkGH, "psis_calc_2nd", 1, 1, 1);
+ break;
+
+ case 8:
+ GenericFD_EnsureStencilFits(cctkGH, "psis_calc_2nd", 1, 1, 1);
+ break;
+ }
/* Include user-supplied include files */
@@ -91,12 +108,30 @@ static void psis_calc_2nd_Body(cGH const * restrict const cctkGH, int const dir,
CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz);
CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz);
+ CCTK_REAL const p1o180dx2 = 0.00555555555555555555555555555556*INV(SQR(dx));
+ CCTK_REAL const p1o180dy2 = 0.00555555555555555555555555555556*INV(SQR(dy));
+ CCTK_REAL const p1o180dz2 = 0.00555555555555555555555555555556*INV(SQR(dz));
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
CCTK_REAL const p1o2dz = 0.5*INV(dz);
+ CCTK_REAL const p1o3600dxdy = 0.000277777777777777777777777777778*INV(dx)*INV(dy);
+ CCTK_REAL const p1o3600dxdz = 0.000277777777777777777777777777778*INV(dx)*INV(dz);
+ CCTK_REAL const p1o3600dydz = 0.000277777777777777777777777777778*INV(dy)*INV(dz);
CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
CCTK_REAL const p1o4dxdz = 0.25*INV(dx)*INV(dz);
CCTK_REAL const p1o4dydz = 0.25*INV(dy)*INV(dz);
+ CCTK_REAL const p1o5040dx2 = 0.000198412698412698412698412698413*INV(SQR(dx));
+ CCTK_REAL const p1o5040dy2 = 0.000198412698412698412698412698413*INV(SQR(dy));
+ CCTK_REAL const p1o5040dz2 = 0.000198412698412698412698412698413*INV(SQR(dz));
+ CCTK_REAL const p1o60dx = 0.0166666666666666666666666666667*INV(dx);
+ CCTK_REAL const p1o60dy = 0.0166666666666666666666666666667*INV(dy);
+ CCTK_REAL const p1o60dz = 0.0166666666666666666666666666667*INV(dz);
+ CCTK_REAL const p1o705600dxdy = 1.41723356009070294784580498866e-6*INV(dx)*INV(dy);
+ CCTK_REAL const p1o705600dxdz = 1.41723356009070294784580498866e-6*INV(dx)*INV(dz);
+ CCTK_REAL const p1o705600dydz = 1.41723356009070294784580498866e-6*INV(dy)*INV(dz);
+ CCTK_REAL const p1o840dx = 0.00119047619047619047619047619048*INV(dx);
+ CCTK_REAL const p1o840dy = 0.00119047619047619047619047619048*INV(dy);
+ CCTK_REAL const p1o840dz = 0.00119047619047619047619047619048*INV(dz);
CCTK_REAL const p1odx = INV(dx);
CCTK_REAL const p1odx2 = INV(SQR(dx));
CCTK_REAL const p1odxdy = INV(dx)*INV(dy);
@@ -143,60 +178,291 @@ static void psis_calc_2nd_Body(cGH const * restrict const cctkGH, int const dir,
/* Include user supplied include files */
/* Precompute derivatives */
- CCTK_REAL const PDstandard2nd1gxx = PDstandard2nd1(&gxx[index]);
- CCTK_REAL const PDstandard2nd2gxx = PDstandard2nd2(&gxx[index]);
- CCTK_REAL const PDstandard2nd3gxx = PDstandard2nd3(&gxx[index]);
- CCTK_REAL const PDstandard2nd22gxx = PDstandard2nd22(&gxx[index]);
- CCTK_REAL const PDstandard2nd33gxx = PDstandard2nd33(&gxx[index]);
- CCTK_REAL const PDstandard2nd23gxx = PDstandard2nd23(&gxx[index]);
- CCTK_REAL const PDstandard2nd1gxy = PDstandard2nd1(&gxy[index]);
- CCTK_REAL const PDstandard2nd2gxy = PDstandard2nd2(&gxy[index]);
- CCTK_REAL const PDstandard2nd3gxy = PDstandard2nd3(&gxy[index]);
- CCTK_REAL const PDstandard2nd33gxy = PDstandard2nd33(&gxy[index]);
- CCTK_REAL const PDstandard2nd12gxy = PDstandard2nd12(&gxy[index]);
- CCTK_REAL const PDstandard2nd13gxy = PDstandard2nd13(&gxy[index]);
- CCTK_REAL const PDstandard2nd23gxy = PDstandard2nd23(&gxy[index]);
- CCTK_REAL const PDstandard2nd1gxz = PDstandard2nd1(&gxz[index]);
- CCTK_REAL const PDstandard2nd2gxz = PDstandard2nd2(&gxz[index]);
- CCTK_REAL const PDstandard2nd3gxz = PDstandard2nd3(&gxz[index]);
- CCTK_REAL const PDstandard2nd22gxz = PDstandard2nd22(&gxz[index]);
- CCTK_REAL const PDstandard2nd12gxz = PDstandard2nd12(&gxz[index]);
- CCTK_REAL const PDstandard2nd13gxz = PDstandard2nd13(&gxz[index]);
- CCTK_REAL const PDstandard2nd23gxz = PDstandard2nd23(&gxz[index]);
- CCTK_REAL const PDstandard2nd1gyy = PDstandard2nd1(&gyy[index]);
- CCTK_REAL const PDstandard2nd2gyy = PDstandard2nd2(&gyy[index]);
- CCTK_REAL const PDstandard2nd3gyy = PDstandard2nd3(&gyy[index]);
- CCTK_REAL const PDstandard2nd11gyy = PDstandard2nd11(&gyy[index]);
- CCTK_REAL const PDstandard2nd33gyy = PDstandard2nd33(&gyy[index]);
- CCTK_REAL const PDstandard2nd13gyy = PDstandard2nd13(&gyy[index]);
- CCTK_REAL const PDstandard2nd1gyz = PDstandard2nd1(&gyz[index]);
- CCTK_REAL const PDstandard2nd2gyz = PDstandard2nd2(&gyz[index]);
- CCTK_REAL const PDstandard2nd3gyz = PDstandard2nd3(&gyz[index]);
- CCTK_REAL const PDstandard2nd11gyz = PDstandard2nd11(&gyz[index]);
- CCTK_REAL const PDstandard2nd12gyz = PDstandard2nd12(&gyz[index]);
- CCTK_REAL const PDstandard2nd13gyz = PDstandard2nd13(&gyz[index]);
- CCTK_REAL const PDstandard2nd23gyz = PDstandard2nd23(&gyz[index]);
- CCTK_REAL const PDstandard2nd1gzz = PDstandard2nd1(&gzz[index]);
- CCTK_REAL const PDstandard2nd2gzz = PDstandard2nd2(&gzz[index]);
- CCTK_REAL const PDstandard2nd3gzz = PDstandard2nd3(&gzz[index]);
- CCTK_REAL const PDstandard2nd11gzz = PDstandard2nd11(&gzz[index]);
- CCTK_REAL const PDstandard2nd22gzz = PDstandard2nd22(&gzz[index]);
- CCTK_REAL const PDstandard2nd12gzz = PDstandard2nd12(&gzz[index]);
- CCTK_REAL const PDstandard2nd2kxx = PDstandard2nd2(&kxx[index]);
- CCTK_REAL const PDstandard2nd3kxx = PDstandard2nd3(&kxx[index]);
- CCTK_REAL const PDstandard2nd1kxy = PDstandard2nd1(&kxy[index]);
- CCTK_REAL const PDstandard2nd2kxy = PDstandard2nd2(&kxy[index]);
- CCTK_REAL const PDstandard2nd3kxy = PDstandard2nd3(&kxy[index]);
- CCTK_REAL const PDstandard2nd1kxz = PDstandard2nd1(&kxz[index]);
- CCTK_REAL const PDstandard2nd2kxz = PDstandard2nd2(&kxz[index]);
- CCTK_REAL const PDstandard2nd3kxz = PDstandard2nd3(&kxz[index]);
- CCTK_REAL const PDstandard2nd1kyy = PDstandard2nd1(&kyy[index]);
- CCTK_REAL const PDstandard2nd3kyy = PDstandard2nd3(&kyy[index]);
- CCTK_REAL const PDstandard2nd1kyz = PDstandard2nd1(&kyz[index]);
- CCTK_REAL const PDstandard2nd2kyz = PDstandard2nd2(&kyz[index]);
- CCTK_REAL const PDstandard2nd3kyz = PDstandard2nd3(&kyz[index]);
- CCTK_REAL const PDstandard2nd1kzz = PDstandard2nd1(&kzz[index]);
- CCTK_REAL const PDstandard2nd2kzz = PDstandard2nd2(&kzz[index]);
+ CCTK_REAL PDstandard2nd1gxx;
+ CCTK_REAL PDstandard2nd2gxx;
+ CCTK_REAL PDstandard2nd3gxx;
+ CCTK_REAL PDstandard2nd22gxx;
+ CCTK_REAL PDstandard2nd33gxx;
+ CCTK_REAL PDstandard2nd23gxx;
+ CCTK_REAL PDstandard2nd1gxy;
+ CCTK_REAL PDstandard2nd2gxy;
+ CCTK_REAL PDstandard2nd3gxy;
+ CCTK_REAL PDstandard2nd33gxy;
+ CCTK_REAL PDstandard2nd12gxy;
+ CCTK_REAL PDstandard2nd13gxy;
+ CCTK_REAL PDstandard2nd23gxy;
+ CCTK_REAL PDstandard2nd1gxz;
+ CCTK_REAL PDstandard2nd2gxz;
+ CCTK_REAL PDstandard2nd3gxz;
+ CCTK_REAL PDstandard2nd22gxz;
+ CCTK_REAL PDstandard2nd12gxz;
+ CCTK_REAL PDstandard2nd13gxz;
+ CCTK_REAL PDstandard2nd23gxz;
+ CCTK_REAL PDstandard2nd1gyy;
+ CCTK_REAL PDstandard2nd2gyy;
+ CCTK_REAL PDstandard2nd3gyy;
+ CCTK_REAL PDstandard2nd11gyy;
+ CCTK_REAL PDstandard2nd33gyy;
+ CCTK_REAL PDstandard2nd13gyy;
+ CCTK_REAL PDstandard2nd1gyz;
+ CCTK_REAL PDstandard2nd2gyz;
+ CCTK_REAL PDstandard2nd3gyz;
+ CCTK_REAL PDstandard2nd11gyz;
+ CCTK_REAL PDstandard2nd12gyz;
+ CCTK_REAL PDstandard2nd13gyz;
+ CCTK_REAL PDstandard2nd23gyz;
+ CCTK_REAL PDstandard2nd1gzz;
+ CCTK_REAL PDstandard2nd2gzz;
+ CCTK_REAL PDstandard2nd3gzz;
+ CCTK_REAL PDstandard2nd11gzz;
+ CCTK_REAL PDstandard2nd22gzz;
+ CCTK_REAL PDstandard2nd12gzz;
+ CCTK_REAL PDstandard2nd2kxx;
+ CCTK_REAL PDstandard2nd3kxx;
+ CCTK_REAL PDstandard2nd1kxy;
+ CCTK_REAL PDstandard2nd2kxy;
+ CCTK_REAL PDstandard2nd3kxy;
+ CCTK_REAL PDstandard2nd1kxz;
+ CCTK_REAL PDstandard2nd2kxz;
+ CCTK_REAL PDstandard2nd3kxz;
+ CCTK_REAL PDstandard2nd1kyy;
+ CCTK_REAL PDstandard2nd3kyy;
+ CCTK_REAL PDstandard2nd1kyz;
+ CCTK_REAL PDstandard2nd2kyz;
+ CCTK_REAL PDstandard2nd3kyz;
+ CCTK_REAL PDstandard2nd1kzz;
+ CCTK_REAL PDstandard2nd2kzz;
+
+ switch(fdOrder)
+ {
+ case 2:
+ PDstandard2nd1gxx = PDstandard2nd1(&gxx[index]);
+ PDstandard2nd2gxx = PDstandard2nd2(&gxx[index]);
+ PDstandard2nd3gxx = PDstandard2nd3(&gxx[index]);
+ PDstandard2nd22gxx = PDstandard2nd22(&gxx[index]);
+ PDstandard2nd33gxx = PDstandard2nd33(&gxx[index]);
+ PDstandard2nd23gxx = PDstandard2nd23(&gxx[index]);
+ PDstandard2nd1gxy = PDstandard2nd1(&gxy[index]);
+ PDstandard2nd2gxy = PDstandard2nd2(&gxy[index]);
+ PDstandard2nd3gxy = PDstandard2nd3(&gxy[index]);
+ PDstandard2nd33gxy = PDstandard2nd33(&gxy[index]);
+ PDstandard2nd12gxy = PDstandard2nd12(&gxy[index]);
+ PDstandard2nd13gxy = PDstandard2nd13(&gxy[index]);
+ PDstandard2nd23gxy = PDstandard2nd23(&gxy[index]);
+ PDstandard2nd1gxz = PDstandard2nd1(&gxz[index]);
+ PDstandard2nd2gxz = PDstandard2nd2(&gxz[index]);
+ PDstandard2nd3gxz = PDstandard2nd3(&gxz[index]);
+ PDstandard2nd22gxz = PDstandard2nd22(&gxz[index]);
+ PDstandard2nd12gxz = PDstandard2nd12(&gxz[index]);
+ PDstandard2nd13gxz = PDstandard2nd13(&gxz[index]);
+ PDstandard2nd23gxz = PDstandard2nd23(&gxz[index]);
+ PDstandard2nd1gyy = PDstandard2nd1(&gyy[index]);
+ PDstandard2nd2gyy = PDstandard2nd2(&gyy[index]);
+ PDstandard2nd3gyy = PDstandard2nd3(&gyy[index]);
+ PDstandard2nd11gyy = PDstandard2nd11(&gyy[index]);
+ PDstandard2nd33gyy = PDstandard2nd33(&gyy[index]);
+ PDstandard2nd13gyy = PDstandard2nd13(&gyy[index]);
+ PDstandard2nd1gyz = PDstandard2nd1(&gyz[index]);
+ PDstandard2nd2gyz = PDstandard2nd2(&gyz[index]);
+ PDstandard2nd3gyz = PDstandard2nd3(&gyz[index]);
+ PDstandard2nd11gyz = PDstandard2nd11(&gyz[index]);
+ PDstandard2nd12gyz = PDstandard2nd12(&gyz[index]);
+ PDstandard2nd13gyz = PDstandard2nd13(&gyz[index]);
+ PDstandard2nd23gyz = PDstandard2nd23(&gyz[index]);
+ PDstandard2nd1gzz = PDstandard2nd1(&gzz[index]);
+ PDstandard2nd2gzz = PDstandard2nd2(&gzz[index]);
+ PDstandard2nd3gzz = PDstandard2nd3(&gzz[index]);
+ PDstandard2nd11gzz = PDstandard2nd11(&gzz[index]);
+ PDstandard2nd22gzz = PDstandard2nd22(&gzz[index]);
+ PDstandard2nd12gzz = PDstandard2nd12(&gzz[index]);
+ PDstandard2nd2kxx = PDstandard2nd2(&kxx[index]);
+ PDstandard2nd3kxx = PDstandard2nd3(&kxx[index]);
+ PDstandard2nd1kxy = PDstandard2nd1(&kxy[index]);
+ PDstandard2nd2kxy = PDstandard2nd2(&kxy[index]);
+ PDstandard2nd3kxy = PDstandard2nd3(&kxy[index]);
+ PDstandard2nd1kxz = PDstandard2nd1(&kxz[index]);
+ PDstandard2nd2kxz = PDstandard2nd2(&kxz[index]);
+ PDstandard2nd3kxz = PDstandard2nd3(&kxz[index]);
+ PDstandard2nd1kyy = PDstandard2nd1(&kyy[index]);
+ PDstandard2nd3kyy = PDstandard2nd3(&kyy[index]);
+ PDstandard2nd1kyz = PDstandard2nd1(&kyz[index]);
+ PDstandard2nd2kyz = PDstandard2nd2(&kyz[index]);
+ PDstandard2nd3kyz = PDstandard2nd3(&kyz[index]);
+ PDstandard2nd1kzz = PDstandard2nd1(&kzz[index]);
+ PDstandard2nd2kzz = PDstandard2nd2(&kzz[index]);
+ break;
+
+ case 4:
+ PDstandard2nd1gxx = PDstandard2nd1(&gxx[index]);
+ PDstandard2nd2gxx = PDstandard2nd2(&gxx[index]);
+ PDstandard2nd3gxx = PDstandard2nd3(&gxx[index]);
+ PDstandard2nd22gxx = PDstandard2nd22(&gxx[index]);
+ PDstandard2nd33gxx = PDstandard2nd33(&gxx[index]);
+ PDstandard2nd23gxx = PDstandard2nd23(&gxx[index]);
+ PDstandard2nd1gxy = PDstandard2nd1(&gxy[index]);
+ PDstandard2nd2gxy = PDstandard2nd2(&gxy[index]);
+ PDstandard2nd3gxy = PDstandard2nd3(&gxy[index]);
+ PDstandard2nd33gxy = PDstandard2nd33(&gxy[index]);
+ PDstandard2nd12gxy = PDstandard2nd12(&gxy[index]);
+ PDstandard2nd13gxy = PDstandard2nd13(&gxy[index]);
+ PDstandard2nd23gxy = PDstandard2nd23(&gxy[index]);
+ PDstandard2nd1gxz = PDstandard2nd1(&gxz[index]);
+ PDstandard2nd2gxz = PDstandard2nd2(&gxz[index]);
+ PDstandard2nd3gxz = PDstandard2nd3(&gxz[index]);
+ PDstandard2nd22gxz = PDstandard2nd22(&gxz[index]);
+ PDstandard2nd12gxz = PDstandard2nd12(&gxz[index]);
+ PDstandard2nd13gxz = PDstandard2nd13(&gxz[index]);
+ PDstandard2nd23gxz = PDstandard2nd23(&gxz[index]);
+ PDstandard2nd1gyy = PDstandard2nd1(&gyy[index]);
+ PDstandard2nd2gyy = PDstandard2nd2(&gyy[index]);
+ PDstandard2nd3gyy = PDstandard2nd3(&gyy[index]);
+ PDstandard2nd11gyy = PDstandard2nd11(&gyy[index]);
+ PDstandard2nd33gyy = PDstandard2nd33(&gyy[index]);
+ PDstandard2nd13gyy = PDstandard2nd13(&gyy[index]);
+ PDstandard2nd1gyz = PDstandard2nd1(&gyz[index]);
+ PDstandard2nd2gyz = PDstandard2nd2(&gyz[index]);
+ PDstandard2nd3gyz = PDstandard2nd3(&gyz[index]);
+ PDstandard2nd11gyz = PDstandard2nd11(&gyz[index]);
+ PDstandard2nd12gyz = PDstandard2nd12(&gyz[index]);
+ PDstandard2nd13gyz = PDstandard2nd13(&gyz[index]);
+ PDstandard2nd23gyz = PDstandard2nd23(&gyz[index]);
+ PDstandard2nd1gzz = PDstandard2nd1(&gzz[index]);
+ PDstandard2nd2gzz = PDstandard2nd2(&gzz[index]);
+ PDstandard2nd3gzz = PDstandard2nd3(&gzz[index]);
+ PDstandard2nd11gzz = PDstandard2nd11(&gzz[index]);
+ PDstandard2nd22gzz = PDstandard2nd22(&gzz[index]);
+ PDstandard2nd12gzz = PDstandard2nd12(&gzz[index]);
+ PDstandard2nd2kxx = PDstandard2nd2(&kxx[index]);
+ PDstandard2nd3kxx = PDstandard2nd3(&kxx[index]);
+ PDstandard2nd1kxy = PDstandard2nd1(&kxy[index]);
+ PDstandard2nd2kxy = PDstandard2nd2(&kxy[index]);
+ PDstandard2nd3kxy = PDstandard2nd3(&kxy[index]);
+ PDstandard2nd1kxz = PDstandard2nd1(&kxz[index]);
+ PDstandard2nd2kxz = PDstandard2nd2(&kxz[index]);
+ PDstandard2nd3kxz = PDstandard2nd3(&kxz[index]);
+ PDstandard2nd1kyy = PDstandard2nd1(&kyy[index]);
+ PDstandard2nd3kyy = PDstandard2nd3(&kyy[index]);
+ PDstandard2nd1kyz = PDstandard2nd1(&kyz[index]);
+ PDstandard2nd2kyz = PDstandard2nd2(&kyz[index]);
+ PDstandard2nd3kyz = PDstandard2nd3(&kyz[index]);
+ PDstandard2nd1kzz = PDstandard2nd1(&kzz[index]);
+ PDstandard2nd2kzz = PDstandard2nd2(&kzz[index]);
+ break;
+
+ case 6:
+ PDstandard2nd1gxx = PDstandard2nd1(&gxx[index]);
+ PDstandard2nd2gxx = PDstandard2nd2(&gxx[index]);
+ PDstandard2nd3gxx = PDstandard2nd3(&gxx[index]);
+ PDstandard2nd22gxx = PDstandard2nd22(&gxx[index]);
+ PDstandard2nd33gxx = PDstandard2nd33(&gxx[index]);
+ PDstandard2nd23gxx = PDstandard2nd23(&gxx[index]);
+ PDstandard2nd1gxy = PDstandard2nd1(&gxy[index]);
+ PDstandard2nd2gxy = PDstandard2nd2(&gxy[index]);
+ PDstandard2nd3gxy = PDstandard2nd3(&gxy[index]);
+ PDstandard2nd33gxy = PDstandard2nd33(&gxy[index]);
+ PDstandard2nd12gxy = PDstandard2nd12(&gxy[index]);
+ PDstandard2nd13gxy = PDstandard2nd13(&gxy[index]);
+ PDstandard2nd23gxy = PDstandard2nd23(&gxy[index]);
+ PDstandard2nd1gxz = PDstandard2nd1(&gxz[index]);
+ PDstandard2nd2gxz = PDstandard2nd2(&gxz[index]);
+ PDstandard2nd3gxz = PDstandard2nd3(&gxz[index]);
+ PDstandard2nd22gxz = PDstandard2nd22(&gxz[index]);
+ PDstandard2nd12gxz = PDstandard2nd12(&gxz[index]);
+ PDstandard2nd13gxz = PDstandard2nd13(&gxz[index]);
+ PDstandard2nd23gxz = PDstandard2nd23(&gxz[index]);
+ PDstandard2nd1gyy = PDstandard2nd1(&gyy[index]);
+ PDstandard2nd2gyy = PDstandard2nd2(&gyy[index]);
+ PDstandard2nd3gyy = PDstandard2nd3(&gyy[index]);
+ PDstandard2nd11gyy = PDstandard2nd11(&gyy[index]);
+ PDstandard2nd33gyy = PDstandard2nd33(&gyy[index]);
+ PDstandard2nd13gyy = PDstandard2nd13(&gyy[index]);
+ PDstandard2nd1gyz = PDstandard2nd1(&gyz[index]);
+ PDstandard2nd2gyz = PDstandard2nd2(&gyz[index]);
+ PDstandard2nd3gyz = PDstandard2nd3(&gyz[index]);
+ PDstandard2nd11gyz = PDstandard2nd11(&gyz[index]);
+ PDstandard2nd12gyz = PDstandard2nd12(&gyz[index]);
+ PDstandard2nd13gyz = PDstandard2nd13(&gyz[index]);
+ PDstandard2nd23gyz = PDstandard2nd23(&gyz[index]);
+ PDstandard2nd1gzz = PDstandard2nd1(&gzz[index]);
+ PDstandard2nd2gzz = PDstandard2nd2(&gzz[index]);
+ PDstandard2nd3gzz = PDstandard2nd3(&gzz[index]);
+ PDstandard2nd11gzz = PDstandard2nd11(&gzz[index]);
+ PDstandard2nd22gzz = PDstandard2nd22(&gzz[index]);
+ PDstandard2nd12gzz = PDstandard2nd12(&gzz[index]);
+ PDstandard2nd2kxx = PDstandard2nd2(&kxx[index]);
+ PDstandard2nd3kxx = PDstandard2nd3(&kxx[index]);
+ PDstandard2nd1kxy = PDstandard2nd1(&kxy[index]);
+ PDstandard2nd2kxy = PDstandard2nd2(&kxy[index]);
+ PDstandard2nd3kxy = PDstandard2nd3(&kxy[index]);
+ PDstandard2nd1kxz = PDstandard2nd1(&kxz[index]);
+ PDstandard2nd2kxz = PDstandard2nd2(&kxz[index]);
+ PDstandard2nd3kxz = PDstandard2nd3(&kxz[index]);
+ PDstandard2nd1kyy = PDstandard2nd1(&kyy[index]);
+ PDstandard2nd3kyy = PDstandard2nd3(&kyy[index]);
+ PDstandard2nd1kyz = PDstandard2nd1(&kyz[index]);
+ PDstandard2nd2kyz = PDstandard2nd2(&kyz[index]);
+ PDstandard2nd3kyz = PDstandard2nd3(&kyz[index]);
+ PDstandard2nd1kzz = PDstandard2nd1(&kzz[index]);
+ PDstandard2nd2kzz = PDstandard2nd2(&kzz[index]);
+ break;
+
+ case 8:
+ PDstandard2nd1gxx = PDstandard2nd1(&gxx[index]);
+ PDstandard2nd2gxx = PDstandard2nd2(&gxx[index]);
+ PDstandard2nd3gxx = PDstandard2nd3(&gxx[index]);
+ PDstandard2nd22gxx = PDstandard2nd22(&gxx[index]);
+ PDstandard2nd33gxx = PDstandard2nd33(&gxx[index]);
+ PDstandard2nd23gxx = PDstandard2nd23(&gxx[index]);
+ PDstandard2nd1gxy = PDstandard2nd1(&gxy[index]);
+ PDstandard2nd2gxy = PDstandard2nd2(&gxy[index]);
+ PDstandard2nd3gxy = PDstandard2nd3(&gxy[index]);
+ PDstandard2nd33gxy = PDstandard2nd33(&gxy[index]);
+ PDstandard2nd12gxy = PDstandard2nd12(&gxy[index]);
+ PDstandard2nd13gxy = PDstandard2nd13(&gxy[index]);
+ PDstandard2nd23gxy = PDstandard2nd23(&gxy[index]);
+ PDstandard2nd1gxz = PDstandard2nd1(&gxz[index]);
+ PDstandard2nd2gxz = PDstandard2nd2(&gxz[index]);
+ PDstandard2nd3gxz = PDstandard2nd3(&gxz[index]);
+ PDstandard2nd22gxz = PDstandard2nd22(&gxz[index]);
+ PDstandard2nd12gxz = PDstandard2nd12(&gxz[index]);
+ PDstandard2nd13gxz = PDstandard2nd13(&gxz[index]);
+ PDstandard2nd23gxz = PDstandard2nd23(&gxz[index]);
+ PDstandard2nd1gyy = PDstandard2nd1(&gyy[index]);
+ PDstandard2nd2gyy = PDstandard2nd2(&gyy[index]);
+ PDstandard2nd3gyy = PDstandard2nd3(&gyy[index]);
+ PDstandard2nd11gyy = PDstandard2nd11(&gyy[index]);
+ PDstandard2nd33gyy = PDstandard2nd33(&gyy[index]);
+ PDstandard2nd13gyy = PDstandard2nd13(&gyy[index]);
+ PDstandard2nd1gyz = PDstandard2nd1(&gyz[index]);
+ PDstandard2nd2gyz = PDstandard2nd2(&gyz[index]);
+ PDstandard2nd3gyz = PDstandard2nd3(&gyz[index]);
+ PDstandard2nd11gyz = PDstandard2nd11(&gyz[index]);
+ PDstandard2nd12gyz = PDstandard2nd12(&gyz[index]);
+ PDstandard2nd13gyz = PDstandard2nd13(&gyz[index]);
+ PDstandard2nd23gyz = PDstandard2nd23(&gyz[index]);
+ PDstandard2nd1gzz = PDstandard2nd1(&gzz[index]);
+ PDstandard2nd2gzz = PDstandard2nd2(&gzz[index]);
+ PDstandard2nd3gzz = PDstandard2nd3(&gzz[index]);
+ PDstandard2nd11gzz = PDstandard2nd11(&gzz[index]);
+ PDstandard2nd22gzz = PDstandard2nd22(&gzz[index]);
+ PDstandard2nd12gzz = PDstandard2nd12(&gzz[index]);
+ PDstandard2nd2kxx = PDstandard2nd2(&kxx[index]);
+ PDstandard2nd3kxx = PDstandard2nd3(&kxx[index]);
+ PDstandard2nd1kxy = PDstandard2nd1(&kxy[index]);
+ PDstandard2nd2kxy = PDstandard2nd2(&kxy[index]);
+ PDstandard2nd3kxy = PDstandard2nd3(&kxy[index]);
+ PDstandard2nd1kxz = PDstandard2nd1(&kxz[index]);
+ PDstandard2nd2kxz = PDstandard2nd2(&kxz[index]);
+ PDstandard2nd3kxz = PDstandard2nd3(&kxz[index]);
+ PDstandard2nd1kyy = PDstandard2nd1(&kyy[index]);
+ PDstandard2nd3kyy = PDstandard2nd3(&kyy[index]);
+ PDstandard2nd1kyz = PDstandard2nd1(&kyz[index]);
+ PDstandard2nd2kyz = PDstandard2nd2(&kyz[index]);
+ PDstandard2nd3kyz = PDstandard2nd3(&kyz[index]);
+ PDstandard2nd1kzz = PDstandard2nd1(&kzz[index]);
+ PDstandard2nd2kzz = PDstandard2nd2(&kzz[index]);
+ break;
+ }
/* Calculate temporaries and grid functions */
CCTK_REAL detg = 2*gxyL*gxzL*gyzL + gzzL*(gxxL*gyyL - SQR(gxyL)) -