TwoPunctures_BBHSF

Cheng-Hsin Cheng, Giuseppe Ficarra, Helvi Witek

January 11, 2023

Abstract

We extend the TwoPunctures thorn to generate initial data for black hole binaries taking into account back-reaction from a massive, complex scalar field minimally-coupled to gravity.

1 Scalar field source terms

We consider a complex scalar field \(\Phi \) of mass \(m_S\) minimally coupled to gravity, which is described by the action \begin {equation} S = \int \mathrm {d}^4 x \sqrt {-g} \bracket { \frac {^{(4)}R}{16\pi } - \frac {1}{2} g^{\mu \nu } \nabla _{(\mu } \Phi ^* \nabla _{\nu )} \Phi - \frac {\mu _S^2}{2} \Phi ^* \Phi }. \end {equation} Here, \(\Phi \) is the scalar field and \(\Phi ^*\) its complex conjugate, \(g_{\mu \nu }\) is the spacetime metric with \(g=\det (g_{\mu \nu })\), \(\nabla _\mu \) is the covariant derivative, and \(^{(4)}R\) is the Ricci scalar in four dimensions. The mass parameter \(\mu _S\) of the scalar field is related to \(m_S\) through \(m_S = \mu _S\hbar \). This action leads to the equations of motion \begin {align} & G_{\mu \nu } = 8\pi T_{\mu \nu }, \\ & (\Box -\mu _S^2) \Phi = 0, \end {align}

where the stress-energy tensor is given by \begin {equation} T_{\mu \nu } = \nabla _{(\mu } \Phi ^* \nabla _{\nu )} \Phi - \frac {1}{2} g_{\mu \nu } \Big [ g^{\alpha \beta } \nabla _{(\alpha } \Phi ^* \nabla _{\beta )} \Phi + \mu _S^2 \Phi ^*\Phi \Big ], \end {equation} and the d’Alembertian is \begin {equation} \Box = \frac {1}{\sqrt {-g}} \partial _\mu ( \sqrt {-g} g^{\mu \nu } \partial _\nu ). \end {equation}

Under the 3+1 formalism, the scalar field contributes to the spacetime through the energy density \(\rho \), energy-momentum flux \(j_i\), and the purely spatial stress tensor \(S_{ij}\), given respectively by \begin {align} \rho = n^\mu n^\nu T_{\mu \nu } &= 2 \Pi ^* \Pi + \frac {\mu _S^2}{2} \Phi ^* \Phi + \frac {1}{2} D_k\Phi ^* D^k \Phi , \\ j_i = -\gamma _i^\mu n^\nu T_{\mu \nu } &= \Pi ^* D_i\Phi + \Pi D_i\Phi ^*, \\ S_{ij} = \gamma _i ^\mu \gamma _j^\nu T_{\mu \nu } &= D_{(i}\Phi ^* D_{j)}\Phi + \frac {1}{2} \gamma _{ij} (4\Pi ^* \Pi - \mu _S^2 \Phi ^* \Phi - D^k\Phi ^* D_k\Phi ), \end {align}

where \(D_i\) is the spatial covariant derivative with respect to the 3-metric \(\gamma _{ij}\). Here, the scalar field momentum \(\Pi \) is defined using the Lie derivative along the normal vector \(n^\mu \) as \begin {equation} \Pi \equiv - \frac {1}{2} \mathcal {L}_n \Phi . \end {equation} For us to use the Bowen-York solution to the momentum constraint equation as in TwoPunctures, we need to specify the scalar field such that the momentum constraint reduces to its vacuum counterpart. To this end, we limit ourselves to initial configurations of the scalar field for which the scalar field momentum vanishes: \(\Pi (t=0)=0\). This requirement can be satisfied under the condition that the scalar field is time-independent, along with a shift vector that vanishesat the initial time.

2 Constraint equations in the puncture method

To construct the initial data, we solve the Hamiltonian constraint equation describing black holes with linear momenta \(\vec {P}_a\) and spins \(\vec {S}_a\).

Let us perform a conformal decomposition of the physical metric as \(\gamma _{ij}=\psi ^4\bar {\gamma }_{ij}\), where \(\psi \) is the conformal factor and \(\bar {\gamma }_{ij}\) is the conformal metric. Then, the Hamiltonian constraint equation takes the form \begin {equation} \bar {D}^2 \psi - \frac {1}{8} \psi \bar {R} + \frac {1}{8} \psi ^5 (K_{ij}K^{ij} - K^2 ) + 2\pi \psi ^5 \rho = 0, \end {equation} where \(\bar {D}^2\) is the conformal Laplacian operator, \(\bar {R}\) is the conformal Ricci scalar, and \(K_{ij}\) is the extrinsic curvature. Further decomposing \(K_{ij}\) into its trace \(K\) and trace-free parts \(A_{ij}\), and performing a conformal decomposition as \begin {equation} A_{ij} = \psi ^{-2}\bar {A}_{ij}, \quad \quad A^{ij} = \psi ^{-10}\bar {A}^{ij}, \end {equation} we obtain the general form of the Hamiltonian constraint in the York-Lichnerowicz approach \begin {equation} \bar {D}^2 \psi - \frac {1}{8} \psi \bar {R} + \frac {1}{8} \psi ^{-7} \bar {A}_{ij}\bar {A}^{ij} - \frac {1}{12} \psi ^5 K^2 + 2\pi \psi ^5 \rho = 0. \end {equation}

Now let us introduce a series of assumptions for the puncture method [2]. Assuming asymptotic flatness, the conformal factor has the behavior \(\psi \simeq 1 + \psi _{\rm BL}\) at large \(r\), where the \(\psi _{\rm BL}\) is the Brill-Lindquist solution \begin {equation} \psi _{\rm BL} \equiv \sum _{a=1}^2 \frac {m_a}{2|\vec {r} - \vec {r}_a|}, \end {equation} with \(m_a\) and \(\vec {r}_a\) denoting the bare mass and location of the \(a\)-th black hole. Now, the main idea behind the puncture method is to separate the singular piece of the conformal factor by writing \( \psi = \psi _{\rm BL} + u \), where \(u\) is the function to be solved. It follows that the flat Laplacian of \(\psi \) reduces to \(\bar {D}^2 u\) in the punctured domain \(\mathbb {R}^3\setminus \{\vec {r}_i\}\). To satisfy the vacuum momentum constraint equations, we write the conformal tracefree extrinsic curvature \(\bar {A}_{ij}\) as a superposition \begin {equation} \bar {A}^{ij} = \sum _{a=1}^2 \bar {A}_a^{ij} \end {equation} of Bowen-York solutions for each puncture \begin {equation} \bar {A}_a^{ij} = \frac {3}{2r^2} \Big [ n^i P_a^j + n^j P_a^i + n_k P_a^k (n^i n^j - \delta ^{ij}) \Big ] - \frac {3}{r^3} (\epsilon ^{ilk} n^j + \epsilon ^{jlk} n^i) n_l {(S_a)}_k. \end {equation} Finally, assuming conformal flatness (\(\bar {\gamma }_{ij} = \eta _{ij}\)) and maximal slicing condition (\(K=0\)), the Hamiltonian constraint equation reduces to \begin {equation} \Delta u + \frac {1}{8} (\psi _{\rm BL} + u)^{-7} \bar {A}_{ij} \bar {A}^{ij} + 2\pi (\psi _{\rm BL} + u)^5 \rho = 0, \label {scalar_TwoPunctures_BBHSF_eq:ham_twopunctures} \end {equation} where \(\Delta =\partial _k \partial ^k\) is the flat Laplacian operator. The first two terms above constitute the vacuum equations solved in the standard TwoPunctures thorn. The third term, on the other hand, contains the contribution from the matter energy density \(\rho \). Whereas in TwoPunctures the energy density can be rescaled 1 according to \(\rho = \psi ^8 \bar {\rho }\), here, the massive scalar field contributes two terms with different powers of \(\psi \) \begin {align} \rho &= \frac {\mu _S^2}{2} \Phi ^* \Phi + \frac {1}{2} \gamma ^{ij} D_i\Phi ^* D_j \Phi \nonumber \\ &= \frac {\mu _S^2}{2} \Phi ^* \Phi + \frac {1}{2} \psi ^{-4} \partial _k\Phi ^* \partial ^k \Phi , \label {scalar_TwoPunctures_BBHSF_eq:rho} \end {align}

so a naïve conformal rescaling of \(\rho \) does not work. As a workaround, we choose to perform a conformal rescaling on the scalar field \(\Phi \) itself.

2.1 Conformal rescaling of the scalar field

Let us rescale the scalar field with a generic power \(\delta \) of the conformal factor \begin {equation} \Phi = \psi ^\delta \bar {\Phi }, \quad \Phi ^* = \psi ^\delta \bar {\Phi }^*, \end {equation} where \(\delta \) is a constant parameter to be chosen and \(\Bar {\Phi }\) is the conformal scalar field. The goal is to find a suitable power \(\delta \) such that the linearized Hamiltonian constraint equation forms a well-posed elliptic problem. Inserting Eq. (??) and using the rescaled scalar field, Eq. (??) can be rewritten as \begin {align} \Delta \psi + \frac {1}{8} \psi ^{-7} \bar {A}_{ij} \bar {A}^{ij} + &\pi \psi ^{2\delta + 5} \mu _S^2 \bar {\Phi }^* \bar {\Phi } \nonumber \\ + &\pi \psi ^{2\delta + 1} (\partial _i\bar {\Phi }^*) (\partial ^i\bar {\Phi }) \nonumber \\ + \delta &\pi \psi ^{2\delta }\quad (\partial _i\psi ) ( \bar {\Phi }^* \partial ^i\bar {\Phi } + \bar {\Phi } \partial ^i\bar {\Phi }^* ) \nonumber \\ + \delta ^2 &\pi \psi ^{2\delta -1} (\partial _i\psi ) (\partial ^i\psi ) \bar {\Phi }^* \bar {\Phi } \quad \quad \quad \quad = 0, \label {scalar_TwoPunctures_BBHSF_eq:nonlin_ham_eq} \end {align}

with the conformal factor \begin {align} \psi &= \psi _{\rm BL} + u, \\ \partial _i\psi &= \partial _i\psi _{\rm BL} + \partial _i u. \end {align}

Writing the correction function as \(u = u_0 + \epsilon \) with \(u_0\) a known solution and \(|\epsilon |\ll u_0\), we can expand Eq. (??) to first order in \(\epsilon \), giving the linearized equation \begin {align} \Delta \epsilon - \epsilon \Bigg [ \frac {7}{8} \psi ^{-8} \bar {A}_{ij} \bar {A}^{ij} - (2\delta + 5) \pi &\psi _0^{2\delta + 4} \mu _S^2 \bar {\Phi }^* \bar {\Phi } \nonumber \\ - (2\delta + 1) \pi &\psi _0^{2\delta }\quad (\partial _i\bar {\Phi }^*) (\partial ^i\bar {\Phi }) \nonumber \\ -\ \ (2\delta )\ \ \delta \pi &\psi _0^{2\delta -1} (\partial _i\psi _0) ( \bar {\Phi }^* \partial ^i\bar {\Phi } + \bar {\Phi } \partial ^i\bar {\Phi }^* ) \nonumber \\ - (2\delta -1) \delta ^2 \pi &\psi _0^{2\delta -2} (\partial _i\psi _0) (\partial ^i\psi _0) \bar {\Phi }^* \bar {\Phi } \quad \quad \quad \quad \Big ] \nonumber \\ + (\partial _i\epsilon ) \Big [ \delta \pi \psi _0^{2\delta } ( \bar {\Phi }^* \partial ^i\bar {\Phi } &+ \bar {\Phi } \partial ^i\bar {\Phi }^* ) + \delta ^2 \pi \psi _0^{2\delta -1} (\partial ^i\psi _0) \bar {\Phi }^* \bar {\Phi } \Big ]= 0, \label {scalar_TwoPunctures_BBHSF_eq:lin_ham_eq} \end {align}

where the conformal factor \(\psi _0\) is defined as \begin {align} \psi _0 &= \psi _{\rm BL} + u_0, \\ \partial _i \psi _0 &= \partial _i \psi _{\rm BL} + \partial _i u_0. \end {align}

Equations (??) and (??) constitute our main result. We see that for any choice of \(\delta < -2.5\), Eq. (??) takes the form of \begin {equation} \Delta \epsilon - h \epsilon = 0 \end {equation} with \(h>0\), so it is well-posed as an elliptic equation in \(u\), and its numerical solution is unique and stable.

The Eqs. (??) and (??) are implemented in Equations.c of the thorn TwoPunctures_BBHSF. In testing the initial data constructed this way, we found no significant difference in the resulting metric and constraint violation when using different values of the parameter \(\delta < -2.5\). By default, \(\delta \) is set to be \(-3\) in the thorn.

3 Initializing scalar field configurations

We consider scalar field configurations with a Gaussian radial profile and zero momentum \begin {equation} \bar {\Phi }(t=0) = A_{\rm SF} Z(\theta , \phi ) e^{-(r-r_0)^2/w^2}, \quad \Pi (t=0) = 0, \end {equation} where \(A_{\rm SF}, r_0, w\) are constant parameters and \(Z(\theta , \phi )\) encodes the angular dependence. In the file SF_source_term.c of the thorn, we have implemented the \(l=m=0\) (monopole) and \(l=m=1\) (dipole) spherical harmonics modes as options for \(Z(\theta , \phi )\): \begin {align} Y_{0,0}(\theta , \phi ) &= \sqrt {\frac {1}{4\pi }}, \\ Y_{1,1}(\theta , \phi ) &= -\sqrt {\frac {3}{8\pi }} \sin \theta \ (\cos \phi + i \sin \phi ). \end {align}

In addition, Cartesian derivatives of \(\bar {\Phi }\) are computed, so this thorn replaces the use of ScalarInit (which only computes \(\Phi \) and does not conformally rescale the scalar fields) when initializing the scalar field grid functions. If one wishes to use a different initial scalar configuration than currently implemented, they should supply the corresponding fields and source terms to SF_source_term.c.

The parameter TwoPunctures_BBHSF::switch_on_back-reaction is used to control whether the scalar field is included in the metric initial data calculation. To remove the back-reaction from the metric ID calculation, it is sufficient to set TwoPunctures_BBHSF::switch_on_back-reaction = no, and that will reduce to the standard TwoPunctures.

To enable back-reaction during the evolution, one is reminded to set TmunuBase::stress_energy_at_RHS = yes. If using LeanBSSNMoL for the spacetime evolution, one should also set LeanBSSNMoL::couple_Tab = 1.

References

[1]   M. Ansorg, B. Bruegmann and W. Tichy, “A Single-domain spectral method for black hole puncture data,” Phys. Rev. D 70 (2004), 064011 doi:10.1103/PhysRevD.70.064011 [arXiv:gr-qc/0404056 [gr-qc]].

[2]   S. Brandt and B. Bruegmann, “A Simple construction of initial data for multiple black holes,” Phys. Rev. Lett. 78, 3606-3609 (1997) doi:10.1103/PhysRevLett.78.3606 [arXiv:gr-qc/9703066 [gr-qc]].

[3]   E. Gourgoulhon, “3+1 formalism and bases of numerical relativity,” [arXiv:gr-qc/0703035 [gr-qc]].

[4]   G. Ficarra, C-H. Cheng and H. Witek. To appear.

4 Parameters




adm_tol
Scope: restricted  REAL



Description: Tolerance of ADM masses when give_bare_mass=no



Range   Default: 1.0e-10
(0:*)






ampsf
Scope: restricted  REAL



Description: amplitude of Gaussian wave packet



Range   Default: 1.0
*:*
any value possible






center_offset
Scope: restricted  REAL



Description: offset b=0 to position (x,y,z)



Range   Default: 0.0
(*:*)






delta
Scope: restricted  REAL



Description: Exponent delta for conformal decomposition of the scalar field phi = psiˆd  elta barphi



Range   Default: -3.0
(*:*)
Should be negative and less than -3






do_initial_debug_output
Scope: restricted  BOOLEAN



Description: Output debug information about initial guess



  Default: no






do_residuum_debug_output
Scope: restricted  BOOLEAN



Description: Output debug information about the residuum



  Default: no






give_bare_mass
Scope: restricted  BOOLEAN



Description: User provides bare masses rather than target ADM masses



  Default: yes






grid_setup_method
Scope: restricted  KEYWORD



Description: How to fill the 3D grid from the spectral grid



Range   Default: Taylor expansion
Taylor expansion
use a Taylor expansion about the nearest collocation point (fast, but might be inaccurate)
evaluation
evaluate using all spectral coefficients (slow)






initial_lapse_psi_exponent
Scope: restricted  REAL



Description: Exponent n for psiˆ-  n initial lapse profile



Range   Default: -2.0
(*:*)
Should be negative






keep_u_around
Scope: restricted  BOOLEAN



Description: Keep the variable u around after solving



  Default: no






l0sf
Scope: restricted  INT



Description: angular quantum number



Range   Default: 1
0:2
for now we’ve implemented the spherical harmonics only up to l=m=1






m0sf
Scope: restricted  INT



Description: azimuthal quantum number



Range   Default: 1
-2:2
for now we’ve implemented the spherical harmonics only up to l=m=1






multiply_old_lapse
Scope: restricted  BOOLEAN



Description: Multiply the old lapse with the new one



  Default: no






newton_maxit
Scope: restricted  INT



Description: Maximum number of Newton iterations



Range   Default: 5
0:*






newton_tol
Scope: restricted  REAL



Description: Tolerance for Newton solver



Range   Default: 1.0e-10
(0:*)






npoints_a
Scope: restricted  INT



Description: Number of coefficients in the compactified radial direction



Range   Default: 30
4:*






npoints_b
Scope: restricted  INT



Description: Number of coefficients in the angular direction



Range   Default: 30
4:*






npoints_phi
Scope: restricted  INT



Description: Number of coefficients in the phi direction



Range   Default: 16
4:*:2






par_b
Scope: restricted  REAL



Description: x coordinate of the m+ puncture



Range   Default: 1.0
(0.0:*)






par_m_minus
Scope: restricted  REAL



Description: mass of the m- puncture



Range   Default: 1.0
0.0:*)






par_m_plus
Scope: restricted  REAL



Description: mass of the m+ puncture



Range   Default: 1.0
0.0:*)






par_p_minus
Scope: restricted  REAL



Description: momentum of the m- puncture



Range   Default: 0.0
(*:*)






par_p_plus
Scope: restricted  REAL



Description: momentum of the m+ puncture



Range   Default: 0.0
(*:*)






par_s_minus
Scope: restricted  REAL



Description: spin of the m- puncture



Range   Default: 0.0
(*:*)






par_s_plus
Scope: restricted  REAL



Description: spin of the m+ puncture



Range   Default: 0.0
(*:*)






r0sf
Scope: restricted  REAL



Description: location of Gaussian wave packet



Range   Default: 10.0
0:*
any positive value possible






rescale_sources
Scope: restricted  BOOLEAN



Description: If sources are used - rescale them after solving?



  Default: yes






scalar_gaussprofile
Scope: restricted  KEYWORD



Description: Which mode composition for the Gaussian?



Range   Default: single_mode
single_mode
single mode initial data with (l0,m0)
superpose_ID010
superpose Y00, Y10 as initial data
superpose_ID011
superpose Y00, Y11 as initial data
superpose_ID01011
superpose Y00, Y10, Y11 as initial data
superpose_ID012
superpose Y10 + Y11 + Y20 + Y22 as initial data






schedule_in_admbase_initialdata
Scope: restricted  BOOLEAN



Description: Schedule in (instead of after) ADMBase_InitialData



  Default: yes






solve_momentum_constraint
Scope: restricted  BOOLEAN



Description: Solve for momentum constraint?



  Default: no






swap_xz
Scope: restricted  BOOLEAN



Description: Swap x and z coordinates when interpolating, so that the black holes are separated in the z direction



  Default: no






switch_on_backreaction
Scope: restricted  BOOLEAN



Description: Choice for switching on scalar field correction terms to Hamiltonain constraint



  Default: no






target_m_minus
Scope: restricted  REAL



Description: target ADM mass for m-



Range   Default: 0.5
0.0:*)






target_m_plus
Scope: restricted  REAL



Description: target ADM mass for m+



Range   Default: 0.5
0.0:*)






tp_epsilon
Scope: restricted  REAL



Description: A small number to smooth out singularities at the puncture locations



Range   Default: 0.0
0:*






tp_extend_radius
Scope: restricted  REAL



Description: Radius of an extended spacetime instead of the puncture



Range   Default: 0.0
0:*
anything positive, should be smaller than the horizon






tp_tiny
Scope: restricted  REAL



Description: Tiny number to avoid nans near or at the pucture locations



Range   Default: 0.0
0:*
anything positive, usually very small






use_external_initial_guess
Scope: restricted  BOOLEAN



Description: Set initial guess by external function?



  Default: no






use_sources
Scope: restricted  BOOLEAN



Description: Use sources?



  Default: no






verbose
Scope: restricted  BOOLEAN



Description: Print screen output while solving



  Default: no






widthsf
Scope: restricted  REAL



Description: width of Gaussian wave packet



Range   Default: 2.0
0:*
any positive value possible






conformal_storage
Scope: shared from STATICCONFORMAL KEYWORD



5 Interfaces

General

Implements:

twopunctures_bbhsf

Inherits:

admbase

staticconformal

grid

scalarbase

Grid Variables

5.0.1 PRIVATE GROUPS




  Group Names    Variable Names    Details   




puncture_u puncture_u   compact0
  dimensions3
  distributionDEFAULT
  group typeGF
  tagsprolongation=”none”
  timelevels1
 variable typeREAL




energy   compact0
E   descriptionADM energy of the Bowen-York spacetime
  dimensions0
  distributionCONSTANT
  group typeSCALAR
  timelevels1
 variable typeREAL




angular_momentum   compact0
J1   descriptionAngular momentum of the Bowen-York spacetime
J2   dimensions0
J3   distributionCONSTANT
  group typeSCALAR
  timelevels1
 variable typeREAL




5.0.2 PUBLIC GROUPS




  Group Names    Variable Names    Details   




bare_mass   compact0
mp   descriptionBare masses of the punctures
mm   dimensions0
  distributionCONSTANT
  group typeSCALAR
  timelevels1
 variable typeREAL




puncture_adm_mass   compact0
mp_adm   descriptionADM masses of the punctures (measured at the other spatial infinities)
mm_adm   dimensions0
  distributionCONSTANT
  group typeSCALAR
  timelevels1
 variable typeREAL




6 Schedule

This section lists all the variables which are assigned storage by thorn Scalar/TwoPunctures_BBHSF. Storage can either last for the duration of the run (Always means that if this thorn is activated storage will be assigned, Conditional means that if this thorn is activated storage will be assigned for the duration of the run if some condition is met), or can be turned on for the duration of a schedule function.

Storage

 

 Conditional:
  energy angular_momentum puncture_adm_mass bare_mass
  puncture_u
   

Scheduled Functions

CCTK_PARAMCHECK (conditional)

  bbhsf_twopunctures_paramcheck

  check parameters and thorn needs

 

 Language:c
 Type: function

ADMBase_InitialData (conditional)

  twopunctures_bbhsf_group

  twopunctures initial data group

 

 Type:group

CCTK_INITIAL (conditional)

  twopunctures_bbhsf_group

  twopunctures initial data group

 

 After: admbase_initialdata
    hydrobase_initial
 Before:admbase_postinitial
   settmunu
   hydrobase_prim2coninitial
 Type: group

TwoPunctures_BBHSF_Group (conditional)

  twopunctures_bbhsf

  create puncture black hole initial data

 

 Language:c
 Reads: grid::coordinates(everywhere)
 Storage: puncture_u
 Type: function
 Writes: twopunctures_bbhsf::mp(everywhere)
   twopunctures_bbhsf::mm(everywhere)
   twopunctures_bbhsf::mp_adm(everywhere)
   twopunctures_bbhsf::mm_adm(everywhere)
   twopunctures_bbhsf::e(everywhere)
   twopunctures_bbhsf::j1(everywhere)
   twopunctures_bbhsf::j2(everywhere)
   twopunctures_bbhsf::j3(everywhere)
   twopunctures_bbhsf::puncture_u(everywhere)
   staticconformal::conformal_state(everywhere)
   staticconformal::confac_2derivs(everywhere)
   staticconformal::confac_1derivs(everywhere)
   staticconformal::confac(everywhere)
   admbase::alp(everywhere)
   admbase::metric(everywhere)
   admbase::curv(everywhere)
   scalarbase::phi(everywhere)
   scalarbase::kphi(everywhere)

TwoPunctures_BBHSF_Group (conditional)

  bbhsf_twopunctures_metadata

  output twopunctures metadata

 

 After: twopunctures_bbhsf
 Language:c
 Options: global
 Type: function