Zacharia E. Etienne <zachetie *at* gmail *dot* com>
Roland Haas <>

November 04 2019


To set up Kerr-Schild initial data, with a shifted radial coordinate.

1 Introduction

A complete description of a black hole spacetime in Kerr-Schild spherical polar coordinates that includes an explicit analytic form of the extrinsic curvature for arbitrary spin parameters does not exist in the literature, so we first include it here for completeness. Then we present our strategy for transforming spacetime quantities into shifted Kerr-Schild Cartesian coordinates.

2 Physical System

In unshifted spherical polar coordinates, where ρ = r2 + a2 cos 2(𝜃), M is the black hole mass, and a is the black hole spin parameter, the Kerr-Schild lapse, shift, and 3-metric are given by

α = 1 1 + 2Mr ρ2 (1) βr = α22Mr ρ2 (2) β𝜃 = βϕ = γ r𝜃 = γ𝜃ϕ = 0 (3) γrr = 1 + 2Mr ρ2 (4) γrϕ = aγrr sin 2(𝜃) (5) γ𝜃𝜃 = ρ2 (6) γϕϕ = r2 + a2 + 2Mr ρ2 a2 sin 2(𝜃)sin 2(𝜃). (7)

Next, we define a few useful quantities,

A = a2 cos (2𝜃) + a2 + 2r2 (8) B = A + 4Mr (9) D = 2Mr a2 cos 2(𝜃) + r2 + 1. (10)

Then the extrinsic curvature Kij = (iβj + jβi)(2α) (see, e.g., Eq. 13 in Ref. [1]) with tγij = 0, may be written in spherical polar coordinates as

Krr = D(A + 2Mr) A2B 4M a2 cos (2𝜃) + a2 2r2 (11) Kr𝜃 = D AB 8a2Mrsin (𝜃)cos (𝜃) (12) Krϕ = D A2 2aMsin 2(𝜃) a2 cos (2𝜃) + a2 2r2 (13) K𝜃𝜃 = D B 4Mr2 (14) K𝜃ϕ = D AB 8a3Mrsin 3(𝜃)cos (𝜃) (15) Kϕϕ = D A2B 2Mrsin 2(𝜃) a4(r M)cos (4𝜃) + a4(M + 3r)+ (16) 4a2r2(2r M) + 4a2rcos (2𝜃) a2 + r(M + 2r) + 8r5 . (17)

All GiRaFFE curved-spacetime code validation tests adopt shifted Kerr-Schild Cartesian coordinates (x,y,z), which map (0,0,0) to the finite radius r = r0 > 0 in standard (unshifted) Kerr-Schild spherical polar coordinates. So, in many ways, this is similar to a trumpet spacetime. Though this radial shift acts to shrink the black hole’s coordinate size, it also renders the very strongly-curved spacetime fields at r < r0 to vanish deep inside the horizon, which can contribute to numerical stability when evolving hydrodynamic, MHD, and FFE fields inside the horizon.

The shifted radial coordinate r relates to the standard spherical polar radial coordinate r via r = r + r0, where r0 > 0 is the (constant) radial shift.

As an example, to compute Kxy at some arbitrary point (x,y,z), we first convert the coordinate (x,y,z) into shifted spherical-polar coordinates via (r = x 2 + y 2 + z 2,𝜃,ϕ) = (r,𝜃,ϕ), as a purely radial shift like this preserves the original angles. Next, we evaluate the components of the Kerr-Schild extrinsic curvature Kij (provided above) in standard spherical polar coordinates at (r = r + r0,𝜃,ϕ). Defining xsph,shi as the ith shifted spherical polar coordinate and xsphi as the ith (unshifted) spherical polar coordinate, Kxy is computed via the standard coordinate transformations:

Kxy = dxsph,shk dx dxsph,shl dy dxsphi dxsph,shk dxsphi dxsph,shlKij. (18)

However, we have dxsphi = dxsph,shi, since the radial shift r0 is a constant and the angles are unaffected by the radial shift. This implies that dxsph,shkdx = dxsphkdx and dxsphidxsph,shk = δki.

So after computing any spacetime quantity at a point (r = r + r0,𝜃,ϕ), we need only apply the standard spherical-to-Cartesian coordinate transformation to evaluate that quantity in shifted Cartesian coordinates.

3 Using This Thorn

ShiftedKerrSchild defines the following parameters for the constants defined in section 2:

parameter name constant

BH_mass M,
BH_spin a.

3.1 Obtaining This Thorn

This thorn is part of the Einstein Toolkit and included in the WVUThorns arrangement.

3.2 Interaction With Other Thorns

This thorn sets up initial data for use by thorn ADMBase based on ADMBase’s parameters initial_data, initial_lapse and initial_shift.

3.3 Examples

For a complete example, please see the GiRaFFE test GiRaFFE_tests_MagnetoWald.par.

# Shifted KerrSchild  
ActiveThorns = "ShiftedKerrSchild"  
ShiftedKerrSchild::BH_mass = 1.0  
ShiftedKerrSchild::BH_spin = 0.9  
ShiftedKerrSchild::KerrSchild_radial_shift = 0.4359  
ADMBase::initial_data  = "ShiftedKerrSchild"  
ADMBase::initial_lapse = "ShiftedKerrSchild"  
ADMBase::initial_shift = "ShiftedKerrSchild"

3.4 Support and Feedback

Please contact the author or the Einstein Toolkit mailing list


[1]   G. B. Cook, Living Rev. Relativity, 3(1):5 (2000).

4 Parameters

Scope: restricted  REAL

Description: The mass of the black hole. Let’s keep this at 1!

Range   Default: 1.0

Scope: restricted  REAL

Description: The z-axis *dimensionless* spin of the black hole

Range   Default: 0.0
Anything between -1 and +1

Scope: restricted  REAL

Description: Radial shift for Kerr Schild initial data. Actual shift = KerrSchild_radial_shift*BH_mass

Range   Default: 0.0

Scope: shared from ADMBASE  KEYWORD

Extends ranges:

Initial data from ShiftedKerrSchild solution

Scope: shared from ADMBASE  KEYWORD

Extends ranges:

Initial lapse from ShiftedKerrSchild solution

Scope: shared from ADMBASE  KEYWORD

Extends ranges:

Initial shift from ShiftedKerrSchild solution

Scope: shared from ADMBASE KEYWORD

5 Interfaces








Grid Variables


  Group Names     Variable Names    Details   

shiftedkerrschild_3metric_shift   compact0
SKSgrr   descriptionShifted Kerr-Schild 3 metric and shift
SKSgrth   dimensions3
SKSgrph   distributionDEFAULT
SKSgthth   group typeGF
SKSgthph   tagsprolongation=”none”
SKSgphph   timelevels1
SKSbetar  variable typeREAL

6 Schedule

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

CCTK_PARAMCHECK (conditional)


  check parameters for consitency and unsupported values


 Type: function

CCTK_INITIAL (conditional)


  schedule shiftedkerrschild initial data group


 After: admbase_initialgauge
 Type: group

ShiftedKerrSchild_Initial (conditional)


  set up shifted kerr-schild initial data


 Type: function

CCTK_PRESTEP (conditional)


  set up shifted kerr-schild initial data


 Type: function

CCTK_ANALYSIS (conditional)


  set up shifted kerr-schild initial data


 Type: function