diff options
author | schnetter <schnetter@b2a53a04-0f4f-0410-87ed-f9f25ced00cf> | 2004-05-18 15:30:57 +0000 |
---|---|---|
committer | schnetter <schnetter@b2a53a04-0f4f-0410-87ed-f9f25ced00cf> | 2004-05-18 15:30:57 +0000 |
commit | 73a24baa63d3294d972cace0e7d66e7b4a25ddf5 (patch) | |
tree | 2bde81e600b682a1bdb614481207ddc029c572e3 /src/TwoPunctures.h | |
parent | 79342f353bbf602b9b656da9497ebfcfa2f9b07a (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.h | 95 |
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 + */ |