## TwoPunctures_KerrProca

October 26 2018

### 1 Notes

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{\left(1+rB{L}_{+}∕\left(4R\right)\right)}^{2}$. This construction can accommodate for Proca fields with the following initial angular distribution :${A}_{\varphi }\sim {Y}_{00}$, ${A}_{\varphi }\sim {Y}_{10}$ (explored in [3]) and ${A}_{\varphi }\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\mathrm{cos}𝜃$. 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\mathrm{cos}𝜃,y=R\mathrm{sin}𝜃\mathrm{cos}\varphi ,z=R\mathrm{sin}𝜃\mathrm{sin}\varphi$ to $x=R\mathrm{sin}𝜃\mathrm{cos}\varphi ,y=R\mathrm{sin}𝜃\mathrm{sin}\varphi ,z=R\mathrm{cos}𝜃$ 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

### References

[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]].

[4]   M. Zilhão, H. Witek. To appear.

### 2 Parameters

 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 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

 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

 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

### 3 Interfaces

#### General

Implements:

twopunctures_kerrproca

Inherits:

staticconformal

grid

procabase

#### Grid Variables

##### 3.0.1 PRIVATE GROUPS
 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

##### 3.0.2 PUBLIC GROUPS
 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

### 4 Schedule

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.

#### Storage

 Conditional: energy angular_momentum puncture_adm_mass puncture_u bare_mass

#### Scheduled Functions

CCTK_PARAMCHECK (conditional)

tpkp_twopunctures_paramcheck

check parameters and thorn needs

 Language: c Type: function

tpkp_twopunctures_group

twopunctures initial data group

 Type: group

CCTK_INITIAL (conditional)

tpkp_twopunctures_group

twopunctures initial data 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)