gryfxcrmod 0.0.0 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +3 -0
- data/Rakefile +10 -0
- data/VERSION +1 -1
- data/gryfxcrmod.gemspec +19 -2
- data/lib/gryfxcrmod/deleted_variables.rb +253 -0
- data/lib/gryfxcrmod/gryfx.rb +32 -3
- data/lib/gryfxcrmod/namelist_tools.rb +58 -0
- data/lib/gryfxcrmod/namelists.rb +834 -1
- data/sync_mediawiki/helper.rb +18 -0
- data/sync_mediawiki/sync_mediawiki.rb +7 -0
- data/sync_variables/helper.rb +18 -0
- data/sync_variables/sync_variables.rb +27 -0
- data/test/cyclone_miller_ke.in +200 -0
- data/test/cyclone_miller_ke.tgz +0 -0
- data/test/test_gryfxcrmod.rb +54 -0
- metadata +59 -3
data/lib/gryfxcrmod/namelists.rb
CHANGED
@@ -1 +1,834 @@
|
|
1
|
-
{
|
1
|
+
{:theta_grid_parameters=>
|
2
|
+
{:description=>"",
|
3
|
+
:should_include=>"true",
|
4
|
+
:variables=>
|
5
|
+
{:eps=>
|
6
|
+
{:should_include=>"true",
|
7
|
+
:description=>"eps=r/R",
|
8
|
+
:help=>
|
9
|
+
"Controls particle trapping (among other things) in simple geometric models. <math>\\epsilon = r/R</math>",
|
10
|
+
:code_name=>:eps,
|
11
|
+
:must_pass=>
|
12
|
+
[{:test=>"kind_of? Numeric",
|
13
|
+
:explanation=>
|
14
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
15
|
+
:type=>:Float,
|
16
|
+
:autoscanned_defaults=>[0.2]},
|
17
|
+
:shat=>
|
18
|
+
{:should_include=>"true",
|
19
|
+
:description=>"",
|
20
|
+
:help=>
|
21
|
+
"Sets value of magnetic shear in simple geometric models.\n** over-ridden by s_hat_input in theta_grid_eik_knobs for most values of bishop.",
|
22
|
+
:code_name=>:shat,
|
23
|
+
:must_pass=>
|
24
|
+
[{:test=>"kind_of? Numeric",
|
25
|
+
:explanation=>
|
26
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
27
|
+
:type=>:Float,
|
28
|
+
:autoscanned_defaults=>[0.8]},
|
29
|
+
:qinp=>
|
30
|
+
{:should_include=>"true",
|
31
|
+
:description=>
|
32
|
+
"Sets value of the safety factor when using local toroidal equilibrium model.",
|
33
|
+
:help=>
|
34
|
+
"Sets value of the safety factor when using local toroidal equilibrium model.",
|
35
|
+
:code_name=>:qinp,
|
36
|
+
:must_pass=>
|
37
|
+
[{:test=>"kind_of? Numeric",
|
38
|
+
:explanation=>
|
39
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
40
|
+
:type=>:Float,
|
41
|
+
:autoscanned_defaults=>[1.4]},
|
42
|
+
:rmaj=>
|
43
|
+
{:should_include=>"true",
|
44
|
+
:description=>"Major radius/a (Position of magnetic axis)",
|
45
|
+
:help=>"Major radius/a (Position of magnetic axis)",
|
46
|
+
:code_name=>:rmaj,
|
47
|
+
:must_pass=>
|
48
|
+
[{:test=>"kind_of? Numeric",
|
49
|
+
:explanation=>
|
50
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
51
|
+
:type=>:Float,
|
52
|
+
:autoscanned_defaults=>[1.0]},
|
53
|
+
:shift=>
|
54
|
+
{:should_include=>"true",
|
55
|
+
:description=>"shift = -R q**2 dbeta/drho (>0)",
|
56
|
+
:help=>
|
57
|
+
"Related to Shafranov shift. Sign depends on geometric model. ?? Exact definition uncertain... please edit if you know! ?? Could be\n** <math>shift = -R q**2 d\\beta/d\\rho (>0) </math> ??\n** dR/drho (R normalized to a) (< 0) ??",
|
58
|
+
:code_name=>:shift,
|
59
|
+
:must_pass=>
|
60
|
+
[{:test=>"kind_of? Numeric",
|
61
|
+
:explanation=>
|
62
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
63
|
+
:type=>:Float,
|
64
|
+
:autoscanned_defaults=>[0.0]},
|
65
|
+
:drhodpsi=>
|
66
|
+
{:should_include=>"true",
|
67
|
+
:description=>nil,
|
68
|
+
:help=>nil,
|
69
|
+
:code_name=>:drhodpsi,
|
70
|
+
:must_pass=>
|
71
|
+
[{:test=>"kind_of? Numeric",
|
72
|
+
:explanation=>
|
73
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
74
|
+
:type=>:Float,
|
75
|
+
:autoscanned_defaults=>[1.0]},
|
76
|
+
:epsl=>
|
77
|
+
{:should_include=>"true",
|
78
|
+
:description=>"epsl=2 a/R",
|
79
|
+
:help=>
|
80
|
+
"Sets curvature drift in simple geometric models. <math>\\epsilon_\\ell = 2 a / R </math>, where a is the GS2 normalisation length and R is the major radius at the centre of the flux surface.",
|
81
|
+
:code_name=>:epsl,
|
82
|
+
:must_pass=>
|
83
|
+
[{:test=>"kind_of? Numeric",
|
84
|
+
:explanation=>
|
85
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
86
|
+
:type=>:Float,
|
87
|
+
:autoscanned_defaults=>[2.0]},
|
88
|
+
:kxfac=>
|
89
|
+
{:should_include=>"true",
|
90
|
+
:description=>nil,
|
91
|
+
:help=>nil,
|
92
|
+
:code_name=>:kxfac,
|
93
|
+
:must_pass=>
|
94
|
+
[{:test=>"kind_of? Numeric",
|
95
|
+
:explanation=>
|
96
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
97
|
+
:type=>:Float,
|
98
|
+
:autoscanned_defaults=>[1.0]},
|
99
|
+
:ntheta=>
|
100
|
+
{:should_include=>"true",
|
101
|
+
:description=>
|
102
|
+
"Number of points along field line (theta) per 2 pi segment",
|
103
|
+
:help=>
|
104
|
+
"Number of grid points along equilibrium magnetic field between <math>\\theta=(-\\pi,\\pi)</math> (in addition to a grid point at <math>\\theta=0</math>).\n** Ignored in some cases",
|
105
|
+
:code_name=>:ntheta,
|
106
|
+
:must_pass=>
|
107
|
+
[{:test=>"kind_of? Integer",
|
108
|
+
:explanation=>"This variable must be an integer."}],
|
109
|
+
:type=>:Integer,
|
110
|
+
:autoscanned_defaults=>[32]},
|
111
|
+
:nperiod=>
|
112
|
+
{:should_include=>"true",
|
113
|
+
:description=>
|
114
|
+
"Number of 2 pi segments along equilibrium magnetic field.",
|
115
|
+
:help=>
|
116
|
+
"Sets the number of <math>2\\pi</math> segments along equilibrium magnetic field to include in simulation domain. <math>N_{\\rm segments} = (2n_{\\rm period} - 1)</math>.\n** Ignored in some cases",
|
117
|
+
:code_name=>:nperiod,
|
118
|
+
:must_pass=>
|
119
|
+
[{:test=>"kind_of? Integer",
|
120
|
+
:explanation=>"This variable must be an integer."}],
|
121
|
+
:type=>:Integer},
|
122
|
+
:rhoc=>
|
123
|
+
{:should_include=>"true",
|
124
|
+
:description=>
|
125
|
+
"Flux surface label. Usually rho = diameter/diameter of LCFS",
|
126
|
+
:help=>
|
127
|
+
"rhoc is flux surface label (0< rhoc< 1). Its exact meaning depends on irho. Usually rho = diameter/diameter of LCFS\n** When irho = 1, rhoc = sqrt(toroidal flux)/sqrt(toroidal flux of LCFS)\n** When irho = 2, rhoc = diameter/(diameter of LCFS). recommended\n** When irho = 3, rhoc = poloidal flux/(poloidal flux of LCFS)",
|
128
|
+
:code_name=>:rhoc,
|
129
|
+
:must_pass=>
|
130
|
+
[{:test=>"kind_of? Numeric",
|
131
|
+
:explanation=>
|
132
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
133
|
+
:type=>:Float},
|
134
|
+
:r_geo=>
|
135
|
+
{:should_include=>"true",
|
136
|
+
:description=>"Major radius/a (centerpoint of LCFS)",
|
137
|
+
:help=>"Major radius/a (centerpoint of LCFS)",
|
138
|
+
:code_name=>:r_geo,
|
139
|
+
:must_pass=>
|
140
|
+
[{:test=>"kind_of? Numeric",
|
141
|
+
:explanation=>
|
142
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
143
|
+
:type=>:Float},
|
144
|
+
:akappa=>
|
145
|
+
{:should_include=>"true",
|
146
|
+
:description=>
|
147
|
+
"Sets local elongation when local toroidal equilibrium is specified.",
|
148
|
+
:help=>
|
149
|
+
"Sets local elongation when local toroidal equilibrium is specified.",
|
150
|
+
:code_name=>:akappa,
|
151
|
+
:must_pass=>
|
152
|
+
[{:test=>"kind_of? Numeric",
|
153
|
+
:explanation=>
|
154
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
155
|
+
:type=>:Float},
|
156
|
+
:akappri=>
|
157
|
+
{:should_include=>"true",
|
158
|
+
:description=>"akappri = dkappa/drho",
|
159
|
+
:help=>
|
160
|
+
"Sets local gradient of elongation when local toroidal equilibrium is specified.\n** akappri = <math> d\\kappa/d\\rho </math>",
|
161
|
+
:code_name=>:akappri,
|
162
|
+
:must_pass=>
|
163
|
+
[{:test=>"kind_of? Numeric",
|
164
|
+
:explanation=>
|
165
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
166
|
+
:type=>:Float},
|
167
|
+
:tri=>
|
168
|
+
{:should_include=>"true",
|
169
|
+
:description=>"tri = arcsin[(R(max(Z))-R_major)/r_mid]",
|
170
|
+
:help=>
|
171
|
+
"Sets local triangularity when local toroidal equilibrium is specified.\n** triangularity is tri = arcsin[(R(max(Z))-R_major)/r_mid]",
|
172
|
+
:code_name=>:tri,
|
173
|
+
:must_pass=>
|
174
|
+
[{:test=>"kind_of? Numeric",
|
175
|
+
:explanation=>
|
176
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
177
|
+
:type=>:Float},
|
178
|
+
:tripri=>
|
179
|
+
{:should_include=>"true",
|
180
|
+
:description=>"tripri = dtri/drho",
|
181
|
+
:help=>
|
182
|
+
"Sets local gradient of triangularity when local toroidal equilibrium is specified.\n** tripri = <math>dtri/d\\rho</math>",
|
183
|
+
:code_name=>:tripri,
|
184
|
+
:must_pass=>
|
185
|
+
[{:test=>"kind_of? Numeric",
|
186
|
+
:explanation=>
|
187
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
188
|
+
:type=>:Float}}},
|
189
|
+
:kt_grids_box_parameters=>
|
190
|
+
{:description=>"",
|
191
|
+
:should_include=>"true",
|
192
|
+
:variables=>
|
193
|
+
{:jtwist=>
|
194
|
+
{:should_include=>"true",
|
195
|
+
:description=>"L_x = L_y jtwist / (2 pi shat)",
|
196
|
+
:help=>
|
197
|
+
"For finite magnetic shear, determines box size in x direction according to \n** <math>L_x = L_y jtwist / (2 \\pi \\hat{s}) </math>\n** Also affects the number of \"connections\" at each ky when linked boundary conditions are selected in the dist_fn_knobs namelist.",
|
198
|
+
:code_name=>:jtwist,
|
199
|
+
:must_pass=>
|
200
|
+
[{:test=>"kind_of? Integer",
|
201
|
+
:explanation=>"This variable must be an integer."}],
|
202
|
+
:type=>:Integer,
|
203
|
+
:autoscanned_defaults=>[5]},
|
204
|
+
:nx=>
|
205
|
+
{:should_include=>"true",
|
206
|
+
:description=>
|
207
|
+
"The number of kx modes: the number of kx modes actually simulated (ntheta0) is equal to 2*(nx - 1)/3 + 1, due to the need to prevent aliasing.",
|
208
|
+
:help=>
|
209
|
+
"The number of kx modes: the number of kx modes actually simulated (ntheta0) is equal to 2*(nx - 1)/3 + 1, due to the need to prevent aliasing.",
|
210
|
+
:code_name=>:nx,
|
211
|
+
:must_pass=>
|
212
|
+
[{:test=>"kind_of? Integer",
|
213
|
+
:explanation=>"This variable must be an integer."}],
|
214
|
+
:type=>:Integer,
|
215
|
+
:autoscanned_defaults=>[16]},
|
216
|
+
:ny=>
|
217
|
+
{:should_include=>"true",
|
218
|
+
:description=>
|
219
|
+
"The number of ky modes: the number of ky modes actually simulated (naky) is equal to (ny - 1)/3 + 1, due to the need to prevent aliasing.",
|
220
|
+
:help=>
|
221
|
+
"The number of ky modes: the number of ky modes actually simulated (naky) is equal to (ny - 1)/3 + 1, due to the need to prevent aliasing.",
|
222
|
+
:code_name=>:ny,
|
223
|
+
:must_pass=>
|
224
|
+
[{:test=>"kind_of? Integer",
|
225
|
+
:explanation=>"This variable must be an integer."}],
|
226
|
+
:type=>:Integer,
|
227
|
+
:autoscanned_defaults=>[16]},
|
228
|
+
:y0=>
|
229
|
+
{:should_include=>"true",
|
230
|
+
:description=>
|
231
|
+
"The length of the box in the y direction (measured in the Larmour radius of species 1)",
|
232
|
+
:help=>
|
233
|
+
"The length of the box in the y direction (measured in the Larmour radius of species 1). Box size in y direction is 2*pi*y0.",
|
234
|
+
:code_name=>:y0,
|
235
|
+
:must_pass=>
|
236
|
+
[{:test=>"kind_of? Integer",
|
237
|
+
:explanation=>"This variable must be an integer."}],
|
238
|
+
:type=>:Integer,
|
239
|
+
:autoscanned_defaults=>[10]},
|
240
|
+
:x0=>
|
241
|
+
{:should_include=>"true",
|
242
|
+
:description=>
|
243
|
+
"The length of the box in the x direction (measured in the Larmour radius of species 1) if shat is 0 (ie 1e-6)",
|
244
|
+
:help=>
|
245
|
+
"The length of the box in the x direction (measured in the Larmour radius of species 1) if shat is 0 (ie 1e-6)",
|
246
|
+
:code_name=>:x0,
|
247
|
+
:must_pass=>
|
248
|
+
[{:test=>"kind_of? Integer",
|
249
|
+
:explanation=>"This variable must be an integer."}],
|
250
|
+
:type=>:Integer,
|
251
|
+
:autoscanned_defaults=>[10]}}},
|
252
|
+
:dist_fn_knobs=>
|
253
|
+
{:description=>"",
|
254
|
+
:should_include=>"true",
|
255
|
+
:variables=>
|
256
|
+
{:g_exb=>
|
257
|
+
{:should_include=>"true",
|
258
|
+
:description=>nil,
|
259
|
+
:help=>nil,
|
260
|
+
:code_name=>:g_exb,
|
261
|
+
:must_pass=>
|
262
|
+
[{:test=>"kind_of? Integer",
|
263
|
+
:explanation=>"This variable must be an integer."}],
|
264
|
+
:type=>:Integer,
|
265
|
+
:autoscanned_defaults=>[0]}}},
|
266
|
+
:parameters=>{:description=>"", :should_include=>"true", :variables=>{}},
|
267
|
+
:nonlinear_terms_knobs=>
|
268
|
+
{:description=>"",
|
269
|
+
:should_include=>"true",
|
270
|
+
:variables=>
|
271
|
+
{:cfl=>
|
272
|
+
{:should_include=>"true",
|
273
|
+
:description=>"The maximum delt < cfl * min(Delta_perp/v_perp)",
|
274
|
+
:help=>"The maximum delt < cfl * min(Delta_perp/v_perp)",
|
275
|
+
:code_name=>:cfl,
|
276
|
+
:must_pass=>
|
277
|
+
[{:test=>"kind_of? Numeric",
|
278
|
+
:explanation=>
|
279
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
280
|
+
:type=>:Float,
|
281
|
+
:autoscanned_defaults=>[0.1]},
|
282
|
+
:nonlinear_mode=>
|
283
|
+
{:should_include=>"true",
|
284
|
+
:description=>"Include nonlinear terms? ('on','off')",
|
285
|
+
:help=>
|
286
|
+
"Should the nonlinear terms be calculated?\n \n** 'none', 'default', 'off': Do not include nonlinear terms, i.e. run a linear calculation.\n** 'on' Include nonlinear terms.",
|
287
|
+
:code_name=>:nonlinear_mode,
|
288
|
+
:must_pass=>
|
289
|
+
[{:test=>"kind_of? String",
|
290
|
+
:explanation=>"This variable must be a string."}],
|
291
|
+
:type=>:String,
|
292
|
+
:autoscanned_defaults=>["off"]}}},
|
293
|
+
:gs2_diagnostics_knobs=>
|
294
|
+
{:description=>"",
|
295
|
+
:should_include=>"true",
|
296
|
+
:variables=>
|
297
|
+
{:nwrite=>
|
298
|
+
{:should_include=>"true",
|
299
|
+
:description=>"Output diagnostic data every nwrite",
|
300
|
+
:help=>"Output diagnostic data every nwrite timesteps.",
|
301
|
+
:code_name=>:nwrite,
|
302
|
+
:must_pass=>
|
303
|
+
[{:test=>"kind_of? Integer",
|
304
|
+
:explanation=>"This variable must be an integer."}],
|
305
|
+
:type=>:Integer,
|
306
|
+
:autoscanned_defaults=>[10]},
|
307
|
+
:nsave=>
|
308
|
+
{:should_include=>"true",
|
309
|
+
:description=>"Write restart files every nsave timesteps",
|
310
|
+
:help=>"Write restart files every nsave timesteps",
|
311
|
+
:code_name=>:nsave,
|
312
|
+
:must_pass=>
|
313
|
+
[{:test=>"kind_of? Integer",
|
314
|
+
:explanation=>"This variable must be an integer."}],
|
315
|
+
:type=>:Integer,
|
316
|
+
:autoscanned_defaults=>[5000]},
|
317
|
+
:navg=>
|
318
|
+
{:should_include=>"true",
|
319
|
+
:description=>"Any time averages performed over navg",
|
320
|
+
:help=>"Any time averages performed over navg timesteps.",
|
321
|
+
:code_name=>:navg,
|
322
|
+
:must_pass=>
|
323
|
+
[{:test=>"kind_of? Integer",
|
324
|
+
:explanation=>"This variable must be an integer."}],
|
325
|
+
:type=>:Integer,
|
326
|
+
:autoscanned_defaults=>[100]}}},
|
327
|
+
:knobs=>
|
328
|
+
{:description=>"",
|
329
|
+
:should_include=>"true",
|
330
|
+
:variables=>
|
331
|
+
{:dt=>
|
332
|
+
{:should_include=>"true",
|
333
|
+
:description=>nil,
|
334
|
+
:help=>nil,
|
335
|
+
:code_name=>:dt,
|
336
|
+
:must_pass=>
|
337
|
+
[{:test=>"kind_of? Numeric",
|
338
|
+
:explanation=>
|
339
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
340
|
+
:type=>:Float,
|
341
|
+
:autoscanned_defaults=>[0.02]},
|
342
|
+
:maxdt=>
|
343
|
+
{:should_include=>"true",
|
344
|
+
:description=>nil,
|
345
|
+
:help=>nil,
|
346
|
+
:code_name=>:maxdt,
|
347
|
+
:must_pass=>
|
348
|
+
[{:test=>"kind_of? Numeric",
|
349
|
+
:explanation=>
|
350
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
351
|
+
:type=>:Float,
|
352
|
+
:autoscanned_defaults=>[0.02]},
|
353
|
+
:nstep=>
|
354
|
+
{:should_include=>"true",
|
355
|
+
:description=>"Maximum number of timesteps",
|
356
|
+
:help=>
|
357
|
+
"Number of timesteps that will be taken, unless the code stops for some (usually user-specified) reason.",
|
358
|
+
:code_name=>:nstep,
|
359
|
+
:must_pass=>
|
360
|
+
[{:test=>"kind_of? Integer",
|
361
|
+
:explanation=>"This variable must be an integer."}],
|
362
|
+
:type=>:Integer,
|
363
|
+
:autoscanned_defaults=>[10000]}}},
|
364
|
+
:species_knobs=>
|
365
|
+
{:description=>"",
|
366
|
+
:should_include=>"true",
|
367
|
+
:variables=>
|
368
|
+
{:nspec=>
|
369
|
+
{:should_include=>"true",
|
370
|
+
:description=>"Number of kinetic species evolved.",
|
371
|
+
:help=>"Number of kinetic species evolved.",
|
372
|
+
:code_name=>:nspec,
|
373
|
+
:must_pass=>
|
374
|
+
[{:test=>"kind_of? Integer",
|
375
|
+
:explanation=>"This variable must be an integer."}],
|
376
|
+
:type=>:Integer,
|
377
|
+
:autoscanned_defaults=>[1]}}},
|
378
|
+
:species_parameters=>
|
379
|
+
{:description=>"SPECIES PARAMETERS",
|
380
|
+
:help=>
|
381
|
+
"There should be a separate namelist for each species. For example, if\nthere are two species, there will be namelists called\nspecies_parameters_1 and species_parameters_2. Charge, mass, density and temperature for each species are relative to some reference species.",
|
382
|
+
:enumerator=>{:name=>:nspec, :estimated_value=>5},
|
383
|
+
:should_include=>"true",
|
384
|
+
:variables=>
|
385
|
+
{:z=>
|
386
|
+
{:help=>"Charge",
|
387
|
+
:should_include=>"true",
|
388
|
+
:description=>"Charge",
|
389
|
+
:tests=>["Tst::FLOAT"],
|
390
|
+
:autoscanned_defaults=>[],
|
391
|
+
:must_pass=>
|
392
|
+
[{:test=>"kind_of? Float or kind_of? Integer",
|
393
|
+
:explanation=>
|
394
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
395
|
+
:type=>:Float,
|
396
|
+
:module=>:fields},
|
397
|
+
:mass=>
|
398
|
+
{:help=>"Mass",
|
399
|
+
:should_include=>"true",
|
400
|
+
:description=>"Mass",
|
401
|
+
:tests=>["Tst::FLOAT"],
|
402
|
+
:autoscanned_defaults=>[],
|
403
|
+
:must_pass=>
|
404
|
+
[{:test=>"kind_of? Float or kind_of? Integer",
|
405
|
+
:explanation=>
|
406
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
407
|
+
:type=>:Float},
|
408
|
+
:dens=>
|
409
|
+
{:help=>"Density\t",
|
410
|
+
:should_include=>"true",
|
411
|
+
:description=>"Density\t",
|
412
|
+
:tests=>["Tst::FLOAT"],
|
413
|
+
:autoscanned_defaults=>[],
|
414
|
+
:must_pass=>
|
415
|
+
[{:test=>"kind_of? Float or kind_of? Integer",
|
416
|
+
:explanation=>
|
417
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
418
|
+
:type=>:Float},
|
419
|
+
:temp=>
|
420
|
+
{:help=>"Temperature",
|
421
|
+
:should_include=>"true",
|
422
|
+
:description=>"Temperature",
|
423
|
+
:tests=>["Tst::FLOAT"],
|
424
|
+
:autoscanned_defaults=>[],
|
425
|
+
:must_pass=>
|
426
|
+
[{:test=>"kind_of? Float or kind_of? Integer",
|
427
|
+
:explanation=>
|
428
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
429
|
+
:type=>:Float,
|
430
|
+
:module=>:file_utils},
|
431
|
+
:tprim=>
|
432
|
+
{:help=>
|
433
|
+
"Normalised inverse temperature gradient: <math>-1/T (dT/d\\rho)</math>",
|
434
|
+
:should_include=>"true",
|
435
|
+
:description=>"-1/T (dT/drho)",
|
436
|
+
:tests=>["Tst::FLOAT"],
|
437
|
+
:autoscanned_defaults=>[],
|
438
|
+
:must_pass=>
|
439
|
+
[{:test=>"kind_of? Float or kind_of? Integer",
|
440
|
+
:explanation=>
|
441
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
442
|
+
:type=>:Float},
|
443
|
+
:fprim=>
|
444
|
+
{:help=>
|
445
|
+
"Normalised inverse density gradient: <math>-1/n (dn/d\\rho)</math>",
|
446
|
+
:should_include=>"true",
|
447
|
+
:description=>"-1/n (dn/drho)",
|
448
|
+
:tests=>["Tst::FLOAT"],
|
449
|
+
:autoscanned_defaults=>[],
|
450
|
+
:must_pass=>
|
451
|
+
[{:test=>"kind_of? Float or kind_of? Integer",
|
452
|
+
:explanation=>
|
453
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
454
|
+
:type=>:Float},
|
455
|
+
:uprim=>
|
456
|
+
{:help=>"?",
|
457
|
+
:should_include=>"true",
|
458
|
+
:description=>"?",
|
459
|
+
:tests=>["Tst::FLOAT"],
|
460
|
+
:autoscanned_defaults=>[],
|
461
|
+
:must_pass=>
|
462
|
+
[{:test=>"kind_of? Float or kind_of? Integer",
|
463
|
+
:explanation=>
|
464
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
465
|
+
:type=>:Float},
|
466
|
+
:vnewk=>
|
467
|
+
{:help=>"Collisionality parameter: collisionality normalized to v_th/a",
|
468
|
+
:should_include=>"true",
|
469
|
+
:description=>"collisionality parameter",
|
470
|
+
:tests=>["Tst::FLOAT"],
|
471
|
+
:autoscanned_defaults=>[],
|
472
|
+
:must_pass=>
|
473
|
+
[{:test=>"kind_of? Float or kind_of? Integer",
|
474
|
+
:explanation=>
|
475
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
476
|
+
:type=>:Float},
|
477
|
+
:type=>
|
478
|
+
{:help=>
|
479
|
+
"Type of species:\n** 'ion' Thermal ion species\n** 'default' Same as 'ion'\n** 'electron' Thermal electron species\n** 'e' Same as 'electron'\n** 'beam' Slowing down distribution (Requires advanced_egrid = F)\n** 'slowing_down' Same as 'beam'\n** 'fast' Same as 'beam'\n** 'alpha' Same as 'beam'",
|
480
|
+
:should_include=>"true",
|
481
|
+
:description=>"Type of species, e.g. 'ion', 'electron', 'beam'",
|
482
|
+
:tests=>["Tst::STRING"],
|
483
|
+
:autoscanned_defaults=>[],
|
484
|
+
:must_pass=>
|
485
|
+
[{:test=>"kind_of? String",
|
486
|
+
:explanation=>"This variable must be a string."}],
|
487
|
+
:type=>:String,
|
488
|
+
:text_options=>
|
489
|
+
["default",
|
490
|
+
"ion",
|
491
|
+
"electron",
|
492
|
+
"e",
|
493
|
+
"beam",
|
494
|
+
"fast",
|
495
|
+
"alpha",
|
496
|
+
"slowing-down",
|
497
|
+
"trace"],
|
498
|
+
:module=>:parameter_scan}}},
|
499
|
+
:gryfx_knobs=>
|
500
|
+
{:description=>"",
|
501
|
+
:should_include=>"true",
|
502
|
+
:variables=>
|
503
|
+
{:restart=>
|
504
|
+
{:should_include=>"true",
|
505
|
+
:description=>nil,
|
506
|
+
:help=>nil,
|
507
|
+
:code_name=>:restart,
|
508
|
+
:must_pass=>
|
509
|
+
[{:test=>"kind_of? String",
|
510
|
+
:explanation=>"This variable must be a string."}],
|
511
|
+
:type=>:String,
|
512
|
+
:autoscanned_defaults=>["off"]},
|
513
|
+
:zero_restart_avg=>
|
514
|
+
{:should_include=>"true",
|
515
|
+
:description=>nil,
|
516
|
+
:help=>nil,
|
517
|
+
:code_name=>:zero_restart_avg,
|
518
|
+
:must_pass=>
|
519
|
+
[{:test=>"kind_of? String",
|
520
|
+
:explanation=>"This variable must be a string."}],
|
521
|
+
:type=>:String,
|
522
|
+
:autoscanned_defaults=>["off"]},
|
523
|
+
:no_zderiv_covering=>
|
524
|
+
{:should_include=>"true",
|
525
|
+
:description=>nil,
|
526
|
+
:help=>nil,
|
527
|
+
:code_name=>:no_zderiv_covering,
|
528
|
+
:must_pass=>
|
529
|
+
[{:test=>"kind_of? String",
|
530
|
+
:explanation=>"This variable must be a string."}],
|
531
|
+
:type=>:String,
|
532
|
+
:autoscanned_defaults=>["off"]},
|
533
|
+
:no_omegad=>
|
534
|
+
{:should_include=>"true",
|
535
|
+
:description=>nil,
|
536
|
+
:help=>nil,
|
537
|
+
:code_name=>:no_omegad,
|
538
|
+
:must_pass=>
|
539
|
+
[{:test=>"kind_of? String",
|
540
|
+
:explanation=>"This variable must be a string."}],
|
541
|
+
:type=>:String,
|
542
|
+
:autoscanned_defaults=>["off"]},
|
543
|
+
:const_curv=>
|
544
|
+
{:should_include=>"true",
|
545
|
+
:description=>nil,
|
546
|
+
:help=>nil,
|
547
|
+
:code_name=>:const_curv,
|
548
|
+
:must_pass=>
|
549
|
+
[{:test=>"kind_of? String",
|
550
|
+
:explanation=>"This variable must be a string."}],
|
551
|
+
:type=>:String,
|
552
|
+
:autoscanned_defaults=>["off"]},
|
553
|
+
:varenna=>
|
554
|
+
{:should_include=>"true",
|
555
|
+
:description=>"",
|
556
|
+
:help=>
|
557
|
+
"If \"on\", use the closure from the Beer et. al. Varenna paper.",
|
558
|
+
:code_name=>:varenna,
|
559
|
+
:must_pass=>
|
560
|
+
[{:test=>"kind_of? String",
|
561
|
+
:explanation=>"This variable must be a string."}],
|
562
|
+
:type=>:String,
|
563
|
+
:autoscanned_defaults=>["off"]},
|
564
|
+
:nlpm=>
|
565
|
+
{:should_include=>"true",
|
566
|
+
:description=>nil,
|
567
|
+
:help=>nil,
|
568
|
+
:code_name=>:nlpm,
|
569
|
+
:must_pass=>
|
570
|
+
[{:test=>"kind_of? String",
|
571
|
+
:explanation=>"This variable must be a string."}],
|
572
|
+
:type=>:String,
|
573
|
+
:autoscanned_defaults=>["off"]},
|
574
|
+
:inlpm=>
|
575
|
+
{:should_include=>"true",
|
576
|
+
:description=>nil,
|
577
|
+
:help=>nil,
|
578
|
+
:code_name=>:inlpm,
|
579
|
+
:must_pass=>
|
580
|
+
[{:test=>"kind_of? Integer",
|
581
|
+
:explanation=>"This variable must be an integer."}],
|
582
|
+
:type=>:Integer,
|
583
|
+
:autoscanned_defaults=>[2]},
|
584
|
+
:dnlpm=>
|
585
|
+
{:should_include=>"true",
|
586
|
+
:description=>nil,
|
587
|
+
:help=>nil,
|
588
|
+
:code_name=>:dnlpm,
|
589
|
+
:must_pass=>
|
590
|
+
[{:test=>"kind_of? Numeric",
|
591
|
+
:explanation=>
|
592
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
593
|
+
:type=>:Float,
|
594
|
+
:autoscanned_defaults=>[1.0]},
|
595
|
+
:smagorinsky=>
|
596
|
+
{:should_include=>"true",
|
597
|
+
:description=>nil,
|
598
|
+
:help=>nil,
|
599
|
+
:code_name=>:smagorinsky,
|
600
|
+
:must_pass=>
|
601
|
+
[{:test=>"kind_of? String",
|
602
|
+
:explanation=>"This variable must be a string."}],
|
603
|
+
:type=>:String,
|
604
|
+
:autoscanned_defaults=>["off"]},
|
605
|
+
:hyper=>
|
606
|
+
{:should_include=>"true",
|
607
|
+
:description=>nil,
|
608
|
+
:help=>nil,
|
609
|
+
:code_name=>:hyper,
|
610
|
+
:must_pass=>
|
611
|
+
[{:test=>"kind_of? String",
|
612
|
+
:explanation=>"This variable must be a string."}],
|
613
|
+
:type=>:String,
|
614
|
+
:autoscanned_defaults=>["off"]},
|
615
|
+
:nu_hyper=>
|
616
|
+
{:should_include=>"true",
|
617
|
+
:description=>nil,
|
618
|
+
:help=>nil,
|
619
|
+
:code_name=>:nu_hyper,
|
620
|
+
:must_pass=>
|
621
|
+
[{:test=>"kind_of? Numeric",
|
622
|
+
:explanation=>
|
623
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
624
|
+
:type=>:Float,
|
625
|
+
:autoscanned_defaults=>[1.0]},
|
626
|
+
:p_hyper=>
|
627
|
+
{:should_include=>"true",
|
628
|
+
:description=>nil,
|
629
|
+
:help=>nil,
|
630
|
+
:code_name=>:p_hyper,
|
631
|
+
:must_pass=>
|
632
|
+
[{:test=>"kind_of? Integer",
|
633
|
+
:explanation=>"This variable must be an integer."}],
|
634
|
+
:type=>:Integer,
|
635
|
+
:autoscanned_defaults=>[2]},
|
636
|
+
:debug=>
|
637
|
+
{:should_include=>"true",
|
638
|
+
:description=>nil,
|
639
|
+
:help=>nil,
|
640
|
+
:code_name=>:debug,
|
641
|
+
:must_pass=>
|
642
|
+
[{:test=>"kind_of? String",
|
643
|
+
:explanation=>"This variable must be a string."}],
|
644
|
+
:type=>:String,
|
645
|
+
:autoscanned_defaults=>["on"]},
|
646
|
+
:s_alpha=>
|
647
|
+
{:should_include=>"true",
|
648
|
+
:description=>nil,
|
649
|
+
:help=>"Use s_alpha geometry if \"on\". ",
|
650
|
+
:code_name=>:s_alpha,
|
651
|
+
:must_pass=>
|
652
|
+
[{:test=>"kind_of? String",
|
653
|
+
:explanation=>"This variable must be a string."}],
|
654
|
+
:type=>:String,
|
655
|
+
:autoscanned_defaults=>["on"]},
|
656
|
+
:init=>
|
657
|
+
{:should_include=>"true",
|
658
|
+
:description=>nil,
|
659
|
+
:help=>nil,
|
660
|
+
:code_name=>:init,
|
661
|
+
:must_pass=>
|
662
|
+
[{:test=>"kind_of? String",
|
663
|
+
:explanation=>"This variable must be a string."}],
|
664
|
+
:type=>:String,
|
665
|
+
:autoscanned_defaults=>["density"]},
|
666
|
+
:init_amp=>
|
667
|
+
{:should_include=>"true",
|
668
|
+
:description=>nil,
|
669
|
+
:help=>nil,
|
670
|
+
:code_name=>:init_amp,
|
671
|
+
:must_pass=>
|
672
|
+
[{:test=>"kind_of? Numeric",
|
673
|
+
:explanation=>
|
674
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
675
|
+
:type=>:Float,
|
676
|
+
:autoscanned_defaults=>[1.0e-05]},
|
677
|
+
:write_omega=>
|
678
|
+
{:should_include=>"true",
|
679
|
+
:description=>nil,
|
680
|
+
:help=>nil,
|
681
|
+
:code_name=>:write_omega,
|
682
|
+
:must_pass=>
|
683
|
+
[{:test=>"kind_of? String",
|
684
|
+
:explanation=>"This variable must be a string."}],
|
685
|
+
:type=>:String,
|
686
|
+
:autoscanned_defaults=>["on"]},
|
687
|
+
:write_phi=>
|
688
|
+
{:should_include=>"true",
|
689
|
+
:description=>nil,
|
690
|
+
:help=>nil,
|
691
|
+
:code_name=>:write_phi,
|
692
|
+
:must_pass=>
|
693
|
+
[{:test=>"kind_of? String",
|
694
|
+
:explanation=>"This variable must be a string."}],
|
695
|
+
:type=>:String,
|
696
|
+
:autoscanned_defaults=>["on"]},
|
697
|
+
:scan_type=>
|
698
|
+
{:should_include=>"true",
|
699
|
+
:description=>nil,
|
700
|
+
:help=>nil,
|
701
|
+
:code_name=>:scan_type,
|
702
|
+
:must_pass=>
|
703
|
+
[{:test=>"kind_of? String",
|
704
|
+
:explanation=>"This variable must be a string."}],
|
705
|
+
:type=>:String,
|
706
|
+
:autoscanned_defaults=>["outputs"]},
|
707
|
+
:scan_number=>
|
708
|
+
{:should_include=>"true",
|
709
|
+
:description=>nil,
|
710
|
+
:help=>nil,
|
711
|
+
:code_name=>:scan_number,
|
712
|
+
:must_pass=>
|
713
|
+
[{:test=>"kind_of? Integer",
|
714
|
+
:explanation=>"This variable must be an integer."}],
|
715
|
+
:type=>:Integer,
|
716
|
+
:autoscanned_defaults=>[1]},
|
717
|
+
:fluxfile=>
|
718
|
+
{:should_include=>"true",
|
719
|
+
:description=>"",
|
720
|
+
:help=>"",
|
721
|
+
:code_name=>:fluxfile,
|
722
|
+
:must_pass=>
|
723
|
+
[{:test=>"kind_of? String",
|
724
|
+
:explanation=>"This variable must be a string."}],
|
725
|
+
:type=>:String},
|
726
|
+
:stopfile=>
|
727
|
+
{:should_include=>"true",
|
728
|
+
:description=>"",
|
729
|
+
:help=>"",
|
730
|
+
:code_name=>:stopfile,
|
731
|
+
:must_pass=>
|
732
|
+
[{:test=>"kind_of? String",
|
733
|
+
:explanation=>"This variable must be a string."}],
|
734
|
+
:type=>:String},
|
735
|
+
:restartfile=>
|
736
|
+
{:should_include=>"true",
|
737
|
+
:description=>"",
|
738
|
+
:help=>"",
|
739
|
+
:code_name=>:restartfile,
|
740
|
+
:must_pass=>
|
741
|
+
[{:test=>"kind_of? String",
|
742
|
+
:explanation=>"This variable must be a string."}],
|
743
|
+
:type=>:String}}},
|
744
|
+
:collisions_knobs=>
|
745
|
+
{:description=>"",
|
746
|
+
:should_include=>"true",
|
747
|
+
:variables=>
|
748
|
+
{:collision_model=>
|
749
|
+
{:should_include=>"true",
|
750
|
+
:description=>
|
751
|
+
"Collision model used in the simulation. Options: 'default', 'none', 'lorentz', 'ediffuse'",
|
752
|
+
:help=>
|
753
|
+
"Collision model used in the simulation. \n\n** ''default'' = pitch angle scattering and energy diffusion\n** ''collisionless'',''none'' = collisionless\n** ''lorentz'' = pitch angle scattering only\n** ''ediffuse'' = energy diffusion only\n** ''krook'' = use home made krook operator (no reason to use this!)",
|
754
|
+
:code_name=>:collision_model,
|
755
|
+
:must_pass=>
|
756
|
+
[{:test=>"kind_of? String",
|
757
|
+
:explanation=>"This variable must be a string."}],
|
758
|
+
:type=>:String,
|
759
|
+
:autoscanned_defaults=>["none"]}}},
|
760
|
+
:theta_grid_eik_knobs=>
|
761
|
+
{:description=>"",
|
762
|
+
:should_include=>"true",
|
763
|
+
:variables=>
|
764
|
+
{:irho=>
|
765
|
+
{:should_include=>"true",
|
766
|
+
:description=>"Chooses definition of flux surface coordinate.",
|
767
|
+
:help=>
|
768
|
+
"Choose definition of flux surface coordinate\n** 1: rho == sqrt(toroidal flux)/sqrt(toroidal flux of LCFS)\n** 2: rho == midplane diameter/LCFS diameter Recommended\n** 3: rho == poloidal flux/poloidal flux of LCFS",
|
769
|
+
:code_name=>:irho,
|
770
|
+
:must_pass=>
|
771
|
+
[{:test=>"kind_of? Integer",
|
772
|
+
:explanation=>"This variable must be an integer."}],
|
773
|
+
:type=>:Integer},
|
774
|
+
:eqfile=>
|
775
|
+
{:should_include=>"true",
|
776
|
+
:description=>nil,
|
777
|
+
:help=>" Name of file with numerical equilibrium data (if required)\n",
|
778
|
+
:code_name=>:eqfile,
|
779
|
+
:must_pass=>
|
780
|
+
[{:test=>"kind_of? String",
|
781
|
+
:explanation=>"This variable must be a string."}],
|
782
|
+
:type=>:String},
|
783
|
+
:equal_arc=>
|
784
|
+
{:should_include=>"true",
|
785
|
+
:description=>nil,
|
786
|
+
:help=>" Change field-line coordinate. Recommended value: F\n",
|
787
|
+
:code_name=>:equal_arc,
|
788
|
+
:must_pass=>
|
789
|
+
[{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
|
790
|
+
:explanation=>
|
791
|
+
"This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
|
792
|
+
:type=>:Fortran_Bool},
|
793
|
+
:bishop=>
|
794
|
+
{:should_include=>"true",
|
795
|
+
:description=>nil,
|
796
|
+
:help=>
|
797
|
+
" Use Bishop relations to generate metric coefficients.\n** 0: Use high-aspect ratio coefficients (only for debugging)\n** 1: Use actual equilibrium values of shat, p' Recommended \n** 2: Use numerical equilibrium + s_hat_input and p_prime_input\n** 3: Use numerical equilibrium + s_hat_input and inv_Lp_input\n** 4: Use numerical equilibrium + s_hat_input and beta_prime_input \n** 5: Use numerical equilibrium + s_hat_input and alpha_input\n** 6: Use numerical equilibrium + beta_prime_input\n** 7: Use numerical equilibrium and multiply pressure gradient by dp_mult\n** 8: Use numerical equilibrium + s_hat_input and multiply pressure gradient by dp_mult\n** 9: Use numerical equilibrium + s_hat_input and beta_prime_input\n** Otherwise: Use magnetic shear and pressure gradient as set elsewhere.\n** \n",
|
798
|
+
:code_name=>:bishop,
|
799
|
+
:must_pass=>
|
800
|
+
[{:test=>"kind_of? Integer",
|
801
|
+
:explanation=>"This variable must be an integer."}],
|
802
|
+
:type=>:Integer},
|
803
|
+
:s_hat_input=>
|
804
|
+
{:should_include=>"true",
|
805
|
+
:description=>nil,
|
806
|
+
:help=>" Overrides shat.\n",
|
807
|
+
:code_name=>:s_hat_input,
|
808
|
+
:must_pass=>
|
809
|
+
[{:test=>"kind_of? Numeric",
|
810
|
+
:explanation=>
|
811
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
812
|
+
:type=>:Float},
|
813
|
+
:beta_prime_input=>
|
814
|
+
{:should_include=>"true",
|
815
|
+
:description=>"The gradient of the pressure.",
|
816
|
+
:help=>
|
817
|
+
"The gradient of the pressure. Strictly speaking this parameter is not <math>\\frac{\\partial \\beta}{\\partial \\rho} </math> but <math>\\beta \\frac{1}{p}\\frac{\\partial p}{\\partial \\rho}</math>: in other words, the gradient of the magnetic field is ignored. Used only if bishop = 4 or 9.",
|
818
|
+
:code_name=>:beta_prime_input,
|
819
|
+
:must_pass=>
|
820
|
+
[{:test=>"kind_of? Numeric",
|
821
|
+
:explanation=>
|
822
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
823
|
+
:type=>:Float},
|
824
|
+
:equilibrium_type=>
|
825
|
+
{:should_include=>"true",
|
826
|
+
:description=>
|
827
|
+
"Choice of equilbrium, can be \"miller\", \"chease\", or \"salpha\".",
|
828
|
+
:help=>
|
829
|
+
"Choice of equilbrium, can be \"miller\", \"chease\", or \"salpha\".",
|
830
|
+
:code_name=>:equilibrium_type,
|
831
|
+
:must_pass=>
|
832
|
+
[{:test=>"kind_of? String",
|
833
|
+
:explanation=>"This variable must be a string."}],
|
834
|
+
:type=>:String}}}}
|