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.
We consider a complex scalar field
where the stress-energy tensor is given by
Under the 3+1 formalism, the scalar field contributes to the spacetime through the energy density
where
To construct the initial data, we solve the Hamiltonian constraint equation describing black holes with linear
momenta
Let us perform a conformal decomposition of the physical metric as
Now let us introduce a series of assumptions for the puncture method [2]. Assuming asymptotic
flatness, the conformal factor has the behavior
so a naïve conformal rescaling of
Let us rescale the scalar field with a generic power
with the conformal factor
Writing the correction function as
where the conformal factor
Equations (??) and (??) constitute our main result. We see that for any choice of
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
We consider scalar field configurations with a Gaussian radial profile and zero momentum
In addition, Cartesian derivatives of
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.
[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]].
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 = ∖psielta
∖bar∖phi
| ||
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 psin 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 |
Implements:
twopunctures_bbhsf
Inherits:
admbase
staticconformal
grid
scalarbase
Group Names | Variable Names | Details | |
puncture_u | puncture_u | compact | 0 |
dimensions | 3 | ||
distribution | DEFAULT | ||
group type | GF | ||
tags | prolongation=”none” | ||
timelevels | 1 | ||
variable type | REAL | ||
energy | compact | 0 | |
E | description | ADM energy of the Bowen-York spacetime | |
dimensions | 0 | ||
distribution | CONSTANT | ||
group type | SCALAR | ||
timelevels | 1 | ||
variable type | REAL | ||
angular_momentum | compact | 0 | |
J1 | description | Angular momentum of the Bowen-York spacetime | |
J2 | dimensions | 0 | |
J3 | distribution | CONSTANT | |
group type | SCALAR | ||
timelevels | 1 | ||
variable type | REAL | ||
Group Names | Variable Names | Details | |
bare_mass | compact | 0 | |
mp | description | Bare masses of the punctures | |
mm | dimensions | 0 | |
distribution | CONSTANT | ||
group type | SCALAR | ||
timelevels | 1 | ||
variable type | REAL | ||
puncture_adm_mass | compact | 0 | |
mp_adm | description | ADM masses of the punctures (measured at the other spatial infinities) | |
mm_adm | dimensions | 0 | |
distribution | CONSTANT | ||
group type | SCALAR | ||
timelevels | 1 | ||
variable type | REAL | ||
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.
Conditional: | |
energy angular_momentum puncture_adm_mass bare_mass | |
puncture_u | |
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 | |