diff options
author | evans <evans@b1d164ef-f17a-46e7-89d4-021c7118ef4e> | 1999-03-09 21:04:02 +0000 |
---|---|---|
committer | evans <evans@b1d164ef-f17a-46e7-89d4-021c7118ef4e> | 1999-03-09 21:04:02 +0000 |
commit | 0a13cbb3d0f5ebf208d962d374a197c66bd13b1b (patch) | |
tree | 19582fa856a1193d17170ad971353f58e7be36c9 | |
parent | c58897b8676212b9aee16d6d2f80ca2adeb50c6c (diff) |
added the Einstien macros.
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinBase/ADMMacros/trunk@2 b1d164ef-f17a-46e7-89d4-021c7118ef4e
153 files changed, 8689 insertions, 0 deletions
diff --git a/src/macro/CDCDA_declare.h b/src/macro/CDCDA_declare.h new file mode 100644 index 0000000..0c29c88 --- /dev/null +++ b/src/macro/CDCDA_declare.h @@ -0,0 +1,57 @@ +/*@@ + @header CDCDA_declare.h + @date Jul 98 + @author Gabrielle Allen + @desc + Declarations for macro to calculate all second covariant spatial derivative of lapse + + That is alpha_{;ij} + @enddesc +@@*/ + +#ifndef CDCDA_DECLARE +#define CDCDA_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DA_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DDA_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR2_declare.h" + +/* Output variables */ +#undef CDCDA_CDXXDA +#define CDCDA_CDXXDA cdcda_cdxxda +#undef CDCDA_CDXYDA +#define CDCDA_CDXYDA cdcda_cdxyda +#undef CDCDA_CDXZDA +#define CDCDA_CDXZDA cdcda_cdxzda +#undef CDCDA_CDYYDA +#define CDCDA_CDYYDA cdcda_cdyyda +#undef CDCDA_CDYZDA +#define CDCDA_CDYZDA cdcda_cdyzda +#undef CDCDA_CDZZDA +#define CDCDA_CDZZDA cdcda_cdzzda + +#ifdef FCODE + +/* Declare output variables */ + REAL CDCDA_CDXXDA + REAL CDCDA_CDXYDA + REAL CDCDA_CDXZDA + REAL CDCDA_CDYYDA + REAL CDCDA_CDYZDA + REAL CDCDA_CDZZDA + +#endif + +#ifdef CCODE + +/* Declare output variables */ + double CDCDA_CDXXDA; + double CDCDA_CDXYDA; + double CDCDA_CDXZDA; + double CDCDA_CDYYDA; + double CDCDA_CDYZDA; + double CDCDA_CDZZDA; + +#endif + +#endif diff --git a/src/macro/CDCDA_guts.h b/src/macro/CDCDA_guts.h new file mode 100644 index 0000000..08d7661 --- /dev/null +++ b/src/macro/CDCDA_guts.h @@ -0,0 +1,43 @@ +/*@@ + @header CDCDA_guts.h + @date Jul 98 + @author Gabrielle Allen + @desc + Macro to calculate all second covariant spatial derivative of lapse + + That is alpha_{;ij} + + @enddesc +@@*/ + +#ifndef CDCDA_GUTS +#define CDCDA_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DA_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DDA_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR2_guts.h" + +#ifdef FCODE + + CDCDA_CDXXDA = (DDA_DXXDA-CHR2_XXX*DA_DXDA-CHR2_YXX*DA_DYDA-CHR2_ZXX*DA_DZDA) + CDCDA_CDXYDA = (DDA_DXYDA-CHR2_XXY*DA_DXDA-CHR2_YXY*DA_DYDA-CHR2_ZXY*DA_DZDA) + CDCDA_CDXZDA = (DDA_DXZDA-CHR2_XXZ*DA_DXDA-CHR2_YXZ*DA_DYDA-CHR2_ZXZ*DA_DZDA) + CDCDA_CDYYDA = (DDA_DYYDA-CHR2_XYY*DA_DXDA-CHR2_YYY*DA_DYDA-CHR2_ZYY*DA_DZDA) + CDCDA_CDYZDA = (DDA_DYZDA-CHR2_XYZ*DA_DXDA-CHR2_YYZ*DA_DYDA-CHR2_ZYZ*DA_DZDA) + CDCDA_CDZZDA = (DDA_DZZDA-CHR2_XZZ*DA_DXDA-CHR2_YZZ*DA_DYDA-CHR2_ZZZ*DA_DZDA) + +#endif + +#ifdef CCODE + + CDCDA_CDXXDA = (DDA_DXXDA-CHR2_XXX*DA_DXDA-CHR2_YXX*DA_DYDA-CHR2_ZXX*DA_DZDA); + CDCDA_CDXYDA = (DDA_DXYDA-CHR2_XXY*DA_DXDA-CHR2_YXY*DA_DYDA-CHR2_ZXY*DA_DZDA); + CDCDA_CDXZDA = (DDA_DXZDA-CHR2_XXZ*DA_DXDA-CHR2_YXZ*DA_DYDA-CHR2_ZXZ*DA_DZDA); + CDCDA_CDYYDA = (DDA_DYYDA-CHR2_XYY*DA_DXDA-CHR2_YYY*DA_DYDA-CHR2_ZYY*DA_DZDA); + CDCDA_CDYZDA = (DDA_DYZDA-CHR2_XYZ*DA_DXDA-CHR2_YYZ*DA_DYDA-CHR2_ZYZ*DA_DZDA); + CDCDA_CDZZDA = (DDA_DZZDA-CHR2_XZZ*DA_DXDA-CHR2_YZZ*DA_DYDA-CHR2_ZZZ*DA_DZDA); + +#endif + +#endif + diff --git a/src/macro/CDCDA_undefine.h b/src/macro/CDCDA_undefine.h new file mode 100644 index 0000000..ff34780 --- /dev/null +++ b/src/macro/CDCDA_undefine.h @@ -0,0 +1,15 @@ +/*@@ + @header CDCDA_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef CDCDA_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DA_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DDA_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR2_undefine.h" + + diff --git a/src/macro/CDK_declare.h b/src/macro/CDK_declare.h new file mode 100644 index 0000000..47fd651 --- /dev/null +++ b/src/macro/CDK_declare.h @@ -0,0 +1,19 @@ +/*@@ + @header CDG_declare.h + @date Aug 98 + @author Gabrielle Allen + @desc + + Declarations for macro to calculate all the first covariant + derivatives of the extrinsic curvature with respect to x, y, z. + @enddesc +@@*/ + +#ifndef CDK_DECLARE +#define CDK_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/CDXCDK_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CDYCDK_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CDZCDK_declare.h" + +#endif diff --git a/src/macro/CDK_guts.h b/src/macro/CDK_guts.h new file mode 100644 index 0000000..527e442 --- /dev/null +++ b/src/macro/CDK_guts.h @@ -0,0 +1,18 @@ +/*@@ + @header CDK_guts.h + @date Aug 98 + @author Gabrielle Allen + @desc + Macro to calculate all the first covariant derivatives of the + extrinsic curvature with respect to x, y, z + @enddesc +@@*/ + +#ifndef CDK_GUTS +#define CDK_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/CDXCDK_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CDYCDK_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CDZCDK_guts.h" + +#endif diff --git a/src/macro/CDK_undefine.h b/src/macro/CDK_undefine.h new file mode 100644 index 0000000..29b16c7 --- /dev/null +++ b/src/macro/CDK_undefine.h @@ -0,0 +1,14 @@ +/*@@ + @header CDK_undefine.h + @date Aug 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef CDK_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/CDXCDK_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CDYCDK_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CDZCDK_undefine.h" + diff --git a/src/macro/CDXCDK_declare.h b/src/macro/CDXCDK_declare.h new file mode 100644 index 0000000..6c9a4e7 --- /dev/null +++ b/src/macro/CDXCDK_declare.h @@ -0,0 +1,98 @@ +/*@@ + @header CDXCDK_declare.h + @date Aug 98 + @author Gabrielle Allen + @desc + Declarations for macro to compute first conformal + derivatives of the extrinsic curvature with respect to x + @enddesc +@@*/ + +#ifndef CDXCDK_DECLARE +#define CDXCDK_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDK_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR2_declare.h" + +#ifdef FCODE + +/* Input variables */ +#undef CDXCDK_KXX +#define CDXCDK_KXX hxx(i,j,k) +#undef CDXCDK_KXY +#define CDXCDK_KXY hxy(i,j,k) +#undef CDXCDK_KXZ +#define CDXCDK_KXZ hxz(i,j,k) +#undef CDXCDK_KYY +#define CDXCDK_KYY hyy(i,j,k) +#undef CDXCDK_KYZ +#define CDXCDK_KYZ hyz(i,j,k) +#undef CDXCDK_KZZ +#define CDXCDK_KZZ hzz(i,j,k) + +/* Output variables */ +#undef CDXCDK_CDXCDKXX +#define CDXCDK_CDXCDKXX cdxcdk_cdxcdkxx +#undef CDXCDK_CDXCDKXY +#define CDXCDK_CDXCDKXY cdxcdk_cdxcdkxy +#undef CDXCDK_CDXCDKXZ +#define CDXCDK_CDXCDKXZ cdxcdk_cdxcdkxz +#undef CDXCDK_CDXCDKYY +#define CDXCDK_CDXCDKYY cdxcdk_cdxcdkyy +#undef CDXCDK_CDXCDKYZ +#define CDXCDK_CDXCDKYZ cdxcdk_cdxcdkyz +#undef CDXCDK_CDXCDKZZ +#define CDXCDK_CDXCDKZZ cdxcdk_cdxcdkzz + +/* Declare output variables */ + REAL CDXCDK_CDXCDKXX + REAL CDXCDK_CDXCDKXY + REAL CDXCDK_CDXCDKXZ + REAL CDXCDK_CDXCDKYY + REAL CDXCDK_CDXCDKYZ + REAL CDXCDK_CDXCDKZZ + +#endif + + +#ifdef CCODE + +/* Input variables */ +#undef CDXCDK_KXX +#define CDXCDK_KXX hxx[ijk] +#undef CDXCDK_KXY +#define CDXCDK_KXY hxy[ijk] +#undef CDXCDK_KXZ +#define CDXCDK_KXZ hxz[ijk] +#undef CDXCDK_KYY +#define CDXCDK_KYY hyy[ijk] +#undef CDXCDK_KYZ +#define CDXCDK_KYZ hyz[ijk] +#undef CDXCDK_KZZ +#define CDXCDK_KZZ hzz[ijk] + +/* Output variables */ +#undef CDXCDK_CDXCDKXX +#define CDXCDK_CDXCDKXX cdxcdk_cdxcdkxx +#undef CDXCDK_CDXCDKXY +#define CDXCDK_CDXCDKXY cdxcdk_cdxcdkxy +#undef CDXCDK_CDXCDKXZ +#define CDXCDK_CDXCDKXZ cdxcdk_cdxcdkxz +#undef CDXCDK_CDXCDKYY +#define CDXCDK_CDXCDKYY cdxcdk_cdxcdkyy +#undef CDXCDK_CDXCDKYZ +#define CDXCDK_CDXCDKYZ cdxcdk_cdxcdkyz +#undef CDXCDK_CDXCDKZZ +#define CDXCDK_CDXCDKZZ cdxcdk_cdxcdkzz + +/* Declare output variables */ +double CDXCDK_CDXCDKXX; +double CDXCDK_CDXCDKXY; +double CDXCDK_CDXCDKXZ; +double CDXCDK_CDXCDKYY; +double CDXCDK_CDXCDKYZ; +double CDXCDK_CDXCDKZZ; + +#endif + +#endif diff --git a/src/macro/CDXCDK_guts.h b/src/macro/CDXCDK_guts.h new file mode 100644 index 0000000..710d791 --- /dev/null +++ b/src/macro/CDXCDK_guts.h @@ -0,0 +1,60 @@ +/*@@ + @header CDXCDK_guts.h + @date August 98 + @author Gabrielle Allen + @desc + Macro to calculate the first conformal derivatives of the + extrinsic curvature with respect to x + @enddesc +@@*/ + +#ifndef CDXCDK_GUTS +#define CDXCDK_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDK_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR2_guts.h" + +#ifdef FCODE + + CDXCDK_CDXCDKXX = DXDK_DXDKXX - 2D0*(CHR2_XXX*CDXCDK_KXX + & + CHR2_YXX*CDXCDK_KXY + CHR2_ZXX*CDXCDK_KXZ) + CDXCDK_CDXCDKYY = DXDK_DXDKYY - 2D0*(CHR2_XXY*CDXCDK_KXY + & + CHR2_YXY*CDXCDK_KYY + CHR2_ZXY*CDXCDK_KYZ) + CDXCDK_CDXCDKZZ = DXDK_DXDKZZ - 2D0*(CHR2_XXZ*CDXCDK_KXZ + & + CHR2_YXZ*CDXCDK_KYZ + CHR2_ZXZ*CDXCDK_KZZ) + + CDXCDK_CDXCDKXY = DXDK_DXDKXY - CHR2_XXY*CDXCDK_KXX - + & (CHR2_XXX + CHR2_YXY)*CDXCDK_KXY - CHR2_ZXY*CDXCDK_KXZ - + & CHR2_YXX*CDXCDK_KYY - CHR2_ZXX*CDXCDK_KYZ + CDXCDK_CDXCDKXZ = DXDK_DXDKXZ - CHR2_XXZ*CDXCDK_KXX - + & (CHR2_XXX + CHR2_ZXZ)*CDXCDK_KXZ - CHR2_YXZ*CDXCDK_KXY - + & CHR2_YXX*CDXCDK_KYZ - CHR2_ZXX*CDXCDK_KZZ + CDXCDK_CDXCDKYZ = DXDK_DXDKYZ - CHR2_XXZ*CDXCDK_KXY - + & CHR2_XXY*CDXCDK_KXZ - CHR2_YXZ*CDXCDK_KYY - + & (CHR2_YXY + CHR2_ZXZ)*CDXCDK_KYZ - CHR2_ZXY*CDXCDK_KZZ + +#endif + +#ifdef CCODE + + CDXCDK_CDXCDKXX = DXDK_DXDKXX - 2D0*(CHR2_XXX*CDXCDK_KXX + + CHR2_YXX*CDXCDK_KXY + CHR2_ZXX*CDXCDK_KXZ); + CDXCDK_CDXCDKYY = DXDK_DXDKYY - 2D0*(CHR2_XXY*CDXCDK_KXY + + CHR2_YXY*CDXCDK_KYY + CHR2_ZXY*CDXCDK_KYZ); + CDXCDK_CDXCDKZZ = DXDK_DXDKZZ - 2D0*(CHR2_XXZ*CDXCDK_KXZ + + CHR2_YXZ*CDXCDK_KYZ + CHR2_ZXZ*CDXCDK_KZZ); + + CDXCDK_CDXCDKXY = DXDK_DXDKXY - CHR2_XXY*CDXCDK_KXX - + (CHR2_XXX + CHR2_YXY)*CDXCDK_KXY - CHR2_ZXY*CDXCDK_KXZ - + CHR2_YXX*CDXCDK_KYY - CHR2_ZXX*CDXCDK_KYZ; + CDXCDK_CDXCDKXZ = DXDK_DXDKXZ - CHR2_XXZ*CDXCDK_KXX - + (CHR2_XXX + CHR2_ZXZ)*CDXCDK_KXZ - CHR2_YXZ*CDXCDK_KXY - + CHR2_YXX*CDXCDK_KYZ - CHR2_ZXX*CDXCDK_KZZ; + CDXCDK_CDXCDKYZ = DXDK_DXDKYZ - CHR2_XXZ*CDXCDK_KXY - + CHR2_XXY*CDXCDK_KXZ - CHR2_YXZ*CDXCDK_KYY - + (CHR2_YXY + CHR2_ZXZ)*CDXCDK_KYZ - CHR2_ZXY*CDXCDK_KZZ; + + +#endif + +#endif diff --git a/src/macro/CDXCDK_undefine.h b/src/macro/CDXCDK_undefine.h new file mode 100644 index 0000000..774daae --- /dev/null +++ b/src/macro/CDXCDK_undefine.h @@ -0,0 +1,12 @@ +/*@@ + @header CDXCDK_undefine.h + @date Aug 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef CDXCDK_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDK_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR2_undefine.h" diff --git a/src/macro/CDYCDK_declare.h b/src/macro/CDYCDK_declare.h new file mode 100644 index 0000000..759e218 --- /dev/null +++ b/src/macro/CDYCDK_declare.h @@ -0,0 +1,98 @@ +/*@@ + @header CDYCDK_declare.h + @date Aug 98 + @author Gabrielle Allen + @desc + Declarations for macro to compute first conformal + derivatives of the extrinsic curvature with respect to y + @enddesc +@@*/ + +#ifndef CDYCDK_DECLARE +#define CDYCDK_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDK_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR2_declare.h" + +#ifdef FCODE + +/* Input variables */ +#undef CDYCDK_KXX +#define CDYCDK_KXX hxx(i,j,k) +#undef CDYCDK_KXY +#define CDYCDK_KXY hxy(i,j,k) +#undef CDYCDK_KXZ +#define CDYCDK_KXZ hxz(i,j,k) +#undef CDYCDK_KYY +#define CDYCDK_KYY hyy(i,j,k) +#undef CDYCDK_KYZ +#define CDYCDK_KYZ hyz(i,j,k) +#undef CDYCDK_KZZ +#define CDYCDK_KZZ hzz(i,j,k) + +/* Output variables */ +#undef CDYCDK_CDYCDKXX +#define CDYCDK_CDYCDKXX cdycdk_cdycdkxx +#undef CDYCDK_CDYCDKXY +#define CDYCDK_CDYCDKXY cdycdk_cdycdkxy +#undef CDYCDK_CDYCDKXZ +#define CDYCDK_CDYCDKXZ cdycdk_cdycdkxz +#undef CDYCDK_CDYCDKYY +#define CDYCDK_CDYCDKYY cdycdk_cdycdkyy +#undef CDYCDK_CDYCDKYZ +#define CDYCDK_CDYCDKYZ cdycdk_cdycdkyz +#undef CDYCDK_CDYCDKZZ +#define CDYCDK_CDYCDKZZ cdycdk_cdycdkzz + +/* Declare output variables */ + REAL CDYCDK_CDYCDKXX + REAL CDYCDK_CDYCDKXY + REAL CDYCDK_CDYCDKXZ + REAL CDYCDK_CDYCDKYY + REAL CDYCDK_CDYCDKYZ + REAL CDYCDK_CDYCDKZZ + +#endif + + +#ifdef CCODE + +/* Input variables */ +#undef CDYCDK_KXX +#define CDYCDK_KXX hxx[ijk] +#undef CDYCDK_KXY +#define CDYCDK_KXY hxy[ijk] +#undef CDYCDK_KXZ +#define CDYCDK_KXZ hxz[ijk] +#undef CDYCDK_KYY +#define CDYCDK_KYY hyy[ijk] +#undef CDYCDK_KYZ +#define CDYCDK_KYZ hyz[ijk] +#undef CDYCDK_KZZ +#define CDYCDK_KZZ hzz[ijk] + +/* Output variables */ +#undef CDYCDK_CDYCDKXX +#define CDYCDK_CDYCDKXX cdycdk_cdycdkxx +#undef CDYCDK_CDYCDKXY +#define CDYCDK_CDYCDKXY cdycdk_cdycdkxy +#undef CDYCDK_CDYCDKXZ +#define CDYCDK_CDYCDKXZ cdycdk_cdycdkxz +#undef CDYCDK_CDYCDKYY +#define CDYCDK_CDYCDKYY cdycdk_cdycdkyy +#undef CDYCDK_CDYCDKYZ +#define CDYCDK_CDYCDKYZ cdycdk_cdycdkyz +#undef CDYCDK_CDYCDKZZ +#define CDYCDK_CDYCDKZZ cdycdk_cdycdkzz + +/* Declare output variables */ +double CDYCDK_CDYCDKXX; +double CDYCDK_CDYCDKXY; +double CDYCDK_CDYCDKXZ; +double CDYCDK_CDYCDKYY; +double CDYCDK_CDYCDKYZ; +double CDYCDK_CDYCDKZZ; + +#endif + +#endif diff --git a/src/macro/CDYCDK_guts.h b/src/macro/CDYCDK_guts.h new file mode 100644 index 0000000..21ea703 --- /dev/null +++ b/src/macro/CDYCDK_guts.h @@ -0,0 +1,67 @@ +/*@@ + @header CDYCDK_guts.h + @date August 98 + @author Gabrielle Allen + @desc + Macro to calculate the first covariant derivatives of the + extrinsic curvature with respect to x + @enddesc +@@*/ + +#ifndef CDYCDK_GUTS +#define CDYCDK_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDK_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR2_guts.h" + +#ifdef FCODE + + CDYCDK_CDYCDKXX = DYDK_DYDKXX - 2D0*(CHR2_XXY*CDYCDK_KXX + + & CHR2_YXY*CDYCDK_KXY + CHR2_ZXY*CDYCDK_KXZ) + + CDYCDK_CDYCDKYY = DYDK_DYDKYY - 2D0*(CHR2_XYY*CDYCDK_KXY + + & CHR2_YYY*CDYCDK_KYY + CHR2_ZYY*CDYCDK_KYZ) + + CDYCDK_CDYCDKZZ = DYDK_DYDKZZ - 2D0*(CHR2_XYZ*CDYCDK_KXZ + + & CHR2_YYZ*CDYCDK_KYZ + CHR2_ZYZ*CDYCDK_KZZ) + + CDYCDK_CDYCDKXY = DYDK_DYDKXY - (CHR2_XYY*CDYCDK_KXX) - + & (CHR2_XXY + CHR2_YYY)*CDYCDK_KXY - CHR2_ZYY*CDYCDK_KXZ - + & CHR2_YXY*CDYCDK_KYY - CHR2_ZXY*CDYCDK_KYZ + + CDYCDK_CDYCDKXZ = DYDK_DYDKXZ - (CHR2_XYZ*CDYCDK_KXX) - + & CHR2_YYZ*CDYCDK_KXY - (CHR2_XXY + CHR2_ZYZ)*CDYCDK_KXZ - + & CHR2_YXY*CDYCDK_KYZ - CHR2_ZXY*CDYCDK_KZZ + + CDYCDK_CDYCDKYZ = DYDK_DYDKYZ -(CHR2_XYZ*CDYCDK_KXY) - + & CHR2_XYY*CDYCDK_KXZ - CHR2_YYZ*CDYCDK_KYY - + & (CHR2_YYY + CHR2_ZYZ)*CDYCDK_KYZ - CHR2_ZYY*CDYCDK_KZZ + +#endif + +#ifdef CCODE + + CDYCDK_CDYCDKXX = DYDK_DYDKXX - 2D0*(CHR2_XXY*CDYCDK_KXX + + CHR2_YXY*CDYCDK_KXY + CHR2_ZXY*CDYCDK_KXZ); + + CDYCDK_CDYCDKYY = DYDK_DYDKYY - 2D0*(CHR2_XYY*CDYCDK_KXY + + CHR2_YYY*CDYCDK_KYY + CHR2_ZYY*CDYCDK_KYZ); + + CDYCDK_CDYCDKZZ = DYDK_DYDKZZ - 2D0*(CHR2_XYZ*CDYCDK_KXZ + + CHR2_YYZ*CDYCDK_KYZ + CHR2_ZYZ*CDYCDK_KZZ); + + CDYCDK_CDYCDKXY = DYDK_DYDKXY - (CHR2_XYY*CDYCDK_KXX) - + (CHR2_XXY + CHR2_YYY)*CDYCDK_KXY - CHR2_ZYY*CDYCDK_KXZ - + CHR2_YXY*CDYCDK_KYY - CHR2_ZXY*CDYCDK_KYZ; + + CDYCDK_CDYCDKXZ = DYDK_DYDKXZ - (CHR2_XYZ*CDYCDK_KXX) - + CHR2_YYZ*CDYCDK_KXY - (CHR2_XXY + CHR2_ZYZ)*CDYCDK_KXZ - + CHR2_YXY*CDYCDK_KYZ - CHR2_ZXY*CDYCDK_KZZ; + + CDYCDK_CDYCDKYZ = DYDK_DYDKYZ -(CHR2_XYZ*CDYCDK_KXY) - + CHR2_XYY*CDYCDK_KXZ - CHR2_YYZ*CDYCDK_KYY - + (CHR2_YYY + CHR2_ZYZ)*CDYCDK_KYZ - CHR2_ZYY*CDYCDK_KZZ; + +#endif + +#endif diff --git a/src/macro/CDYCDK_undefine.h b/src/macro/CDYCDK_undefine.h new file mode 100644 index 0000000..fb33304 --- /dev/null +++ b/src/macro/CDYCDK_undefine.h @@ -0,0 +1,13 @@ +/*@@ + @header CDYCDK_undefine.h + @date Aug 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef CDYCDK_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDK_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR2_undefine.h" + diff --git a/src/macro/CDZCDK_declare.h b/src/macro/CDZCDK_declare.h new file mode 100644 index 0000000..5f518aa --- /dev/null +++ b/src/macro/CDZCDK_declare.h @@ -0,0 +1,98 @@ +/*@@ + @header CDZCDK_declare.h + @date Aug 98 + @author Gabrielle Allen + @desc + Declarations for macro to compute first conformal + derivatives of the extrinsic curvature with respect to z + @enddesc +@@*/ + +#ifndef CDZCDK_DECLARE +#define CDZCDK_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDK_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR2_declare.h" + +#ifdef FCODE + +/* Input variables */ +#undef CDZCDK_KXX +#define CDZCDK_KXX hxx(i,j,k) +#undef CDZCDK_KXY +#define CDZCDK_KXY hxy(i,j,k) +#undef CDZCDK_KXZ +#define CDZCDK_KXZ hxz(i,j,k) +#undef CDZCDK_KYY +#define CDZCDK_KYY hyy(i,j,k) +#undef CDZCDK_KYZ +#define CDZCDK_KYZ hyz(i,j,k) +#undef CDZCDK_KZZ +#define CDZCDK_KZZ hzz(i,j,k) + +/* Output variables */ +#undef CDZCDK_CDZCDKXX +#define CDZCDK_CDZCDKXX cdzcdk_cdzcdkxx +#undef CDZCDK_CDZCDKXY +#define CDZCDK_CDZCDKXY cdzcdk_cdzcdkxy +#undef CDZCDK_CDZCDKXZ +#define CDZCDK_CDZCDKXZ cdzcdk_cdzcdkxz +#undef CDZCDK_CDZCDKYY +#define CDZCDK_CDZCDKYY cdzcdk_cdzcdkyy +#undef CDZCDK_CDZCDKYZ +#define CDZCDK_CDZCDKYZ cdzcdk_cdzcdkyz +#undef CDZCDK_CDZCDKZZ +#define CDZCDK_CDZCDKZZ cdzcdk_cdzcdkzz + +/* Declare output variables */ + REAL CDZCDK_CDZCDKXX + REAL CDZCDK_CDZCDKXY + REAL CDZCDK_CDZCDKXZ + REAL CDZCDK_CDZCDKYY + REAL CDZCDK_CDZCDKYZ + REAL CDZCDK_CDZCDKZZ + +#endif + + +#ifdef CCODE + +/* Input variables */ +#undef CDZCDK_KXX +#define CDZCDK_KXX hxx[ijk] +#undef CDZCDK_KXY +#define CDZCDK_KXY hxy[ijk] +#undef CDZCDK_KXZ +#define CDZCDK_KXZ hxz[ijk] +#undef CDZCDK_KYY +#define CDZCDK_KYY hyy[ijk] +#undef CDZCDK_KYZ +#define CDZCDK_KYZ hyz[ijk] +#undef CDZCDK_KZZ +#define CDZCDK_KZZ hzz[ijk] + +/* Output variables */ +#undef CDZCDK_CDZCDKXX +#define CDZCDK_CDZCDKXX cdzcdk_cdzcdkxx +#undef CDZCDK_CDZCDKXY +#define CDZCDK_CDZCDKXY cdzcdk_cdzcdkxy +#undef CDZCDK_CDZCDKXZ +#define CDZCDK_CDZCDKXZ cdzcdk_cdzcdkxz +#undef CDZCDK_CDZCDKYY +#define CDZCDK_CDZCDKYY cdzcdk_cdzcdkyy +#undef CDZCDK_CDZCDKYZ +#define CDZCDK_CDZCDKYZ cdzcdk_cdzcdkyz +#undef CDZCDK_CDZCDKZZ +#define CDZCDK_CDZCDKZZ cdzcdk_cdzcdkzz + +/* Declare output variables */ +double CDZCDK_CDZCDKXX; +double CDZCDK_CDZCDKXY; +double CDZCDK_CDZCDKXZ; +double CDZCDK_CDZCDKYY; +double CDZCDK_CDZCDKYZ; +double CDZCDK_CDZCDKZZ; + +#endif + +#endif diff --git a/src/macro/CDZCDK_guts.h b/src/macro/CDZCDK_guts.h new file mode 100644 index 0000000..20a99db --- /dev/null +++ b/src/macro/CDZCDK_guts.h @@ -0,0 +1,67 @@ +/*@@ + @header CDZCDK_guts.h + @date August 98 + @author Gabrielle Allen + @desc + Macro to calculate the first covariant derivatives of the + extrinsic curvature with respect to y + @enddesc +@@*/ + +#ifndef CDZCDK_GUTS +#define CDZCDK_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDK_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR2_guts.h" + +#ifdef FCODE + + CDZCDK_CDZCDKXX = DZDK_DZDKXX - 2D0*(CHR2_XXZ*CDZCDK_KXX + + & CHR2_YXZ*CDZCDK_KXY + CHR2_ZXZ*CDZCDK_KXZ) + + CDZCDK_CDZCDKYY = DZDK_DZDKYY - 2D0*(CHR2_XYZ*CDZCDK_KXY + + & CHR2_YYZ*CDZCDK_KYY + CHR2_ZYZ*CDZCDK_KYZ) + + CDZCDK_CDZCDKZZ = DZDK_DZDKZZ - 2D0*(CHR2_XZZ*CDZCDK_KXZ + + & CHR2_YZZ*CDZCDK_KYZ + CHR2_ZZZ*CDZCDK_KZZ) + + CDZCDK_CDZCDKXY = DZDK_DZDKXY-(CHR2_XYZ*CDZCDK_KXX) - + & (CHR2_XXZ + CHR2_YYZ)*CDZCDK_KXY - CHR2_ZYZ*CDZCDK_KXZ - + & CHR2_YXZ*CDZCDK_KYY - CHR2_ZXZ*CDZCDK_KYZ + + CDZCDK_CDZCDKXZ = DZDK_DZDKXZ-(CHR2_XZZ*CDZCDK_KXX) - + & CHR2_YZZ*CDZCDK_KXY - (CHR2_XXZ + CHR2_ZZZ)*CDZCDK_KXZ + & - CHR2_YXZ*CDZCDK_KYZ - CHR2_ZXZ*CDZCDK_KZZ + + CDZCDK_CDZCDKYZ = DZDK_DZDKYZ-(CHR2_XZZ*CDZCDK_KXY) - + & CHR2_XYZ*CDZCDK_KXZ - CHR2_YZZ*CDZCDK_KYY - + & (CHR2_YYZ + CHR2_ZZZ)*CDZCDK_KYZ - CHR2_ZYZ*CDZCDK_KZZ + +#endif + +#ifdef CCODE + + CDZCDK_CDZCDKXX = DZDK_DZDKXX - 2D0*(CHR2_XXZ*CDZCDK_KXX + + CHR2_YXZ*CDZCDK_KXY + CHR2_ZXZ*CDZCDK_KXZ); + + CDZCDK_CDZCDKYY = DZDK_DZDKYY - 2D0*(CHR2_XYZ*CDZCDK_KXY + + CHR2_YYZ*CDZCDK_KYY + CHR2_ZYZ*CDZCDK_KYZ); + + CDZCDK_CDZCDKZZ = DZDK_DZDKZZ - 2D0*(CHR2_XZZ*CDZCDK_KXZ + + CHR2_YZZ*CDZCDK_KYZ + CHR2_ZZZ*CDZCDK_KZZ); + + CDZCDK_CDZCDKXY = DZDK_DZDKXY-(CHR2_XYZ*CDZCDK_KXX) - + (CHR2_XXZ + CHR2_YYZ)*CDZCDK_KXY - CHR2_ZYZ*CDZCDK_KXZ - + CHR2_YXZ*CDZCDK_KYY - CHR2_ZXZ*CDZCDK_KYZ; + + CDZCDK_CDZCDKXZ = DZDK_DZDKXZ-(CHR2_XZZ*CDZCDK_KXX) - + CHR2_YZZ*CDZCDK_KXY - (CHR2_XXZ + CHR2_ZZZ)*CDZCDK_KXZ + - CHR2_YXZ*CDZCDK_KYZ - CHR2_ZXZ*CDZCDK_KZZ; + + CDZCDK_CDZCDKYZ = DZDK_DZDKYZ-(CHR2_XZZ*CDZCDK_KXY) - + CHR2_XYZ*CDZCDK_KXZ - CHR2_YZZ*CDZCDK_KYY - + (CHR2_YYZ + CHR2_ZZZ)*CDZCDK_KYZ - CHR2_ZYZ*CDZCDK_KZZ; + +#endif + +#endif diff --git a/src/macro/CDZCDK_undefine.h b/src/macro/CDZCDK_undefine.h new file mode 100644 index 0000000..fe41aa2 --- /dev/null +++ b/src/macro/CDZCDK_undefine.h @@ -0,0 +1,12 @@ +/*@@ + @header CDZCDK_undefine.h + @date Aug 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef CDZCDK_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDK_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR2_undefine.h" diff --git a/src/macro/CHR1_declare.h b/src/macro/CHR1_declare.h new file mode 100644 index 0000000..081d3c9 --- /dev/null +++ b/src/macro/CHR1_declare.h @@ -0,0 +1,164 @@ +/*@@ + @header CHR1_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + Declarations for macro to calculate the Christoffel symbols of the + first kind + @enddesc +@@*/ + +#ifndef CHR1_DECLARE +#define CHR1_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DG_declare.h" + +#ifdef FCODE + +/* Output variables */ +#undef CHR1_XXX +#define CHR1_XXX gammado111 +#undef CHR1_XXY +#define CHR1_XXY gammado112 +#undef CHR1_XXZ +#define CHR1_XXZ gammado113 +#undef CHR1_XYY +#define CHR1_XYY gammado122 +#undef CHR1_XYZ +#define CHR1_XYZ gammado123 +#undef CHR1_XZZ +#define CHR1_XZZ gammado133 +#undef CHR1_YXX +#define CHR1_YXX gammado211 +#undef CHR1_YXY +#define CHR1_YXY gammado212 +#undef CHR1_YXZ +#define CHR1_YXZ gammado213 +#undef CHR1_YYY +#define CHR1_YYY gammado222 +#undef CHR1_YYZ +#define CHR1_YYZ gammado223 +#undef CHR1_YZZ +#define CHR1_YZZ gammado233 +#undef CHR1_ZXX +#define CHR1_ZXX gammado311 +#undef CHR1_ZXY +#define CHR1_ZXY gammado312 +#undef CHR1_ZXZ +#define CHR1_ZXZ gammado313 +#undef CHR1_ZYY +#define CHR1_ZYY gammado322 +#undef CHR1_ZYZ +#define CHR1_ZYZ gammado323 +#undef CHR1_ZZZ +#define CHR1_ZZZ gammado333 + +/* Declare output variables */ + REAL CHR1_XXX + REAL CHR1_XXY + REAL CHR1_XXZ + REAL CHR1_XYY + REAL CHR1_XYZ + REAL CHR1_XZZ + REAL CHR1_YXX + REAL CHR1_YXY + REAL CHR1_YXZ + REAL CHR1_YYY + REAL CHR1_YYZ + REAL CHR1_YZZ + REAL CHR1_ZXX + REAL CHR1_ZXY + REAL CHR1_ZXZ + REAL CHR1_ZYY + REAL CHR1_ZYZ + REAL CHR1_ZZZ + +#endif + + +#ifdef CCODE + +/* Output variables */ +#undef CHR1_XX1 +#define CHR1_XXX gammado111 +#undef CHR1_XXY +#define CHR1_XXY gammado112 +#undef CHR1_XXZ +#define CHR1_XXZ gammado113 +#undef CHR1_XYY +#define CHR1_XYY gammado122 +#undef CHR1_XYZ +#define CHR1_XYZ gammado123 +#undef CHR1_XZZ +#define CHR1_XZZ gammado133 +#undef CHR1_YXX +#define CHR1_YXX gammado211 +#undef CHR1_YXY +#define CHR1_YXY gammado212 +#undef CHR1_YXZ +#define CHR1_Y1Z gammado213 +#undef CHR1_YYY +#define CHR1_YYY gammado222 +#undef CHR1_YYZ +#define CHR1_YYZ gammado223 +#undef CHR1_2ZZ +#define CHR1_YZZ gammado233 +#undef CHR1_ZXX +#define CHR1_ZXX gammado311 +#undef CHR1_ZXY +#define CHR1_ZXY gammado312 +#undef CHR1_ZXZ +#define CHR1_ZXZ gammado313 +#undef CHR1_ZYY +#define CHR1_ZYY gammado322 +#undef CHR1_ZYZ +#define CHR1_ZYZ gammado323 +#undef CHR1_ZZZ +#define CHR1_ZZZ gammado333 + +/* Declare output variables */ +double CHR1_XXX; +double CHR1_XXY; +double CHR1_XXZ; +double CHR1_XYY; +double CHR1_XYZ; +double CHR1_XZZ; +double CHR1_YXX; +double CHR1_YXY; +double CHR1_YXZ; +double CHR1_YYY; +double CHRX_YYZ; +double CHR1_YZZ; +double CHR1_ZXX; +double CHR1_ZXY; +double CHR1_ZXZ; +double CHR1_ZYY; +double CHR1_ZYZ; +double CHR1_ZZZ; + +#endif + +/* Symmetries */ +#undef CHR1_XYX +#define CHR1_XYX CHR1_XXY +#undef CHR1_XZX +#define CHR1_XZX CHR1_XXZ +#undef CHR1_XZY +#define CHR1_XZY CHR1_XYZ +#undef CHR1_YYX +#define CHR1_YYX CHR1_YXY +#undef CHR1_YZX +#define CHR1_YZX CHR1_YXZ +#undef CHR1_YZY +#define CHR1_YZY CHR1_YYZ +#undef CHR1_ZYX +#define CHR1_ZYX CHR1_ZXY +#undef CHR1_ZZX +#define CHR1_ZZX CHR1_ZXZ +#undef CHR1_ZZY +#define CHR1_ZZY CHR1_ZYZ + +#endif + + + diff --git a/src/macro/CHR1_guts.h b/src/macro/CHR1_guts.h new file mode 100644 index 0000000..84bac21 --- /dev/null +++ b/src/macro/CHR1_guts.h @@ -0,0 +1,65 @@ +/*@@ + @header CHR1_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + Macro to calculate Christoffel symbols of the first kind. + + That is CHR1_cab = 1/2 (g_ac,b + gbc,a - gab,c) + + @enddesc +@@*/ + +#ifndef CHR1_GUTS +#define CHR1_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DG_guts.h" + +#ifdef FCODE + + CHR1_XXX = DXDG_DXDGXX/2D0 + CHR1_XXY = DYDG_DYDGXX/2D0 + CHR1_XXZ = DZDG_DZDGXX/2D0 + CHR1_XYY = -DXDG_DXDGYY/2D0 + DYDG_DYDGXY + CHR1_XYZ = (-DXDG_DXDGYZ + DYDG_DYDGXZ + DZDG_DZDGXY)/2D0 + CHR1_XZZ = -DXDG_DXDGZZ/2D0 + DZDG_DZDGXZ + CHR1_YXX = DXDG_DXDGXY - DYDG_DYDGXX/2D0 + CHR1_YXY = DXDG_DXDGYY/2D0 + CHR1_YXZ = ( DXDG_DXDGYZ - DYDG_DYDGXZ + DZDG_DZDGXY)/2D0 + CHR1_YYY = DYDG_DYDGYY/2D0 + CHR1_YYZ = DZDG_DZDGYY/2D0 + CHR1_YZZ = -DYDG_DYDGZZ/2D0 + DZDG_DZDGYZ + CHR1_ZXX = DXDG_DXDGXZ - DZDG_DZDGXX/2D0 + CHR1_ZXY = ( DXDG_DXDGYZ + DYDG_DYDGXZ - DZDG_DZDGXY)/2D0 + CHR1_ZXZ = DXDG_DXDGZZ/2D0 + CHR1_ZYY = DYDG_DYDGYZ - DZDG_DZDGYY/2D0 + CHR1_ZYZ = DYDG_DYDGZZ/2D0 + CHR1_ZZZ = DZDG_DZDGZZ/2D0 + +#endif + +#ifdef CCODE + + CHR1_XXX = DXDG_DXDGXX/2; + CHR1_XXY = DYDG_DYDGXX/2; + CHR1_XXZ = DZDG_DZDGXX/2; + CHR1_XYY = -DXDG_DXDGYY/2 + DYDG_DYDGXY; + CHR1_XYZ = (-DXDG_DXDGYZ + DYDG_DYDGXZ + DZDG_DZDGXY)/2; + CHR1_XZZ = -DXDG_DXDGZZ/2 + DZDG_DZDGXZ; + CHR1_YXX = DXDG_DXDGXY - DYDG_DYDGXX/2; + CHR1_YXY = DXDG_DXDGYY/2; + CHR1_YXZ = ( DXDG_DXDGYZ - DYDG_DYDGXZ + DZDG_DZDGXY)/2; + CHR1_YYY = DYDG_DYDGYY/2; + CHR1_YYZ = DZDG_DZDGYY/2; + CHR1_YZZ = -DYDG_DYDGZZ/2 + DZDG_DZDGYZ; + CHR1_ZXX = DXDG_DXDGXZ - DZDG_DZDGXX/2; + CHR1_ZXY = ( DXDG_DXDGYZ + DYDG_DYDGXZ - DZDG_DZDGXY)/2; + CHR1_ZXZ = DXDG_DXDGZZ/2; + CHR1_ZYY = DYDG_DYDGYZ - DZDG_DZDGYY/2; + CHR1_ZYZ = DYDG_DYDGZZ/2; + CHR1_ZZZ = DZDG_DZDGZZ/2; + +#endif + +#endif + diff --git a/src/macro/CHR1_undefine.h b/src/macro/CHR1_undefine.h new file mode 100644 index 0000000..5735508 --- /dev/null +++ b/src/macro/CHR1_undefine.h @@ -0,0 +1,13 @@ +/*@@ + @header CHR1_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef CHR1_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DG_undefine.h" + + diff --git a/src/macro/CHR2_declare.h b/src/macro/CHR2_declare.h new file mode 100644 index 0000000..cf4afb8 --- /dev/null +++ b/src/macro/CHR2_declare.h @@ -0,0 +1,175 @@ +/*@@ + @header CHR2_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + Declarations for macro to calculate the Christoffel symbols of the + second kind + + That is CHR2_cab = g^cd CHR1_dab + + = 1/2 g^cd (g_ad,b + gbd,a - gab,d) + + Requires: Christoffel symbols of first kind + Uppermetric + + Provides: Christoffel sybols of second kind + + @enddesc +@@*/ + +#ifndef CHR2_DECLARE +#define CHR2_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR1_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_declare.h" + +#ifdef FCODE + +/* Output variables */ +#undef CHR2_XXX +#define CHR2_XXX gamma111 +#undef CHR2_XXY +#define CHR2_XXY gamma112 +#undef CHR2_XXZ +#define CHR2_XXZ gamma113 +#undef CHR2_XYY +#define CHR2_XYY gamma122 +#undef CHR2_XYZ +#define CHR2_XYZ gamma123 +#undef CHR2_XZZ +#define CHR2_XZZ gamma133 +#undef CHR2_YXX +#define CHR2_YXX gamma211 +#undef CHR2_YXY +#define CHR2_YXY gamma212 +#undef CHR2_YXZ +#define CHR2_YXZ gamma213 +#undef CHR2_YYY +#define CHR2_YYY gamma222 +#undef CHR2_YYZ +#define CHR2_YYZ gamma223 +#undef CHR2_YZZ +#define CHR2_YZZ gamma233 +#undef CHR2_ZXX +#define CHR2_ZXX gamma311 +#undef CHR2_ZXY +#define CHR2_ZXY gamma312 +#undef CHR2_ZXZ +#define CHR2_ZXZ gamma313 +#undef CHR2_ZYY +#define CHR2_ZYY gamma322 +#undef CHR2_ZYZ +#define CHR2_ZYZ gamma323 +#undef CHR2_ZZZ +#define CHR2_ZZZ gamma333 + +/* Declare output variables */ + REAL CHR2_XXX + REAL CHR2_XXY + REAL CHR2_XXZ + REAL CHR2_XYY + REAL CHR2_XYZ + REAL CHR2_XZZ + REAL CHR2_YXX + REAL CHR2_YXY + REAL CHR2_YXZ + REAL CHR2_YYY + REAL CHR2_YYZ + REAL CHR2_YZZ + REAL CHR2_ZXX + REAL CHR2_ZXY + REAL CHR2_ZXZ + REAL CHR2_ZYY + REAL CHR2_ZYZ + REAL CHR2_ZZZ + +#endif + + +#ifdef CCODE + +/* Output variables */ +#undef CHR2_XXX +#define CHR2_XXX gamma111 +#undef CHR2_XXY +#define CHR2_XXY gamma112 +#undef CHR2_XXZ +#define CHR2_XXZ gamma113 +#undef CHR2_XYY +#define CHR2_XYY gamma122 +#undef CHR2_XYZ +#define CHR2_XYZ gamma123 +#undef CHR2_XZZ +#define CHR2_XZZ gamma133 +#undef CHR2_YXX +#define CHR2_YXX gamma211 +#undef CHR2_YXY +#define CHR2_YXY gamma212 +#undef CHR2_YXZ +#define CHR2_YXZ gamma213 +#undef CHR2_YYY +#define CHR2_YYY gamma222 +#undef CHR2_YYZ +#define CHR2_YYZ gamma223 +#undef CHR2_YZZ +#define CHR2_YZZ gamma233 +#undef CHR2_ZXX +#define CHR2_ZXX gamma311 +#undef CHR2_ZXY +#define CHR2_ZXY gamma312 +#undef CHR2_ZXZ +#define CHR2_ZXZ gamma313 +#undef CHR2_ZYY +#define CHR2_ZYY gamma322 +#undef CHR2_ZYZ +#define CHR2_ZYZ gamma323 +#undef CHR2_ZZZ +#define CHR2_ZZZ gamma333 + +/* Declare output variables */ +double CHR2_XXX; +double CHR2_XXY; +double CHR2_XXZ; +double CHR2_XYY; +double CHR2_XYZ; +double CHR2_XZZ; +double CHR2_YXX; +double CHR2_YXY; +double CHR2_YXZ; +double CHR2_YYY; +double CHR2_Y2Z; +double CHR2_YZZ; +double CHR2_ZXX; +double CHR2_ZXY; +double CHR2_ZXZ; +double CHR2_ZYY; +double CHR2_ZYZ; +double CHR2_ZZZ; + +#endif + +/* Symmetries */ +#undef CHR2_XYX +#define CHR2_XYX CHR2_XXY +#undef CHR2_XZX +#define CHR2_XZX CHR2_XXZ +#undef CHR2_XZY +#define CHR2_XZY CHR2_XYZ +#undef CHR2_YYX +#define CHR2_YYX CHR2_YXY +#undef CHR2_YZX +#define CHR2_YZX CHR2_YXZ +#undef CHR2_YZY +#define CHR2_YZY CHR2_YYZ +#undef CHR2_ZYX +#define CHR2_ZYX CHR2_ZXY +#undef CHR2_ZZX +#define CHR2_ZZX CHR2_ZXZ +#undef CHR2_ZZY +#define CHR2_ZZY CHR2_ZYZ + +#endif + + + diff --git a/src/macro/CHR2_guts.h b/src/macro/CHR2_guts.h new file mode 100644 index 0000000..596b089 --- /dev/null +++ b/src/macro/CHR2_guts.h @@ -0,0 +1,72 @@ +/*@@ + @header CHR2_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + Macro to calculate Christoffel symbols of the second kind. + + That is CHR2_cab = g^cd CHR1_dab + + = 1/2 g^cd (g_ad,b + gbd,a - gab,d) + + Requires: Christoffel symbols of first kind + Uppermetric + + Provides: Christoffel sybols of second kind + + @enddesc +@@*/ + +#ifndef CHR2_GUTS +#define CHR2_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR1_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_guts.h" + +#ifdef FCODE + + CHR2_XXX = CHR1_XXX*UPPERMET_UXX + CHR1_YXX*UPPERMET_UXY + CHR1_ZXX*UPPERMET_UXZ + CHR2_XXY = CHR1_XXY*UPPERMET_UXX + CHR1_YXY*UPPERMET_UXY + CHR1_ZXY*UPPERMET_UXZ + CHR2_XXZ = CHR1_XXZ*UPPERMET_UXX + CHR1_YXZ*UPPERMET_UXY + CHR1_ZXZ*UPPERMET_UXZ + CHR2_XYY = CHR1_XYY*UPPERMET_UXX + CHR1_YYY*UPPERMET_UXY + CHR1_ZYY*UPPERMET_UXZ + CHR2_XYZ = CHR1_XYZ*UPPERMET_UXX + CHR1_YYZ*UPPERMET_UXY + CHR1_ZYZ*UPPERMET_UXZ + CHR2_XZZ = CHR1_XZZ*UPPERMET_UXX + CHR1_YZZ*UPPERMET_UXY + CHR1_ZZZ*UPPERMET_UXZ + CHR2_YXX = CHR1_XXX*UPPERMET_UXY + CHR1_YXX*UPPERMET_UYY + CHR1_ZXX*UPPERMET_UYZ + CHR2_YXY = CHR1_XXY*UPPERMET_UXY + CHR1_YXY*UPPERMET_UYY + CHR1_ZXY*UPPERMET_UYZ + CHR2_YXZ = CHR1_XXZ*UPPERMET_UXY + CHR1_YXZ*UPPERMET_UYY + CHR1_ZXZ*UPPERMET_UYZ + CHR2_YYY = CHR1_XYY*UPPERMET_UXY + CHR1_YYY*UPPERMET_UYY + CHR1_ZYY*UPPERMET_UYZ + CHR2_YYZ = CHR1_XYZ*UPPERMET_UXY + CHR1_YYZ*UPPERMET_UYY + CHR1_ZYZ*UPPERMET_UYZ + CHR2_YZZ = CHR1_XZZ*UPPERMET_UXY + CHR1_YZZ*UPPERMET_UYY + CHR1_ZZZ*UPPERMET_UYZ + CHR2_ZXX = CHR1_XXX*UPPERMET_UXZ + CHR1_YXX*UPPERMET_UYZ + CHR1_ZXX*UPPERMET_UZZ + CHR2_ZXY = CHR1_XXY*UPPERMET_UXZ + CHR1_YXY*UPPERMET_UYZ + CHR1_ZXY*UPPERMET_UZZ + CHR2_ZXZ = CHR1_XXZ*UPPERMET_UXZ + CHR1_YXZ*UPPERMET_UYZ + CHR1_ZXZ*UPPERMET_UZZ + CHR2_ZYY = CHR1_XYY*UPPERMET_UXZ + CHR1_YYY*UPPERMET_UYZ + CHR1_ZYY*UPPERMET_UZZ + CHR2_ZYZ = CHR1_XYZ*UPPERMET_UXZ + CHR1_YYZ*UPPERMET_UYZ + CHR1_ZYZ*UPPERMET_UZZ + CHR2_ZZZ = CHR1_XZZ*UPPERMET_UXZ + CHR1_YZZ*UPPERMET_UYZ + CHR1_ZZZ*UPPERMET_UZZ + +#endif + +#ifdef CCODE + + CHR2_XXX = CHR1_XXX*UPPERMET_UXX + CHR1_YXX*UPPERMET_UXY + CHR1_ZXX*UPPERMET_UXZ; + CHR2_XXY = CHR1_XXY*UPPERMET_UXX + CHR1_YXY*UPPERMET_UXY + CHR1_ZXY*UPPERMET_UXZ; + CHR2_XXZ = CHR1_XXZ*UPPERMET_UXX + CHR1_YXZ*UPPERMET_UXY + CHR1_ZXZ*UPPERMET_UXZ; + CHR2_XYY = CHR1_XYY*UPPERMET_UXX + CHR1_YYY*UPPERMET_UXY + CHR1_ZYY*UPPERMET_UXZ; + CHR2_XYZ = CHR1_XYZ*UPPERMET_UXX + CHR1_YYZ*UPPERMET_UXY + CHR1_ZYZ*UPPERMET_UXZ; + CHR2_XZZ = CHR1_XZZ*UPPERMET_UXX + CHR1_YZZ*UPPERMET_UXY + CHR1_ZZZ*UPPERMET_UXZ; + CHR2_YXX = CHR1_XXX*UPPERMET_UXY + CHR1_YXX*UPPERMET_UYY + CHR1_ZXX*UPPERMET_UYZ; + CHR2_YXY = CHR1_XXY*UPPERMET_UXY + CHR1_YXY*UPPERMET_UYY + CHR1_ZXY*UPPERMET_UYZ; + CHR2_YXZ = CHR1_XXZ*UPPERMET_UXY + CHR1_YXZ*UPPERMET_UYY + CHR1_ZXZ*UPPERMET_UYZ; + CHR2_YYY = CHR1_XYY*UPPERMET_UXY + CHR1_YYY*UPPERMET_UYY + CHR1_ZYY*UPPERMET_UYZ; + CHR2_YYZ = CHR1_XYZ*UPPERMET_UXY + CHR1_YYZ*UPPERMET_UYY + CHR1_ZYZ*UPPERMET_UYZ; + CHR2_YZZ = CHR1_XZZ*UPPERMET_UXY + CHR1_YZZ*UPPERMET_UYY + CHR1_ZZZ*UPPERMET_UYZ; + CHR2_ZXX = CHR1_XXX*UPPERMET_UXZ + CHR1_YXX*UPPERMET_UYZ + CHR1_ZXX*UPPERMET_UZZ; + CHR2_ZXY = CHR1_XXY*UPPERMET_UXZ + CHR1_YXY*UPPERMET_UYZ + CHR1_ZXY*UPPERMET_UZZ; + CHR2_ZXZ = CHR1_XXZ*UPPERMET_UXZ + CHR1_YXZ*UPPERMET_UYZ + CHR1_ZXZ*UPPERMET_UZZ; + CHR2_ZYY = CHR1_XYY*UPPERMET_UXZ + CHR1_YYY*UPPERMET_UYZ + CHR1_ZYY*UPPERMET_UZZ; + CHR2_ZYZ = CHR1_XYZ*UPPERMET_UXZ + CHR1_YYZ*UPPERMET_UYZ + CHR1_ZYZ*UPPERMET_UZZ; + CHR2_ZZZ = CHR1_XZZ*UPPERMET_UXZ + CHR1_YZZ*UPPERMET_UYZ + CHR1_ZZZ*UPPERMET_UZZ; + +#endif + +#endif diff --git a/src/macro/CHR2_undefine.h b/src/macro/CHR2_undefine.h new file mode 100644 index 0000000..97d0bbb --- /dev/null +++ b/src/macro/CHR2_undefine.h @@ -0,0 +1,13 @@ +/*@@ + @header CHR2_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef CHR2_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR1_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_undefine.h" + diff --git a/src/macro/DA_declare.h b/src/macro/DA_declare.h new file mode 100644 index 0000000..a1da72f --- /dev/null +++ b/src/macro/DA_declare.h @@ -0,0 +1,109 @@ +/*@@ + @header DA_declare.h + @date Jul 98 + @author Gabrielle Allen + @desc + Declarations for macro @seefile DA_guts.h to compute first + spatial derivatives of the lapse + @enddesc +@@*/ + +#ifndef DA_DECLARE +#define DA_DECLARE + +#ifdef FCODE + +/* Input variables */ +#undef DA_A_IP +#define DA_A_IP alp(i+1,j,k) +#undef DA_A_IM +#define DA_A_IM alp(i-1,j,k) +#undef DA_A_JP +#define DA_A_JP alp(i,j+1,k) +#undef DA_A_JM +#define DA_A_JM alp(i,j-1,k) +#undef DA_A_KP +#define DA_A_KP alp(i,j,k+1) +#undef DA_A_KM +#define DA_A_KM alp(i,j,k-1) + +/* Output variables */ +#undef DA_DXDA +#define DA_DXDA da_dxda +#undef DA_DYDA +#define DA_DYDA da_dyda +#undef DA_DZDA +#define DA_DZDA da_dzda + +/* Internal variables */ +#undef DA_OO2DX +#define DA_OO2DX da_oo2dx +#undef DA_OO2DY +#define DA_OO2DY da_oo2dy +#undef DA_OO2DZ +#define DA_OO2DZ da_oo2dz +#undef DA_DX +#define DA_DX dx +#undef DA_DY +#define DA_DY dy +#undef DA_DZ +#define DA_DZ dz + +/* Declare internal variables */ + REAL DA_OO2DX + REAL DA_OO2DY + REAL DA_OO2DZ + +/* Declare output variables */ + REAL DA_DXDA + REAL DA_DYDA + REAL DA_DZDA + +#endif + + +#ifdef CCODE + +/* Input variables */ +#undef DA_A_IP +#define DA_A_IP alp[ di + ijk] +#undef DA_A_IM +#define DA_A_IM alp[-di + ijk] +#undef DA_A_JP +#define DA_A_JP alp[ dj + ijk] +#undef DA_A_JM +#define DA_A_JM alp[-dj + ijk] +#undef DA_A_KP +#define DA_A_KP alp[ dk + ijk] +#undef DA_A_KM +#define DA_A_KM alp[-dk + ijk] + +/* Output variables */ +#undef DA_DXDA +#define DA_DXDA da_dxda +#undef DA_DYDA +#define DA_DYDA da_dyda +#undef DA_DZDA +#define DA_DZDA da_dzda + +/* Internal variables */ +#undef DA_OO2DX +#define DA_OO2DX da_oo2dx +#undef DA_OO2DY +#define DA_OO2DY da_oo2dy +#undef DA_OO2DZ +#define DA_OO2DZ da_oo2dz + +/* Declare internal variables */ + double DA_OO2DX; + double DA_OO2DY; + double DA_OO2DZ; + +/* Declare output variables */ + double DA_DXDA; + double DA_DYDA; + double DA_DZDA; + +#endif + +#endif diff --git a/src/macro/DA_guts.h b/src/macro/DA_guts.h new file mode 100644 index 0000000..2797294 --- /dev/null +++ b/src/macro/DA_guts.h @@ -0,0 +1,38 @@ +/*@@ + @header DA_guts.h + @date Jul 98 + @author Gabrielle Allen + @desc + Macro to calculate all first spatial derivative of lapse + @enddesc +@@*/ + +#ifndef DA_GUTS +#define DA_GUTS + +#ifdef FCODE + + DA_OO2DX = 1D0/(2D0*DA_DX) + DA_OO2DY = 1D0/(2D0*DA_DY) + DA_OO2DZ = 1D0/(2D0*DA_DZ) + + DA_DXDA = DA_OO2DX*(DA_A_IP - DA_A_IM) + DA_DYDA = DA_OO2DY*(DA_A_JP - DA_A_JM) + DA_DZDA = DA_OO2DZ*(DA_A_KP - DA_A_KM) + +#endif + +#ifdef CCODE + + DA_OO2DX = 1D0/(2D0*DA_DX); + DA_OO2DY = 1D0/(2D0*DA_DY); + DA_OO2DZ = 1D0/(2D0*DA_DZ); + + DA_DXDA = DA_OO2DX*(DA_A_IP - DA_A_IM); + DA_DYDA = DA_OO2DY*(DA_A_JP - DA_A_JM); + DA_DZDA = DA_OO2DZ*(DA_A_KP - DA_A_KM); + +#endif + +#endif + diff --git a/src/macro/DA_undefine.h b/src/macro/DA_undefine.h new file mode 100644 index 0000000..b5d1504 --- /dev/null +++ b/src/macro/DA_undefine.h @@ -0,0 +1,12 @@ +/*@@ + @header DA_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DA_GUTS + + + diff --git a/src/macro/DB_declare.h b/src/macro/DB_declare.h new file mode 100644 index 0000000..51341ba --- /dev/null +++ b/src/macro/DB_declare.h @@ -0,0 +1,24 @@ +/*@@ + @header DB_declare.h + @date Jul 98 + @author Gabrielle Allen + @desc + + Declarations for macro to calculate all the first derivatives of the + shift vector with respect to x, y, z using the subsidary macros + @seefile DXDB_guts.h @seefile DYDB_guts.h and @seefile DZDB_guts.h. + + Calls the macros @seefile DXDB_declare.h @seefile DYDB_declare.h + and @seefile DZDB_declare.h. + + @enddesc +@@*/ + +#ifndef DB_DECLARE +#define DB_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDB_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDB_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDB_declare.h" + +#endif diff --git a/src/macro/DB_guts.h b/src/macro/DB_guts.h new file mode 100644 index 0000000..72ea813 --- /dev/null +++ b/src/macro/DB_guts.h @@ -0,0 +1,25 @@ +/*@@ + @header DB_guts.h + @date Jul 98 + @author Gabrielle Allen + @desc + Macro to calculate all the first derivatives of the + shift vector with respect to x, y, z + + Calls the macros @seefile DXDB_guts.h @seefile DYDB_guts.h + and @seefile DZDB_guts.h. + + The macro is defined in terms of standard variables in + @seefile DXDB_declare.h ,@seefile DYDB_declare.h and + @seefile DZDB_declare.h + @enddesc +@@*/ + +#ifndef DB_GUTS +#define DB_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDB_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDB_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDB_guts.h" + +#endif diff --git a/src/macro/DB_undefine.h b/src/macro/DB_undefine.h new file mode 100644 index 0000000..3083532 --- /dev/null +++ b/src/macro/DB_undefine.h @@ -0,0 +1,14 @@ +/*@@ + @header DB_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DB_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDB_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDB_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDB_undefine.h" + diff --git a/src/macro/DCGDT_declare.h b/src/macro/DCGDT_declare.h new file mode 100644 index 0000000..3208a76 --- /dev/null +++ b/src/macro/DCGDT_declare.h @@ -0,0 +1,123 @@ +/*@@ + @header DCGDT_declare.h + @date Jul 98 + @author Gabrielle Allen + @desc + Declarations for macro @seefile DCGDT_guts.h to calculate the source term + in the evolution equation for the conformal 3-metric. That is + + d g~_ij/dt =( - 2 alpha K_ij + L_beta g_ij )/Psi^4 + + where g~ is the conformal metric + @enddesc +@@*/ + +#ifndef DCGDT_DECLARE +#define DCGDT_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/LIEG_declare.h" + +#ifdef FCODE + +/* Input variables */ +#undef DCGDT_A +#define DCGDT_A alp(i,j,k) +#undef DCGDT_KXX +#define DCGDT_KXX hxx(i,j,k) +#undef DCGDT_KXY +#define DCGDT_KXY hxy(i,j,k) +#undef DCGDT_KXZ +#define DCGDT_KXZ hxz(i,j,k) +#undef DCGDT_KYY +#define DCGDT_KYY hyy(i,j,k) +#undef DCGDT_KYZ +#define DCGDT_KYZ hyz(i,j,k) +#undef DCGDT_KZZ +#define DCGDT_KZZ hzz(i,j,k) +#undef DCGDT_PSI +#define DCGDT_PSI psi(i,j,k) + +/* Internal variables */ +#undef DCGDT_IPSI4 +#define DCGDT_IPSI4 cdgdt_ipsi4 + +/* Output variables */ +#undef DCGDT_DCGXXDT +#define DCGDT_DCGXXDT cdgdt_cdgxxdt +#undef DCGDT_DCGXYDT +#define DCGDT_DCGXYDT cdgdt_cdgxydt +#undef DCGDT_DCGXZDT +#define DCGDT_DCGXZDT cdgdt_cdgxzdt +#undef DCGDT_DCGYYDT +#define DCGDT_DCGYYDT cdgdt_cdgyydt +#undef DCGDT_DCGYZDT +#define DCGDT_DCGYZDT cdgdt_cdgyzdt +#undef DCGDT_DCGZZDT +#define DCGDT_DCGZZDT cdgdt_cdgzzdt + +/* Declare internal variables */ + REAL DCGDT_IPSI4 + +/* Declare output variables */ + REAL DCGDT_DCGXXDT + REAL DCGDT_DCGXYDT + REAL DCGDT_DCGXZDT + REAL DCGDT_DCGYYDT + REAL DCGDT_DCGYZDT + REAL DCGDT_DCGZZDT + +#endif + + +#ifdef CCODE + +/* Input variables */ +#undef DCGDT_A +#define DCGDT_A alp[ijk] +#undef DCGDT_KXX +#define DCGDT_KXX hxx[ijk] +#undef DCGDT_KXY +#define DCGDT_KXY hxy[ijk] +#undef DCGDT_KXZ +#define DCGDT_KXZ hxz[ijk] +#undef DCGDT_KYY +#define DCGDT_KYY hyy[ijk] +#undef DCGDT_KYZ +#define DCGDT_KYZ hyz[ijk] +#undef DCGDT_KZZ +#define DCGDT_KZZ hzz[ijk] +#undef DCGDT_PSI +#define DCGDT_PSI psi[ijk] + +/* Internal variables */ +#undef DCGDT_IPSI4 +#define DCGDT_IPSI4 cdgdt_ipsi4 + +/* Output variables */ +#undef DCGDT_DCGXXDT +#define DCGDT_DCGXXDT cdgdt_cdgxxdt +#undef DCGDT_DCGXYDT +#define DCGDT_DCGXYDT cdgdt_cdgxydt +#undef DCGDT_DCGXZDT +#define DCGDT_DCGXZDT cdgdt_cdgxzdt +#undef DCGDT_DCGYYDT +#define DCGDT_DCGYYDT cdgdt_cdgyydt +#undef DCGDT_DCGYZDT +#define DCGDT_DCGYZDT cdgdt_cdgyzdt +#undef DCGDT_DCGZZDT +#define DCGDT_DCGZZDT cdgdt_cdgzzdt + +/* Declare internal variables */ + double DCGDT_IPSI4; + +/* Declare output variables */ + double DCGDT_DCGXXDT; + double DCGDT_DCGXYDT; + double DCGDT_DCGXZDT; + double DCGDT_DCGYYDT; + double DCGDT_DCGYZDT; + double DCGDT_DCGZZDT; + +#endif + +#endif diff --git a/src/macro/DCGDT_guts.h b/src/macro/DCGDT_guts.h new file mode 100644 index 0000000..10553c4 --- /dev/null +++ b/src/macro/DCGDT_guts.h @@ -0,0 +1,96 @@ +/*@@ + @header DCGDT_guts.h + @date Jul 98 + @author Gabrielle Allen + @desc + Macro to calculate the source term in the evolution equation for the + conformal 3-metric. That is + + d g~_ij/dt =( - 2 alpha K_ij + L_beta g_ij )/Psi^4 + + where g~ is the conformal metric + + @enddesc +@@*/ + +#ifndef DCGDT_GUTS +#define DCGDT_GUTS + +#ifdef FCODE + + DCGDT_DCGXXDT = - 2*DCGDT_A*DCGDT_KXX + DCGDT_DCGXYDT = - 2*DCGDT_A*DCGDT_KXY + DCGDT_DCGXZDT = - 2*DCGDT_A*DCGDT_KXZ + DCGDT_DCGYYDT = - 2*DCGDT_A*DCGDT_KYY + DCGDT_DCGYZDT = - 2*DCGDT_A*DCGDT_KYZ + DCGDT_DCGZZDT = - 2*DCGDT_A*DCGDT_KZZ + + IF (conformal_state .eq. CONFORMAL_METRIC) THEN + + DCGDT_IPSI4 = 1D0/(DCGDT_PSI**4) + + DCGDT_DCGXXDT = DCGDT_DCGXXDT*DCGDT_IPSI4 + DCGDT_DCGXYDT = DCGDT_DCGXYDT*DCGDT_IPSI4 + DCGDT_DCGXZDT = DCGDT_DCGXZDT*DCGDT_IPSI4 + DCGDT_DCGYYDT = DCGDT_DCGYYDT*DCGDT_IPSI4 + DCGDT_DCGYZDT = DCGDT_DCGYZDT*DCGDT_IPSI4 + DCGDT_DCGZZDT = DCGDT_DCGZZDT*DCGDT_IPSI4 + + END IF + + IF (shift_active .ne. SHIFT_INACTIVE) THEN + +#include "../../packages/CactusEinstein/Einstein/src/macro/LIEG_guts.h" + + DCGDT_DCGXXDT = DCGDT_DCGXXDT + LIEG_LGXX + DCGDT_DCGXYDT = DCGDT_DCGXYDT + LIEG_LGXY + DCGDT_DCGXZDT = DCGDT_DCGXZDT + LIEG_LGXZ + DCGDT_DCGYYDT = DCGDT_DCGYYDT + LIEG_LGYY + DCGDT_DCGYZDT = DCGDT_DCGYZDT + LIEG_LGYZ + DCGDT_DCGZZDT = DCGDT_DCGZZDT + LIEG_LGZZ + + END IF + +#endif + +#ifdef CCODE + + DCGDT_DCGXXDT = - 2*DCGDT_A*DCGDT_KXX + DCGDT_DCGXYDT = - 2*DCGDT_A*DCGDT_KXY + DCGDT_DCGXZDT = - 2*DCGDT_A*DCGDT_KXZ + DCGDT_DCGYYDT = - 2*DCGDT_A*DCGDT_KYY + DCGDT_DCGYZDT = - 2*DCGDT_A*DCGDT_KYZ + DCGDT_DCGZZDT = - 2*DCGDT_A*DCGDT_KZZ + + if (conformal_state == CONFORMAL_METRIC) + { + + DCGDT_IPSI4 = 1D0/(DCGDT_PSI**4) + + DCGDT_DCGXXDT = DCGDT_DCGXXDT*DCGDT_IPSI4 + DCGDT_DCGXYDT = DCGDT_DCGXYDT*DCGDT_IPSI4 + DCGDT_DCGXZDT = DCGDT_DCGXZDT*DCGDT_IPSI4 + DCGDT_DCGYYDT = DCGDT_DCGYYDT*DCGDT_IPSI4 + DCGDT_DCGYZDT = DCGDT_DCGYZDT*DCGDT_IPSI4 + DCGDT_DCGZZDT = DCGDT_DCGZZDT*DCGDT_IPSI4 + + } + + if (shift) + { + +#include "../../packages/CactusEinstein/Einstein/src/macro/LIEG_guts.h" + + DCGDT_DCGXXDT = DCGDT_DCGXXDT + LIEG_LGXX + DCGDT_DCGXYDT = DCGDT_DCGXYDT + LIEG_LGXY + DCGDT_DCGXZDT = DCGDT_DCGXZDT + LIEG_LGXZ + DCGDT_DCGYYDT = DCGDT_DCGYYDT + LIEG_LGYY + DCGDT_DCGYZDT = DCGDT_DCGYZDT + LIEG_LGYZ + DCGDT_DCGZZDT = DCGDT_DCGZZDT + LIEG_LGZZ + + } + +#endif + +#endif + diff --git a/src/macro/DCGDT_undefine.h b/src/macro/DCGDT_undefine.h new file mode 100644 index 0000000..312fcbd --- /dev/null +++ b/src/macro/DCGDT_undefine.h @@ -0,0 +1,13 @@ +/*@@ + @header DCGDT_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DCGDT_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/LIEG_undefine.h" + + diff --git a/src/macro/DDA_declare.h b/src/macro/DDA_declare.h new file mode 100644 index 0000000..b9d7a29 --- /dev/null +++ b/src/macro/DDA_declare.h @@ -0,0 +1,197 @@ +/*@@ + @header DDA_declare.h + @date Jul 98 + @author Gabrielle Allen + @desc + Declarations for macro @seefile DDA_guts.h to compute second + spatial derivatives of the lapse + @enddesc +@@*/ + +#ifndef DDA_DECLARE +#define DDA_DECLARE + +#ifdef FCODE + +/* Input variables */ +#undef DDA_A +#define DDA_A alp(i,j,k) +#undef DDA_A_IP +#define DDA_A_IP alp(i+1,j,k) +#undef DDA_A_IM +#define DDA_A_IM alp(i-1,j,k) +#undef DDA_A_JP +#define DDA_A_JP alp(i,j+1,k) +#undef DDA_A_JM +#define DDA_A_JM alp(i,j-1,k) +#undef DDA_A_KP +#define DDA_A_KP alp(i,j,k+1) +#undef DDA_A_KM +#define DDA_A_KM alp(i,j,k-1) +#undef DDA_A_IPJP +#define DDA_A_IPJP alp(i+1,j+1,k) +#undef DDA_A_IPJM +#define DDA_A_IPJM alp(i+1,j-1,k) +#undef DDA_A_IMJP +#define DDA_A_IMJP alp(i-1,j+1,k) +#undef DDA_A_IMJM +#define DDA_A_IMJM alp(i-1,j-1,k) +#undef DDA_A_IPKP +#define DDA_A_IPKP alp(i+1,j,k+1) +#undef DDA_A_IPKM +#define DDA_A_IPKM alp(i+1,j,k-1) +#undef DDA_A_IMKP +#define DDA_A_IMKP alp(i-1,j,k+1) +#undef DDA_A_IMKM +#define DDA_A_IMKM alp(i-1,j,k-1) +#undef DDA_A_JPKP +#define DDA_A_JPKP alp(i,j+1,k+1) +#undef DDA_A_JPKM +#define DDA_A_JPKM alp(i,j+1,k-1) +#undef DDA_A_JMKP +#define DDA_A_JMKP alp(i,j-1,k+1) +#undef DDA_A_JMKM +#define DDA_A_JMKM alp(i,j-1,k-1) + +/* Output variables */ +#undef DDA_DXXDA +#define DDA_DXXDA dda_dxxda +#undef DDA_DXYDA +#define DDA_DXYDA dda_dxyda +#undef DDA_DXZDA +#define DDA_DXZDA dda_dxzda +#undef DDA_DYYDA +#define DDA_DYYDA dda_dyyda +#undef DDA_DYZDA +#define DDA_DYZDA dda_dyzda +#undef DDA_DZZDA +#define DDA_DZZDA dda_dzzda + +/* Internal variables */ +#undef DDA_OODX2 +#define DDA_OODX2 dda_oodx2 +#undef DDA_OODY2 +#define DDA_OODY2 dda_oody2 +#undef DDA_OODZ2 +#define DDA_OODZ2 dda_oodz2 +#undef DDA_OO4DXDY +#define DDA_OO4DXDY dda_oo4dxdy +#undef DDA_OO4DXDZ +#define DDA_OO4DXDZ dda_oo4dxdz +#undef DDA_OO4DYDZ +#define DDA_OO4DYDZ dda_oo4dydz +#undef DDA_DX +#define DDA_DX dx +#undef DDA_DY +#define DDA_DY dy +#undef DDA_DZ +#define DDA_DZ dz + +/* Declare internal variables */ + REAL DDA_OODX2 + REAL DDA_OODY2 + REAL DDA_OODZ2 + REAL DDA_OO4DXDY + REAL DDA_OO4DXDZ + REAL DDA_OO4DYDZ + +/* Declare output variables */ + REAL DDA_DXXDA + REAL DDA_DXYDA + REAL DDA_DXZDA + REAL DDA_DYYDA + REAL DDA_DYZDA + REAL DDA_DZZDA + +#endif + + +#ifdef CCODE + +/* Input variables */ +#undef DDA_A +#define DDA_A alp[ijk] +#undef DDA_A_IP +#define DDA_A_IP alp[ di + ijk] +#undef DDA_A_IM +#define DDA_A_IM alp[-di + ijk] +#undef DDA_A_JP +#define DDA_A_JP alp[ dj + ijk] +#undef DDA_A_JM +#define DDA_A_JM alp[-dj + ijk] +#undef DDA_A_KP +#define DDA_A_KP alp[ dk + ijk] +#undef DDA_A_KM +#define DDA_A_KM alp[-dk + ijk] +#undef DDA_A_IPJP +#define DDA_A_IPJP alp[ di + dj + ijk] +#undef DDA_A_IPJM +#define DDA_A_IPJM alp[ di - dj + ijk] +#undef DDA_A_IMJP +#define DDA_A_IMJP alp[-di + dj + ijk] +#undef DDA_A_IMJM +#define DDA_A_IMJM alp[-di - dj + ijk] +#undef DDA_A_IPKP +#define DDA_A_IPKP alp[ di + dk + ijk] +#undef DDA_A_IPKM +#define DDA_A_IPKM alp[ di - dk + ijk] +#undef DDA_A_IMKP +#define DDA_A_IMKP alp[-di + dk + ijk] +#undef DDA_A_IMKM +#define DDA_A_IMKM alp[-di - dk + ijk] +#undef DDA_A_JPKP +#define DDA_A_JPKP alp[ dj + dk + ijk] +#undef DDA_A_JPKM +#define DDA_A_JPKM alp[ dj - dk + ijk] +#undef DDA_A_JMKP +#define DDA_A_JMKP alp[-dj + dk + ijk] +#undef DDA_A_JMKM +#define DDA_A_JMKM alp[-dj - dk + ijk] + +/* Output variables */ +#undef DDA_DXXDA +#define DDA_DXXDA dda_dxxda +#undef DDA_DXYDA +#define DDA_DXYDA dda_dxyda +#undef DDA_DXZDA +#define DDA_DXZDA dda_dxzda +#undef DDA_DYYDA +#define DDA_DYYDA dda_dyyda +#undef DDA_DYZDA +#define DDA_DYZDA dda_dyzda +#undef DDA_DZZDA +#define DDA_DZZDA dda_dzzda + +/* Internal variables */ +#undef DDA_OODX2 +#define DDA_OODX2 dda_oodx2 +#undef DDA_OODY2 +#define DDA_OODY2 dda_oody2 +#undef DDA_OODZ2 +#define DDA_OODZ2 dda_oodz2 +#undef DDA_OO4DXDY +#define DDA_OO4DXDY dda_oo4dxdy +#undef DDA_OO4DXDZ +#define DDA_OO4DXDZ dda_oo4dxdz +#undef DDA_OO4DYDZ +#define DDA_OO4DYDZ dda_oo4dydz + +/* Declare internal variables */ + double DDA_OODX2; + double DDA_OODY2; + double DDA_OODZ2; + double DDA_OO4DXDY; + double DDA_OO4DXDZ; + double DDA_OO4DYDZ; + +/* Declare output variables */ + double DDA_DXXDA; + double DDA_DXYDA; + double DDA_DXZDA; + double DDA_DYYDA; + double DDA_DYZDA; + double DDA_DZZDA; + +#endif + +#endif diff --git a/src/macro/DDA_guts.h b/src/macro/DDA_guts.h new file mode 100644 index 0000000..de4c849 --- /dev/null +++ b/src/macro/DDA_guts.h @@ -0,0 +1,52 @@ +/*@@ + @header DDA_guts.h + @date Jul 98 + @author Gabrielle Allen + @desc + Macro to calculate all second spatial derivative of lapse + @enddesc +@@*/ + +#ifndef DDA_GUTS +#define DDA_GUTS + +#ifdef FCODE + + DDA_OODX2 = 1D0/(DDA_DX*DDA_DX) + DDA_OODY2 = 1D0/(DDA_DY*DDA_DY) + DDA_OODZ2 = 1D0/(DDA_DZ*DDA_DZ) + DDA_OO4DXDY = 1D0/(4D0*DDA_DX*DDA_DY) + DDA_OO4DXDZ = 1D0/(4D0*DDA_DX*DDA_DZ) + DDA_OO4DYDZ = 1D0/(4D0*DDA_DY*DDA_DZ) + + DDA_DXXDA = DDA_OODX2*(DDA_A_IP - 2D0*DDA_A + DDA_A_IM) + DDA_DYYDA = DDA_OODY2*(DDA_A_JP - 2D0*DDA_A + DDA_A_JM) + DDA_DZZDA = DDA_OODZ2*(DDA_A_KP - 2D0*DDA_A + DDA_A_KM) + + DDA_DXYDA = DDA_OO4DXDY*(DDA_A_IPJP-DDA_A_IPJM-DDA_A_IMJP+DDA_A_IMJM) + DDA_DXZDA = DDA_OO4DXDZ*(DDA_A_IPKP-DDA_A_IPKM-DDA_A_IMKP+DDA_A_IMKM) + DDA_DYZDA = DDA_OO4DYDZ*(DDA_A_JPKP-DDA_A_JPKM-DDA_A_JMKP+DDA_A_JMKM) + +#endif + +#ifdef CCODE + + DDA_OODX2 = 1/(DDA_DX*DDA_DX); + DDA_OODY2 = 1/(DDA_DY*DDA_DY); + DDA_OODZ2 = 1/(DDA_DZ*DDA_DZ); + DDA_OO4DXDY = 1/(4*DDA_DX*DDA_DY); + DDA_OO4DXDZ = 1/(4*DDA_DX*DDA_DZ); + DDA_OO4DYDZ = 1/(4*DDA_DY*DDA_DZ); + + DDA_DXXDA = DDA_OODX2*(DDA_A_IP - 2*DDA_A + DDA_A_IM); + DDA_DYYDA = DDA_OODY2*(DDA_A_JP - 2*DDA_A + DDA_A_JM); + DDA_DZZDA = DDA_OODZ2*(DDA_A_KP - 2*DDA_A + DDA_A_KM); + + DDA_DXYDA = DDA_OO4DXDY*(DDA_A_IPJP-DDA_A_IPJM-DDA_A_IMJP+DDA_A_IMJM); + DDA_DXZDA = DDA_OO4DXDZ*(DDA_A_IPKP-DDA_A_IPKM-DDA_A_IMKP+DDA_A_IMKM); + DDA_DYZDA = DDA_OO4DYDZ*(DDA_A_JPKP-DDA_A_JPKM-DDA_A_JMKP+DDA_A_JMKM); + +#endif + +#endif + diff --git a/src/macro/DDA_undefine.h b/src/macro/DDA_undefine.h new file mode 100644 index 0000000..8070d45 --- /dev/null +++ b/src/macro/DDA_undefine.h @@ -0,0 +1,10 @@ +/*@@ + @header DDA_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DDA_GUTS + diff --git a/src/macro/DDG_declare.h b/src/macro/DDG_declare.h new file mode 100644 index 0000000..4a951f8 --- /dev/null +++ b/src/macro/DDG_declare.h @@ -0,0 +1,105 @@ +/*@@ + @header DDG_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + + Declarations for macro to calculate all the second (and first) + derivatives of the physical metric with respect to x, y, z using the + subsidary macros @seefile D??DG_guts.h and D?DG_guts.h + + Calls the macros @seefile D??DG_declare.h which in turn call + @seefile D?DG_declare.h + + @enddesc +@@*/ + +#ifndef DDG_DECLARE +#define DDG_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXXDG_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DXYDG_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DXZDG_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DYYDG_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DYZDG_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DZZDG_declare.h" + +#undef DDG_DXXDGXX +#define DDG_DXXDGXX DXXDG_DXXDGXX +#undef DDG_DXYDGXX +#define DDG_DXYDGXX DXYDG_DXYDGXX +#undef DDG_DXZDGXX +#define DDG_DXZDGXX DXZDG_DXZDGXX +#undef DDG_DYYDGXX +#define DDG_DYYDGXX DYYDG_DYYDGXX +#undef DDG_DYZDGXX +#define DDG_DYZDGXX DYZDG_DYZDGXX +#undef DDG_DZZDGXX +#define DDG_DZZDGXX DZZDG_DZZDGXX + +#undef DDG_DXXDGXY +#define DDG_DXXDGXY DXXDG_DXXDGXY +#undef DDG_DXYDGXY +#define DDG_DXYDGXY DXYDG_DXYDGXY +#undef DDG_DXZDGXY +#define DDG_DXZDGXY DXZDG_DXZDGXY +#undef DDG_DYYDGXY +#define DDG_DYYDGXY DYYDG_DYYDGXY +#undef DDG_DYZDGXY +#define DDG_DYZDGXY DYZDG_DYZDGXY +#undef DDG_DZZDGXY +#define DDG_DZZDGXY DZZDG_DZZDGXY + +#undef DDG_DXXDGXZ +#define DDG_DXXDGXZ DXXDG_DXXDGXZ +#undef DDG_DXYDGXZ +#define DDG_DXYDGXZ DXYDG_DXYDGXZ +#undef DDG_DXZDGXZ +#define DDG_DXZDGXZ DXZDG_DXZDGXZ +#undef DDG_DYYDGXZ +#define DDG_DYYDGXZ DYYDG_DYYDGXZ +#undef DDG_DYZDGXZ +#define DDG_DYZDGXZ DYZDG_DYZDGXZ +#undef DDG_DZZDGXZ +#define DDG_DZZDGXZ DZZDG_DZZDGXZ + +#undef DDG_DXXDGYY +#define DDG_DXXDGYY DXXDG_DXXDGYY +#undef DDG_DXYDGYY +#define DDG_DXYDGYY DXYDG_DXYDGYY +#undef DDG_DXZDGYY +#define DDG_DXZDGYY DXZDG_DXZDGYY +#undef DDG_DYYDGYY +#define DDG_DYYDGYY DYYDG_DYYDGYY +#undef DDG_DYZDGYY +#define DDG_DYZDGYY DYZDG_DYZDGYY +#undef DDG_DZZDGYY +#define DDG_DZZDGYY DZZDG_DZZDGYY + +#undef DDG_DXXDGYZ +#define DDG_DXXDGYZ DXXDG_DXXDGYZ +#undef DDG_DXYDGYZ +#define DDG_DXYDGYZ DXYDG_DXYDGYZ +#undef DDG_DXZDGYZ +#define DDG_DXZDGYZ DXZDG_DXZDGYZ +#undef DDG_DYYDGYZ +#define DDG_DYYDGYZ DYYDG_DYYDGYZ +#undef DDG_DYZDGYZ +#define DDG_DYZDGYZ DYZDG_DYZDGYZ +#undef DDG_DZZDGYZ +#define DDG_DZZDGYZ DZZDG_DZZDGYZ + +#undef DDG_DXXDGZZ +#define DDG_DXXDGZZ DXXDG_DXXDGZZ +#undef DDG_DXYDGZZ +#define DDG_DXYDGZZ DXYDG_DXYDGZZ +#undef DDG_DXZDGZZ +#define DDG_DXZDGZZ DXZDG_DXZDGZZ +#undef DDG_DYYDGZZ +#define DDG_DYYDGZZ DYYDG_DYYDGZZ +#undef DDG_DYZDGZZ +#define DDG_DYZDGZZ DYZDG_DYZDGZZ +#undef DDG_DZZDGZZ +#define DDG_DZZDGZZ DZZDG_DZZDGZZ + +#endif diff --git a/src/macro/DDG_guts.h b/src/macro/DDG_guts.h new file mode 100644 index 0000000..87f350e --- /dev/null +++ b/src/macro/DDG_guts.h @@ -0,0 +1,26 @@ +/*@@ + @header DDG_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + Macro to calculate all the second (and first) derivatives of the + physical metric with respect to x, y, z + + Calls the macros @seefile D??DG_guts.h and @seefile D?DG_guts.h + + The macro is defined in terms of standard variables in + @seefile D??DG_declare.h ,@seefile D?DG_declare.h + @enddesc +@@*/ + +#ifndef DDG_GUTS +#define DDG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXXDG_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DXYDG_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DXZDG_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DYYDG_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DYZDG_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DZZDG_guts.h" + +#endif diff --git a/src/macro/DDG_undefine.h b/src/macro/DDG_undefine.h new file mode 100644 index 0000000..62b62de --- /dev/null +++ b/src/macro/DDG_undefine.h @@ -0,0 +1,17 @@ +/*@@ + @header DDG_undefine.h + @date Jun 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DDG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXXDG_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DXYDG_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DXZDG_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DYYDG_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DYZDG_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DZZDG_undefine.h" + diff --git a/src/macro/DETG_declare.h b/src/macro/DETG_declare.h new file mode 100644 index 0000000..8c181f8 --- /dev/null +++ b/src/macro/DETG_declare.h @@ -0,0 +1,129 @@ +/*@@ + @header DETG_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + Determinants of physical and conformal 3-metric + @enddesc +@@*/ + +#ifndef DETG_DECLARE +#define DETG_DECLARE + +#ifdef FCODE + +/* Input variables */ +#undef DETG_PSI +#define DETG_PSI psi(i,j,k) + +#undef DETG_GXX +#define DETG_GXX gxx(i,j,k) +#undef DETG_GXY +#define DETG_GXY gxy(i,j,k) +#undef DETG_GXZ +#define DETG_GXZ gxz(i,j,k) +#undef DETG_GYY +#define DETG_GYY gyy(i,j,k) +#undef DETG_GYZ +#define DETG_GYZ gyz(i,j,k) +#undef DETG_GZZ +#define DETG_GZZ gzz(i,j,k) + +/* Output variables */ +#undef DETG_DETG +#define DETG_DETG detg_detg +#undef DETG_DETCG +#define DETG_DETCG detg_detcg + + +/* Temporary variables */ +#undef DETG_PSI4 +#define DETG_PSI4 detg_psi4 + +#undef DETG_TEMPXX +#define DETG_TEMPXX detg_tempxx +#undef DETG_TEMPXY +#define DETG_TEMPXY detg_tempxy +#undef DETG_TEMPXZ +#define DETG_TEMPXZ detg_tempxz +#undef DETG_TEMPYY +#define DETG_TEMPYY detg_tempyy +#undef DETG_TEMPYZ +#define DETG_TEMPYZ detg_tempyz +#undef DETG_TEMPZZ +#define DETG_TEMPZZ detg_tempzz + +/* Declare internal variables */ + REAL DETG_PSI4 + REAL DETG_TEMPXX,DETG_TEMPXY,DETG_TEMPXZ + REAL DETG_TEMPYY,DETG_TEMPYZ,DETG_TEMPZZ + +/* Declare output variables */ + REAL DETG_DETG, DETG_DETCG + +#endif + + + + +#ifdef CCODE + +/* Input variables */ +#undef DETG_PSI +#define DETG_PSI psi[ijk] + +#undef DETG_GXX +#define DETG_GXX gxx[ijk] +#undef DETG_GXY +#define DETG_GXY gxy[ijk] +#undef DETG_GXZ +#define DETG_GXZ gxz[ijk] +#undef DETG_GYY +#define DETG_GYY gyy[ijk] +#undef DETG_GYZ +#define DETG_GYZ gyz[ijk] +#undef DETG_GZZ +#define DETG_GZZ gzz[ijk] + +/* Output variables */ +#undef DETG_DETG +#define DETG_DETG detg_detg +#undef DETG_DETCG +#define DETG_DETCG detg_detcg + +/* Internal variables */ + +#undef DETG_PSI4 +#define DETG_PSI4 detg_psi4 + +#undef DETG_TEMPXX +#define DETG_TEMPXX detg_tempxx +#undef DETG_TEMPXY +#define DETG_TEMPXY detg_tempxy +#undef DETG_TEMPXZ +#define DETG_TEMPXZ detg_tempxz +#undef DETG_TEMPYY +#define DETG_TEMPYY detg_tempyy +#undef DETG_TEMPYZ +#define DETG_TEMPYZ detg_tempyz +#undef DETG_TEMPZZ +#define DETG_TEMPZZ detg_tempzz + +/* Declare internal variables */ +double DETG_PSI4; +double DETG_TEMPXX; +double DETG_TEMPXY; +double DETG_TEMPXZ; +double DETG_TEMPYY; +double DETG_TEMPYZ; +double DETG_TEMPZZ; + +/* Declare output variables */ +double DETG_DETG; +double DETG_DETCG + +#endif + +#endif + + diff --git a/src/macro/DETG_guts.h b/src/macro/DETG_guts.h new file mode 100644 index 0000000..a9025ec --- /dev/null +++ b/src/macro/DETG_guts.h @@ -0,0 +1,57 @@ +/* +DETG_guts.h + +Macro to calculate the determinants of the conformal and +physical 3-metric + +Gabrielle Allen, 5th November 1998 + +*/ + +#ifndef DETG_GUTS +#define DETG_GUTS + +#ifdef FCODE + + DETG_PSI4 = DETG_PSI**4 + + DETG_TEMPXX = DETG_GYY*DETG_GZZ - DETG_GYZ*DETG_GYZ + DETG_TEMPXY = DETG_GXZ*DETG_GYZ - DETG_GXY*DETG_GZZ + DETG_TEMPXZ = -DETG_GXZ*DETG_GYY + DETG_GXY*DETG_GYZ + DETG_TEMPYY = DETG_GXX*DETG_GZZ - DETG_GXZ*DETG_GXZ + DETG_TEMPYZ = DETG_GXY*DETG_GXZ - DETG_GXX*DETG_GYZ + DETG_TEMPZZ = DETG_GXX*DETG_GYY - DETG_GXY*DETG_GXY + +/* This is the conformal determinant */ + DETG_DETCG = (DETG_TEMPXX*DETG_GXX + + & DETG_TEMPXY*DETG_GXY + DETG_TEMPXZ*DETG_GXZ) + +/* This is the physical determinat */ + DETG_DETG = DETG_PSI4**3*DETG_DETCG + +#endif + +#ifdef CCODE + +#define Cal(x,y,z) ((x)?(y):(z)) +#define Power(x,y) (pow((double) (x), (double) (y))) + +DET_PSI4 = ((conformal_state != CONFORMAL_METRIC)?1:Power(DETG_PSI,4)); + +DETG_TEMPXX = DETG_GYY*DETG_GZZ - DETG_GYZ*DETG_GYZ; +DETG_TEMPXY = DETG_GXZ*DETG_GYZ - DETG_GXY*DETG_GZZ; +DETG_TEMPXZ = -DETG_GXZ*DETG_GYY + DETG_GXY*DETG_GYZ; +DETG_TEMPYY = DETG_GXX*DETG_GZZ - DETG_GXZ*DETG_GXZ; +DETG_TEMPYZ = DETG_GXY*DETG_GXZ - DETG_GXX*DETG_GYZ; +DETG_TEMPZZ = DETG_GXX*DETG_GYY - DETG_GXY*DETG_GXY; + +/* This is the conformal determinant */ +DETG_DETCG = (DETG_TEMPXX*DETG_GXX + + DETG_TEMPXY*DETG_GXY + DETG_TEMPXZ*DETG_GXZ); + +/* This is the physical determinat */ +DETG_DETG = DET_PSI4*DET_PSI4*DET_PSI4*DETG_DETCG + +#endif + +#endif diff --git a/src/macro/DETG_undefine.h b/src/macro/DETG_undefine.h new file mode 100644 index 0000000..1b73eee --- /dev/null +++ b/src/macro/DETG_undefine.h @@ -0,0 +1,10 @@ +/*@@ + @header DETG_undefine.h + @date Nov 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DETG_GUTS + diff --git a/src/macro/DG_declare.h b/src/macro/DG_declare.h new file mode 100644 index 0000000..a2a31a4 --- /dev/null +++ b/src/macro/DG_declare.h @@ -0,0 +1,24 @@ +/*@@ + @header DG_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + + Declarations for macro to calculate all the first derivatives of the + physical metric with respect to x, y, z using the subsidary macros + @seefile DXDG_guts.h @seefile DYDG_guts.h and @seefile DZDG_guts.h. + + Calls the macros @seefile DXDG_declare.h @seefile DYDG_declare.h + and @seefile DZDG_declare.h. + + @enddesc +@@*/ + +#ifndef DG_DECLARE +#define DG_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDG_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDG_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDG_declare.h" + +#endif diff --git a/src/macro/DG_guts.h b/src/macro/DG_guts.h new file mode 100644 index 0000000..1d7b1ac --- /dev/null +++ b/src/macro/DG_guts.h @@ -0,0 +1,25 @@ +/*@@ + @header DG_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + Macro to calculate all the first derivatives of the + physical metric with respect to x, y, z + + Calls the macros @seefile DXDG_guts.h @seefile DYDG_guts.h + and @seefile DZDG_guts.h. + + The macro is defined in terms of standard variables in + @seefile DXDG_declare.h ,@seefile DYDG_declare.h and + @seefile DZDG_declare.h + @enddesc +@@*/ + +#ifndef DG_GUTS +#define DG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDG_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDG_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDG_guts.h" + +#endif diff --git a/src/macro/DG_undefine.h b/src/macro/DG_undefine.h new file mode 100644 index 0000000..72e899e --- /dev/null +++ b/src/macro/DG_undefine.h @@ -0,0 +1,14 @@ +/*@@ + @header DG_undefine.h + @date Jun 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDG_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDG_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDG_undefine.h" + diff --git a/src/macro/DKDT_declare.h b/src/macro/DKDT_declare.h new file mode 100644 index 0000000..b03ad4c --- /dev/null +++ b/src/macro/DKDT_declare.h @@ -0,0 +1,111 @@ +/*@@ + @header DKDT_declare.h + @date Jul 98 + @author Gabrielle Allen + @desc + Declarations for macro @seefile DKDT_guts.h to calculate the source term + in the evolution equation for the extrinsic curvature. That is + + d K_ij/dt = alpha*(R_ij-2 K_ik K^k_j + K_ij trK] - nabla_i nabla_j alpha + + + Lie_beta K_ij + + @enddesc +@@*/ + +#ifndef DKDT_DECLARE +#define DKDT_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/RICCI_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/KK_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/TRK_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CDCDA_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/LIEK_declare.h" + + +#ifdef FCODE + +/* Input variables */ +#undef DKDT_A +#define DKDT_A alp(i,j,k) +#undef DKDT_KXX +#define DKDT_KXX hxx(i,j,k) +#undef DKDT_KXY +#define DKDT_KXY hxy(i,j,k) +#undef DKDT_KXZ +#define DKDT_KXZ hxz(i,j,k) +#undef DKDT_KYY +#define DKDT_KYY hyy(i,j,k) +#undef DKDT_KYZ +#define DKDT_KYZ hyz(i,j,k) +#undef DKDT_KZZ +#define DKDT_KZZ hzz(i,j,k) + +/* Output variables */ +#undef DKDT_DKXXDT +#define DKDT_DKXXDT dkdt_dkxxdt +#undef DKDT_DKXYDT +#define DKDT_DKXYDT dkdt_dkxydt +#undef DKDT_DKXZDT +#define DKDT_DKXZDT dkdt_dkxzdt +#undef DKDT_DKYYDT +#define DKDT_DKYYDT dkdt_dkyydt +#undef DKDT_DKYZDT +#define DKDT_DKYZDT dkdt_dkyzdt +#undef DKDT_DKZZDT +#define DKDT_DKZZDT dkdt_dkzzdt + +/* Declare output variables */ + REAL DKDT_DKXXDT + REAL DKDT_DKXYDT + REAL DKDT_DKXZDT + REAL DKDT_DKYYDT + REAL DKDT_DKYZDT + REAL DKDT_DKZZDT + +#endif + + +#ifdef CCODE + +/* Input variables */ +#undef DKDT_A +#define DKDT_A alp[ijk] +#undef DKDT_KXX +#define DKDT_KXX hxx[ijk] +#undef DKDT_KXY +#define DKDT_KXY hxy[ijk] +#undef DKDT_KXZ +#define DKDT_KXZ hxz[ijk] +#undef DKDT_KYY +#define DKDT_KYY hyy[ijk] +#undef DKDT_KYZ +#define DKDT_KYZ hyz[ijk] +#undef DKDT_KZZ +#define DKDT_KZZ hzz[ijk] + +/* Output variables */ +#undef DKDT_DKXXDT +#define DKDT_DKXXDT dkdt_dkxxdt +#undef DKDT_DKXYDT +#define DKDT_DKXYDT dkdt_dkxydt +#undef DKDT_DKXZDT +#define DKDT_DKXZDT dkdt_dkxzdt +#undef DKDT_DKYYDT +#define DKDT_DKYYDT dkdt_dkyydt +#undef DKDT_DKYZDT +#define DKDT_DKYZDT dkdt_dkyzdt +#undef DKDT_DKZZDT +#define DKDT_DKZZDT dkdt_dkzzdt + +/* Declare output variables */ + double DKDT_DKXXDT; + double DKDT_DKXYDT; + double DKDT_DKXZDT; + double DKDT_DKYYDT; + double DKDT_DKYZDT; + double DKDT_DKZZDT; + +#endif + +#endif diff --git a/src/macro/DKDT_guts.h b/src/macro/DKDT_guts.h new file mode 100644 index 0000000..583cf2b --- /dev/null +++ b/src/macro/DKDT_guts.h @@ -0,0 +1,75 @@ +/*@@ + @header DKDT_guts.h + @date Jul 98 + @author Gabrielle Allen + @desc + Macro to calculate the source term in the evolution equation for the + extrinsic curvature. That is + + d K_ij/dt = alpha*(R_ij-2 K_ik K^k_j + K_ij trK] - nabla_i nabla_j alpha + + + Lie_beta K_ij + + @enddesc +@@*/ + +#ifndef DKDT_GUTS +#define DKDT_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/RICCI_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/KK_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/TRK_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CDCDA_guts.h" + +#ifdef FCODE + + DKDT_DKXXDT = DKDT_A*(RICCI_RXX-2*KK_KKXX+DKDT_KXX*TRK_TRK)-CDCDA_CDXXDA + DKDT_DKXYDT = DKDT_A*(RICCI_RXY-2*KK_KKXY+DKDT_KXY*TRK_TRK)-CDCDA_CDXYDA + DKDT_DKXZDT = DKDT_A*(RICCI_RXZ-2*KK_KKXZ+DKDT_KXZ*TRK_TRK)-CDCDA_CDXZDA + DKDT_DKYYDT = DKDT_A*(RICCI_RYY-2*KK_KKYY+DKDT_KYY*TRK_TRK)-CDCDA_CDYYDA + DKDT_DKYZDT = DKDT_A*(RICCI_RYZ-2*KK_KKYZ+DKDT_KYZ*TRK_TRK)-CDCDA_CDYZDA + DKDT_DKZZDT = DKDT_A*(RICCI_RZZ-2*KK_KKZZ+DKDT_KZZ*TRK_TRK)-CDCDA_CDZZDA + + IF (shift_active .ne. SHIFT_INACTIVE) THEN + +#include "../../packages/CactusEinstein/Einstein/src/macro/LIEK_guts.h" + + DKDT_DKXXDT = DKDT_DKXXDT + LIEK_LKXX + DKDT_DKXYDT = DKDT_DKXYDT + LIEK_LKXY + DKDT_DKXZDT = DKDT_DKXZDT + LIEK_LKXZ + DKDT_DKYYDT = DKDT_DKYYDT + LIEK_LKYY + DKDT_DKYZDT = DKDT_DKYZDT + LIEK_LKYZ + DKDT_DKZZDT = DKDT_DKZZDT + LIEK_LKZZ + + END IF + + +#endif + +#ifdef CCODE + + DKDT_DKXXDT = DKDT_A*(RICCI_RXX-2*KK_KKXX+DKDT_KXX*TRK_TRK)-CDCDA_CDXXDA; + DKDT_DKXYDT = DKDT_A*(RICCI_RXY-2*KK_KKXY+DKDT_KXY*TRK_TRK)-CDCDA_CDXYDA; + DKDT_DKXZDT = DKDT_A*(RICCI_RXZ-2*KK_KKXZ+DKDT_KXZ*TRK_TRK)-CDCDA_CDXZDA; + DKDT_DKYYDT = DKDT_A*(RICCI_RYY-2*KK_KKYY+DKDT_KYY*TRK_TRK)-CDCDA_CDYYDA; + DKDT_DKYZDT = DKDT_A*(RICCI_RYZ-2*KK_KKYZ+DKDT_KYZ*TRK_TRK)-CDCDA_CDYZDA; + DKDT_DKZZDT = DKDT_A*(RICCI_RZZ-2*KK_KKZZ+DKDT_KZZ*TRK_TRK)-CDCDA_CDZZDA; + + if (shift) + { + +#include "../../packages/CactusEinstein/Einstein/src/macro/LIEK_guts.h" + + DKDT_DKXXDT = DKDT_DKXXDT + LIEK_LKXX; + DKDT_DKXYDT = DKDT_DKXYDT + LIEK_LKXY; + DKDT_DKXZDT = DKDT_DKXZDT + LIEK_LKXZ; + DKDT_DKYYDT = DKDT_DKYYDT + LIEK_LKYY; + DKDT_DKYZDT = DKDT_DKYZDT + LIEK_LKYZ; + DKDT_DKZZDT = DKDT_DKZZDT + LIEK_LKZZ; + + } + +#endif + +#endif + diff --git a/src/macro/DKDT_undefine.h b/src/macro/DKDT_undefine.h new file mode 100644 index 0000000..15c34cd --- /dev/null +++ b/src/macro/DKDT_undefine.h @@ -0,0 +1,17 @@ +/*@@ + @header DKDT_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DKDT_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/RICCI_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/KK_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/TRK_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CDCDA_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/LIEK_undefine.h" + + diff --git a/src/macro/DK_declare.h b/src/macro/DK_declare.h new file mode 100644 index 0000000..4cc0a65 --- /dev/null +++ b/src/macro/DK_declare.h @@ -0,0 +1,24 @@ +/*@@ + @header DG_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + + Declarations for macro to calculate all the first derivatives of the + extrinsic curvature with respect to x, y, z using the subsidary macros + @seefile DXDK_guts.h @seefile DYDK_guts.h and @seefile DZDK_guts.h. + + Calls the macros @seefile DXDK_declare.h @seefile DYDK_declare.h + and @seefile DZDK_declare.h. + + @enddesc +@@*/ + +#ifndef DK_DECLARE +#define DK_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDK_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDK_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDK_declare.h" + +#endif diff --git a/src/macro/DK_guts.h b/src/macro/DK_guts.h new file mode 100644 index 0000000..f525f18 --- /dev/null +++ b/src/macro/DK_guts.h @@ -0,0 +1,25 @@ +/*@@ + @header DK_guts.h + @date Jul 98 + @author Gabrielle Allen + @desc + Macro to calculate all the first derivatives of the + extrinsic curvature with respect to x, y, z + + Calls the macros @seefile DXDK_guts.h @seefile DYDK_guts.h + and @seefile DZDK_guts.h. + + The macro is defined in terms of standard variables in + @seefile DXDK_declare.h ,@seefile DYDK_declare.h and + @seefile DZDK_declare.h + @enddesc +@@*/ + +#ifndef DK_GUTS +#define DK_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDK_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDK_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDK_guts.h" + +#endif diff --git a/src/macro/DK_undefine.h b/src/macro/DK_undefine.h new file mode 100644 index 0000000..cf637ea --- /dev/null +++ b/src/macro/DK_undefine.h @@ -0,0 +1,14 @@ +/*@@ + @header DK_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DK_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDK_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDK_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDK_undefine.h" + diff --git a/src/macro/DXDB_declare.h b/src/macro/DXDB_declare.h new file mode 100644 index 0000000..d259194 --- /dev/null +++ b/src/macro/DXDB_declare.h @@ -0,0 +1,93 @@ +/*@@ + @header DXDB_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + Declarations for macro @seefile DXDB_guts.h to compute first + derivatives of the shift with respect to x + @enddesc +@@*/ + +#ifndef DXDB_DECLARE +#define DXDB_DECLARE + +#ifdef FCODE + +/* Input variables */ +#undef DXDB_BX_IP +#define DXDB_BX_IP betax(i+1,j,k) +#undef DXDB_BX_IM +#define DXDB_BX_IM betax(i-1,j,k) +#undef DXDB_BY_IP +#define DXDB_BY_IP betay(i+1,j,k) +#undef DXDB_BY_IM +#define DXDB_BY_IM betay(i-1,j,k) +#undef DXDB_BZ_IP +#define DXDB_BZ_IP betaz(i+1,j,k) +#undef DXDB_BZ_IM +#define DXDB_BZ_IM betaz(i-1,j,k) + +/* Output variables */ +#undef DXDB_DXDBX +#define DXDB_DXDBX dxdb_dxbx +#undef DXDB_DXDBY +#define DXDB_DXDBY dxdb_dxby +#undef DXDB_DXDBZ +#define DXDB_DXDBZ dxdb_dxbz + +/* Internal variables */ +#undef DXDB_DX +#define DXDB_DX dx +#undef DXDB_OO2DX +#define DXDB_OO2DX dxdb_oo2dx + +/* Declare internal variables */ + REAL DXDB_OO2DX + +/* Declare output variables */ + REAL DXDB_DXDBX + REAL DXDB_DXDBY + REAL DXDB_DXDBZ + +#endif + + +#ifdef CCODE + +/* Input variables */ +#undef DXDB_BX_IP +#define DXDB_BX_IP betax[ di+ijk] +#undef DXDB_BX_IM +#define DXDB_BX_IM betax[-di+ijk] +#undef DXDB_BY_IP +#define DXDB_BY_IP betay[ di+ijk] +#undef DXDB_BY_IM +#define DXDB_BY_IM betay[-di+ijk] +#undef DXDB_BZ_IP +#define DXDB_BZ_IP betaz[ di+ijk] +#undef DXDB_BZ_IM +#define DXDB_BZ_IM betaz[-di+ijk] + +/* Output variables */ +#undef DXDB_DXDBX +#define DXDB_DXDBX delbeta11 +#undef DXDB_DXDBY +#define DXDB_DXDBY delbeta12 +#undef DXDB_DXDBZ +#define DXDB_DXDBZ delbeta13 + +/* Internal variables */ +#undef DXDB_OO2DX +#define DXDB_OO2DX dxdb_oo2dx + +/* Declare internal variables */ +double DXDB_OO2DX; + +/* Declare output variables */ +double DXDB_DXDBX; +double DXDB_DXDBY; +double DXDB_DXDBZ; + +#endif + +#endif diff --git a/src/macro/DXDB_guts.h b/src/macro/DXDB_guts.h new file mode 100644 index 0000000..7d76ddc --- /dev/null +++ b/src/macro/DXDB_guts.h @@ -0,0 +1,39 @@ +/*@@ + @header DXDB_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + + Macro to calculate the first derivatives of the + shift with respect to x + + The macro is defined in terms of standard variables in + @seefile DXDB_declare.h + @enddesc +@@*/ + +#ifndef DXDB_GUTS +#define DXDB_GUTS + +#ifdef FCODE + + DXDB_OO2DX = 1D0/(2D0*DXDB_DX) + + DXDB_DXDBX = DXDB_OO2DX*(DXDB_BX_IP - DXDB_BX_IM) + DXDB_DXDBY = DXDB_OO2DX*(DXDB_BY_IP - DXDB_BY_IM) + DXDB_DXDBZ = DXDB_OO2DX*(DXDB_BZ_IP - DXDB_BZ_IM) + +#endif + +#ifdef CCODE + + DXDB_OO2DX = 1/(2*GH->dx0); + + DXDB_DXDBX = DXDB_OO2DX*(DXDB_BX_IP - DXDB_BX_IM); + DXDB_DXDBY = DXDB_OO2DX*(DXDB_BY_IP - DXDB_BY_IM); + DXDB_DXDBZ = DXDB_OO2DX*(DXDB_BZ_IP - DXDB_BZ_IM); + +#endif + +#endif + diff --git a/src/macro/DXDB_undefine.h b/src/macro/DXDB_undefine.h new file mode 100644 index 0000000..1cd28da --- /dev/null +++ b/src/macro/DXDB_undefine.h @@ -0,0 +1,11 @@ +/*@@ + @header DXDB_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DXDB_GUTS + + diff --git a/src/macro/DXDCG_declare.h b/src/macro/DXDCG_declare.h new file mode 100644 index 0000000..1d0f0c9 --- /dev/null +++ b/src/macro/DXDCG_declare.h @@ -0,0 +1,139 @@ +/*@@ + @header DXDCG_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + Declarations for macro @seefile DXDCG_guts.h to compute first + derivatives of the conformal metric with respect to x + + Requires: Conformal lower metric at i+1,i-1 ; dx + + Provides: Derivative of conformal lower metric wrt x + @enddesc +@@*/ + +#ifndef DXDCG_DECLARE +#define DXDCG_DECLARE + +#ifdef FCODE + +/* Input variables */ +#undef DXDCG_GXX_IP +#define DXDCG_GXX_IP gxx(i+1,j,k) +#undef DXDCG_GXX_IM +#define DXDCG_GXX_IM gxx(i-1,j,k) +#undef DXDCG_GXY_IP +#define DXDCG_GXY_IP gxy(i+1,j,k) +#undef DXDCG_GXY_IM +#define DXDCG_GXY_IM gxy(i-1,j,k) +#undef DXDCG_GXZ_IP +#define DXDCG_GXZ_IP gxz(i+1,j,k) +#undef DXDCG_GXZ_IM +#define DXDCG_GXZ_IM gxz(i-1,j,k) +#undef DXDCG_GYY_IP +#define DXDCG_GYY_IP gyy(i+1,j,k) +#undef DXDCG_GYY_IM +#define DXDCG_GYY_IM gyy(i-1,j,k) +#undef DXDCG_GYZ_IP +#define DXDCG_GYZ_IP gyz(i+1,j,k) +#undef DXDCG_GYZ_IM +#define DXDCG_GYZ_IM gyz(i-1,j,k) +#undef DXDCG_GZZ_IP +#define DXDCG_GZZ_IP gzz(i+1,j,k) +#undef DXDCG_GZZ_IM +#define DXDCG_GZZ_IM gzz(i-1,j,k) + +/* Output variables */ +#undef DXDCG_DXDCGXX +#define DXDCG_DXDCGXX delgb111 +#undef DXDCG_DXDCGXY +#define DXDCG_DXDCGXY delgb112 +#undef DXDCG_DXDCGXZ +#define DXDCG_DXDCGXZ delgb113 +#undef DXDCG_DXDCGYY +#define DXDCG_DXDCGYY delgb122 +#undef DXDCG_DXDCGYZ +#define DXDCG_DXDCGYZ delgb123 +#undef DXDCG_DXDCGZZ +#define DXDCG_DXDCGZZ delgb133 + +/* Internal variables */ +#undef DXDCG_DX +#define DXDCG_DX dx +#undef DXDCG_OO2DX +#define DXDCG_OO2DX cdxdg_oo2dx + +/* Declare internal variables */ + REAL DXDCG_OO2DX + +/* Declare output variables */ + REAL DXDCG_DXDCGXX + REAL DXDCG_DXDCGXY + REAL DXDCG_DXDCGXZ + REAL DXDCG_DXDCGYY + REAL DXDCG_DXDCGYZ + REAL DXDCG_DXDCGZZ + +#endif + + +#ifdef CCODE + +/* Input variables */ +#undef DXDCG_GXX_IP +#define DXDCG_GXX_IP gxx[ di+ijk] +#undef DXDCG_GXX_IM +#define DXDCG_GXX_IM gxx[-di+ijk] +#undef DXDCG_GXY_IP +#define DXDCG_GXY_IP gxy[ di+ijk] +#undef DXDCG_GXY_IM +#define DXDCG_GXY_IM gxy[-di+ijk] +#undef DXDCG_GXZ_IP +#define DXDCG_GXZ_IP gxz[ di+ijk] +#undef DXDCG_GXZ_IM +#define DXDCG_GXZ_IM gxz[-di+ijk] +#undef DXDCG_GYY_IP +#define DXDCG_GYY_IP gyy[ di+ijk] +#undef DXDCG_GYY_IM +#define DXDCG_GYY_IM gyy[-di+ijk] +#undef DXDCG_GYZ_IP +#define DXDCG_GYZ_IP gyz[ di+ijk] +#undef DXDCG_GYZ_IM +#define DXDCG_GYZ_IM gyz[-di+ijk] +#undef DXDCG_GZZ_IP +#define DXDCG_GZZ_IP gzz[ di+ijk] +#undef DXDCG_GZZ_IM +#define DXDCG_GZZ_IM gzz[-di+ijk] + +/* Output variables */ +#undef DXDCG_DXDCGXX +#define DXDCG_DXDCGXX delgb111 +#undef DXDCG_DXDCGXY +#define DXDCG_DXDCGXY delgb112 +#undef DXDCG_DXDCGXZ +#define DXDCG_DXDCGXZ delgb113 +#undef DXDCG_DXDCGYY +#define DXDCG_DXDCGYY delgb122 +#undef DXDCG_DXDCGYZ +#define DXDCG_DXDCGYZ delgb123 +#undef DXDCG_DXDCGZZ +#define DXDCG_DXDCGZZ delgb133 + +/* Internal variables */ +#undef DXDCG_OO2DX +#define DXDCG_OO2DX cdxdg_oo2dx + +/* Declare internal variables */ +double DXDCG_OO2DX; + +/* Declare output variables */ +double DXDCG_DXDCGXX; +double DXDCG_DXDCGXY; +double DXDCG_DXDCGXZ; +double DXDCG_DXDCGYY; +double DXDCG_DXDCGYZ; +double DXDCG_DXDCGZZ; + +#endif + +#endif diff --git a/src/macro/DXDCG_guts.h b/src/macro/DXDCG_guts.h new file mode 100644 index 0000000..8647d4f --- /dev/null +++ b/src/macro/DXDCG_guts.h @@ -0,0 +1,48 @@ +/*@@ + @header DXDCG_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + Macro to calculate the first derivatives of the + conformal metric with respect to x + + The macro is defined in terms of standard variables in + + Requires: lower conformal metric at i+1,i-1 ; dx0 + + Provides: derivative of lower conformal metric wrt x + + @seefile DXDCG_declare.h + @enddesc +@@*/ + +#ifndef DXDCG_GUTS +#define DXDCG_GUTS + +#ifdef FCODE + + DXDCG_OO2DX = 1D0/(2D0*DXDCG_DX) + + DXDCG_DXDCGXX = DXDCG_OO2DX*(DXDCG_GXX_IP - DXDCG_GXX_IM) + DXDCG_DXDCGXY = DXDCG_OO2DX*(DXDCG_GXY_IP - DXDCG_GXY_IM) + DXDCG_DXDCGXZ = DXDCG_OO2DX*(DXDCG_GXZ_IP - DXDCG_GXZ_IM) + DXDCG_DXDCGYY = DXDCG_OO2DX*(DXDCG_GYY_IP - DXDCG_GYY_IM) + DXDCG_DXDCGYZ = DXDCG_OO2DX*(DXDCG_GYZ_IP - DXDCG_GYZ_IM) + DXDCG_DXDCGZZ = DXDCG_OO2DX*(DXDCG_GZZ_IP - DXDCG_GZZ_IM) + +#endif + +#ifdef CCODE + + DXDCG_OO2DX = 1/(2*GH->dx0); + + DXDCG_DXDCGXX = DXDCG_OO2DX*(DXDCG_GXX_IP - DXDCG_GXX_IM); + DXDCG_DXDCGXY = DXDCG_OO2DX*(DXDCG_GXY_IP - DXDCG_GXY_IM); + DXDCG_DXDCGXZ = DXDCG_OO2DX*(DXDCG_GXZ_IP - DXDCG_GXZ_IM); + DXDCG_DXDCGYY = DXDCG_OO2DX*(DXDCG_GYY_IP - DXDCG_GYY_IM); + DXDCG_DXDCGYZ = DXDCG_OO2DX*(DXDCG_GYZ_IP - DXDCG_GYZ_IM); + DXDCG_DXDCGZZ = DXDCG_OO2DX*(DXDCG_GZZ_IP - DXDCG_GZZ_IM); + +#endif + +#endif diff --git a/src/macro/DXDCG_undefine.h b/src/macro/DXDCG_undefine.h new file mode 100644 index 0000000..f4d910a --- /dev/null +++ b/src/macro/DXDCG_undefine.h @@ -0,0 +1,11 @@ +/*@@ + @header DXDCG_undefine.h + @date Jun 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DXDCG_GUTS + + diff --git a/src/macro/DXDG_declare.h b/src/macro/DXDG_declare.h new file mode 100644 index 0000000..e50c9b0 --- /dev/null +++ b/src/macro/DXDG_declare.h @@ -0,0 +1,130 @@ +/*@@ + @header DXDG_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + Declarations for macro @seefile DXDG_guts.h to compute first + derivatives of the physical metric with respect to x + @enddesc +@@*/ + +#ifndef DXDG_DECLARE +#define DXDG_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDCG_declare.h" + +#ifdef FCODE + +/* Input variables */ +#undef DXDG_PSI +#define DXDG_PSI psi(i,j,k) + +#undef DXDG_DXDPSI_O_PSI +#define DXDG_DXDPSI_O_PSI psix(i,j,k) + +#undef DXDG_GXX +#define DXDG_GXX gxx(i,j,k) +#undef DXDG_GXY +#define DXDG_GXY gxy(i,j,k) +#undef DXDG_GXZ +#define DXDG_GXZ gxz(i,j,k) +#undef DXDG_GYY +#define DXDG_GYY gyy(i,j,k) +#undef DXDG_GYZ +#define DXDG_GYZ gyz(i,j,k) +#undef DXDG_GZZ +#define DXDG_GZZ gzz(i,j,k) + +/* Output variables */ +#undef DXDG_DXDGXX +#define DXDG_DXDGXX dxdgxx +#undef DXDG_DXDGXY +#define DXDG_DXDGXY dxdgxy +#undef DXDG_DXDGXZ +#define DXDG_DXDGXZ dxdgxz +#undef DXDG_DXDGYY +#define DXDG_DXDGYY dxdgyy +#undef DXDG_DXDGYZ +#define DXDG_DXDGYZ dxdgyz +#undef DXDG_DXDGZZ +#define DXDG_DXDGZZ dxdgzz + +/* Internal variables */ +#undef DXDG_PSI4 +#define DXDG_PSI4 dxdg_psi4 + +#undef DXDG_FAC +#define DXDG_FAC dxdg_fac + +/* Declare internal variables */ + REAL DXDG_PSI4; + REAL DXDG_FAC; + +/* Declare output variables */ + REAL DXDG_DXDGXX; + REAL DXDG_DXDGXY; + REAL DXDG_DXDGXZ; + REAL DXDG_DXDGYY; + REAL DXDG_DXDGYZ; + REAL DXDG_DXDGZZ; + +#endif + +#ifdef CCODE + +/* Input variables */ +#undef DXDG_PSI +#define DXDG_PSI psi[ijk] + +#undef DXDG_DXDPSI_O_PSI +#define DXDG_DXDPSI_O_PSI psix[ijk] + +#undef DXDG_GXX +#define DXDG_GXX gxx[ijk] +#undef DXDG_GXY +#define DXDG_GXY gxy[ijk] +#undef DXDG_GXZ +#define DXDG_GXZ gxz[ijk] +#undef DXDG_GYY +#define DXDG_GYY gyy[ijk] +#undef DXDG_GYZ +#define DXDG_GYZ gyz[ijk] +#undef DXDG_GZZ +#define DXDG_GZZ gzz[ijk] + +/* Output variables */ +#undef DXDG_DXDGXX +#define DXDG_DXDGXX delg111 +#undef DXDG_DXDGXY +#define DXDG_DXDGXY delg112 +#undef DXDG_DXDGXZ +#define DXDG_DXDGXZ delg113 +#undef DXDG_DXDGYY +#define DXDG_DXDGYY delg122 +#undef DXDG_DXDGYZ +#define DXDG_DXDGYZ delg123 +#undef DXDG_DXDGZZ +#define DXDG_DXDGZZ delg133 + +/* Internal variables */ +#undef DXDG_PSI4 +#define DXDG_PSI4 dxdg_psi4 + +#undef DXDG_FAC +#define DXDG_FAC dxdg_fac + +/* Declare internal variables */ +double DXDG_PSI4; +double DXDG_FAC; + +/* Declare output variables */ +double DXDG_DXDGXX; +double DXDG_DXDGXY; +double DXDG_DXDGXZ; +double DXDG_DXDGYY; +double DXDG_DXDGYZ; +double DXDG_DXDGZZ; + +#endif + +#endif diff --git a/src/macro/DXDG_guts.h b/src/macro/DXDG_guts.h new file mode 100644 index 0000000..d89610f --- /dev/null +++ b/src/macro/DXDG_guts.h @@ -0,0 +1,53 @@ +/*@@ + @header DXDG_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + Macro to calculate the first derivatives of the + physical metric with respect to x + + The macro is defined in terms of standard variables in + @seefile DXDG_declare.h + @enddesc +@@*/ + +#ifndef DXDG_GUTS +#define DXDG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDCG_guts.h" + +#ifdef FCODE + + IF (conformal_state /= CONFORMAL_METRIC) THEN + DXDG_PSI4 = 1 + DXDG_FAC = 0 + ELSE + DXDG_PSI4 = DXDG_PSI**4 + DXDG_FAC = 4*DXDG_PSI4*DXDG_DXDPSI_O_PSI + ENDIF + + DXDG_DXDGXX = DXDCG_DXDCGXX*DXDG_PSI4 + DXDG_FAC*DXDG_GXX + DXDG_DXDGXY = DXDCG_DXDCGXY*DXDG_PSI4 + DXDG_FAC*DXDG_GXY + DXDG_DXDGXZ = DXDCG_DXDCGXZ*DXDG_PSI4 + DXDG_FAC*DXDG_GXZ + DXDG_DXDGYY = DXDCG_DXDCGYY*DXDG_PSI4 + DXDG_FAC*DXDG_GYY + DXDG_DXDGYZ = DXDCG_DXDCGYZ*DXDG_PSI4 + DXDG_FAC*DXDG_GYZ + DXDG_DXDGZZ = DXDCG_DXDCGZZ*DXDG_PSI4 + DXDG_FAC*DXDG_GZZ + +#endif + +#ifdef CCODE + + DXDG_PSI4 = ((conformal_state != CONFORMAL_METRIC)?1:Power(DXDG_PSI,4)); + + DXDG_FAC = ((conformal_state != CONFORMAL_METRIC)?0:4*DXDG_PSI4*DXDG_DXDPSI_O_PSI); + + DXDG_DXDGXX = DXDCG_DXDCGXX*DXDG_PSI4 + DXDG_FAC*DXDG_GXX; + DXDG_DXDGXY = DXDCG_DXDCGXY*DXDG_PSI4 + DXDG_FAC*DXDG_GXY; + DXDG_DXDGXZ = DXDCG_DXDCGXZ*DXDG_PSI4 + DXDG_FAC*DXDG_GXZ; + DXDG_DXDGYY = DXDCG_DXDCGYY*DXDG_PSI4 + DXDG_FAC*DXDG_GYY; + DXDG_DXDGYZ = DXDCG_DXDCGYZ*DXDG_PSI4 + DXDG_FAC*DXDG_GYZ; + DXDG_DXDGZZ = DXDCG_DXDCGZZ*DXDG_PSI4 + DXDG_FAC*DXDG_GZZ; + +#endif + +#endif diff --git a/src/macro/DXDG_undefine.h b/src/macro/DXDG_undefine.h new file mode 100644 index 0000000..4f1cd7f --- /dev/null +++ b/src/macro/DXDG_undefine.h @@ -0,0 +1,12 @@ +/*@@ + @header DXDG_undefine.h + @date Jun 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DXDG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDCG_undefine.h" + diff --git a/src/macro/DXDK_declare.h b/src/macro/DXDK_declare.h new file mode 100644 index 0000000..f31bb26 --- /dev/null +++ b/src/macro/DXDK_declare.h @@ -0,0 +1,138 @@ +/*@@ + @header DXDK_declare.h + @date Jul 98 + @author Gabrielle Allen + @desc + Declarations for macro @seefile DXDK_guts.h to compute first + derivatives of the extrinsic curvature with respect to x + @enddesc +@@*/ + +#ifndef DXDK_DECLARE +#define DXDK_DECLARE + +#ifdef FCODE + +/* Input variables */ +#undef DXDK_KXX_IP +#define DXDK_KXX_IP hxx(i+1,j,k) +#undef DXDK_KXX_IM +#define DXDK_KXX_IM hxx(i-1,j,k) +#undef DXDK_KXY_IP +#define DXDK_KXY_IP hxy(i+1,j,k) +#undef DXDK_KXY_IM +#define DXDK_KXY_IM hxy(i-1,j,k) +#undef DXDK_KXZ_IP +#define DXDK_KXZ_IP hxz(i+1,j,k) +#undef DXDK_KXZ_IM +#define DXDK_KXZ_IM hxz(i-1,j,k) +#undef DXDK_KYY_IP +#define DXDK_KYY_IP hyy(i+1,j,k) +#undef DXDK_KYY_IM +#define DXDK_KYY_IM hyy(i-1,j,k) +#undef DXDK_KYZ_IP +#define DXDK_KYZ_IP hyz(i+1,j,k) +#undef DXDK_KYZ_IM +#define DXDK_KYZ_IM hyz(i-1,j,k) +#undef DXDK_KZZ_IP +#define DXDK_KZZ_IP hzz(i+1,j,k) +#undef DXDK_KZZ_IM +#define DXDK_KZZ_IM hzz(i-1,j,k) + +/* Output variables */ +#undef DXDK_DXDKXX +#define DXDK_DXDKXX dxdk_dxdkxx +#undef DXDK_DXDKXY +#define DXDK_DXDKXY dxdk_dxdkxy +#undef DXDK_DXDKXZ +#define DXDK_DXDKXZ dxdk_dxdkxz +#undef DXDK_DXDKYY +#define DXDK_DXDKYY dxdk_dxdkyy +#undef DXDK_DXDKYZ +#define DXDK_DXDKYZ dxdk_dxdkyz +#undef DXDK_DXDKZZ +#define DXDK_DXDKZZ dxdk_dxdkzz + +/* Internal variables */ +#undef DXDK_DX +#define DXDK_DX dx +#undef DXDK_OO2DX +#define DXDK_OO2DX dxdk_oo2dx + +/* Declare internal variables */ + REAL DXDK_OO2DX + +/* Declare output variables */ + REAL DXDK_DXDKXX + REAL DXDK_DXDKXY + REAL DXDK_DXDKXZ + REAL DXDK_DXDKYY + REAL DXDK_DXDKYZ + REAL DXDK_DXDKZZ + +#endif + + +#ifdef CCODE + +/* Input variables */ +#undef DXDK_KXX_IP +#define DXDK_KXX_IP hxx[ di+ijk] +#undef DXDK_KXX_IM +#define DXDK_KXX_IM hxx[-di+ijk] +#undef DXDK_KXY_IP +#define DXDK_KXY_IP hxy[ di+ijk] +#undef DXDK_KXY_IM +#define DXDK_KXY_IM hxy[-di+ijk] +#undef DXDK_KXZ_IP +#define DXDK_KXZ_IP hxz[ di+ijk] +#undef DXDK_KXZ_IM +#define DXDK_KXZ_IM hxz[-di+ijk] +#undef DXDK_KYY_IP +#define DXDK_KYY_IP hyy[ di+ijk] +#undef DXDK_KYY_IM +#define DXDK_KYY_IM hyy[-di+ijk] +#undef DXDK_KYZ_IP +#define DXDK_KYZ_IP hyz[ di+ijk] +#undef DXDK_KYZ_IM +#define DXDK_KYZ_IM hyz[-di+ijk] +#undef DXDK_KZZ_IP +#define DXDK_KZZ_IP hzz[ di+ijk] +#undef DXDK_KZZ_IM +#define DXDK_KZZ_IM hzz[-di+ijk] + +/* Output variables */ +#undef DXDK_DXDKXX +#define DXDK_DXDKXX dxdk_dxdkxx +#undef DXDK_DXDKXY +#define DXDK_DXDKXY dxdk_dxdkxy +#undef DXDK_DXDKXZ +#define DXDK_DXDKXZ dxdk_dxdkxz +#undef DXDK_DXDKYY +#define DXDK_DXDKYY dxdk_dxdkyy +#undef DXDK_DXDKYZ +#define DXDK_DXDKYZ dxdk_dxdkyz +#undef DXDK_DXDKZZ +#define DXDK_DXDKZZ dxdk_dxdkzz + +/* Internal variables */ +#undef DXDK_DX +#define DXDK_DX dx0 +#undef DXDK_OO2DX +#define DXDK_OO2DX dxdk_oo2dx + +/* Declare internal variables */ +double DXDK_DX; +double DXDK_OO2DX; + +/* Declare output variables */ +double DXDK_DXDKXX; +double DXDK_DXDKXY; +double DXDK_DXDKXZ; +double DXDK_DXDKYY; +double DXDK_DXDKYZ; +double DXDK_DXDKZZ; + +#endif + +#endif diff --git a/src/macro/DXDK_guts.h b/src/macro/DXDK_guts.h new file mode 100644 index 0000000..c547dae --- /dev/null +++ b/src/macro/DXDK_guts.h @@ -0,0 +1,40 @@ +/*@@ + @header DXDK_guts.h + @date Jul 98 + @author Gabrielle Allen + @desc + Macro to calculate the first derivatives of the + extrinsic curvature with respect to x + @enddesc +@@*/ + +#ifndef DXDK_GUTS +#define DXDK_GUTS + +#ifdef FCODE + + DXDK_OO2DX = 1D0/(2D0*DXDK_DX) + + DXDK_DXDKXX = DXDK_OO2DX*(DXDK_KXX_IP - DXDK_KXX_IM) + DXDK_DXDKXY = DXDK_OO2DX*(DXDK_KXY_IP - DXDK_KXY_IM) + DXDK_DXDKXZ = DXDK_OO2DX*(DXDK_KXZ_IP - DXDK_KXZ_IM) + DXDK_DXDKYY = DXDK_OO2DX*(DXDK_KYY_IP - DXDK_KYY_IM) + DXDK_DXDKYZ = DXDK_OO2DX*(DXDK_KYZ_IP - DXDK_KYZ_IM) + DXDK_DXDKZZ = DXDK_OO2DX*(DXDK_KZZ_IP - DXDK_KZZ_IM) + +#endif + +#ifdef CCODE + + DXDK_OO2DX = 1/(2*GH->dx0); + + DXDK_DXDKXX = DXDK_OO2DX*(DXDK_KXX_IP - DXDK_KXX_IM); + DXDK_DXDKXY = DXDK_OO2DX*(DXDK_KXY_IP - DXDK_KXY_IM); + DXDK_DXDKXZ = DXDK_OO2DX*(DXDK_KXZ_IP - DXDK_KXZ_IM); + DXDK_DXDKYY = DXDK_OO2DX*(DXDK_KYY_IP - DXDK_KYY_IM); + DXDK_DXDKYZ = DXDK_OO2DX*(DXDK_KYZ_IP - DXDK_KYZ_IM); + DXDK_DXDKZZ = DXDK_OO2DX*(DXDK_KZZ_IP - DXDK_KZZ_IM); + +#endif + +#endif diff --git a/src/macro/DXDK_undefine.h b/src/macro/DXDK_undefine.h new file mode 100644 index 0000000..b0a1742 --- /dev/null +++ b/src/macro/DXDK_undefine.h @@ -0,0 +1,11 @@ +/*@@ + @header DXDK_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DXDK_GUTS + + diff --git a/src/macro/DXXDG_declare.h b/src/macro/DXXDG_declare.h new file mode 100644 index 0000000..1c43be9 --- /dev/null +++ b/src/macro/DXXDG_declare.h @@ -0,0 +1,96 @@ +/*@@ + @header DXXDG_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + Declarations for macro to calculate the (first and) second derivatives + of the physical metric with respect to x + + The macro uses @seefile DXDG_guts.h and @seefile DXDG_declare.h + @enddesc +@@*/ + +#ifndef DXXDG_DECLARE +#define DXXDG_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDG_declare.h" + +#ifdef FCODE + +/* Output variables */ +#undef DXXDG_DXXDGXX +#define DXXDG_DXXDGXX dxxdgxx +#undef DXXDG_DXXDGXY +#define DXXDG_DXXDGXY dxxdgxy +#undef DXXDG_DXXDGXZ +#define DXXDG_DXXDGXZ dxxdgxz +#undef DXXDG_DXXDGYY +#define DXXDG_DXXDGYY dxxdgyy +#undef DXXDG_DXXDGYZ +#define DXXDG_DXXDGYZ dxxdgyz +#undef DXXDG_DXXDGZZ +#define DXXDG_DXXDGZZ dxxdgzz + +/* Internal variables */ +#undef DXXDG_FAC +#define DXXDG_FAC dxxdg_fac +#undef DXXDG_OODX2 +#define DXXDG_OODX2 dxxdg_oodx2 +#undef DXXDG_DXXDPSI_O_PSI +#define DXXDG_DXXDPSI_O_PSI psixx(i,j,k) + +/* Declare internal variables */ + REAL DXXDG_FAC + REAL DXXDG_OODX2 + +/* Declare output variables */ + REAL DXXDG_DXXDGXX + REAL DXXDG_DXXDGXY + REAL DXXDG_DXXDGXZ + REAL DXXDG_DXXDGYY + REAL DXXDG_DXXDGYZ + REAL DXXDG_DXXDGZZ + +#endif + + +#ifdef CCODE + +/* Output variables */ +#undef DXXDG_DXXDGXX +#define DXXDG_DXXDGXX deldelg1111 +#undef DXXDG_DXXDGXY +#define DXXDG_DXXDGXY deldelg1112 +#undef DXXDG_DXXDGXZ +#define DXXDG_DXXDGXZ deldelg1113 +#undef DXXDG_DXXDGYY +#define DXXDG_DXXDGYY deldelg1122 +#undef DXXDG_DXXDGYZ +#define DXXDG_DXXDGYZ deldelg1123 +#undef DXXDG_DXXDGZZ +#define DXXDG_DXXDGZZ deldelg1133 + +/* Internal variables */ +#undef DXXDG_FAC +#define DXXDG_FAC dxxdg_fac +#undef DXXDG_OODX2 +#define DXXDG_OODX2 dxxdg_oodx2 +#undef DXXDG_DXXDPSI_O_PSI +#define DXXDG_DXXDPSI_O_PSI psixx[ijk] + +/* Declare internal variables */ +double DXXDG_FAC; +double DXXDG_OODX2 = 1/(GH->dx0*GH->dx0); +/*double DXXDG_DXXDPSI_O_PSI;*/ + +/* Declare output variables */ +double DXXDG_DXXDGXX; +double DXXDG_DXXDGXY; +double DXXDG_DXXDGXZ; +double DXXDG_DXXDGYY; +double DXXDG_DXXDGYZ; +double DXXDG_DXXDGZZ; + +#endif + +#endif diff --git a/src/macro/DXXDG_guts.h b/src/macro/DXXDG_guts.h new file mode 100644 index 0000000..92053d6 --- /dev/null +++ b/src/macro/DXXDG_guts.h @@ -0,0 +1,81 @@ +/*@@ + @header DXXDG_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + Macro to calculate the (first and) second derivatives of the + physical metric with respect to x + + The macro is defined in terms of standard variables in + @seefile DXXDG_declare.h + + The macro uses @seefile DXDG_guts.h and @seefile DXDG_declare.h + @enddesc +@@*/ + +#ifndef DXXDG_GUTS +#define DXXDG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDG_guts.h" + +#ifdef FCODE + + DXXDG_OODX2 = 1D0/(dx*dx) + + /* Factor involving 2nd derivative of conformal factor */ + IF (conformal_state /= CONFORMAL_METRIC) THEN + DXXDG_FAC = 0 + ELSE + DXXDG_FAC = DXDG_PSI4*(4*DXXDG_DXXDPSI_O_PSI + 12*DXDG_DXDPSI_O_PSI*DXDG_DXDPSI_O_PSI) + ENDIF + + /* Now calculate the second derivatives */ + DXXDG_DXXDGXX = 2*DXDCG_DXDCGXX*DXDG_FAC+DXXDG_FAC*DXDG_GXX+DXDG_PSI4 + & *DXXDG_OODX2*(DXDCG_GXX_IP-2*DXDG_GXX+DXDCG_GXX_IM) + + DXXDG_DXXDGXY = 2*DXDCG_DXDCGXY*DXDG_FAC+DXXDG_FAC*DXDG_GXY+DXDG_PSI4 + & *DXXDG_OODX2*(DXDCG_GXY_IP-2*DXDG_GXY+DXDCG_GXY_IM) + + DXXDG_DXXDGXZ = 2*DXDCG_DXDCGXZ*DXDG_FAC+DXXDG_FAC*DXDG_GXZ+DXDG_PSI4 + & *DXXDG_OODX2*(DXDCG_GXZ_IP-2*DXDG_GXZ+DXDCG_GXZ_IM) + + DXXDG_DXXDGYY = 2*DXDCG_DXDCGYY*DXDG_FAC+DXXDG_FAC*DXDG_GYY+DXDG_PSI4 + & *DXXDG_OODX2*(DXDCG_GYY_IP-2*DXDG_GYY+DXDCG_GYY_IM) + + DXXDG_DXXDGYZ = 2*DXDCG_DXDCGYZ*DXDG_FAC+DXXDG_FAC*DXDG_GYZ+DXDG_PSI4 + & *DXXDG_OODX2*(DXDCG_GYZ_IP-2*DXDG_GYZ+DXDCG_GYZ_IM) + + DXXDG_DXXDGZZ = 2*DXDCG_DXDCGZZ*DXDG_FAC+DXXDG_FAC*DXDG_GZZ+DXDG_PSI4 + & *DXXDG_OODX2*(DXDCG_GZZ_IP-2*DXDG_GZZ+DXDCG_GZZ_IM) + +#endif + +#ifdef CCODE + +/* Factor involving 2nd derivative of conformal factor */ +DXXDG_FAC = ((conformal_state != CONFORMAL_METRIC)?0: + DXDG_PSI4*(4*DXXDG_DXXDPSI_O_PSI + 12*DXDG_DXDPSI_O_PSI*DXDG_DXDPSI_O_PSI)); + +/* Now calculate the second derivatives */ + DXXDG_DXXDGXX = 2*DXDCG_DXDCGXX*DXDG_FAC+DXXDG_FAC*DXDG_GXX+DXDG_PSI4 + *DXXDG_OODX2*(DXDCG_GXX_IP-2*DXDG_GXX+DXDCG_GXX_IM); + + DXXDG_DXXDGXY = 2*DXDCG_DXDCGXY*DXDG_FAC+DXXDG_FAC*DXDG_GXY+DXDG_PSI4 + *DXXDG_OODX2*(DXDCG_GXY_IP-2*DXDG_GXY+DXDCG_GXY_IM); + + DXXDG_DXXDGXZ = 2*DXDCG_DXDCGXZ*DXDG_FAC+DXXDG_FAC*DXDG_GXZ+DXDG_PSI4 + *DXXDG_OODX2*(DXDCG_GXZ_IP-2*DXDG_GXZ+DXDCG_GXZ_IM); + + DXXDG_DXXDGYY = 2*DXDCG_DXDCGYY*DXDG_FAC+DXXDG_FAC*DXDG_GYY+DXDG_PSI4 + *DXXDG_OODX2*(DXDCG_GYY_IP-2*DXDG_GYY+DXDCG_GYY_IM); + + DXXDG_DXXDGYZ = 2*DXDCG_DXDCGYZ*DXDG_FAC+DXXDG_FAC*DXDG_GYZ+DXDG_PSI4 + *DXXDG_OODX2*(DXDCG_GYZ_IP-2*DXDG_GYZ+DXDCG_GYZ_IM); + + DXXDG_DXXDGZZ = 2*DXDCG_DXDCGZZ*DXDG_FAC+DXXDG_FAC*DXDG_GZZ+DXDG_PSI4 + *DXXDG_OODX2*(DXDCG_GZZ_IP-2*DXDG_GZZ+DXDCG_GZZ_IM); + + +#endif + +#endif diff --git a/src/macro/DXXDG_undefine.h b/src/macro/DXXDG_undefine.h new file mode 100644 index 0000000..8d82f3e --- /dev/null +++ b/src/macro/DXXDG_undefine.h @@ -0,0 +1,11 @@ +/*@@ + @header DXXDG_undefine.h + @date Jun 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DXXDG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDG_undefine.h" diff --git a/src/macro/DXYDG_declare.h b/src/macro/DXYDG_declare.h new file mode 100644 index 0000000..a8ed889 --- /dev/null +++ b/src/macro/DXYDG_declare.h @@ -0,0 +1,206 @@ +/*@@ + @header DXYDG_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + Declaration for macro to calculate the (first and) second derivatives + of the physical metric with respect to x,y + + The macro uses @seefile DXDG_guts.h , @seefile DYDG_guts.h and + @seefile DXDG_declare.h , @seefile DYDG_declare.h + @enddesc +@@*/ + +#ifndef DXYDG_DECLARE +#define DXYDG_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDG_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDG_declare.h" + +#ifdef FCODE + +/* Input variables */ +#undef DXYDG_GXX_IPJP +#define DXYDG_GXX_IPJP gxx(i+1,j+1,k) +#undef DXYDG_GXX_IPJM +#define DXYDG_GXX_IPJM gxx(i+1,j-1,k) +#undef DXYDG_GXX_IMJP +#define DXYDG_GXX_IMJP gxx(i-1,j+1,k) +#undef DXYDG_GXX_IMJM +#define DXYDG_GXX_IMJM gxx(i-1,j-1,k) + +#undef DXYDG_GXY_IPJP +#define DXYDG_GXY_IPJP gxy(i+1,j+1,k) +#undef DXYDG_GXY_IPJM +#define DXYDG_GXY_IPJM gxy(i+1,j-1,k) +#undef DXYDG_GXY_IMJP +#define DXYDG_GXY_IMJP gxy(i-1,j+1,k) +#undef DXYDG_GXY_IMJM +#define DXYDG_GXY_IMJM gxy(i-1,j-1,k) + +#undef DXYDG_GXZ_IPJP +#define DXYDG_GXZ_IPJP gxz(i+1,j+1,k) +#undef DXYDG_GXZ_IPJM +#define DXYDG_GXZ_IPJM gxz(i+1,j-1,k) +#undef DXYDG_GXZ_IMJP +#define DXYDG_GXZ_IMJP gxz(i-1,j+1,k) +#undef DXYDG_GXZ_IMJM +#define DXYDG_GXZ_IMJM gxz(i-1,j-1,k) + +#undef DXYDG_GYY_IPJP +#define DXYDG_GYY_IPJP gyy(i+1,j+1,k) +#undef DXYDG_GYY_IPJM +#define DXYDG_GYY_IPJM gyy(i+1,j-1,k) +#undef DXYDG_GYY_IMJP +#define DXYDG_GYY_IMJP gyy(i-1,j+1,k) +#undef DXYDG_GYY_IMJM +#define DXYDG_GYY_IMJM gyy(i-1,j-1,k) + +#undef DXYDG_GYZ_IPJP +#define DXYDG_GYZ_IPJP gyz(i+1,j+1,k) +#undef DXYDG_GYZ_IPJM +#define DXYDG_GYZ_IPJM gyz(i+1,j-1,k) +#undef DXYDG_GYZ_IMJP +#define DXYDG_GYZ_IMJP gyz(i-1,j+1,k) +#undef DXYDG_GYZ_IMJM +#define DXYDG_GYZ_IMJM gyz(i-1,j-1,k) + +#undef DXYDG_GZZ_IPJP +#define DXYDG_GZZ_IPJP gzz(i+1,j+1,k) +#undef DXYDG_GZZ_IPJM +#define DXYDG_GZZ_IPJM gzz(i+1,j-1,k) +#undef DXYDG_GZZ_IMJP +#define DXYDG_GZZ_IMJP gzz(i-1,j+1,k) +#undef DXYDG_GZZ_IMJM +#define DXYDG_GZZ_IMJM gzz(i-1,j-1,k) + +/* Output variables */ +#undef DXYDG_DXYDGXX +#define DXYDG_DXYDGXX deldelg1211 +#undef DXYDG_DXYDGXY +#define DXYDG_DXYDGXY deldelg1212 +#undef DXYDG_DXYDGXZ +#define DXYDG_DXYDGXZ deldelg1213 +#undef DXYDG_DXYDGYY +#define DXYDG_DXYDGYY deldelg1222 +#undef DXYDG_DXYDGYZ +#define DXYDG_DXYDGYZ deldelg1223 +#undef DXYDG_DXYDGZZ +#define DXYDG_DXYDGZZ deldelg1233 + +/* Internal variables */ +#undef DXYDG_FAC +#define DXYDG_FAC dxydg_fac +#undef DXYDG_OO4DXDY +#define DXYDG_OO4DXDY dxydg_oo4dxdy +#undef DXYDG_DXYDPSI_O_PSI +#define DXYDG_DXYDPSI_O_PSI psixy(i,j,k) + +/* Declare internal variables */ + REAL DXYDG_FAC + REAL DXYDG_OO4DXDY + +/* Declare output variables */ + REAL DXYDG_DXYDGXX + REAL DXYDG_DXYDGXY + REAL DXYDG_DXYDGXZ + REAL DXYDG_DXYDGYY + REAL DXYDG_DXYDGYZ + REAL DXYDG_DXYDGZZ + +#endif + +#ifdef CCODE + +/* Input variables */ +#undef DXYDG_GXX_IPJP +#define DXYDG_GXX_IPJP gxx[ di + dj + ijk] +#undef DXYDG_GXX_IPJM +#define DXYDG_GXX_IPJM gxx[ di - dj + ijk] +#undef DXYDG_GXX_IMJP +#define DXYDG_GXX_IMJP gxx[-di + dj + ijk] +#undef DXYDG_GXX_IMJM +#define DXYDG_GXX_IMJM gxx[-di - dj + ijk] + +#undef DXYDG_GXY_IPJP +#define DXYDG_GXY_IPJP gxy[ di + dj + ijk] +#undef DXYDG_GXY_IPJM +#define DXYDG_GXY_IPJM gxy[ di - dj + ijk] +#undef DXYDG_GXY_IMJP +#define DXYDG_GXY_IMJP gxy[-di + dj + ijk] +#undef DXYDG_GXY_IMJM +#define DXYDG_GXY_IMJM gxy[-di - dj + ijk] + +#undef DXYDG_GXZ_IPJP +#define DXYDG_GXZ_IPJP gxz[ di + dj + ijk] +#undef DXYDG_GXZ_IPJM +#define DXYDG_GXZ_IPJM gxz[ di - dj + ijk] +#undef DXYDG_GXZ_IMJP +#define DXYDG_GXZ_IMJP gxz[-di + dj + ijk] +#undef DXYDG_GXZ_IMJM +#define DXYDG_GXZ_IMJM gxz[-di - dj + ijk] + +#undef DXYDG_GYY_IPJP +#define DXYDG_GYY_IPJP gyy[ di + dj + ijk] +#undef DXYDG_GYY_IPJM +#define DXYDG_GYY_IPJM gyy[ di - dj + ijk] +#undef DXYDG_GYY_IMJP +#define DXYDG_GYY_IMJP gyy[-di + dj + ijk] +#undef DXYDG_GYY_IMJM +#define DXYDG_GYY_IMJM gyy[-di - dj + ijk] + +#undef DXYDG_GYZ_IPJP +#define DXYDG_GYZ_IPJP gyz[ di + dj + ijk] +#undef DXYDG_GYZ_IPJM +#define DXYDG_GYZ_IPJM gyz[ di - dj + ijk] +#undef DXYDG_GYZ_IMJP +#define DXYDG_GYZ_IMJP gyz[-di + dj + ijk] +#undef DXYDG_GYZ_IMJM +#define DXYDG_GYZ_IMJM gyz[-di - dj + ijk] + +#undef DXYDG_GZZ_IPJP +#define DXYDG_GZZ_IPJP gzz[ di + dj + ijk] +#undef DXYDG_GZZ_IPJM +#define DXYDG_GZZ_IPJM gzz[ di - dj + ijk] +#undef DXYDG_GZZ_IMJP +#define DXYDG_GZZ_IMJP gzz[-di + dj + ijk] +#undef DXYDG_GZZ_IMJM +#define DXYDG_GZZ_IMJM gzz[-di - dj + ijk] + +/* Output variables */ +#undef DXYDG_DXYDGXX +#define DXYDG_DXYDGXX deldelg1211 +#undef DXYDG_DXYDGXY +#define DXYDG_DXYDGXY deldelg1212 +#undef DXYDG_DXYDGXZ +#define DXYDG_DXYDGXZ deldelg1213 +#undef DXYDG_DXYDGYY +#define DXYDG_DXYDGYY deldelg1222 +#undef DXYDG_DXYDGYZ +#define DXYDG_DXYDGYZ deldelg1223 +#undef DXYDG_DXYDGZZ +#define DXYDG_DXYDGZZ deldelg1233 + +/* Internal variables */ +#undef DXYDG_FAC +#define DXYDG_FAC dxydg_fac +#undef DXYDG_OO4DXDY +#define DXYDG_OO4DXDY dxydg_oo4dxdy +#undef DXYDG_DXYDPSI_O_PSI +#define DXYDG_DXYDPSI_O_PSI psixy[ijk] + +/* Declare internal variables */ +double DXYDG_FAC; +double DXYDG_OO4DXDY = 1/(4*GH->dx0*GH->dy0); + +/* Declare output variables */ +double DXYDG_DXYDGXX; +double DXYDG_DXYDGXY; +double DXYDG_DXYDGXZ; +double DXYDG_DXYDGYY; +double DXYDG_DXYDGYZ; +double DXYDG_DXYDGZZ; + +#endif + +#endif diff --git a/src/macro/DXYDG_guts.h b/src/macro/DXYDG_guts.h new file mode 100644 index 0000000..3054f61 --- /dev/null +++ b/src/macro/DXYDG_guts.h @@ -0,0 +1,94 @@ +/*@@ + @header DXYDG_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + Macro to calculate the (first and) second derivatives of the + physical metric with respect to x,y + + The macro is defined in terms of standard variables in + @seefile DXYDG_declare.h + + The macro uses @seefile DXDG_guts.h , @seefile DYDG_guts.h and + @seefile DXDG_declare.h , @seefile DYDG_declare.h + @enddesc +@@*/ + +#ifndef DXYDG_GUTS +#define DXYDG_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDG_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDG_guts.h" + +#ifdef FCODE + + DXYDG_OO4DXDY = 1D0/(4D0*dx*dy) + + /* Factor involving 2nd derivative of conformal factor */ + IF (conformal_state /= CONFORMAL_METRIC) THEN + DXYDG_FAC = 0 + ELSE + DXYDG_FAC = DXDG_PSI4*(4*DXYDG_DXYDPSI_O_PSI + 12*DXDG_DXDPSI_O_PSI*DYDG_DYDPSI_O_PSI) + ENDIF + + /* Now calculate the second deriatives */ + DXYDG_DXYDGXX = DYDCG_DYDCGXX*DXDG_FAC+DXDCG_DXDCGXX*DYDG_FAC+DXYDG_FAC*DXDG_GXX + &+DXDG_PSI4*DXYDG_OO4DXDY* + &(DXYDG_GXX_IPJP-DXYDG_GXX_IPJM-DXYDG_GXX_IMJP+DXYDG_GXX_IMJM); + + DXYDG_DXYDGXY = DYDCG_DYDCGXY*DXDG_FAC+DXDCG_DXDCGXY*DYDG_FAC+DXYDG_FAC*DXDG_GXY + &+DXDG_PSI4*DXYDG_OO4DXDY* + &(DXYDG_GXY_IPJP-DXYDG_GXY_IPJM-DXYDG_GXY_IMJP+DXYDG_GXY_IMJM); + + DXYDG_DXYDGXZ = DYDCG_DYDCGXZ*DXDG_FAC+DXDCG_DXDCGXZ*DYDG_FAC+DXYDG_FAC*DXDG_GXZ + &+DXDG_PSI4*DXYDG_OO4DXDY* + &(DXYDG_GXZ_IPJP-DXYDG_GXZ_IPJM-DXYDG_GXZ_IMJP+DXYDG_GXZ_IMJM); + + DXYDG_DXYDGYY = DYDCG_DYDCGYY*DXDG_FAC+DXDCG_DXDCGYY*DYDG_FAC+DXYDG_FAC*DXDG_GYY + &+DXDG_PSI4*DXYDG_OO4DXDY* + &(DXYDG_GYY_IPJP-DXYDG_GYY_IPJM-DXYDG_GYY_IMJP+DXYDG_GYY_IMJM); + + DXYDG_DXYDGYZ = DYDCG_DYDCGYZ*DXDG_FAC+DXDCG_DXDCGYZ*DYDG_FAC+DXYDG_FAC*DXDG_GYZ + &+DXDG_PSI4*DXYDG_OO4DXDY* + &(DXYDG_GYZ_IPJP-DXYDG_GYZ_IPJM-DXYDG_GYZ_IMJP+DXYDG_GYZ_IMJM); + + DXYDG_DXYDGZZ = DYDCG_DYDCGZZ*DXDG_FAC+DXDCG_DXDCGZZ*DYDG_FAC+DXYDG_FAC*DXDG_GZZ + &+DXDG_PSI4*DXYDG_OO4DXDY* + &(DXYDG_GZZ_IPJP-DXYDG_GZZ_IPJM-DXYDG_GZZ_IMJP+DXYDG_GZZ_IMJM); + +#endif + +#ifdef CCODE + +/* Factor involving 2nd derivative of conformal factor */ + DXYDG_FAC = ((conformal_state != CONFORMAL_METRIC)?0: + DXDG_PSI4*(4*DXYDG_DXYDPSI_O_PSI + 12*DXDG_DXDPSI_O_PSI*DYDG_DYDPSI_O_PSI)); + +/* Now calculate the second deriatives */ + DXYDG_DXYDGXX = DYDCG_DYDCGXX*DXDG_FAC+DXDCG_DXDCGXX*DYDG_FAC+DXYDG_FAC*DXDG_GXX + +DXDG_PSI4*DXYDG_OO4DXDY* + (DXYDG_GXX_IPJP-DXYDG_GXX_IPJM-DXYDG_GXX_IMJP+DXYDG_GXX_IMJM); + + DXYDG_DXYDGXY = DYDCG_DYDCGXY*DXDG_FAC+DXDCG_DXDCGXY*DYDG_FAC+DXYDG_FAC*DXDG_GXY + +DXDG_PSI4*DXYDG_OO4DXDY* + (DXYDG_GXY_IPJP-DXYDG_GXY_IPJM-DXYDG_GXY_IMJP+DXYDG_GXY_IMJM); + + DXYDG_DXYDGXZ = DYDCG_DYDCGXZ*DXDG_FAC+DXDCG_DXDCGXZ*DYDG_FAC+DXYDG_FAC*DXDG_GXZ + +DXDG_PSI4*DXYDG_OO4DXDY* + (DXYDG_GXZ_IPJP-DXYDG_GXZ_IPJM-DXYDG_GXZ_IMJP+DXYDG_GXZ_IMJM); + + DXYDG_DXYDGYY = DYDCG_DYDCGYY*DXDG_FAC+DXDCG_DXDCGYY*DYDG_FAC+DXYDG_FAC*DXDG_GYY + +DXDG_PSI4*DXYDG_OO4DXDY* + (DXYDG_GYY_IPJP-DXYDG_GYY_IPJM-DXYDG_GYY_IMJP+DXYDG_GYY_IMJM); + + DXYDG_DXYDGYZ = DYDCG_DYDCGYZ*DXDG_FAC+DXDCG_DXDCGYZ*DYDG_FAC+DXYDG_FAC*DXDG_GYZ + +DXDG_PSI4*DXYDG_OO4DXDY* + (DXYDG_GYZ_IPJP-DXYDG_GYZ_IPJM-DXYDG_GYZ_IMJP+DXYDG_GYZ_IMJM); + + DXYDG_DXYDGZZ = DYDCG_DYDCGZZ*DXDG_FAC+DXDCG_DXDCGZZ*DYDG_FAC+DXYDG_FAC*DXDG_GZZ + +DXDG_PSI4*DXYDG_OO4DXDY* + (DXYDG_GZZ_IPJP-DXYDG_GZZ_IPJM-DXYDG_GZZ_IMJP+DXYDG_GZZ_IMJM); + +#endif + +#endif diff --git a/src/macro/DXYDG_undefine.h b/src/macro/DXYDG_undefine.h new file mode 100644 index 0000000..32210c9 --- /dev/null +++ b/src/macro/DXYDG_undefine.h @@ -0,0 +1,13 @@ +/*@@ + @header DXYDG_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DXYDG_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDG_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDG_undefine.h" + diff --git a/src/macro/DXZDG_declare.h b/src/macro/DXZDG_declare.h new file mode 100644 index 0000000..2450b58 --- /dev/null +++ b/src/macro/DXZDG_declare.h @@ -0,0 +1,206 @@ +/*@@ + @header DXZDG_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + Declaration for macro to calculate the (first and) second derivatives + of the physical metric with respect to x,z + + The macro uses @seefile DXDG_guts.h , @seefile DZDG_guts.h and + @seefile DXDG_declare.h , @seefile DZDG_declare.h + @enddesc +@@*/ + +#ifndef DXZDG_DECLARE +#define DXZDG_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDG_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDG_declare.h" + +#ifdef FCODE + +/* Input variables */ +#undef DXZDG_GXX_IPKP +#define DXZDG_GXX_IPKP gxx(i+1,j,k+1) +#undef DXZDG_GXX_IPKM +#define DXZDG_GXX_IPKM gxx(i+1,j,k-1) +#undef DXZDG_GXX_IMKP +#define DXZDG_GXX_IMKP gxx(i-1,j,k+1) +#undef DXZDG_GXX_IMKM +#define DXZDG_GXX_IMKM gxx(i-1,j,k-1) + +#undef DXZDG_GXY_IPKP +#define DXZDG_GXY_IPKP gxy(i+1,j,k+1) +#undef DXZDG_GXY_IPKM +#define DXZDG_GXY_IPKM gxy(i+1,j,k-1) +#undef DXZDG_GXY_IMKP +#define DXZDG_GXY_IMKP gxy(i-1,j,k+1) +#undef DXZDG_GXY_IMKM +#define DXZDG_GXY_IMKM gxy(i-1,j,k-1) + +#undef DXZDG_GXZ_IPKP +#define DXZDG_GXZ_IPKP gxz(i+1,j,k+1) +#undef DXZDG_GXZ_IPKM +#define DXZDG_GXZ_IPKM gxz(i+1,j,k-1) +#undef DXZDG_GXZ_IMKP +#define DXZDG_GXZ_IMKP gxz(i-1,j,k+1) +#undef DXZDG_GXZ_IMKM +#define DXZDG_GXZ_IMKM gxz(i-1,j,k-1) + +#undef DXZDG_GYY_IPKP +#define DXZDG_GYY_IPKP gyy(i+1,j,k+1) +#undef DXZDG_GYY_IPKM +#define DXZDG_GYY_IPKM gyy(i+1,j,k-1) +#undef DXZDG_GYY_IMKP +#define DXZDG_GYY_IMKP gyy(i-1,j,k+1) +#undef DXZDG_GYY_IMKM +#define DXZDG_GYY_IMKM gyy(i-1,j,k-1) + +#undef DXZDG_GYZ_IPKP +#define DXZDG_GYZ_IPKP gyz(i+1,j,k+1) +#undef DXZDG_GYZ_IPKM +#define DXZDG_GYZ_IPKM gyz(i+1,j,k-1) +#undef DXZDG_GYZ_IMKP +#define DXZDG_GYZ_IMKP gyz(i-1,j,k+1) +#undef DXZDG_GYZ_IMKM +#define DXZDG_GYZ_IMKM gyz(i-1,j,k-1) + +#undef DXZDG_GZZ_IPKP +#define DXZDG_GZZ_IPKP gzz(i+1,j,k+1) +#undef DXZDG_GZZ_IPKM +#define DXZDG_GZZ_IPKM gzz(i+1,j,k-1) +#undef DXZDG_GZZ_IMKP +#define DXZDG_GZZ_IMKP gzz(i-1,j,k+1) +#undef DXZDG_GZZ_IMKM +#define DXZDG_GZZ_IMKM gzz(i-1,j,k-1) + +/* Output variables */ +#undef DXZDG_DXZDGXX +#define DXZDG_DXZDGXX deldelg1311 +#undef DXZDG_DXZDGXY +#define DXZDG_DXZDGXY deldelg1312 +#undef DXZDG_DXZDGXZ +#define DXZDG_DXZDGXZ deldelg1313 +#undef DXZDG_DXZDGYY +#define DXZDG_DXZDGYY deldelg1322 +#undef DXZDG_DXZDGYZ +#define DXZDG_DXZDGYZ deldelg1323 +#undef DXZDG_DXZDGZZ +#define DXZDG_DXZDGZZ deldelg1333 + +/* Internal variables */ +#undef DXZDG_FAC +#define DXZDG_FAC dxzdg_fac +#undef DXZDG_OO4DXDZ +#define DXZDG_OO4DXDZ dxzdg_oo4dxdz +#undef DXZDG_DXZDPSI_O_PSI +#define DXZDG_DXZDPSI_O_PSI psixz(i,j,k) + +/* Declare internal variables */ + REAL DXZDG_FAC + REAL DXZDG_OO4DXDZ + +/* Declare output variables */ + REAL DXZDG_DXZDGXX + REAL DXZDG_DXZDGXY + REAL DXZDG_DXZDGXZ + REAL DXZDG_DXZDGYY + REAL DXZDG_DXZDGYZ + REAL DXZDG_DXZDGZZ + +#endif + +#ifdef CCODE + +/* Input variables */ +#undef DXZDG_GXX_IPKP +#define DXZDG_GXX_IPKP gxx[ di + dk + ijk] +#undef DXZDG_GXX_IPKM +#define DXZDG_GXX_IPKM gxx[ di - dk + ijk] +#undef DXZDG_GXX_IMKP +#define DXZDG_GXX_IMKP gxx[-di + dk + ijk] +#undef DXZDG_GXX_IMKM +#define DXZDG_GXX_IMKM gxx[-di - dk + ijk] + +#undef DXZDG_GXY_IPKP +#define DXZDG_GXY_IPKP gxy[ di + dk + ijk] +#undef DXZDG_GXY_IPKM +#define DXZDG_GXY_IPKM gxy[ di - dk + ijk] +#undef DXZDG_GXY_IMKP +#define DXZDG_GXY_IMKP gxy[-di + dk + ijk] +#undef DXZDG_GXY_IMKM +#define DXZDG_GXY_IMKM gxy[-di - dk + ijk] + +#undef DXZDG_GXZ_IPKP +#define DXZDG_GXZ_IPKP gxz[ di + dk + ijk] +#undef DXZDG_GXZ_IPKM +#define DXZDG_GXZ_IPKM gxz[ di - dk + ijk] +#undef DXZDG_GXZ_IMKP +#define DXZDG_GXZ_IMKP gxz[-di + dk + ijk] +#undef DXZDG_GXZ_IMKM +#define DXZDG_GXZ_IMKM gxz[-di - dk + ijk] + +#undef DXZDG_GYY_IPKP +#define DXZDG_GYY_IPKP gyy[ di + dk + ijk] +#undef DXZDG_GYY_IPKM +#define DXZDG_GYY_IPKM gyy[ di - dk + ijk] +#undef DXZDG_GYY_IMKP +#define DXZDG_GYY_IMKP gyy[-di + dk + ijk] +#undef DXZDG_GYY_IMKM +#define DXZDG_GYY_IMKM gyy[-di - dk + ijk] + +#undef DXZDG_GYZ_IPKP +#define DXZDG_GYZ_IPKP gyz[ di + dk + ijk] +#undef DXZDG_GYZ_IPKM +#define DXZDG_GYZ_IPKM gyz[ di - dk + ijk] +#undef DXZDG_GYZ_IMKP +#define DXZDG_GYZ_IMKP gyz[-di + dk + ijk] +#undef DXZDG_GYZ_IMKM +#define DXZDG_GYZ_IMKM gyz[-di - dk + ijk] + +#undef DXZDG_GZZ_IPKP +#define DXZDG_GZZ_IPKP gzz[ di + dk + ijk] +#undef DXZDG_GZZ_IPKM +#define DXZDG_GZZ_IPKM gzz[ di - dk + ijk] +#undef DXZDG_GZZ_IMKP +#define DXZDG_GZZ_IMKP gzz[-di + dk + ijk] +#undef DXZDG_GZZ_IMKM +#define DXZDG_GZZ_IMKM gzz[-di - dk + ijk] + +/* Output variables */ +#undef DXZDG_DXZDGXX +#define DXZDG_DXZDGXX deldelg1311 +#undef DXZDG_DXZDGXY +#define DXZDG_DXZDGXY deldelg1312 +#undef DXZDG_DXZDGXZ +#define DXZDG_DXZDGXZ deldelg1313 +#undef DXZDG_DXZDGYY +#define DXZDG_DXZDGYY deldelg1322 +#undef DXZDG_DXZDGYZ +#define DXZDG_DXZDGYZ deldelg1323 +#undef DXZDG_DXZDGZZ +#define DXZDG_DXZDGZZ deldelg1333 + +/* Internal variables */ +#undef DXZDG_FAC +#define DXZDG_FAC dxzdg_fac +#undef DXZDG_OO4DXDZ +#define DXZDG_OO4DXDZ dxzdg_oo4dxdz +#undef DXZDG_DXZDPSI_O_PSI +#define DXZDG_DXZDPSI_O_PSI psixz[ijk] + +/* Declare internal variables */ +double DXZDG_FAC; +double DXZDG_OO4DXDZ = 1/(4*GH->dx0*GH->dz0); + +/* Declare output variables */ +double DXZDG_DXZDGXX; +double DXZDG_DXZDGXY; +double DXZDG_DXZDGXZ; +double DXZDG_DXZDGYY; +double DXZDG_DXZDGYZ; +double DXZDG_DXZDGZZ; + +#endif + +#endif diff --git a/src/macro/DXZDG_guts.h b/src/macro/DXZDG_guts.h new file mode 100644 index 0000000..e2f2861 --- /dev/null +++ b/src/macro/DXZDG_guts.h @@ -0,0 +1,95 @@ +/*@@ + @header DXZDG_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + Macro to calculate the (first and) second derivatives of the + physical metric with respect to x,z + + The macro is defined in terms of standard variables in + @seefile DXZDG_declare.h + + The macro uses @seefile DXDG_guts.h , @seefile DZDG_guts.h and + @seefile DXDG_declare.h , @seefile DZDG_declare.h + @enddesc +@@*/ + +#ifndef DXZDG_GUTS +#define DXZDG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDG_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDG_guts.h" + +#ifdef FCODE + + DXZDG_OO4DXDZ = 1D0/(4D0*dx*dz) + + /* Factor involving 2nd derivative of conformal factor */ + IF (conformal_state /= CONFORMAL_METRIC) THEN + DXZDG_FAC = 0 + ELSE + DXZDG_FAC = DXDG_PSI4*(4*DXZDG_DXZDPSI_O_PSI + 12*DXDG_DXDPSI_O_PSI*DZDG_DZDPSI_O_PSI) + ENDIF + + /* Now calculate the second deriatives */ + DXZDG_DXZDGXX = DZDCG_DZDCGXX*DXDG_FAC+DXDCG_DXDCGXX*DZDG_FAC+DXZDG_FAC*DXDG_GXX+ + &DXDG_PSI4*DXZDG_OO4DXDZ*(DXZDG_GXX_IPKP-DXZDG_GXX_IPKM-DXZDG_GXX_IMKP+ + &DXZDG_GXX_IMKM) + + DXZDG_DXZDGXY = DZDCG_DZDCGXY*DXDG_FAC+DXDCG_DXDCGXY*DZDG_FAC+DXZDG_FAC*DXDG_GXY+ + &DXDG_PSI4*DXZDG_OO4DXDZ*(DXZDG_GXY_IPKP-DXZDG_GXY_IPKM-DXZDG_GXY_IMKP+ + &DXZDG_GXY_IMKM) + + DXZDG_DXZDGXZ = DZDCG_DZDCGXZ*DXDG_FAC+DXDCG_DXDCGXZ*DZDG_FAC+DXZDG_FAC*DXDG_GXZ+ + &DXDG_PSI4*DXZDG_OO4DXDZ*(DXZDG_GXZ_IPKP-DXZDG_GXZ_IPKM-DXZDG_GXZ_IMKP+ + &DXZDG_GXZ_IMKM) + + DXZDG_DXZDGYY = DZDCG_DZDCGYY*DXDG_FAC+DXDCG_DXDCGYY*DZDG_FAC+DXZDG_FAC*DXDG_GYY+ + &DXDG_PSI4*DXZDG_OO4DXDZ*(DXZDG_GYY_IPKP-DXZDG_GYY_IPKM-DXZDG_GYY_IMKP+ + &DXZDG_GYY_IMKM) + + DXZDG_DXZDGYZ = DZDCG_DZDCGYZ*DXDG_FAC+DXDCG_DXDCGYZ*DZDG_FAC+DXZDG_FAC*DXDG_GYZ+ + &DXDG_PSI4*DXZDG_OO4DXDZ*(DXZDG_GYZ_IPKP-DXZDG_GYZ_IPKM-DXZDG_GYZ_IMKP+ + &DXZDG_GYZ_IMKM) + + DXZDG_DXZDGZZ = DZDCG_DZDCGZZ*DXDG_FAC+DXDCG_DXDCGZZ*DZDG_FAC+DXZDG_FAC*DXDG_GZZ+ + &DXDG_PSI4*DXZDG_OO4DXDZ*(DXZDG_GZZ_IPKP-DXZDG_GZZ_IPKM-DXZDG_GZZ_IMKP+ + &DXZDG_GZZ_IMKM) + + +#endif + +#ifdef CCODE + + /* Factor involving 2nd derivative of conformal factor */ + DXZDG_FAC = ((conformal_state != CONFORMAL_METRIC)?0: + DXDG_PSI4*(4*DXZDG_DXZDPSI_O_PSI + 12*DXDG_DXDPSI_O_PSI*DZDG_DZDPSI_O_PSI)); + + /* Now calculate the second deriatives */ + DXZDG_DXZDGXX = DZDCG_DZDCGXX*DXDG_FAC+DXDCG_DXDCGXX*DZDG_FAC+DXZDG_FAC*DXDG_GXX+ + DXDG_PSI4*DXZDG_OO4DXDZ*(DXZDG_GXX_IPKP-DXZDG_GXX_IPKM-DXZDG_GXX_IMKP+ + DXZDG_GXX_IMKM); + + DXZDG_DXZDGXY = DZDCG_DZDCGXY*DXDG_FAC+DXDCG_DXDCGXY*DZDG_FAC+DXZDG_FAC*DXDG_GXY+ + DXDG_PSI4*DXZDG_OO4DXDZ*(DXZDG_GXY_IPKP-DXZDG_GXY_IPKM-DXZDG_GXY_IMKP+ + DXZDG_GXY_IMKM); + + DXZDG_DXZDGXZ = DZDCG_DZDCGXZ*DXDG_FAC+DXDCG_DXDCGXZ*DZDG_FAC+DXZDG_FAC*DXDG_GXZ+ + DXDG_PSI4*DXZDG_OO4DXDZ*(DXZDG_GXZ_IPKP-DXZDG_GXZ_IPKM-DXZDG_GXZ_IMKP+ + DXZDG_GXZ_IMKM); + + DXZDG_DXZDGYY = DZDCG_DZDCGYY*DXDG_FAC+DXDCG_DXDCGYY*DZDG_FAC+DXZDG_FAC*DXDG_GYY+ + DXDG_PSI4*DXZDG_OO4DXDZ*(DXZDG_GYY_IPKP-DXZDG_GYY_IPKM-DXZDG_GYY_IMKP+ + DXZDG_GYY_IMKM); + + DXZDG_DXZDGYZ = DZDCG_DZDCGYZ*DXDG_FAC+DXDCG_DXDCGYZ*DZDG_FAC+DXZDG_FAC*DXDG_GYZ+ + DXDG_PSI4*DXZDG_OO4DXDZ*(DXZDG_GYZ_IPKP-DXZDG_GYZ_IPKM-DXZDG_GYZ_IMKP+ + DXZDG_GYZ_IMKM); + + DXZDG_DXZDGZZ = DZDCG_DZDCGZZ*DXDG_FAC+DXDCG_DXDCGZZ*DZDG_FAC+DXZDG_FAC*DXDG_GZZ+ + DXDG_PSI4*DXZDG_OO4DXDZ*(DXZDG_GZZ_IPKP-DXZDG_GZZ_IPKM-DXZDG_GZZ_IMKP+ + DXZDG_GZZ_IMKM); + +#endif + +#endif diff --git a/src/macro/DXZDG_undefine.h b/src/macro/DXZDG_undefine.h new file mode 100644 index 0000000..260894c --- /dev/null +++ b/src/macro/DXZDG_undefine.h @@ -0,0 +1,12 @@ +/*@@ + @header DXZDG_undefine.h + @date Jun 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DXZDG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DXDG_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDG_undefine.h" diff --git a/src/macro/DYDB_declare.h b/src/macro/DYDB_declare.h new file mode 100644 index 0000000..c48745b --- /dev/null +++ b/src/macro/DYDB_declare.h @@ -0,0 +1,92 @@ +/*@@ + @header DYDB_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + Declarations for macro @seefile DYDB_guts.h to compute first + derivatives of the shift with respect to y + @enddesc +@@*/ + +#ifndef DYDB_DECLARE +#define DYDB_DECLARE + +#ifdef FCODE + +/* Input variables */ +#undef DYDB_BX_JP +#define DYDB_BX_JP betax(i,j+1,k) +#undef DYDB_BX_JM +#define DYDB_BX_JM betax(i,j-1,k) +#undef DYDB_BY_JP +#define DYDB_BY_JP betay(i,j+1,k) +#undef DYDB_BY_JM +#define DYDB_BY_JM betay(i,j-1,k) +#undef DYDB_BZ_JP +#define DYDB_BZ_JP betaz(i,j+1,k) +#undef DYDB_BZ_JM +#define DYDB_BZ_JM betaz(i,j-1,k) + +/* Output variables */ +#undef DYDB_DYDBX +#define DYDB_DYDBX dydb_dydbx +#undef DYDB_DYDBY +#define DYDB_DYDBY dydb_dydby +#undef DYDB_DYDBZ +#define DYDB_DYDBZ dydb_dydbz + +/* Internal variables */ +#undef DYDB_DY +#define DYDB_DY dy +#undef DYDB_OO2DY +#define DYDB_OO2DY dydb_oo2dy + +/* Declare internal variables */ + REAL DYDB_OO2DY; + +/* Declare output variables */ + REAL DYDB_DYDBX + REAL DYDB_DYDBY + REAL DYDB_DYDBZ + +#endif + +#ifdef CCODE + +/* Input variables */ +#undef DYDB_BX_JP +#define DYDB_BX_JP betax[ dj+ijk] +#undef DYDB_BX_JM +#define DYDB_BX_JM betax[-dj+ijk] +#undef DYDB_BY_JP +#define DYDB_BY_JP betay[ dj+ijk] +#undef DYDB_BY_JM +#define DYDB_BY_JM betay[-dj+ijk] +#undef DYDB_BZ_JP +#define DYDB_BZ_JP betaz[ dj+ijk] +#undef DYDB_BZ_JM +#define DYDB_BZ_JM betaz[-dj+ijk] + +/* Output variables */ +#undef DYDB_DYDBX +#define DYDB_DYDBX delbeta21 +#undef DYDB_DYDBY +#define DYDB_DYDBY delbeta22 +#undef DYDB_DYDBZ +#define DYDB_DYDBZ delbeta23 + +/* Internal variables */ +#undef DYDB_OO2DY +#define DYDB_OO2DY dydb_oo2dy + +/* Declare internal variables */ +double DYDB_OO2DY; + +/* Declare output variables */ +double DYDB_DYDBX; +double DYDB_DYDBY; +double DYDB_DYDBZ; + +#endif + +#endif diff --git a/src/macro/DYDB_guts.h b/src/macro/DYDB_guts.h new file mode 100644 index 0000000..eafdcfa --- /dev/null +++ b/src/macro/DYDB_guts.h @@ -0,0 +1,39 @@ +/*@@ + @header DYDB_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + + Macro to calculate the first derivatives of the + shift with respect to y + + The macro is defined in terms of standard variables in + @seefile DYDB_declare.h + @enddesc +@@*/ + +#ifndef DYDB_GUTS +#define DYDB_GUTS + +#ifdef FCODE + + DYDB_OO2DY = 1D0/(2D0*DYDB_DY) + + DYDB_DYDBX = DYDB_OO2DY*(DYDB_BX_JP - DYDB_BX_JM) + DYDB_DYDBY = DYDB_OO2DY*(DYDB_BY_JP - DYDB_BY_JM) + DYDB_DYDBZ = DYDB_OO2DY*(DYDB_BZ_JP - DYDB_BZ_JM) + +#endif + +#ifdef CCODE + + DYDB_OO2DY = 1/(2*GH->dy0); + + DYDB_DYDBX = DYDB_OO2DY*(DYDB_BX_JP - DYDB_BX_JM); + DYDB_DYDBY = DYDB_OO2DY*(DYDB_BY_JP - DYDB_BY_JM); + DYDB_DYDBZ = DYDB_OO2DY*(DYDB_BZ_JP - DYDB_BZ_JM); + +#endif + +#endif + diff --git a/src/macro/DYDB_undefine.h b/src/macro/DYDB_undefine.h new file mode 100644 index 0000000..326e48b --- /dev/null +++ b/src/macro/DYDB_undefine.h @@ -0,0 +1,10 @@ +/*@@ + @header DYDB_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DYDB_GUTS + diff --git a/src/macro/DYDCG_declare.h b/src/macro/DYDCG_declare.h new file mode 100644 index 0000000..19a6e57 --- /dev/null +++ b/src/macro/DYDCG_declare.h @@ -0,0 +1,137 @@ +/*@@ + @header DYDCG_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + Declarations for macro @seefile DYDCG_guts.h to compute first + derivatives of the conformal metric with respect to y + @enddesc +@@*/ + +#ifndef DYDCG_DECLARE + +#ifdef FCODE + +/* Input variables */ +#undef DYDCG_GXX_JP +#define DYDCG_GXX_JP gxx(i,j+1,k) +#undef DYDCG_GXX_JM +#define DYDCG_GXX_JM gxx(i,j-1,k) +#undef DYDCG_GXY_JP +#define DYDCG_GXY_JP gxy(i,j+1,k) +#undef DYDCG_GXY_JM +#define DYDCG_GXY_JM gxy(i,j-1,k) +#undef DYDCG_GXZ_JP +#define DYDCG_GXZ_JP gxz(i,j+1,k) +#undef DYDCG_GXZ_JM +#define DYDCG_GXZ_JM gxz(i,j-1,k) +#undef DYDCG_GYY_JP +#define DYDCG_GYY_JP gyy(i,j+1,k) +#undef DYDCG_GYY_JM +#define DYDCG_GYY_JM gyy(i,j-1,k) +#undef DYDCG_GYZ_JP +#define DYDCG_GYZ_JP gyz(i,j+1,k) +#undef DYDCG_GYZ_JM +#define DYDCG_GYZ_JM gyz(i,j-1,k) +#undef DYDCG_GZZ_JP +#define DYDCG_GZZ_JP gzz(i,j+1,k) +#undef DYDCG_GZZ_JM +#define DYDCG_GZZ_JM gzz(i,j-1,k) + +/* Output variables */ +#undef DYDCG_DYDCGXX +#define DYDCG_DYDCGXX delgb211 +#undef DYDCG_DYDCGXY +#define DYDCG_DYDCGXY delgb212 +#undef DYDCG_DYDCGXZ +#define DYDCG_DYDCGXZ delgb213 +#undef DYDCG_DYDCGYY +#define DYDCG_DYDCGYY delgb222 +#undef DYDCG_DYDCGYZ +#define DYDCG_DYDCGYZ delgb223 +#undef DYDCG_DYDCGZZ +#define DYDCG_DYDCGZZ delgb233 + +/* Internal variables */ +#undef DYDCG_DY +#define DYDCG_DY dy +#undef DYDCG_OO2DY +#define DYDCG_OO2DY cdydg_oo2dy + +/* Declare internal variables */ + REAL DYDCG_OO2DY + +/* Declare output variables */ + REAL DYDCG_DYDCGXX + REAL DYDCG_DYDCGXY + REAL DYDCG_DYDCGXZ + REAL DYDCG_DYDCGYY + REAL DYDCG_DYDCGYZ + REAL DYDCG_DYDCGZZ + +#endif + + +#ifdef CCODE + +/* Input variables */ +#undef DYDCG_GXX_JP +#define DYDCG_GXX_JP gxx[ dj+ijk] +#undef DYDCG_GXX_JM +#define DYDCG_GXX_JM gxx[-dj+ijk] +#undef DYDCG_GXY_JP +#define DYDCG_GXY_JP gxy[ dj+ijk] +#undef DYDCG_GXY_JM +#define DYDCG_GXY_JM gxy[-dj+ijk] +#undef DYDCG_GXZ_JP +#define DYDCG_GXZ_JP gxz[ dj+ijk] +#undef DYDCG_GXZ_JM +#define DYDCG_GXZ_JM gxz[-dj+ijk] +#undef DYDCG_GYY_JP +#define DYDCG_GYY_JP gyy[ dj+ijk] +#undef DYDCG_GYY_JM +#define DYDCG_GYY_JM gyy[-dj+ijk] +#undef DYDCG_GYZ_JP +#define DYDCG_GYZ_JP gyz[ dj+ijk] +#undef DYDCG_GYZ_JM +#define DYDCG_GYZ_JM gyz[-dj+ijk] +#undef DYDCG_GZZ_JP +#define DYDCG_GZZ_JP gzz[ dj+ijk] +#undef DYDCG_GZZ_JM +#define DYDCG_GZZ_JM gzz[-dj+ijk] + +/* Output variables */ +#undef DYDCG_DYDCGXX +#define DYDCG_DYDCGXX delgb211 +#undef DYDCG_DYDCGXY +#define DYDCG_DYDCGXY delgb212 +#undef DYDCG_DYDCGXZ +#define DYDCG_DYDCGXZ delgb213 +#undef DYDCG_DYDCGYY +#define DYDCG_DYDCGYY delgb222 +#undef DYDCG_DYDCGYZ +#define DYDCG_DYDCGYZ delgb223 +#undef DYDCG_DYDCGZZ +#define DYDCG_DYDCGZZ delgb233 + +/* Internal variables */ +#undef DYDCG_OO2DY +#define DYDCG_OO2DY cdydg_oo2dy + +/* Declare internal variables */ +double DYDCG_OO2DY; + +/* Declare output variables */ +double DYDCG_DYDCGXX; +double DYDCG_DYDCGXY; +double DYDCG_DYDCGXZ; +double DYDCG_DYDCGYY; +double DYDCG_DYDCGYZ; +double DYDCG_DYDCGZZ; + +#endif + +#define DYDCG_DECLARE + +#endif + diff --git a/src/macro/DYDCG_guts.h b/src/macro/DYDCG_guts.h new file mode 100644 index 0000000..a9777d5 --- /dev/null +++ b/src/macro/DYDCG_guts.h @@ -0,0 +1,49 @@ +/*@@ + @header DYDCG_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + Macro to calculate the first derivatives of the + conformal metric with respect to y + + The macro is defined in terms of standard variables in + + Requires: lower conformal metric at j+1,j-1 ; dy0 + + Provides: derivative of lower conformal metric wrt y + + @seefile DYDCG_declare.h + @enddesc +@@*/ + +#ifndef DYDCG_GUTS +#define DYDCG_GUTS + +#ifdef FCODE + + DYDCG_OO2DY = 1D0/(2D0*DYDCG_DY) + + DYDCG_DYDCGXX = DYDCG_OO2DY*(DYDCG_GXX_JP - DYDCG_GXX_JM) + DYDCG_DYDCGXY = DYDCG_OO2DY*(DYDCG_GXY_JP - DYDCG_GXY_JM) + DYDCG_DYDCGXZ = DYDCG_OO2DY*(DYDCG_GXZ_JP - DYDCG_GXZ_JM) + DYDCG_DYDCGYY = DYDCG_OO2DY*(DYDCG_GYY_JP - DYDCG_GYY_JM) + DYDCG_DYDCGYZ = DYDCG_OO2DY*(DYDCG_GYZ_JP - DYDCG_GYZ_JM) + DYDCG_DYDCGZZ = DYDCG_OO2DY*(DYDCG_GZZ_JP - DYDCG_GZZ_JM) + +#endif + + +#ifdef CCODE + + DYDCG_OO2DY = 1/(2*GH->dy0); + + DYDCG_DYDCGXX = DYDCG_OO2DY*(DYDCG_GXX_JP - DYDCG_GXX_JM); + DYDCG_DYDCGXY = DYDCG_OO2DY*(DYDCG_GXY_JP - DYDCG_GXY_JM); + DYDCG_DYDCGXZ = DYDCG_OO2DY*(DYDCG_GXZ_JP - DYDCG_GXZ_JM); + DYDCG_DYDCGYY = DYDCG_OO2DY*(DYDCG_GYY_JP - DYDCG_GYY_JM); + DYDCG_DYDCGYZ = DYDCG_OO2DY*(DYDCG_GYZ_JP - DYDCG_GYZ_JM); + DYDCG_DYDCGZZ = DYDCG_OO2DY*(DYDCG_GZZ_JP - DYDCG_GZZ_JM); + +#endif + +#endif diff --git a/src/macro/DYDCG_undefine.h b/src/macro/DYDCG_undefine.h new file mode 100644 index 0000000..0b24669 --- /dev/null +++ b/src/macro/DYDCG_undefine.h @@ -0,0 +1,10 @@ +/*@@ + @header DYDCG_undefine.h + @date Jun 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DYDCG_GUTS + diff --git a/src/macro/DYDG_declare.h b/src/macro/DYDG_declare.h new file mode 100644 index 0000000..5bdd34f --- /dev/null +++ b/src/macro/DYDG_declare.h @@ -0,0 +1,131 @@ +/*@@ + @header DYDG_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + Declarations for macro @seefile DYDG_guts.h to compute first + derivatives of the physical metric with respect to y + @enddesc +@@*/ + +#ifndef DYDG_DECLARE +#define DYDG_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDCG_declare.h" + +#ifdef FCODE + +/* Input variables */ +#undef DYDG_PSI +#define DYDG_PSI psi(i,j,k) + +#undef DYDG_DYDPSI_O_PSI +#define DYDG_DYDPSI_O_PSI psiy(i,j,k) + +#undef DYDG_GXX +#define DYDG_GXX gxx(i,j,k) +#undef DYDG_GXY +#define DYDG_GXY gxy(i,j,k) +#undef DYDG_GXZ +#define DYDG_GXZ gxz(i,j,k) +#undef DYDG_GYY +#define DYDG_GYY gyy(i,j,k) +#undef DYDG_GYZ +#define DYDG_GYZ gyz(i,j,k) +#undef DYDG_GZZ +#define DYDG_GZZ gzz(i,j,k) + +/* Output variables */ +#undef DYDG_DYDGXX +#define DYDG_DYDGXX dydgxx +#undef DYDG_DYDGXY +#define DYDG_DYDGXY dydgxy +#undef DYDG_DYDGXZ +#define DYDG_DYDGXZ dydgxz +#undef DYDG_DYDGYY +#define DYDG_DYDGYY dydgyy +#undef DYDG_DYDGYZ +#define DYDG_DYDGYZ dydgyz +#undef DYDG_DYDGZZ +#define DYDG_DYDGZZ dydgzz + +/* Internal variables */ +#undef DYDG_PSI4 +#define DYDG_PSI4 dydg_psi4 + +#undef DYDG_FAC +#define DYDG_FAC dydg_fac + +/* Declare internal variables */ + REAL DYDG_PSI4; + REAL DYDG_FAC; + +/* Declare output variables */ + REAL DYDG_DYDGXX; + REAL DYDG_DYDGXY; + REAL DYDG_DYDGXZ; + REAL DYDG_DYDGYY; + REAL DYDG_DYDGYZ; + REAL DYDG_DYDGZZ; + +#endif + +#ifdef CCODE + +/* Output variables */ +#undef DYDG_DYDGXX +#define DYDG_DYDGXX delg211 +#undef DYDG_DYDGXY +#define DYDG_DYDGXY delg212 +#undef DYDG_DYDGXZ +#define DYDG_DYDGXZ delg213 +#undef DYDG_DYDGYY +#define DYDG_DYDGYY delg222 +#undef DYDG_DYDGYZ +#define DYDG_DYDGYZ delg223 +#undef DYDG_DYDGZZ +#define DYDG_DYDGZZ delg233 + +/* Input variables */ + +#undef DYDG_PSI +#define DYDG_PSI psi[ijk] + +#undef DYDG_DYDPSI_O_PSI +#define DYDG_DYDPSI_O_PSI psiy[ijk] + +#undef DYDG_GXX +#define DYDG_GXX gxx[ijk] +#undef DYDG_GXY +#define DYDG_GXY gxy[ijk] +#undef DYDG_GXZ +#define DYDG_GXZ gxz[ijk] +#undef DYDG_GYY +#define DYDG_GYY gyy[ijk] +#undef DYDG_GYZ +#define DYDG_GYZ gyz[ijk] +#undef DYDG_GZZ +#define DYDG_GZZ gzz[ijk] + +/* Internal variables */ +#undef DYDG_PSI4 +#define DYDG_PSI4 dydg_psi4 + +#undef DYDG_FAC +#define DYDG_FAC dydg_fac + +/* Declare internal variables */ +double DYDG_PSI4; +double DYDG_FAC; + +/* Declare output variables */ +double DYDG_DYDGXX; +double DYDG_DYDGXY; +double DYDG_DYDGXZ; +double DYDG_DYDGYY; +double DYDG_DYDGYZ; +double DYDG_DYDGZZ; + +#endif + +#endif diff --git a/src/macro/DYDG_guts.h b/src/macro/DYDG_guts.h new file mode 100644 index 0000000..802d3c4 --- /dev/null +++ b/src/macro/DYDG_guts.h @@ -0,0 +1,53 @@ +/*@@ + @header DYDG_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + Macro to calculate the first derivatives of the + physical metric with respect to y + + The macro is defined in terms of standard variables in + @seefile DYDG_declare.h + @enddesc +@@*/ + +#ifndef DYDG_GUTS +#define DYDG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDCG_guts.h" + +#ifdef FCODE + + IF (conformal_state /= CONFORMAL_METRIC) THEN + DYDG_PSI4 = 1 + DYDG_FAC = 0 + ELSE + DYDG_PSI4 = DYDG_PSI**4 + DYDG_FAC = 4*DYDG_PSI4*DYDG_DYDPSI_O_PSI + ENDIF + + DYDG_DYDGXX = DYDCG_DYDCGXX*DYDG_PSI4 + DYDG_FAC*DYDG_GXX + DYDG_DYDGXY = DYDCG_DYDCGXY*DYDG_PSI4 + DYDG_FAC*DYDG_GXY + DYDG_DYDGXZ = DYDCG_DYDCGXZ*DYDG_PSI4 + DYDG_FAC*DYDG_GXZ + DYDG_DYDGYY = DYDCG_DYDCGYY*DYDG_PSI4 + DYDG_FAC*DYDG_GYY + DYDG_DYDGYZ = DYDCG_DYDCGYZ*DYDG_PSI4 + DYDG_FAC*DYDG_GYZ + DYDG_DYDGZZ = DYDCG_DYDCGZZ*DYDG_PSI4 + DYDG_FAC*DYDG_GZZ + +#endif + +#ifdef CCODE + + DYDG_PSI4 = ((conformal_state != CONFORMAL_METRIC)?1:Power(DYDG_PSI,4)); + + DYDG_FAC = ((conformal_state != CONFORMAL_METRIC)?0:4*DYDG_PSI4*DYDG_DYDPSI_O_PSI); + + DYDG_DYDGXX = DYDCG_DYDCGXX*DYDG_PSI4 + DYDG_FAC*DYDG_GXX; + DYDG_DYDGXY = DYDCG_DYDCGXY*DYDG_PSI4 + DYDG_FAC*DYDG_GXY; + DYDG_DYDGXZ = DYDCG_DYDCGXZ*DYDG_PSI4 + DYDG_FAC*DYDG_GXZ; + DYDG_DYDGYY = DYDCG_DYDCGYY*DYDG_PSI4 + DYDG_FAC*DYDG_GYY; + DYDG_DYDGYZ = DYDCG_DYDCGYZ*DYDG_PSI4 + DYDG_FAC*DYDG_GYZ; + DYDG_DYDGZZ = DYDCG_DYDCGZZ*DYDG_PSI4 + DYDG_FAC*DYDG_GZZ; + +#endif + +#endif diff --git a/src/macro/DYDG_undefine.h b/src/macro/DYDG_undefine.h new file mode 100644 index 0000000..95b873d --- /dev/null +++ b/src/macro/DYDG_undefine.h @@ -0,0 +1,12 @@ +/*@@ + @header DYDG_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DYDG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDCG_undefine.h" + diff --git a/src/macro/DYDK_declare.h b/src/macro/DYDK_declare.h new file mode 100644 index 0000000..16f6d4e --- /dev/null +++ b/src/macro/DYDK_declare.h @@ -0,0 +1,137 @@ +/*@@ + @header DYDK_declare.h + @date Jul 98 + @author Gabrielle Allen + @desc + Declarations for macro @seefile DYDG_guts.h to compute first + derivatives of the extrinsic curvature with respect to y + @enddesc +@@*/ + +#ifndef DYDK_DECLARE + +#ifdef FCODE + +/* Input variables */ +#undef DYDK_KXX_JP +#define DYDK_KXX_JP hxx(i,j+1,k) +#undef DYDK_KXX_JM +#define DYDK_KXX_JM hxx(i,j-1,k) +#undef DYDK_KXY_JP +#define DYDK_KXY_JP hxy(i,j+1,k) +#undef DYDK_KXY_JM +#define DYDK_KXY_JM hxy(i,j-1,k) +#undef DYDK_KXZ_JP +#define DYDK_KXZ_JP hxz(i,j+1,k) +#undef DYDK_KXZ_JM +#define DYDK_KXZ_JM hxz(i,j-1,k) +#undef DYDK_KYY_JP +#define DYDK_KYY_JP hyy(i,j+1,k) +#undef DYDK_KYY_JM +#define DYDK_KYY_JM hyy(i,j-1,k) +#undef DYDK_KYZ_JP +#define DYDK_KYZ_JP hyz(i,j+1,k) +#undef DYDK_KYZ_JM +#define DYDK_KYZ_JM hyz(i,j-1,k) +#undef DYDK_KZZ_JP +#define DYDK_KZZ_JP hzz(i,j+1,k) +#undef DYDK_KZZ_JM +#define DYDK_KZZ_JM hzz(i,j-1,k) + +/* Output variables */ +#undef DYDK_DYDKXX +#define DYDK_DYDKXX dydk_dydkxx +#undef DYDK_DYDKXY +#define DYDK_DYDKXY dydk_dydkxy +#undef DYDK_DYDKXZ +#define DYDK_DYDKXZ dydk_dydkxz +#undef DYDK_DYDKYY +#define DYDK_DYDKYY dydk_dydkyy +#undef DYDK_DYDKYZ +#define DYDK_DYDKYZ dydk_dydkyz +#undef DYDK_DYDKZZ +#define DYDK_DYDKZZ dydk_dydkzz + +/* Internal variables */ +#undef DYDK_DY +#define DYDK_DY dy +#undef DYDK_OO2DY +#define DYDK_OO2DY dydk_oo2dy + +/* Declare internal variables */ + REAL DYDK_OO2DY + +/* Declare output variables */ + REAL DYDK_DYDKXX + REAL DYDK_DYDKXY + REAL DYDK_DYDKXZ + REAL DYDK_DYDKYY + REAL DYDK_DYDKYZ + REAL DYDK_DYDKZZ + +#endif + + +#ifdef CCODE + +/* Input variables */ +#undef DYDK_KXX_JP +#define DYDK_KXX_JP hxx[ dj+ijk] +#undef DYDK_KXX_JM +#define DYDK_KXX_JM hxx[-dj+ijk] +#undef DYDK_KXY_JP +#define DYDK_KXY_JP hxy[ dj+ijk] +#undef DYDK_KXY_JM +#define DYDK_KXY_JM hxy[-dj+ijk] +#undef DYDK_KXZ_JP +#define DYDK_KXZ_JP hxz[ dj+ijk] +#undef DYDK_KXZ_JM +#define DYDK_KXZ_JM hxz[-dj+ijk] +#undef DYDK_KYY_JP +#define DYDK_KYY_JP hyy[ dj+ijk] +#undef DYDK_KYY_JM +#define DYDK_KYY_JM hyy[-dj+ijk] +#undef DYDK_KYZ_JP +#define DYDK_KYZ_JP hyz[ dj+ijk] +#undef DYDK_KYZ_JM +#define DYDK_KYZ_JM hyz[-dj+ijk] +#undef DYDK_KZZ_JP +#define DYDK_KZZ_JP hzz[ dj+ijk] +#undef DYDK_KZZ_JM +#define DYDK_KZZ_JM hzz[-dj+ijk] + +/* Output variables */ +#undef DYDK_DYDKXX +#define DYDK_DYDKXX dydk_dydkxx +#undef DYDK_DYDKXY +#define DYDK_DYDKXY dydk_dydkxy +#undef DYDK_DYDKXZ +#define DYDK_DYDKXZ dydk_dydkxz +#undef DYDK_DYDKYY +#define DYDK_DYDKYY dydk_dydkyy +#undef DYDK_DYDKYZ +#define DYDK_DYDKYZ dydk_dydkyz +#undef DYDK_DYDKZZ +#define DYDK_DYDKZZ dydk_dydkzz + +/* Internal variables */ +#undef DYDK_OO2DY +#define DYDK_OO2DY dydk_oo2dy + +/* Declare internal variables */ +double DYDK_OO2DY; + +/* Declare output variables */ +double DYDK_DYDKXX; +double DYDK_DYDKXY; +double DYDK_DYDKXZ; +double DYDK_DYDKYY; +double DYDK_DYDKYZ; +double DYDK_DYDKZZ; + +#endif + +#define DYDK_DECLARE + +#endif + diff --git a/src/macro/DYDK_guts.h b/src/macro/DYDK_guts.h new file mode 100644 index 0000000..0eba500 --- /dev/null +++ b/src/macro/DYDK_guts.h @@ -0,0 +1,41 @@ +/*@@ + @header DYDG_guts.h + @date Jul 98 + @author Gabrielle Allen + @desc + Macro to calculate the first derivatives of the + extrinsic curvature with respect to y + @enddesc +@@*/ + +#ifndef DYDK_GUTS +#define DYDK_GUTS + +#ifdef FCODE + + DYDK_OO2DY = 1D0/(2D0*DYDK_DY) + + DYDK_DYDKXX = DYDK_OO2DY*(DYDK_KXX_JP - DYDK_KXX_JM) + DYDK_DYDKXY = DYDK_OO2DY*(DYDK_KXY_JP - DYDK_KXY_JM) + DYDK_DYDKXZ = DYDK_OO2DY*(DYDK_KXZ_JP - DYDK_KXZ_JM) + DYDK_DYDKYY = DYDK_OO2DY*(DYDK_KYY_JP - DYDK_KYY_JM) + DYDK_DYDKYZ = DYDK_OO2DY*(DYDK_KYZ_JP - DYDK_KYZ_JM) + DYDK_DYDKZZ = DYDK_OO2DY*(DYDK_KZZ_JP - DYDK_KZZ_JM) + +#endif + + +#ifdef CCODE + + DYDK_OO2DY = 1/(2*GH->dy0); + + DYDK_DYDKXX = DYDK_OO2DY*(DYDK_KXX_JP - DYDK_KXX_JM); + DYDK_DYDKXY = DYDK_OO2DY*(DYDK_KXY_JP - DYDK_KXY_JM); + DYDK_DYDKXZ = DYDK_OO2DY*(DYDK_KXZ_JP - DYDK_KXZ_JM); + DYDK_DYDKYY = DYDK_OO2DY*(DYDK_KYY_JP - DYDK_KYY_JM); + DYDK_DYDKYZ = DYDK_OO2DY*(DYDK_KYZ_JP - DYDK_KYZ_JM); + DYDK_DYDKZZ = DYDK_OO2DY*(DYDK_KZZ_JP - DYDK_KZZ_JM); + +#endif + +#endif diff --git a/src/macro/DYDK_undefine.h b/src/macro/DYDK_undefine.h new file mode 100644 index 0000000..98d3aee --- /dev/null +++ b/src/macro/DYDK_undefine.h @@ -0,0 +1,11 @@ +/*@@ + @header DYDG_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DYDK_GUTS + + diff --git a/src/macro/DYYDG_declare.h b/src/macro/DYYDG_declare.h new file mode 100644 index 0000000..2bf22e6 --- /dev/null +++ b/src/macro/DYYDG_declare.h @@ -0,0 +1,94 @@ +/*@@ + @header DYYDG_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + Declarations for macro to calculate the (first and) second derivatives + of the physical metric with respect to y + + The macro uses @seefile DYDG_guts.h and @seefile DYDG_declare.h + @enddesc +@@*/ + +#ifndef DYYDG_DECLARE +#define DYYDG_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDG_declare.h" + +#ifdef FCODE + +/* Output variables */ +#undef DYYDG_DYYDGXX +#define DYYDG_DYYDGXX dyydgxx +#undef DYYDG_DYYDGXY +#define DYYDG_DYYDGXY dyydgxy +#undef DYYDG_DYYDGXZ +#define DYYDG_DYYDGXZ dyydgxz +#undef DYYDG_DYYDGYY +#define DYYDG_DYYDGYY dyydgyy +#undef DYYDG_DYYDGYZ +#define DYYDG_DYYDGYZ dyydgyz +#undef DYYDG_DYYDGZZ +#define DYYDG_DYYDGZZ dyydgzz + +/* Internal variables */ +#undef DYYDG_FAC +#define DYYDG_FAC dyydg_fac +#undef DYYDG_OODY2 +#define DYYDG_OODY2 dyydg_oody2 +#undef DYYDG_DYYDPSI_O_PSI +#define DYYDG_DYYDPSI_O_PSI psiyy(i,j,k) + +/* Declare internal variables */ + REAL DYYDG_FAC + REAL DYYDG_OODY2 + +/* Declare output variables */ + REAL DYYDG_DYYDGXX + REAL DYYDG_DYYDGXY + REAL DYYDG_DYYDGXZ + REAL DYYDG_DYYDGYY + REAL DYYDG_DYYDGYZ + REAL DYYDG_DYYDGZZ + +#endif + +#ifdef CCODE + +/* Output variables */ +#undef DYYDG_DYYDGXX +#define DYYDG_DYYDGXX deldelg2211 +#undef DYYDG_DYYDGXY +#define DYYDG_DYYDGXY deldelg2212 +#undef DYYDG_DYYDGXZ +#define DYYDG_DYYDGXZ deldelg2213 +#undef DYYDG_DYYDGYY +#define DYYDG_DYYDGYY deldelg2222 +#undef DYYDG_DYYDGYZ +#define DYYDG_DYYDGYZ deldelg2223 +#undef DYYDG_DYYDGZZ +#define DYYDG_DYYDGZZ deldelg2233 + +/* Internal variables */ +#undef DYYDG_FAC +#define DYYDG_FAC dyydg_fac +#undef DYYDG_OODY2 +#define DYYDG_OODY2 dyydg_oody2 +#undef DYYDG_DYYDPSI_O_PSI +#define DYYDG_DYYDPSI_O_PSI psiyy[ijk] + +/* Declare internal variables */ +double DYYDG_FAC; +double DYYDG_OODY2 = 1/(GH->dy0*GH->dy0); + +/* Declare output variables */ +double DYYDG_DYYDGXX; +double DYYDG_DYYDGXY; +double DYYDG_DYYDGXZ; +double DYYDG_DYYDGYY; +double DYYDG_DYYDGYZ; +double DYYDG_DYYDGZZ; + +#endif + +#endif diff --git a/src/macro/DYYDG_guts.h b/src/macro/DYYDG_guts.h new file mode 100644 index 0000000..96870e0 --- /dev/null +++ b/src/macro/DYYDG_guts.h @@ -0,0 +1,80 @@ +/*@@ + @header DYYDG_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + Macro to calculate the (first and) second derivatives of the + physical metric with respect to y + + The macro is defined in terms of standard variables in + @seefile DYYDG_declare.h + + The macro uses @seefile DXDG_guts.h and @seefile DXDG_declare.h + @enddesc +@@*/ + +#ifndef DYYDG_GUTS +#define DYYDG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDG_guts.h" + +#ifdef FCODE + + DYYDG_OODY2 = 1D0/(dy*dy) + + /* Factor involving 2nd derivative of conformal factor */ + IF (conformal_state /= CONFORMAL_METRIC) THEN + DYYDG_FAC = 0 + ELSE + DYYDG_FAC = DYDG_PSI4*(4*DYYDG_DYYDPSI_O_PSI + 12*DYDG_DYDPSI_O_PSI*DYDG_DYDPSI_O_PSI) + ENDIF + + /* Now calculate the second deriatives */ + DYYDG_DYYDGXX = 2*DYDCG_DYDCGXX*DYDG_FAC+DYYDG_FAC*DYDG_GXX+DYDG_PSI4 + &*DYYDG_OODY2*(DYDCG_GXX_JP-2*DYDG_GXX+DYDCG_GXX_JM) + + DYYDG_DYYDGXY = 2*DYDCG_DYDCGXY*DYDG_FAC+DYYDG_FAC*DYDG_GXY+DYDG_PSI4 + &*DYYDG_OODY2*(DYDCG_GXY_JP-2*DYDG_GXY+DYDCG_GXY_JM) + + DYYDG_DYYDGXZ = 2*DYDCG_DYDCGXZ*DYDG_FAC+DYYDG_FAC*DYDG_GXZ+DYDG_PSI4 + &*DYYDG_OODY2*(DYDCG_GXZ_JP-2*DYDG_GXZ+DYDCG_GXZ_JM) + + DYYDG_DYYDGYY = 2*DYDCG_DYDCGYY*DYDG_FAC+DYYDG_FAC*DYDG_GYY+DYDG_PSI4 + &*DYYDG_OODY2*(DYDCG_GYY_JP-2*DYDG_GYY+DYDCG_GYY_JM) + + DYYDG_DYYDGYZ = 2*DYDCG_DYDCGYZ*DYDG_FAC+DYYDG_FAC*DYDG_GYZ+DYDG_PSI4 + &*DYYDG_OODY2*(DYDCG_GYZ_JP-2*DYDG_GYZ+DYDCG_GYZ_JM) + + DYYDG_DYYDGZZ = 2*DYDCG_DYDCGZZ*DYDG_FAC+DYYDG_FAC*DYDG_GZZ+DYDG_PSI4 + &*DYYDG_OODY2*(DYDCG_GZZ_JP-2*DYDG_GZZ+DYDCG_GZZ_JM) + +#endif + +#ifdef CCODE + + /* Factor involving 2nd derivative of conformal factor */ + DYYDG_FAC = ((conformal_state != CONFORMAL_METRIC)?0: + DYDG_PSI4*(4*DYYDG_DYYDPSI_O_PSI + 12*DYDG_DYDPSI_O_PSI*DYDG_DYDPSI_O_PSI)); + + /* Now calculate the second deriatives */ + DYYDG_DYYDGXX = 2*DYDCG_DYDCGXX*DYDG_FAC+DYYDG_FAC*DYDG_GXX+DYDG_PSI4 + *DYYDG_OODY2*(DYDCG_GXX_JP-2*DYDG_GXX+DYDCG_GXX_JM); + + DYYDG_DYYDGXY = 2*DYDCG_DYDCGXY*DYDG_FAC+DYYDG_FAC*DYDG_GXY+DYDG_PSI4 + *DYYDG_OODY2*(DYDCG_GXY_JP-2*DYDG_GXY+DYDCG_GXY_JM); + + DYYDG_DYYDGXZ = 2*DYDCG_DYDCGXZ*DYDG_FAC+DYYDG_FAC*DYDG_GXZ+DYDG_PSI4 + *DYYDG_OODY2*(DYDCG_GXZ_JP-2*DYDG_GXZ+DYDCG_GXZ_JM); + + DYYDG_DYYDGYY = 2*DYDCG_DYDCGYY*DYDG_FAC+DYYDG_FAC*DYDG_GYY+DYDG_PSI4 + *DYYDG_OODY2*(DYDCG_GYY_JP-2*DYDG_GYY+DYDCG_GYY_JM); + + DYYDG_DYYDGYZ = 2*DYDCG_DYDCGYZ*DYDG_FAC+DYYDG_FAC*DYDG_GYZ+DYDG_PSI4 + *DYYDG_OODY2*(DYDCG_GYZ_JP-2*DYDG_GYZ+DYDCG_GYZ_JM); + + DYYDG_DYYDGZZ = 2*DYDCG_DYDCGZZ*DYDG_FAC+DYYDG_FAC*DYDG_GZZ+DYDG_PSI4 + *DYYDG_OODY2*(DYDCG_GZZ_JP-2*DYDG_GZZ+DYDCG_GZZ_JM); + +#endif + +#endif diff --git a/src/macro/DYYDG_undefine.h b/src/macro/DYYDG_undefine.h new file mode 100644 index 0000000..d9cdf17 --- /dev/null +++ b/src/macro/DYYDG_undefine.h @@ -0,0 +1,13 @@ +/*@@ + @header DYYDG_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DYYDG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDG_undefine.h" + + diff --git a/src/macro/DYZDG_declare.h b/src/macro/DYZDG_declare.h new file mode 100644 index 0000000..49c6e7b --- /dev/null +++ b/src/macro/DYZDG_declare.h @@ -0,0 +1,206 @@ +/*@@ + @header DYZDG_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + Declaration for macro to calculate the (first and) second derivatives + of the physical metric with respect to x,z + + The macro uses @seefile DYDG_guts.h , @seefile DZDG_guts.h and + @seefile DYDG_declare.h , @seefile DZDG_declare.h + @enddesc +@@*/ + +#ifndef DYZDG_DECLARE +#define DYZDG_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDG_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDG_declare.h" + +#ifdef FCODE + +/* Input variables */ +#undef DYZDG_GXX_JPKP +#define DYZDG_GXX_JPKP gxx(i,j+1,k+1) +#undef DYZDG_GXX_JPKM +#define DYZDG_GXX_JPKM gxx(i,j+1,k-1) +#undef DYZDG_GXX_JMKP +#define DYZDG_GXX_JMKP gxx(i,j-1,k+1) +#undef DYZDG_GXX_JMKM +#define DYZDG_GXX_JMKM gxx(i,j-1,k-1) + +#undef DYZDG_GXY_JPKP +#define DYZDG_GXY_JPKP gxy(i,j+1,k+1) +#undef DYZDG_GXY_JPKM +#define DYZDG_GXY_JPKM gxy(i,j+1,k-1) +#undef DYZDG_GXY_JMKP +#define DYZDG_GXY_JMKP gxy(i,j-1,k+1) +#undef DYZDG_GXY_JMKM +#define DYZDG_GXY_JMKM gxy(i,j-1,k-1) + +#undef DYZDG_GXZ_JPKP +#define DYZDG_GXZ_JPKP gxz(i,j+1,k+1) +#undef DYZDG_GXZ_JPKM +#define DYZDG_GXZ_JPKM gxz(i,j+1,k-1) +#undef DYZDG_GXZ_JMKP +#define DYZDG_GXZ_JMKP gxz(i,j-1,k+1) +#undef DYZDG_GXZ_JMKM +#define DYZDG_GXZ_JMKM gxz(i,j-1,k-1) + +#undef DYZDG_GYY_JPKP +#define DYZDG_GYY_JPKP gyy(i,j+1,k+1) +#undef DYZDG_GYY_JPKM +#define DYZDG_GYY_JPKM gyy(i,j+1,k-1) +#undef DYZDG_GYY_JMKP +#define DYZDG_GYY_JMKP gyy(i,j-1,k+1) +#undef DYZDG_GYY_JMKM +#define DYZDG_GYY_JMKM gyy(i,j-1,k-1) + +#undef DYZDG_GYZ_JPKP +#define DYZDG_GYZ_JPKP gyz(i,j+1,k+1) +#undef DYZDG_GYZ_JPKM +#define DYZDG_GYZ_JPKM gyz(i,j+1,k-1) +#undef DYZDG_GYZ_JMKP +#define DYZDG_GYZ_JMKP gyz(i,j-1,k+1) +#undef DYZDG_GYZ_JMKM +#define DYZDG_GYZ_JMKM gyz(i,j-1,k-1) + +#undef DYZDG_GZZ_JPKP +#define DYZDG_GZZ_JPKP gzz(i,j+1,k+1) +#undef DYZDG_GZZ_JPKM +#define DYZDG_GZZ_JPKM gzz(i,j+1,k-1) +#undef DYZDG_GZZ_JMKP +#define DYZDG_GZZ_JMKP gzz(i,j-1,k+1) +#undef DYZDG_GZZ_JMKM +#define DYZDG_GZZ_JMKM gzz(i,j-1,k-1) + +/* Output variables */ +#undef DYZDG_DYZDGXX +#define DYZDG_DYZDGXX deldelg2311 +#undef DYZDG_DYZDGXY +#define DYZDG_DYZDGXY deldelg2312 +#undef DYZDG_DYZDGXZ +#define DYZDG_DYZDGXZ deldelg2313 +#undef DYZDG_DYZDGYY +#define DYZDG_DYZDGYY deldelg2322 +#undef DYZDG_DYZDGYZ +#define DYZDG_DYZDGYZ deldelg2323 +#undef DYZDG_DYZDGZZ +#define DYZDG_DYZDGZZ deldelg2333 + +/* Internal variables */ +#undef DYZDG_FAC +#define DYZDG_FAC dyzdg_fac +#undef DYZDG_OO4DYDZ +#define DYZDG_OO4DYDZ dyzdg_oo4dydz +#undef DYZDG_DYZDPSI_O_PSI +#define DYZDG_DYZDPSI_O_PSI psiyz(i,j,k) + +/* Declare internal variables */ + REAL DYZDG_FAC + REAL DYZDG_OO4DYDZ + +/* Declare output variables */ + REAL DYZDG_DYZDGXX + REAL DYZDG_DYZDGXY + REAL DYZDG_DYZDGXZ + REAL DYZDG_DYZDGYY + REAL DYZDG_DYZDGYZ + REAL DYZDG_DYZDGZZ + +#endif + +#ifdef CCODE + +/* Input variables */ +#undef DYZDG_GXX_JPKP +#define DYZDG_GXX_JPKP gxx[ dj + dk + ijk] +#undef DYZDG_GXX_JPKM +#define DYZDG_GXX_JPKM gxx[ dj - dk + ijk] +#undef DYZDG_GXX_JMKP +#define DYZDG_GXX_JMKP gxx[-dj + dk + ijk] +#undef DYZDG_GXX_JMKM +#define DYZDG_GXX_JMKM gxx[-dj - dk + ijk] + +#undef DYZDG_GXY_JPKP +#define DYZDG_GXY_JPKP gxy[ dj + dk + ijk] +#undef DYZDG_GXY_JPKM +#define DYZDG_GXY_JPKM gxy[ dj - dk + ijk] +#undef DYZDG_GXY_JMKP +#define DYZDG_GXY_JMKP gxy[-dj + dk + ijk] +#undef DYZDG_GXY_JMKM +#define DYZDG_GXY_JMKM gxy[-dj - dk + ijk] + +#undef DYZDG_GXZ_JPKP +#define DYZDG_GXZ_JPKP gxz[ dj + dk + ijk] +#undef DYZDG_GXZ_JPKM +#define DYZDG_GXZ_JPKM gxz[ dj - dk + ijk] +#undef DYZDG_GXZ_JMKP +#define DYZDG_GXZ_JMKP gxz[-dj + dk + ijk] +#undef DYZDG_GXZ_JMKM +#define DYZDG_GXZ_JMKM gxz[-dj - dk + ijk] + +#undef DYZDG_GYY_JPKP +#define DYZDG_GYY_JPKP gyy[ dj + dk + ijk] +#undef DYZDG_GYY_JPKM +#define DYZDG_GYY_JPKM gyy[ dj - dk + ijk] +#undef DYZDG_GYY_JMKP +#define DYZDG_GYY_JMKP gyy[-dj + dk + ijk] +#undef DYZDG_GYY_JMKM +#define DYZDG_GYY_JMKM gyy[-dj - dk + ijk] + +#undef DYZDG_GYZ_JPKP +#define DYZDG_GYZ_JPKP gyz[ dj + dk + ijk] +#undef DYZDG_GYZ_JPKM +#define DYZDG_GYZ_JPKM gyz[ dj - dk + ijk] +#undef DYZDG_GYZ_JMKP +#define DYZDG_GYZ_JMKP gyz[-dj + dk + ijk] +#undef DYZDG_GYZ_JMKM +#define DYZDG_GYZ_JMKM gyz[-dj - dk + ijk] + +#undef DYZDG_GZZ_JPKP +#define DYZDG_GZZ_JPKP gzz[ dj + dk + ijk] +#undef DYZDG_GZZ_JPKM +#define DYZDG_GZZ_JPKM gzz[ dj - dk + ijk] +#undef DYZDG_GZZ_JMKP +#define DYZDG_GZZ_JMKP gzz[-dj + dk + ijk] +#undef DYZDG_GZZ_JMKM +#define DYZDG_GZZ_JMKM gzz[-dj - dk + ijk] + +/* Output variables */ +#undef DYZDG_DYZDGXX +#define DYZDG_DYZDGXX deldelg2311 +#undef DYZDG_DYZDGXY +#define DYZDG_DYZDGXY deldelg2312 +#undef DYZDG_DYZDGXZ +#define DYZDG_DYZDGXZ deldelg2313 +#undef DYZDG_DYZDGYY +#define DYZDG_DYZDGYY deldelg2322 +#undef DYZDG_DYZDGYZ +#define DYZDG_DYZDGYZ deldelg2323 +#undef DYZDG_DYZDGZZ +#define DYZDG_DYZDGZZ deldelg2333 + +/* Internal variables */ +#undef DYZDG_FAC +#define DYZDG_FAC dyzdg_fac +#undef DYZDG_OO4DYDZ +#define DYZDG_OO4DYDZ dyzdg_oo4dydz +#undef DYZDG_DYZDPSI_O_PSI +#define DYZDG_DYZDPSI_O_PSI psiyz[ijk] + +/* Declare internal variables */ +double DYZDG_FAC; +double DYZDG_OO4DYDZ = 1/(4*GH->dy0*GH->dz0); + +/* Declare output variables */ +double DYZDG_DYZDGXX; +double DYZDG_DYZDGXY; +double DYZDG_DYZDGXZ; +double DYZDG_DYZDGYY; +double DYZDG_DYZDGYZ; +double DYZDG_DYZDGZZ; + +#endif + +#endif diff --git a/src/macro/DYZDG_guts.h b/src/macro/DYZDG_guts.h new file mode 100644 index 0000000..5122860 --- /dev/null +++ b/src/macro/DYZDG_guts.h @@ -0,0 +1,95 @@ +/*@@ + @header DYZDG_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + Macro to calculate the (first and) second derivatives of the + physical metric with respect to y,z + + The macro is defined in terms of standard variables in + @seefile DYZDG_declare.h + + The macro uses @seefile DYDG_guts.h , @seefile DZDG_guts.h and + @seefile DYDG_declare.h , @seefile DZDG_declare.h + @enddesc +@@*/ + +#ifndef DYZDG_GUTS +#define DYZDG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDG_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDG_guts.h" + +#ifdef FCODE + + DYZDG_OO4DYDZ = 1D0/(4D0*dy*dz) + + /* Factor involving 2nd derivative of conformal factor */ + IF (conformal_state /= CONFORMAL_METRIC) THEN + DYZDG_FAC = 0 + ELSE + DYZDG_FAC = DYDG_PSI4*(4*DYZDG_DYZDPSI_O_PSI + 12*DYDG_DYDPSI_O_PSI*DZDG_DZDPSI_O_PSI) + ENDIF + + /* Now calculate the second deriatives */ + DYZDG_DYZDGXX = DZDCG_DZDCGXX*DYDG_FAC+DYDCG_DYDCGXX*DZDG_FAC+DYZDG_FAC*DYDG_GXX + & +DYDG_PSI4*DYZDG_OO4DYDZ*(DYZDG_GXX_JPKP-DYZDG_GXX_JPKM-DYZDG_GXX_JMKP + & +DYZDG_GXX_JMKM) + + DYZDG_DYZDGXY = DZDCG_DZDCGXY*DYDG_FAC+DYDCG_DYDCGXY*DZDG_FAC+DYZDG_FAC*DYDG_GXY + & +DYDG_PSI4*DYZDG_OO4DYDZ*(DYZDG_GXY_JPKP-DYZDG_GXY_JPKM-DYZDG_GXY_JMKP + & +DYZDG_GXY_JMKM) + + DYZDG_DYZDGXZ = DZDCG_DZDCGXZ*DYDG_FAC+DYDCG_DYDCGXZ*DZDG_FAC+DYZDG_FAC*DYDG_GXZ + & +DYDG_PSI4*DYZDG_OO4DYDZ*(DYZDG_GXZ_JPKP-DYZDG_GXZ_JPKM-DYZDG_GXZ_JMKP + & +DYZDG_GXZ_JMKM) + + DYZDG_DYZDGYY = DZDCG_DZDCGYY*DYDG_FAC+DYDCG_DYDCGYY*DZDG_FAC+DYZDG_FAC*DYDG_GYY + & +DYDG_PSI4*DYZDG_OO4DYDZ*(DYZDG_GYY_JPKP-DYZDG_GYY_JPKM-DYZDG_GYY_JMKP + & +DYZDG_GYY_JMKM) + + DYZDG_DYZDGYZ = DZDCG_DZDCGYZ*DYDG_FAC+DYDCG_DYDCGYZ*DZDG_FAC+DYZDG_FAC*DYDG_GYZ + & +DYDG_PSI4*DYZDG_OO4DYDZ*(DYZDG_GYZ_JPKP-DYZDG_GYZ_JPKM-DYZDG_GYZ_JMKP + & +DYZDG_GYZ_JMKM) + + DYZDG_DYZDGZZ = DZDCG_DZDCGZZ*DYDG_FAC+DYDCG_DYDCGZZ*DZDG_FAC+DYZDG_FAC*DYDG_GZZ + & +DYDG_PSI4*DYZDG_OO4DYDZ*(DYZDG_GZZ_JPKP-DYZDG_GZZ_JPKM-DYZDG_GZZ_JMKP + & +DYZDG_GZZ_JMKM) + +#endif + +#ifdef CCODE + + /* Factor involving 2nd derivative of conformal factor */ + DYZDG_FAC = ((conformal_state != CONFORMAL_METRIC)?0: + DYDG_PSI4*(4*DYZDG_DYZDPSI_O_PSI + 12*DYDG_DYDPSI_O_PSI*DZDG_DZDPSI_O_PSI)); + + /* Now calculate the second deriatives */ + DYZDG_DYZDGXX = DZDCG_DZDCGXX*DYDG_FAC+DYDCG_DYDCGXX*DZDG_FAC+DYZDG_FAC*DYDG_GXX + +DYDG_PSI4*DYZDG_OO4DYDZ*(DYZDG_GXX_JPKP-DYZDG_GXX_JPKM-DYZDG_GXX_JMKP + +DYZDG_GXX_JMKM); + + DYZDG_DYZDGXY = DZDCG_DZDCGXY*DYDG_FAC+DYDCG_DYDCGXY*DZDG_FAC+DYZDG_FAC*DYDG_GXY + +DYDG_PSI4*DYZDG_OO4DYDZ*(DYZDG_GXY_JPKP-DYZDG_GXY_JPKM-DYZDG_GXY_JMKP + +DYZDG_GXY_JMKM); + + DYZDG_DYZDGXZ = DZDCG_DZDCGXZ*DYDG_FAC+DYDCG_DYDCGXZ*DZDG_FAC+DYZDG_FAC*DYDG_GXZ + +DYDG_PSI4*DYZDG_OO4DYDZ*(DYZDG_GXZ_JPKP-DYZDG_GXZ_JPKM-DYZDG_GXZ_JMKP + +DYZDG_GXZ_JMKM); + + DYZDG_DYZDGYY = DZDCG_DZDCGYY*DYDG_FAC+DYDCG_DYDCGYY*DZDG_FAC+DYZDG_FAC*DYDG_GYY + +DYDG_PSI4*DYZDG_OO4DYDZ*(DYZDG_GYY_JPKP-DYZDG_GYY_JPKM-DYZDG_GYY_JMKP + +DYZDG_GYY_JMKM); + + DYZDG_DYZDGYZ = DZDCG_DZDCGYZ*DYDG_FAC+DYDCG_DYDCGYZ*DZDG_FAC+DYZDG_FAC*DYDG_GYZ + +DYDG_PSI4*DYZDG_OO4DYDZ*(DYZDG_GYZ_JPKP-DYZDG_GYZ_JPKM-DYZDG_GYZ_JMKP + +DYZDG_GYZ_JMKM); + + DYZDG_DYZDGZZ = DZDCG_DZDCGZZ*DYDG_FAC+DYDCG_DYDCGZZ*DZDG_FAC+DYZDG_FAC*DYDG_GZZ + +DYDG_PSI4*DYZDG_OO4DYDZ*(DYZDG_GZZ_JPKP-DYZDG_GZZ_JPKM-DYZDG_GZZ_JMKP + +DYZDG_GZZ_JMKM); + +#endif + +#endif + diff --git a/src/macro/DYZDG_undefine.h b/src/macro/DYZDG_undefine.h new file mode 100644 index 0000000..8575755 --- /dev/null +++ b/src/macro/DYZDG_undefine.h @@ -0,0 +1,14 @@ +/*@@ + @header DYZDG_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DYZDG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DYDG_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDG_undefine.h" + + diff --git a/src/macro/DZDB_declare.h b/src/macro/DZDB_declare.h new file mode 100644 index 0000000..3eee015 --- /dev/null +++ b/src/macro/DZDB_declare.h @@ -0,0 +1,92 @@ +/*@@ + @header DZDB_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + Declarations for macro @seefile DZDB_guts.h to compute first + derivatives of the shift with respect to z + @enddesc +@@*/ + +#ifndef DZDB_DECLARE +#define DZDB_DECLARE + +#ifdef FCODE + +/* Input variables */ +#undef DZDB_BX_KP +#define DZDB_BX_KP betax(i,j,k+1) +#undef DZDB_BX_KM +#define DZDB_BX_KM betax(i,j,k-1) +#undef DZDB_BY_KP +#define DZDB_BY_KP betay(i,j,k+1) +#undef DZDB_BY_KM +#define DZDB_BY_KM betay(i,j,k-1) +#undef DZDB_BZ_KP +#define DZDB_BZ_KP betaz(i,j,k+1) +#undef DZDB_BZ_KM +#define DZDB_BZ_KM betaz(i,j,k-1) + +/* Output variables */ +#undef DZDB_DZDBX +#define DZDB_DZDBX dzdb_dzdbx +#undef DZDB_DZDBY +#define DZDB_DZDBY dzdb_dzdby +#undef DZDB_DZDBZ +#define DZDB_DZDBZ dzdb_dzdbz + +/* Internal variables */ +#undef DZDB_DZ +#define DZDB_DZ dz +#undef DZDB_OO2DZ +#define DZDB_OO2DZ dzdb_oo2dz + +/* Declare internal variables */ + REAL DZDB_OO2DZ; + +/* Declare output variables */ + REAL DZDB_DZDBX + REAL DZDB_DZDBY + REAL DZDB_DZDBZ + +#endif + +#ifdef CCODE + +/* Input variables */ +#undef DZDB_BX_KP +#define DZDB_BX_KP betax[ dj+ijk] +#undef DZDB_BX_KM +#define DZDB_BX_KM betax[-dj+ijk] +#undef DZDB_BY_KP +#define DZDB_BY_KP betay[ dj+ijk] +#undef DZDB_BY_KM +#define DZDB_BY_KM betay[-dj+ijk] +#undef DZDB_BZ_KP +#define DZDB_BZ_KP betaz[ dj+ijk] +#undef DZDB_BZ_KM +#define DZDB_BZ_KM betaz[-dj+ijk] + +/* Output variables */ +#undef DZDB_DZDBX +#define DZDB_DZDBX delbeta31 +#undef DZDB_DZDBY +#define DZDB_DZDBY delbeta32 +#undef DZDB_DZDBZ +#define DZDB_DZDBZ delbeta33 + +/* Internal variables */ +#undef DZDB_OO2DZ +#define DZDB_OO2DZ dzdb_oo2dz + +/* Declare internal variables */ +double DZDB_OO2DZ; + +/* Declare output variables */ +double DZDB_DZDBX; +double DZDB_DZDBY; +double DZDB_DZDBZ; + +#endif + +#endif diff --git a/src/macro/DZDB_guts.h b/src/macro/DZDB_guts.h new file mode 100644 index 0000000..757ae1a --- /dev/null +++ b/src/macro/DZDB_guts.h @@ -0,0 +1,39 @@ +/*@@ + @header DZDB_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + + Macro to calculate the first derivatives of the + shift with respect to z + + The macro is defined in terms of standard variables in + @seefile DZDB_declare.h + @enddesc +@@*/ + +#ifndef DZDB_GUTS +#define DZDB_GUTS + +#ifdef FCODE + + DZDB_OO2DZ = 1D0/(2D0*DZDB_DZ) + + DZDB_DZDBX = DZDB_OO2DZ*(DZDB_BX_KP - DZDB_BX_KM) + DZDB_DZDBY = DZDB_OO2DZ*(DZDB_BY_KP - DZDB_BY_KM) + DZDB_DZDBZ = DZDB_OO2DZ*(DZDB_BZ_KP - DZDB_BZ_KM) + +#endif + +#ifdef CCODE + + DZDB_OO2DZ = 1/(2*GH->dz0); + + DZDB_DZDBX = DZDB_OO2DZ*(DZDB_BX_KP - DZDB_BX_KM); + DZDB_DZDBY = DZDB_OO2DZ*(DZDB_BY_KP - DZDB_BY_KM); + DZDB_DZDBZ = DZDB_OO2DZ*(DZDB_BZ_KP - DZDB_BZ_KM); + +#endif + +#endif + diff --git a/src/macro/DZDB_undefine.h b/src/macro/DZDB_undefine.h new file mode 100644 index 0000000..d725fc2 --- /dev/null +++ b/src/macro/DZDB_undefine.h @@ -0,0 +1,10 @@ +/*@@ + @header DZDB_undefine.h + @date Jun 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DZDB_GUTS + diff --git a/src/macro/DZDCG_declare.h b/src/macro/DZDCG_declare.h new file mode 100644 index 0000000..5a0c801 --- /dev/null +++ b/src/macro/DZDCG_declare.h @@ -0,0 +1,136 @@ +/*@@ + @header DZDCG_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + Declarations for macro @seefile DZDCG_guts.h to compute first + derivatives of the conformal metric with respect to z + @enddesc +@@*/ + +#ifndef DZDCG_DECLARE + +#ifdef FCODE + +/* Input variables */ +#undef DZDCG_GXX_KP +#define DZDCG_GXX_KP gxx(i,j,k+1) +#undef DZDCG_GXX_KM +#define DZDCG_GXX_KM gxx(i,j,k-1) +#undef DZDCG_GXY_KP +#define DZDCG_GXY_KP gxy(i,j,k+1) +#undef DZDCG_GXY_KM +#define DZDCG_GXY_KM gxy(i,j,k-1) +#undef DZDCG_GXZ_KP +#define DZDCG_GXZ_KP gxz(i,j,k+1) +#undef DZDCG_GXZ_KM +#define DZDCG_GXZ_KM gxz(i,j,k-1) +#undef DZDCG_GYY_KP +#define DZDCG_GYY_KP gyy(i,j,k+1) +#undef DZDCG_GYY_KM +#define DZDCG_GYY_KM gyy(i,j,k-1) +#undef DZDCG_GYZ_KP +#define DZDCG_GYZ_KP gyz(i,j,k+1) +#undef DZDCG_GYZ_KM +#define DZDCG_GYZ_KM gyz(i,j,k-1) +#undef DZDCG_GZZ_KP +#define DZDCG_GZZ_KP gzz(i,j,k+1) +#undef DZDCG_GZZ_KM +#define DZDCG_GZZ_KM gzz(i,j,k-1) + +/* Output variables */ +#undef DZDCG_DZDCGXX +#define DZDCG_DZDCGXX delgb311 +#undef DZDCG_DZDCGXY +#define DZDCG_DZDCGXY delgb312 +#undef DZDCG_DZDCGXZ +#define DZDCG_DZDCGXZ delgb313 +#undef DZDCG_DZDCGYY +#define DZDCG_DZDCGYY delgb322 +#undef DZDCG_DZDCGYZ +#define DZDCG_DZDCGYZ delgb323 +#undef DZDCG_DZDCGZZ +#define DZDCG_DZDCGZZ delgb333 + +/* Internal variables */ +#undef DZDCG_DZ +#define DZDCG_DZ dz +#undef DZDCG_OO2DZ +#define DZDCG_OO2DZ cdzdg_oo2dz + +/* Declare internal variables */ + REAL DZDCG_OO2DZ + +/* Declare output variables */ + REAL DZDCG_DZDCGXX + REAL DZDCG_DZDCGXY + REAL DZDCG_DZDCGXZ + REAL DZDCG_DZDCGYY + REAL DZDCG_DZDCGYZ + REAL DZDCG_DZDCGZZ + +#endif + + +#ifdef CCODE + +/* Input variables */ +#undef DZDCG_GXX_KP +#define DZDCG_GXX_KP gxx[ dk+ijk] +#undef DZDCG_GXX_KM +#define DZDCG_GXX_KM gxx[-dk+ijk] +#undef DZDCG_GXY_KP +#define DZDCG_GXY_KP gxy[ dk+ijk] +#undef DZDCG_GXY_KM +#define DZDCG_GXY_KM gxy[-dk+ijk] +#undef DZDCG_GXZ_KP +#define DZDCG_GXZ_KP gxz[ dk+ijk] +#undef DZDCG_GXZ_KM +#define DZDCG_GXZ_KM gxz[-dk+ijk] +#undef DZDCG_GYY_KP +#define DZDCG_GYY_KP gyy[ dk+ijk] +#undef DZDCG_GYY_KM +#define DZDCG_GYY_KM gyy[-dk+ijk] +#undef DZDCG_GYZ_KP +#define DZDCG_GYZ_KP gyz[ dk+ijk] +#undef DZDCG_GYZ_KM +#define DZDCG_GYZ_KM gyz[-dk+ijk] +#undef DZDCG_GZZ_KP +#define DZDCG_GZZ_KP gzz[ dk+ijk] +#undef DZDCG_GZZ_KM +#define DZDCG_GZZ_KM gzz[-dk+ijk] + +/* Output variables */ +#undef DZDCG_DZDCGXX +#define DZDCG_DZDCGXX delgb311 +#undef DZDCG_DZDCGXY +#define DZDCG_DZDCGXY delgb312 +#undef DZDCG_DZDCGXZ +#define DZDCG_DZDCGXZ delgb313 +#undef DZDCG_DZDCGYY +#define DZDCG_DZDCGYY delgb322 +#undef DZDCG_DZDCGYZ +#define DZDCG_DZDCGYZ delgb323 +#undef DZDCG_DZDCGZZ +#define DZDCG_DZDCGZZ delgb333 + +/* Internal variables */ +#undef DZDCG_OO2DZ +#define DZDCG_OO2DZ cdzdg_oo2dz + +/* Declare internal variables */ +double DZDCG_OO2DZ; + +/* Declare output variables */ +double DZDCG_DZDCGXX; +double DZDCG_DZDCGXY; +double DZDCG_DZDCGXZ; +double DZDCG_DZDCGYY; +double DZDCG_DZDCGYZ; +double DZDCG_DZDCGZZ; + +#endif + +#define DZDCG_DECLARE + +#endif diff --git a/src/macro/DZDCG_guts.h b/src/macro/DZDCG_guts.h new file mode 100644 index 0000000..6f4858a --- /dev/null +++ b/src/macro/DZDCG_guts.h @@ -0,0 +1,48 @@ +/*@@ + @header DZDCG_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + Macro to calculate the first derivatives of the + conformal metric with respect to z + + The macro is defined in terms of standard variables in + + Requires: lower conformal metric at k+1,k-1 ; dz0 + + Provides: derivative of lower conformal metric wrt z + + @seefile DZDCG_declare.h + @enddesc +@@*/ + +#ifndef DZDCG_GUTS +#define DZDCG_GUTS + +#ifdef FCODE + + DZDCG_OO2DZ = 1D0/(2D0*DZDCG_DZ) + + DZDCG_DZDCGXX = DZDCG_OO2DZ*(DZDCG_GXX_KP - DZDCG_GXX_KM) + DZDCG_DZDCGXY = DZDCG_OO2DZ*(DZDCG_GXY_KP - DZDCG_GXY_KM) + DZDCG_DZDCGXZ = DZDCG_OO2DZ*(DZDCG_GXZ_KP - DZDCG_GXZ_KM) + DZDCG_DZDCGYY = DZDCG_OO2DZ*(DZDCG_GYY_KP - DZDCG_GYY_KM) + DZDCG_DZDCGYZ = DZDCG_OO2DZ*(DZDCG_GYZ_KP - DZDCG_GYZ_KM) + DZDCG_DZDCGZZ = DZDCG_OO2DZ*(DZDCG_GZZ_KP - DZDCG_GZZ_KM) + +#endif + +#ifdef CCODE + + DZDCG_OO2DZ = 1/(2*GH->dz0); + + DZDCG_DZDCGXX = DZDCG_OO2DZ*(DZDCG_GXX_KP - DZDCG_GXX_KM); + DZDCG_DZDCGXY = DZDCG_OO2DZ*(DZDCG_GXY_KP - DZDCG_GXY_KM); + DZDCG_DZDCGXZ = DZDCG_OO2DZ*(DZDCG_GXZ_KP - DZDCG_GXZ_KM); + DZDCG_DZDCGYY = DZDCG_OO2DZ*(DZDCG_GYY_KP - DZDCG_GYY_KM); + DZDCG_DZDCGYZ = DZDCG_OO2DZ*(DZDCG_GYZ_KP - DZDCG_GYZ_KM); + DZDCG_DZDCGZZ = DZDCG_OO2DZ*(DZDCG_GZZ_KP - DZDCG_GZZ_KM); + +#endif + +#endif diff --git a/src/macro/DZDCG_undefine.h b/src/macro/DZDCG_undefine.h new file mode 100644 index 0000000..69ab07a --- /dev/null +++ b/src/macro/DZDCG_undefine.h @@ -0,0 +1,10 @@ +/*@@ + @header DZDCG_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DZDCG_GUTS + diff --git a/src/macro/DZDG_declare.h b/src/macro/DZDG_declare.h new file mode 100644 index 0000000..db98d23 --- /dev/null +++ b/src/macro/DZDG_declare.h @@ -0,0 +1,132 @@ +/*@@ + @header DZDG_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + Declarations for macro @seefile DZDG_guts.h to compute first + derivatives of the physical metric with respect to y + @enddesc +@@*/ + +#ifndef DZDG_DECLARE +#define DZDG_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDCG_declare.h" + +#ifdef FCODE + +/* Input variables */ +#undef DZDG_PSI +#define DZDG_PSI psi(i,j,k) + +#undef DZDG_DZDPSI_O_PSI +#define DZDG_DZDPSI_O_PSI psiz(i,j,k) + +#undef DZDG_GXX +#define DZDG_GXX gxx(i,j,k) +#undef DZDG_GXY +#define DZDG_GXY gxy(i,j,k) +#undef DZDG_GXZ +#define DZDG_GXZ gxz(i,j,k) +#undef DZDG_GYY +#define DZDG_GYY gyy(i,j,k) +#undef DZDG_GYZ +#define DZDG_GYZ gyz(i,j,k) +#undef DZDG_GZZ +#define DZDG_GZZ gzz(i,j,k) + +/* Output variables */ +#undef DZDG_DZDGXX +#define DZDG_DZDGXX dzdgxx +#undef DZDG_DZDGXY +#define DZDG_DZDGXY dzdgxy +#undef DZDG_DZDGXZ +#define DZDG_DZDGXZ dzdgxz +#undef DZDG_DZDGYY +#define DZDG_DZDGYY dzdgyy +#undef DZDG_DZDGYZ +#define DZDG_DZDGYZ dzdgyz +#undef DZDG_DZDGZZ +#define DZDG_DZDGZZ dzdgzz + +/* Internal variables */ +#undef DZDG_PSI4 +#define DZDG_PSI4 dzdg_psi4 + +#undef DZDG_FAC +#define DZDG_FAC dzdg_fac + +/* Declare internal variables */ + REAL DZDG_PSI4; + REAL DZDG_FAC; + +/* Declare output variables */ + REAL DZDG_DZDGXX; + REAL DZDG_DZDGXY; + REAL DZDG_DZDGXZ; + REAL DZDG_DZDGYY; + REAL DZDG_DZDGYZ; + REAL DZDG_DZDGZZ; + +#endif + + +#ifdef CCODE + +/* Output variables */ +#undef DZDG_DZDGXX +#define DZDG_DZDGXX delg311 +#undef DZDG_DZDGXY +#define DZDG_DZDGXY delg312 +#undef DZDG_DZDGXZ +#define DZDG_DZDGXZ delg313 +#undef DZDG_DZDGYY +#define DZDG_DZDGYY delg322 +#undef DZDG_DZDGYZ +#define DZDG_DZDGYZ delg323 +#undef DZDG_DZDGZZ +#define DZDG_DZDGZZ delg333 + +/* Input variables */ + +#undef DZDG_PSI +#define DZDG_PSI psi[ijk] + +#undef DZDG_DZDPSI_O_PSI +#define DZDG_DZDPSI_O_PSI psiz[ijk] + +#undef DZDG_GXX +#define DZDG_GXX gxx[ijk] +#undef DZDG_GXY +#define DZDG_GXY gxy[ijk] +#undef DZDG_GXZ +#define DZDG_GXZ gxz[ijk] +#undef DZDG_GYY +#define DZDG_GYY gyy[ijk] +#undef DZDG_GYZ +#define DZDG_GYZ gyz[ijk] +#undef DZDG_GZZ +#define DZDG_GZZ gzz[ijk] + +/* Internal variables */ +#undef DZDG_PSI4 +#define DZDG_PSI4 dzdg_psi4 + +#undef DZDG_FAC +#define DZDG_FAC dzdg_fac + +/* Declare internal variables */ +double DZDG_PSI4; +double DZDG_FAC; + +/* Declare output variables */ +double DZDG_DZDGXX; +double DZDG_DZDGXY; +double DZDG_DZDGXZ; +double DZDG_DZDGYY; +double DZDG_DZDGYZ; +double DZDG_DZDGZZ; + +#endif + +#endif diff --git a/src/macro/DZDG_guts.h b/src/macro/DZDG_guts.h new file mode 100644 index 0000000..897ea07 --- /dev/null +++ b/src/macro/DZDG_guts.h @@ -0,0 +1,53 @@ +/*@@ + @header DZDG_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + Macro to calculate the first derivatives of the + physical metric with respect to z + + The macro is defined in terms of standard variables in + @seefile DZDG_declare.h + @enddesc +@@*/ + +#ifndef DZDG_GUTS +#define DZDG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDCG_guts.h" + +#ifdef FCODE + + IF (conformal_state /= CONFORMAL_METRIC) THEN + DZDG_PSI4 = 1 + DZDG_FAC = 0 + ELSE + DZDG_PSI4 = DZDG_PSI**4 + DZDG_FAC = 4*DZDG_PSI4*DZDG_DZDPSI_O_PSI + ENDIF + + DZDG_DZDGXX = DZDCG_DZDCGXX*DZDG_PSI4 + DZDG_FAC*DZDG_GXX + DZDG_DZDGXY = DZDCG_DZDCGXY*DZDG_PSI4 + DZDG_FAC*DZDG_GXY + DZDG_DZDGXZ = DZDCG_DZDCGXZ*DZDG_PSI4 + DZDG_FAC*DZDG_GXZ + DZDG_DZDGYY = DZDCG_DZDCGYY*DZDG_PSI4 + DZDG_FAC*DZDG_GYY + DZDG_DZDGYZ = DZDCG_DZDCGYZ*DZDG_PSI4 + DZDG_FAC*DZDG_GYZ + DZDG_DZDGZZ = DZDCG_DZDCGZZ*DZDG_PSI4 + DZDG_FAC*DZDG_GZZ + +#endif + +#ifdef CCODE + + DZDG_PSI4 = ((conformal_state != CONFORMAL_METRIC)?1:Power(DZDG_PSI,4)); + + DZDG_FAC = ((conformal_state != CONFORMAL_METRIC)?0:4*DZDG_PSI4*DZDG_DZDPSI_O_PSI); + + DZDG_DZDGXX = DZDCG_DZDCGXX*DZDG_PSI4 + DZDG_FAC*DZDG_GXX; + DZDG_DZDGXY = DZDCG_DZDCGXY*DZDG_PSI4 + DZDG_FAC*DZDG_GXY; + DZDG_DZDGXZ = DZDCG_DZDCGXZ*DZDG_PSI4 + DZDG_FAC*DZDG_GXZ; + DZDG_DZDGYY = DZDCG_DZDCGYY*DZDG_PSI4 + DZDG_FAC*DZDG_GYY; + DZDG_DZDGYZ = DZDCG_DZDCGYZ*DZDG_PSI4 + DZDG_FAC*DZDG_GYZ; + DZDG_DZDGZZ = DZDCG_DZDCGZZ*DZDG_PSI4 + DZDG_FAC*DZDG_GZZ; + +#endif + +#endif diff --git a/src/macro/DZDG_undefine.h b/src/macro/DZDG_undefine.h new file mode 100644 index 0000000..0b95e10 --- /dev/null +++ b/src/macro/DZDG_undefine.h @@ -0,0 +1,12 @@ +/*@@ + @header DZDG_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DZDG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDCG_undefine.h" + diff --git a/src/macro/DZDK_declare.h b/src/macro/DZDK_declare.h new file mode 100644 index 0000000..aba7c5e --- /dev/null +++ b/src/macro/DZDK_declare.h @@ -0,0 +1,135 @@ +/*@@ + @header DZDG_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + Declarations for macro @seefile DZDG_guts.h to compute first + derivatives of the conformal metric with respect to z + @enddesc +@@*/ + +#ifndef DZDK_DECLARE +#define DZDK_DECLARE + +#ifdef FCODE + +/* Input variables */ +#undef DZDK_KXX_KP +#define DZDK_KXX_KP hxx(i,j,k+1) +#undef DZDK_KXX_KM +#define DZDK_KXX_KM hxx(i,j,k-1) +#undef DZDK_KXY_KP +#define DZDK_KXY_KP hxy(i,j,k+1) +#undef DZDK_KXY_KM +#define DZDK_KXY_KM hxy(i,j,k-1) +#undef DZDK_KXZ_KP +#define DZDK_KXZ_KP hxz(i,j,k+1) +#undef DZDK_KXZ_KM +#define DZDK_KXZ_KM hxz(i,j,k-1) +#undef DZDK_KYY_KP +#define DZDK_KYY_KP hyy(i,j,k+1) +#undef DZDK_KYY_KM +#define DZDK_KYY_KM hyy(i,j,k-1) +#undef DZDK_KYZ_KP +#define DZDK_KYZ_KP hyz(i,j,k+1) +#undef DZDK_KYZ_KM +#define DZDK_KYZ_KM hyz(i,j,k-1) +#undef DZDK_KZZ_KP +#define DZDK_KZZ_KP hzz(i,j,k+1) +#undef DZDK_KZZ_KM +#define DZDK_KZZ_KM hzz(i,j,k-1) + +/* Output variables */ +#undef DZDK_DZDKXX +#define DZDK_DZDKXX dzdk_dzdkxx +#undef DZDK_DZDKXY +#define DZDK_DZDKXY dzdk_dzdkxy +#undef DZDK_DZDKXZ +#define DZDK_DZDKXZ dzdk_dzdkxz +#undef DZDK_DZDKYY +#define DZDK_DZDKYY dzdk_dzdkyy +#undef DZDK_DZDKYZ +#define DZDK_DZDKYZ dzdk_dzdkyz +#undef DZDK_DZDKZZ +#define DZDK_DZDKZZ dzdk_dzdkzz + +/* Internal variables */ +#undef DZDK_DZ +#define DZDK_DZ dz +#undef DZDK_OO2DZ +#define DZDK_OO2DZ dzdk_oo2dz + +/* Declare internal variables */ + REAL DZDK_OO2DZ + +/* Declare output variables */ + REAL DZDK_DZDKXX + REAL DZDK_DZDKXY + REAL DZDK_DZDKXZ + REAL DZDK_DZDKYY + REAL DZDK_DZDKYZ + REAL DZDK_DZDKZZ + +#endif + + +#ifdef CCODE + +/* Input variables */ +#undef DZDK_KXX_KP +#define DZDK_KXX_KP hxx[ dk+ijk] +#undef DZDK_KXX_KM +#define DZDK_KXX_KM hxx[-dk+ijk] +#undef DZDK_KXY_KP +#define DZDK_KXY_KP hxy[ dk+ijk] +#undef DZDK_KXY_KM +#define DZDK_KXY_KM hxy[-dk+ijk] +#undef DZDK_KXZ_KP +#define DZDK_KXZ_KP hxz[ dk+ijk] +#undef DZDK_KXZ_KM +#define DZDK_KXZ_KM hxz[-dk+ijk] +#undef DZDK_KYY_KP +#define DZDK_KYY_KP hyy[ dk+ijk] +#undef DZDK_KYY_KM +#define DZDK_KYY_KM hyy[-dk+ijk] +#undef DZDK_KYZ_KP +#define DZDK_KYZ_KP hyz[ dk+ijk] +#undef DZDK_KYZ_KM +#define DZDK_KYZ_KM hyz[-dk+ijk] +#undef DZDK_KZZ_KP +#define DZDK_KZZ_KP hzz[ dk+ijk] +#undef DZDK_KZZ_KM +#define DZDK_KZZ_KM hzz[-dk+ijk] + +/* Output variables */ +#undef DZDK_DZDKXX +#define DZDK_DZDKXX dzdk_dzdkxx +#undef DZDK_DZDKXY +#define DZDK_DZDKXY dzdk_dzdkxy +#undef DZDK_DZDKXZ +#define DZDK_DZDKXZ dzdk_dzdkxz +#undef DZDK_DZDKYY +#define DZDK_DZDKYY dzdk_dzdkyy +#undef DZDK_DZDKYZ +#define DZDK_DZDKYZ dzdk_dzdkyz +#undef DZDK_DZDKZZ +#define DZDK_DZDKZZ dzdk_dzdkzz + +/* Internal variables */ +#undef DZDK_OO2DZ +#define DZDK_OO2DZ dzdk_oo2dz + +/* Declare internal variables */ +double DZDK_OO2DZ; + +/* Declare output variables */ +double DZDK_DZDKXX; +double DZDK_DZDKXY; +double DZDK_DZDKXZ; +double DZDK_DZDKYY; +double DZDK_DZDKYZ; +double DZDK_DZDKZZ; + +#endif + +#endif diff --git a/src/macro/DZDK_guts.h b/src/macro/DZDK_guts.h new file mode 100644 index 0000000..f388e37 --- /dev/null +++ b/src/macro/DZDK_guts.h @@ -0,0 +1,40 @@ +/*@@ + @header DZDG_guts.h + @date Jul 98 + @author Gabrielle Allen + @desc + Macro to calculate the first derivatives of the + extrinsic with respect to z + @enddesc +@@*/ + +#ifndef DZDK_GUTS +#define DZDK_GUTS + +#ifdef FCODE + + DZDK_OO2DZ = 1D0/(2D0*DZDK_DZ) + + DZDK_DZDKXX = DZDK_OO2DZ*(DZDK_KXX_KP - DZDK_KXX_KM) + DZDK_DZDKXY = DZDK_OO2DZ*(DZDK_KXY_KP - DZDK_KXY_KM) + DZDK_DZDKXZ = DZDK_OO2DZ*(DZDK_KXZ_KP - DZDK_KXZ_KM) + DZDK_DZDKYY = DZDK_OO2DZ*(DZDK_KYY_KP - DZDK_KYY_KM) + DZDK_DZDKYZ = DZDK_OO2DZ*(DZDK_KYZ_KP - DZDK_KYZ_KM) + DZDK_DZDKZZ = DZDK_OO2DZ*(DZDK_KZZ_KP - DZDK_KZZ_KM) + +#endif + +#ifdef CCODE + + DZDK_OO2DZ = 1/(2*GH->dz0); + + DZDK_DZDKXX = DZDK_OO2DZ*(DZDK_KXX_KP - DZDK_KXX_KM); + DZDK_DZDKXY = DZDK_OO2DZ*(DZDK_KXY_KP - DZDK_KXY_KM); + DZDK_DZDKXZ = DZDK_OO2DZ*(DZDK_KXZ_KP - DZDK_KXZ_KM); + DZDK_DZDKYY = DZDK_OO2DZ*(DZDK_KYY_KP - DZDK_KYY_KM); + DZDK_DZDKYZ = DZDK_OO2DZ*(DZDK_KYZ_KP - DZDK_KYZ_KM); + DZDK_DZDKZZ = DZDK_OO2DZ*(DZDK_KZZ_KP - DZDK_KZZ_KM); + +#endif + +#endif diff --git a/src/macro/DZDK_undefine.h b/src/macro/DZDK_undefine.h new file mode 100644 index 0000000..29551cc --- /dev/null +++ b/src/macro/DZDK_undefine.h @@ -0,0 +1,11 @@ +/*@@ + @header DZDG_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DZDK_GUTS + + diff --git a/src/macro/DZZDG_declare.h b/src/macro/DZZDG_declare.h new file mode 100644 index 0000000..9ab559f --- /dev/null +++ b/src/macro/DZZDG_declare.h @@ -0,0 +1,92 @@ +/*@@ + @header DZZDG_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + Declarations for macro to calculate the (first and) second derivatives + of the physical metric with respect to z + + The macro uses @seefile DZDG_guts.h and @seefile DZDG_declare.h + @enddesc +@@*/ + +#ifndef DZZDG_DECLARE +#define DZZDG_DECLARE + +#ifdef FCODE + +/* Output variables */ +#undef DZZDG_DZZDGXX +#define DZZDG_DZZDGXX dzzdgxx +#undef DZZDG_DZZDGXY +#define DZZDG_DZZDGXY dzzdgxy +#undef DZZDG_DZZDGXZ +#define DZZDG_DZZDGXZ dzzdgxz +#undef DZZDG_DZZDGYY +#define DZZDG_DZZDGYY dzzdgyy +#undef DZZDG_DZZDGYZ +#define DZZDG_DZZDGYZ dzzdgyz +#undef DZZDG_DZZDGZZ +#define DZZDG_DZZDGZZ dzzdgzz + +/* Internal variables */ +#undef DZZDG_FAC +#define DZZDG_FAC dzzdg_fac +#undef DZZDG_OODZ2 +#define DZZDG_OODZ2 dzzdg_oodz2 +#undef DZZDG_DZZDPSI_O_PSI +#define DZZDG_DZZDPSI_O_PSI psizz(i,j,k) + +/* Declare internal variables */ + REAL DZZDG_FAC + REAL DZZDG_OODZ2 + +/* Declare output variables */ + REAL DZZDG_DZZDGXX + REAL DZZDG_DZZDGXY + REAL DZZDG_DZZDGXZ + REAL DZZDG_DZZDGYY + REAL DZZDG_DZZDGYZ + REAL DZZDG_DZZDGZZ + +#endif + +#ifdef CCODE + +/* Output variables */ +#undef DZZDG_DZZDGXX +#define DZZDG_DZZDGXX deldelg3311 +#undef DZZDG_DZZDGXY +#define DZZDG_DZZDGXY deldelg3312 +#undef DZZDG_DZZDGXZ +#define DZZDG_DZZDGXZ deldelg3313 +#undef DZZDG_DZZDGYY +#define DZZDG_DZZDGYY deldelg3322 +#undef DZZDG_DZZDGYZ +#define DZZDG_DZZDGYZ deldelg3323 +#undef DZZDG_DZZDGZZ +#define DZZDG_DZZDGZZ deldelg3333 + +/* Internal variables */ +#undef DZZDG_FAC +#define DZZDG_FAC dzzdg_fac +#undef DZZDG_OODZ2 +#define DZZDG_OODZ2 dzzdg_oodz2 +#undef DZZDG_DZZDPSI_O_PSI +#define DZZDG_DZZDPSI_O_PSI psizz[ijk] + +/* Declare internal variables */ +double DZZDG_FAC; +double DZZDG_OODZ2 = 1/(GH->dz0*GH->dz0); + +/* Declare output variables */ +double DZZDG_DZZDGXX; +double DZZDG_DZZDGXY; +double DZZDG_DZZDGXZ; +double DZZDG_DZZDGYY; +double DZZDG_DZZDGYZ; +double DZZDG_DZZDGZZ; + +#endif + +#endif diff --git a/src/macro/DZZDG_guts.h b/src/macro/DZZDG_guts.h new file mode 100644 index 0000000..ef0a946 --- /dev/null +++ b/src/macro/DZZDG_guts.h @@ -0,0 +1,79 @@ +/*@@ + @header DZZDG_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + Macro to calculate the (first and) second derivatives of the + physical metric with respect to z + + The macro is defined in terms of standard variables in + @seefile DZZDG_declare.h + + The macro uses @seefile DZDG_guts.h and @seefile DZDG_declare.h + @enddesc +@@*/ + +#ifndef DZZDG_GUTS +#define DZZDG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDG_guts.h" + +#ifdef FCODE + + DZZDG_OODZ2 = 1D0/(dz*dz) + + /* Factor involving 2nd derivative of conformal factor */ + IF (conformal_state /= CONFORMAL_METRIC) THEN + DZZDG_FAC = 0 + ELSE + DZZDG_FAC = DZDG_PSI4*(4*DZZDG_DZZDPSI_O_PSI + 12*DZDG_DZDPSI_O_PSI*DZDG_DZDPSI_O_PSI) + ENDIF + + DZZDG_DZZDGXX = 2*DZDCG_DZDCGXX*DZDG_FAC+DZZDG_FAC*DZDG_GXX+DZDG_PSI4 + &*DZZDG_OODZ2*(DZDCG_GXX_KP-2*DZDG_GXX+DZDCG_GXX_KM) + + DZZDG_DZZDGXY = 2*DZDCG_DZDCGXY*DZDG_FAC+DZZDG_FAC*DZDG_GXY+DZDG_PSI4 + &*DZZDG_OODZ2*(DZDCG_GXY_KP-2*DZDG_GXY+DZDCG_GXY_KM) + + DZZDG_DZZDGXZ = 2*DZDCG_DZDCGXZ*DZDG_FAC+DZZDG_FAC*DZDG_GXZ+DZDG_PSI4 + &*DZZDG_OODZ2*(DZDCG_GXZ_KP-2*DZDG_GXZ+DZDCG_GXZ_KM) + + DZZDG_DZZDGYY = 2*DZDCG_DZDCGYY*DZDG_FAC+DZZDG_FAC*DZDG_GYY+DZDG_PSI4 + &*DZZDG_OODZ2*(DZDCG_GYY_KP-2*DZDG_GYY+DZDCG_GYY_KM) + + DZZDG_DZZDGYZ = 2*DZDCG_DZDCGYZ*DZDG_FAC+DZZDG_FAC*DZDG_GYZ+DZDG_PSI4 + &*DZZDG_OODZ2*(DZDCG_GYZ_KP-2*DZDG_GYZ+DZDCG_GYZ_KM) + + DZZDG_DZZDGZZ = 2*DZDCG_DZDCGZZ*DZDG_FAC+DZZDG_FAC*DZDG_GZZ+DZDG_PSI4 + &*DZZDG_OODZ2*(DZDCG_GZZ_KP-2*DZDG_GZZ+DZDCG_GZZ_KM) + +#endif + +#ifdef CCODE + + /* Factor involving 2nd derivative of conformal factor */ + DZZDG_FAC = ((conformal_state != CONFORMAL_METRIC)?0: + DZDG_PSI4*(4*DZZDG_DZZDPSI_O_PSI + 12*DZDG_DZDPSI_O_PSI*DZDG_DZDPSI_O_PSI)); + + /* Now calculate the second deriatives */ + DZZDG_DZZDGXX = 2*DZDCG_DZDCGXX*DZDG_FAC+DZZDG_FAC*DZDG_GXX+DZDG_PSI4 + *DZZDG_OODZ2*(DZDCG_GXX_KP-2*DZDG_GXX+DZDCG_GXX_KM); + + DZZDG_DZZDGXY = 2*DZDCG_DZDCGXY*DZDG_FAC+DZZDG_FAC*DZDG_GXY+DZDG_PSI4 + *DZZDG_OODZ2*(DZDCG_GXY_KP-2*DZDG_GXY+DZDCG_GXY_KM); + + DZZDG_DZZDGXZ = 2*DZDCG_DZDCGXZ*DZDG_FAC+DZZDG_FAC*DZDG_GXZ+DZDG_PSI4 + *DZZDG_OODZ2*(DZDCG_GXZ_KP-2*DZDG_GXZ+DZDCG_GXZ_KM); + + DZZDG_DZZDGYY = 2*DZDCG_DZDCGYY*DZDG_FAC+DZZDG_FAC*DZDG_GYY+DZDG_PSI4 + *DZZDG_OODZ2*(DZDCG_GYY_KP-2*DZDG_GYY+DZDCG_GYY_KM); + + DZZDG_DZZDGYZ = 2*DZDCG_DZDCGYZ*DZDG_FAC+DZZDG_FAC*DZDG_GYZ+DZDG_PSI4 + *DZZDG_OODZ2*(DZDCG_GYZ_KP-2*DZDG_GYZ+DZDCG_GYZ_KM); + + DZZDG_DZZDGZZ = 2*DZDCG_DZDCGZZ*DZDG_FAC+DZZDG_FAC*DZDG_GZZ+DZDG_PSI4 + *DZZDG_OODZ2*(DZDCG_GZZ_KP-2*DZDG_GZZ+DZDCG_GZZ_KM); + +#endif + +#endif diff --git a/src/macro/DZZDG_undefine.h b/src/macro/DZZDG_undefine.h new file mode 100644 index 0000000..b62646a --- /dev/null +++ b/src/macro/DZZDG_undefine.h @@ -0,0 +1,12 @@ +/*@@ + @header DZZDG_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef DZZDG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DZDG_undefine.h" + diff --git a/src/macro/GAMMA_declare.h b/src/macro/GAMMA_declare.h new file mode 100644 index 0000000..1d79c0a --- /dev/null +++ b/src/macro/GAMMA_declare.h @@ -0,0 +1,57 @@ +/*@@ + @header GAMMA_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + + Macro to calculate Gauge Source Functions (Gammas) + + That is GAMMA_a = g^bc CHR2_abc + @enddesc +@@*/ + +#ifndef GAMMA_DECLARE +#define GAMMA_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR2_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_declare.h" + +#ifdef FCODE + +/* Output variables */ +#undef GAMMA_GAMMAX +#define GAMMA_GAMMAX gamma_gammax +#undef GAMMA_GAMMAY +#define GAMMA_GAMMAY gamma_gammay +#undef GAMMA_GAMMAZ +#define GAMMA_GAMMAZ gamma_gammaz + +/* Declare output variables */ + REAL GAMMA_GAMMAX + REAL GAMMA_GAMMAY + REAL GAMMA_GAMMAZ + +#endif + + +#ifdef CCODE + +/* Output variables */ +#undef GAMMA_GAMMAX +#define GAMMA_GAMMAX gamma_gammax +#undef GAMMA_GAMMAY +#define GAMMA_GAMMAY gamma_gammay +#undef GAMMA_GAMMAZ +#define GAMMA_GAMMAZ gamma_gammaz + +/* Declare output variables */ +double GAMMA_GAMMAX; +double GAMMA_GAMMAY; +double GAMMA_GAMMAZ; + +#endif + +#endif + + + diff --git a/src/macro/GAMMA_guts.h b/src/macro/GAMMA_guts.h new file mode 100644 index 0000000..cae7376 --- /dev/null +++ b/src/macro/GAMMA_guts.h @@ -0,0 +1,51 @@ +/*@@ + @header GAMMA_guts.h + @date Oct 98 + @author Gabrielle Allen + @desc + Macro to calculate Gauge Source Functions (Gammas) + + That is GAMMA_Ga = g^bc CHR2_abc + + @enddesc +@@*/ + +#ifndef GAMMA_GUTS +#define GAMMA_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR2_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_guts.h" + +#ifdef FCODE + + GAMMA_GAMMAX = UPPERMET_UXX*CHR2_XXX + 2D0*UPPERMET_UXY*CHR2_XXY + & + 2D0*UPPERMET_UXZ*CHR2_XXZ + UPPERMET_UYY*CHR2_XYY + & + 2D0*UPPERMET_UYZ*CHR2_XYZ + UPPERMET_UZZ*CHR2_XZZ + + GAMMA_GAMMAY = UPPERMET_UXX*CHR2_YXX + 2D0*UPPERMET_UXY*CHR2_YXY + & + 2D0*UPPERMET_UXZ*CHR2_YXZ + UPPERMET_UYY*CHR2_YYY + & + 2D0*UPPERMET_UYZ*CHR2_YYZ + UPPERMET_UZZ*CHR2_YZZ + + GAMMA_GAMMAZ = UPPERMET_UXX*CHR2_ZXX + 2D0*UPPERMET_UXY*CHR2_ZXY + & + 2D0*UPPERMET_UXZ*CHR2_ZXZ + UPPERMET_UYY*CHR2_ZYY + & + 2D0*UPPERMET_UYZ*CHR2_ZYZ + UPPERMET_UZZ*CHR2_ZZZ + +#endif + +#ifdef CCODE + + GAMMA_GAMMAX = UPPERMET_UXX*CHR2_XXX + 2*UPPERMET_UXY*CHR2_XXY + + 2*UPPERMET_UXZ*CHR2_XXZ + UPPERMET_UYY*CHR2_XYY + + 2*UPPERMET_UYZ*CHR2_XYZ + UPPERMET_UZZ*CHR2_XZZ; + + GAMMA_GAMMAY = UPPERMET_UXX*CHR2_YXX + 2*UPPERMET_UXY*CHR2_YXY + + 2*UPPERMET_UXZ*CHR2_YXZ + UPPERMET_UYY*CHR2_YYY + + 2*UPPERMET_UYZ*CHR2_YYZ + UPPERMET_UZZ*CHR2_YZZ; + + GAMMA_GAMMAZ = UPPERMET_UXX*CHR2_ZXX + 2*UPPERMET_UXY*CHR2_ZXY + + 2*UPPERMET_UXZ*CHR2_ZXZ + UPPERMET_UYY*CHR2_ZYY + + 2*UPPERMET_UYZ*CHR2_ZYZ + UPPERMET_UZZ*CHR2_ZZZ; + +#endif + +#endif diff --git a/src/macro/GAMMA_undefine.h b/src/macro/GAMMA_undefine.h new file mode 100644 index 0000000..b653490 --- /dev/null +++ b/src/macro/GAMMA_undefine.h @@ -0,0 +1,13 @@ +/*@@ + @header GAMMA_undefine.h + @date Oct 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef GAMMA_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR2_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_undefine.h" + diff --git a/src/macro/HAMADM_declare.h b/src/macro/HAMADM_declare.h new file mode 100644 index 0000000..30a338c --- /dev/null +++ b/src/macro/HAMADM_declare.h @@ -0,0 +1,42 @@ +/*@@ + @header HAMADM_declare.h + @date Aug 98 + @author Gabrielle Allen + @desc + Declarations for macro to calculate vacuum part of Hamiltonian + constraint + + @enddesc +@@*/ + +#ifndef HAMADM_DECLARE +#define HAMADM_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/TRRICCI_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/TRKK_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/TRK_declare.h" + +#ifdef FCODE + +/* Output variables */ +#undef HAMADM_HAMADM +#define HAMADM_HAMADM hamadm_ham_adm + +/* Declare output variables */ + REAL HAMADM_HAMADM + +#endif + + +#ifdef CCODE + +/* Output variables */ +#undef HAMADM_HAMADM +#define HAMADM_HAMADM hamadm_ham_adm + +/* Declare output variables */ + double HAMADM_HAMADM; + +#endif + +#endif diff --git a/src/macro/HAMADM_guts.h b/src/macro/HAMADM_guts.h new file mode 100644 index 0000000..667987f --- /dev/null +++ b/src/macro/HAMADM_guts.h @@ -0,0 +1,34 @@ +/*@@ + @header HAMADM_guts.h + @date Aug 98 + @author Gabrielle Allen + @desc + Macro to calculate the spacetime part of the + Hamiltonian Constraint. That is: + + R - K^i_j K^j_i + trK^2 + + @enddesc +@@*/ + +#ifndef HAMADM_GUTS +#define HAMADM_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/TRRICCI_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/TRKK_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/TRK_guts.h" + +#ifdef FCODE + + HAMADM_HAMADM = TRRICCI_TRRICCI - TRKK_TRKK + TRK_TRK**2 + +#endif + +#ifdef CCODE + + HAMADM_HAMADM = TRRICCI_TRRICCI - TRKK_TRKK + TRK_TRK**2 + +#endif + +#endif + diff --git a/src/macro/HAMADM_undefine.h b/src/macro/HAMADM_undefine.h new file mode 100644 index 0000000..ee0638a --- /dev/null +++ b/src/macro/HAMADM_undefine.h @@ -0,0 +1,18 @@ +/*@@ + @header HAMADM_undefine.h + @date Aug 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef HAMADM_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/TRRICCI_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/TRKK_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/TRK_undefine.h" + + + + + diff --git a/src/macro/KK_declare.h b/src/macro/KK_declare.h new file mode 100644 index 0000000..84699b6 --- /dev/null +++ b/src/macro/KK_declare.h @@ -0,0 +1,103 @@ +/*@@ + @header KK_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + + Declarations for macro to calculate term K_{ik}K^{k}_{l} + + Requires: Upper physical metric + Lower extrinsic curvature + + Provides: Components of K_{ik}K^{k}_{l} + + @enddesc +@@*/ + +#ifndef KK_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_declare.h" + +#ifdef FCODE + +/* Input variables */ +#undef KK_HXX +#define KK_HXX hxx(i,j,k) +#undef KK_HXY +#define KK_HXY hxy(i,j,k) +#undef KK_HXZ +#define KK_HXZ hxz(i,j,k) +#undef KK_HYY +#define KK_HYY hyy(i,j,k) +#undef KK_HYZ +#define KK_HYZ hyz(i,j,k) +#undef KK_HZZ +#define KK_HZZ hzz(i,j,k) + +/* Output variables */ +#undef KK_KKXX +#define KK_KKXX KK11 +#undef KK_KKXY +#define KK_KKXY KK12 +#undef KK_KKXZ +#define KK_KKXZ KK13 +#undef KK_KKYY +#define KK_KKYY KK22 +#undef KK_KKYZ +#define KK_KKYZ KK23 +#undef KK_KKZZ +#define KK_KKZZ KK33 + +/* Declare output variables */ + REAL KK_KKXX + REAL KK_KKXY + REAL KK_KKXZ + REAL KK_KKYY + REAL KK_KKYZ + REAL KK_KKZZ + +#endif + +#ifdef CCODE + +/* Input variables */ +#undef KK_HXX +#define KK_HXX hxx[ijk] +#undef KK_HXY +#define KK_HXY hxy[ijk] +#undef KK_HXZ +#define KK_HXZ hxz[ijk] +#undef KK_HYY +#define KK_HYY hyy[ijk] +#undef KK_HYZ +#define KK_HYZ hyz[ijk] +#undef KK_HZZ +#define KK_HZZ hzz[ijk] + +/* Output variables */ +#undef KK_KKXX +#define KK_KKXX KK11 +#undef KK_KKXY +#define KK_KKXY KK12 +#undef KK_KKXZ +#define KK_KKXZ KK13 +#undef KK_KKYY +#define KK_KKYY KK22 +#undef KK_KKYZ +#define KK_KKYZ KK23 +#undef KK_KKZZ +#define KK_KKZZ KK33 + +/* Declare output variables */ +double KK_KKXX; +double KK_KKXY; +double KK_KKXZ; +double KK_KKYY; +double KK_KKYZ; +double KK_KKZZ; + +#endif + +#define KK_DECLARE + +#endif diff --git a/src/macro/KK_guts.h b/src/macro/KK_guts.h new file mode 100644 index 0000000..ec3ac83 --- /dev/null +++ b/src/macro/KK_guts.h @@ -0,0 +1,88 @@ +/*@@ + @header KK_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + + Macro to calculate term K_{ik}K^{k}_{l} + + The macro is defined in terms of standard variables in + KK_declare.h + + Requires: Upper physical metric + Lower extrinsic curvature + + Provides: Components of K_{ik}K^{k}_{l} + + @enddesc +@@*/ + +#ifndef KK_GUTS +#define KK_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_guts.h" + +#ifdef FCODE + + KK_KKXX = 2*(UPPERMET_UYZ*KK_HXY*KK_HXZ + KK_HXX*(UPPERMET_UXY*KK_HXY + + &UPPERMET_UXZ*KK_HXZ)) + UPPERMET_UXX*KK_HXX*KK_HXX + + &UPPERMET_UYY*KK_HXY*KK_HXY + UPPERMET_UZZ*KK_HXZ*KK_HXZ + + KK_KKXY = KK_HXY*(UPPERMET_UXX*KK_HXX + UPPERMET_UYY*KK_HYY) + + &UPPERMET_UZZ*KK_HXZ*KK_HYZ + UPPERMET_UXZ*(KK_HXY*KK_HXZ + + &KK_HXX*KK_HYZ) + UPPERMET_UYZ*(KK_HXZ*KK_HYY + KK_HXY*KK_HYZ) + + &UPPERMET_UXY*(KK_HXX*KK_HYY + KK_HXY*KK_HXY) + + KK_KKXZ = UPPERMET_UYY*KK_HXY*KK_HYZ + UPPERMET_UXY*(KK_HXY*KK_HXZ + + &KK_HXX*KK_HYZ) + KK_HXZ*(UPPERMET_UXX*KK_HXX + UPPERMET_UZZ*KK_HZZ) + + &UPPERMET_UYZ*(KK_HXZ*KK_HYZ + KK_HXY*KK_HZZ) + + &UPPERMET_UXZ*(KK_HXX*KK_HZZ + KK_HXZ*KK_HXZ) + + KK_KKYY = 2*(UPPERMET_UYZ*KK_HYY*KK_HYZ + KK_HXY*(UPPERMET_UXY*KK_HYY + + &UPPERMET_UXZ*KK_HYZ)) + UPPERMET_UXX*KK_HXY*KK_HXY + + &UPPERMET_UYY*KK_HYY*KK_HYY + UPPERMET_UZZ*KK_HYZ*KK_HYZ ; + + KK_KKYZ = UPPERMET_UXX*KK_HXY*KK_HXZ + UPPERMET_UXY*(KK_HXZ*KK_HYY + + &KK_HXY*KK_HYZ) + KK_HYZ*(UPPERMET_UYY*KK_HYY + UPPERMET_UZZ*KK_HZZ) + + &UPPERMET_UXZ*(KK_HXZ*KK_HYZ + KK_HXY*KK_HZZ) + + &UPPERMET_UYZ*(KK_HYY*KK_HZZ + KK_HYZ*KK_HYZ) + + KK_KKZZ = 2*(UPPERMET_UYZ*KK_HYZ*KK_HZZ + KK_HXZ*(UPPERMET_UXY*KK_HYZ + + &UPPERMET_UXZ*KK_HZZ)) + UPPERMET_UXX*KK_HXZ*KK_HXZ + + &UPPERMET_UYY*KK_HYZ*KK_HYZ + UPPERMET_UZZ*KK_HZZ*KK_HZZ + +#endif + +#ifdef CCODE + +KK_KKXX = 2*(UPPERMET_UYZ*KK_HXY*KK_HXZ + KK_HXX*(UPPERMET_UXY*KK_HXY + +UPPERMET_UXZ*KK_HXZ)) + UPPERMET_UXX*KK_HXX*KK_HXX + +UPPERMET_UYY*KK_HXY*KK_HXY + UPPERMET_UZZ*KK_HXZ*KK_HXZ; + +KK_KKXY = KK_HXY*(UPPERMET_UXX*KK_HXX + UPPERMET_UYY*KK_HYY) + +UPPERMET_UZZ*KK_HXZ*KK_HYZ + UPPERMET_UXZ*(KK_HXY*KK_HXZ + +KK_HXX*KK_HYZ) + UPPERMET_UYZ*(KK_HXZ*KK_HYY + KK_HXY*KK_HYZ) + +UPPERMET_UXY*(KK_HXX*KK_HYY + KK_HXY*KK_HXY) ; + +KK_KKXZ = UPPERMET_UYY*KK_HXY*KK_HYZ + UPPERMET_UXY*(KK_HXY*KK_HXZ + +KK_HXX*KK_HYZ) + KK_HXZ*(UPPERMET_UXX*KK_HXX + UPPERMET_UZZ*KK_HZZ) + +UPPERMET_UYZ*(KK_HXZ*KK_HYZ + KK_HXY*KK_HZZ) + +UPPERMET_UXZ*(KK_HXX*KK_HZZ + KK_HXZ*KK_HXZ) ; + +KK_KKYY = 2*(UPPERMET_UYZ*KK_HYY*KK_HYZ + KK_HXY*(UPPERMET_UXY*KK_HYY + +UPPERMET_UXZ*KK_HYZ)) + UPPERMET_UXX*KK_HXY*KK_HXY + +UPPERMET_UYY*KK_HYY*KK_HYY + UPPERMET_UZZ*KK_HYZ*KK_HYZ ; + +KK_KKYZ = UPPERMET_UXX*KK_HXY*KK_HXZ + UPPERMET_UXY*(KK_HXZ*KK_HYY + +KK_HXY*KK_HYZ) + KK_HYZ*(UPPERMET_UYY*KK_HYY + UPPERMET_UZZ*KK_HZZ) + +UPPERMET_UXZ*(KK_HXZ*KK_HYZ + KK_HXY*KK_HZZ) + +UPPERMET_UYZ*(KK_HYY*KK_HZZ + KK_HYZ*KK_HYZ) ; + +KK_KKZZ = 2*(UPPERMET_UYZ*KK_HYZ*KK_HZZ + KK_HXZ*(UPPERMET_UXY*KK_HYZ + +UPPERMET_UXZ*KK_HZZ)) + UPPERMET_UXX*KK_HXZ*KK_HXZ + +UPPERMET_UYY*KK_HYZ*KK_HYZ + UPPERMET_UZZ*KK_HZZ*KK_HZZ ; + +#endif + +#endif + diff --git a/src/macro/KK_undefine.h b/src/macro/KK_undefine.h new file mode 100644 index 0000000..1d02704 --- /dev/null +++ b/src/macro/KK_undefine.h @@ -0,0 +1,13 @@ +/*@@ + @header KK_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef KK_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_undefine.h" + + diff --git a/src/macro/LIEG_declare.h b/src/macro/LIEG_declare.h new file mode 100644 index 0000000..3f52f68 --- /dev/null +++ b/src/macro/LIEG_declare.h @@ -0,0 +1,110 @@ +/*@@ + @header LIEG_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + Macro to calculate the Lie derivative of the lower + physical metric + + @enddesc +@@*/ + +#ifndef LIEG_DECLARE +#define LIEG_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DB_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DG_declare.h" + +#ifdef FCODE + +/* Input variables */ +#undef LIEG_BX +#define LIEG_BX betax(i,j,k) +#undef LIEG_BY +#define LIEG_BY betay(i,j,k) +#undef LIEG_BZ +#define LIEG_BZ betaz(i,j,k) +#undef LIEG_GXX +#define LIEG_GXX gxx(i,j,k) +#undef LIEG_GXY +#define LIEG_GXY gxy(i,j,k) +#undef LIEG_GXZ +#define LIEG_GXZ gxz(i,j,k) +#undef LIEG_GYY +#define LIEG_GYY gyy(i,j,k) +#undef LIEG_GYZ +#define LIEG_GYZ gyz(i,j,k) +#undef LIEG_GZZ +#define LIEG_GZZ gzz(i,j,k) + +/* Output variables */ +#undef LIEG_LGXX +#define LIEG_LGXX lieg_lgxx +#undef LIEG_LGXY +#define LIEG_LGXY lieg_lgxy +#undef LIEG_LGXZ +#define LIEG_LGXZ lieg_lgxz +#undef LIEG_LGYY +#define LIEG_LGYY lieg_lgyy +#undef LIEG_LGYZ +#define LIEG_LGYZ lieg_lgyz +#undef LIEG_LGZZ +#define LIEG_LGZZ lieg_lgzz + +/* Declare output variables */ + REAL LIEG_LGXX + REAL LIEG_LGXY + REAL LIEG_LGXZ + REAL LIEG_LGYY + REAL LIEG_LGYZ + REAL LIEG_LGZZ + +#endif + +#ifdef CCODE + +/* Input variables */ +#undef LIEG_BX +#define LIEG_BX betax[ijk] +#undef LIEG_BY +#define LIEG_BY betay[ijk] +#undef LIEG_BZ +#define LIEG_BZ betaz[ijk] +#undef LIEG_GXX +#define LIEG_GXX gxx[ijk] +#undef LIEG_GXY +#define LIEG_GXY gxy[ijk] +#undef LIEG_GXZ +#define LIEG_GXZ gxz[ijk] +#undef LIEG_GYY +#define LIEG_GYY gyy[ijk] +#undef LIEG_GYZ +#define LIEG_GYZ gyz[ijk] +#undef LIEG_GZZ +#define LIEG_GZZ gzz[ijk] + +/* Output variables */ +#undef LIEG_LGXX +#define LIEG_LGXX lieg_lgxx +#undef LIEG_LGXY +#define LIEG_LGXY lieg_lgxy +#undef LIEG_LGXZ +#define LIEG_LGXZ lieg_lgxz +#undef LIEG_LGYY +#define LIEG_LGYY lieg_lgyy +#undef LIEG_LGYZ +#define LIEG_LGYZ lieg_lgyz +#undef LIEG_LGZZ +#define LIEG_LGZZ lieg_lgzz + +/* Declare output variables */ + double LIEG_LGXX; + double LIEG_LGXY; + double LIEG_LGXZ; + double LIEG_LGYY; + double LIEG_LGYZ; + double LIEG_LGZZ; + +#endif + +#endif diff --git a/src/macro/LIEG_guts.h b/src/macro/LIEG_guts.h new file mode 100644 index 0000000..a769079 --- /dev/null +++ b/src/macro/LIEG_guts.h @@ -0,0 +1,80 @@ +/*@@ + @header LIEG_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + Macro to calculate the Lie derivative of the lower + conformal metric + + @enddesc +@@*/ + +#ifndef LIEG_GUTS +#define LIEG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DB_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DG_guts.h" + +#ifdef FCODE + + LIEG_LGXX = DXDCG_DXDCGXX*LIEG_BX + DYDCG_DYDCGXX*LIEG_BY + + & DZDCG_DZDCGXX*LIEG_BZ + 2*(DXDB_DXDBX*LIEG_GXX + DXDB_DXDBY*LIEG_GXY + + & DXDB_DXDBZ*LIEG_GXZ) + + LIEG_LGXY = DXDCG_DXDCGXY*LIEG_BX + DYDCG_DYDCGXY*LIEG_BY + + & DZDCG_DZDCGXY*LIEG_BZ + DYDB_DYDBX*LIEG_GXX + (DXDB_DXDBX + + & DYDB_DYDBY)*LIEG_GXY + DYDB_DYDBZ*LIEG_GXZ + DXDB_DXDBY*LIEG_GYY + + & DXDB_DXDBZ*LIEG_GYZ + + LIEG_LGXZ = DXDCG_DXDCGXZ*LIEG_BX + DYDCG_DYDCGXZ*LIEG_BY + + & DZDCG_DZDCGXZ*LIEG_BZ + DZDB_DZDBX*LIEG_GXX + DZDB_DZDBY*LIEG_GXY + + & (DXDB_DXDBX + DZDB_DZDBZ)*LIEG_GXZ + DXDB_DXDBY*LIEG_GYZ + + & DXDB_DXDBZ*LIEG_GZZ + + LIEG_LGYY = DXDCG_DXDCGYY*LIEG_BX +DYDCG_DYDCGYY*LIEG_BY + + & DZDCG_DZDCGYY*LIEG_BZ + 2*(DYDB_DYDBX*LIEG_GXY + DYDB_DYDBY*LIEG_GYY + + & DYDB_DYDBZ*LIEG_GYZ) + + LIEG_LGYZ = DXDCG_DXDCGYZ*LIEG_BX + DYDCG_DYDCGYZ*LIEG_BY + + & DZDCG_DZDCGYZ*LIEG_BZ + DZDB_DZDBX*LIEG_GXY + DYDB_DYDBX*LIEG_GXZ + + & DZDB_DZDBY*LIEG_GYY + (DYDB_DYDBY + DZDB_DZDBZ)*LIEG_GYZ + + & DYDB_DYDBZ*LIEG_GZZ + + LIEG_LGZZ = DXDCG_DXDCGZZ*LIEG_BX + DYDCG_DYDCGZZ*LIEG_BY + + &DZDCG_DZDCGZZ*LIEG_BZ + 2*(DZDB_DZDBX*LIEG_GXZ + DZDB_DZDBY*LIEG_GYZ + + &DZDB_DZDBZ*LIEG_GZZ) + +#endif + +#ifdef CCODE + + LIEG_LGXX = DXDCG_DXDCGXX*LIEG_BX + DYDCG_DYDCGXX*LIEG_BY + + DZDCG_DZDCGXX*LIEG_BZ + 2*(DXDB_DXDBX*LIEG_GXX + DXDB_DXDBY*LIEG_GXY + + DXDB_DXDBZ*LIEG_GZ) ; + + LIEG_LGXY = DXDCG_DXDCGXY*LIEG_BX + DYDCG_DYDCGXY*LIEG_BY + + DZDCG_DZDCGXY*LIEG_BZ + CDYDB_CDYDBX*LIEG_GXX + (DXDB_DXDBX + + DYDB_DYDBY)*LIEG_GXY + DYDB_DYDBZ*LIEG_GXZ+ DXDB_DXDBY*LIEG_GYY + + DXDB_DXDBZ*LIEG_GYZ ; + + LIEG_LGXZ = DXDCG_DXDCGXZ*LIEG_BX + DYDCG_DYDCGXZ*LIEG_BY + + DZDCG_DZDCGXZ*LIEG_BZ + DZDB_DZDBX*LIEG_GXX + DZDB_DZDBY*LIEG_GXY + + (DXDB_DXDBX + DZDB_DZDBZ)*LIEG_GXZ+ DXDB_DXDBY*LIEG_GYZ + + DXDB_DXDBZ*LIEG_GZZ ; + + LIEG_LGYY = DXDCG_DXDCGYY*LIEG_BX + DYDCG_DYDCGYY*LIEG_BY + + DZDCG_DZDCGYY*LIEG_BZ + 2*(DYDB_DYDBX*LIEG_GXY + DYDB_DYDBY*LIEG_GYY + + DYDB_DYDBZ*LIEG_GYZ) ; + + LIEG_LGYZ = DXDCG_DXDCGYZ*LIEG_BX + DYDCG_DYDCGYZ*LIEG_BY + + DZDCG_DZDCGYZ*LIEG_BZ + DZDB_DZDBX*LIEG_GXY + DYDB_DYDBX*LIEG_GXZ+ + DZDB_DZDBY*LIEG_GYY + (DYDB_DYDBY + DZDB_DZDBZ)*LIEG_GYZ + + DYDB_DYDBZ*LIEG_GZZ ; + + LIEG_LGZZ = DXDCG_DXDCGZZ*LIEG_BX + DYDCG_DYDCGZZ*LIEG_BY + + DZDCG_DZDCGZZ*LIEG_BZ + 2*(DZDB_DZDBX*LIEG_GXZ + DZDB_DZDBY*LIEG_GYZ + + DZDB_DZDBZ*LIEG_GZZ) ; + +#endif + +#endif diff --git a/src/macro/LIEG_undefine.h b/src/macro/LIEG_undefine.h new file mode 100644 index 0000000..99bf94a --- /dev/null +++ b/src/macro/LIEG_undefine.h @@ -0,0 +1,14 @@ +/*@@ + @header LIEG_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef LIEG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DB_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DG_undefine.h" + + diff --git a/src/macro/LIEK_declare.h b/src/macro/LIEK_declare.h new file mode 100644 index 0000000..7733658 --- /dev/null +++ b/src/macro/LIEK_declare.h @@ -0,0 +1,110 @@ +/*@@ + @header LIEK_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + Macro to calculate the Lie derivative of the lower + physical metric + + @enddesc +@@*/ + +#ifndef LIEK_DECLARE +#define LIEK_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DB_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DK_declare.h" + +#ifdef FCODE + +/* Input variables */ +#undef LIEK_BX +#define LIEK_BX betax(i,j,k) +#undef LIEK_BY +#define LIEK_BY betay(i,j,k) +#undef LIEK_BZ +#define LIEK_BZ betaz(i,j,k) +#undef LIEK_KXX +#define LIEK_KXX hxx(i,j,k) +#undef LIEK_KXY +#define LIEK_KXY hxy(i,j,k) +#undef LIEK_KXZ +#define LIEK_KXZ hxz(i,j,k) +#undef LIEK_KYY +#define LIEK_KYY hyy(i,j,k) +#undef LIEK_KYZ +#define LIEK_KYZ hyz(i,j,k) +#undef LIEK_KZZ +#define LIEK_KZZ hzz(i,j,k) + +/* Output variables */ +#undef LIEK_LKXX +#define LIEK_LKXX liek_lkxx +#undef LIEK_LKXY +#define LIEK_LKXY liek_lkxy +#undef LIEK_LKXZ +#define LIEK_LKXZ liek_lkxz +#undef LIEK_LKYY +#define LIEK_LKYY liek_lkyy +#undef LIEK_LKYZ +#define LIEK_LKYZ liek_lkyz +#undef LIEK_LKZZ +#define LIEK_LKZZ liek_lkzz + +/* Declare output variables */ + REAL LIEK_LKXX + REAL LIEK_LKXY + REAL LIEK_LKXZ + REAL LIEK_LKYY + REAL LIEK_LKYZ + REAL LIEK_LKZZ + +#endif + +#ifdef CCODE + +/* Input variables */ +#undef LIEK_BX +#define LIEK_BX betax[ijk] +#undef LIEK_BY +#define LIEK_BY betay[ijk] +#undef LIEK_BZ +#define LIEK_BZ betaz[ijk] +#undef LIEK_KXX +#define LIEK_KXX hxx[ijk] +#undef LIEK_KXY +#define LIEK_KXY hxy[ijk] +#undef LIEK_KXZ +#define LIEK_KXZ hxz[ijk] +#undef LIEK_KYY +#define LIEK_KYY hyy[ijk] +#undef LIEK_KYZ +#define LIEK_KYZ hyz[ijk] +#undef LIEK_KZZ +#define LIEK_KZZ hzz[ijk] + +/* Output variables */ +#undef LIEK_LKXX +#define LIEK_LKXX liek_lkxx +#undef LIEK_LKXY +#define LIEK_LKXY liek_lkxy +#undef LIEK_LKXZ +#define LIEK_LKXZ liek_lkxz +#undef LIEK_LKYY +#define LIEK_LKYY liek_lkyy +#undef LIEK_LKYZ +#define LIEK_LKYZ liek_lkyz +#undef LIEK_LKZZ +#define LIEK_LKZZ liek_lkzz + +/* Declare output variables */ + double LIEK_LKXX; + double LIEK_LKXY; + double LIEK_LKXZ; + double LIEK_LKYY; + double LIEK_LKYZ; + double LIEK_LKZZ; + +#endif + +#endif diff --git a/src/macro/LIEK_guts.h b/src/macro/LIEK_guts.h new file mode 100644 index 0000000..4f35250 --- /dev/null +++ b/src/macro/LIEK_guts.h @@ -0,0 +1,80 @@ +/*@@ + @header LIEK_guts.h + @date Jul 98 + @author Gabrielle Allen + @desc + Macro to calculate the Lie derivative of the lower + extrinsic curvature along the shift vector + + @enddesc +@@*/ + +#ifndef LIEK_GUTS +#define LIEK_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DB_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DK_guts.h" + +#ifdef FCODE + + LIEK_LKXX = DXDK_DXDKXX*LIEK_BX + DYDK_DYDKXX*LIEK_BY + + &DZDK_DZDKXX*LIEK_BZ + 2*(DXDB_DXDBX*LIEK_KXX + DXDB_DXDBY*LIEK_KXY + + &DXDB_DXDBZ*LIEK_KXZ) + + LIEK_LKXY = DXDK_DXDKXY*LIEK_BX + DYDK_DYDKXY*LIEK_BY + + &DZDK_DZDKXY*LIEK_BZ + DYDB_DYDBX*LIEK_KXX + (DXDB_DXDBX + + &DYDB_DYDBY)*LIEK_KXY + DYDB_DYDBZ*LIEK_KXZ + DXDB_DXDBY*LIEK_KYY + + &DXDB_DXDBZ*LIEK_KYZ + + LIEK_LKXZ = DXDK_DXDKXZ*LIEK_BX + DYDK_DYDKXZ*LIEK_BY + + &DZDK_DZDKXZ*LIEK_BZ + DZDB_DZDBX*LIEK_KXX + DZDB_DZDBY*LIEK_KXY + + &(DXDB_DXDBX + DZDB_DZDBZ)*LIEK_KXZ + DXDB_DXDBY*LIEK_KYZ + + &DXDB_DXDBZ*LIEK_KZZ + + LIEK_LKYY = DXDK_DXDKYY*LIEK_BX + DYDK_DYDKYY*LIEK_BY + + &DZDK_DZDKYY*LIEK_BZ + 2*(DYDB_DYDBX*LIEK_KXY + DYDB_DYDBY*LIEK_KYY + + &DYDB_DYDBZ*LIEK_KYZ) + + LIEK_LKYZ = DXDK_DXDKYZ*LIEK_BX + DYDK_DYDKYZ*LIEK_BY + + &DZDK_DZDKYZ*LIEK_BZ + DZDB_DZDBX*LIEK_KXY + DYDB_DYDBX*LIEK_KXZ + + &DZDB_DZDBY*LIEK_KYY + (DYDB_DYDBY + DZDB_DZDBZ)*LIEK_KYZ + + &DYDB_DYDBZ*LIEK_KZZ + + LIEK_LKZZ = DXDK_DXDKZZ*LIEK_BX + DYDK_DYDKZZ*LIEK_BY + + &DZDK_DZDKZZ*LIEK_BZ + 2*(DZDB_DZDBX*LIEK_KXZ + DZDB_DZDBY*LIEK_KYZ + + &DZDB_DZDBZ*LIEK_KZZ) + +#endif + +#ifdef CCODE + + LIEK_LKXX = DXDK_DXDKXX*LIEK_BX + DYDK_DYDKXX*LIEK_BY + + DZDK_DZDKXX*LIEK_BZ + 2*(DXDB_DXDBX*LIEK_KXX + DXDB_DXDBY*LIEK_KXY + + DXDB_DXDBZ*LIEK_KXZ) ; + + LIEK_LKXY = DXDK_DXDKXY*LIEK_BX + DYDK_DYDKXY*LIEK_BY + + DZDK_DZDKXY*LIEK_BZ + DYDB_DYDBX*LIEK_KXX + (DXDB_DXDBX + + DYDB_DYDBY)*LIEK_KXY + DYDB_DYDBZ*LIEK_KXZ + DXDB_DXDBY*LIEK_KYY + + DXDB_DXDBZ*LIEK_KYZ ; + + LIEK_LKXZ = DXDK_DXDKXZ*LIEK_BX + DYDK_DYDKXZ*LIEK_BY + + DZDK_DZDKXZ*LIEK_BZ + DZDB_DZDBX*LIEK_KXX + DZDB_DZDBY*LIEK_KXY + + (DXDB_DXDBX + DZDB_DZDBZ)*LIEK_KXZ + DXDB_DXDBY*LIEK_KYZ + + DXDB_DXDBZ*LIEK_KZZ ; + + LIEK_LKYY = DXDK_DXDKYY*LIEK_BX + DYDK_DYDKYY*LIEK_BY + + DZDK_DZDKYY*LIEK_BZ + 2*(DYDB_DYDBX*LIEK_KXY + DYDB_DYDBY*LIEK_KYY + + DYDB_DYDBZ*LIEK_KYZ) ; + + LIEK_LKYZ = DXDK_DXDKYZ*LIEK_BX + DYDK_DYDKYZ*LIEK_BY + + DZDK_DZDKYZ*LIEK_BZ + DZDB_DZDB1*LIEK_KXY + DYDB_DYDBX*LIEK_KXZ + + DZDB_DZDBY*LIEK_KYY + (DYDB_DYDBY + DZDB_DZDBZ)*LIEK_KYZ + + DYDB_DYDBZ*LIEK_KZZ ; + + LIEK_LKZZ = DXDK_DXDKZZ*LIEK_BX + DYDK_DYDKZZ*LIEK_BY + + DZDK_DZDKZZ*LIEK_BZ + 2*(DZDB_DZDBX*LIEK_KXZ + DZDB_DZDBY*LIEK_KYZ + + DZDB_DZDBZ*LIEK_KZZ) ; + +#endif + +#endif diff --git a/src/macro/LIEK_undefine.h b/src/macro/LIEK_undefine.h new file mode 100644 index 0000000..d733b27 --- /dev/null +++ b/src/macro/LIEK_undefine.h @@ -0,0 +1,14 @@ +/*@@ + @header LIEK_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef LIEK_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DB_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DK_undefine.h" + + diff --git a/src/macro/MOMXADM_declare.h b/src/macro/MOMXADM_declare.h new file mode 100644 index 0000000..21e9627 --- /dev/null +++ b/src/macro/MOMXADM_declare.h @@ -0,0 +1,41 @@ +/*@@ + @header MOMXADM_declare.h + @date Aug 98 + @author Gabrielle Allen + @desc + Declarations for macro to calculate vacuum part of + x-Momentum constraint + + @enddesc +@@*/ + +#ifndef MOMXADM_DECLARE +#define MOMXADM_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CDK_declare.h" + +#ifdef FCODE + +/* Output variables */ +#undef MOMXADM_MOMXADM +#define MOMXADM_MOMXADM momxadm_momxadm + +/* Declare output variables */ + REAL MOMXADM_MOMXADM + +#endif + + +#ifdef CCODE + +/* Output variables */ +#undef MOMXADM_MOMXADM +#define MOMXADM_MOMXADM momxadm_momxadm + +/* Declare output variables */ + double MOMXADM_MOMXADM; + +#endif + +#endif diff --git a/src/macro/MOMXADM_guts.h b/src/macro/MOMXADM_guts.h new file mode 100644 index 0000000..a497b41 --- /dev/null +++ b/src/macro/MOMXADM_guts.h @@ -0,0 +1,41 @@ +/*@@ + @header MOMXADM_guts.h + @date Aug 98 + @author Gabrielle Allen + @desc + Macro to calculate the spacetime part of the + x-Momentum Constraint. That is: + + Del_j K_x^j - Del_x trK + + @enddesc +@@*/ + +#ifndef MOMXADM_GUTS +#define MOMXADM_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CDK_guts.h" + +#ifdef FCODE + + MOMXADM_MOMXADM = (-CDXCDK_CDXCDKXY + CDYCDK_CDYCDKXX)*UPPERMET_UXY + & + (-CDXCDK_CDXCDKXZ + CDZCDK_CDZCDKXX)*UPPERMET_UXZ + + & (-CDXCDK_CDXCDKYY + CDYCDK_CDYCDKXY)*UPPERMET_UYY + + & (-2*CDXCDK_CDXCDKYZ + CDYCDK_CDYCDKXZ + CDZCDK_CDZCDKXY)* + & UPPERMET_UYZ + (-CDXCDK_CDXCDKZZ + CDZCDK_CDZCDKXZ)*UPPERMET_UZZ + +#endif + +#ifdef CCODE + + MOMXADM_MOMXADM = (-CDXCDK_CDXCDKXY + CDYCDK_CDYCDKXX)*UPPERMET_UXY + + (-CDXCDK_CDXCDKXZ + CDZCDK_CDZCDKXX)*UPPERMET_UXZ + + (-CDXCDK_CDXCDKYY + CDYCDK_CDYCDKXY)*UPPERMET_UYY + + (-2*CDXCDK_CDXCDKYZ + CDYCDK_CDYCDKXZ + CDZCDK_CDZCDKXY)* + UPPERMET_UYZ + (-CDXCDK_CDXCDKZZ + CDZCDK_CDZCDKXZ)*UPPERMET_UZZ; + +#endif + +#endif + diff --git a/src/macro/MOMXADM_undefine.h b/src/macro/MOMXADM_undefine.h new file mode 100644 index 0000000..45309ec --- /dev/null +++ b/src/macro/MOMXADM_undefine.h @@ -0,0 +1,17 @@ +/*@@ + @header MOMXADM_undefine.h + @date Aug 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef MOMXADM_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CDK_undefine.h" + + + + + diff --git a/src/macro/MOMYADM_declare.h b/src/macro/MOMYADM_declare.h new file mode 100644 index 0000000..73682a4 --- /dev/null +++ b/src/macro/MOMYADM_declare.h @@ -0,0 +1,41 @@ +/*@@ + @header MOMYADM_declare.h + @date Aug 98 + @author Gabrielle Allen + @desc + Declarations for macro to calculate vacuum part of + y-Momentum constraint + + @enddesc +@@*/ + +#ifndef MOMYADM_DECLARE +#define MOMYADM_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CDK_declare.h" + +#ifdef FCODE + +/* Output variables */ +#undef MOMYADM_MOMYADM +#define MOMYADM_MOMYADM momyadm_momyadm + +/* Declare output variables */ + REAL MOMYADM_MOMYADM + +#endif + + +#ifdef CCODE + +/* Output variables */ +#undef MOMYADM_MOMYADM +#define MOMYADM_MOMYADM momyadm_momyadm + +/* Declare output variables */ + double MOMYADM_MOMYADM; + +#endif + +#endif diff --git a/src/macro/MOMYADM_guts.h b/src/macro/MOMYADM_guts.h new file mode 100644 index 0000000..00e246d --- /dev/null +++ b/src/macro/MOMYADM_guts.h @@ -0,0 +1,41 @@ +/*@@ + @header MOMYADM_guts.h + @date Aug 98 + @author Gabrielle Allen + @desc + Macro to calculate the spacetime part of the + y-Momentum Constraint. That is: + + Del_j K_y^j - Del_y trK + + @enddesc +@@*/ + +#ifndef MOMYADM_GUTS +#define MOMYADM_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CDK_guts.h" + +#ifdef FCODE + + MOMYADM_MOMYADM = (CDXCDK_CDXCDKXY - CDYCDK_CDYCDKXX)*UPPERMET_UXX + & + (CDXCDK_CDXCDKYY - CDYCDK_CDYCDKXY)*UPPERMET_UXY + + & (CDXCDK_CDXCDKYZ - 2*CDYCDK_CDYCDKXZ + CDZCDK_CDZCDKXY)*UPPERMET_UXZ + + & (-CDYCDK_CDYCDKYZ + CDZCDK_CDZCDKYY)*UPPERMET_UYZ + + & (-CDYCDK_CDYCDKZZ + CDZCDK_CDZCDKYZ)*UPPERMET_UZZ + +#endif + +#ifdef CCODE + + MOMYADM_MOMYADM = (CDXCDK_CDXCDKXY - CDYCDK_CDYCDKXX)*UPPERMET_UXX + + (CDXCDK_CDXCDKYY - CDYCDK_CDYCDKXY)*UPPERMET_UXY + + (CDXCDK_CDXCDKYZ - 2*CDYCDK_CDYCDKXZ + CDZCDK_CDZCDKXY)*UPPERMET_UXZ + + (-CDYCDK_CDYCDKYZ + CDZCDK_CDZCDKYY)*UPPERMET_UYZ + + (-CDYCDK_CDYCDKZZ + CDZCDK_CDZCDKYZ)*UPPERMET_UZZ; + +#endif + +#endif + diff --git a/src/macro/MOMYADM_undefine.h b/src/macro/MOMYADM_undefine.h new file mode 100644 index 0000000..815bc15 --- /dev/null +++ b/src/macro/MOMYADM_undefine.h @@ -0,0 +1,17 @@ +/*@@ + @header MOMYADM_undefine.h + @date Aug 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef MOMYADM_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CDK_undefine.h" + + + + + diff --git a/src/macro/MOMZADM_declare.h b/src/macro/MOMZADM_declare.h new file mode 100644 index 0000000..cc91fb2 --- /dev/null +++ b/src/macro/MOMZADM_declare.h @@ -0,0 +1,41 @@ +/*@@ + @header MOMZADM_declare.h + @date Aug 98 + @author Gabrielle Allen + @desc + Declarations for macro to calculate vacuum part of + z-Momentum constraint + + @enddesc +@@*/ + +#ifndef MOMZADM_DECLARE +#define MOMZADM_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CDK_declare.h" + +#ifdef FCODE + +/* Output variables */ +#undef MOMZADM_MOMZADM +#define MOMZADM_MOMZADM momzadm_momzadm + +/* Declare output variables */ + REAL MOMZADM_MOMZADM + +#endif + + +#ifdef CCODE + +/* Output variables */ +#undef MOMZADM_MOMZADM +#define MOMZADM_MOMZADM momzadm_momzadm + +/* Declare output variables */ + double MOMZADM_MOMZADM; + +#endif + +#endif diff --git a/src/macro/MOMZADM_guts.h b/src/macro/MOMZADM_guts.h new file mode 100644 index 0000000..d846cef --- /dev/null +++ b/src/macro/MOMZADM_guts.h @@ -0,0 +1,39 @@ +/*@@ + @header MOMZADM_guts.h + @date Aug 98 + @author Gabrielle Allen + @desc + Macro to calculate the spacetime part of the + z-Momentum Constraint. That is: + + Del_j K_z^j - Del_z trK + + @enddesc +@@*/ + +#ifndef MOMZADM_GUTS +#define MOMZADM_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CDK_guts.h" + +#ifdef FCODE + + MOMZADM_MOMZADM = (CDXCDK_CDXCDKXZ - CDZCDK_CDZCDKXX)*UPPERMET_UXX + + & (CDXCDK_CDXCDKYZ + CDYCDK_CDYCDKXZ - 2*CDZCDK_CDZCDKXY)*UPPERMET_UXY + + & (CDXCDK_CDXCDKZZ - CDZCDK_CDZCDKXZ)*UPPERMET_UXZ + (CDYCDK_CDYCDKYZ - + & CDZCDK_CDZCDKYY)*UPPERMET_UYY + (CDYCDK_CDYCDKZZ - CDZCDK_CDZCDKYZ)*UPPERMET_UYZ + +#endif + +#ifdef CCODE + + MOMZADM_MOMZADM = (CDXCDK_CDXCDKXZ - CDZCDK_CDZCDKXX)*UPPERMET_UXX + + (CDXCDK_CDXCDKYZ + CDYCDK_CDYCDKXZ - 2*CDZCDK_CDZCDKXY)*UPPERMET_UXY + + (CDXCDK_CDXCDKZZ - CDZCDK_CDZCDKXZ)*UPPERMET_UXZ + (CDYCDK_CDYCDKYZ - + CDZCDK_CDZCDKYY)*UPPERMET_UYY + (CDYCDK_CDYCDKZZ - CDZCDK_CDZCDKYZ)*UPPERMET_UYZ; + +#endif + +#endif + diff --git a/src/macro/MOMZADM_undefine.h b/src/macro/MOMZADM_undefine.h new file mode 100644 index 0000000..6099bc1 --- /dev/null +++ b/src/macro/MOMZADM_undefine.h @@ -0,0 +1,17 @@ +/*@@ + @header MOMZADM_undefine.h + @date Aug 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef MOMZADM_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CDK_undefine.h" + + + + + diff --git a/src/macro/NABA_declare.h b/src/macro/NABA_declare.h new file mode 100644 index 0000000..9cebbe6 --- /dev/null +++ b/src/macro/NABA_declare.h @@ -0,0 +1,36 @@ +/*@@ + @header NABA_declare.h + @date Jul 98 + @author Gabrielle Allen + @desc + Declarations for macro to calculate the nabla operator acting on the lapse + + That is alpha_i^i + @enddesc +@@*/ + +#ifndef NABA_DECLARE +#define NABA_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CDCDA_declare.h" + +/* Output variables */ +#undef NABA_NABA +#define NABA_NABA naba_naba + +#ifdef FCODE + +/* Declare output variables */ + REAL NABA_NABA + +#endif + +#ifdef CCODE + +/* Declare output variables */ + double NABA_NABA; + +#endif + +#endif diff --git a/src/macro/NABA_guts.h b/src/macro/NABA_guts.h new file mode 100644 index 0000000..ad44638 --- /dev/null +++ b/src/macro/NABA_guts.h @@ -0,0 +1,36 @@ +/*@@ + @header NABA_guts.h + @date Jul 98 + @author Gabrielle Allen + @desc + Macro to calculate the nabla operator acting on the lapse + + That is alpha_i^i + + @enddesc +@@*/ + +#ifndef NABA_GUTS +#define NABA_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CDCDA_guts.h" + +#ifdef FCODE + + NABA_NABA = UPPERMET_UXX*CDCDA_CDXXDA+UPPERMET_UYY*CDCDA_CDYYDA + & +UPPERMET_UZZ*CDCDA_CDZZDA+2*(UPPERMET_UXY*CDCDA_CDXYDA+UPPERMET_UXZ*CDCDA_CDXZDA + & +UPPERMET_UYZ*CDCDA_CDYZDA) + +#endif + +#ifdef CCODE + + NABA_NABA = UPPERMET_UXX*CDCDA_CDXXDA+UPPERMET_UYY*CDCDA_CDYYDA + +UPPERMET_UZZ*CDCDA_CDZZDA+2*(UPPERMET_UXY*CDCDA_CDXYDA+UPPERMET_UXZ*CDCDA_CDXZDA + +UPPERMET_UYZ*CDCDA_CDYZDA); + +#endif + +#endif + diff --git a/src/macro/NABA_undefine.h b/src/macro/NABA_undefine.h new file mode 100644 index 0000000..8081b5d --- /dev/null +++ b/src/macro/NABA_undefine.h @@ -0,0 +1,14 @@ +/*@@ + @header NABA_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef NABA_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CDCDA_undefine.h" + + diff --git a/src/macro/RICCI_declare.h b/src/macro/RICCI_declare.h new file mode 100644 index 0000000..84c68ee --- /dev/null +++ b/src/macro/RICCI_declare.h @@ -0,0 +1,80 @@ +/*@@ + @header RICCI_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + + Macro to calculate the components of the Ricci tensor. + + Requires: Second derivatives of physical metric + Christoffel symbols of first kind + Christoffel symbols of second kind + Upper physical metric + + Provides: Components of the physical Ricci tensor + + @enddesc +@@*/ + +#ifndef RICCI_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DDG_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR1_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR2_declare.h" + +#ifdef FCODE + +/* Output variables */ +#undef RICCI_RXX +#define RICCI_RXX ricci_R11 +#undef RICCI_RXY +#define RICCI_RXY ricci_R12 +#undef RICCI_RXZ +#define RICCI_RXZ ricci_R13 +#undef RICCI_RYY +#define RICCI_RYY ricci_R22 +#undef RICCI_RYZ +#define RICCI_RYZ ricci_R23 +#undef RICCI_RZZ +#define RICCI_RZZ ricci_R33 + +/* Declare output variables */ + REAL RICCI_RXX + REAL RICCI_RXY + REAL RICCI_RXZ + REAL RICCI_RYY + REAL RICCI_RYZ + REAL RICCI_RZZ + +#endif + +#ifdef CCODE + +/* Output variables */ +#undef RICCI_RXX +#define RICCI_RXX ricci_R11 +#undef RICCI_RXY +#define RICCI_RXY ricci_R12 +#undef RICCI_RXZ +#define RICCI_RXZ ricci_R13 +#undef RICCI_RYY +#define RICCI_RYY ricci_R22 +#undef RICCI_RYZ +#define RICCI_RYZ ricci_R23 +#undef RICCI_RZZ +#define RICCI_RZZ ricci_R33 + +/* Declare output variables */ +double RICCI_RXX; +double RICCI_RXY; +double RICCI_RXZ; +double RICCI_RYY; +double RICCI_RYZ; +double RICCI_RZZ; + +#endif + +#define RICCI_DECLARE + +#endif diff --git a/src/macro/RICCI_guts.h b/src/macro/RICCI_guts.h new file mode 100644 index 0000000..03f7321 --- /dev/null +++ b/src/macro/RICCI_guts.h @@ -0,0 +1,188 @@ +/*@@ + @header RICCI_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + Macro to calculate the components of the Ricci tensor. + + Requires: Second derivatives of physical metric + Christoffel symbols of first kind + Christoffel symbols of second kind + Upper physical metric + + Provides: Components of the physical Ricci tensor + + @enddesc +@@*/ + +#ifndef RICCI_GUTS +#define RICCI_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DDG_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR1_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR2_guts.h" + +#ifdef FCODE + + RICCI_RXX = (DXYDG_DXYDGXY+(-DXXDG_DXXDGYY-DYYDG_DYYDGXX)/2 - + & CHR1_XYY*CHR2_XXX +CHR1_XXY*CHR2_XXY-CHR1_YYY*CHR2_YXX + + & CHR1_YXY*CHR2_YXY - CHR1_ZYY*CHR2_ZXX + + & CHR1_ZXY*CHR2_ZXY)*UPPERMET_UYY + (-DXXDG_DXXDGYZ + DXYDG_DXYDGXZ + + & DXZDG_DXZDGXY - DYZDG_DYZDGXX - 2*(CHR1_YYZ*CHR2_YXX + + & CHR1_ZYZ*CHR2_ZXX) + 2*(-(CHR1_XYZ*CHR2_XXX) + CHR1_XXZ*CHR2_XXY + + & CHR1_YXZ*CHR2_YXY + CHR1_ZXZ*CHR2_ZXY))*UPPERMET_UYZ + (DXZDG_DXZDGXZ + & + (-DXXDG_DXXDGZZ - DZZDG_DZZDGXX)/2 - CHR1_XZZ*CHR2_XXX + + & CHR1_XXZ*CHR2_XXZ - CHR1_YZZ*CHR2_YXX + CHR1_YXZ*CHR2_YXZ - + & CHR1_ZZZ*CHR2_ZXX + CHR1_ZXZ*CHR2_ZXZ)*UPPERMET_UZZ + + RICCI_RXY = (-DXYDG_DXYDGXY + (DXXDG_DXXDGYY + DYYDG_DYYDGXX)/2 + + & CHR1_XYY*CHR2_XXX - CHR1_XXY*CHR2_XXY + CHR1_YYY*CHR2_YXX - + & CHR1_YXY*CHR2_YXY + CHR1_ZYY*CHR2_ZXX - + & CHR1_ZXY*CHR2_ZXY)*UPPERMET_UXY + ((DXXDG_DXXDGYZ - DXYDG_DXYDGXZ - + & DXZDG_DXZDGXY + DYZDG_DYZDGXX)/2 + CHR1_XYZ*CHR2_XXX - + & CHR1_XXZ*CHR2_XXY + CHR1_YYZ*CHR2_YXX - CHR1_YXZ*CHR2_YXY + + & CHR1_ZYZ*CHR2_ZXX - CHR1_ZXZ*CHR2_ZXY)*UPPERMET_UXZ + + & ((-DXYDG_DXYDGYZ + DXZDG_DXZDGYY + DYYDG_DYYDGXZ - DYZDG_DYZDGXY)/2 - + & CHR1_XYZ*CHR2_XXY + CHR1_XYY*CHR2_XXZ - CHR1_YYZ*CHR2_YXY + + & CHR1_YYY*CHR2_YXZ - CHR1_ZYZ*CHR2_ZXY + + & CHR1_ZYY*CHR2_ZXZ)*UPPERMET_UYZ + ((-DXYDG_DXYDGZZ + DXZDG_DXZDGYZ + + & DYZDG_DYZDGXZ - DZZDG_DZZDGXY)/2 - CHR1_XZZ*CHR2_XXY + + & CHR1_XYZ*CHR2_XXZ - CHR1_YZZ*CHR2_YXY + CHR1_YYZ*CHR2_YXZ - + & CHR1_ZZZ*CHR2_ZXY + CHR1_ZYZ*CHR2_ZXZ)*UPPERMET_UZZ ; + + RICCI_RXZ = ((DXXDG_DXXDGYZ - DXYDG_DXYDGXZ - DXZDG_DXZDGXY + + & DYZDG_DYZDGXX)/2 + CHR1_XYZ*CHR2_XXX - CHR1_XXZ*CHR2_XXY + + & CHR1_YYZ*CHR2_YXX - CHR1_YXZ*CHR2_YXY + CHR1_ZYZ*CHR2_ZXX - + & CHR1_ZXZ*CHR2_ZXY)*UPPERMET_UXY + (-DXZDG_DXZDGXZ + (DXXDG_DXXDGZZ + + & DZZDG_DZZDGXX)/2 + CHR1_XZZ*CHR2_XXX - CHR1_XXZ*CHR2_XXZ + + & CHR1_YZZ*CHR2_YXX - CHR1_YXZ*CHR2_YXZ + CHR1_ZZZ*CHR2_ZXX - + & CHR1_ZXZ*CHR2_ZXZ)*UPPERMET_UXZ + ((DXYDG_DXYDGYZ - DXZDG_DXZDGYY - + & DYYDG_DYYDGXZ + DYZDG_DYZDGXY)/2 + CHR1_XYZ*CHR2_XXY - + & CHR1_XYY*CHR2_XXZ + CHR1_YYZ*CHR2_YXY - CHR1_YYY*CHR2_YXZ + + & CHR1_ZYZ*CHR2_ZXY - CHR1_ZYY*CHR2_ZXZ)*UPPERMET_UYY + ((DXYDG_DXYDGZZ + & - DXZDG_DXZDGYZ - DYZDG_DYZDGXZ + DZZDG_DZZDGXY)/2 + CHR1_XZZ*CHR2_XXY + & - CHR1_XYZ*CHR2_XXZ + CHR1_YZZ*CHR2_YXY - CHR1_YYZ*CHR2_YXZ + + & CHR1_ZZZ*CHR2_ZXY - CHR1_ZYZ*CHR2_ZXZ)*UPPERMET_UYZ ; + + RICCI_RYY = (DXYDG_DXYDGXY + (-DXXDG_DXXDGYY - DYYDG_DYYDGXX)/2 - + & CHR1_XYY*CHR2_XXX + CHR1_XXY*CHR2_XXY - CHR1_YYY*CHR2_YXX + + & CHR1_YXY*CHR2_YXY - CHR1_ZYY*CHR2_ZXX + + & CHR1_ZXY*CHR2_ZXY)*UPPERMET_UXX + (DXYDG_DXYDGYZ - DXZDG_DXZDGYY - + & DYYDG_DYYDGXZ + DYZDG_DYZDGXY + 2*(CHR1_XYZ*CHR2_XXY - + & CHR1_XYY*CHR2_XXZ + CHR1_YYZ*CHR2_YXY + CHR1_ZYZ*CHR2_ZXY) - + & 2*(CHR1_YYY*CHR2_YXZ + CHR1_ZYY*CHR2_ZXZ)) *UPPERMET_UXZ + + & (DYZDG_DYZDGYZ + (-DYYDG_DYYDGZZ - DZZDG_DZZDGYY)/2 - + & CHR1_XZZ*CHR2_XYY + CHR1_XYZ*CHR2_XYZ - CHR1_YZZ*CHR2_YYY + + & CHR1_YYZ*CHR2_YYZ - CHR1_ZZZ*CHR2_ZYY + + & CHR1_ZYZ*CHR2_ZYZ)*UPPERMET_UZZ ; + + RICCI_RYZ = ((-DXXDG_DXXDGYZ + DXYDG_DXYDGXZ + DXZDG_DXZDGXY - + & DYZDG_DYZDGXX)/2 - CHR1_XYZ*CHR2_XXX + CHR1_XXZ*CHR2_XXY - + & CHR1_YYZ*CHR2_YXX + CHR1_YXZ*CHR2_YXY - CHR1_ZYZ*CHR2_ZXX + + & CHR1_ZXZ*CHR2_ZXY)*UPPERMET_UXX + ((-DXYDG_DXYDGYZ + DXZDG_DXZDGYY + + & DYYDG_DYYDGXZ - DYZDG_DYZDGXY)/2 - CHR1_XYZ*CHR2_XXY + + & CHR1_XYY*CHR2_XXZ - CHR1_YYZ*CHR2_YXY + CHR1_YYY*CHR2_YXZ - + & CHR1_ZYZ*CHR2_ZXY + CHR1_ZYY*CHR2_ZXZ)*UPPERMET_UXY + ((DXYDG_DXYDGZZ + & - DXZDG_DXZDGYZ - DYZDG_DYZDGXZ + DZZDG_DZZDGXY)/2 + CHR1_XZZ*CHR2_XXY + & - CHR1_XYZ*CHR2_XXZ + CHR1_YZZ*CHR2_YXY - CHR1_YYZ*CHR2_YXZ + + & CHR1_ZZZ*CHR2_ZXY - CHR1_ZYZ*CHR2_ZXZ)*UPPERMET_UXZ + (-DYZDG_DYZDGYZ + & + (DYYDG_DYYDGZZ + DZZDG_DZZDGYY)/2 + CHR1_XZZ*CHR2_XYY - + & CHR1_XYZ*CHR2_XYZ + CHR1_YZZ*CHR2_YYY - CHR1_YYZ*CHR2_YYZ + + & CHR1_ZZZ*CHR2_ZYY - CHR1_ZYZ*CHR2_ZYZ)*UPPERMET_UYZ ; + + RICCI_RZZ = (DXZDG_DXZDGXZ + (-DXXDG_DXXDGZZ - DZZDG_DZZDGXX)/2 - + & CHR1_XZZ*CHR2_XXX + CHR1_XXZ*CHR2_XXZ - CHR1_YZZ*CHR2_YXX + + & CHR1_YXZ*CHR2_YXZ - CHR1_ZZZ*CHR2_ZXX + + & CHR1_ZXZ*CHR2_ZXZ)*UPPERMET_UXX + (-DXYDG_DXYDGZZ + DXZDG_DXZDGYZ + + & DYZDG_DYZDGXZ - DZZDG_DZZDGXY - 2*(CHR1_YZZ*CHR2_YXY + + & CHR1_ZZZ*CHR2_ZXY) + 2*(-(CHR1_XZZ*CHR2_XXY) + CHR1_XYZ*CHR2_XXZ + + & CHR1_YYZ*CHR2_YXZ + CHR1_ZYZ*CHR2_ZXZ))*UPPERMET_UXY + (DYZDG_DYZDGYZ + & + (-DYYDG_DYYDGZZ - DZZDG_DZZDGYY)/2 - CHR1_XZZ*CHR2_XYY + + & CHR1_XYZ*CHR2_XYZ - CHR1_YZZ*CHR2_YYY + CHR1_YYZ*CHR2_YYZ - + & CHR1_ZZZ*CHR2_ZYY + CHR1_ZYZ*CHR2_ZYZ)*UPPERMET_UYY ; + +#endif + +#ifdef CCODE + + RICCI_RXX = (DXYDG_DXYDGXY+(-DXXDG_DXXDGYY-DYYDG_DYYDGXX)/2 - + CHR1_XYY*CHR2_XXX +CHR1_XXY*CHR2_XXY-CHR1_YYY*CHR2_YXX + + CHR1_YXY*CHR2_YXY - CHR1_ZYY*CHR2_ZXX + + CHR1_ZXY*CHR2_ZXY)*UPPERMET_UYY + (-DXXDG_DXXDGYZ + DXYDG_DXYDGXZ + + DXZDG_DXZDGXY - DYZDG_DYZDGXX - 2*(CHR1_YYZ*CHR2_YXX + + CHR1_ZYZ*CHR2_ZXX) + 2*(-(CHR1_XYZ*CHR2_XXX) + CHR1_XXZ*CHR2_XXY + + CHR1_YXZ*CHR2_YXY + CHR1_ZXZ*CHR2_ZXY))*UPPERMET_UYZ + (DXZDG_DXZDGXZ + + (-DXXDG_DXXDGZZ - DZZDG_DZZDGXX)/2 - CHR1_XZZ*CHR2_XXX + + CHR1_XXZ*CHR2_XXZ - CHR1_YZZ*CHR2_YXX + CHR1_YXZ*CHR2_YXZ - + CHR1_ZZZ*CHR2_ZXX + CHR1_ZXZ*CHR2_ZXZ)*UPPERMET_UZZ; + + RICCI_RXY = (-DXYDG_DXYDGXY + (DXXDG_DXXDGYY + DYYDG_DYYDGXX)/2 + + CHR1_XYY*CHR2_XXX - CHR1_XXY*CHR2_XXY + CHR1_YYY*CHR2_YXX - + CHR1_YXY*CHR2_YXY + CHR1_ZYY*CHR2_ZXX - + CHR1_ZXY*CHR2_ZXY)*UPPERMET_UXY + ((DXXDG_DXXDGYZ - DXYDG_DXYDGXZ - + DXZDG_DXZDGXY + DYZDG_DYZDGXX)/2 + CHR1_XYZ*CHR2_XXX - + CHR1_XXZ*CHR2_XXY + CHR1_YYZ*CHR2_YXX - CHR1_YXZ*CHR2_YXY + + CHR1_ZYZ*CHR2_ZXX - CHR1_ZXZ*CHR2_ZXY)*UPPERMET_UXZ + + ((-DXYDG_DXYDGYZ + DXZDG_DXZDGYY + DYYDG_DYYDGXZ - DYZDG_DYZDGXY)/2 - + CHR1_XYZ*CHR2_XXY + CHR1_XYY*CHR2_XXZ - CHR1_YYZ*CHR2_YXY + + CHR1_YYY*CHR2_YXZ - CHR1_ZYZ*CHR2_ZXY + + CHR1_ZYY*CHR2_ZXZ)*UPPERMET_UYZ + ((-DXYDG_DXYDGZZ + DXZDG_DXZDGYZ + + DYZDG_DYZDGXZ - DZZDG_DZZDGXY)/2 - CHR1_XZZ*CHR2_XXY + + CHR1_XYZ*CHR2_XXZ - CHR1_YZZ*CHR2_YXY + CHR1_YYZ*CHR2_YXZ - + CHR1_ZZZ*CHR2_ZXY + CHR1_ZYZ*CHR2_ZXZ)*UPPERMET_UZZ ; + + RICCI_RXZ = ((DXXDG_DXXDGYZ - DXYDG_DXYDGXZ - DXZDG_DXZDGXY + + DYZDG_DYZDGXX)/2 + CHR1_XYZ*CHR2_XXX - CHR1_XXZ*CHR2_XXY + + CHR1_YYZ*CHR2_YXX - CHR1_YXZ*CHR2_YXY + CHR1_ZYZ*CHR2_ZXX - + CHR1_ZXZ*CHR2_ZXY)*UPPERMET_UXY + (-DXZDG_DXZDGXZ + (DXXDG_DXXDGZZ + + DZZDG_DZZDGXX)/2 + CHR1_XZZ*CHR2_XXX - CHR1_XXZ*CHR2_XXZ + + CHR1_YZZ*CHR2_YXX - CHR1_YXZ*CHR2_YXZ + CHR1_ZZZ*CHR2_ZXX - + CHR1_ZXZ*CHR2_ZXZ)*UPPERMET_UXZ + ((DXYDG_DXYDGYZ - DXZDG_DXZDGYY - + DYYDG_DYYDGXZ + DYZDG_DYZDGXY)/2 + CHR1_XYZ*CHR2_XXY - + CHR1_XYY*CHR2_XXZ + CHR1_YYZ*CHR2_YXY - CHR1_YYY*CHR2_YXZ + + CHR1_ZYZ*CHR2_ZXY - CHR1_ZYY*CHR2_ZXZ)*UPPERMET_UYY + ((DXYDG_DXYDGZZ + - DXZDG_DXZDGYZ - DYZDG_DYZDGXZ + DZZDG_DZZDGXY)/2 + CHR1_XZZ*CHR2_XXY + - CHR1_XYZ*CHR2_XXZ + CHR1_YZZ*CHR2_YXY - CHR1_YYZ*CHR2_YXZ + + CHR1_ZZZ*CHR2_ZXY - CHR1_ZYZ*CHR2_ZXZ)*UPPERMET_UYZ ; + + RICCI_RYY = (DXYDG_DXYDGXY + (-DXXDG_DXXDGYY - DYYDG_DYYDGXX)/2 - + CHR1_XYY*CHR2_XXX + CHR1_XXY*CHR2_XXY - CHR1_YYY*CHR2_YXX + + CHR1_YXY*CHR2_YXY - CHR1_ZYY*CHR2_ZXX + + CHR1_ZXY*CHR2_ZXY)*UPPERMET_UXX + (DXYDG_DXYDGYZ - DXZDG_DXZDGYY - + DYYDG_DYYDGXZ + DYZDG_DYZDGXY + 2*(CHR1_XYZ*CHR2_XXY - + CHR1_XYY*CHR2_XXZ + CHR1_YYZ*CHR2_YXY + CHR1_ZYZ*CHR2_ZXY) - + 2*(CHR1_YYY*CHR2_YXZ + CHR1_ZYY*CHR2_ZXZ)) *UPPERMET_UXZ + + (DYZDG_DYZDGYZ + (-DYYDG_DYYDGZZ - DZZDG_DZZDGYY)/2 - + CHR1_XZZ*CHR2_XYY + CHR1_XYZ*CHR2_XYZ - CHR1_YZZ*CHR2_YYY + + CHR1_YYZ*CHR2_YYZ - CHR1_ZZZ*CHR2_ZYY + + CHR1_ZYZ*CHR2_ZYZ)*UPPERMET_UZZ ; + + RICCI_RYZ = ((-DXXDG_DXXDGYZ + DXYDG_DXYDGXZ + DXZDG_DXZDGXY - + DYZDG_DYZDGXX)/2 - CHR1_XYZ*CHR2_XXX + CHR1_XXZ*CHR2_XXY - + CHR1_YYZ*CHR2_YXX + CHR1_YXZ*CHR2_YXY - CHR1_ZYZ*CHR2_ZXX + + CHR1_ZXZ*CHR2_ZXY)*UPPERMET_UXX + ((-DXYDG_DXYDGYZ + DXZDG_DXZDGYY + + DYYDG_DYYDGXZ - DYZDG_DYZDGXY)/2 - CHR1_XYZ*CHR2_XXY + + CHR1_XYY*CHR2_XXZ - CHR1_YYZ*CHR2_YXY + CHR1_YYY*CHR2_YXZ - + CHR1_ZYZ*CHR2_ZXY + CHR1_ZYY*CHR2_ZXZ)*UPPERMET_UXY + ((DXYDG_DXYDGZZ + - DXZDG_DXZDGYZ - DYZDG_DYZDGXZ + DZZDG_DZZDGXY)/2 + CHR1_XZZ*CHR2_XXY + - CHR1_XYZ*CHR2_XXZ + CHR1_YZZ*CHR2_YXY - CHR1_YYZ*CHR2_YXZ + + CHR1_ZZZ*CHR2_ZXY - CHR1_ZYZ*CHR2_ZXZ)*UPPERMET_UXZ + (-DYZDG_DYZDGYZ + + (DYYDG_DYYDGZZ + DZZDG_DZZDGYY)/2 + CHR1_XZZ*CHR2_XYY - + CHR1_XYZ*CHR2_XYZ + CHR1_YZZ*CHR2_YYY - CHR1_YYZ*CHR2_YYZ + + CHR1_ZZZ*CHR2_ZYY - CHR1_ZYZ*CHR2_ZYZ)*UPPERMET_UYZ ; + + RICCI_RZZ = (DXZDG_DXZDGXZ + (-DXXDG_DXXDGZZ - DZZDG_DZZDGXX)/2 - + CHR1_XZZ*CHR2_XXX + CHR1_XXZ*CHR2_XXZ - CHR1_YZZ*CHR2_YXX + + CHR1_YXZ*CHR2_YXZ - CHR1_ZZZ*CHR2_ZXX + + CHR1_ZXZ*CHR2_ZXZ)*UPPERMET_UXX + (-DXYDG_DXYDGZZ + DXZDG_DXZDGYZ + + DYZDG_DYZDGXZ - DZZDG_DZZDGXY - 2*(CHR1_YZZ*CHR2_YXY + + CHR1_ZZZ*CHR2_ZXY) + 2*(-(CHR1_XZZ*CHR2_XXY) + CHR1_XYZ*CHR2_XXZ + + CHR1_YYZ*CHR2_YXZ + CHR1_ZYZ*CHR2_ZXZ))*UPPERMET_UXY + (DYZDG_DYZDGYZ + + (-DYYDG_DYYDGZZ - DZZDG_DZZDGYY)/2 - CHR1_XZZ*CHR2_XYY + + CHR1_XYZ*CHR2_XYZ - CHR1_YZZ*CHR2_YYY + CHR1_YYZ*CHR2_YYZ - + CHR1_ZZZ*CHR2_ZYY + CHR1_ZYZ*CHR2_ZYZ)*UPPERMET_UYY ; + +#endif + +#endif diff --git a/src/macro/RICCI_undefine.h b/src/macro/RICCI_undefine.h new file mode 100644 index 0000000..f05fa3f --- /dev/null +++ b/src/macro/RICCI_undefine.h @@ -0,0 +1,14 @@ +/*@@ + @header RICCI_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef RICCI_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DDG_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR1_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/CHR2_undefine.h" diff --git a/src/macro/STRESSENERGY_declare.h b/src/macro/STRESSENERGY_declare.h new file mode 100644 index 0000000..4bc2443 --- /dev/null +++ b/src/macro/STRESSENERGY_declare.h @@ -0,0 +1,68 @@ +/*@@ + @header STRESSENERGY_declare.h + @date Nov 98 + @author Gabrielle Allen + @desc + Macro to calculate the components of the stress energy + tensor + scheme + @enddesc +@@*/ + +#ifndef STRESSENERGY_DECLARE +#define STRESSENERGY_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DETG_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/TRT_declare.h" + +#undef STRESSENERGY_TTT +#define STRESSENERGY_TTT Ttt +#undef STRESSENERGY_TTX +#define STRESSENERGY_TTX Ttx +#undef STRESSENERGY_TTY +#define STRESSENERGY_TTY Tty +#undef STRESSENERGY_TTZ +#define STRESSENERGY_TTZ Ttz +#undef STRESSENERGY_TXX +#define STRESSENERGY_TXX Txx +#undef STRESSENERGY_TXY +#define STRESSENERGY_TXY Txy +#undef STRESSENERGY_TXZ +#define STRESSENERGY_TXZ Txz +#undef STRESSENERGY_TYY +#define STRESSENERGY_TYY Tyy +#undef STRESSENERGY_TYZ +#define STRESSENERGY_TYZ Tyz +#undef STRESSENERGY_TZZ +#define STRESSENERGY_TZZ Tzz + +/* Symmetries */ +#undef STRESSENERGY_TXT +#define STRESSENERGY_TXT STRESSENERGY_TTX +#undef STRESSENERGY_TYT +#define STRESSENERGY_TYT STRESSENERGY_TTY +#undef STRESSENERGY_TZT +#define STRESSENERGY_TZT STRESSENERGY_TTZ +#undef STRESSENERGY_TYX +#define STRESSENERGY_TYX STRESSENERGY_TXY +#undef STRESSENERGY_TZX +#define STRESSENERGY_TZX STRESSENERGY_TXZ +#undef STRESSENERGY_TZY +#define STRESSENERGY_TZY STRESSENERGY_TYZ + + REAL STRESSENERGY_TTT + REAL STRESSENERGY_TTX + REAL STRESSENERGY_TTY + REAL STRESSENERGY_TTZ + REAL STRESSENERGY_TXX + REAL STRESSENERGY_TXY + REAL STRESSENERGY_TXZ + REAL STRESSENERGY_TYY + REAL STRESSENERGY_TYZ + REAL STRESSENERGY_TZZ + + REAL uxx,uxy,uxz,uyy,uyz,uzz + REAL detg + +#endif diff --git a/src/macro/STRESSENERGY_guts.h b/src/macro/STRESSENERGY_guts.h new file mode 100644 index 0000000..cffa42f --- /dev/null +++ b/src/macro/STRESSENERGY_guts.h @@ -0,0 +1,40 @@ +/*@@ + @header STRESSENERGY_guts.h + @date Nov 98 + @author Gabrielle Allen + @desc + Macro to calculate the hydro quantities + scheme + @enddesc +@@*/ + +#ifndef STRESSENERGY_GUTS +#define STRESSENERGY_GUTS + +c These geometrical quantities are supplied for CalcTmunu + +#include "../../packages/CactusEinstein/Einstein/src/macro/DETG_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_guts.h" + + uxx = UPPERMET_UXX; uyy = UPPERMET_UYY; uzz = UPPERMET_UZZ + uxy = UPPERMET_UXY; uxz = UPPERMET_UXZ; uyz = UPPERMET_UYZ + + detg = DETG_DETCG + +c Zero the stress-energy tensor + + STRESSENERGY_TTT = 0.0D0; STRESSENERGY_TTX = 0.0D0 + STRESSENERGY_TTY = 0.0D0; STRESSENERGY_TTZ = 0.0D0 + STRESSENERGY_TXX = 0.0D0; STRESSENERGY_TXY = 0.0D0 + STRESSENERGY_TXZ = 0.0D0; STRESSENERGY_TYY = 0.0D0 + STRESSENERGY_TYZ = 0.0D0; STRESSENERGY_TZZ = 0.0D0 + + +c Calculate the stress-energy tensor +#include "./CalcTmunu.inc" + + +c Calculate the trace of the stress-energy tensor +#include "../../packages/CactusEinstein/Einstein/src/macro/TRT_guts.h" + +#endif diff --git a/src/macro/STRESSENERGY_undefine.h b/src/macro/STRESSENERGY_undefine.h new file mode 100644 index 0000000..808a5e0 --- /dev/null +++ b/src/macro/STRESSENERGY_undefine.h @@ -0,0 +1,17 @@ +/*@@ + @header STRESSENERGY_undefine.h + @date Nov 98 + @author Gabrielle Allen + @desc + Macro to calculate the components of the stress energy + tensor + scheme + @enddesc +@@*/ + +#undef STRESSENERGY_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DETG_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/TRT_undefine.h" + diff --git a/src/macro/TRKK_declare.h b/src/macro/TRKK_declare.h new file mode 100644 index 0000000..91efa4c --- /dev/null +++ b/src/macro/TRKK_declare.h @@ -0,0 +1,41 @@ +/*@@ + @header TRKK_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + + Declarations for macro to calculate the trace of + K_lj K^j_i + + @enddesc +@@*/ + +#ifndef TRKK_DECLARE +#define TRKK_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/KK_declare.h" + +#ifdef FCODE + +/* Output variables */ +#undef TRKK_TRKK +#define TRKK_TRKK trkk_trkk + +/* Declare output variables */ + REAL TRKK_TRKK + +#endif + +#ifdef CCODE + +/* Output variables */ +#undef TRKK_TRKK +#define TRKK_TRKK trkk_trkk + +/* Declare output variables */ +double TRKK_TRKK; + +#endif + +#endif diff --git a/src/macro/TRKK_guts.h b/src/macro/TRKK_guts.h new file mode 100644 index 0000000..2740fcb --- /dev/null +++ b/src/macro/TRKK_guts.h @@ -0,0 +1,35 @@ +/*@@ + @header TRKK_guts.h + @date Aug 98 + @author Gabrielle Allen + @desc + + Macro to calculate the trace of the K_lj K^j_i + + @enddesc +@@*/ + +#ifndef TRKK_GUTS +#define TRKK_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/KK_guts.h" + +#ifdef FCODE + + TRKK_TRKK = UPPERMET_UXX*KK_KKXX + UPPERMET_UYY*KK_KKYY + & + UPPERMET_UZZ*KK_KKZZ + 2D0*(UPPERMET_UXY*KK_KKXY + & + UPPERMET_UXZ*KK_KKXZ + UPPERMET_UYZ*KK_KKYZ) + +#endif + +#ifdef CCODE + + TRKK_TRKK = UPPERMET_UXX*KK_KKXX + UPPERMET_UYY*KK_KKYY + + UPPERMET_UZZ*KK_KKZZ + 2D0*(UPPERMET_UXY*KK_KKXY + + UPPERMET_UXZ*KK_KKXZ + UPPERMET_UYZ*KK_KKYZ); + +#endif + +#endif + diff --git a/src/macro/TRKK_undefine.h b/src/macro/TRKK_undefine.h new file mode 100644 index 0000000..5ec5ff5 --- /dev/null +++ b/src/macro/TRKK_undefine.h @@ -0,0 +1,15 @@ +/*@@ + @header TRKK_undefine.h + @date Aug 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef TRKK_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/KK_undefine.h" + + + diff --git a/src/macro/TRK_declare.h b/src/macro/TRK_declare.h new file mode 100644 index 0000000..693df7c --- /dev/null +++ b/src/macro/TRK_declare.h @@ -0,0 +1,68 @@ +/*@@ + @header TRK_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + + Declarations for macro to calculate the trace of the Extrinsic + curvature + + @enddesc +@@*/ + +#ifndef TRK_DECLARE +#define TRK_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_declare.h" + +#ifdef FCODE + +/* Input variables */ +#undef TRK_HXX +#define TRK_HXX hxx(i,j,k) +#undef TRK_HXY +#define TRK_HXY hxy(i,j,k) +#undef TRK_HXZ +#define TRK_HXZ hxz(i,j,k) +#undef TRK_HYY +#define TRK_HYY hyy(i,j,k) +#undef TRK_HYZ +#define TRK_HYZ hyz(i,j,k) +#undef TRK_HZZ +#define TRK_HZZ hzz(i,j,k) + +/* Output variables */ +#undef TRK_TRK +#define TRK_TRK trk_trK + +/* Declare output variables */ + REAL TRK_TRK + +#endif + +#ifdef CCODE + +/* Input variables */ +#undef TRK_HXX +#define TRK_HXX hxx[ijk] +#undef TRK_HXY +#define TRK_HXY hxy[ijk] +#undef TRK_HXZ +#define TRK_HXZ hxz[ijk] +#undef TRK_HYY +#define TRK_HYY hyy[ijk] +#undef TRK_HYZ +#define TRK_HYZ hyz[ijk] +#undef TRK_HZZ +#define TRK_HZZ hzz[ijk] + +/* Output variables */ +#undef TRK_TRK +#define TRK_TRK K + +/* Declare output variables */ +double TRK_TRK; + +#endif + +#endif diff --git a/src/macro/TRK_guts.h b/src/macro/TRK_guts.h new file mode 100644 index 0000000..3b94e94 --- /dev/null +++ b/src/macro/TRK_guts.h @@ -0,0 +1,42 @@ +/*@@ + @header TRK_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + + Macro to calculate the trace of the extrinsic curvature + + The macro is defined in terms of standard variables in + TRK_declare.h + + Requires: Upper physical metric + Lower extrainsic curvature + + Provides: Trace of the extrinsic curvature + + @enddesc +@@*/ + +#ifndef TRK_GUTS +#define TRK_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_guts.h" + +#ifdef FCODE + + TRK_TRK = UPPERMET_UXX*TRK_HXX + UPPERMET_UYY*TRK_HYY + & + UPPERMET_UZZ*TRK_HZZ + 2D0*(UPPERMET_UXY*TRK_HXY + & + UPPERMET_UXZ*TRK_HXZ + UPPERMET_UYZ*TRK_HYZ) + +#endif + +#ifdef CCODE + + TRK_TRK = UPPERMET_UXX*TRK_HXX + UPPERMET_UYY*TRK_HYY + + UPPERMET_UZZ*TRK_HZZ + 2*(UPPERMET_UXY*TRK_HXY + + UPPERMET_UXZ*TRK_HXZ + UPPERMET_UYZ*TRK_HYZ); + +#endif + +#endif + diff --git a/src/macro/TRK_undefine.h b/src/macro/TRK_undefine.h new file mode 100644 index 0000000..c4a7a9f --- /dev/null +++ b/src/macro/TRK_undefine.h @@ -0,0 +1,14 @@ +/*@@ + @header TRK_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef TRK_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_undefine.h" + + + diff --git a/src/macro/TRRICCI_declare.h b/src/macro/TRRICCI_declare.h new file mode 100644 index 0000000..44f96f2 --- /dev/null +++ b/src/macro/TRRICCI_declare.h @@ -0,0 +1,44 @@ +/*@@ + @header TRRICCI_guts.h + @date Aug 98 + @author Gabrielle Allen + @desc + + Declarations for macro to calculate the trace of 3-Ricci tensor + + @enddesc +@@*/ + +#ifndef TRRICCI_DECLARE +#define TRRICCI_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/RICCI_declare.h" + +#ifdef FCODE + +/* Input variables */ + +/* Output variables */ +#undef TRRICCI_TRRICCI +#define TRRICCI_TRRICCI trricci_trricci + +/* Declare output variables */ + REAL TRRICCI_TRRICCI + +#endif + +#ifdef CCODE + +/* Input variables */ + +/* Output variables */ +#undef TRRICCI_TRRICCI +#define TRRICCI_TRRICCI trricci_trricci + +/* Declare output variables */ +double TRRICCI_TRRICCI; + +#endif + +#endif diff --git a/src/macro/TRRICCI_guts.h b/src/macro/TRRICCI_guts.h new file mode 100644 index 0000000..88e78df --- /dev/null +++ b/src/macro/TRRICCI_guts.h @@ -0,0 +1,35 @@ +/*@@ + @header TRRICCI_guts.h + @date Aug 98 + @author Gabrielle Allen + @desc + + Macro to calculate the trace of the 3-Ricci + + @enddesc +@@*/ + +#ifndef TRRICCI_GUTS +#define TRRICCI_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/RICCI_guts.h" + +#ifdef FCODE + + TRRICCI_TRRICCI = UPPERMET_UXX*RICCI_RXX + UPPERMET_UYY*RICCI_RYY + & + UPPERMET_UZZ*RICCI_RZZ + 2D0*(UPPERMET_UXY*RICCI_RXY + & + UPPERMET_UXZ*RICCI_RXZ + UPPERMET_UYZ*RICCI_RYZ) + +#endif + +#ifdef CCODE + + TRRICCI_TRRICCI = UPPERMET_UXX*RICCI_RXX + UPPERMET_UYY*RICCI_RYY + + UPPERMET_UZZ*RICCI_RZZ + 2D0*(UPPERMET_UXY*RICCI_RXY + + UPPERMET_UXZ*RICCI_RXZ + UPPERMET_UYZ*RICCI_RYZ); + +#endif + +#endif + diff --git a/src/macro/TRRICCI_undefine.h b/src/macro/TRRICCI_undefine.h new file mode 100644 index 0000000..c049ad5 --- /dev/null +++ b/src/macro/TRRICCI_undefine.h @@ -0,0 +1,15 @@ +/*@@ + @header TRRICCI_undefine.h + @date August 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef TRRICCI_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/RICCI_undefine.h" + + + diff --git a/src/macro/TRT_declare.h b/src/macro/TRT_declare.h new file mode 100644 index 0000000..49463e3 --- /dev/null +++ b/src/macro/TRT_declare.h @@ -0,0 +1,114 @@ +/*@@ + @header TRT_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + + Declarations for macro to calculate the trace of the + (4-)stress-energy tensor + + @enddesc +@@*/ + +#ifndef TRT_DECLARE +#define TRT_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_declare.h" + +#ifdef FCODE + +/* Input variables */ +#undef TRT_TTT +#define TRT_TTT Ttt +#undef TRT_TTX +#define TRT_TTX Ttx +#undef TRT_TTY +#define TRT_TTY Tty +#undef TRT_TTZ +#define TRT_TTZ Ttz +#undef TRT_TXX +#define TRT_TXX Txx +#undef TRT_TXY +#define TRT_TXY Txy +#undef TRT_TXZ +#define TRT_TXZ Txz +#undef TRT_TYY +#define TRT_TYY Tyy +#undef TRT_TYZ +#define TRT_TYZ Tyz +#undef TRT_TZZ +#define TRT_TZZ Tzz +#undef TRT_ALP +#define TRT_ALP alp(i,j,k) +#undef TRT_BX +#define TRT_BX betax(i,j,k) +#undef TRT_BY +#define TRT_BY betay(i,j,k) +#undef TRT_BZ +#define TRT_BZ betaz(i,j,k) + +/* Temporary variables */ +#undef TRT_IALP2 +#define TRT_IALP2 trt_ialp2 + +/* Output variables */ +#undef TRT_TRT +#define TRT_TRT trt_trt + +/* Declare temporary variables */ + REAL TRT_IALP2 + +/* Declare output variables */ + REAL TRT_TRT + +#endif + +#ifdef CCODE + +/* Input variables */ +#undef TRT_TTT +#define TRT_TTT Ttt +#undef TRT_TTX +#define TRT_TTX Ttx +#undef TRT_TTY +#define TRT_TTY Tty +#undef TRT_TTZ +#define TRT_TTZ Ttz +#undef TRT_TXX +#define TRT_TXX Txx +#undef TRT_TXY +#define TRT_TXY Txy +#undef TRT_TXZ +#define TRT_TXZ Txz +#undef TRT_TYY +#define TRT_TYY Tyy +#undef TRT_TYZ +#define TRT_TYZ Tyz +#undef TRT_TZZ +#define TRT_TZZ Tzz +#undef TRT_ALP +#define TRT_ALP alp[ijk] +#undef TRT_BX +#define TRT_BX betax[ijk] +#undef TRT_BY +#define TRT_BY betay[ijk] +#undef TRT_BZ +#define TRT_BZ betaz[ijk] + +/* Temporary variables */ +#undef TRT_IALP2 +#define TRT_IALP2 trt_ialp2 + +/* Output variables */ +#undef TRT_TRT +#define TRT_TRT trt_trt + +/* Declare temporary variables */ + double TRT_IALP2; + +/* Declare output variables */ + double TRT_TR; + +#endif + +#endif diff --git a/src/macro/TRT_guts.h b/src/macro/TRT_guts.h new file mode 100644 index 0000000..efda382 --- /dev/null +++ b/src/macro/TRT_guts.h @@ -0,0 +1,62 @@ +/*@@ + @header TRT_guts.h + @date Jun 98 + @author Gabrielle Allen + @desc + + Macro to calculate the trace of the (4-)stress energy tensor + + @enddesc +@@*/ + +#ifndef TRT_GUTS +#define TRT_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_guts.h" + +#ifdef FCODE + + TRT_IALP2 = 1D0/TRT_ALP**2 + + TRT_TRT = -TRT_TTT*TRT_IALP2+TRT_TXX*UPPERMET_UXX+ + & TRT_TYY*UPPERMET_UYY+TRT_TZZ*UPPERMET_UZZ+2D0*( + & TRT_TXY*UPPERMET_UXY+TRT_TXZ*UPPERMET_UXZ+TRT_TYZ* + & UPPERMET_UYZ) + + + if (shift_active /= SHIFT_INACTIVE) then + + TRT_TRT = TRT_TRT - TRT_IALP2*(TRT_TXX*TRT_BX*TRT_BX + & + TRT_TYY*TRT_BY*TRT_BY + TRT_TZZ*TRT_BZ*TRT_BZ + & + 2D0*(TRT_TXY*TRT_BX*TRT_BY + TRT_TXZ*TRT_BX*TRT_BZ + & + TRT_TYZ*TRT_BY*TRT_BZ -TRT_TTX*TRT_BX -TRT_TTY*TRT_BY + & -TRT_TTZ*TRT_BZ)) + + endif + +#endif + +#ifdef CCODE + + TRT_IALP2 = 1D0/TRT_ALP**2; + + TRT_TRT = -TRT_TTT*TRT_IALP2+TRT_TXX*UPPERMET_UXX+ + TRT_TYY*UPPERMET_UYY+TRT_TZZ*UPPERMET_UZZ+2D0*( + TRT_TXY*UPPERMET_UXY+TRT_TXZ*UPPERMET_UXZ+TRT_TYZ* + UPPERMET_UYZ) + + + if (shift) + { + TRT_TRT = TRT_TRT - TRT_IALP2*(TRT_TXX*TRT_BX*TRT_BX + + TRT_TYY*TRT_BY*TRT_BY + TRT_TZZ*TRT_BZ*TRT_BZ + + 2D0*(TRT_TXY*TRT_BX*TRT_BY + TRT_TXZ*TRT_BX*TRT_BZ + + TRT_TYZ*TRT_BY*TRT_BZ -TRT_TTX*TRT_BX -TRT_TTY*TRT_BY + -TRT_TTZ*TRT_BZ)) + + } + +#endif + +#endif + diff --git a/src/macro/TRT_undefine.h b/src/macro/TRT_undefine.h new file mode 100644 index 0000000..df2510e --- /dev/null +++ b/src/macro/TRT_undefine.h @@ -0,0 +1,14 @@ +/*@@ + @header TRT_undefine.h + @date Jun 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef TRT_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_undefine.h" + + + diff --git a/src/macro/UPPERMET_declare.h b/src/macro/UPPERMET_declare.h new file mode 100644 index 0000000..4325939 --- /dev/null +++ b/src/macro/UPPERMET_declare.h @@ -0,0 +1,93 @@ +/*@@ + @header UPPERMET_declare.h + @date Jun 98 + @author Gabrielle Allen + @desc + Declarations for macro to calculate the components of the upper + physical metric. + @enddesc +@@*/ + +#ifndef UPPERMET_DECLARE +#define UPPERMET_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/DETG_declare.h" + +#ifdef FCODE + +/* Output variables */ +#undef UPPERMET_UXX +#define UPPERMET_UXX uppermet_uxx +#undef UPPERMET_UXY +#define UPPERMET_UXY uppermet_uxy +#undef UPPERMET_UXZ +#define UPPERMET_UXZ uppermet_uxz +#undef UPPERMET_UYY +#define UPPERMET_UYY uppermet_uyy +#undef UPPERMET_UYZ +#define UPPERMET_UYZ uppermet_uyz +#undef UPPERMET_UZZ +#define UPPERMET_UZZ uppermet_uzz + +/* Temporary variables */ + +#undef UPPERMET_PSI4DET +#define UPPERMET_PSI4DET uppermet_fdet + +/* Declare internal variables */ + REAL UPPERMET_PSI4DET + +/* Declare output variables */ + REAL UPPERMET_UXX, UPPERMET_UXY, UPPERMET_UXZ + REAL UPPERMET_UYY, UPPERMET_UYZ, UPPERMET_UZZ + +#endif + + + + +#ifdef CCODE + +/* Output variables */ +#undef UPPERMET_UXX +#define UPPERMET_UXX uppermet_uxx +#undef UPPERMET_UXY +#define UPPERMET_UXY uppermet_uxy +#undef UPPERMET_UXZ +#define UPPERMET_UXZ uppermet_uxz +#undef UPPERMET_UYY +#define UPPERMET_UYY uppermet_uyy +#undef UPPERMET_UYZ +#define UPPERMET_UYZ uppermet_uyz +#undef UPPERMET_UZZ +#define UPPERMET_UZZ uppermet_uzz + +/* Internal variables */ +#undef UPPERMET_PSI4DET +#define UPPERMET_PSI4DET uppermet_psi4detg + +/* Declare internal variables */ +double UPPERMET_PSI4DET; + +/* Declare output variables */ +double UPPERMET_UXX; +double UPPERMET_UXY; +double UPPERMET_UXZ; +double UPPERMET_UYY; +double UPPERMET_UYZ; +double UPPERMET_UZZ; + +#endif + +/* Symmetries */ +#undef UPPERMET_UYX +#define UPPERMET_UYX UPPERMET_UXY +#undef UPPERMET_UZX +#define UPPERMET_UZX UPPERMET_UXZ +#undef UPPERMET_UZY +#define UPPERMET_UZY UPPERMET_UYZ + +#endif + + + diff --git a/src/macro/UPPERMET_guts.h b/src/macro/UPPERMET_guts.h new file mode 100644 index 0000000..43ceb7f --- /dev/null +++ b/src/macro/UPPERMET_guts.h @@ -0,0 +1,42 @@ +/* +UPPERMET_guts.h + +Macro to calculate the components of the upper physical metric, +and as an offspin the determinant of the conformal(?) metric. + +Gabrielle Allen, 11th June 1998 + +*/ + +#ifndef UPPERMET_GUTS +#define UPPERMET_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DETG_guts.h" + +#ifdef FCODE + + UPPERMET_PSI4DET = DETG_PSI4*DETG_DETCG + + UPPERMET_UXX = DETG_TEMPXX/UPPERMET_PSI4DET + UPPERMET_UXY = DETG_TEMPXY/UPPERMET_PSI4DET + UPPERMET_UXZ = DETG_TEMPXZ/UPPERMET_PSI4DET + UPPERMET_UYY = DETG_TEMPYY/UPPERMET_PSI4DET + UPPERMET_UYZ = DETG_TEMPYZ/UPPERMET_PSI4DET + UPPERMET_UZZ = DETG_TEMPZZ/UPPERMET_PSI4DET + +#endif + +#ifdef CCODE + +UPPERMET_PSI4DET = DETG_PSI4*DETG_DETCG; + +UPPERMET_UXX = DETG_TEMPXX/UPPERMET_PSI4DET; +UPPERMET_UXY = DETG_TEMPXY/UPPERMET_PSI4DET; +UPPERMET_UXZ = DETG_TEMPXZ/UPPERMET_PSI4DET; +UPPERMET_UYY = DETG_TEMPYY/UPPERMET_PSI4DET; +UPPERMET_UYZ = DETG_TEMPYZ/UPPERMET_PSI4DET; +UPPERMET_UZZ = DETG_TEMPZZ/UPPERMET_PSI4DET; + +#endif + +#endif diff --git a/src/macro/UPPERMET_undefine.h b/src/macro/UPPERMET_undefine.h new file mode 100644 index 0000000..ee5e9fd --- /dev/null +++ b/src/macro/UPPERMET_undefine.h @@ -0,0 +1,11 @@ +/*@@ + @header UPPERMET_undefine.h + @date Jul 98 + @author Gabrielle Allen + @desc + @enddesc +@@*/ + +#undef UPPERMET_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/DETG_undefine.h" diff --git a/src/macro/WAVEG_declare.h b/src/macro/WAVEG_declare.h new file mode 100644 index 0000000..811aa40 --- /dev/null +++ b/src/macro/WAVEG_declare.h @@ -0,0 +1,56 @@ +/*@@ + @header WAVEG_declare.h + @date Nov 98 + @author Gabrielle Allen + @desc + Macro to calculate wave operator acting on the metric + + That is g^lm g_ij,lm + + @enddesc +@@*/ + +#ifndef WAVEG_DECLARE +#define WAVEG_DECLARE + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_declare.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DDG_declare.h" + +/* Output variables */ +#undef WAVEG_DDGXX +#define WAVEG_DDGXX waveg_ddgxx +#undef WAVEG_DDGXY +#define WAVEG_DDGXY waveg_ddgxy +#undef WAVEG_DDGXZ +#define WAVEG_DDGXZ waveg_ddgxz +#undef WAVEG_DDGYY +#define WAVEG_DDGYY waveg_ddgyy +#undef WAVEG_DDGYZ +#define WAVEG_DDGYZ waveg_ddgyz +#undef WAVEG_DDGZZ +#define WAVEG_DDGZZ waveg_ddgzz + +#ifdef FCODE + + REAL WAVEG_DDGXX + REAL WAVEG_DDGXY + REAL WAVEG_DDGXZ + REAL WAVEG_DDGYY + REAL WAVEG_DDGYZ + REAL WAVEG_DDGZZ + +#endif + +#ifdef CCODE + + double WAVEG_DDGXX + double WAVEG_DDGXY + double WAVEG_DDGXZ + double WAVEG_DDGYY + double WAVEG_DDGYZ + double WAVEG_DDGZZ + +#endif + +#endif + diff --git a/src/macro/WAVEG_guts.h b/src/macro/WAVEG_guts.h new file mode 100644 index 0000000..512daba --- /dev/null +++ b/src/macro/WAVEG_guts.h @@ -0,0 +1,113 @@ +/*@@ + @header WAVEG_guts.h + @date Jul 98 + @author Gabrielle Allen + @desc + Macro to calculate wave operator acting on the metric + + That is g^lm g_ij,lm + + @enddesc +@@*/ + +#ifndef WAVEG_GUTS +#define WAVEG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_guts.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DDG_guts.h" + +#ifdef FCODE + + WAVEG_DDGXX = UPPERMET_UXX*DDG_DXXDGXX + + & 2D0*UPPERMET_UXY*DDG_DXYDGXX + + & 2D0*UPPERMET_UXZ*DDG_DXZDGXX + + & UPPERMET_UYY*DDG_DYYDGXX + + & 2D0*UPPERMET_UYZ*DDG_DYZDGXX + + & UPPERMET_UZZ*DDG_DZZDGXX + + WAVEG_DDGXY = UPPERMET_UXX*DDG_DXXDGXY + + & 2D0*UPPERMET_UXY*DDG_DXYDGXY + + & 2D0*UPPERMET_UXZ*DDG_DXZDGXY + + & UPPERMET_UYY*DDG_DYYDGXY + + & 2D0*UPPERMET_UYZ*DDG_DYZDGXY + + & UPPERMET_UZZ*DDG_DZZDGXY + + WAVEG_DDGXZ = UPPERMET_UXX*DDG_DXXDGXZ + + & 2D0*UPPERMET_UXY*DDG_DXYDGXZ + + & 2D0*UPPERMET_UXZ*DDG_DXZDGXZ + + & UPPERMET_UYY*DDG_DYYDGXZ + + & 2D0*UPPERMET_UYZ*DDG_DYZDGXZ + + & UPPERMET_UZZ*DDG_DZZDGXZ + + WAVEG_DDGYY = UPPERMET_UXX*DDG_DXXDGYY + + & 2D0*UPPERMET_UXY*DDG_DXYDGYY + + & 2D0*UPPERMET_UXZ*DDG_DXZDGYY + + & UPPERMET_UYY*DDG_DYYDGYY + + & 2D0*UPPERMET_UYZ*DDG_DYZDGYY + + & UPPERMET_UZZ*DDG_DZZDGYY + + WAVEG_DDGYZ = UPPERMET_UXX*DDG_DXXDGYZ + + & 2D0*UPPERMET_UXY*DDG_DXYDGYZ + + & 2D0*UPPERMET_UXZ*DDG_DXZDGYZ + + & UPPERMET_UYY*DDG_DYYDGYZ + + & 2D0*UPPERMET_UYZ*DDG_DYZDGYZ + + & UPPERMET_UZZ*DDG_DZZDGYZ + + WAVEG_DDGZZ = UPPERMET_UXX*DDG_DXXDGZZ + + & 2D0*UPPERMET_UXY*DDG_DXYDGZZ + + & 2D0*UPPERMET_UXZ*DDG_DXZDGZZ + + & UPPERMET_UYY*DDG_DYYDGZZ + + & 2D0*UPPERMET_UYZ*DDG_DYZDGZZ + + & UPPERMET_UZZ*DDG_DZZDGZZ + +#endif + +#ifdef CCODE + + WAVEG_DDGXX = UPPERMET_UXX*DDG_DXXDGXX + + 2*UPPERMET_UXY*DDG_DXYDGXX + + 2*UPPERMET_UXZ*DDG_DXZDGXX + + UPPERMET_UYY*DDG_DYYDGXX + + 2*UPPERMET_UYZ*DDG_DYZDGXX + + UPPERMET_UZZ*DDG_DYYDGXX; + + WAVEG_DDGXY = UPPERMET_UXX*DDG_DXXDGXY + + 2*UPPERMET_UXY*DDG_DXYDGXY + + 2*UPPERMET_UXZ*DDG_DXZDGXY + + UPPERMET_UYY*DDG_DYYDGXY + + 2*UPPERMET_UYZ*DDG_DYZDGXY + + UPPERMET_UZZ*DDG_DYYDGXY; + + WAVEG_DDGXZ = UPPERMET_UXX*DDG_DXXDGXZ + + 2*UPPERMET_UXY*DDG_DXYDGXZ + + 2*UPPERMET_UXZ*DDG_DXZDGXZ + + UPPERMET_UYY*DDG_DYYDGXZ + + 2*UPPERMET_UYZ*DDG_DYZDGXZ + + UPPERMET_UZZ*DDG_DYYDGXZ; + + WAVEG_DDGYY = UPPERMET_UXX*DDG_DXXDGYY + + 2*UPPERMET_UXY*DDG_DXYDGYY + + 2*UPPERMET_UXZ*DDG_DXZDGYY + + UPPERMET_UYY*DDG_DYYDGYY + + 2*UPPERMET_UYZ*DDG_DYZDGYY + + UPPERMET_UZZ*DDG_DYYDGYY; + + WAVEG_DDGYZ = UPPERMET_UXX*DDG_DXXDGYZ + + 2*UPPERMET_UXY*DDG_DXYDGYZ + + 2*UPPERMET_UXZ*DDG_DXZDGYZ + + UPPERMET_UYY*DDG_DYYDGYZ + + 2*UPPERMET_UYZ*DDG_DYZDGYZ + + UPPERMET_UZZ*DDG_DYYDGYZ; + + WAVEG_DDGZZ = UPPERMET_UXX*DDG_DXXDGZZ + + 2*UPPERMET_UXY*DDG_DXYDGZZ + + 2*UPPERMET_UXZ*DDG_DXZDGZZ + + UPPERMET_UYY*DDG_DYYDGZZ + + 2*UPPERMET_UYZ*DDG_DYZDGZZ + + UPPERMET_UZZ*DDG_DYYDGZZ; + + +#endif + +#endif + diff --git a/src/macro/WAVEG_undefine.h b/src/macro/WAVEG_undefine.h new file mode 100644 index 0000000..ed2a4c0 --- /dev/null +++ b/src/macro/WAVEG_undefine.h @@ -0,0 +1,17 @@ +/*@@ + @header WAVEG_undefine.h + @date Nov 98 + @author Gabrielle Allen + @desc + Macro to calculate wave operator acting on the metric + + That is g^lm g_ij,lm + + @enddesc +@@*/ + +#undef WAVEG_GUTS + +#include "../../packages/CactusEinstein/Einstein/src/macro/UPPERMET_undefine.h" +#include "../../packages/CactusEinstein/Einstein/src/macro/DDG_undefine.h" + |