diff options
author | Erik Schnetter <eschnett@redshift.lan> | 2007-11-04 16:02:46 -0600 |
---|---|---|
committer | Erik Schnetter <eschnett@redshift.lan> | 2007-11-04 16:02:46 -0600 |
commit | 257a60a12cd1dfc1c7d46e24b06ba2f320bc426e (patch) | |
tree | e2ccac629c4e77df3a0a816fedb862f647d94284 /ML_ADM/src/ML_ADM_RHS.c | |
parent | a48e299f483c7edc4de972a7ecdce4bac9a501f2 (diff) |
Add ML_ prefix.
Add README and COPYRIGHT statements.
Diffstat (limited to 'ML_ADM/src/ML_ADM_RHS.c')
-rw-r--r-- | ML_ADM/src/ML_ADM_RHS.c | 536 |
1 files changed, 536 insertions, 0 deletions
diff --git a/ML_ADM/src/ML_ADM_RHS.c b/ML_ADM/src/ML_ADM_RHS.c new file mode 100644 index 0000000..46fecca --- /dev/null +++ b/ML_ADM/src/ML_ADM_RHS.c @@ -0,0 +1,536 @@ +/* File produced by user eschnett */ +/* Produced with Mathematica Version 6.0 for Mac OS X x86 (32-bit) (April 20, 2007) */ + +/* Mathematica script written by Ian Hinder and Sascha Husa */ + +#define KRANC_C + +#include <math.h> +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "loopcontrol.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define INV(x) ((1.0) / (x)) +#define SQR(x) ((x) * (x)) +#define CUB(x) ((x) * (x) * (x)) +#define QAD(x) ((x) * (x) * (x) * (x)) + +void ML_ADM_RHS_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REAL normal[3], CCTK_REAL tangentA[3], CCTK_REAL tangentB[3], CCTK_INT min[3], CCTK_INT max[3], CCTK_INT n_subblock_gfs, CCTK_REAL *subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS + DECLARE_CCTK_PARAMETERS + + + /* Declare finite differencing variables */ + CCTK_REAL dx = INITVALUE, dy = INITVALUE, dz = INITVALUE; + CCTK_REAL dxi = INITVALUE, dyi = INITVALUE, dzi = INITVALUE; + CCTK_REAL khalf = INITVALUE, kthird = INITVALUE, ktwothird = INITVALUE, kfourthird = INITVALUE, keightthird = INITVALUE; + CCTK_REAL hdxi = INITVALUE, hdyi = INITVALUE, hdzi = INITVALUE; + + + /* Declare predefined quantities */ + CCTK_REAL p1o12dx = INITVALUE; + CCTK_REAL p1o12dy = INITVALUE; + CCTK_REAL p1o12dz = INITVALUE; + CCTK_REAL p1o144dxdy = INITVALUE; + CCTK_REAL p1o144dxdz = INITVALUE; + CCTK_REAL p1o144dydz = INITVALUE; + CCTK_REAL pm1o12dx2 = INITVALUE; + CCTK_REAL pm1o12dy2 = INITVALUE; + CCTK_REAL pm1o12dz2 = INITVALUE; + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering ML_ADM_RHS_Body"); + } + + if (cctk_iteration % ML_ADM_RHS_calc_every != ML_ADM_RHS_calc_offset) + { + return; + } + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + dx = CCTK_DELTA_SPACE(0); + dy = CCTK_DELTA_SPACE(1); + dz = CCTK_DELTA_SPACE(2); + dxi = 1.0 / dx; + dyi = 1.0 / dy; + dzi = 1.0 / dz; + khalf = 0.5; + kthird = 1/3.0; + ktwothird = 2.0/3.0; + kfourthird = 4.0/3.0; + keightthird = 8.0/3.0; + hdxi = 0.5 * dxi; + hdyi = 0.5 * dyi; + hdzi = 0.5 * dzi; + + /* Initialize predefined quantities */ + p1o12dx = INV(dx)/12.; + p1o12dy = INV(dy)/12.; + p1o12dz = INV(dz)/12.; + p1o144dxdy = (INV(dx)*INV(dy))/144.; + p1o144dxdz = (INV(dx)*INV(dz))/144.; + p1o144dydz = (INV(dy)*INV(dz))/144.; + pm1o12dx2 = -pow(dx,-2)/12.; + pm1o12dy2 = -pow(dy,-2)/12.; + pm1o12dz2 = -pow(dz,-2)/12.; + + /* Loop over the grid points */ + LC_LOOP3 (somename, + i,j,k, min[0],min[1],min[2], max[0],max[1],max[2], + max[0]-min[0],max[1]-min[1],max[2]-min[2]) + { + int index = INITVALUE; + int subblock_index = INITVALUE; + index = CCTK_GFINDEX3D(cctkGH,i,j,k); + subblock_index = i - min[0] + (max[0] - min[0]) * (j - min[1] + (max[1]-min[1]) * (k - min[2])); + + /* Declare shorthands */ + CCTK_REAL detg = INITVALUE; + CCTK_REAL G111 = INITVALUE, G121 = INITVALUE, G122 = INITVALUE, G131 = INITVALUE, G132 = INITVALUE, G133 = INITVALUE; + CCTK_REAL G211 = INITVALUE, G221 = INITVALUE, G222 = INITVALUE, G231 = INITVALUE, G232 = INITVALUE, G233 = INITVALUE; + CCTK_REAL G311 = INITVALUE, G321 = INITVALUE, G322 = INITVALUE, G331 = INITVALUE, G332 = INITVALUE, G333 = INITVALUE; + CCTK_REAL gu11 = INITVALUE, gu12 = INITVALUE, gu13 = INITVALUE, gu22 = INITVALUE, gu23 = INITVALUE, gu33 = INITVALUE; + CCTK_REAL Km11 = INITVALUE, Km12 = INITVALUE, Km13 = INITVALUE, Km21 = INITVALUE, Km22 = INITVALUE, Km23 = INITVALUE; + CCTK_REAL Km31 = INITVALUE, Km32 = INITVALUE, Km33 = INITVALUE; + CCTK_REAL R11 = INITVALUE, R21 = INITVALUE, R22 = INITVALUE, R31 = INITVALUE, R32 = INITVALUE, R33 = INITVALUE; + CCTK_REAL trK = INITVALUE; + + /* Declare local copies of grid functions */ + CCTK_REAL alphaL = INITVALUE, alpharhsL = INITVALUE; + CCTK_REAL beta1L = INITVALUE, beta1rhsL = INITVALUE, beta2L = INITVALUE, beta2rhsL = INITVALUE, beta3L = INITVALUE, beta3rhsL = INITVALUE; + CCTK_REAL g11L = INITVALUE, g11rhsL = INITVALUE, g21L = INITVALUE, g21rhsL = INITVALUE, g22L = INITVALUE, g22rhsL = INITVALUE; + CCTK_REAL g31L = INITVALUE, g31rhsL = INITVALUE, g32L = INITVALUE, g32rhsL = INITVALUE, g33L = INITVALUE, g33rhsL = INITVALUE; + CCTK_REAL K11L = INITVALUE, K11rhsL = INITVALUE, K21L = INITVALUE, K21rhsL = INITVALUE, K22L = INITVALUE, K22rhsL = INITVALUE; + CCTK_REAL K31L = INITVALUE, K31rhsL = INITVALUE, K32L = INITVALUE, K32rhsL = INITVALUE, K33L = INITVALUE, K33rhsL = INITVALUE; + /* Declare precomputed derivatives*/ + + /* Declare derivatives */ + CCTK_REAL PDstandard4th1alpha = INITVALUE; + CCTK_REAL PDstandard4th2alpha = INITVALUE; + CCTK_REAL PDstandard4th3alpha = INITVALUE; + CCTK_REAL PDstandard4th11alpha = INITVALUE; + CCTK_REAL PDstandard4th22alpha = INITVALUE; + CCTK_REAL PDstandard4th33alpha = INITVALUE; + CCTK_REAL PDstandard4th12alpha = INITVALUE; + CCTK_REAL PDstandard4th13alpha = INITVALUE; + CCTK_REAL PDstandard4th23alpha = INITVALUE; + CCTK_REAL PDstandard4th1beta1 = INITVALUE; + CCTK_REAL PDstandard4th2beta1 = INITVALUE; + CCTK_REAL PDstandard4th3beta1 = INITVALUE; + CCTK_REAL PDstandard4th1beta2 = INITVALUE; + CCTK_REAL PDstandard4th2beta2 = INITVALUE; + CCTK_REAL PDstandard4th3beta2 = INITVALUE; + CCTK_REAL PDstandard4th1beta3 = INITVALUE; + CCTK_REAL PDstandard4th2beta3 = INITVALUE; + CCTK_REAL PDstandard4th3beta3 = INITVALUE; + CCTK_REAL PDstandard4th1g11 = INITVALUE; + CCTK_REAL PDstandard4th2g11 = INITVALUE; + CCTK_REAL PDstandard4th3g11 = INITVALUE; + CCTK_REAL PDstandard4th22g11 = INITVALUE; + CCTK_REAL PDstandard4th33g11 = INITVALUE; + CCTK_REAL PDstandard4th12g11 = INITVALUE; + CCTK_REAL PDstandard4th13g11 = INITVALUE; + CCTK_REAL PDstandard4th21g11 = INITVALUE; + CCTK_REAL PDstandard4th23g11 = INITVALUE; + CCTK_REAL PDstandard4th31g11 = INITVALUE; + CCTK_REAL PDstandard4th32g11 = INITVALUE; + CCTK_REAL PDstandard4th1g21 = INITVALUE; + CCTK_REAL PDstandard4th2g21 = INITVALUE; + CCTK_REAL PDstandard4th3g21 = INITVALUE; + CCTK_REAL PDstandard4th33g21 = INITVALUE; + CCTK_REAL PDstandard4th12g21 = INITVALUE; + CCTK_REAL PDstandard4th13g21 = INITVALUE; + CCTK_REAL PDstandard4th21g21 = INITVALUE; + CCTK_REAL PDstandard4th23g21 = INITVALUE; + CCTK_REAL PDstandard4th31g21 = INITVALUE; + CCTK_REAL PDstandard4th32g21 = INITVALUE; + CCTK_REAL PDstandard4th1g22 = INITVALUE; + CCTK_REAL PDstandard4th2g22 = INITVALUE; + CCTK_REAL PDstandard4th3g22 = INITVALUE; + CCTK_REAL PDstandard4th11g22 = INITVALUE; + CCTK_REAL PDstandard4th33g22 = INITVALUE; + CCTK_REAL PDstandard4th12g22 = INITVALUE; + CCTK_REAL PDstandard4th13g22 = INITVALUE; + CCTK_REAL PDstandard4th21g22 = INITVALUE; + CCTK_REAL PDstandard4th23g22 = INITVALUE; + CCTK_REAL PDstandard4th31g22 = INITVALUE; + CCTK_REAL PDstandard4th32g22 = INITVALUE; + CCTK_REAL PDstandard4th1g31 = INITVALUE; + CCTK_REAL PDstandard4th2g31 = INITVALUE; + CCTK_REAL PDstandard4th3g31 = INITVALUE; + CCTK_REAL PDstandard4th22g31 = INITVALUE; + CCTK_REAL PDstandard4th12g31 = INITVALUE; + CCTK_REAL PDstandard4th13g31 = INITVALUE; + CCTK_REAL PDstandard4th21g31 = INITVALUE; + CCTK_REAL PDstandard4th23g31 = INITVALUE; + CCTK_REAL PDstandard4th31g31 = INITVALUE; + CCTK_REAL PDstandard4th32g31 = INITVALUE; + CCTK_REAL PDstandard4th1g32 = INITVALUE; + CCTK_REAL PDstandard4th2g32 = INITVALUE; + CCTK_REAL PDstandard4th3g32 = INITVALUE; + CCTK_REAL PDstandard4th11g32 = INITVALUE; + CCTK_REAL PDstandard4th12g32 = INITVALUE; + CCTK_REAL PDstandard4th13g32 = INITVALUE; + CCTK_REAL PDstandard4th21g32 = INITVALUE; + CCTK_REAL PDstandard4th23g32 = INITVALUE; + CCTK_REAL PDstandard4th31g32 = INITVALUE; + CCTK_REAL PDstandard4th32g32 = INITVALUE; + CCTK_REAL PDstandard4th1g33 = INITVALUE; + CCTK_REAL PDstandard4th2g33 = INITVALUE; + CCTK_REAL PDstandard4th3g33 = INITVALUE; + CCTK_REAL PDstandard4th11g33 = INITVALUE; + CCTK_REAL PDstandard4th22g33 = INITVALUE; + CCTK_REAL PDstandard4th12g33 = INITVALUE; + CCTK_REAL PDstandard4th13g33 = INITVALUE; + CCTK_REAL PDstandard4th21g33 = INITVALUE; + CCTK_REAL PDstandard4th23g33 = INITVALUE; + CCTK_REAL PDstandard4th31g33 = INITVALUE; + CCTK_REAL PDstandard4th32g33 = INITVALUE; + CCTK_REAL PDstandard4th1K11 = INITVALUE; + CCTK_REAL PDstandard4th2K11 = INITVALUE; + CCTK_REAL PDstandard4th3K11 = INITVALUE; + CCTK_REAL PDstandard4th1K21 = INITVALUE; + CCTK_REAL PDstandard4th2K21 = INITVALUE; + CCTK_REAL PDstandard4th3K21 = INITVALUE; + CCTK_REAL PDstandard4th1K22 = INITVALUE; + CCTK_REAL PDstandard4th2K22 = INITVALUE; + CCTK_REAL PDstandard4th3K22 = INITVALUE; + CCTK_REAL PDstandard4th1K31 = INITVALUE; + CCTK_REAL PDstandard4th2K31 = INITVALUE; + CCTK_REAL PDstandard4th3K31 = INITVALUE; + CCTK_REAL PDstandard4th1K32 = INITVALUE; + CCTK_REAL PDstandard4th2K32 = INITVALUE; + CCTK_REAL PDstandard4th3K32 = INITVALUE; + CCTK_REAL PDstandard4th1K33 = INITVALUE; + CCTK_REAL PDstandard4th2K33 = INITVALUE; + CCTK_REAL PDstandard4th3K33 = INITVALUE; + + /* Assign local copies of grid functions */ + alphaL = alpha[index]; + beta1L = beta1[index]; + beta2L = beta2[index]; + beta3L = beta3[index]; + g11L = g11[index]; + g21L = g21[index]; + g22L = g22[index]; + g31L = g31[index]; + g32L = g32[index]; + g33L = g33[index]; + K11L = K11[index]; + K21L = K21[index]; + K22L = K22[index]; + K31L = K31[index]; + K32L = K32[index]; + K33L = K33[index]; + + /* Assign local copies of subblock grid functions */ + + /* Include user supplied include files */ + + /* Precompute derivatives (new style) */ + PDstandard4th1alpha = PDstandard4th1(alpha, i, j, k); + PDstandard4th2alpha = PDstandard4th2(alpha, i, j, k); + PDstandard4th3alpha = PDstandard4th3(alpha, i, j, k); + PDstandard4th11alpha = PDstandard4th11(alpha, i, j, k); + PDstandard4th22alpha = PDstandard4th22(alpha, i, j, k); + PDstandard4th33alpha = PDstandard4th33(alpha, i, j, k); + PDstandard4th12alpha = PDstandard4th12(alpha, i, j, k); + PDstandard4th13alpha = PDstandard4th13(alpha, i, j, k); + PDstandard4th23alpha = PDstandard4th23(alpha, i, j, k); + PDstandard4th1beta1 = PDstandard4th1(beta1, i, j, k); + PDstandard4th2beta1 = PDstandard4th2(beta1, i, j, k); + PDstandard4th3beta1 = PDstandard4th3(beta1, i, j, k); + PDstandard4th1beta2 = PDstandard4th1(beta2, i, j, k); + PDstandard4th2beta2 = PDstandard4th2(beta2, i, j, k); + PDstandard4th3beta2 = PDstandard4th3(beta2, i, j, k); + PDstandard4th1beta3 = PDstandard4th1(beta3, i, j, k); + PDstandard4th2beta3 = PDstandard4th2(beta3, i, j, k); + PDstandard4th3beta3 = PDstandard4th3(beta3, i, j, k); + PDstandard4th1g11 = PDstandard4th1(g11, i, j, k); + PDstandard4th2g11 = PDstandard4th2(g11, i, j, k); + PDstandard4th3g11 = PDstandard4th3(g11, i, j, k); + PDstandard4th22g11 = PDstandard4th22(g11, i, j, k); + PDstandard4th33g11 = PDstandard4th33(g11, i, j, k); + PDstandard4th23g11 = PDstandard4th23(g11, i, j, k); + PDstandard4th1g21 = PDstandard4th1(g21, i, j, k); + PDstandard4th2g21 = PDstandard4th2(g21, i, j, k); + PDstandard4th3g21 = PDstandard4th3(g21, i, j, k); + PDstandard4th33g21 = PDstandard4th33(g21, i, j, k); + PDstandard4th12g21 = PDstandard4th12(g21, i, j, k); + PDstandard4th13g21 = PDstandard4th13(g21, i, j, k); + PDstandard4th23g21 = PDstandard4th23(g21, i, j, k); + PDstandard4th1g22 = PDstandard4th1(g22, i, j, k); + PDstandard4th2g22 = PDstandard4th2(g22, i, j, k); + PDstandard4th3g22 = PDstandard4th3(g22, i, j, k); + PDstandard4th11g22 = PDstandard4th11(g22, i, j, k); + PDstandard4th33g22 = PDstandard4th33(g22, i, j, k); + PDstandard4th13g22 = PDstandard4th13(g22, i, j, k); + PDstandard4th1g31 = PDstandard4th1(g31, i, j, k); + PDstandard4th2g31 = PDstandard4th2(g31, i, j, k); + PDstandard4th3g31 = PDstandard4th3(g31, i, j, k); + PDstandard4th22g31 = PDstandard4th22(g31, i, j, k); + PDstandard4th12g31 = PDstandard4th12(g31, i, j, k); + PDstandard4th13g31 = PDstandard4th13(g31, i, j, k); + PDstandard4th23g31 = PDstandard4th23(g31, i, j, k); + PDstandard4th1g32 = PDstandard4th1(g32, i, j, k); + PDstandard4th2g32 = PDstandard4th2(g32, i, j, k); + PDstandard4th3g32 = PDstandard4th3(g32, i, j, k); + PDstandard4th11g32 = PDstandard4th11(g32, i, j, k); + PDstandard4th12g32 = PDstandard4th12(g32, i, j, k); + PDstandard4th13g32 = PDstandard4th13(g32, i, j, k); + PDstandard4th23g32 = PDstandard4th23(g32, i, j, k); + PDstandard4th1g33 = PDstandard4th1(g33, i, j, k); + PDstandard4th2g33 = PDstandard4th2(g33, i, j, k); + PDstandard4th3g33 = PDstandard4th3(g33, i, j, k); + PDstandard4th11g33 = PDstandard4th11(g33, i, j, k); + PDstandard4th22g33 = PDstandard4th22(g33, i, j, k); + PDstandard4th12g33 = PDstandard4th12(g33, i, j, k); + PDstandard4th1K11 = PDstandard4th1(K11, i, j, k); + PDstandard4th2K11 = PDstandard4th2(K11, i, j, k); + PDstandard4th3K11 = PDstandard4th3(K11, i, j, k); + PDstandard4th1K21 = PDstandard4th1(K21, i, j, k); + PDstandard4th2K21 = PDstandard4th2(K21, i, j, k); + PDstandard4th3K21 = PDstandard4th3(K21, i, j, k); + PDstandard4th1K22 = PDstandard4th1(K22, i, j, k); + PDstandard4th2K22 = PDstandard4th2(K22, i, j, k); + PDstandard4th3K22 = PDstandard4th3(K22, i, j, k); + PDstandard4th1K31 = PDstandard4th1(K31, i, j, k); + PDstandard4th2K31 = PDstandard4th2(K31, i, j, k); + PDstandard4th3K31 = PDstandard4th3(K31, i, j, k); + PDstandard4th1K32 = PDstandard4th1(K32, i, j, k); + PDstandard4th2K32 = PDstandard4th2(K32, i, j, k); + PDstandard4th3K32 = PDstandard4th3(K32, i, j, k); + PDstandard4th1K33 = PDstandard4th1(K33, i, j, k); + PDstandard4th2K33 = PDstandard4th2(K33, i, j, k); + PDstandard4th3K33 = PDstandard4th3(K33, i, j, k); + + /* Precompute derivatives (old style) */ + + /* Calculate temporaries and grid functions */ + detg = 2*g21L*g31L*g32L + g33L*(g11L*g22L - SQR(g21L)) - g22L*SQR(g31L) - g11L*SQR(g32L); + + gu11 = INV(detg)*(g22L*g33L - SQR(g32L)); + + gu12 = (g31L*g32L - g21L*g33L)*INV(detg); + + gu13 = (-(g22L*g31L) + g21L*g32L)*INV(detg); + + gu22 = INV(detg)*(g11L*g33L - SQR(g31L)); + + gu23 = (g21L*g31L - g11L*g32L)*INV(detg); + + gu33 = INV(detg)*(g11L*g22L - SQR(g21L)); + + G111 = khalf*(gu11*PDstandard4th1g11 + 2*(gu12*PDstandard4th1g21 + gu13*PDstandard4th1g31) - gu12*PDstandard4th2g11 - + gu13*PDstandard4th3g11); + + G211 = khalf*(gu12*PDstandard4th1g11 + 2*(gu22*PDstandard4th1g21 + gu23*PDstandard4th1g31) - gu22*PDstandard4th2g11 - + gu23*PDstandard4th3g11); + + G311 = khalf*(gu13*PDstandard4th1g11 + 2*(gu23*PDstandard4th1g21 + gu33*PDstandard4th1g31) - gu23*PDstandard4th2g11 - + gu33*PDstandard4th3g11); + + G121 = khalf*(gu12*PDstandard4th1g22 + gu11*PDstandard4th2g11 + + gu13*(PDstandard4th1g32 + PDstandard4th2g31 - PDstandard4th3g21)); + + G221 = khalf*(gu22*PDstandard4th1g22 + gu12*PDstandard4th2g11 + + gu23*(PDstandard4th1g32 + PDstandard4th2g31 - PDstandard4th3g21)); + + G321 = khalf*(gu23*PDstandard4th1g22 + gu13*PDstandard4th2g11 + + gu33*(PDstandard4th1g32 + PDstandard4th2g31 - PDstandard4th3g21)); + + G131 = khalf*(gu13*PDstandard4th1g33 + gu11*PDstandard4th3g11 + + gu12*(PDstandard4th1g32 - PDstandard4th2g31 + PDstandard4th3g21)); + + G231 = khalf*(gu23*PDstandard4th1g33 + gu12*PDstandard4th3g11 + + gu22*(PDstandard4th1g32 - PDstandard4th2g31 + PDstandard4th3g21)); + + G331 = khalf*(gu33*PDstandard4th1g33 + gu13*PDstandard4th3g11 + + gu23*(PDstandard4th1g32 - PDstandard4th2g31 + PDstandard4th3g21)); + + G122 = khalf*(gu11*(-PDstandard4th1g22 + 2*PDstandard4th2g21) + gu12*PDstandard4th2g22 + + gu13*(2*PDstandard4th2g32 - PDstandard4th3g22)); + + G222 = khalf*(gu12*(-PDstandard4th1g22 + 2*PDstandard4th2g21) + gu22*PDstandard4th2g22 + + gu23*(2*PDstandard4th2g32 - PDstandard4th3g22)); + + G322 = khalf*(gu13*(-PDstandard4th1g22 + 2*PDstandard4th2g21) + gu23*PDstandard4th2g22 + + gu33*(2*PDstandard4th2g32 - PDstandard4th3g22)); + + G132 = khalf*(gu13*PDstandard4th2g33 + gu11*(-PDstandard4th1g32 + PDstandard4th2g31 + PDstandard4th3g21) + + gu12*PDstandard4th3g22); + + G232 = khalf*(gu23*PDstandard4th2g33 + gu12*(-PDstandard4th1g32 + PDstandard4th2g31 + PDstandard4th3g21) + + gu22*PDstandard4th3g22); + + G332 = khalf*(gu33*PDstandard4th2g33 + gu13*(-PDstandard4th1g32 + PDstandard4th2g31 + PDstandard4th3g21) + + gu23*PDstandard4th3g22); + + G133 = khalf*(-(gu11*PDstandard4th1g33) - gu12*PDstandard4th2g33 + 2*gu11*PDstandard4th3g31 + + 2*gu12*PDstandard4th3g32 + gu13*PDstandard4th3g33); + + G233 = khalf*(-(gu12*PDstandard4th1g33) - gu22*PDstandard4th2g33 + 2*gu12*PDstandard4th3g31 + + 2*gu22*PDstandard4th3g32 + gu23*PDstandard4th3g33); + + G333 = khalf*(-(gu13*PDstandard4th1g33) - gu23*PDstandard4th2g33 + 2*gu13*PDstandard4th3g31 + + 2*gu23*PDstandard4th3g32 + gu33*PDstandard4th3g33); + + R11 = khalf*(4*G231*G321 + G211*(2*G121 - 2*G222 - 2*G332) + G311*(2*G131 - 2*G333) - gu22*PDstandard4th11g22 - + 2*(G111*G221 + G232*G311 + G111*G331 + gu23*PDstandard4th11g32) - gu33*PDstandard4th11g33 + + 2*gu22*PDstandard4th12g21 + 2*gu23*PDstandard4th12g31 + 2*gu23*PDstandard4th13g21 + 2*gu33*PDstandard4th13g31 - + gu22*PDstandard4th22g11 - 2*gu23*PDstandard4th23g11 - gu33*PDstandard4th33g11 + 2*SQR(G221) + 2*SQR(G331)); + + R21 = khalf*(2*(G122*G211 + G132*G311 + G231*G322 + G331*G332) - + 2*(G121*G221 + G121*G331 + G221*G332 + G321*G333 + gu12*PDstandard4th12g21) - gu23*PDstandard4th12g32 - + gu33*PDstandard4th12g33 + gu13*(PDstandard4th11g32 - PDstandard4th12g31 - PDstandard4th13g21) + + gu23*PDstandard4th13g22 + gu33*PDstandard4th13g32 + gu12*(PDstandard4th11g22 + PDstandard4th22g11) + + gu23*PDstandard4th22g31 + gu13*PDstandard4th23g11 - gu23*PDstandard4th23g21 + gu33*PDstandard4th23g31 - + gu33*PDstandard4th33g21); + + R31 = khalf*(2*(G132*G211 + G221*G232 + G133*G311 + G233*G321) - + 2*(G222*G231 + G232*G331 + G131*(G221 + G331) + gu13*PDstandard4th13g31) + + gu12*(PDstandard4th11g32 - PDstandard4th12g31 - PDstandard4th13g21 + PDstandard4th23g11) + + gu22*(PDstandard4th12g32 - PDstandard4th13g22 - PDstandard4th22g31 + PDstandard4th23g21) + + gu13*(PDstandard4th11g33 + PDstandard4th33g11) + + gu23*(PDstandard4th12g33 - PDstandard4th13g32 - PDstandard4th23g31 + PDstandard4th33g21)); + + R22 = khalf*(4*G132*G321 + G122*(2*G221 - 2*(G111 + G331)) + G322*(2*G232 - 2*G333) - + 2*(G131*G322 + G222*(G121 + G332) + gu13*PDstandard4th13g22) + + gu11*(-PDstandard4th11g22 + 2*PDstandard4th12g21 - PDstandard4th22g11) + + gu13*(-2*PDstandard4th22g31 + 2*(PDstandard4th12g32 + PDstandard4th23g21)) + + gu33*(-PDstandard4th22g33 + 2*PDstandard4th23g32 - PDstandard4th33g22) + 2*(SQR(G121) + SQR(G332))); + + R32 = khalf*(2*(G121*G131 + G122*G231 + G133*G321 + G233*G322) + + gu11*(-PDstandard4th11g32 + PDstandard4th12g31 + PDstandard4th13g21 - PDstandard4th23g11) + + gu12*(-PDstandard4th12g32 + PDstandard4th13g22 + PDstandard4th22g31 - PDstandard4th23g21) - + 2*(G111*G132 + G131*G332 + G232*(G121 + G332) + gu23*PDstandard4th23g32) + + gu13*(PDstandard4th12g33 - PDstandard4th13g32 - PDstandard4th23g31 + PDstandard4th33g21) + + gu23*(PDstandard4th22g33 + PDstandard4th33g22)); + + R33 = khalf*(4*G132*G231 - gu11*PDstandard4th11g33 - + 2*(G111*G133 + G133*G221 + G121*G233 + G222*G233 + G131*G333 + G232*G333 + gu12*PDstandard4th12g33) + + 2*(G133*G331 + G233*G332 + gu11*PDstandard4th13g31) + 2*gu12*PDstandard4th13g32 - gu22*PDstandard4th22g33 + + 2*gu12*PDstandard4th23g31 + 2*gu22*PDstandard4th23g32 - gu11*PDstandard4th33g11 - 2*gu12*PDstandard4th33g21 - + gu22*PDstandard4th33g22 + 2*SQR(G131) + 2*SQR(G232)); + + Km11 = gu11*K11L + gu12*K21L + gu13*K31L; + + Km21 = gu12*K11L + gu22*K21L + gu23*K31L; + + Km31 = gu13*K11L + gu23*K21L + gu33*K31L; + + Km12 = gu11*K21L + gu12*K22L + gu13*K32L; + + Km22 = gu12*K21L + gu22*K22L + gu23*K32L; + + Km32 = gu13*K21L + gu23*K22L + gu33*K32L; + + Km13 = gu11*K31L + gu12*K32L + gu13*K33L; + + Km23 = gu12*K31L + gu22*K32L + gu23*K33L; + + Km33 = gu13*K31L + gu23*K32L + gu33*K33L; + + trK = Km11 + Km22 + Km33; + + g11rhsL = -2*alphaL*K11L + 2*(g11L*PDstandard4th1beta1 + g21L*PDstandard4th1beta2 + g31L*PDstandard4th1beta3) + + beta1L*PDstandard4th1g11 + beta2L*PDstandard4th2g11 + beta3L*PDstandard4th3g11; + + g21rhsL = -2*alphaL*K21L + g22L*PDstandard4th1beta2 + g32L*PDstandard4th1beta3 + beta1L*PDstandard4th1g21 + + g11L*PDstandard4th2beta1 + g21L*(PDstandard4th1beta1 + PDstandard4th2beta2) + g31L*PDstandard4th2beta3 + + beta2L*PDstandard4th2g21 + beta3L*PDstandard4th3g21; + + g31rhsL = -2*alphaL*K31L + g32L*PDstandard4th1beta2 + g33L*PDstandard4th1beta3 + beta1L*PDstandard4th1g31 + + beta2L*PDstandard4th2g31 + g11L*PDstandard4th3beta1 + g21L*PDstandard4th3beta2 + + g31L*(PDstandard4th1beta1 + PDstandard4th3beta3) + beta3L*PDstandard4th3g31; + + g22rhsL = -2*alphaL*K22L + beta1L*PDstandard4th1g22 + + 2*(g21L*PDstandard4th2beta1 + g22L*PDstandard4th2beta2 + g32L*PDstandard4th2beta3) + beta2L*PDstandard4th2g22 + + beta3L*PDstandard4th3g22; + + g32rhsL = -2*alphaL*K32L + beta1L*PDstandard4th1g32 + g31L*PDstandard4th2beta1 + g33L*PDstandard4th2beta3 + + beta2L*PDstandard4th2g32 + g21L*PDstandard4th3beta1 + g22L*PDstandard4th3beta2 + + g32L*(PDstandard4th2beta2 + PDstandard4th3beta3) + beta3L*PDstandard4th3g32; + + g33rhsL = -2*alphaL*K33L + beta1L*PDstandard4th1g33 + beta2L*PDstandard4th2g33 + + 2*(g31L*PDstandard4th3beta1 + g32L*PDstandard4th3beta2 + g33L*PDstandard4th3beta3) + beta3L*PDstandard4th3g33; + + K11rhsL = -PDstandard4th11alpha + G111*PDstandard4th1alpha + + 2*(K11L*PDstandard4th1beta1 + K21L*PDstandard4th1beta2 + K31L*PDstandard4th1beta3) + beta1L*PDstandard4th1K11 + + G211*PDstandard4th2alpha + beta2L*PDstandard4th2K11 + G311*PDstandard4th3alpha + beta3L*PDstandard4th3K11 + + alphaL*(-2*(K11L*Km11 + K21L*Km21 + K31L*Km31) + R11 + K11L*trK); + + K21rhsL = -PDstandard4th12alpha + G121*PDstandard4th1alpha + K22L*PDstandard4th1beta2 + K32L*PDstandard4th1beta3 + + beta1L*PDstandard4th1K21 + G221*PDstandard4th2alpha + K11L*PDstandard4th2beta1 + + K21L*(PDstandard4th1beta1 + PDstandard4th2beta2) + K31L*PDstandard4th2beta3 + beta2L*PDstandard4th2K21 + + G321*PDstandard4th3alpha + beta3L*PDstandard4th3K21 + + alphaL*(-2*(K11L*Km12 + K21L*Km22 + K31L*Km32) + R21 + K21L*trK); + + K31rhsL = -PDstandard4th13alpha + G131*PDstandard4th1alpha + K32L*PDstandard4th1beta2 + K33L*PDstandard4th1beta3 + + beta1L*PDstandard4th1K31 + G231*PDstandard4th2alpha + beta2L*PDstandard4th2K31 + G331*PDstandard4th3alpha + + K11L*PDstandard4th3beta1 + K21L*PDstandard4th3beta2 + K31L*(PDstandard4th1beta1 + PDstandard4th3beta3) + + beta3L*PDstandard4th3K31 + alphaL*(-2*(K11L*Km13 + K21L*Km23 + K31L*Km33) + R31 + K31L*trK); + + K22rhsL = G122*PDstandard4th1alpha + beta1L*PDstandard4th1K22 - PDstandard4th22alpha + G222*PDstandard4th2alpha + + 2*(K21L*PDstandard4th2beta1 + K22L*PDstandard4th2beta2 + K32L*PDstandard4th2beta3) + beta2L*PDstandard4th2K22 + + G322*PDstandard4th3alpha + beta3L*PDstandard4th3K22 + + alphaL*(-2*(K21L*Km12 + K22L*Km22 + K32L*Km32) + R22 + K22L*trK); + + K32rhsL = G132*PDstandard4th1alpha + beta1L*PDstandard4th1K32 - PDstandard4th23alpha + G232*PDstandard4th2alpha + + K31L*PDstandard4th2beta1 + K33L*PDstandard4th2beta3 + beta2L*PDstandard4th2K32 + G332*PDstandard4th3alpha + + K21L*PDstandard4th3beta1 + K22L*PDstandard4th3beta2 + K32L*(PDstandard4th2beta2 + PDstandard4th3beta3) + + beta3L*PDstandard4th3K32 + alphaL*(-2*(K21L*Km13 + K22L*Km23 + K32L*Km33) + R32 + K32L*trK); + + K33rhsL = G133*PDstandard4th1alpha + beta1L*PDstandard4th1K33 + G233*PDstandard4th2alpha + beta2L*PDstandard4th2K33 - + PDstandard4th33alpha + G333*PDstandard4th3alpha + + 2*(K31L*PDstandard4th3beta1 + K32L*PDstandard4th3beta2 + K33L*PDstandard4th3beta3) + beta3L*PDstandard4th3K33 + + alphaL*(-2*(K31L*Km13 + K32L*Km23 + K33L*Km33) + R33 + K33L*trK); + + alpharhsL = 0; + + beta1rhsL = 0; + + beta2rhsL = 0; + + beta3rhsL = 0; + + + /* Copy local copies back to grid functions */ + alpharhs[index] = alpharhsL; + beta1rhs[index] = beta1rhsL; + beta2rhs[index] = beta2rhsL; + beta3rhs[index] = beta3rhsL; + g11rhs[index] = g11rhsL; + g21rhs[index] = g21rhsL; + g22rhs[index] = g22rhsL; + g31rhs[index] = g31rhsL; + g32rhs[index] = g32rhsL; + g33rhs[index] = g33rhsL; + K11rhs[index] = K11rhsL; + K21rhs[index] = K21rhsL; + K22rhs[index] = K22rhsL; + K31rhs[index] = K31rhsL; + K32rhs[index] = K32rhsL; + K33rhs[index] = K33rhsL; + + /* Copy local copies back to subblock grid functions */ + } + LC_ENDLOOP3 (somename); +} + +void ML_ADM_RHS(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS + DECLARE_CCTK_PARAMETERS + + GenericFD_LoopOverEverything(cctkGH, &ML_ADM_RHS_Body); +} |