gryfxcrmod 0.0.0 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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}}}}