xx AHFinder

AHFinder

Miguel Alcubierre/Latex version by Peter Diener

Date

Abstract

Finding Apparent Horizons in a numerical spacetime

1 Purpose Thorn AHFinder finds Apparent Horizons (AHs) in numerical spacetimes. It calulates various quantities like horizon area and its corresponding mass.

2 Using AHFinder

Thorn AHFinder can be used either with a minimization or a flow algorithm.

2.1 Parameters

General parameters

ahfinder::ahfxactive (steerable)

To activate the thorn set ahfxactive = ”yes”. This parameter is set by default to ”no”.

ahfinder::ahfxflow (steerable)

By default the minimization algorithm is used. To switch to the flow algorithm one has to set ahfxflow = ”yes”

Parameters used in evolutions

ahfinder::ahfxfindevery (steerable)

Specifies how often the finder is called. The default is to find horizons at every iteration.

ahfinder::ahfxfindafter (steerable)

The number of iterations after which the thorn is called the first time can be specified by this parameter. Here the default is 0, calling the thorn also on the initial time slice.

ahfinder::ahfxfindaftertime

Instead of specifying the number of iterations, one can specify after how much coordinate time the thorn is called the first time. When different from zero, this parameter overrides the value of ahfxfindafter. Default here is also 0.

Parameters specifying the expansion of the surface in sperical harmonics.

ahfinder::ahfxlmax

The maximal number of terms in the expansion in . The default value is 8. The maximal value is 19.

ahfinder::ahfxphi (steerable)

If axisymmetry is expected the surface does not need to be expanded in phi. This is the default. To look for non-axisymmetric surface use ahfxphi = ”yes”.

ahfinder::ahfx[xyz]c (steerable)

Sets the x-, y-, and z-coordinates of the center of the expansion. The default is the origin (ahfxxc = 0, ahfxyc = 0, ahfxzc = 0). The center of the expansion should be set inside the expected apparent horizon, otherwise the algorithm will fail.

ahfinder::ahfxwander

The center of the expansion can also be allowed to move. To do this use ahfxwander = ”yes”. However, this only works with the minimization algorithm. The default is for the center not to move.

ahfinder::ahfxr0 (steerable)

Sets the radius of the initial sphere. The default is 0.0, forcing the largest sphere possible in the grid.

Looking for three horizons

The finder can also be used to look for three horizons each time. This is done by just running the algorithm three consecutive times with different initial guesses, and is useful for simulations of black hole collisions.

ahfinder::ahfxfind3

Set ahfxfind3 = ”yes” to search for three horizons. The default is to look for only one horizon.

ahfinder::ahfx[xyz]x[012] (steerable)

Sets the x-, y-, and z-coordinates of the center of the expansion for horizon 0, 1 and 2. The default in each case is the origin.

ahfinder::ahfxr0x[0-2] (steerable)

Sets the radius of the initial spheres for horizon 0, 1 and 2. The default in all cases is 0.0, forcing the largest sphere possible in the grid.

Further parameters for the initial guess

The initial guess can be furthermore controlled by some parameters which are set to ”no” by default.

ahfinder::ahfxguessold (steerable)

To use on old horizon as initial guess set ahfxguessold = ”yes”. However, if during the evolution the apparent horizon jumps discontinuously it might be lost by using this option.

ahfinder::ahfxnn0, ahfinder::ahfxnn2

If no old horizon is used the inital guess can be specified further for the minimization algorithm. This algorithm is sensitive to the initial guess, so this is important. The initial guess is set up by an expansion in spherical harmonics in the first two coefficients (l=0,l=2). The default for both these parameters are 10, in which case the algorithm tests 100 different combinations to find the best initial guess.

ahfinder::ahfxsloppyguess

It is also possible to use only a sphere as initial guess. This is much faster and is done by using ahfxsloppyguess = ”yes”. In this case a number of spheres (specified by ahfxnn0) with different radii are tested for the initial guess.

ahfinder::ahfxinner

If one wants to look for an inner horizon instead of an outer one, use ahfinder::ahfxinner = ”yes”. This only works with the minimization algorithm.

Parameters for surface intergrals

ahfinder::ahfxntheta (steerable)

The number of subdivisions in . Default is 200.

ahfinder::ahfxnphi (steerable)

The number of subdivisions in . Default is 200.

Parameters indicating symmetries

ahfinder::ahfxref[xyz] (steerable)

Specifies the existence of reflection symmetry on the yz-plane, xz-plane and xy-plane respectively. By default all are set to ”no”.

ahfinder::ahfxoctant (steerable)

Octant symmetry is specified by using ahfxoctant = ”yes”. This is set to ”no” by default. Possible parmeter settings are ”yes” for reflection symmetries on all three coordinate planes and ”high” for an additional rotational symmetry of around the z axis.

ahfinder::ahfxcartoon (steerable)

A further symmetry can (must) be specified when running with the ”axisymmetric” mode given by the Cartoon method by using ahfxcartoon = ”yes”. This is set to ”no” by default.

Parameters for minimization algorithm

ahfinder::ahfxtol

Sets the tolerance for the minimization algorithm. The default value is 0.1.

ahfinder::ahfxmaxiter

Sets the maximum number if iterations for each step of the POWELL algorithm. The default value is 10.

ahfinder::ahfxminarea

Usually the square of the expansion is minimized. To switch to minimization of the area one can use ahfxminarea = ”yes” (default is ”no”). Notice that only for time symmetric data the surface found by area minimization will correspond to an apparent horizon.

Parameters for the flow algorithm

ahfinder::ahfxflow (steerable)

The fow algotithm is used by setting ahfxflow = ”yes”. The default is ”no”

ahfinder::ahfxflowiter (steerable)

Sets the maximum number of iterations for the flow algorithm. The default value is 200.

ahfinder::ahfxflowtol

Sets the tolerance for the flow. The default value is 0.0001.

ahfinder::ahfxflowa

Sets the parameter for the flow. The default value is 0.01.

ahfinder::ahfxflowb

Sets the parameter for the flow. The default value is 0.5.

ahfinder::ahfxflowh

Sets the weight of flow. The default value is 0.0.

ahfinder::ahfxflowc

Sets the weight of flow. The default value is 1.0.

ahfinder::ahfxflown

Sets the weight of flow (not yet implemented). The default value is 0.0.

The character of the different flows and the and parameters are described in Carsten Gundlach’s paper on his pseudo-spectral apparent horizon finder (gr-qc/9707050).

Parameters for output

ahfinder::ahfxlogfile

By default no logfile for AHFinder is written. To obtain a log file one must set ahfxlogfile = ”yes”.

ahfinder::ahfxverbose

if ahfxverbose = ”yes” messages are printed to screen at the beginning and the end of the algorithm. This is the default.

ahfinder::ahfxveryverbose

if ahfxveryverbose = ”yes” messages are also printed to screen during the iteration process. The default is ”no”.

ahfinder::ahfx2Doutput (steerable)

To get 2D output of grid functions use ahfx2Doutput = ”yes” (default is ”no”). The output is controlled be the thorn itself, not by cactus standard output.

ahfinder::ahfx3Doutput (steerable)

In future versions to get 3D output of grid functions use ahfx3Doutput = ”yes” (default is ”no”).

ahfinder::ahfxareamap

To get an area map use ahfxareamap = ”yes” (default is ”no”). This is useful for looking at the behaviour of the area for surfaces close to the horizon.

Parameters for mask

ahfinder::ahfxmask (steerable)

The mask is 0 inside the horizon and 1 outside, and is used in black-hole excision techniques. By default the mask is off. It can be enabled by setting ahfxmask = ”strong”, which sets the mask only if the finder is sure that a horizon was found, or by setting ahfxmask = ”weak”, which makes the finder set the mask also if a horizon is probably there but either the resolution or lmax are to low to really resolve it.

ahfinder::ahfxmasktype (steerable)

The mask can be of two types. Either ahfxmasktype = ”simple”, which masks a cube contained inside the horizons, or ahfxmasktype = ”lego”, which masks a lego-sphere.

ahfinder::ahfxmaskshrink (steerable)

Sets a buffer zone between the region inside the horizon and the region where the mask is 0, by limiting the mask to a region smaller than ahfxmaskshrink times the horizon radius. The default value is 0.8.

ahfinder::ahfxmaskbuffer (steerable)

Sets a buffer zone between the region inside the horizon and the region where the mask is 0 with a width of at least ahfxmaskbuffer grid points. The default value is 5.

2.2 Minimal parameter settings

Usually only a few of the parameters described above are needed in the parameter file. The simplest parameter settings for using the flow algorithm for a full 3D horizon with a large sphere as initial guess is

interpolation_orderx=x2xxxxx#xSecondxorderxinterpolation
ahf_activexxxxxxxxxx=x"yes"
ahf_flowxxxxxxxxxxxx=x"yes"
ahf_phixxxxxxxxxxxxx=x"yes"

This looks for a non-axisymmetric horizon around the origin with lmax = 8 and using the flow algorithm. It starts with the largest sphere that fits in the 3D grid and outputs 2D grid functions. The other parameters can be used if needed.

2.3 Hints for parameter settings

In full 3D the flow algorithm is faster than the minimization algorithm. However, in cases when there are very few terms in the expansion in spherical harmonics the minimization can be faster. In axisymmetry this typically happens for lmax.

While the default settings usually work fine, they can be changed to meet special purposes:

If the horizon is expected to be far from spherical the parameter ahfxlmax can be set to a higher value. 12 should be high enough. However, only values up to 20 are supported.

If the latter parameter is set to a value higher than 8 then the parameter ahfxmaxiter can be raised to, e.g., 14. This can be useful since more iterations can be necessary for higher coefficients of the expansion.

2.4 Output to Files

The output of the thorn consists of two gridfunctions and several one dimensional output files.

To depict the position of the horizon, the most important files are ahfgridx2dx...ieee. These files contain a 2D gridfunction whose zero level locates the horizon.

The files ahfxexpx2dx...ieee show the expansion of outgoing photons on the level set of the gridfunction ahfgrid. The horizon coincides with zeros of the expansion.

The surface area of the horizon is given in ahfxarea.tl

The mass of the horizon is given in ahfxmass.tl

The coefficients of the expansion in spherical harmonics are given in ahfxcoeff.alm.

The files ahfxcircxeq.tl, ahfxmerixp1.tl and ahfxmerixp2.tl contain the equatorial circumference of the surface, the length of the meridian at , and the length of the meridian at of the surface, respectively.

If an output of a logfile is set in the parameters, the log file for the last time the horizon was called is ahfxlogfile.

2.5 Some results with the finder

The finder has been examined with puncture initial data for single and binary-black hole scenarios.

Calculations with different grid spacings but constant grid size show convergence of the horizon area.

This has been checked with different linear momenta in the z direction and vanishing spin. Also for and a spin of in the x direction the horizon converges. Figurex1 shows the case with and vanishing spin.

PIC Figurex1: Convergence of the horizon area for Further, not only the area converges but also the shape of the horizon. For both the minimization and the flow algorithm the horizon converges to the same shape, as can be seen from the coefficients fo the expansion. The order of convergence for the coefficients is between 1.4 and 1.7.

By using the parameters ahfxxc, ahfxyc, ahfxzc it can also be shown that the finder also locates horizons which are not centered. This works in general as long as the surface can be expanded in spherical harmonics around this point, but the error increases with the off-centering.

The parameter ahfxr0 can be used e.g. when dealing with two black holes. If one searches for separate horizons one can center the finder on one of the locations of the holes and use an initial radius ahfxr0 smaller than the coordinate distance of the holes. With this parameter settings the single horizon can be found faster. But also a setup with an initial sphere of maximum radius should work at least for the flow algorithm. This has been checked with puncture data for two holes with vanishing linear and angular momentum for each hole (equivalent to Brill-Lindquist data) and is shown in Figurex2. Here for a coordinate distance of the holes of 1.6M the separated horizons for the holes are found but no common horizon. For a coordinate distance of 1.5M a common horizon is found and also single ones, which are inner surfaces in this case. This coincides with other work where the critical coordinate distance for a single horizon is between 1.53M and 1.56M (gr-qc/9809004).

PIC Figurex2: Horizon positions for BL data The dashed lines show inner trapped surfaces in the left figure and the surface where the algorithm stopped without finding a horizon in the right figure.

Also the Misner case was checked. Here for = 1.35 a common horizon is found. For = 1.37 separated horizons are found. From the literature we know that (e.g. gr-qc/9809004) the critical value of is 1.36. This is confirmed by the horizon finder.

The information of when a horizon was found can be seen in the cactus-logfile. There will be output from the thorn even if no horizon was found.

References

3 Parameters

11ahfx1doutput 10Scope: privatex01 BOOLEAN

11Description: 1D output of grid functions?

11                       10  x01  Default: no

11

11ahfx2doutput  10Scope: privatex01  BOOLEAN

11Description: 2D output of grid functions?

11                       10  x01  Default: no

11

11ahfx3doutput  10Scope: privatex01  BOOLEAN

11Description: 3D output of grid functions?

11                       10  x01  Default: no

11

11ahfxareamap  10Scope: privatex01  BOOLEAN

11Description: Find area map?

11                       10  x01  Default: no

11

11ahfxcartoon  10Scope: privatex01  BOOLEAN

11Description: Cartoon mode?

11                       10  x01  Default: no

11

11ahfxfind3  10Scope: privatex01  BOOLEAN

11Description: Searching for 3 surfaces?

11                       10  x01  Default: no

11ahfxfindafter  10Scope: privatex01  INT

11Description: After how many iterations look for horizons

11 Range 10 x01 Default: (none)
110:  10Any positive integer

11

11ahfxfindaftertime  10Scope: privatex01  REAL

11Description: After how much time look for horizons

11 Range 10 x01 Default: 0.0
110.0:  10Any positive real number. If non-zero overides ahfxfindafter

11

11ahfxfindevery  10Scope: privatex01  INT

11Description: How often to look for horizons

11 Range 10 x01 Default: 1
111:  10Set to 1 for searching each iteration

11

11ahfxflow  10Scope: privatex01  BOOLEAN

11Description: Use flow instead of minimization?

11                       10  x01  Default: no

11

11ahfxflowa  10Scope: privatex01  REAL

11Description: alpha parameter for flow

11 Range 10 x01 Default: 0.01
11:  10Anything

11

11ahfxflowb  10Scope: privatex01  REAL

11Description: beta parameter for flow

11 Range 10 x01 Default: 0.5
11:  10Anything

11

11ahfxflowc  10Scope: privatex01  REAL

11Description: Weight of C flow

11 Range 10 x01 Default: 1.0
11:  10Anything

11

11ahfxflowh  10Scope: privatex01  REAL

11Description: Weight of H flow

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxflowiter  10Scope: privatex01  INT

11Description: Maximum number of iterations for flow

11 Range 10 x01 Default: 200
110:  10Anything

11

11ahfxflown  10Scope: privatex01  REAL

11Description: Weight of N flow

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxflowtol  10Scope: privatex01  REAL

11Description: Tolerance for flow

11 Range 10 x01 Default: 0.0001
11:  10Anything

11ahfxgaussout  10Scope: privatex01  BOOLEAN

11Description: Output gaussian curvature of horizon?

11                       10  x01  Default: yes

11

11ahfxguessxabsmin  10Scope: privatex01  BOOLEAN

11Description: Use absolute min to start minimization?

11                       10  x01  Default: no

11

11ahfxguessold  10Scope: privatex01  BOOLEAN

11Description: Use old horizon as initial guess?

11                       10  x01  Default: no

11

11ahfxguessverbose  10Scope: privatex01  BOOLEAN

11Description: Print info on initial guess?

11                       10  x01  Default: no

11

11ahfxhdf5output  10Scope: privatex01  BOOLEAN

11Description: HDF5 output of AHFinder data?

11                       10  x01  Default: no

11

11ahfxinner  10Scope: privatex01  BOOLEAN

11Description: Look for inner horizon?

11                       10  x01  Default: no

11

11ahfxl0xguess  10Scope: privatex01  REAL

11Description: Manual guess for l=0 component

11 Range 10 x01 Default: 1.0
11:  10Anything

11

11ahfxl10xguess  10Scope: privatex01  REAL

11Description: Manual guess for l=10 component

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxl12xguess  10Scope: privatex01  REAL

11Description: Manual guess for l=12 component

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxl14xguess  10Scope: privatex01  REAL

11Description: Manual guess for l=14 component

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxl16xguess  10Scope: privatex01  REAL

11Description: Manual guess for l=16 component

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxl18xguess  10Scope: privatex01  REAL

11Description: Manual guess for l=18 component

11 Range 10 x01 Default: 0.0
11:  10Anything

11ahfxl2xguess  10Scope: privatex01  REAL

11Description: Manual guess for l=2 component

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxl4xguess  10Scope: privatex01  REAL

11Description: Manual guess for l=4 component

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxl6xguess  10Scope: privatex01  REAL

11Description: Manual guess for l=6 component

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxl8xguess  10Scope: privatex01  REAL

11Description: Manual guess for l=8 component

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxlmax  10Scope: privatex01  INT

11Description: Maximum number of terms in theta expansion

11 Range 10 x01 Default: 8
110:19  10Range from 0 to 19

11

11ahfxlogfile  10Scope: privatex01  BOOLEAN

11Description: Write log file?

11                       10  x01  Default: no

11

11ahfxmanualxguess  10Scope: privatex01  BOOLEAN

11Description: Use specified coefficients for guess?

11                       10  x01  Default: no

11

11ahfxmask  10Scope: privatex01  KEYWORD

11Description: Use mask?

11 Range 10 x01 Default: off
11off  10Mask is off
11strong  10Mask set only for definite horizons
11weak  10Mask set for both definite and probable horizons

11

11ahfxmaskx0  10Scope: privatex01  BOOLEAN

11Description: Mask for first horizon with find3?

11                       10  x01  Default: yes

11

11ahfxmaskx1  10Scope: privatex01  BOOLEAN

11Description: Mask for second horizon with find3?

11                       10  x01  Default: yes

11

11ahfxmaskx2  10Scope: privatex01  BOOLEAN

11Description: Mask for third horizon with find3?

11                       10  x01  Default: yes

11ahfxmaskxtime  10Scope: privatex01  REAL

11Description: Time after which to start setting the mask

11 Range 10 x01 Default: -1.0
11:  10Anything goes. Negative number means setting the mask as soon as possible

11

11ahfxmaskbuffer  10Scope: privatex01  INT

11Description: Number of grid points in mask buffer zone

11 Range 10 x01 Default: 5
110:*  10Positive please

11

11ahfxmaskshrink  10Scope: privatex01  REAL

11Description: Shrink factor for mask

11 Range 10 x01 Default: 0.8
110.0:1.0  10Must be positive and not larger than 1

11

11ahfxmasktype  10Scope: privatex01  KEYWORD

11Description: Type of mask

11 Range 10 x01 Default: cube
11lego  10Mask is a lego sphere
11cube  10Mask is a cube
11poly  10Mask is a polyhedra

11

11ahfxmaxchange  10Scope: privatex01  REAL

11Description: Maximum relative difference between 1 big and 2 small steps

11 Range 10 x01 Default: 0.1
11:  10Anything

11

11ahfxmaxiter  10Scope: privatex01  INT

11Description: Maximum number of iterations of POWELL

11 Range 10 x01 Default: 10
11:  10Any sensible integer value

11

11ahfxminarea  10Scope: privatex01  BOOLEAN

11Description: Minimize area instead of expansion?

11                       10  x01  Default: no

11

11ahfxminchange  10Scope: privatex01  REAL

11Description: Minimum relative difference between 1 big and 2 small steps

11 Range 10 x01 Default: 0.01
11:  10Anything

11

11ahfxnn0  10Scope: privatex01  INT

11Description: Number of subdivisions of c0(0) for initial guess

11 Range 10 x01 Default: 10
11:  10Some positive integer

11

11ahfxnn2  10Scope: privatex01  INT

11Description: Number of subdivisions of c0(2) for initial guess

11 Range 10 x01 Default: 10
11:  10Some positive integer

11ahfxnphi  10Scope: privatex01  INT

11Description: Number of subdivisions in phi

11 Range 10 x01 Default: 100
111:  10Any sensible integer

11

11ahfxntheta  10Scope: privatex01  INT

11Description: Number of subdivisions in theta

11 Range 10 x01 Default: 100
111:  10Any sensible integer

11

11ahfxoctant  10Scope: privatex01  KEYWORD

11Description: Octant symmetry?

11 Range 10 x01 Default: no
11no  10No octant symmetry
11yes  10Octant symmetry: reflection symmetry on all three coordinate planes
11high  10Octant symmetry + symmetry of rotation of pi/2 around z axis

11

11ahfxoffset  10Scope: privatex01  BOOLEAN

11Description: Center offset from origin?

11                       10  x01  Default: no

11

11ahfxphi  10Scope: privatex01  BOOLEAN

11Description: Expand also in phi? (seach for non-axisymmetric surface)

11                       10  x01  Default: no

11

11ahfxr0  10Scope: privatex01  REAL

11Description: Radius of initial sphere (0 forces largest sphere)

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxr0x0  10Scope: privatex01  REAL

11Description: Radius of first initial sphere for find3 (0 forces largest sphere)

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxr0x1  10Scope: privatex01  REAL

11Description: Radius of second initial sphere for find3 (0 forces largest sphere)

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxr0x2  10Scope: privatex01  REAL

11Description: Radius of third initial sphere for find3 (0 forces largest sphere)

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxrefx  10Scope: privatex01  BOOLEAN

11Description: Reflection symmetry x->-x?

11                       10  x01  Default: no

11

11ahfxrefy  10Scope: privatex01  BOOLEAN

11Description: Reflection symmetry y->-y?

11                       10  x01  Default: no

11ahfxrefz  10Scope: privatex01  BOOLEAN

11Description: Reflection symmetry z->-z?

11                       10  x01  Default: no

11

11ahfxreportalways  10Scope: privatex01  BOOLEAN

11Description: Report for all surfaces found (yes) or just for apparent horizons (no)

11                       10  x01  Default: no

11

11ahfxshiftcoeff  10Scope: privatex01  REAL

11Description: Coefficient for shift

11 Range 10 x01 Default: 0.0
11:  10Anything goes

11

11ahfxsloppyguess  10Scope: privatex01  BOOLEAN

11Description: Use sphere as initial guess?

11                       10  x01  Default: no

11

11ahfxtol  10Scope: privatex01  REAL

11Description: Tolerance for minimization routines

11 Range 10 x01 Default: 0.1
110:  10A sensible positive number

11

11ahfxtrappedxsurface  10Scope: privatex01  BOOLEAN

11Description: Minimize (expansion + delta) to find trapped surface?

11                       10  x01  Default: no

11

11ahfxverbose  10Scope: privatex01  BOOLEAN

11Description: Print messages to screen?

11                       10  x01  Default: yes

11

11ahfxveryverbose  10Scope: privatex01  BOOLEAN

11Description: Print messages at each iteration step to screen?

11                       10  x01  Default: no

11

11ahfxwander  10Scope: privatex01  BOOLEAN

11Description: Allow the center to wander?

11                       10  x01  Default: no

11

11ahfxxc  10Scope: privatex01  REAL

11Description: x-coordinate of center of expansion

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxxcx0  10Scope: privatex01  REAL

11Description: x-coordinate of center of expansion for first surface with find3

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxxcx1  10Scope: privatex01  REAL

11Description: x-coordinate of center of expansion for second surface with find3

11 Range 10 x01 Default: 0.0
11:  10Anything

11ahfxxcx2  10Scope: privatex01  REAL

11Description: x-coordinate of center of expansion for third surface with find3

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxyc  10Scope: privatex01  REAL

11Description: y-coordinate of center of expansion

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxycx0  10Scope: privatex01  REAL

11Description: y-coordinate of center of expansion for first surface with find3

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxycx1  10Scope: privatex01  REAL

11Description: y-coordinate of center of expansion for second surface with find3

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxycx2  10Scope: privatex01  REAL

11Description: y-coordinate of center of expansion for third surface with find3

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxzc  10Scope: privatex01  REAL

11Description: z-coordinate of center of expansion

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxzcx0  10Scope: privatex01  REAL

11Description: z-coordinate of center of expansion for first surface with find3

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxzcx1  10Scope: privatex01  REAL

11Description: z-coordinate of center of expansion for second surface with find3

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11ahfxzcx2  10Scope: privatex01  REAL

11Description: z-coordinate of center of expansion for third surface with find3

11 Range 10 x01 Default: 0.0
11:  10Anything

11

11horizonxtoxannouncexcentroid 10Scope: privatex01  INT

11Description: For which horizon should we announce the centroid to driftcorrect

11 Range 10 x01 Default: (none)
11                       10don’t announce the centroid
111:3  10announce this horizon’s centroid each time we find it

11horizonxtoxoutputxcentroid10Scope: privatex01  INT

11Description: For which horizon should we output the centroid

11 Range 10 x01 Default: (none)
11                       10don’t output any centroids
111:3  10output this horizon’s centroid each time we find it

11

11interpolationxoperator 10Scope: privatex01  STRING

11Description: Name of interpolation operator to use

11 Range 10 x01 Default: uniform cartesian
11.+  10A valid name for a registered interpolation operator

11

11interpolationxorder  10Scope: privatex01  INT

11Description: Order for interpolation

11 Range 10 x01 Default: 2
111:4  10Choose between first and fourth order interpolation

11

11trappedxsurfacexdelta  10Scope: privatex01  REAL

11Description: find (expansion = delta) surface

11 Range 10 x01 Default: 0.0
11:  10Just a real number

11

11ahfxactive  10Scope: restrictedx01  BOOLEAN

11Description: Activate AHFinder?

11                       10  x01  Default: no

11

11ahfxpersists  10Scope: restrictedx01  BOOLEAN

11Description: Do the finder grid functions stay around?

11                       10  x01  Default: no

11

11usexmask  10Scope: shared from SPACEMASKx01BOOLEAN

11

4 Interfaces

General Implements: ahfinder

Inherits: admbase staticconformal spacemask grid io admmacros

Grid Variables

4.0.1 PRIVATE GROUPS

11x Group Names x10x Variable Names xx01 Details x11x
11 triggergroup 10  x01  compact110
11                 10  triggervar  x01 description11For triggering output
11                 10  x01 dimensions110
11                 10  x01 distribution11CONSTANT
11                 10  x01 group type11SCALAR
11                 10  x01 timelevels111
11                 10  x01variable type11INT
11  ahfgradient  10  x01  compact110
11                 10  ahfgradx  x01 description11Grid functions for gradients
11                 10  ahfgrady  x01 dimensions113
11                 10  ahfgradz  x01 distribution11DEFAULT
11                 10  ahfgradn  x01 group type11GF
11                 10  x01 timelevels111
11                 10  x01variable type11REAL
11 ahfinderxgauss 10  x01  compact110
11                 10  ahfgauss  x01 description11Grid function for gaussian curvature calculation
11                 10  x01 dimensions113
11                 10  x01 distribution11DEFAULT
11                 10  x01 group type11GF
11                 10  x01 timelevels111
11                 10  x01variable type11REAL
11  find3grid  10  x01  compact110
11                 10  ahfgrid3  x01 description11Grid functions to use in find3 algorithm
11                 10  ahfxexp3  x01 dimensions113
11                 10  x01 distribution11DEFAULT
11                 10  x01 group type11GF
11                 10  x01 timelevels111
11                 10  x01variable type11REAL
11 ahfxcentroid 10 x01 compact110
11                 10 ahfxcentroidxx x01 description11Centroid of one of the horizons
11                 10 ahfxcentroidxy x01 dimensions110
11                 10 ahfxcentroidxz x01 distribution11CONSTANT
11                 10  x01 group type11SCALAR
11                 10  x01 timelevels111
11                 10  x01variable type11REAL
11  driftxcheck  10  x01  compact110
11                 10  driftxfirst  x01 description11For checking if its the first drift correction
11                 10  x01 dimensions110
11                 10  x01 distribution11CONSTANT
11                 10  x01 group type11SCALAR
11                 10  x01 timelevels111
11                 10  x01variable type11INT

11x Group Names x10x Variable Names xx01 Details x11x
11  outxscalars  10  x01  compact110
11                 10  outxmass  x01 description11Output of scalar variables
11                 10  outxradius  x01 dimensions110
11                 10  outxarea  x01 distribution11CONSTANT
11                 10 outxperimeter x01 group type11SCALAR
11                 10 outxmeridian1 x01 timelevels111
11                 10 outxmeridian2 x01variable type11REAL
11 outx1dxlegen 10  x01  compact110
11                 10  outxc0  x01 description11Output of c0 coefficients
11                 10  x01 dimensions111
11                 10  x01 distribution11CONSTANT
11                 10  x01 group type11ARRAY
11 10 x01 size11AHFxLMAX
11                 10  x01 timelevels111
11                 10  x01variable type11REAL
11 outx2dxlegen 10  x01  compact110
11                 10  outxcc  x01 description11Output of cc and cs coefficients
11                 10  outxcs  x01 dimensions112
11                 10  x01 distribution11CONSTANT
11                 10  x01 group type11ARRAY
11                 10  x01  size11AHFxLMAX
11                 10  x  x01  size11AHFxLMAX
11                 10  x01 timelevels111
11                 10  x01variable type11REAL
11 ahfinderxgaussian 10  x01  compact110
11                 10  gaussian  x01 description11Gaussian Curvature
11                 10  x01 dimensions112
11                 10  x01 distribution11CONSTANT
11                 10  x01 group type11ARRAY
11                 10  x01  size11AHFxNTHETA+1
11                 10  x  x01  size11AHFxNPHI+1
11                 10  x01 timelevels111
11                 10  x01variable type11REAL

11

4.0.2 PUBLIC GROUPS

11x Group Names x10x Variable Names xx01 Details x11x
11 ahfindergrid 10  x01  compact110
11                 10  ahfgrid  x01 description11Horizon function
11                 10  x01 dimensions113
11                 10  x01 distribution11DEFAULT
11                 10  x01 group type11GF
11                 10  x01 timelevels111
11                 10  x01variable type11REAL
11 ahfinderexp 10  x01  compact110
11                 10  ahfxexp  x01 description11Expansion
11                 10  x01 dimensions113
11                 10  x01 distribution11DEFAULT
11                 10  x01 group type11GF
11                 10  x01 timelevels111
11                 10  x01variable type11REAL
11  ahfmask  10  x01  compact110
11                 10  ahmask  x01 description11Grid function for masking
11                 10  x01 dimensions113
11                 10  x01 distribution11DEFAULT
11                 10  x01 group type11GF
11                 10  x01 timelevels111
11                 10  x01variable type11REAL
11 hole1xbounds 10  x01  compact110
11                 10  dhole1xxmin  x01 description11Bounds of excision box for hole 1
11                 10  dhole1xymin  x01 dimensions110
11                 10  dhole1xzmin  x01 distribution11CONSTANT
11                 10 dhole1xxmax x01 group type11SCALAR
11                 10 dhole1xymax x01 timelevels111
11                 10  dhole1xzmax  x01variable type11REAL
11 hole2xbounds 10  x01  compact110
11                 10  dhole2xxmin  x01 description11Bounds of excision box for hole 2
11                 10  dhole2xymin  x01 dimensions110
11                 10  dhole2xzmin  x01 distribution11CONSTANT
11                 10 dhole2xxmax x01 group type11SCALAR
11                 10 dhole2xymax x01 timelevels111
11                 10  dhole2xzmax  x01variable type11REAL
11 hole3xbounds 10  x01  compact110
11                 10  dhole3xxmin  x01 description11Bounds of excision box for hole 3
11                 10  dhole3xymin  x01 dimensions110
11                 10  dhole3xzmin  x01 distribution11CONSTANT
11                 10 dhole3xxmax x01 group type11SCALAR
11                 10 dhole3xymax x01 timelevels111
11                 10  dhole3xzmax  x01variable type11REAL

11

5 Schedule This section lists all the variables which are assigned storage by thorn EinsteinAnalysis/AHFinder. 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

11x11Conditional:
11x 11hole1xbounds hole2xbounds hole3xbounds ahfxcentroid
11x 11outxscalars
11x 11ahfinderxgaussian
11x 11outx1dxlegen outx2dxlegen
11x 11ahfindergrid ahfinderexp ahfgradient ahfinderxgauss find3grid
11x 11ahfmask
11x 11ahfmask
11x 11hole1xbounds hole2xbounds hole3xbounds

11x 11x

11

Scheduled Functions

CCTKxWRAGH x ahfinderxsetsym x set symmetries for ahfinder grid functions x

11x11Language:11fortran
11 x 11Options: 11global
11 x 11Type: 11function

11

CCTKxSTARTUP x ahfinderxstartup x register ahfinder as an io method x

11x11Language:11c
11 x 11Options: 11global
11 x 11Type: 11function

11

CCTKxPARAMCHECK x ahfinderxparamcheck x check for physical or conformal metric x

11x11Language:11fortran
11 x 11Options: 11global
11 x 11Type: 11function

11

CCTKxINITIAL x ahfinderxinitoutput x create output files, write headers x

11x11Language:11fortran
11 x 11Type: 11function

11

CCTKxANALYSIS (conditional) x ahfinder x call apparent horizon finder with persisting grid functions

11x11Before: 11driftcorrect
11 x 11Language:11fortran
11 x 11Storage: 11triggergroup
11 x 11Triggers: 11triggergroup
11 x 11Type: 11function

11

CCTKxANALYSIS (conditional) x ahfinder x call apparent horizon finder x

11x11Before: 11driftcorrect
11 x 11Language:11fortran
11 x 11Storage: 11ahfindergrid
11 x 11x  11ahfinderexp
11 x 11x  11ahfgradient
11 x 11x  11ahfinderxgauss
11 x 11x  11find3grid
11 x 11x  11ahfmask
11 x 11x  11triggergroup
11 x 11Triggers: 11triggergroup
11 x 11Type: 11function

11

CCTKxANALYSIS (conditional) x ahfinder x call apparent horizon finder with persisting mask x

11x11Before: 11driftcorrect
11 x 11Language:11fortran
11 x 11Storage: 11ahfindergrid
11 x 11x  11ahfinderexp
11 x 11x  11ahfgradient
11 x 11x  11ahfinderxgauss
11 x 11x  11find3grid
11 x 11x  11triggergroup
11 x 11Triggers: 11triggergroup
11 x 11Type: 11function