xx Thorn Guide for the EHFinder Thorn

Thorn Guide for the EHFinder Thorn

Original code and documentation by Peter Diener

Date

Abstract

This thorn locates the Event Horizon (EH) in an analytic or numerical spacetime by evolving a null surface backwards in time. The null surface is described at each time step as the 0-level iso-surface of a 3D scalar function . This level set description of the surface allows, trivially, changes of the topology of the surface so it is possible to follow the merger of two (or more) black holes into a final black hole.

1 Introduction

This thorn attempts to locate the Event Horizon (EH) in an analytic or numerical spacetime by evolving a null surface backwards in time. This method depends on the fact that, except in cases where the coordinates are adapted to outgoing null geodesics, an outgoing null surface started close to the EH, when evolved forward in time, is diverging exponentially from the EH. Reversing the time evolution then means that an outgoing null surface will converge exponentially to the EH. The level set function, , is evolved according to where in the second equation the lapse, shift and 3-metric has been substituted for the 4-metric. For more details on the theory and implementation seex[1].

This thorn uses a level set description of the null surface, i.e.the surface is the 0-level isosurface of a 3D scalar function, , that is negative inside and positive outside the surface. With this choice of surface description one level-set function can describe multiple surfaces at the same time, simply by having several, disconnected regions with negative values. The biggest advantage, however, is that any change of topology of the surface is handled naturally and simply by the level-set function changing sign. Therefore this EHFinder can follow the EH during the merger of two (or more) black holes into one black hole.

To find the EH in a numerical spacetime several points have to be taken into consideration. Since the null surface has to be evolved backwards in time, the EHFinder has to be seen as a pre-processing analysis thorn. Therefore it is necessary to evolve the initial data forward in time while outputting enough 3D data, that the full 4-metric can be recovered at each timestep. The 3D data is then read back in, in reverse order, while the level-set function is evolved backwards in time. The thorn can evolve more than one level set function at a time using different initial guesses for the surfaces (NOTE: this is a quite recent feature and has not yet been tested extensively). More details about the actual use of the thorn in sectionx7

2 Re-initialization

The evolution equation for , equationx(??), causes steepening of the gradient of , which is undesireble numerically. For that reason, is periodically re-initialized to a distance function. That is, the values of are changed so that the the value of in a grid point is equal to the (signed) distance from the grid point to the surface . This is done by evolving according to the following evolution equation (in the parameter )

until a steady state is achieved. This method is called the pde-method since it is basically evolving a pde. Sometimes the surface can be moved slightly during the re-initialization procedure. This happens when the surface develops a narrow neck just before a topology change. For that reason, there is an option to detect when this is about to happen and undo the re-initialization.

There used to be another method doing the re-initialization, but it proved inferior to the pde-method and was removed. Other methods may be implemented in the future.

3 The initial shape of the surface

Currently three different choices for the initial shape of the surface are implemented. The simplest choice is a sphere in which case is set according to where is the radius of the sphere and , and are the coordinates of the center of the sphere. The second choice is a rotated and translated ellipsoid. The basic equation is here This ellipsoid is first rotated an angle around the -axis, then rotated an angle around the -axis, then rotated an angle around the -axis and finally the rotated ellipsoid is translated to have its “center” at the point . The final possible shape of the initial surface is an ovaloid of Cassini. This was implented initially to test changing the topology in flat space. it is most likely not useful for numerical data. In this case is set according to

There are no translation or rotations implemented for the ovaloid of Cassini.

Different initial shapes can be used for the different level set functions used in the same run.

4 Excision

Even though the level set function, , in principle can be defined everywhere it is often advantageous to only evolve it in a certain region around the surface . Since is re-initialized regularly to become a distance function, itself can be used as a measure of the distance from a certain grid point to the surface . The parameter ehfinder::shellxwidth specifies the size of the active region around . However the interior and exterior excisions are handled differently. The interior excision is most simple, since here all grid points with are marked as inactive. This should work in all cases when the excised region is everywhere concave, since then all points on the boundary of the excised region will have enough neighbouring active points to be able to calculate second order accurate one sided derivatives. If the interior excised region happens to have a convex region, this might fail. To avoid a similiar problem at the outer excised boundary, this boundary is shaped as a rectangular box. The box is chosen so that all points with are in the active region. This is illustrated in Figurex1, for the case PIC Figurex1: Illustration of the excision regions used internally by EHFinder. The hashed regions are excised. ehfinder::shellxwidth = 4, where the excised regions are hashed.

Changes to the excision regions are only done after re-initialization, since it is only at this time that is a distance function. The excision regions can move across the grid, tracking the surface .

Also if the numerical run was done with excision using SpaceMask, the EHFinder excision region is guaranteed to completely cover the numerical excision region. The EHFinder currently only supports the old style excision mask but the support of the new style excision mask should be trivial and fast to implement.

5 Upwinding

All finite differences used in the evolution of the null surface are second order one sided differences. For that reason a ghostxsize larger or equal to 2 should always be used. It is possible to choose between three different upwinding schemes. This is done by setting the parameter ehfinder::upwindxtype to either intrinsic, shift

or characteristic.

The intrinsic scheme, looks at the values of itself, to determine the direction of the stencil. This is basically in order to be able to handle situations like the one illustrated in 1D in Figurex2.

PIC Figurex2: An illustration of how to choose the upwinding stencil when is not differntiable everywhere If the stencil for calculating derivatives in the point labeled 1 is taken to consist of the points 1, 2 and 3’, the non differentiablility of may cause problems. The algorithm detects this and instead uses the points 1, 2, 3 as the stencil. This ensures that a non differentiable feature can be maintained in the evolution.

However this scheme only works in a few simple cases. For more general cases it is important to use characteristic information in order to ensure that the numerical stencil contains the domain of dependence. Therefore the characteristic scheme was introduced. Fortunately, by using the information contained in the level set functions the characteristic of the level set function can be calculated using

The method estimates the characteristic direction using centered finite differences in equationx(??) and then recalculates the one sided finite differences in the appropriate direction.

It might happen that the upwinding direction based on the characteristic direction results in the stencil to consist of the points 1, 2, 3’ in Figurex2. However, if the re-initialization is done often enough, this turns out not to cause any problems.

The shift scheme was implemented as an improvement to the intrinsic scheme but it turned out that the characteristic scheme was superior. Therefore shift upwinding should not be used. It might be completely removed in future revisions.

For the re-initialization the default is to use the intrinsic second order scheme (the re-initialization doesn’t depend on where the surface is moving), so characteristic upwinding is not applicable. It is possible to use a first order intrinsic scheme, but this is, in my experience, not accurate enough. A centered differencing scheme is also available, but is only there for testing purposes and should never be used. These alternative schemes will probably be removed in the future.

6 The most important parameters

Here the most important parameters are described.

     ehfinder::mode

The mode can either be set to normal (normal event horizon finder mode), analysis (compare a previously calculated level set function to a small number of analytic spacetimes) and generator (only evolve the generators while keeping the level set function fixed). The default is normal and should normally not be changed. The other modes are only useful for debugging and testing purposes.

     ehfinder::ehxnumberxlevelxsets

An integer parameter specifying how many individual level set functions to evolve at a time. Currently it has to be between 1 and 10.

ehfinder::ehxmetricxtype

The metric type can either be set to numerical or analytic. If it is set to numerical the EHFinder will attempt to read in the metric from files in the directory specified by the io::recoverxdir parameter. At present all the timesteps has to be saved in the same file. Note that if the numerical data was produced with admbase::metricxtype = "static conformal" this parameter has to be specified again. In this case the EHFinder will attempt to also read in the conformal factor from a file. If metric type is set to analytic another thorn needs to set up the metric. It is possible to only set the metric on the initial slice, but it is also possible to have a thorn (like thorn Exact) set the metric at CCTKxPRESTEP if the analytic metric is time dependent. The default is numerical.

ehfinder::ehxlapsextype

The same for the lapse.

ehfinder::ehxshiftxtype

The same for the shift.

initialxf[i]

A vector parameter specifying the initial shape of the null surface for the individual level set functions. The initial shape can currently be chosen from sphere, ellipsoid and cassini as described in sectionx3. The default is sphere.

initialxrad[i]

A vector parameter specifying the radius of the initial sphere ( in equationx??). The deafault is 1.

translatexx[i]

A vector parameter specifying how much to translate the initial surface in the -direction ( in equationx??). Also used for the initial ellipsoid. The default is 0.

translatexy[i]

A vector parameter specifying how much to translate the initial surface in the -direction ( in equationx??). Also used for the initial ellipsoid. The default is 0.

translatexz[i]

A vector parameter specifying how much to translate the initial surface in the -direction ( in equationx??). Also used for the initial ellipsoid. The default is 0.

initialxa[i]

A vector parameter specifying in equationx??. The default is 1.

initialxb[i]

A vector parameter specifying in equationx??. The default is 1.

initialxc[i]

A vector parameter specifying in equationx??. The default is 1.

rotationxalpha[i]

A vector parameter specifying the rotation angle for the ellipsoid around the -axis. The default is 0.

rotationxbeta[i]

A vector parameter specifying the rotation angle for the ellipsoid around the -axis. The default is 0.

rotationxgamma[i]

A vector parameter specifying the rotation angle for the ellipsoid around the -axis. The default is 0.

shellxwidth

The width of the active evolution region. Grid points more than shellxwidth gridspacings away from the surface are marked as inactive and are not evolved as described in sectionx4. The default is gridspacings.

usexinnerxexcision

A boolean parameter specifying whether the interior excision should be used or not.

usexouterxexcision

A boolean parameter specifying whether the exterior excision should be used or not.

upwindxtype

The type of upwinding to be used (either intrinsic, shift or characteristic). See the detailed description of the upwinding types in sectionx5. The default is characteristic.

surfacexdirection

The code can track both outgoing and ingoing null surfaces. Choose the direction by using outward or inward. The default is outward. Note that the code only works as an event horizon finder when evolving outward going null surfaces backwards in time.

rexinitxundo

Should the re-initialization be undone just before pinch-off or not as described in sectionx2. The default is "no".

rexinitxintxmethod

Choose the integration method in the pde-re-initialization method. Choose either a simple Euler (euler) integration scheme or a second order Runge-Kutta (rk2) scheme. Since a pde is evolved to steady state, it seems that the Euler scheme works just fine and is faster than the Runge-Kutta scheme. The default is euler.

rexinitxmaxxiter

The maximum number of iterations in the pde-re-initialization scheme, before giving up. Unless you are working at high resolution the default should be enough. The default is 800.

pdexdifferences

Choose the type of finite differencing used in the pde re-initialization. Don’t ever use anything else than second order upwinding (upwind2). The other choices (centered and upwind) are there only for testing purposes and might be removed.

rexinitializexevery

How often to re-initialize using the pde re-initialization. This depends on the problem. For some problems it is necessary to do it more often than for other problems. You’ll have to experiment to figure out what works best. The default is 10.

lastxiterationxnumber

The last iteration number of the numerical simulation that produced the metric data. Active when

ehxmetricxtype is equal to numerical.

savedxiterationxevery

How often was the numerical data saved? This and the above parameter is used in the code to figure out which data set iteration number to read in from file

(lastxiterationxnumber-savedxiterationxevery*cctkxiteration).

ntheta

How many points in the -direction should be used for integrations over the surface.

nphi

How many points in the -direction should be used for integrations over the surface.

maximumxsurfacexnumber

The maximal number of surfaces expected at any given time during the whole evolution.

surfacexinterpolator

Which interpolator to use for the location of points on the surface. It should be the name of a valid interpolator provided by one of the available interpolators. The interpolator should be able to return both the interpolated value and derivatives. At present this is provided by AEILocalInterp.

The default is Hermite polynomial interpolation.

surfacexinterpolationxorder

The interpolation order used for finding points on the surface. Higher orders require larger number of ghost zones for parallel runs. The default value is 2 (consistent with a ghostsize of 2).

areaxinterpolator

Which interpolator should be used to interpolate metric information onto the surface once the surface points have been found. The default is Lagrange polynomial interpolation.

areaxinterpolationxorder

The interpolation order used for calculating the area of the surface. The default value is 3 (consistent with a ghostsize of 2).

EHFinder also extends the following parameter from admbase in order to be able to read in initial data.

     admbase::initialxdata is extended with "read from file".

     admbase::initialxlapse is extended with "read from file".

     admbase::initialxshift is extended with "read from file".

7 How to use EHFinder with numerical data

In this section I will try to describe in little more detail how EHFinder can be used to find the EH in a numerical spacetime.

7.1 Outputting numerical data

The first thing to make sure, is that enough data is output during the numerical run, to be able to reconstruct the full 4-metric. The required output therefore consists of the ADMBase::metric, ADMBase::lapse and ADMBase::shift. However if the evolution was done with zero shift and/or lapse equal to one, it is not necessary to output these grid functions, as long as storage is turned on and they are set to the correct value initially when EHFinder is run. If the evolution was done with a conformal factor then StaticConformal::psi has to be output as well, since it is necessary in order to reconstruct the 4-metric. However it is only necessary to output this once since it is constant during the evolution. It is not necessary to output the derivatives of the conformal factor. If excision was used in the numerical run then it is also necessary to output

SpaceMask::emask1 ^{1When more thorns have been converted to use SpaceMask::spacexmask this option will also be supported.} , since EHFinder has to make sure that its internal mask covers the space mask.

At present it is necessary to output all timesteps into the same file (use IO::outxtimestepsxperxfile = -1, which is the default). In principle both FLEXIO and HDF5 output should be supported, but only HDF5 output has been tested. Since EHFinder can be run on a lot less processors compared to the spacetime evolution, it is often advantageous to either do unchuncked output or to recombine the output files, since it is then possible to read the data onto a smaller number of processors (use IO::outxunchunked = "yes" to write unchunked data). If the numerical run is larger than the EH containing region (hopefully that is the case; otherwise the boundaries are definitely to close in), it is possible to use hyperslabbing to just output the EH containing region (see for example CactusPUGHIO/IOHDF5 for details on this). If hyperslabbing is used it is definitely necessary to do the output unchunked or recombine afterwards. An example parameter file can be seen in the

par/Misnerx2.2x80x3D.par.

In principle EHFinder should also work for downsampled (in both space and time) data, but no experiments have been done so far to estimate the loss of accuracy (I have always used the full resolution and done output at every timestep).

If hyperslabbing and/or downsampling is used, it is the users responsibility (by specifying the right parameters in the parameter file) to ensure that EHFinder is run with the correct grid spacing and time step.

7.2 Tips for parameter choices

EHFinder is still under development and testing and can as yet not be used as a black box. But still I can give some guidelines and advice on how to proceed.

The first concern is to setup the initial guess for the surface. Ideally one would like to use at least two different initial surfaces. One surface completely inside the EH and one surface completely outside the EH. In practice it is often a good idea to use more than two different initial surfaces, since then the initial surfaces closest to the EH can be identified. Using the feature of evolving multiple level set functions at a time, this can be done while reading in the numerical data only once. The easiest way to get an initial surface inside the EH, is to set up the initial guess to be completely inside the apparent horizon (AH). To get an initial guess that is outside of the EH is not as easy. One way is to choose a surface, that starts to contract everywhere when evolved according to equationx(??). However this is not a guarantee, since the EH can be expanding in the numerical coordinates. This of course means that it is necessary to do it by trial and error. Set up some initial guess evolve it for a little while, look at 3D output to determine if the surface is contracting everywhere and change the initial surface if necessary.

Then comes the question of how often to do the re-initialization and how much to excise. These parameters depend on the numerical data. In principle, since the re-initialization can move the surface, one wants to do it as rarely as possible. On the other hand, re-initialization is necessary in order to keep the evolution nicely controlled (by avoiding large gradients), so a compromise has to be found. This might require some experimentation. Because movements of the surface during re-initialization, usually only occurs close to moments of topology change, it might be necessary to evolve all the way beyond the change of topology and look at 3D output to see if any problems occured. If significant movement of the surface during re-initialization near the change of topology is observed, then try again with re-initialization undo activated. How often to do the re-initialization also depends on the width of the active region. If the active region around the surface is narrow, it might be necessary to re-initialize more often, since in this case the boundaries of the active region is closer to the surface. At the boundaries the stencil direction is dictated by the geometry and not itself or the characteristics, which might cause instabilities if it is not re-initialized. Good values guesses for ehfinder::reinitializexeveryxpde seems to in the range 5–10 at low or medium resolutions but can usually be increased for higher resolutions. For ehfinder::shellxwidth I normally use at least EHFinder does not yet work fully with the fixed mesh refinement driver Carpet, but this is under development. Currently the evolution of the level set function and the re-initialization works, but only with no inner and outer excision. The analysis routines to find areas of the surfaces does not work with Carpet. Reading in metric data has not been tested with Carpet.

This documentation will be updated, as input comes in from users.

Happy event horizon finding.

References

[1]xxxDiener P., 2003, 2003, Classical and Quantum Gravity, 20, 4901–4917, A New General Purpose Event Horizon Finder for 3D Numerical Spacetimes, gr-qc/0305039

8 Parameters

11areaxcalculationxmethod 10Scope: privatex01  KEYWORD

11Description: How should the areas be calculated

11 Range 10 x01 Default: standard
11standard  10Using a angular coordinate system on the surface
11isosurface  10Using an isosurface triangulation

11

11areaxinterpolationxorder 10Scope: privatex01  INT

11Description: What order should be used for the area interpoation

11 Range 10 x01 Default: 3
111:*  10A valid positive interpolation order

11

11areaxinterpolator  10Scope: privatex01  STRING

11Description: What interpolator should be used for the area

11 Range 10 x01 Default: Lagrange polynomial interpolation
11.+  10A valid interpolator name

11

11casxa  10Scope: privatex01  REAL

11Description: Initial a coefficient of ovaloid of cassini

11 Range 10 x01 Default: 2.0
11:  10Any number (negative and positive are equivalent)

11casxb  10Scope: privatex01  REAL

11Description: Initial b coefficient of ovaloid of cassini

11 Range 10 x01 Default: 2.05
11:  10Any number (negative and positive are equivalent)

11

11centerxx  10Scope: privatex01  REAL

11Description: The x-coordinate of the center

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

11

11centerxy  10Scope: privatex01  REAL

11Description: The y-coordinate of the center

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

11

11centerxz  10Scope: privatex01  REAL

11Description: The z-coordinate of the center

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

11

11cheat  10Scope: privatex01  BOOLEAN

11Description: Should we cheat and evolve using the last data set for a while?

11                        10  x01  Default: no

11

11cheatxiterations  10Scope: privatex01  INT

11Description: For how many iterations should we cheat

11 Range 10 x01 Default: (none)
110:*  10If you really want to cheat this should be positive

11

11ehxlapsextype  10Scope: privatex01  KEYWORD

11Description: Do we use numerical or analytic metric information

11 Range 10 x01 Default: numerical
11numerical  10Read in metric from numerical data
11analytic  10Use external analytic metric

11

11ehxmetricxtype  10Scope: privatex01  KEYWORD

11Description: Do we use numerical or analytic metric information

11 Range 10 x01 Default: numerical
11numerical  10Read in metric from numerical data
11analytic  10Use external analytic metric

11

11ehxnumberxlevelxsets  10Scope: privatex01  INT

11Description: How many level set functions should we evolve

11 Range 10 x01 Default: 1
111:10  10Between 1 and 10

11

11ehxshiftxtype  10Scope: privatex01  KEYWORD

11Description: Do we use numerical or analytic metric information

11 Range 10 x01 Default: numerical
11numerical  10Read in metric from numerical data
11analytic  10Use external analytic metric

11

11evolvexgenerators  10Scope: privatex01  BOOLEAN

11Description: Should the generators be evolved

11                        10  x01  Default: no

11filextype  10Scope: privatex01  KEYWORD

11Description: Are the timesteps in separate files or in one file?

11 Range 10 x01 Default: onexfile
11onexfile  10All timesteps are in the same file
11sepxtimexfiles  10Timesteps are in separete files

11

11generatorxdistribution  10Scope: privatex01  KEYWORD

11Description: What initial distribution should be used

11 Range 10 x01 Default: line
11line  10Put the generators on a line in the xz-plane
112D array  10Put the generators on a surface with spherical topology

11

11generatorxinterpolationxorder 10Scope: privatex01  INT

11Description: What order should be used for the generator interpoation

11 Range 10 x01 Default: 3
111:*  10A valid positive interpolation order

11

11generatorxinterpolator  10Scope: privatex01  STRING

11Description: What interpolator should be used for the generators

11 Range 10 x01 Default: Lagrange polynomial interpolation
11.+  10A valid interpolator name

11

11generatorxtrackingxmethod 10Scope: privatex01  KEYWORD

11Description: What method should be used for tracking the generators

11 Range 10 x01 Default: interpolatexbefore
11interpolatexbefore  10Interpolate first, then calculate
11interpolatexafter  10Calculate first, then interpolate

11

11initialxa  10Scope: privatex01  REAL

11Description: Initial a coefficient of ellipsoid

11 Range 10 x01 Default: 1.0
110.0:  10Positive please

11

11initialxb  10Scope: privatex01  REAL

11Description: Initial b coefficient of ellipsoid

11 Range 10 x01 Default: 1.0
110.0:  10Positive please

11

11initialxc  10Scope: privatex01  REAL

11Description: Initial c coefficient of ellipsoid

11 Range 10 x01 Default: 1.0
110.0:  10Positive please

11

11initialxf  10Scope: privatex01  KEYWORD

11Description: Initial surface choice

11 Range 10 x01 Default: sphere
11sphere  10spherical surface
11ellipsoid  10ellipsoidal surface
11cassini  10ovaloid of cassini

11

11initialxrad  10Scope: privatex01  REAL

11Description: Initial radius of surface

11 Range 10 x01 Default: 1.0
110.0:  10Positive please

11lastxiterationxnumber  10Scope: privatex01  INT

11Description: The starting iteration number for the EHxFinder (last iteration number of the simulation)

11  Range  10  x01  Default: (none)
110:  10Positive please

11

11maximumxsurfacexnumber 10Scope: privatex01  INT

11Description: The maximum number of surfaces expected in the data

11 Range 10 x01 Default: 1
111:*  10Positive please

11

11mode  10Scope: privatex01  KEYWORD

11Description: Mode of operation

11 Range 10 x01 Default: normal
11normal  10Find event horizons
11analysis  10Provide storage for f without evolving
11generator  10Provide storage for f and initialize without evolving

11

11nxarrayxghosts  10Scope: privatex01  INT

11Description: Number of ghost points in the surface grid array

11 Range 10 x01 Default: 1
111:  10Positive please

11

11nphi  10Scope: privatex01  INT

11Description: Number of points in the phi direction when finding points on the surface

11 Range 10 x01 Default: 51
111:*:2  10Positive and odd please

11

11ntheta  10Scope: privatex01  INT

11Description: Number of points in the theta direction when finding points on the surface

11 Range 10 x01 Default: 51
111:*:2  10Positive and odd please

11

11numberxofxgenerators  10Scope: privatex01  INT

11Description: How many generators should be evolved

11 Range 10 x01 Default: 1
111:*  10Postive please

11

11numberxofxgeneratorsxphi 10Scope: privatex01  INT

11Description: How many generators in the phi direction

11 Range 10 x01 Default: 1
111:*  10Positive please

11

11numberxofxgeneratorsxtheta10Scope: privatex01  INT

11Description: How many generators in the theta direction

11 Range 10 x01 Default: 1
111:*  10Positive please

11

11pdexdifferences  10Scope: privatex01  KEYWORD

11Description: Type of finite diffencing used in pde re-initialization

11 Range 10 x01 Default: upwind2
11centered  10Use 2nd order centered differences except at the boundaries
11upwind  10Use 1st order upwinded differences everywhere
11upwind2  10Use 2nd order upwinded differences everywhere

11rexinitxintxmethod  10Scope: privatex01  KEYWORD

11Description: Integration method used in re-initialization

11 Range 10 x01 Default: euler
11euler  10Standard euler scheme
11rk2  10Second order Runge-Kutta scheme

11

11rexinitxmaxxiter  10Scope: privatex01  INT

11Description: maximum number of iterations in the re-initialization

11 Range 10 x01 Default: 800
110:  10Positive please

11

11rexinitxundo  10Scope: privatex01  BOOLEAN

11Description: Should re-initialization be undone at pinch-off

11                        10  x01  Default: yes

11

11rexinitxverbose  10Scope: privatex01  BOOLEAN

11Description: Should re-initialization be verbose?

11                        10  x01  Default: no

11

11rexinitializexevery  10Scope: privatex01  INT

11Description: How often to re-initialize the level set function

11 Range 10 x01 Default: 10
110:  10If 0 don’t re-initialize

11

11readxconformalxfactorxonce 10Scope: privatex01  BOOLEAN

11Description: Should the conformal factor only be read once

11                        10  x01  Default: yes

11

11rotationxalpha  10Scope: privatex01  REAL

11Description: Rotation angle around z-axis of ellipsoid

11 Range 10 x01 Default: 0.0
11*:*  10Everything is possible

11

11rotationxbeta  10Scope: privatex01  REAL

11Description: Rotation angle around y-axis of ellipsoid

11 Range 10 x01 Default: 0.0
11*:*  10Everything is possible

11

11rotationxgamma  10Scope: privatex01  REAL

11Description: Rotation angle around x-axis of ellipsoid

11 Range 10 x01 Default: 0.0
11*:*  10Everything is possible

11

11savedxiterationxevery  10Scope: privatex01  INT

11Description: How often was the numerical data saved

11 Range 10 x01 Default: 1
111:  10Positive please

11

11shellxwidth  10Scope: privatex01  REAL

11Description: Width of the evolution region in units of the grid spacing

11 Range 10 x01 Default: 7.0
110.0:  10Positive please

11surfacexdirection  10Scope: privatex01  KEYWORD

11Description: Should we track outward or inward moving surfaces

11 Range 10 x01 Default: outward
11outward  10Track outward moving surfaces. Use for event horizon finding.
11inward  10Track inward moving surfaces.

11

11surfacexinterpolationxorder 10Scope: privatex01  INT

11Description: What order should be used for the surface interpoation

11 Range 10 x01 Default: 2
111:*  10A valid positive interpolation order

11

11surfacexinterpolator  10Scope: privatex01  STRING

11Description: What interpolator should be used to locate the surface

11 Range 10 x01 Default: Hermite polynomial interpolation
11.+  10A valid interpolator name

11

11translatexx  10Scope: privatex01  REAL

11Description: Translation in x-direction

11 Range 10 x01 Default: 0.0
11*:*  10Everything is possible

11

11translatexy  10Scope: privatex01  REAL

11Description: Translation in y-direction

11 Range 10 x01 Default: 0.0
11*:*  10Everything is possible

11

11translatexz  10Scope: privatex01  REAL

11Description: Translation in z-direction

11 Range 10 x01 Default: 0.0
11*:*  10Everything is possible

11

11upwindxtype  10Scope: privatex01  KEYWORD

11Description: Type of upwinding used in evolving the ehfinder equations

11 Range 10 x01 Default: characteristic
11intrinsic  10Use the values of f itself to determine upwind direction
11shift  10Use the shift to determine upwind direction
11characteristic  10Use characteristic information

11

11usexinnerxexcision  10Scope: privatex01  BOOLEAN

11Description: Should inner excision be used?

11                        10  x01  Default: yes

11

11usexouterxexcision  10Scope: privatex01  BOOLEAN

11Description: Should outer excision be used?

11                        10  x01  Default: yes

11

11usexuserxcenter  10Scope: privatex01  BOOLEAN

11Description: Should the user prescribed center be used

11                        10  x01  Default: no

11

11ehfinderxmaxxevolvedxarrayxsize 10Scope: restrictedx01  INT

11Description: The maximum size of evolved grid arrays used by EHFinder

11 Range 10 x01 Default: 1
111:*  10The size of the generator grid arrays

11ehfinderxmaxnumevolvedvars10Scope: restrictedx01  INT

11Description: The maximum number of evolved variables used by EHFinder

11 Range 10 x01 Default: 1
111:10  10Only evolve the level set functions

11

11ehfinderxnumxarrayevolvedxvars 10Scope: restrictedx01  INT

11Description: The maximum number of evolved grid arrays used by EHFinder

11 Range 10 x01 Default: 3
110:30  10Should be exactly zero or a multiple of three

11

11usexmask  10Scope: shared from SPACEMASKx01BOOLEAN

11

9 Interfaces

General Implements: ehfinder

Inherits: grid admbase coordgauge staticconformal spacemask boundary

Grid Variables

9.0.1 PRIVATE GROUPS

11x Group Names x10x Variable Names xx01 Details x11x
11 f 10 f x01 compact110
11                 10  x01 dimensions113
11                 10  x01 distribution11DEFAULT
11                 10  x01 group type11GF
11                 10  x01 timelevels113
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 sf 10 sf x01 compact110
11                 10  x01 dimensions113
11                 10  x01 distribution11DEFAULT
11                 10  x01 group type11GF
11 10 x01 tags11tensortypealias=”Scalar” Prolongation=”None”
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 dfx 10 dfx x01 compact110
11                 10  x01 dimensions113
11                 10  x01 distribution11DEFAULT
11                 10  x01 group type11GF
11 10 x01 tags11Prolongation=”None”
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 dfy 10 dfy x01 compact110
11                 10  x01 dimensions113
11                 10  x01 distribution11DEFAULT
11                 10  x01 group type11GF
11 10 x01 tags11Prolongation=”None”
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 dfz 10 dfz x01 compact110
11                 10  x01 dimensions113
11                 10  x01 distribution11DEFAULT
11                 10  x01 group type11GF
11 10 x01 tags11Prolongation=”None”
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 dfsq 10 dfsq x01 compact110
11                 10  x01 dimensions113
11                 10  x01 distribution11DEFAULT
11                 10  x01 group type11GF
11 10 x01 tags11tensortypealias=”Scalar” Prolongation=”None”
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL

11x Group Names x10x Variable Names xx01 Details x11x
11 ftmp 10 ftmp x01 compact110
11                 10  x01 dimensions113
11                 10  x01 distribution11DEFAULT
11                 10  x01 group type11GF
11 10 x01 tags11tensortypealias=”Scalar” Prolongation=”None”
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 sftmp 10 sftmp x01 compact110
11                 10  x01 dimensions113
11                 10  x01 distribution11DEFAULT
11                 10  x01 group type11GF
11 10 x01 tags11tensortypealias=”Scalar” Prolongation=”None”
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 fbak 10 fbak x01 compact110
11                 10  x01 dimensions113
11                 10  x01 distribution11DEFAULT
11                 10  x01 group type11GF
11 10 x01 tags11tensortypealias=”Scalar” Prolongation=”None”
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11  g3inv  10  x01  compact110
11                 10  g3xx  x01 description11The inverse of the 3-metric
11                 10  g3xy  x01 dimensions113
11                 10  g3xz  x01 distribution11DEFAULT
11                 10  g3yy  x01 group type11GF
11                 10  g3yz  x01  tags11tensortypealias=”Scalar” Prolongation=”None”
11                 10  g3zz  x01 timelevels111
11                 10  x01variable type11REAL
11 ehxmask 10 ehxmask x01 compact110
11                 10  x01 dimensions113
11                 10  x01 distribution11DEFAULT
11                 10  x01 group type11GF
11 10 x01 tags11tensortypealias=”Scalar” Prolongation=”None”
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11INT
11 tmxmask 10 tmxmask x01 compact110
11                 10  x01 dimensions113
11                 10  x01 distribution11DEFAULT
11                 10  x01 group type11GF
11 10 x01 tags11tensortypealias=”Scalar” Prolongation=”None”
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11INT

11x Group Names x10x Variable Names xx01 Details x11x
11 ehxmaskxbak 10 ehxmaskxbak x01  compact110
11                 10  x01 dimensions113
11                 10  x01 distribution11DEFAULT
11                 10  x01 group type11GF
11 10 x01 tags11tensortypealias=”Scalar” Prolongation=”None”
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11INT
11 rexinitxcontrol 10 rexinitxcontrol x01  compact110
11                 10  x01 dimensions110
11                 10  x01 distribution11CONSTANT
11                 10  x01 group type11SCALAR
11                 10  x01 timelevels111
11                 10  x01variable type11INT
11 niterxreinit 10 niterxreinit x01 compact110
11                 10  x01 dimensions110
11                 10  x01 distribution11CONSTANT
11                 10  x01 group type11SCALAR
11                 10  x01 timelevels111
11                 10  x01variable type11INT
11 surfacexindex 10  x01  compact110
11                 10  sc  x01 dimensions113
11                 10  x01 distribution11DEFAULT
11                 10  x01 group type11GF
11 10 x01 tags11tensortypealias=”Scalar” Prolongation=”None”
11                 10  x01 timelevels111
11                 10  x01variable type11REAL
11 findxsurfacexstatus 10 findxsurfacexstatus x01  compact110
11                 10  x01 dimensions110
11                 10  x01 distribution11CONSTANT
11                 10  x01 group type11SCALAR
11                 10  x01 timelevels111
11                 10  x01variable type11INT
11 levelsetxintegers 10 x01 compact110
11                 10 levelsetxcounter x01 description11Integer variables used to loop over the level sets
11                 10 morexlevelsets 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 surfacexintegers 10 x01 compact110
11                 10 surfacexcounter x01 description11Integer variables used in surface integration
11                 10 pointsxcounter x01 dimensions110
11                 10 morexsurfaces x01 distribution11CONSTANT
11 10 morexpoints x01 group type11SCALAR
11                 10 integratexcounter x01 timelevels111
11                 10  x01variable type11INT
11 surfacexreals 10  x01  compact110
11                 10  symxfactor  x01 description11Real variables used in surface integration
11                 10 thetaxsymxfactor x01 dimensions110
11                 10 phixsymxfactor x01 distribution11CONSTANT
11                 10  x01 group type11SCALAR
11                 10  x01 timelevels111
11                 10  x01variable type11REAL
11 surfacexarrays 10  x01  compact110
11                 10  ctheta  x01 description11Grid arrays for points on the surface
11                 10  cphi  x01 dimensions112
11                 10  rsurf  x01 distribution11DEFAULT
11                 10  sintheta  x01 ghostsize11NxARRAYxGHOSTS
11                 10  x  x01 ghostsize11NxARRAYxGHOSTS
11                 10  costheta  x01 group type11ARRAY
11                 10  sinphi  x01  size11NTHETA
11                 10  x  x01  size11NPHI
11                 10  cosphi  x01 timelevels111
11                 10  drdtheta  x01variable type11REAL
11 surfacextmpxarrays 10  x01  compact110
11                 10  drsurf  x01 description11Temporary grid arrays for finding points on the surface
11                 10  interpxx  x01 dimensions112
11                 10  interpxy  x01 distribution11DEFAULT
11                 10  interpxz  x01 ghostsize11NxARRAYxGHOSTS
11                 10  x  x01 ghostsize11NxARRAYxGHOSTS
11                 10  fxinterp  x01 group type11ARRAY
11                 10  dfdxxinterp  x01  size11NTHETA
11                 10  x  x01  size11NPHI
11                 10  dfdyxinterp  x01 timelevels111
11                 10  dfdzxinterp  x01variable type11REAL
11 centerxarrays 10  x01  compact110
11                 10  center  x01 description11The cartesian location of the center for the spherical coordinate system
11                 10  x01 dimensions111
11                 10  x01 distribution11CONSTANT
11                 10  x01 group type11ARRAY

11                 10  x01  size113

11                 10  x01 timelevels111
11                 10  x01variable type11REAL
11 surfacexintxarray 10 x01 compact110
11                 10nxsincexlastxreductionx01 description11Temporary integer grid array for finding points on the surface
11                 10  x01 dimensions112
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize11NxARRAYxGHOSTS
11 10 x x01 ghostsize11NxARRAYxGHOSTS
11                 10  x01 group type11ARRAY
11                 10  x01  size11NTHETA
11                 10  x  x01  size11NPHI
11                 10  x01 timelevels111
11                 10  x01variable type11INT

11x Group Names x10x Variable Names xx01 Details x11x
11interpxmetricxarrays10  x01  compact110
11                 10  gxxi  x01 description11Arrays for holding the interpolated metric and conformal factor
11                 10  gxyi  x01 dimensions112
11                 10  gxzi  x01 distribution11DEFAULT
11                 10  gyyi  x01 ghostsize11NxARRAYxGHOSTS
11                 10  x  x01 ghostsize11NxARRAYxGHOSTS
11                 10  gyzi  x01 group type11ARRAY
11                 10  gzzi  x01  size11NTHETA
11                 10  x  x01  size11NPHI
11                 10  psii  x01 timelevels111
11                 10  x01variable type11REAL
11integratextmpxarray10  x01  compact110
11                 10  intxtmp  x01 description11Temporary array that is used in the integration of various quantities
11                 10  x01 dimensions112
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize11NxARRAYxGHOSTS
11 10 x x01 ghostsize11NxARRAYxGHOSTS
11                 10  x01 group type11ARRAY
11                 10  x01  size11NTHETA
11                 10  x  x01  size11NPHI
11                 10  x01 timelevels111
11                 10  x01variable type11REAL
11 ehxarea 10 ehxarea x01 compact110
11                 10  x01 dimensions111
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11                 10  x01 group type11ARRAY
11 10 x01 size11MAXIMUMxSURFACExNUMBER
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 ehxarea2 10 ehxarea2 x01 compact110
11                 10  x01 dimensions111
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11                 10  x01 group type11ARRAY
11 10 x01 size11MAXIMUMxSURFACExNUMBER
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 ehxcentroidxx 10 ehxcentroidxx x01  compact110
11                 10  x01 dimensions111
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11                 10  x01 group type11ARRAY
11 10 x01 size11MAXIMUMxSURFACExNUMBER
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 ehxcentroidxy 10 ehxcentroidxy x01  compact110
11                 10  x01 dimensions111
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11                 10  x01 group type11ARRAY
11 10 x01 size11MAXIMUMxSURFACExNUMBER
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL

11x Group Names x10x Variable Names xx01 Details x11x
11 ehxcentroidxz 10 ehxcentroidxz x01  compact110
11                 10  x01 dimensions111
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11                 10  x01 group type11ARRAY
11 10 x01 size11MAXIMUMxSURFACExNUMBER
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 ehxcentroid2xx 10 ehxcentroid2xx x01  compact110
11                 10  x01 dimensions111
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11                 10  x01 group type11ARRAY
11 10 x01 size11MAXIMUMxSURFACExNUMBER
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 ehxcentroid2xy 10 ehxcentroid2xy x01  compact110
11                 10  x01 dimensions111
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11                 10  x01 group type11ARRAY
11 10 x01 size11MAXIMUMxSURFACExNUMBER
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 ehxcentroid2xz 10 ehxcentroid2xz x01  compact110
11                 10  x01 dimensions111
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11                 10  x01 group type11ARRAY
11 10 x01 size11MAXIMUMxSURFACExNUMBER
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 ehxcircxeq 10 ehxcircxeq x01 compact110
11                 10  x01 dimensions111
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11                 10  x01 group type11ARRAY
11 10 x01 size11MAXIMUMxSURFACExNUMBER
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 ehxcircxpol 10 ehxcircxpol x01 compact110
11                 10  x01 dimensions111
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11                 10  x01 group type11ARRAY
11 10 x01 size11MAXIMUMxSURFACExNUMBER
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL

11x Group Names x10x Variable Names xx01 Details x11x
11 ehxcircxeq2 10 ehxcircxeq2 x01 compact110
11                 10  x01 dimensions111
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11                 10  x01 group type11ARRAY
11 10 x01 size11MAXIMUMxSURFACExNUMBER
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 ehxcircxpol2 10 ehxcircxpol2 x01 compact110
11                 10  x01 dimensions111
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11                 10  x01 group type11ARRAY
11 10 x01 size11MAXIMUMxSURFACExNUMBER
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 xg 10 xg x01 compact110
11                 10  x01 dimensions111
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11                 10  x01 group type11ARRAY
11 10 x01 size11NUMBERxOFxGENERATORS
11                 10  x01 timelevels113
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 yg 10 yg x01 compact110
11                 10  x01 dimensions111
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11                 10  x01 group type11ARRAY
11 10 x01 size11NUMBERxOFxGENERATORS
11                 10  x01 timelevels113
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 zg 10 zg x01 compact110
11                 10  x01 dimensions111
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11                 10  x01 group type11ARRAY
11 10 x01 size11NUMBERxOFxGENERATORS
11                 10  x01 timelevels113
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 dxg 10 dxg x01 compact110
11                 10  x01 dimensions111
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11                 10  x01 group type11ARRAY
11 10 x01 size11NUMBERxOFxGENERATORS
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL

11x Group Names x10x Variable Names xx01 Details x11x
11 dyg 10 dyg x01 compact110
11                 10  x01 dimensions111
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11                 10  x01 group type11ARRAY
11 10 x01 size11NUMBERxOFxGENERATORS
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 dzg 10 dzg x01 compact110
11                 10  x01 dimensions111
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11                 10  x01 group type11ARRAY
11 10 x01 size11NUMBERxOFxGENERATORS
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 generatorxarrays 10  x01  compact110
11                 10  alpg  x01 description11Arrays to hold the interpolated metric
11                 10  x  x01 description11gauge and level set data
11                 10  betaxg  x01 dimensions111
11                 10  betayg  x01 distribution11DEFAULT
11                 10  betazg  x01 ghostsize110
11                 10  gxxg  x01 group type11ARRAY
11                 10  gxyg  x01  size11NUMBERxOFxGENERATORS
11                 10  gxzg  x01 timelevels111
11                 10  gyyg  x01variable type11REAL
11 generatorxgf 10  x01  compact110
11                 10  xgf  x01 description11Temporary grid function used in calculating the right hand side of the generator evolution equation
11                 10  ygf  x01 dimensions113
11                 10  zgf  x01 distribution11DEFAULT
11                 10  x01 group type11GF
11 10 x01 tags11Prolongation=”None”
11                 10  x01 timelevels111
11                 10  x01variable type11REAL
11 xg2 10 xg2 x01 compact110
11                 10  x01 dimensions112
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11 10 x x01 ghostsize110
11                 10  x01 group type11ARRAY
11                 10  x01  size11NUMBERxOFxGENERATORSxTHETA
11                 10  x  x01  size11NUMBERxOFxGENERATORSxPHI
11                 10  x01 timelevels113
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 yg2 10 yg2 x01 compact110
11                 10  x01 dimensions112
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11 10 x x01 ghostsize110
11                 10  x01 group type11ARRAY
11                 10  x01  size11NUMBERxOFxGENERATORSxTHETA
11                 10  x  x01  size11NUMBERxOFxGENERATORSxPHI
11                 10  x01 timelevels113
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL

11x Group Names x10x Variable Names xx01 Details x11x
11 zg2 10 zg2 x01 compact110
11                 10  x01 dimensions112
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11 10 x x01 ghostsize110
11                 10  x01 group type11ARRAY
11                 10  x01  size11NUMBERxOFxGENERATORSxTHETA
11                 10  x  x01  size11NUMBERxOFxGENERATORSxPHI
11                 10  x01 timelevels113
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 dxg2 10 dxg2 x01 compact110
11                 10  x01 dimensions112
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11 10 x x01 ghostsize110
11                 10  x01 group type11ARRAY
11                 10  x01  size11NUMBERxOFxGENERATORSxTHETA
11                 10  x  x01  size11NUMBERxOFxGENERATORSxPHI
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 dyg2 10 dyg2 x01 compact110
11                 10  x01 dimensions112
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11 10 x x01 ghostsize110
11                 10  x01 group type11ARRAY
11                 10  x01  size11NUMBERxOFxGENERATORSxTHETA
11                 10  x  x01  size11NUMBERxOFxGENERATORSxPHI
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 dzg2 10 dzg2 x01 compact110
11                 10  x01 dimensions112
11                 10  x01 distribution11DEFAULT
11                 10  x01 ghostsize110
11 10 x x01 ghostsize110
11                 10  x01 group type11ARRAY
11                 10  x01  size11NUMBERxOFxGENERATORSxTHETA
11                 10  x  x01  size11NUMBERxOFxGENERATORSxPHI
11                 10  x01 timelevels111
11                 10  x01vararrayxsize11ehxnumberxlevelxsets
11                 10  x01variable type11REAL
11 generatorxarrays2 10  x01  compact110
11                 10  alpg2  x01 description11Arrays to hold the interpolated metric
11                 10  x  x01 description11gauge and level set data
11                 10  betaxg2  x01 dimensions112
11                 10  betayg2  x01 distribution11DEFAULT
11                 10  betazg2  x01 ghostsize110
11                 10  x  x01 ghostsize110
11                 10  gxxg2  x01 group type11ARRAY
11                 10  gxyg2  x01  size11NUMBERxOFxGENERATORSxTHETA
11                 10  x  x01  size11NUMBERxOFxGENERATORSxPHI
11                 10  gxzg2  x01 timelevels111
11                 10  gyyg2  x01variable type11REAL
11 generatorxgf2 10  x01  compact110
11                 10  xgf2  x01 description11Temporary grid function used in calculating the right hand side of the generator evolution equation
11                 10  ygf2  x01 dimensions113
11                 10  zgf2  x01 distribution11DEFAULT
11                 10  x01 group type11GF
11 10 x01 tags11Prolongation=”None”
11                 10  x01 timelevels111
11                 10  x01variable type11REAL

11

Uses header: Boundary.h carpet.h 10 Schedule This section lists all the variables which are assigned storage by thorn EinsteinAnalysis/EHFinder. 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 x

11x11Conditional:
11x 11f[1]
11x 11f[2]
11x 11levelsetxintegers
11x 11centerxarrays
11x 11xg[2] yg[2] zg[2]
11x 11dxg dyg dzg
11x 11xg2[2] yg2[2] zg2[2]
11x 11dxg2 dyg2 dzg2

11x 11sf

11x 11ftmp
11x 11sftmp
11x 11ehxmask
11x 11surfacexarrays
11x 11ehxarea2 ehxcentroid2xx ehxcentroid2xy ehxcentroid2xz
11x 11ehxcircxeq2 ehxcircxpol2
11x 11findxsurfacexstatus

11x 11x

11

Scheduled Functions

CCTKxPARAMCHECK (conditional) x ehfinderxparamcheck x check parameters x

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

11

CCTKxINITIAL (conditional) x ehfinderxreadxmetric x read in metric from file

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

11

CCTKxPOSTxRECOVERxVARIABLES (conditional) x ehfinderxinitweights x setup weights for simpson integration x

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

11

CCTKxANALYSIS (conditional) x ehfinderxlevelxsets x loop over the level set functions x

11x11Triggers:11ehxarea
11 x 11x  11ehxcentroidxx
11 x 11x  11ehxcentroidxy
11 x 11x  11ehxcentroidxz
11 x 11x  11ehxcircxeq
11 x 11x  11ehxcircxpol
11 x 11Type: 11group

11

EHFinderxLevelxSets (conditional) x ehfinderxlevelsetloopinit x initialize the loop counter over the level set functions x

11x11Language:11fortran
11 x 11Triggers: 11ehxarea
11 x 11x  11ehxcentroidxx
11 x 11x  11ehxcentroidxy
11 x 11x  11ehxcentroidxz
11 x 11x  11ehxcircxeq
11 x 11x  11ehxcircxpol
11 x 11Type: 11function

11

EHFinderxLevelxSets (conditional) x ehfinderxsurfaces x count the number of surfaces and integrate over them x

11x11Storage: 11surfacexintegers
11 x 11x  11surfacexreals
11 x 11x  11surfacexindex
11 x 11Triggers:11ehxarea
11 x 11x  11ehxcentroidxx
11 x 11x  11ehxcentroidxy
11 x 11x  11ehxcentroidxz
11 x 11x  11ehxcircxeq
11 x 11x  11ehxcircxpol
11 x 11Type: 11group
11 x 11While: 11ehfinder::morexlevelsets

11

EHFinderxSurfaces (conditional) x ehfinderxcountsurfacesinit x initialize while loop control x

11x11Language:11fortran
11 x 11Triggers: 11ehxarea
11 x 11x  11ehxcentroidxx
11 x 11x  11ehxcentroidxy
11 x 11x  11ehxcentroidxz
11 x 11x  11ehxcircxeq
11 x 11x  11ehxcircxpol
11 x 11Type: 11function

11

EHFinderxSurfaces (conditional) x ehfinderxcountmarksurfaces x counting and mark surfaces x

11x11After: 11ehfinderxcountsurfacesinit
11 x 11Triggers:11ehxarea
11 x 11x  11ehxcentroidxx
11 x 11x  11ehxcentroidxy
11 x 11x  11ehxcentroidxz
11 x 11x  11ehxcircxeq
11 x 11x  11ehxcircxpol
11 x 11Type: 11group
11 x 11While: 11ehfinder::morexsurfaces

11

EHFinderxCountMarkSurfaces (conditional) x ehfinderxcountsurfaces x check if there are more surfaces x

11x11Language:11fortran
11 x 11Sync:  11surfacexindex
11 x 11Triggers: 11ehxarea
11 x 11x  11ehxcentroidxx
11 x 11x  11ehxcentroidxy
11 x 11x  11ehxcentroidxz
11 x 11x  11ehxcircxeq
11 x 11x  11ehxcircxpol
11 x 11Type: 11function

11

EHFinderxCountMarkSurfaces (conditional) x ehfinderxmarkpoints x marking surfaces x

11x11After: 11ehfinderxcountsurfaces
11 x 11Triggers:11ehxarea
11 x 11x  11ehxcentroidxx
11 x 11x  11ehxcentroidxy
11 x 11x  11ehxcentroidxz
11 x 11x  11ehxcircxeq
11 x 11x  11ehxcircxpol
11 x 11Type: 11group
11 x 11While: 11ehfinder::morexpoints

11

EHFinderxMarkPoints (conditional) x ehfinderxmarksurfaces x mark points inside the current surface x

11x11Language:11fortran
11 x 11Sync:  11surfacexindex
11 x 11Triggers: 11ehxarea
11 x 11x  11ehxcentroidxx
11 x 11x  11ehxcentroidxy
11 x 11x  11ehxcentroidxz
11 x 11x  11ehxcircxeq
11 x 11x  11ehxcircxpol
11 x 11Type: 11function

11

EHFinderxMarkPoints (conditional) x ehfinderxapplysymsc x select the surface counter grid function for boundary conditions x

11x11After: 11ehfinderxmarksurfaces
11 x 11Language:11fortran
11 x 11Triggers: 11ehxarea
11 x 11x  11ehxcentroidxx
11 x 11x  11ehxcentroidxy
11 x 11x  11ehxcentroidxz
11 x 11x  11ehxcircxeq
11 x 11x  11ehxcircxpol
11 x 11Type: 11function

11

CCTKxINITIAL (conditional) x ehfinderxreadxlapse x read in lapse from file x

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

11

EHFinderxMarkPoints (conditional) x applybcs x apply boundary conditions (symmetries) x

11x11After:11ehfinderxapplysymsc
11 x 11Type:11group

11

EHFinderxSurfaces (conditional) x ehfinderxinfosurfaces x output info about found surfaces

11x11After: 11ehfinderxcountmarksurfaces
11 x 11Language:11fortran
11 x 11Triggers: 11ehxarea
11 x 11x  11ehxcentroidxx
11 x 11x  11ehxcentroidxy
11 x 11x  11ehxcentroidxz
11 x 11x  11ehxcircxeq
11 x 11x  11ehxcircxpol
11 x 11Type: 11function

11

EHFinderxSurfaces (conditional) x ehfinderxintegration x find and integrate over surfaces x

11x11After: 11ehfinderxinfosurfaces
11 x 11Triggers:11ehxarea
11 x 11x  11ehxcentroidxx
11 x 11x  11ehxcentroidxy
11 x 11x  11ehxcentroidxz
11 x 11x  11ehxcircxeq
11 x 11x  11ehxcircxpol
11 x 11Type: 11group
11 x 11While: 11ehfinder::integratexcounter

11

EHFinderxIntegration (conditional) x ehfinderxfindsurface x find surface x

11x11Language:11fortran
11 x 11Storage: 11surfacextmpxarrays
11 x 11x  11surfacexintxarray
11 x 11Sync:  11surfacexarrays
11 x 11Triggers: 11ehxarea
11 x 11x  11ehxcentroidxx
11 x 11x  11ehxcentroidxy
11 x 11x  11ehxcentroidxz
11 x 11x  11ehxcircxeq
11 x 11x  11ehxcircxpol
11 x 11Type: 11function

11

EHFinderxIntegration (conditional) x ehfinderxfindsurfaceelement x find surface area element x

11x11After: 11ehfinderxfindsurface
11 x 11Language:11fortran
11 x 11Storage: 11surfacextmpxarrays
11 x 11x  11interpxmetricxarrays
11 x 11Triggers: 11ehxarea
11 x 11x  11ehxcentroidxx
11 x 11x  11ehxcentroidxy
11 x 11x  11ehxcentroidxz
11 x 11x  11ehxcircxeq
11 x 11x  11ehxcircxpol
11 x 11Type: 11function

11

EHFinderxIntegration (conditional) x ehfinderxintegratearea x calculate area integrals x

11x11After: 11ehfinderxfindsurfaceelement
11 x 11Language:11fortran
11 x 11Storage: 11integratextmpxarray
11 x 11Triggers: 11ehxarea
11 x 11x  11ehxcentroidxx
11 x 11x  11ehxcentroidxy
11 x 11x  11ehxcentroidxz
11 x 11x  11ehxcircxeq
11 x 11x  11ehxcircxpol
11 x 11Type: 11function

11

EHFinderxIntegration (conditional) x ehfinderxintegratecentroid x calculate centroid integrals x

11x11After: 11ehfinderxintegratearea
11 x 11Language:11fortran
11 x 11Storage: 11surfacextmpxarrays
11 x 11x  11integratextmpxarray
11 x 11Triggers: 11ehxcentroidxx
11 x 11x  11ehxcentroidxy
11 x 11x  11ehxcentroidxz
11 x 11Type: 11function

11

EHFinderxIntegration (conditional) x ehfinderxintegratecircumference x calculate circumferences x

11x11After: 11ehfinderxintegratearea
11 x 11Language:11fortran
11 x 11Storage: 11surfacextmpxarrays
11 x 11x  11integratextmpxarray
11 x 11Triggers: 11ehxcircxeq
11 x 11x  11ehxcircxpol
11 x 11Type: 11function

11

EHFinderxSurfaces (conditional) x ehfinderxupdatecounter x update the loop variables x

11x11Language:11fortran
11 x 11Triggers: 11ehxarea
11 x 11x  11ehxcentroidxx
11 x 11x  11ehxcentroidxy
11 x 11x  11ehxcentroidxz
11 x 11x  11ehxcircxeq
11 x 11x  11ehxcircxpol
11 x 11Type: 11function

11

CCTKxANALYSIS (conditional) x ehfinderxcopyarea x copy areas to output variable x

11x11After: 11ehfinderxlevelxsets
11 x 11Language:11fortran
11 x 11Storage: 11ehxarea
11 x 11Triggers: 11ehxarea
11 x 11Type: 11function

11

CCTKxINITIAL (conditional) x ehfinderxreadxshift x read in shift from file x

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

11

CCTKxANALYSIS (conditional) x ehfinderxcopycentroid x copy centroids to output variable x

11x11After: 11ehfinderxlevelxsets
11 x 11Language:11fortran
11 x 11Storage: 11ehxcentroidxx
11 x 11x  11ehxcentroidxy
11 x 11x  11ehxcentroidxz
11 x 11Triggers: 11ehxcentroidxx
11 x 11x  11ehxcentroidxy
11 x 11x  11ehxcentroidxz
11 x 11Type: 11function

11

CCTKxANALYSIS (conditional) x ehfinderxcopycircumference x copy circumferences to output variable x

11x11After: 11ehfinderxlevelxsets
11 x 11Language:11fortran
11 x 11Storage: 11ehxcircxeq
11 x 11x  11ehxcircxpol
11 x 11Triggers: 11ehxcircxeq
11 x 11x  11ehxcircxpol
11 x 11Type: 11function

11

CCTKxANALYSIS (conditional) x ehfinderxisosurfacearea x find isosurfaces and calculate the area x

11x11Triggers:11ehxarea
11 x 11Type: 11group

11

EHFinderxIsoSurfaceArea (conditional) x ehfinderxisosurface x find isosurfaces x

11x11Language:11fortran
11 x 11Storage: 11ehxarea
11 x 11Triggers: 11ehxarea
11 x 11Type: 11function

11

CCTKxPRESTEP (conditional) x ehfinderxreadxmetric x read in metric from file x

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

11

CCTKxPRESTEP (conditional) x ehfinderxreadxlapse x read in lapse from file x

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

11

CCTKxPRESTEP (conditional) x ehfinderxreadxshift x read in shift from file x

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

11

CCTKxPRESTEP (conditional) x ehfinderxreadxconformal x read in conformal factor from file x

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

11

CCTKxPRESTEP (conditional) x ehfinderxreadxmask x read in excision mask from file x

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

11

MoLxRegister (conditional) x ehfinderxmolregister x register evolution variables x

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

11

CCTKxINITIAL (conditional) x ehfinderxreadxconformal x read in conformal factor from file x

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

11

CCTKxBASEGRID (conditional) x ehfinderxsetsym x register the symmetries for the level set function x

11x11Language:11fortran
11 x 11Storage: 11sftmp
11 x 11Type: 11function

11

CCTKxPOSTINITIAL (conditional) x ehfinderxmaskinit x setup the initial mask x

11x11After: 11ehfinderxinit
11 x 11Language:11fortran
11 x 11Type: 11function

11

MoLxCalcRHS (conditional) x ehfinderxsources x calculate the source terms x

11x11Language:11fortran
11 x 11Storage: 11dfx

11 x 11x  11dfy
11 x 11x  11dfz

11 x 11x  11g3inv
11 x 11Type: 11function

11

MoLxCalcRHS (conditional) x ehfinderxgeneratorxsources x calculate the source terms for the generator evolution x

11x11Language:11fortran
11 x 11Storage: 11generatorxarrays
11 x 11Type: 11function

MoLxCalcRHS (conditional) x ehfinderxgeneratorxsourcesx2d x calculate the source terms for the 2d generator evolution x

11x11Language:11fortran
11 x 11Storage: 11generatorxarrays2
11 x 11Type: 11function

11

MoLxCalcRHS (conditional) x ehfinderxgeneratorxsources2 x calculate the source terms2 for the generator evolution x

11x11After: 11ehfinderxsources
11 x 11Language:11fortran
11 x 11Storage: 11generatorxarrays
11 x 11Type: 11function

11

MoLxPostStep (conditional) x ehfinderxpoststep x schedule group for symmetry boundaries and syncing x

11x11Type:11group

11

EHFinderxPostStep (conditional) x ehfinderxapplysymf x select f for boundary conditions x

11x11Language:11fortran
11 x 11Sync:  11f
11 x 11x  11sftmp
11 x 11Type: 11function

11

EHFinderxPostStep (conditional) x applybcs x apply boundary conditions (symmetries) x

11x11After:11ehfinderxapplysymf
11 x 11Type:11group

11

CCTKxPOSTSTEP (conditional) x ehfinderxreinitialize x re-initialize the level set function

11x11Storage:11fbak
11 x 11x  11ehxmaskxbak
11 x 11x  11rexinitxcontrol
11 x 11x  11niterxreinit
11 x 11Type: 11group

11

CCTKxINITIAL (conditional) x ehfinderxreadxmask x read in excision mask from file x

11x11After: 11maskone
11 x 11Language:11fortran
11 x 11Type: 11function

11

(conditional) x ehfinderxprereinitialize x routines for re-initialization control x

11x11Type:11group

11

EHFinderxPreReInitialize (conditional) x ehfinderxreinitializecontrol x initializes the re-initialization control x

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

11

EHFinderxPreReInitialize (conditional) x ehfinderxreinitializeinitialize x initializes variables for reinitialization x

11x11After: 11ehfinderxreinitializecontrol
11 x 11Language:11fortran
11 x 11Type: 11function

11

(conditional) x eulerxreinitializeevolve x schedule group for euler re-initialization evolution x

11x11Type:11group

11

EulerxReInitializeEvolve (conditional) x ehfinderxreinitializeeuler x euler scheme

11x11Language:11fortran
11 x 11Storage: 11dfx

11 x 11x  11dfy
11 x 11x  11dfz
11 x 11x  11dfsq

11 x 11Type: 11function

11

EulerxReInitializeEvolve (conditional) x ehfinderxapplysymfsftmp x select f for boundary conditions x

11x11After: 11ehfinderxreinitializeeuler
11 x 11Language:11fortran
11 x 11Sync:  11f
11 x 11x  11sftmp
11 x 11Type: 11function

11

EulerxReInitializeEvolve (conditional) x applybcs x apply boundary conditions (symmetries) x

11x11After:11ehfinderxapplysymf
11 x 11Type:11group

11

(conditional) x eulerxpoststep x schedule group for euler re-initialization post step x

11x11Type:11group

11

EulerxPostStep (conditional) x ehfinderxreinitializepoststep x check if the re-initialization is done x

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

11

EHFinderxReInitialize (conditional) x ehfinderxprereinitialize x pugh version of the pre-re-initialization routines x

11x11Type:11group

CCTKxINITIAL (conditional) x ehfinderxinit x setup local variables x

11x11Language:11fortran
11 x 11Sync:  11f
11 x 11Type: 11function

11

EHFinderxReInitialize (conditional) x eulerxreinitialize x schedule group for euler re-initialization x

11x11After: 11ehfinderxprereinitializepugh
11 x 11Type: 11group
11 x 11While:11ehfinder::rexinitxcontrol

11

EulerxReInitialize (conditional) x eulerxreinitializeevolve x schedule group for euler re-initialization evolution with pugh x

11x11Type:11group

11

EulerxReInitialize (conditional) x eulerxpoststep x schedule group for euler re-initialization post step x

11x11After:11eulerxreinitializeevolve
11 x 11Type:11group

11

EHFinderxReInitialize (conditional) x ehfinderxreinitializexcheck x check to see if re-initialization has to be undone x

11x11After: 11eulerxreinitialize
11 x 11Language:11fortran
11 x 11Type: 11function

11

EHFinderxReInitialize (conditional) x ehfinderxprereinitializexcarpet x carpet version of the pre-reinitialization routines x

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

EHFinderxReInitialize (conditional) x ehfinderxreinitializexwrapper x wrapper routine for euler re-initialization for carpet x

11x11After: 11ehfinderxprereinitializexcarpet
11 x 11Language:11c
11 x 11Options: 11level
11 x 11Type: 11function
11 x 11While: 11ehfinder::rexinitxcontrol

11

EHFinderxReInitialize (conditional) x rk2xreinitialize x schedule group for rk2 re-initialization x

11x11After: 11ehfinderxreinitializecontrol
11 x 11Type: 11group
11 x 11While:11ehfinder::rexinitxcontrol

11

RK2xReInitialize (conditional) x ehfinderxreinitializerk2x1 x rk2 scheme step 1 x

11x11Language:11fortran
11 x 11Storage: 11dfx

11 x 11x  11dfy
11 x 11x  11dfz
11 x 11x  11dfsq

11 x 11Type: 11function

11

RK2xReInitialize (conditional) x ehfinderxapplysymf x select f for boundary conditions x

11x11After: 11ehfinderxreinitializerk2x1
11 x 11Language:11fortran
11 x 11Sync:  11f
11 x 11Type: 11function

11

RK2xReInitialize (conditional) x applybcs x apply boundary conditions (symmetries) x

11x11After:11symxrk2x1
11 x 11Type:11group

11

CCTKxINITIAL (conditional) x ehfinderxinitxf x setup the initial surface

11x11Language:11fortran
11 x 11Sync:  11f
11 x 11Type: 11function

11

RK2xReInitialize (conditional) x ehfinderxreinitializerk2x2 x rk2 scheme step 2 x

11x11After: 11symxrk2x1
11 x 11Language:11fortran
11 x 11Storage: 11dfx

11 x 11x  11dfy
11 x 11x  11dfz
11 x 11x  11dfsq

11 x 11Type: 11function

11

RK2xReInitialize (conditional) x ehfinderxapplysymf x select f for boundary conditions x

11x11After: 11ehfinderxreinitializerk2x2
11 x 11Language:11fortran
11 x 11Sync:  11f
11 x 11Type: 11function

11

RK2xReInitialize (conditional) x applybcs x apply boundary conditions (symmetries) x

11x11After:11symxrk2x2
11 x 11Type:11group

11

CCTKxPOSTSTEP x ehfinderxsetmask x set the mask x

11x11After: 11ehfinderxreinitialize
11 x 11Storage:11tmxmask
11 x 11Type: 11group

11

EHFinderxSetMask x ehfinderxsetmask1 x start modifying the mask

11x11Language:11fortran
11 x 11Sync:  11f
11 x 11x  11ehxmask
11 x 11x  11tmxmask
11 x 11Type: 11function

11

EHFinderxSetMask x ehfinderxapplysymall x select both f and ehxmask for boundary conditions x

11x11After: 11ehfinderxsetmask1
11 x 11Language:11fortran
11 x 11Type: 11function

11

EHFinderxSetMask x applybcs x apply boundary conditions (symmetries) x

11x11After:11ehfinderxapplysymall
11 x 11Type:11group

11

EHFinderxSetMask x ehfinderxsetmask2 x find excision boundaries x

11x11After: 11ehfinderallxapplybcs
11 x 11Language:11fortran
11 x 11Sync:  11ehxmask
11 x 11x  11tmxmask
11 x 11Type: 11function

11

EHFinderxSetMask x ehfinderxapplysymmask x select ehxmask for boundary conditions x

11x11After: 11ehfinderxsetmask2
11 x 11Language:11fortran
11 x 11Type: 11function

11

EHFinderxSetMask x applybcs x apply boundary conditions (symmetries) x

11x11After:11asm1
11 x 11Type:11group

11

CCTKxINITIAL (conditional) x ehfinderxinitweights x setup weights for simpson integration x

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

11

EHFinderxSetMask x ehfinderxsetmask3 x check to see if the mask needs to be modified x

11x11After: 11ehfinderxasm1
11 x 11Language:11fortran
11 x 11Sync:  11ehxmask
11 x 11x  11tmxmask
11 x 11Type: 11function

11

EHFinderxSetMask x ehfinderxapplysymmask x select ehxmask for boundary conditions x

11x11After: 11ehfinderxsetmask3
11 x 11Language:11fortran
11 x 11Type: 11function

11

EHFinderxSetMask x applybcs x apply boundary conditions (symmetries) x

11x11After:11asm2
11 x 11Type:11group

11

EHFinderxSetMask x ehfinderxsetmask2 x find excision boundaries x

11x11After: 11asm2
11 x 11Language:11fortran
11 x 11Sync:  11ehxmask
11 x 11x  11tmxmask
11 x 11Type: 11function

11

EHFinderxSetMask x ehfinderxapplysymmask x select ehxmask for boundary conditions

11x11After: 11sm2
11 x 11Language:11fortran
11 x 11Type: 11function

11

EHFinderxSetMask x applybcs x apply boundary conditions (symmetries) x

11x11After:11asm3
11 x 11Type:11group

11

CCTKxPOSTxRECOVERxVARIABLES (conditional) x ehfinderxinit x setup local variables x

11x11Language:11fortran
11 x 11Sync:  11f
11 x 11Type: 11function

11

Aliased Functions x

11Alias Name: xxxxxxx 11Function Name:
11ApplyBCs  11EHFinderMask3xApplyBCs
11EHFinderxApplySymF 11SymxRK2x2
11EHFinderxApplySymMask11ASM3
11EHFinderxPreReInitialize 11EHFinderxPreReInitializePugh
11EHFinderxSetMask2  11SM2
11EulerxPostStep  11EulerxPostStepPUGH
11EulerxReInitializeEvolve 11EulerxReInitializeEvolvePUGH