ADMMass

Frank Löffler

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:

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_use_surface_distance_as_volume_radius
Scope: private  BOOLEAN



Description: Use ADMMass_surface_distance instead of ADMMass_volume_radius



  Default: yes






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



4 Interfaces

General

Implements:

admmass

Inherits:

admbase

admmacros

staticconformal

spacemask

Grid Variables

4.0.1 PRIVATE GROUPS




  Group Names     Variable Names     Details   




admmass_loopcounterg   compact0
ADMMass_LoopCounter   descriptionADMMass LoopCounter
  dimensions0
  distributionCONSTANT
  group typeSCALAR
  timelevels1
 variable typeINT




admmass_masses   compact0
ADMMass_SurfaceMass   descriptionADMMass Scalars
ADMMass_SurfaceMass_Lapse  dimensions0
ADMMass_VolumeMass   distributionCONSTANT
  group typeSCALAR
  tagscheckpoint=”no”
  timelevels1
 vararray_sizeADMMass_number
 variable typeREAL




admmass_gfs_surface   compact0
ADMMass_SurfaceMass_GF   descriptionADMMass gridfunctions for surface integration
  dimensions3
  distributionDEFAULT
  group typeGF
  tagsProlongation=”none” tensortypealias=”Scalar” checkpoint=”no”
  timelevels3
 variable typeREAL




admmass_gfs_volume   compact0
ADMMass_VolumeMass_pot_x  descriptionADMMass gridfunctions for volume integration
ADMMass_VolumeMass_pot_y  dimensions3
ADMMass_VolumeMass_pot_z  distributionDEFAULT
ADMMass_VolumeMass_GF   group typeGF
  tagsProlongation=”none” tensortypealias=”Scalar” checkpoint=”no”
  timelevels3
 variable typeREAL




admmass_box   compact0
ADMMass_box_x_min   descriptionPhysical coordinates of the surface on which the integral is computed
ADMMass_box_x_max   dimensions0
ADMMass_box_y_min   distributionCONSTANT
ADMMass_box_y_max   group typeSCALAR
ADMMass_box_z_min   tagscheckpoint=”no”
ADMMass_box_z_max   timelevels1
 variable typeREAL




grid_spacing_product grid_spacing_product   compact0
  descriptionproduct of cctk_delta_space
    descriptionto be computed in local mode and later used in global mode (carpet problems)
  dimensions0
  distributionCONSTANT
  group typeSCALAR
  tagscheckpoint=”no”
  timelevels1
 variable typeREAL




Uses header:

SpaceMask.h

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.

Storage

 

Always:  
ADMMass_LoopCounterG 
ADMMass_Masses  
ADMMass_GFs_surface[3] 
ADMMass_GFs_volume[3] 
   

Scheduled Functions

CCTK_INITIAL

  admmass_initloopcounter

  initialise the loop counter for admmass

 

 Language:c
 Options: global
 Type: function

CCTK_POSTSTEP

  admmass_setloopcounter

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

 

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

CCTK_POSTSTEP

  admmass

  admmass loop

 

 After: admmass_setloopcounter
 Storage:admmass_gfs_surface[3]
   admmass_gfs_volume[3]
   admmass_box
   grid_spacing_product
 Type: group
 While: admmass::admmass_loopcounter

ADMMass

  admmass_loop

  decrement loop counter

 

 Language:c
 Options: global
 Type: function

ADMMass

  admmass_surface

  calculate the admmass using a surface integral: local routine

 

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

ADMMass

  admmass_surface_global

  calculate the admmass using a surface integral: global routine

 

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

ADMMass

  admmass_surface_lapse

  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

ADMMass

  admmass_surface_lapse_global

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

 

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

ADMMass

  admmass_volume

  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

ADMMass

  admmass_volume_global

  calculate the admmass using a volume integral: global routine

 

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