Basic analysis of the metric and extrinsic curvature tensors
This thorn provides analysis routines to calculate the following quantities:
The trace of the extrinsic curvature (\(trK\)).
The determinant of the 3-metric (\(detg\)).
The components of the 3-metric in spherical coordinates
(\(g_{rr},g_{r\theta },g_{r\phi },g_{\theta \theta },g_{\phi \theta },g_{\phi \phi }\)).
The components of the extrinsic curvature in spherical coordinates
(\(K_{rr},K_{r\theta },K_{r\phi },K_{\theta \theta },K_{\theta \phi },K_{\phi \phi }\)).
The components of the 3-Ricci tensor in cartesian coordinates
(\({\cal R}_{ij}\)) for \(i,j \in \{1,2,3\}\).
The Ricci scalar (\(\cal R\)).
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}
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}
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
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,
The computation of the Ricci tensor uses the ADMMacros thorn. The calculation of the Ricci scalar uses the generic trace routine in this thorn.
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 |
Implements:
admanalysis
Inherits:
admbase
staticconformal
grid
admmacros
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
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.
Conditional: | |
ricci_tensor[1] ricci_scalar[1] | |
ricci_tensor[2] ricci_scalar[2] | |
ricci_tensor[3] ricci_scalar[3] | |
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 | |
Alias Name: | Function Name: |
ApplyBCs | ADMAnalysis_ApplyBCs |