gryfxcrmod 0.0.0 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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}}}}