diff options
author | knarf <knarf@b2a53a04-0f4f-0410-87ed-f9f25ced00cf> | 2004-11-17 08:54:32 +0000 |
---|---|---|
committer | knarf <knarf@b2a53a04-0f4f-0410-87ed-f9f25ced00cf> | 2004-11-17 08:54:32 +0000 |
commit | 05f3af0337f3a4abfeb32f004ef3d9be5a7bf2dd (patch) | |
tree | 82ca84952a9ef78bcf95c2c54d26a990a40f17e4 /src/FuncAndJacobian.c | |
parent | 9624179def3e1e7b1d9a771b0d236d8bf9e4a53f (diff) |
implement initial guess, matter rescaling, debug output files
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinInitialData/TwoPunctures/trunk@31 b2a53a04-0f4f-0410-87ed-f9f25ced00cf
Diffstat (limited to 'src/FuncAndJacobian.c')
-rw-r--r-- | src/FuncAndJacobian.c | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/src/FuncAndJacobian.c b/src/FuncAndJacobian.c index e105883..87226af 100644 --- a/src/FuncAndJacobian.c +++ b/src/FuncAndJacobian.c @@ -218,7 +218,7 @@ F_of_v (CCTK_POINTER_TO_CONST cctkGH, for (j = 0; j < n2; j++) for (k = 0; k < n3; k++) { - i3D = i*n2*n3 + j*n3 + k; + i3D = Index(0,i,j,k,1,n1,n2,n3); al = Pih * (2 * i + 1) / n1; A = -cos (al); @@ -260,10 +260,15 @@ F_of_v (CCTK_POINTER_TO_CONST cctkGH, for (i = 0; i < n1; i++) for (j = 0; j < n2; j++) for (k = 0; k < n3; k++) - sources[i*n2*n3 + j*n3 + k]=0.0; + sources[Index(0,i,j,k,1,n1,n2,n3)]=0.0; Derivatives_AB3 (nvar, n1, n2, n3, v); - + FILE *debugfile; + double psi, psi2, psi4, psi7, r_plus, r_minus; + if (do_residuum_debug_output) + { + debugfile=fopen("res.dat", "w"); + } for (i = 0; i < n1; i++) { for (j = 0; j < n2; j++) @@ -301,7 +306,7 @@ F_of_v (CCTK_POINTER_TO_CONST cctkGH, // Calculation of (y,z) and // (U, U_x, U_y, U_z, U_xx, U_xy, U_xz, U_yy, U_yz, U_zz) rx3_To_xyz (nvar, x, r, phi, &y, &z, U); - NonLinEquations (sources[i*n2*n3 + j*n3 + k], + NonLinEquations (sources[Index(0,i,j,k,1,n1,n2,n3)], A, B, X, R, x, r, phi, y, z, U, values); for (ivar = 0; ivar < nvar; ivar++) { @@ -319,8 +324,28 @@ F_of_v (CCTK_POINTER_TO_CONST cctkGH, u.d33[indx] = U.d33[ivar]; // U_zz } } + if (do_residuum_debug_output) + { + r_plus = sqrt ((x - par_b) * (x - par_b) + y * y + z * z); + r_minus = sqrt ((x + par_b) * (x + par_b) + y * y + z * z); + psi = + 1.+ 0.5 * par_m_plus / r_plus + 0.5 * par_m_minus / r_minus + U.d0[0]; + psi2 = psi * psi; + psi4 = psi2 * psi2; + psi7 = psi * psi2 * psi4; + fprintf(debugfile, "%.8g %.8g %.8g\n", x, y, + U.d11[0] + + U.d22[0] + + U.d33[0] + + 2.0 * Pi / psi2/psi * sources[Index(0,i,j,k,1,n1,n2,n3)] + ); + } } } + if (do_residuum_debug_output) + { + fclose(debugfile); + } free(sources); free_dvector (values, 0, nvar - 1); free_derivs (&U, nvar); |