We modify the TwoPunctures thorn to generate initial data for a single rotating black hole coupled to a massive vector field. The conformal metric is related to Kerr in quasi-isotropic coordinates (see [1] and [2])), i.e., \(rBL = R ( 1 + rBL_{+} / (4R) )^{2} \). This construction can accommodate for Proca fields with the following initial angular distribution :\(A_{\phi } \sim Y_{00}\), \(A_{\phi } \sim Y_{10}\) (explored in [3]) and \(A_{\phi } \sim Y_{1-1} - Y_{11}\) (see [4]).
Note:
We are enabling the swapping parameter “swap_xz”, i.e., the x- and z-axis are simply exchanged because TwoPunctures uses coordinates such that \(x=R\cos \theta \). Therefore, the rotation axis is the x-axis, and one needs to specify par_S_plus[0].
The swapping is not a coordinate transformation! So, instead of going from \(x=R\cos \theta , y=R\sin \theta \cos \phi , z=R\sin \theta \sin \phi \) to \(x=R\sin \theta \cos \phi , y=R\sin \theta \sin \phi , z=R\cos \theta \) as one might expect, this operation only exchanges x-z. Hence, for a BH that in physical space is supposed to rotate along \(z\), in the direction of \(z\), needs to be specified with a minus sign.
As an example, say we want to set up a rotating BH with \(a/M = 0.9\), rotating in the z-direction. Then, we need
swap_xz = yes
par_b = 1.0
offset[2]= -1.0
par_S_plus[0] = -0.90
[1] Y. T. Liu, Z. B. Etienne and S. L. Shapiro, “Evolution of near-extremal-spin black holes using the moving puncture technique,” Phys. Rev. D 80 (2009) 121503 doi:10.1103/PhysRevD.80.121503 [arXiv:1001.4077 [gr-qc]].
[2] H. Okawa, H. Witek and V. Cardoso, “Black holes and fundamental fields in Numerical Relativity: initial data construction and evolution of bound states,” Phys. Rev. D 89 (2014) no.10, 104032 doi:10.1103/PhysRevD.89.104032 [arXiv:1401.1548 [gr-qc]].
[3] M. Zilhão, H. Witek and V. Cardoso, “Nonlinear interactions between black holes and Proca fields,” Class. Quant. Grav. 32 (2015) 234003 doi:10.1088/0264-9381/32/23/234003 [arXiv:1505.00797 [gr-qc]].
c00 | Scope: private | REAL |
Description: amplitude for monopolar term
| ||
Range | Default: 0. | |
0:* | anything non-negative
| |
c10 | Scope: private | REAL |
Description: Y10 multipolar term
| ||
Range | Default: 0.0 | |
(*:*) | ||
c11 | Scope: private | REAL |
Description: Y11 multipolar term
| ||
Range | Default: 0.0 | |
(*:*) | ||
r0_gaussian | Scope: private | REAL |
Description: centre for gaussian
| ||
Range | Default: 2. | |
0:* | anything positive
| |
w_gaussian | Scope: private | REAL |
Description: width of gaussian
| ||
Range | Default: 1. | |
0:* | anything positive
| |
adm_tol | Scope: restricted | REAL |
Description: Tolerance of ADM masses when give_bare_mass=no
| ||
Range | Default: 1.0e-10 | |
(0:*) | ||
center_offset | Scope: restricted | REAL |
Description: offset b=0 to position (x,y,z)
| ||
Range | Default: 0.0 | |
(*:*) | ||
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 | ||
lambda | Scope: restricted | REAL |
Description: factor to adjust the resolution away from the punctures
| ||
Range | Default: (none) | |
0:* | zero recovers the standard case
| |
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 | |
(*:*) | ||
rescale_sources | Scope: restricted | BOOLEAN |
Description: If sources are used - rescale them after solving?
| ||
Default: yes | ||
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 | ||
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 | ||
conformal_storage | Scope: shared from STATICCONFORMAL | KEYWORD |
Implements:
twopunctures_kerrproca
Inherits:
admbase
staticconformal
grid
procabase
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 Proca/TwoPunctures_KerrProca. 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 | |
puncture_u bare_mass | |
CCTK_PARAMCHECK (conditional)
tpkp_twopunctures_paramcheck
check parameters and thorn needs
Language: | c | |
Type: | function | |
ADMBase_InitialData (conditional)
tpkp_twopunctures_group
twopunctures initial data group
Type: | group | |
CCTK_INITIAL (conditional)
tpkp_twopunctures_group
twopunctures initial data group
After: | admbase_initialdata | |
hydrobase_initial | ||
Before: | admbase_postinitial | |
settmunu | ||
hydrobase_prim2coninitial | ||
Type: | group | |
TPKP_TwoPunctures_Group (conditional)
tpkp_twopunctures
create puncture black hole initial data
Language: | c | |
Storage: | puncture_u | |
bare_mass | ||
Type: | function | |
TPKP_TwoPunctures_Group (conditional)
tpkp_twopunctures_metadata
output twopunctures metadata
After: | tpkp_twopunctures | |
Language: | c | |
Options: | global | |
Type: | function | |