aboutsummaryrefslogtreecommitdiff
path: root/param.ccl
blob: bb2aff6f9db84e7abf231938523d1da93de72af2 (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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
# Parameter definitions for thorn EHFinder
# $Header$

private:

INT eh_number_level_sets "How many level set functions should we evolve"
{
  1:10        :: "Between 1 and 10"
} 1
 
KEYWORD eh_metric_type "Do we use numerical or analytic metric information"
{
  "numerical" :: "Read in metric from numerical data"
  "analytic"  :: "Use external analytic metric"
} "numerical"
 
KEYWORD eh_lapse_type "Do we use numerical or analytic metric information"
{
  "numerical" :: "Read in metric from numerical data"
  "analytic"  :: "Use external analytic metric"
} "numerical"

KEYWORD eh_shift_type "Do we use numerical or analytic metric information"
{
  "numerical" :: "Read in metric from numerical data"
  "analytic"  :: "Use external analytic metric"
} "numerical"

KEYWORD file_type "Are the timesteps in separate files or in one file?"
{
  "one_file" :: "All timesteps are in the same file"
  "sep_time_files" :: "Timesteps are in separete files"
} "one_file"

BOOLEAN read_conformal_factor_once "Should the conformal factor only be read once"
{
} "yes"

BOOLEAN cheat "Should we cheat and evolve using the last data set for a while?"
{
} "no"

CCTK_INT cheat_iterations "For how many iterations should we cheat"
{
0:*            :: "If you really want to cheat this should be positive"
} 0

KEYWORD initial_f[10] "Initial surface choice"
{
  "sphere"     :: "spherical surface"
  "ellipsoid"  :: "ellipsoidal surface"
  "cassini"    :: "ovaloid of cassini"
} "sphere"

REAL initial_rad[10] "Initial radius of surface"
{
0.0:            :: "Positive please"
} 1.0

REAL initial_a[10] "Initial a coefficient of ellipsoid"
{
0.0:            :: "Positive please"
} 1.0

REAL initial_b[10] "Initial b coefficient of ellipsoid"
{
0.0:            :: "Positive please"
} 1.0

REAL initial_c[10] "Initial c coefficient of ellipsoid"
{
0.0:            :: "Positive please"
} 1.0

REAL rotation_alpha[10] "Rotation angle around z-axis of ellipsoid"
{
*:*              :: "Everything is possible"
} 0.0

REAL rotation_beta[10] "Rotation angle around y-axis of ellipsoid"
{
*:*              :: "Everything is possible"
} 0.0

REAL rotation_gamma[10] "Rotation angle around x-axis of ellipsoid"
{
*:*              :: "Everything is possible"
} 0.0

REAL translate_x[10] "Translation in x-direction"
{
*:*              :: "Everything is possible"
} 0.0

REAL translate_y[10] "Translation in y-direction"
{
*:*              :: "Everything is possible"
} 0.0

REAL translate_z[10] "Translation in z-direction"
{
*:*              :: "Everything is possible"
} 0.0

REAL cas_a[10] "Initial a coefficient of ovaloid of cassini"
{
:                :: "Any number (negative and positive are equivalent)"
} 2.0

REAL cas_b[10] "Initial b coefficient of ovaloid of cassini"
{
:                :: "Any number (negative and positive are equivalent)"
} 2.05

REAL shell_width "Width of the evolution region in units of the grid spacing"
{
0.0:            :: "Positive please"
} 7.0

BOOLEAN use_inner_excision "Should inner excision be used?"
{
} "yes"

BOOLEAN use_outer_excision "Should outer excision be used?"
{
} "yes"

KEYWORD mode "Mode of operation"
{
  "normal"  :: "Find event horizons"
  "analysis" :: "Provide storage for f without evolving"
  "generator" :: "Provide storage for f and initialize without evolving"
} "normal"

KEYWORD upwind_type "Type of upwinding used in evolving the ehfinder equations"
{
  "intrinsic" :: "Use the values of f itself to determine upwind direction"
  "shift"     :: "Use the shift to determine upwind direction"
  "characteristic" :: "Use characteristic information"
} "characteristic"

KEYWORD surface_direction "Should we track outward or inward moving surfaces"
{
  "outward" :: "Track outward moving surfaces. Use for event horizon finding."
  "inward"  :: "Track inward moving surfaces."
} "outward"

BOOLEAN re_init_verbose "Should re-initialization be verbose?"
{
} "no"

BOOLEAN re_init_undo "Should re-initialization be undone at pinch-off"
{
} "yes"

KEYWORD re_init_int_method "Integration method used in re-initialization"
{
  "euler"  :: "Standard euler scheme"
  "rk2"    :: "Second order Runge-Kutta scheme"
} "euler"

INT re_init_max_iter "maximum number of iterations in the re-initialization"
{
0:        :: "Positive please"
} 800

KEYWORD pde_differences "Type of finite diffencing used in pde re-initialization"
{
  "centered" :: "Use 2nd order centered differences except at the boundaries"
  "upwind"   :: "Use 1st order upwinded differences everywhere"
  "upwind2"  :: "Use 2nd order upwinded differences everywhere"
} "upwind2"

INT re_initialize_every "How often to re-initialize the level set function"
{
0:               :: "If 0 don't re-initialize"
} 10

INT last_iteration_number "The starting iteration number for the EH_Finder (last iteration number of the simulation)"
{
0:              :: "Positive please"
} 0

INT saved_iteration_every "How often was the numerical data saved"
{
1:               :: "Positive please"
} 1

INT ntheta "Number of points in the theta direction when finding points on the surface"
{
1:*:2            :: "Positive and odd please"
} 51

INT nphi "Number of points in the phi direction when finding points on the surface"
{
1:*:2            :: "Positive and odd please"
} 51

INT n_array_ghosts "Number of ghost points in the surface grid array"
{
1:               :: "Positive please"
} 1

INT maximum_surface_number "The maximum number of surfaces expected in the data"
{
  1:*            :: "Positive please"
} 1

BOOLEAN use_user_center "Should the user prescribed center be used"
{
} "no"

CCTK_REAL center_x "The x-coordinate of the center"
{
  *:*            :: "Anything"
} 0.0

CCTK_REAL center_y "The y-coordinate of the center"
{
  *:*            :: "Anything"
} 0.0

CCTK_REAL center_z "The z-coordinate of the center"
{
  *:*            :: "Anything"
} 0.0

BOOLEAN evolve_generators "Should the generators be evolved"
{
} "no"

CCTK_INT number_of_generators "How many generators should be evolved"
{
  1:*            :: "Postive please"
} 1

CCTK_INT number_of_generators_theta "How many generators in the theta direction"
{
  1:*           :: "Positive please"
} 1

CCTK_INT number_of_generators_phi "How many generators in the phi direction"
{
  1:*           :: "Positive please"
} 1

KEYWORD generator_distribution "What initial distribution should be used"
{
  "line"	:: "Put the generators on a line in the xz-plane"
  "2D array"    :: "Put the generators on a surface with spherical topology"
} "line"

STRING surface_interpolator "What interpolator should be used to locate the surface"
{
  ".+"          :: "A valid interpolator name"
} "Hermite polynomial interpolation"

CCTK_INT surface_interpolation_order "What order should be used for the surface interpoation"
{
  1:*           :: "A valid positive interpolation order"
} 2

STRING area_interpolator "What interpolator should be used for the area"
{
  ".+"          :: "A valid interpolator name"
} "Lagrange polynomial interpolation"

CCTK_INT area_interpolation_order "What order should be used for the area interpoation"
{
  1:*           :: "A valid positive interpolation order"
} 3

KEYWORD area_calculation_method "How should the areas be calculated"
{
  "standard"    :: "Using a angular coordinate system on the surface"
  "isosurface"  :: "Using an isosurface triangulation"
} "standard"

STRING generator_interpolator "What interpolator should be used for the generators"
{
  ".+"          :: "A valid interpolator name"
} "Lagrange polynomial interpolation"

CCTK_INT generator_interpolation_order "What order should be used for the generator interpoation"
{
  1:*           :: "A valid positive interpolation order"
} 3

KEYWORD generator_tracking_method "What method should be used for tracking the generators"
{
  "interpolate_before" :: "Interpolate first, then calculate"
  "interpolate_after"  :: "Calculate first, then interpolate"
} "interpolate_before"

shares: grid

USES KEYWORD domain
USES KEYWORD quadrant_direction
USES KEYWORD bitant_plane

shares: admbase

USES KEYWORD metric_type

EXTENDS KEYWORD initial_data
{
  "read from file" :: "Read in metric from a file"
}

EXTENDS KEYWORD initial_lapse
{
  "read from file" :: "Read in lapse from a file"
}

EXTENDS KEYWORD initial_shift
{
  "read from file" :: "Read in shift from a file"
}

shares: spacemask

USES KEYWORD use_mask

shares: MethodOfLines

USES CCTK_INT MoL_Num_Evolved_Vars
USES CCTK_INT MoL_Max_Evolved_Array_Size
USES CCTK_INT MoL_Num_ArrayEvolved_Vars

restricted:

CCTK_INT EHFinder_MaxNumEvolvedVars "The maximum number of evolved variables used by EHFinder" ACCUMULATOR-BASE=MethodOfLines::MoL_Num_Evolved_Vars
{
  1:10		:: "Only evolve the level set functions"
} 1

CCTK_INT EHFinder_Max_Evolved_Array_Size "The maximum size of evolved grid arrays used by EHFinder" ACCUMULATOR-BASE=MethodOfLines::MoL_Max_Evolved_Array_Size
{
  1:*		:: "The size of the generator grid arrays"
} 1

CCTK_INT EHFinder_Num_ArrayEvolved_Vars "The maximum number of evolved grid arrays used by EHFinder" ACCUMULATOR-BASE=MethodOfLines::MoL_Num_ArrayEvolved_Vars
{
  0:30		:: "Should be exactly zero or a multiple of three"
} 3