blob: bb66f2c91ad3a2121d93ba376a01a23068d0ce62 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
# Interface definition for thorn SphericalSurface
# $Header$
IMPLEMENTS: SphericalSurface
inherits: grid
# Get current refinement level
CCTK_INT FUNCTION GetRefinementLevel (CCTK_POINTER_TO_CONST IN cctkGH)
USES FUNCTION GetRefinementLevel
PUBLIC:
# To be defined by the setting thorn.
# Suggested meanings:
# zero: The surface data are invalid (garbage)
# one: The surface data are valid in principle, although they may be outdated
CCTK_INT sf_active[nsurfaces] TYPE=scalar
# To be defined by the setting thorn.
# Suggested meanings:
# zero: No surface is provided at this time step
# negative: No surface could be found at this time step
# positive: The surface data are valid
CCTK_INT sf_valid[nsurfaces] TYPE=scalar
CCTK_REAL sf_info[nsurfaces] TYPE=scalar
{
# The following are covariant quantities:
# proper area:
# A := int(S) sqrt(q) dS
# with q_ij the 2-metric on the surface
sf_area
# The following are coordinate-dependent quantities:
# monopole moment (average coordinate radius):
# M := int(S) h ds / A
sf_mean_radius
# dipole moment:
# D^i := int(S) x^i dS / A
sf_centroid_x sf_centroid_y sf_centroid_z
# quadrupole moment:
# Q^ij := int(S) y^i y^j dS / A with y^i := x^i - D^i
sf_quadrupole_xx sf_quadrupole_xy sf_quadrupole_xz
sf_quadrupole_yy sf_quadrupole_yz sf_quadrupole_zz
# minimum and maximum coordinate radius
sf_min_radius sf_max_radius
# bounding box
sf_min_x sf_min_y sf_min_z sf_max_x sf_max_y sf_max_z
} "Surface information"
# the finest reflevel each surface is intersecting
CCTK_INT sf_minreflevel[nsurfaces] TYPE=scalar
# the finest reflevel that contains the entire surface
CCTK_INT sf_maxreflevel[nsurfaces] TYPE=scalar
CCTK_REAL sf_radius[nsurfaces] TYPE=array DIM=2 SIZE=maxntheta,maxnphi DISTRIB=constant #TAGS='convergence_power=1'
CCTK_REAL sf_origin[nsurfaces] TYPE=scalar
{
# these are to be set together with the radius grid array
sf_origin_x sf_origin_y sf_origin_z
}
CCTK_REAL sf_coordinate_descriptors[nsurfaces] TYPE=scalar
{
# these are set up by this thorn, and should be treated as read-only
sf_origin_theta sf_origin_phi
sf_delta_theta sf_delta_phi
} "Surface coordinate descriptors"
CCTK_INT sf_shape_descriptors[nsurfaces] TYPE=scalar
{
sf_ntheta sf_nphi
sf_nghoststheta sf_nghostsphi
} "Surface shape descriptors"
private:
CCTK_REAL sf_coordinate_estimators[nsurfaces] TYPE=scalar
{
sf_delta_theta_estimate sf_delta_phi_estimate
} "Surface coordinate estimators"
|