2012-05-07

### Abstract

Thorn ADMMass can compute the ADM mass from quantities in ADMBase.

### 1 Introduction

The ADM mass evaluated as either surface integrals at infinity or volume integrals over entire hypersurfaces give a measure of the total energy in the spacetime.

The ADM mass can be defined [1] as a surface integral over a sphere with infinite radius: \begin {equation} \label {eq:ADM_mass} M_{\mbox {\tiny ADM}}=\frac {1}{16\pi }\oint _\infty \sqrt {\gamma }\gamma ^{ij}\gamma ^{kl} (\gamma _{ik,j}-\gamma _{ij,k})\text {d}\! S_l \end {equation} . This is, assuming $$\alpha =1$$ at infinity, equivalent to \begin {equation} \label {eq:ADM_mass_volume} M_{\mbox {\tiny ADM}}=\frac {1}{16\pi }\int \left (\alpha \sqrt {\gamma }\gamma ^{ij}\gamma ^{kl} (\gamma _{ik,j}-\gamma _{ij,k})\right )_{,l}\text {d}\!^{\,3}\!\!x \end {equation} . In practice, the following equation can also be used within the thorn: \begin {equation} \label {eq:ADM_mass_lapse} M_{\mbox {\tiny ADM}}=\frac {1}{16\pi }\oint _\infty \alpha \sqrt {\gamma }\gamma ^{ij}\gamma ^{kl} (\gamma _{ik,j}-\gamma _{ij,k})\text {d}\! S_l. \end {equation} This differs from equation (??) by the factor $$\alpha$$ inside the integral. For evaluations of those equations at infinity, $$\alpha =1$$ is assumed, and they are equal. For evaluations at a finite distance, however, this is usually not the case and the approximation of the ADM mass is gauge-dependent [1]. Depending on circumstances, either (??), (?? or  (??) might give better results.

### 2 Using This Thorn

Multiple measurements can be done for both volume and surface integral, but the limit for both is 100 (change param.ccl if you need more). You need to specify the number of integrations with ADMMass_number (and ADMMass will perform both integrations that many times).

Also note that this thorn uses the ADMMacros for derivatives. Thus, converegence of results is limited to the order of these derivatives (ADMMacros::spatial_order).

ADMMass provides several possibilities to specify the (finite) integration domain, both for surface and volume integral, which we list in the following:

• Surface Integral (over rectangular domain)

• ADMMass_distance_from_grid_boundary: specifies the distance between the physical domain boundary and the integration domain. If this is set, this fully specifies the domain boundary.

• ADMMass_surface_distance: specifies a distance of the integration boundary from a given point, specified using ADMMass_x_pos[3].

• Otherwise, ADMMass_[xyz]_[min|max] specify a rectangular integration domain.

• Volume Integral (over sphere)

• If ADMMass_use_all_volume_as_volume_radius is set, the whole volume is used for integration.

• ADMMass_[xyz]_pos specify the position of the integration sphere.

• Use ADMMass_Excise_Horizons to exclude domains where thorn OutsideMask didn’t specify domain as outside. This can be used to, e.g. excise black hole apparent horizons.

You should output ADMMass::ADMMass_Masses for the result of the integrations, which will include the results for the volume integral, the usual surface integral and the sorface integral including the lapse.

### References

[1]   N. O Murchadha and J. W. York, “Gravitational energy,” Phys. Rev. D 10, 2345 (1974). doi:10.1103/PhysRevD.10.2345

### 3 Parameters

 admmass_debug Scope: private BOOLEAN Description: Enable some info at runtime Default: no

 admmass_distance_from_grid_boundary Scope: private REAL Description: distance between the grid boundaries and the surface of the integration box Range Default: -1.0 : <=0 for disable, positive otherwise

 admmass_excise_horizons Scope: private BOOLEAN Description: Should we exclude the region inside the AH to the volume integral Default: no

 admmass_number Scope: private INT Description: number of measurements Range Default: 1 0: 0 or positive

 admmass_surface_distance Scope: private REAL Description: distance between the above-defined center of the integration (cubic) box and its surface Range Default: -1.0 : <=0 for disable, positive otherwise

 admmass_use_all_volume_as_volume_radius Scope: private BOOLEAN Description: Use the whole grid for volume integration Default: no

 admmass_volume_radius Scope: private REAL Description: radius of the sphere inside which the volume integral is computed Range Default: -1.0 : <=0 for disable, positive otherwise

 admmass_x_max Scope: private REAL Description: x position of the righttmost yz-plane for the integration box Range Default: 100.0 : anything

 admmass_x_min Scope: private REAL Description: x position of the leftmost yz-plane for the integration box Range Default: -100.0 : anything

 admmass_x_pos Scope: private REAL Description: x position of the center of the integration box Range Default: 0.0 : anything

 admmass_y_max Scope: private REAL Description: y position of the rightmost xz-plane for the integration box Range Default: 100.0 : anything

 admmass_y_min Scope: private REAL Description: y position of the leftmost xz-plane for the integration box Range Default: -100.0 : anything

 admmass_y_pos Scope: private REAL Description: y position of the center of the integration box Range Default: 0.0 : anything

 admmass_z_max Scope: private REAL Description: z position of the rightmost xy-plane for the integration box Range Default: 100.0 : anything

 admmass_z_min Scope: private REAL Description: z position of the leftmost xy-plane for the integration box Range Default: -100.0 : anything

 admmass_z_pos Scope: private REAL Description: z position of the center of the integration box Range Default: 0.0 : anything

Implements:

Inherits:

staticconformal

### 5 Schedule

This section lists all the variables which are assigned storage by thorn EinsteinAnalysis/ADMMass. Storage can either last for the duration of the run (Always means that if this thorn is activated storage will be assigned, Conditional means that if this thorn is activated storage will be assigned for the duration of the run if some condition is met), or can be turned on for the duration of a schedule function.

#### Scheduled Functions

CCTK_INITIAL

initialise the loop counter for admmass

 Language: c Options: global Type: function

CCTK_POSTSTEP

set the loop counter to the value of the parameter admmass:admmass_number

 After: outsidemask_updatemask Language: c Options: global Type: function

CCTK_POSTSTEP

decrement loop counter

 Language: c Options: global Type: function

calculate the admmass using a surface integral: local routine

 After: admmass_loop Language: c Options: global loop-local Sync: admmass_gfs_surface Type: function

calculate the admmass using a surface integral: global routine

 After: admmass_surface Language: c Options: global Type: function

calculate the admmass*lapse using a surface integral: local routine

 After: admmass_surface_global Language: c Options: global loop-local Sync: admmass_gfs_surface Type: function

calculate the admmass*lapse using a surface integral: global routine

 After: admmass_surface_lapse Language: c Options: global Type: function

calculate the admmass using a volume integral: local routine

 After: admmass_surface_lapse_global Language: c Options: global loop-local Sync: admmass_gfs_volume Type: function