## NRPyEllipticET

August, 2022

### Abstract

This thorn generates numerical relativity initial data by solving the constraints of general relativity using the hyperbolic relaxation method.

### 1 Introduction

The hyperbolic relaxation method of [1] converts an elliptic problem into a hyperbolic one. The prototypical elliptic problem—Poisson’s equation—reads \begin {equation} \nabla ^{2}\vec {u} = \vec {\rho }\;, \end {equation} where $$\vec {u}$$ is a set of unknowns and $$\vec {\rho }$$ are sources. One introduces a relaxation time $$t$$ and replaces this elliptic equation with \begin {equation} \partial _{t}^{2}\vec {u} + \eta \partial _{t}\vec {u} = c^{2}\left (\nabla ^{2}\vec {u} - \vec {\rho }\right )\;, \end {equation} where $$\eta$$ is a damping parameter with units of inverse time and $$c$$ is the speed of the relaxation waves. One then evolves this hyperbolic equation until a steady state is reached at $$t=t_{\star }$$, for which \begin {equation} \left .\partial _{t}^{2}\vec {u}\right |_{t=t_{\star }} = 0 = \left .\partial _{t}\vec {u}\right |_{t=t_{\star }}\;, \end {equation} and thus $$\left .\vec {u}\right |_{t=t_{\star }}$$ is also a solution to the original elliptic problem. For more details of how this method is implemented in NRPyEllipticET, please see [2].

### 2 Initial data types

#### 2.1 Conformally flat binary black hole initial data

As described in [2], NRPyEllipticET solves the Hamiltonian constraint using the conformal transverse-traceless (CTT) decomposition, i.e., \begin {equation} \hat \nabla ^{2}u + \frac {1}{8}\tilde {A}_{ij}\tilde {A}^{ij}\left (\psi _{\rm singular}+u\right )^{-7} = 0\;, \end {equation} where $$\hat \nabla _{i}$$ is the covariant derivative compatible with the flat spatial metric $$\hat \gamma _{ij}$$, $$\hat \nabla ^{2} = \hat \nabla _{i}\hat \nabla ^{i}$$, $$\tilde {A}_{ij} = \psi ^{-4}A_{ij}$$, where $$A_{ij}$$ is the traceless part of the extrinsic curvature, and $$\psi$$ is the conformal factor, given by \begin {equation} \psi = \psi _{\rm singular} + u \equiv 1 + \sum _{n=1}^{N_{p}}\frac {m_{n}}{2|\vec {x}_{n}|} + u\;, \end {equation} where $$m_{n}$$ are $$\vec {x}_{n}$$ are the bare mass and position vector of the $$n$$th puncture and $$u$$ is a to-be-determined non-singular piece of the conformal factor.

We thus solve the Hamiltonian constraint using the hyperbolic relaxation method, i.e., \begin {align} \partial _{t}u &= v - \eta u\;,\\ \partial _{t}v &= c^{2}\left [\hat {\nabla }^{2}u + \frac {1}{8}\tilde {A}_{ij}\tilde {A}^{ij}\left (\psi _{\rm singular} + u\right )\right ]\;, \end {align}

where the first equation defines $$v$$.

### References

[1]   Rüter, H. R., Hildich, D., Bugner, M., and Brügmann, B., Phys. Rev. D 98, 084044, 2018 (arXiv: 1708.07358).

[2]   Assumpção, T., Werneck, L. R., Etienne, Z. B., and Pierre Jacques, T., Phys. Rev. D 105, 104037, 2022 (arXiv: 2111.02424).

### 3 Parameters

 cfl_factor Scope: private REAL Description: CFL factor of the relaxation time evolution. Range Default: 0.7 0:1 Between zero and one. For higher resolutions this will have to be lowered.

 conformally_flat_bbh_puncture_0_bare_mass Scope: private REAL Description: Bare mass of first puncture Range Default: 1e123 0:* Must be positive 1e123 Forbidden value to make sure it is explicitly set in the parfile

 conformally_flat_bbh_puncture_0_p Scope: private REAL Description: Linear momentum of first puncture Range Default: (none) *:* This parameter can have any value

 conformally_flat_bbh_puncture_0_pos Scope: private REAL Description: Position of first puncture Range Default: (none) *:* This parameter can have any value

 conformally_flat_bbh_puncture_0_s Scope: private REAL Description: Angular momentum of first puncture Range Default: (none) *:* This parameter can have any value

 conformally_flat_bbh_puncture_1_bare_mass Scope: private REAL Description: Bare mass of second puncture Range Default: 1e123 0:* Must be positive 1e123 Forbidden value to make sure it is explicitly set in the parfile

 conformally_flat_bbh_puncture_1_p Scope: private REAL Description: Linear momentum of second puncture Range Default: (none) *:* This parameter can have any value

 conformally_flat_bbh_puncture_1_pos Scope: private REAL Description: Position of second puncture Range Default: (none) *:* This parameter can have any value

 conformally_flat_bbh_puncture_1_s Scope: private REAL Description: Angular momentum of second puncture Range Default: (none) *:* This parameter can have any value

 domain_size Scope: private REAL Description: Domain size for the initial data Range Default: 1e6 0:* Must be positive

 eta_damping Scope: private REAL Description: Wave equation damping parameter Range Default: -1 0:* Must be positive -1 Compute optimum eta_damping (requires domain_size=1e6; sinh_width=0.07; foci_position=5)

 foci_position Scope: private REAL Description: Position of the foci of the prolate spheroidal coordinate system. Typically the position of the puncture. Range Default: 5.0 0:* Must be positive

 info_output_freq Scope: private INT Description: Print progress of relaxation time evolution every info_output_freq iterations Range Default: (none) 0:* Any positive value. 0 disables it

 initial_data_type Scope: private STRING Description: Type of initial data generated by NRPyEllipticET Range Default: ConformallyFlatBBH ConformallyFlatBBH Conformally flat binary black hole initial data

 interpolation_order Scope: private INT Description: Interpolation order Range Default: 4 0:* Must be positive

 interpolator_name Scope: private STRING Description: Interpolator name Range Default: Lagrange polynomial interpolation .+ Can be anything

 lapse_exponent_n Scope: private REAL Description: Exponent of lapse initial data alpha = psin} Range Default: -2 *:* This parameter can have any value

 log_target_residual Scope: private REAL Description: Stopping criterion: log10(l2norm(residual)) Range Default: -16.0 *:0 Should be negative, since we typically want small residuals

 max_iterations Scope: private INT Description: Maximum number of time steps in the relaxation time evolution. Range Default: 10000 0:* Must be positive

 n0 Scope: private INT Description: Number of points in the xx0 direction Range Default: 128 0:* Must be positive

 n1 Scope: private INT Description: Number of points in the xx1 direction Range Default: 128 0:* Must be positive

 n2 Scope: private INT Description: Number of points in the xx2 direction Range Default: 16 0:* Must be positive

 nrpy_epsilon Scope: private REAL Description: Small number to avoid singularities at the punctures Range Default: 1e-8 *:* Can be anything

 number_of_lct Scope: private REAL Description: Number of light-crossing times Range Default: 5.5e-6 0:* Must be positive

 orbital_plane Scope: private STRING Description: Orbital plane Range Default: xy xy Orbital plane is the xy-plane yx Equivalent to xy xz Orbital plane is the xz-plane zx Equivalent to xz

 position_shift Scope: private REAL Description: Shift punctures on the axis while keeping their distance fixed Range Default: (none) *:* Can be anything

 residual_integration_radius Scope: private REAL Description: The L2-norm of the residual is integrated in a sphere with this radius. Range Default: 100.0 0:* Must be positive; if set to >=domain_size then will integrate over the entire NRPy+-generated grid.

 sinh_width Scope: private REAL Description: This parameter controls how densily sampled the regions near the punctures are. Smaller values => higher resolution Range Default: 0.07 0:* Must be positive

 verbose Scope: private BOOLEAN Description: Whether or not to print information as the relaxation progresses Default: no

 initial_data Scope: shared from ADMBASE KEYWORD Extends ranges: NRPyEllipticET Initial data from NRPyEllipticET solution

 initial_dtlapse Scope: shared from ADMBASE KEYWORD Extends ranges: NRPyEllipticET Initial dtlapse from NRPyEllipticET solution

 initial_dtshift Scope: shared from ADMBASE KEYWORD Extends ranges: NRPyEllipticET Initial dtshift from NRPyEllipticET solution

 initial_lapse Scope: shared from ADMBASE KEYWORD Extends ranges: see [1] below Based on the initial conformal factor see [1] below Averaged lapse for two puncture black holes

[1]

NRPyEllipticET-psi\^n


[1]

NRPyEllipticET-averaged


 initial_shift Scope: shared from ADMBASE KEYWORD Extends ranges: NRPyEllipticET Initial shift from NRPyEllipticET solution

 lapse_timelevels Scope: shared from ADMBASE INT

 metric_timelevels Scope: shared from ADMBASE INT

 shift_timelevels Scope: shared from ADMBASE INT

### 4 Interfaces

Implements:

nrpyellipticet

Inherits:

grid

#### Grid Variables

##### 4.0.1 PRIVATE GROUPS
 Group Names Variable Names Details nrpyellipticet_relaxation_vars compact 0 uuGF description These are the variables NRPyEllipticET solves for. E.g. description for conformally flat BBH uuGF description uuGF is the nonsingular part of the conformal factor. dimensions 3 distribution DEFAULT group type GF tags prolongation=”none” timelevels 1 variable type REAL

### 5 Schedule

This section lists all the variables which are assigned storage by thorn EinsteinInitialData/NRPyEllipticET. 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.

#### Scheduled Functions

nrpyellipticet

set up metric fields for binary black hole initial data