aboutsummaryrefslogtreecommitdiff
path: root/src/TwoPunctures.h
diff options
context:
space:
mode:
authorschnetter <schnetter@b2a53a04-0f4f-0410-87ed-f9f25ced00cf>2004-05-18 15:30:57 +0000
committerschnetter <schnetter@b2a53a04-0f4f-0410-87ed-f9f25ced00cf>2004-05-18 15:30:57 +0000
commit73a24baa63d3294d972cace0e7d66e7b4a25ddf5 (patch)
tree2bde81e600b682a1bdb614481207ddc029c572e3 /src/TwoPunctures.h
parent79342f353bbf602b9b656da9497ebfcfa2f9b07a (diff)
Import initial version of Marcus Ansorg's code, converted into a
Cactus thorn. git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinInitialData/TwoPunctures/trunk@2 b2a53a04-0f4f-0410-87ed-f9f25ced00cf
Diffstat (limited to 'src/TwoPunctures.h')
-rw-r--r--src/TwoPunctures.h95
1 files changed, 95 insertions, 0 deletions
diff --git a/src/TwoPunctures.h b/src/TwoPunctures.h
new file mode 100644
index 0000000..ab0d841
--- /dev/null
+++ b/src/TwoPunctures.h
@@ -0,0 +1,95 @@
+// TwoPunctures: File "TwoPunctures.h"
+
+#define StencilSize 19
+#define N_PlaneRelax 1
+#define NRELAX 200
+#define Step_Relax 1
+
+typedef struct DERIVS
+{
+ double *d0, *d1, *d2, *d3, *d11, *d12, *d13, *d22, *d23, *d33;
+} derivs;
+
+/*
+Files of "TwoPunctures":
+ TwoPunctures.c
+ FuncAndJacobian.c
+ CoordTransf.c
+ Equations.c
+ Newton.c
+ utilities.c (see utilities.h)
+**************************
+*/
+
+// Routines in "TwoPunctures.c"
+double TestSolution (double A, double B, double X, double R, double phi);
+void TestVector_w (double *par, int nvar, int n1, int n2, int n3, double *w);
+
+// Routines in "FuncAndJacobian.c"
+int Index (int ivar, int i, int j, int k, int nvar, int n1, int n2, int n3);
+void allocate_derivs (derivs * v, int n);
+void free_derivs (derivs * v, int n);
+void Derivatives_AB3 (int nvar, int n1, int n2, int n3, derivs v);
+void F_of_v (int nvar, int n1, int n2, int n3, derivs v,
+ double *F, derivs u);
+void J_times_dv (int nvar, int n1, int n2, int n3, derivs dv,
+ double *Jdv, derivs u);
+void JFD_times_dv (int i, int j, int k, int nvar, int n1,
+ int n2, int n3, derivs dv, derivs u, double *values);
+void SetMatrix_JFD (int nvar, int n1, int n2, int n3,
+ derivs u, int *ncols, int **cols, double **Matrix);
+double PunctEvalAtArbitPosition (double *v, double A, double B, double phi,
+ int n1, int n2, int n3);
+void calculate_derivs (int i, int j, int k, int ivar, int nvar, int n1,
+ int n2, int n3, derivs v, derivs vv);
+double interpol (double a, double b, double c, derivs v);
+double PunctIntPolAtArbitPosition (int ivar, int nvar, int n1,
+ int n2, int n3, derivs v, double x,
+ double y, double z);
+
+// Routines in "CoordTransf.c"
+void AB_To_XR (int nvar, double A, double B, double *X,
+ double *R, derivs U);
+void C_To_c (int nvar, double X, double R, double *x,
+ double *r, derivs U);
+void rx3_To_xyz (int nvar, double x, double r, double phi, double *y,
+ double *z, derivs U);
+
+// Routines in "Equations.c"
+double BY_KKofxyz (double x, double y, double z);
+void BY_Aijofxyz (double x, double y, double z, double Aij[3][3]);
+void NonLinEquations (double A, double B, double X, double R,
+ double x, double r, double phi,
+ double y, double z, derivs U, double *values);
+void LinEquations (double A, double B, double X, double R,
+ double x, double r, double phi,
+ double y, double z, derivs dU, derivs U, double *values);
+
+// Routines in "Newton.c"
+void resid (double *res, int ntotal, double *dv, double *rhs,
+ int *ncols, int **cols, double **JFD);
+void LineRelax_al (double *dv, int j, int k, int nvar, int n1, int n2, int n3,
+ double *rhs, int *ncols, int **cols, double **JFD);
+void LineRelax_be (double *dv, int i, int k, int nvar, int n1, int n2, int n3,
+ double *rhs, int *ncols, int **cols, double **JFD);
+void relax (double *dv, int nvar, int n1, int n2, int n3, double *rhs,
+ int *ncols, int **cols, double **JFD);
+void TestRelax (int nvar, int n1, int n2, int n3, derivs v,
+ double *dv);
+int bicgstab (int nvar, int n1, int n2, int n3, derivs v,
+ derivs dv, int output, int itmax, double tol, double *normres);
+void Newton (int nvar, int n1, int n2, int n3, derivs v,
+ double tol, int itmax);
+
+
+/*
+ 27: -1.325691774825335e-03
+ 37: -1.325691778944117e-03
+ 47: -1.325691778942711e-03
+
+ 17: -1.510625972641537e-03
+ 21: -1.511443006977708e-03
+ 27: -1.511440785153687e-03
+ 37: -1.511440809549005e-03
+ 39: -1.511440809597588e-03
+ */