CarpetX: a Cactus driver for the Einstein Toolkit based on AMReX
README
Cactus Code Thorn AHFinder
Author(s)    : Erik Schnetter 
Maintainer(s): Erik Schnetter 
Licence      : LGPL
--------------------------------------------------------------------------

1. Purpose

Find apparent horizons



2. Method

See

Lap-Ming Lin, Jerome Novak, "A new spectral apparent horizon finder
for 3D numerical relativity", arXiv:gr-qc/0702038



2.1. Variables and equations

h(\theta, \phi)

F(r, \theta, \phi) = r - h(\theta, \phi)

s_a = \partial_a F / \sqrt{ g^ab (\partial_a F) (\partial_b F) }

s^a;a = 1 / \sqrt{\det g} \partial_b g^ab \sqrt{\det g} s_a

\Theta = s^a;a - (g^ab - s^a s^b) K_ab



2.2. Discrete basis

Scalar spherical harmnoics:

Y_lm(\theta, \phi)

Vector spherical harmonics:

\bf Y_lm(\theta, \phi) =Y_lm(\theta, \phi) \hat\bf r 
\bf\Psi_lm(\theta, \phi) = r \grad Y_lm(\theta, \phi)
\bf\Phi_lm(\theta, \phi) = \bf r \cross Y_lm(\theta, \phi)

Derivatives (gradient and divergence):

f(r, \theta, \phi) = \phi^lm(r) Y_lm(\theta, \phi)
(\grad f)(r, \theta, \phi) =   \partial_r \phi^lm(r) \bf Y_lm(\theta, \phi)
                             + 1/r \phi^lm(r) \bf\Psi_lm(\theta, \phi)

\div \phi(r) \bf\Psi_lm(\theta, \phi) =
      (\partial_r \phi(r) + 2/r \phi(r)) Y_lm(\theta, \phi)
    - 1/r l(l+1) \phi(r) Y_lm(\theta, \phi)

f(\theta, \phi) = \phi^lm Y_lm(\theta, \phi)
(\grad f)(\theta, \phi) = 1/r \phi^lm \bf\Psi_lm(\theta, \phi)

\div \bf\Psi_lm(\theta, \phi) = - 1/r l(l+1) Y_lm(\theta, \phi)

Spin-weighted sperical harmonics:
(, (11) and (12))

gradient components:   |s|_E_lm = (-1)^H 1/2 (|s|_a_lm + (-1)^s -|s|_a_lm)
curl components:     i |s|_B_lm = (-1)^H 1/2 (|s|_a_lm - (-1)^s -|s|_a_lm)

with |s|_E_lm* = (-1)^m |s|_E_l,-m
     |s|_B_lm* = (-1)^m |s|_B_l,-m

there is |s|_E_lm + i |s|_B_lm = (-1)^H         |s|_a_lm
         |s|_E_lm - i |s|_B_lm = (-1)^H (-1)^s -|s|_a_lm

    \dh = - (\partial_\theta + i / \sin\theta \partial_\phi)
\bar\dh = - (\partial_\theta - i / \sin\theta \partial_\phi)

0_E_lm = (-1)^H 1/2 (0_a_lm +  0_a_lm)
1_E_lm = (-1)^H 1/2 (1_a_lm - -1_a_lm)
2_E_lm = (-1)^H 1/2 (2_a_lm + -2_a_lm)

i 0_B_lm = (-1)^H 1/2 (0_a_lm -  0_a_lm)
i 1_B_lm = (-1)^H 1/2 (1_a_lm + -1_a_lm)
i 2_B_lm = (-1)^H 1/2 (2_a_lm - -2_a_lm)



2.3 Discrete representation

h(\theta, \phi) = h^lm Y_lm(\theta, \phi)

F(r, \theta, \phi) = r - h^lm Y_lm(\theta, \phi)

\partial_a F = [1, h^lm \bf\Psi_lm(\theta, \phi)]

|grad F| = ...

s_a = \partial_a F / |grad F|

*s^a = \sqrt{\det g} g^ab s_b

*sr^lm \bf Y_lm(\theta, \phi) + *s1^lm \bf\Psi_lm(\theta, \phi) = *s^a

*s^a;a = 2 *sr^lm Y_lm(\theta, \phi) - l(l+1) *s1^lm Y_lm(\theta, \phi)

s^a;a = 1 / \sqrt{\det g} *s^a;a



3. References

Jonathan Thornburg, "Finding Apparent Horizons in Numerical
Relativity", arXiv:gr-qc/9508014

Carsten Gundlach, "Pseudo-spectral apparent horizon finders: an
efficient new algorithm", arXiv:gr-qc/9707050

Jonathan Thornburg, "A Fast Apparent-Horizon Finder for 3-Dimensional
Cartesian Grids in Numerical Relativity", arXiv:gr-qc/0306056

Jonathan Thornburg, "Event and Apparent Horizon Finders for 3+1
Numerical Relativity", arXiv:gr-qc/0512169

Lap-Ming Lin, Jerome Novak, "A new spectral apparent horizon finder
for 3D numerical relativity", arXiv:gr-qc/0702038








libsharp: 

- supports arbitrary spins

Martin Reinecke, Dag Sverre Seljebotn, "Libsharp - spherical harmonic
transforms revisited", arXiv:1303.4945 [physics.comp-ph]]

, previously




SHTOOLS:

- only scalars

Mark A. Wieczorek and Matthias Meschede (2018). SHTools -- Tools for
working with spherical harmonics, Geochemistry, Geophysics,
Geosystems, 19, 2574-2592, doi:10.1029/2018GC007529.





ssht:

- use spin weights

J. D. McEwen, Y. Wiaux, "A novel sampling theorem on the sphere",
arXiv:1110.6298 [cs.IT]