CanudaX_ExactID

Cheng-Hsin Cheng

April 15, 2026

Abstract

CanudaX_ExactID provides exact initial data of vacuum spacetimes for use in ADMBaseX. Currently, CanudaX_ExactID can set up initial data for a single Kerr BH, Teukolsky waves, and Apples with Apples tests.

1 Introduction

This thorn provides exact initial data for vacuum spacetimes, which currently includes the following cases.

1.1 Kerr BH in quasi-isotropic coordinates

Based on the KerrQuasiIsotropic thorn from Lean. The original KerrQuasiIsotropic thorn provides analytic initial data for a rotating black hole, spinning around the z-axis, in quasi-isotropic coordinates where the radial coordinate is defined by \begin {equation} r_{\rm BL} = r \left (1 + \frac {r_{+}}{4r} \right )^2. \end {equation} We employ the construction of [1], with our specific construction outlined in Eqs. (46)–(48) of [2].

1.2 Teukolsky waves

Based on EinsteinInitialData/IDLinearWaves. Teukolsky waves are quadrupolar waves in linearized GR in transverse-traceless gauge [3]. Please see the original documentation for IDLinearWaves for more detail.

1.3 Apples with apples tests

Provides initial data for the gauge wave, shifted gauge wave, linearized wave tests. For details, see the references [4] [5] [6].

2 Applications

References

[1]   Y. T. Liu, Z. B. Etienne and S. L. Shapiro, Phys. Rev. D 80, 121503 (2009) 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, no.10, 104032 (2014) doi:10.1103/PhysRevD.89.104032 [arXiv:1401.1548 [gr-qc]].

[3]   S. A. Teukolsky, “LINEARIZED QUADRUPOLE WAVES IN GENERAL RELATIVITY AND THE MOTION OF TEST PARTICLES,” Phys. Rev. D 26, 745-750 (1982) doi:10.1103/PhysRevD.26.745

[4]   M. Alcubierre, G. Allen, C. Bona, D. Fiske, T. Goodale, F. S. Guzman, I. Hawke, S. H. Hawley, S. Husa and M. Koppitz, et al. “Toward standard testbeds for numerical relativity,” Class. Quant. Grav. 21, no.2, 589-613 (2004) doi:10.1088/0264-9381/21/2/019 [arXiv:gr-qc/0305023 [gr-qc]].

[5]   M. C. Babiuc, S. Husa, D. Alic, I. Hinder, C. Lechner, E. Schnetter, B. Szilagyi, Y. Zlochower, N. Dorband and D. Pollney, et al. “Implementation of standard testbeds for numerical relativity,” Class. Quant. Grav. 25, 125012 (2008) doi:10.1088/0264-9381/25/12/125012 [arXiv:0709.3559 [gr-qc]].

[6]   D. Daverio, Y. Dirian and E. Mitsou, “Apples with Apples comparison of 3+1 conformal numerical relativity schemes,” [arXiv:1810.12346 [gr-qc]].

3 Parameters




eps_r
Scope: private REAL



Description: Floor value for radial distance



Range Default: 1.0d-12
0:*
any small positive value






kqi_m_plus
Scope: private REAL



Description: Mass of the Kerr BH



Range Default: 1.0
0.0:*
any positive value






kqi_pos_plus
Scope: private REAL



Description: Position of the Kerr BH



Range Default: 0.0
*:*
any value possible; for zero spin set pos_plus[0]=0.0001






kqi_spin_plus
Scope: private REAL



Description: Dimensionless spin of the Kerr BH with z being the rotation axis



Range Default: 0.0
0:1
any value between 0 and 1






schedule_in_admbasex_initialdata
Scope: private BOOLEAN



Description: Schedule in (instead of after) ADMBaseX_InitialData



Default: yes






teukolsky_mvalue
Scope: private INT



Description: m value for Teukolsky waves: integer from -2 to 2



Range Default: (none)
-2:2
implemented : m = -2, -1, 0, 1, 2






teukolsky_packet
Scope: private KEYWORD



Description: Wave packet shape for Teukolsky waves



Range Default: eppley
eppley
Eppley packet: x exp(-xˆ
2  )
evans
Evans packet: wˆ4  (1-xˆ2  /wˆ2  )ˆ6
square
Square packet: (1-xˆ2  /wˆ2  )ˆ2






teukolsky_parity
Scope: private KEYWORD



Description: Parity for Teukolsky waves: even or odd



Range Default: even
even
even parity
odd
odd parity






teukolsky_wavecenter
Scope: private REAL



Description: Center of propagation for Teukolsky waves



Range Default: 0.0
:






teukolsky_wavelength
Scope: private REAL



Description: Wave length of Teukolsky waves



Range Default: 2.0
0:
positive wavelength






teukolsky_wavepulse
Scope: private REAL



Description: Pulse length/duration for purely ingoing Teukolsky waves



Range Default: 1.0
0:
positive pulse






teukolsky_wavesgoing
Scope: private KEYWORD



Description: Wave propagation direction for Teukolsky waves



Range Default: both
in
Ingoing wave
out
Outgoing wave
both
In and outgoing wave






wave_amplitude
Scope: private REAL



Description: Amplitude of gauge wave or linear wave



Range Default: 1.0
0.0:*
any positive value






wave_period
Scope: private REAL



Description: Period of the gauge wave or linear wave



Range Default: 1.0
0.0:*
any positive value






initial_data
Scope: shared from ADMBASEX KEYWORD



Extends ranges:



KQI_ana
”KerrQuasiIsotropic: Analytic initial data for single Kerr BH in quasi-isotropic coordinates”
GaugeWave
Gauge wave
ShiftedGaugeWave
Shifted gauge wave
LinearizedWave
Linearized wave
TeukolskyWave
Teukolsky wave






initial_lapse
Scope: shared from ADMBASEX KEYWORD



Extends ranges:



KQI_ana
”KerrQuasiIsotropic: analytically extend lapse through origin”
KQI_prec
”KerrQuasiIsotropic: use precollapsed lapse”
KQI_abs
”KerrQuasiIsotropic: use absolute value of lapse (discouraged; better to use KQI_ana to reproduce QNMs)”
GaugeWave
Gauge wave
ShiftedGaugeWave
Shifted gauge wave
LinearizedWave
Linearized wave






initial_shift
Scope: shared from ADMBASEX KEYWORD



Extends ranges:



KQI_ana
”KerrQuasiIsotropic: anayltic shift”
GaugeWave
Gauge wave
ShiftedGaugeWave
Shifted gauge wave
LinearizedWave
Linearized wave



4 Interfaces

General

Implements:

canudax_exactid

Inherits:

admbasex

Uses header:

loop_device.hxx

5 Schedule

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

NONE

Scheduled Functions

ADMBaseX_InitialData (conditional)

  canudax_exactidgroup

  canudax_exactid group for setting up initial data

 

  Type: group

CCTK_INITIAL (conditional)

  canudax_exactidgroup

  canudax_exactid group for setting up initial data

 

  After: admbasex_initialdata
  Before: admbasex_postinitial
  Type: group

CanudaX_ExactIDGroup (conditional)

  canudax_exactid_kqi_analytic

  create analytic initial data for a kerr bh

 

  Language: c
  Options: local
  Sync: admbasex::metric
    admbasex::curv
    admbasex::lapse
    admbasex::shift
  Type: function
  Writes: admbasex::metric(everywhere)
    admbasex::curv(everywhere)
    admbasex::lapse(everywhere)
    admbasex::shift(everywhere)

CanudaX_ExactIDGroup (conditional)

  canudax_exactid_gaugewave

  create gauge wave initial data

 

  Language: c
  Options: local
  Sync: admbasex::metric
    admbasex::curv
    admbasex::lapse
    admbasex::shift
  Type: function
  Writes: admbasex::metric(everywhere)
    admbasex::curv(everywhere)
    admbasex::lapse(everywhere)
    admbasex::shift(everywhere)

CanudaX_ExactIDGroup (conditional)

  canudax_exactid_shiftedgaugewave

  create shifted gauge wave initial data

 

  Language: c
  Options: local
  Sync: admbasex::metric
    admbasex::curv
    admbasex::lapse
    admbasex::shift
  Type: function
  Writes: admbasex::metric(everywhere)
    admbasex::curv(everywhere)
    admbasex::lapse(everywhere)
    admbasex::shift(everywhere)

CanudaX_ExactIDGroup (conditional)

  canudax_exactid_linearizedwave

  create linearized wave initial data

 

  Language: c
  Options: local
  Sync: admbasex::metric
    admbasex::curv
    admbasex::lapse
    admbasex::shift
  Type: function
  Writes: admbasex::metric(everywhere)
    admbasex::curv(everywhere)
    admbasex::lapse(everywhere)
    admbasex::shift(everywhere)

CanudaX_ExactIDGroup (conditional)

  canudax_exactid_teukwave

  create teukolsky wave initial data

 

  Language: c
  Options: local
  Sync: admbasex::metric
    admbasex::curv
  Type: function
  Writes: admbasex::metric(everywhere)
    admbasex::curv(everywhere)