aboutsummaryrefslogtreecommitdiff
path: root/interface.ccl
diff options
context:
space:
mode:
Diffstat (limited to 'interface.ccl')
-rw-r--r--interface.ccl210
1 files changed, 210 insertions, 0 deletions
diff --git a/interface.ccl b/interface.ccl
new file mode 100644
index 0000000..fffdbf8
--- /dev/null
+++ b/interface.ccl
@@ -0,0 +1,210 @@
+# Interface definition for thorn QuasiLocalMeasures
+
+IMPLEMENTS: QuasiLocalMeasures
+
+INHERITS: ADMBase SphericalSurface
+
+
+
+CCTK_POINTER_TO_CONST \
+FUNCTION GetMPICommWorld (CCTK_POINTER_TO_CONST IN cctkGH)
+USES FUNCTION GetMPICommWorld
+
+
+
+INT qlm_state[num_surfaces] TYPE=scalar
+{
+ qlm_calc_error # some QLM information is invalid
+ qlm_have_valid_data # interpolating from the AH was successful
+ qlm_have_killing_vector # we found a Killing vector field
+ qlm_timederiv_order # order of time derivatives
+ qlm_iteration # iteration for current data
+} "Status information"
+
+INT qlm_state_p[num_surfaces] TYPE=scalar
+{
+ qlm_have_valid_data_p qlm_have_valid_data_p_p
+ qlm_have_killing_vector_p qlm_have_killing_vector_p_p
+} "Previous status information"
+
+INT qlm_grid_int[num_surfaces] TYPE=scalar
+{
+ qlm_nghoststheta qlm_nghostsphi
+ qlm_ntheta qlm_nphi
+} "Grid description"
+
+REAL qlm_grid_real[num_surfaces] TYPE=scalar
+{
+ qlm_origin_x qlm_origin_y qlm_origin_z
+ qlm_origin_theta qlm_origin_phi
+ qlm_delta_theta qlm_delta_phi
+} "Grid description"
+
+REAL qlm_grid_real_p[num_surfaces] TYPE=scalar
+{
+ qlm_origin_x_p qlm_origin_y_p qlm_origin_z_p
+ qlm_origin_x_p_p qlm_origin_y_p_p qlm_origin_z_p_p
+} "Previous grid description"
+
+REAL qlm_shapes[num_surfaces] TYPE=array DIM=2 SIZE=SphericalSurface::maxntheta,SphericalSurface::maxnphi DISTRIB=constant TAGS='convergence_power=1'
+{
+ qlm_shape
+} "Shape of the surface"
+
+REAL qlm_shapes_p[num_surfaces] TYPE=array DIM=2 SIZE=SphericalSurface::maxntheta,SphericalSurface::maxnphi DISTRIB=constant TAGS='convergence_power=1'
+{
+ qlm_shape_p qlm_shape_p_p
+} "Previous shapes of the surface"
+
+REAL qlm_coordinates[num_surfaces] TYPE=array DIM=2 SIZE=SphericalSurface::maxntheta,SphericalSurface::maxnphi DISTRIB=constant TAGS='convergence_power=1'
+{
+ qlm_x qlm_y qlm_z
+} "Cartesian coordinates of the grid points on the surface"
+
+# TODO: make this group private, i.e., move it into qlm_variables.F90
+REAL qlm_coordinates_p[num_surfaces] TYPE=array DIM=2 SIZE=SphericalSurface::maxntheta,SphericalSurface::maxnphi DISTRIB=constant TAGS='convergence_power=1'
+{
+ qlm_x_p qlm_y_p qlm_z_p
+ qlm_x_p_p qlm_y_p_p qlm_z_p_p
+} "Past Cartesian coordinates of the grid points on the surface"
+
+REAL qlm_tetrad_l[num_surfaces] TYPE=array DIM=2 SIZE=SphericalSurface::maxntheta,SphericalSurface::maxnphi DISTRIB=constant TAGS='convergence_power=1'
+{
+ # all components are contravariant
+ qlm_l0 qlm_l1 qlm_l2 qlm_l3 # outward null normal
+} "Tetrad vector l^mu"
+
+REAL qlm_tetrad_n[num_surfaces] TYPE=array DIM=2 SIZE=SphericalSurface::maxntheta,SphericalSurface::maxnphi DISTRIB=constant TAGS='convergence_power=1'
+{
+ # all components are contravariant
+ qlm_n0 qlm_n1 qlm_n2 qlm_n3 # inward null normal
+} "Tetrad vector n^mu"
+
+COMPLEX qlm_tetrad_m[num_surfaces] TYPE=array DIM=2 SIZE=SphericalSurface::maxntheta,SphericalSurface::maxnphi DISTRIB=constant TAGS='convergence_power=1'
+{
+ # all components are contravariant
+ qlm_m0 qlm_m1 qlm_m2 qlm_m3 # null normal within surface
+} "Tetrad vector m^mu"
+
+REAL qlm_tetrad_l_p[num_surfaces] TYPE=array DIM=2 SIZE=SphericalSurface::maxntheta,SphericalSurface::maxnphi DISTRIB=constant TAGS='convergence_power=1'
+{
+ qlm_l0_p qlm_l1_p qlm_l2_p qlm_l3_p
+ qlm_l0_p_p qlm_l1_p_p qlm_l2_p_p qlm_l3_p_p
+} "Previous tetrad vectors l^mu"
+
+REAL qlm_tetrad_n_p[num_surfaces] TYPE=array DIM=2 SIZE=SphericalSurface::maxntheta,SphericalSurface::maxnphi DISTRIB=constant TAGS='convergence_power=1'
+{
+ qlm_n0_p qlm_n1_p qlm_n2_p qlm_n3_p
+ qlm_n0_p_p qlm_n1_p_p qlm_n2_p_p qlm_n3_p_p
+} "Previous tetrad vectors n^mu"
+
+COMPLEX qlm_tetrad_m_p[num_surfaces] TYPE=array DIM=2 SIZE=SphericalSurface::maxntheta,SphericalSurface::maxnphi DISTRIB=constant TAGS='convergence_power=1'
+{
+ qlm_m0_p qlm_m1_p qlm_m2_p qlm_m3_p
+ qlm_m0_p_p qlm_m1_p_p qlm_m2_p_p qlm_m3_p_p
+} "Previous tetrad vectors m^mu"
+
+COMPLEX qlm_newman_penrose[num_surfaces] TYPE=array DIM=2 SIZE=SphericalSurface::maxntheta,SphericalSurface::maxnphi DISTRIB=constant TAGS='Checkpoint="no"' TAGS='convergence_power=1'
+{
+ qlm_npkappa qlm_nptau qlm_npsigma qlm_nprho
+ qlm_npepsilon qlm_npgamma qlm_npbeta qlm_npalpha
+ qlm_nppi qlm_npnu qlm_npmu qlm_nplambda
+# qlm_lie_l_npsigma
+# qlm_lie_n_npsigma # for the Bondi mass
+} "Newman-Penrose quantities"
+
+COMPLEX qlm_weyl_scalars[num_surfaces] TYPE=array DIM=2 SIZE=SphericalSurface::maxntheta,SphericalSurface::maxnphi DISTRIB=constant TAGS='Checkpoint="no"' TAGS='convergence_power=1'
+{
+ qlm_psi0 # should be zero for an IH
+ qlm_psi1 # should be zero for an IH
+ qlm_psi2 # Im Psi_2 defines the angular momentum
+ qlm_psi3
+ qlm_psi4
+ qlm_i qlm_j # curvature invariants I and J
+ qlm_s # speciality index S = 27 J^2 / I^3
+ qlm_sdiff # (27 J^2 - I^3) / L_2[Psi_n]^3
+} "Weyl scalars (aka Newman-Penrose spin coefficients)"
+
+REAL qlm_ricci_scalars[num_surfaces] TYPE=array DIM=2 SIZE=SphericalSurface::maxntheta,SphericalSurface::maxnphi DISTRIB=constant TAGS='Checkpoint="no"' TAGS='convergence_power=1'
+{
+ qlm_phi00 # Ricci tensor, temporarily not available by qlm_weyl_2, change back to qlm_weyl_scalars in qlm_calculate to get them
+ qlm_phi11
+ qlm_phi01
+ qlm_phi12
+ qlm_phi10
+ qlm_phi21
+ qlm_phi02
+ qlm_phi22
+ qlm_phi20
+
+ qlm_lambda # Ricci scalar
+
+ qlm_lie_n_theta_l # Lie_n Theta_(l)
+} "Ricci scalars"
+
+REAL qlm_twometric[num_surfaces] TYPE=array DIM=2 SIZE=SphericalSurface::maxntheta,SphericalSurface::maxnphi DISTRIB=constant TAGS='Checkpoint="no"' TAGS='convergence_power=1'
+{
+ qlm_qtt qlm_qtp qlm_qpp
+ qlm_dqttt qlm_dqtpt qlm_dqppt
+ qlm_dqttp qlm_dqtpp qlm_dqppp
+ qlm_rsc
+} "2-metric"
+
+REAL qlm_killing_vector[num_surfaces] TYPE=array DIM=2 SIZE=SphericalSurface::maxntheta,SphericalSurface::maxnphi DISTRIB=constant TAGS='convergence_power=1'
+{
+ qlm_xi_t qlm_xi_p
+ qlm_chi
+} "Killing vector field"
+
+REAL qlm_killing_vector_p[num_surfaces] TYPE=array DIM=2 SIZE=SphericalSurface::maxntheta,SphericalSurface::maxnphi DISTRIB=constant TAGS='convergence_power=1'
+{
+ qlm_xi_t_p qlm_xi_p_p
+ qlm_xi_t_p_p qlm_xi_p_p_p
+} "Previous Killing vector field"
+
+REAL qlm_killed_twometric[num_surfaces] TYPE=array DIM=2 SIZE=SphericalSurface::maxntheta,SphericalSurface::maxnphi DISTRIB=constant TAGS='Checkpoint="no"' TAGS='convergence_power=1'
+{
+ qlm_lqtt qlm_lqtp qlm_lqpp
+} "Lie derivative of the 2-metric along the Killing vector field"
+
+REAL qlm_invariant_coordinates[num_surfaces] TYPE=array DIM=2 SIZE=SphericalSurface::maxntheta,SphericalSurface::maxnphi DISTRIB=constant TAGS='Checkpoint="no"' TAGS='convergence_power=1'
+{
+ qlm_inv_z
+} "Invariant coordinates on the surface, assuming axisymmetry"
+
+REAL qlm_multipole_moments[num_surfaces] TYPE=scalar TAGS='Checkpoint="no"'
+{
+ qlm_mp_m0 qlm_mp_m1 qlm_mp_m2 qlm_mp_m3 qlm_mp_m4 qlm_mp_m5 qlm_mp_m6 qlm_mp_m7 qlm_mp_m8
+ qlm_mp_j0 qlm_mp_j1 qlm_mp_j2 qlm_mp_j3 qlm_mp_j4 qlm_mp_j5 qlm_mp_j6 qlm_mp_j7 qlm_mp_j8
+} "Mass and spin multipole moments"
+
+REAL qlm_3determinant[num_surfaces] TYPE=array DIM=2 SIZE=SphericalSurface::maxntheta,SphericalSurface::maxnphi DISTRIB=constant TAGS='Checkpoint="no"' TAGS='convergence_power=1'
+{
+ qlm_3det
+} "3-Determinant of H for a special choice of the triad"
+
+REAL qlm_scalars[num_surfaces] TYPE=scalar
+{
+ qlm_time
+ qlm_equatorial_circumference
+ qlm_polar_circumference_0
+ qlm_polar_circumference_pi_2
+ # area A and areal radius R
+ qlm_area qlm_irreducible_mass qlm_radius
+ qlm_spin_guess qlm_mass_guess
+ qlm_killing_eigenvalue_re qlm_killing_eigenvalue_im
+ # spin J: J = a M^2, i.e., angular momentum (spin is a misnomer)
+ qlm_spin qlm_npspin qlm_wsspin qlm_cvspin
+ qlm_coordspinx qlm_coordspiny qlm_coordspinz
+ # mass M : total mass, i.e., including angular momentum
+ qlm_mass
+ qlm_adm_energy
+ qlm_adm_momentum_x qlm_adm_momentum_y qlm_adm_momentum_z
+ qlm_adm_angular_momentum_x qlm_adm_angular_momentum_y qlm_adm_angular_momentum_z
+} "Scalar quantities on the surface"
+
+REAL qlm_scalars_p[num_surfaces] TYPE=scalar
+{
+ qlm_time_p qlm_time_p_p
+ qlm_radius_p qlm_radius_p_p
+} "Some scalar quantities on the surface at previous times"