aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorknarf <knarf@b2a53a04-0f4f-0410-87ed-f9f25ced00cf>2006-08-09 10:56:41 +0000
committerknarf <knarf@b2a53a04-0f4f-0410-87ed-f9f25ced00cf>2006-08-09 10:56:41 +0000
commitc43f5da3419ef01e09ee6b4d1599a1a7006d4b3a (patch)
treef6c942163bde2e9a7337e0aa303bfc3aeb97500e /src
parent1e0c86eaad4427d0b760868890184c54f5c4de17 (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.c23
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;
}
}
}