diff options
author | knarf <knarf@b2a53a04-0f4f-0410-87ed-f9f25ced00cf> | 2006-08-09 10:56:41 +0000 |
---|---|---|
committer | knarf <knarf@b2a53a04-0f4f-0410-87ed-f9f25ced00cf> | 2006-08-09 10:56:41 +0000 |
commit | c43f5da3419ef01e09ee6b4d1599a1a7006d4b3a (patch) | |
tree | f6c942163bde2e9a7337e0aa303bfc3aeb97500e /src | |
parent | 1e0c86eaad4427d0b760868890184c54f5c4de17 (diff) |
- add a parameter to choose when to schedule the ID
- add a parameter for multiplying an already computed lapse to the
one computed here
This does not change the default behaviour.
However, the testsuite fails - but it also failed before this change in
the same way. Does anybody know anything about this?
-> It fails at exactly one point in the 1D-slices, but only in y and z
directions
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinInitialData/TwoPunctures/trunk@59 b2a53a04-0f4f-0410-87ed-f9f25ced00cf
Diffstat (limited to 'src')
-rw-r--r-- | src/TwoPunctures.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/TwoPunctures.c b/src/TwoPunctures.c index cfde44d..0700ca3 100644 --- a/src/TwoPunctures.c +++ b/src/TwoPunctures.c @@ -190,22 +190,23 @@ TwoPunctures (CCTK_ARGUMENTS) static CCTK_REAL *F = NULL; static derivs u, v; CCTK_REAL admMass; + CCTK_REAL old_alp; if (! F) { /* Solve only when called for the first time */ F = dvector (0, ntotal - 1); allocate_derivs (&u, ntotal); allocate_derivs (&v, ntotal); - + if (use_sources) { - CCTK_INFO ("Solving puncture equation for BH-NS system"); + CCTK_INFO ("Solving puncture equation for BH-NS/NS-NS system"); } else { CCTK_INFO ("Solving puncture equation for BH-BH system"); } CCTK_VInfo (CCTK_THORNSTRING, "The two puncture masses are %g and %g", (double) par_m_minus, (double) par_m_plus); - + /* initialise to 0 */ for (j = 0; j < ntotal; j++) { @@ -289,13 +290,13 @@ TwoPunctures (CCTK_ARGUMENTS) CCTK_VInfo(CCTK_THORNSTRING, "%3d%% done", percent10*10); } - const int ind = CCTK_GFINDEX3D (cctkGH, i, j, k); - + const int ind = CCTK_GFINDEX3D (cctkGH, i, j, k); + CCTK_REAL r_plus = sqrt(pow(x[ind] - par_b, 2) + pow(y[ind], 2) + pow(z[ind], 2)); CCTK_REAL r_minus = sqrt(pow(x[ind] + par_b, 2) + pow(y[ind], 2) + pow(z[ind], 2)); - + CCTK_REAL U; switch (gsm) { @@ -338,6 +339,9 @@ TwoPunctures (CCTK_ARGUMENTS) CCTK_REAL Aij[3][3]; BY_Aijofxyz (x[ind], y[ind], z[ind], Aij); + if (multiply_old_lapse) + old_alp = alp[ind]; + if ((*conformal_state > 0) || (pmn_lapse)) { CCTK_REAL xp, yp, zp, rp, ir; @@ -450,11 +454,6 @@ TwoPunctures (CCTK_ARGUMENTS) kzz[ind] = Aij[2][2] / pow(psi1, 2); if (antisymmetric_lapse || averaged_lapse) { -/* const CCTK_REAL alp1 = ((1.0 - 0.5 * par_m_plus / r_plus) */ -/* / (1.0 + 0.5 * par_m_plus / r_plus)); */ -/* const CCTK_REAL alp2 = ((1.0 - 0.5 * par_m_minus / r_minus) */ -/* / (1.0 + 0.5 * par_m_minus / r_minus)); */ -/* alp[ind] = alp1 * alp2; */ alp[ind] = ((1.0 -0.5*par_m_plus/r_plus -0.5*par_m_minus/r_minus) /(1.0 +0.5*par_m_plus/r_plus +0.5*par_m_minus/r_minus)); @@ -474,6 +473,8 @@ TwoPunctures (CCTK_ARGUMENTS) alp[ind] = 0.5 * (1.0 + alp[ind]); } } + if (multiply_old_lapse) + alp[ind] *= old_alp; } } } |