Chapter P9
StaticConformal

Author(s): Tom Goodale et al

Date: Date



P9.1 Abstract

Base thorn to provide the variables for the static conformal factor

P9.2 Purpose

This thorn provides the variables defining a static conformal factor which is used to transform the physical metric. If this thorn is active and the ADMBase::metric_type parameter is set to static conformal, then the ADMBase::g... variables are the conformal values as opposed to the physical values.

The transformation is

 physical    4 conformal
gij      = ψ gij

The extrinsic curvature is not transformed.

Memory is provided for the conformal factor psi, its first derivatives psix, psiy, psiz, and its second derivatives psixx, psixy, psixz, psiyy, psiyz, and psizz depending on the setting of the conformal_storage parameter.

Note that the first and second “derivative” grid functions have an additional factor of 1∕ψ normalisation since this is the most common use of the derivative. I.e., the grid functions are

   psi  =  ψ,
 psix  =  ψx ∕ψ,   etc
psixx  =  ψij∕ψ    etc

Thorns need to check the value of the grid scalar conformal_state to determine how many levels of these variables have actually been calculated before using the conformal factor:

conformal_state=0
No conformal factor has been calculated — thorns may assume the conformal factor is 1 at all points. (I.e., the metric is physical.)
conformal_state=1
The conformal factor has been calulated, but no derivatives.
conformal_state=2
The conformal factor and its first derivatives have been calculated.
conformal_state=3
The conformal factor and its first and second derivatives have been calculated.

Note that this means that if you only want to know whether psi contains the values for the conformal factor you can check for conformal_state > 0.

P9.3 Utilities

StaticConformal provides aliased functions to convert between physical and conformal 3-metric values. It is very important to understand that these functions apply the conversion in place. That is, if gxx contains the conformal metric value, when the routine is exited it will now contain the physical metric value. These functions do not change the value of conformal_state and should be used with due care. (These functions are for example used by some analysis thorns who work only with the physical metric, they apply the transformation on entry to the analysis routine and switch it back on exit).

Convert from conformal to physical:
 
subroutine ConfToPhysInPlace (nx, ny, nz,  
                              psi,  
                              gxx, gxy, gxz, gyy, gyz, gzz)  
   implicit none  
   CCTK_INT,                         intent(in)    :: nx, ny, nz  
   CCTK_REAL, dimension(nx, ny, nz), intent(in)    :: psi  
   CCTK_REAL, dimension(nx, ny, nz), intent(inout) :: gxx, gxy, gxz, gyy, gyz, gzz  
end subroutine ConfToPhysInPlace

Convert from physical to conformal:
 
subroutine PhysToConfInPlace (nx, ny, nz,  
                              psi,  
                              gxx, gxy, gxz, gyy, gyz, gzz)  
   implicit none  
   CCTK_INT,                         intent(in)    :: nx, ny, nz  
   CCTK_REAL, dimension(nx, ny, nz), intent(in)    :: psi  
   CCTK_REAL, dimension(nx, ny, nz), intent(inout) :: gxx, gxy, gxz, gyy, gyz, gzz  
end subroutine ConfToPhysInPlace

P9.4 Comments

The StaticConformal thorn itself does not calculate any conformal factor, but does initialise the conformal_state variable to 0.

P9.5 Parameters




conformal_storage
Scope: restricted   KEYWORD



Description: How much conformal storage do we have ?



Range    Default: factor+derivs+2nd derivs
factor
Just the conformal factor
factor+derivs
Conformal factor plus first derivatives
see [1] below
Conformal factor plus first and second derivatives



[1]

factor+derivs+2nd derivs




metric_type
Scope: shared from ADMBASE   KEYWORD



Extends ranges:



static conformal
Metric is conformal with static conformal factor, extrinsic curvature is physical



P9.6 Interfaces

General

Implements:

staticconformal

Inherits:

grid

Grid Variables

PUBLIC GROUPS




  Group Names    Variable Names     Details   




conformal_state    compact0
conformal_state    dimensions0
   distributionCONSTANT
   group typeSCALAR
   stagger typeNONE
   timelevels1
  variable typeINT




confac    compact0
psi    descriptionConformal factor
   dimensions3
   distributionDEFAULT
   group typeGF
   stagger typeNONE
   tagstensortypealias=”Scalar” Prolongation=”None” InterpNumTimelevels=1
   timelevels1
  variable typeREAL




confac_1derivs    compact0
psix    descriptionFirst spatial derivatives of conformal factor divided by psi
psiy    dimensions3
psiz    distributionDEFAULT
   group typeGF
   stagger typeNONE
   tagstensortypealias=”U” Prolongation=”None” InterpNumTimelevels=1
   timelevels1
  variable typeREAL




confac_2derivs    compact0
psixx    descriptionSecond spatial derivatives of conformal factor divided by psi
psixy    dimensions3
psixz    distributionDEFAULT
psiyy    group typeGF
psiyz    stagger typeNONE
psizz    tagstensortypealias=”dd_sym” Prolongation=”None” InterpNumTimelevels=1
   timelevels1
  variable typeREAL




Provides:

ConfToPhysInPlace to

PhysToConfInPlace to

P9.7 Schedule

This section lists all the variables which are assigned storage by thorn EinsteinBase/StaticConformal. 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: Conditional:
conformal_stateconfac[1]
  confac[1]
  confac_1derivs[1]
  confac[1]
  confac_1derivs[1]
  confac_2derivs[1]
   

Scheduled Functions

CCTK_INITIAL

  staticconformal_initialisestate

  set the conformal_state variable to 0

 

 Before: admbase_initialdata
  Language:c
 Type: function