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 ADMBASEKEYWORD



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 compact 0
trK description trace of extrinsic curvature
dimensions 3
distribution DEFAULT
group type GF
tags tensortypealias=”scalar” Prolongation=”none”
timelevels 1
variable type REAL




detofg compact 0
detg description determinant of the conformal metric
dimensions 3
distribution DEFAULT
group type GF
tags tensortypealias=”scalar” Prolongation=”none”
timelevels 1
variable type REAL




spherical_metric compact 0
grr description Metric in spherical coordinates
gqq dimensions 3
gpp distribution DEFAULT
grq group type GF
grp tags Prolongation=”none”
gqp timelevels 1
variable type REAL




spherical_curv compact 0
krr description extrinsic curvature in spherical coordinates
kqq dimensions 3
kpp distribution DEFAULT
krq group type GF
krp tags Prolongation=”none”
kqp timelevels 1
variable type REAL




ricci_tensor compact 0
Ricci11 description Components of the Ricci tensor
Ricci12 dimensions 3
Ricci13 distribution DEFAULT
Ricci22 group type GF
Ricci23 tags tensortypealias=”dd_sym” ProlongationParameter=”ADMAnalysis::ricci_prolongation_type”
Ricci33 timelevels 3
variable type REAL




ricci_scalar compact 0
Ricci description The Ricci scalar
dimensions 3
distribution DEFAULT
group type GF
tags tensortypealias=”scalar” ProlongationParameter=”ADMAnalysis::ricci_prolongation_type”
timelevels 3
variable type REAL




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