ADMAnalysis

Tom Goodale et al

\( \)Date\( \)

Abstract

Basic analysis of the metric and extrinsic curvature tensors

1 Purpose

This thorn provides analysis routines to calculate the following quantities:

2 Trace of Extrinsic Curvature

The trace of the extrinsic curvature at each point on the grid is placed in the grid function trK. The algorithm for calculating the trace uses the physical metric, that is it includes any conformal factor.

\begin {equation} {\tt trK} \equiv tr K = \frac {1}{\psi ^4} g^{ij} K_{ij} \end {equation}

3 Determinant of 3-Metric

The determinant of the 3-metric at each point on the grid is placed in the grid function detg. This is always the determinant of the conformal metric, that is it does not include any conformal factor.

\begin {equation} {\tt detg} \equiv det g = -g_{13}^2*g_{22}+2*g_{12}*g_{13}*g_{23}-g_{11}*g_{23}^2- g_{12}^2*g_{33}+g_{11}*g_{22}*g_{33} \end {equation}

4 Transformation to Spherical Cooordinates

The values of the metric and/or extrinsic curvature in a spherical polar coordinate system \((r,\theta ,\phi )\) evaluated at each point on the computational grid are placed in the grid functions (grr, grt, grp, gtt, gtp, gpp) and (krr, krt, krp, ktt, ktp, kpp). In the spherical transformation, the \(\theta \) coordinate is referred to as q and the \(\phi \) as p.

The general transformation from Cartesian to Spherical for such tensors is

\begin {eqnarray*} A_{rr}&=& \sin ^2\theta \cos ^2\phi A_{xx} +\sin ^2\theta \sin ^2\phi A_{yy} +\cos ^2\theta A_{zz} +2\sin ^2\theta \cos \phi \sin \phi A_{xy} \\ && +2\sin \theta \cos \theta \cos \phi A_{xz} +2\sin \theta \cos \theta \sin \phi A_{yz} \\ A_{r\theta }&=& r(\sin \theta \cos \theta \cos ^2\phi A_{xx} +2*\sin \theta \cos \theta \sin \phi \cos \phi A_{xy} +(\cos ^2\theta -\sin ^2\theta )\cos \phi A_{xz} \\ && +\sin \theta \cos \theta \sin ^2\phi A_{yy} +(\cos ^2\theta -\sin ^2\theta )\sin \phi A_{yz} -\sin \theta \cos \theta A_{zz}) \\ A_{r\phi }&=& r\sin \theta (-\sin \theta \sin \phi \cos \phi A_{xx} -\sin \theta (\sin ^2\phi -\cos ^2\phi )A_{xy} -\cos \theta \sin \phi A_{xz} \\ && +\sin \theta \sin \phi \cos \phi A_{yy} +\cos \theta \cos \phi A_{yz}) \\ A_{\theta \theta }&=& r^2(\cos ^2\theta \cos ^2\phi A_{xx} +2\cos ^2\theta \sin \phi \cos \phi A_{xy} -2\sin \theta \cos \theta \cos \phi A_{xz} +\cos ^2\theta \sin ^2\phi A_{yy} \\ && -2\sin \theta \cos \theta \sin \phi A_{yz} +\sin ^2\theta A_{zz}) \\ A_{\theta \phi }&=& r^2\sin \theta (-\cos \theta \sin \phi \cos \phi A_{xx} -\cos \theta (\sin ^2\phi -\cos ^2\phi )A_{xy} +\sin \theta \sin \phi A_{xz} \\ && +\cos \theta \sin \phi \cos \phi A_{yy} -\sin \theta \cos \phi A_{yz}) \\ A_{\phi \phi }&=& r^2\sin ^2\theta (\sin ^2\phi A_{xx} -2\sin \phi \cos \phi A_{xy} +\cos ^2\phi A_{yy}) \end {eqnarray*}

If the parameter normalize_dtheta_dphi is set to yes, the angular components are projected onto the vectors \((r d\theta , r \sin \theta d \phi )\) instead of the default vector \((d \theta , d\phi )\). That is,

\begin {eqnarray*} A_{\theta \theta } & \rightarrow & A_{\theta \theta }/r^2 \\ A_{\phi \phi }& \rightarrow & A_{\phi \phi }/(r^2\sin ^2\theta ) \\ A_{r\theta } & \rightarrow & A_{r\theta }/r \\ A_{r\phi } & \rightarrow & A_{r\phi }/(r\sin \theta ) \\ A_{\theta \phi } & \rightarrow & A_{\theta \phi }/r^2\sin \theta ) \end {eqnarray*}

5 Computing the Ricci tensor and scalar

The computation of the Ricci tensor uses the ADMMacros thorn. The calculation of the Ricci scalar uses the generic trace routine in this thorn.

6 Parameters




normalize_dtheta_dphi
Scope: private  BOOLEAN



Description: Project angular components onto r*dtheta and r*sin(theta)*dphi?



  Default: no






ricci_persist
Scope: private  BOOLEAN



Description: Keep storage of the Ricci tensor and scalar around?



  Default: no






ricci_prolongation_type
Scope: private  KEYWORD



Description: The kind of boundary prolongation for the Ricci tensor and scalar



Range   Default: none
Lagrange
standard prolongation (requires several time levels)
copy
use data from the current time level (requires only one time level)
none
no prolongation (use this if you do not have enough time levels active)






ricci_timelevels
Scope: private  INT



Description: Number of time levels for the Ricci tensor and scalar



Range   Default: 1
1:3






metric_type
Scope: shared from ADMBASE KEYWORD



7 Interfaces

General

Implements:

admanalysis

Inherits:

admbase

staticconformal

grid

admmacros

Grid Variables

7.0.1 PUBLIC GROUPS




  Group Names    Variable Names    Details   




trace_of_k   compact0
trK   descriptiontrace of extrinsic curvature
  dimensions3
  distributionDEFAULT
  group typeGF
  tagstensortypealias=”scalar” Prolongation=”none”
  timelevels1
 variable typeREAL




detofg   compact0
detg   descriptiondeterminant of the conformal metric
  dimensions3
  distributionDEFAULT
  group typeGF
  tagstensortypealias=”scalar” Prolongation=”none”
  timelevels1
 variable typeREAL




spherical_metric   compact0
grr   descriptionMetric in spherical coordinates
gqq   dimensions3
gpp   distributionDEFAULT
grq   group typeGF
grp   tagsProlongation=”none”
gqp   timelevels1
 variable typeREAL




spherical_curv   compact0
krr   descriptionextrinsic curvature in spherical coordinates
kqq   dimensions3
kpp   distributionDEFAULT
krq   group typeGF
krp   tagsProlongation=”none”
kqp   timelevels1
 variable typeREAL




ricci_tensor   compact0
Ricci11   descriptionComponents of the Ricci tensor
Ricci12   dimensions3
Ricci13   distributionDEFAULT
Ricci22   group typeGF
Ricci23   tagstensortypealias=”dd_sym” ProlongationParameter=”ADMAnalysis::ricci_prolongation_type”
Ricci33   timelevels3
 variable typeREAL




ricci_scalar   compact0
Ricci   descriptionThe Ricci scalar
  dimensions3
  distributionDEFAULT
  group typeGF
  tagstensortypealias=”scalar” ProlongationParameter=”ADMAnalysis::ricci_prolongation_type”
  timelevels3
 variable typeREAL




Uses header:

Symmetry.h

Provides:

CartToSphere to

Trace to

8 Schedule

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

 

 Conditional:
  ricci_tensor[1] ricci_scalar[1]
  ricci_tensor[2] ricci_scalar[2]
  ricci_tensor[3] ricci_scalar[3]
   

Scheduled Functions

CCTK_PARAMCHECK

  admanalysis_paramcheck

  check that the metric_type is recognised

 

 Language:c
 Options: global
 Type: function

CCTK_WRAGH (conditional)

  admanalysis_registersymmetry

  register symmetry of ricci tensor and scalar

 

 Language:c
 Options: global
 Type: function

CCTK_ANALYSIS (conditional)

  riccigroup

  calculate ricci tensor, with boundary conditions

 

 Storage: ricci_tensor[1]
   ricci_scalar[1]
   detofg
 Triggers:ricci_tensor
   ricci_scalar
 Type: group

RicciGroup

  admanalysis_ricci

  calculate ricci tensor, with boundary conditions

 

 Language:c
 Reads: admbase::metric
  Type: function
 Writes: detg(everywhere)
   ricci_tensor(everywhere)
   ricci_scalar(everywhere)

RicciGroup

  ricciboundariesgroup

  set ricci tensor on the boundary

 

 After:admanalysis_ricci
 Type:group

RicciBoundariesGroup

  admanalysis_ricci_boundaries

  select boundary conditions for the ricci tensor

 

 Language:c
 Options: level
 Sync: ricci_tensor
   ricci_scalar
 Type: function

RicciBoundariesGroup

  applybcs

  apply boundary conditions to the ricci tensor

 

 After:admanalysis_ricci
 Type:group

CCTK_ANALYSIS

  admanalysis_evaltrk

  compute the trace of the extrinsic curvature and the determinant of the metric

 

 Language:c
 Reads: admbase::metric
    admbase::curv
   staticconformal::psi
   staticconformal::conformal_state
  Storage: trace_of_k
   detofg
 Sync: trace_of_k
   detofg
 Triggers: trace_of_k
   detofg
 Type: function
 Writes: trk(everywhere)
   detg(everywhere)

CCTK_ANALYSIS

  admanalysis_metriccarttosphere

  calculate the spherical metric in r,theta(q), phi(p)

 

 Language:c
 Reads: grid::coordinates
   admbase::metric
  Storage: spherical_metric
 Sync: spherical_metric
 Triggers: spherical_metric
 Type: function
 Writes: spherical_metric(everywhere)

CCTK_ANALYSIS

  admanalysis_curvcarttosphere

  calculate the spherical ex. curvature in r, theta(q), phi(p)

 

 Language:c
 Reads: grid::coordinates
   admbase::curv
  Storage: spherical_curv
 Sync: spherical_curv
 Triggers: spherical_curv
 Type: function
 Writes: spherical_curv(everywhere)

CCTK_POSTINITIAL (conditional)

  riccigroup

  calculate ricci tensor, with boundary conditions

 

 After: mol_poststep
   mol_postinitial
 Storage:detofg
 Type: group

CCTK_POSTREGRID (conditional)

  ricciboundariesgroup

  set ricci tensor on the boundary

 

 Storage:detofg
 Type: group

CCTK_POSTRESTRICT (conditional)

  ricciboundariesgroup

  set ricci tensor on the boundary

 

 Type:group

CCTK_POST_RECOVER_VARIABLES (conditional)

  riccigroup

  calculate ricci tensor, with boundary conditions

 

 After: mol_poststep
   mol_postinitial
 Storage:detofg
 Type: group

CCTK_EVOL (conditional)

  riccigroup

  calculate ricci tensor, with boundary conditions

 

 After: mol_evolution
  Storage:detofg
 Type: group

Aliased Functions

 

Alias Name:        Function Name:
ApplyBCs ADMAnalysis_ApplyBCs