Skip to content

Commit e05f4a4

Browse files
TwoPuncturesX: This backports the TwoPunctures fix in
[here](https://bitbucket.org/einsteintoolkit/tickets/issues/2887/twopunctures-does-not-support-slow-start) to TwoPuncturesX
1 parent b3377c1 commit e05f4a4

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

TwoPuncturesX/param.ccl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ EXTENDS KEYWORD initial_lapse
1111
{
1212
"twopunctures-antisymmetric" :: "antisymmetric lapse for two puncture black holes, -1 <= alpha <= +1"
1313
"twopunctures-averaged" :: "averaged lapse for two puncture black holes, 0 <= alpha <= +1"
14-
"psi^n" :: "Based on the initial conformal factor"
14+
"psi^n" :: "Based on the initial uncorrected conformal factor psi, not psi+u"
15+
"W" :: "Evolved variable W=(psi+u)^{-2}, needed for slow-start lapse; see arXiv:2404.01137, Phys. Rev. D 110, 064045 (2024)"
1516
"brownsville" :: "See Phys. Rev. D 74, 041501 (2006)"
1617
}
1718

TwoPuncturesX/src/TwoPunctures.cc

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ void TwoPuncturesX_TwoPunctures(CCTK_ARGUMENTS) {
181181
enum GRID_SETUP_METHOD { GSM_Taylor_expansion, GSM_evaluation };
182182
enum GRID_SETUP_METHOD gsm;
183183

184-
int antisymmetric_lapse, averaged_lapse, pmn_lapse, brownsville_lapse;
184+
int antisymmetric_lapse, averaged_lapse, pmn_lapse, W_lapse, brownsville_lapse;
185185

186186
int const nvar = 1, n1 = npoints_A, n2 = npoints_B, n3 = npoints_phi;
187187

@@ -398,9 +398,16 @@ void TwoPuncturesX_TwoPunctures(CCTK_ARGUMENTS) {
398398
CCTK_EQUALS(initial_lapse, "twopunctures-antisymmetric");
399399
averaged_lapse = CCTK_EQUALS(initial_lapse, "twopunctures-averaged");
400400
pmn_lapse = CCTK_EQUALS(initial_lapse, "psi^n");
401-
if (pmn_lapse)
402-
CCTK_VINFO("Setting initial lapse to psi^%f profile.",
401+
if (pmn_lapse) {
402+
CCTK_VInfo(CCTK_THORNSTRING, "Setting initial lapse to psi^%f profile,",
403403
(double)initial_lapse_psi_exponent);
404+
CCTK_VInfo(CCTK_THORNSTRING, "where psi is the *uncorrected* conformal");
405+
CCTK_VInfo(CCTK_THORNSTRING, "factor, not psi+u!");
406+
}
407+
W_lapse = CCTK_EQUALS(initial_lapse, "W");
408+
if (W_lapse)
409+
CCTK_VInfo(CCTK_THORNSTRING,
410+
"Setting initial lapse to W=(psi+u)^{-2}, needed for slow-start lapse.");
404411
brownsville_lapse = CCTK_EQUALS(initial_lapse, "brownsville");
405412
if (brownsville_lapse)
406413
CCTK_VINFO("Setting initial lapse to a Brownsville-style profile "
@@ -573,6 +580,13 @@ void TwoPuncturesX_TwoPunctures(CCTK_ARGUMENTS) {
573580
gyz[ind] = 0;
574581
gzz[ind] = pow(psi1 / static_psi, 4);
575582

583+
// W=(psi+u)^{-2}, needed for slow-start lapse; see arXiv:2404.01137, Phys. Rev. D 110, 064045 (2024)
584+
if(W_lapse) {
585+
// ADM gij = e^{4 phi} * gtildeij
586+
// --> psi1 / static_psi = e^phi = psi
587+
alp[ind] = 1.0 / pow (psi1 / static_psi, 2); // <- alpha = W = psi^{-2}
588+
}
589+
576590
kxx[ind] = Aij[0][0] / pow(psi1, 2);
577591
kxy[ind] = Aij[0][1] / pow(psi1, 2);
578592
kxz[ind] = Aij[0][2] / pow(psi1, 2);

0 commit comments

Comments
 (0)