trinitycrmod 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,1262 @@
1
+ {:geometry=>
2
+ {:description=>"",
3
+ :should_include=>"true",
4
+ :variables=>
5
+ {:geo_option=>
6
+ {:should_include=>"true",
7
+ :description=>" construct geo profiles from following parameters",
8
+ :help=>" construct geo profiles from following parameters",
9
+ :code_name=>:geo_option,
10
+ :must_pass=>
11
+ [{:test=>"kind_of? String",
12
+ :explanation=>"This variable must be a string."}],
13
+ :type=>:String,
14
+ :autoscanned_defaults=>["default"]},
15
+ :geo_file=>
16
+ {:should_include=>"true",
17
+ :description=>" file with input data",
18
+ :help=>" file with input data",
19
+ :code_name=>:geo_file,
20
+ :must_pass=>
21
+ [{:test=>"kind_of? String",
22
+ :explanation=>"This variable must be a string."}],
23
+ :type=>:String,
24
+ :autoscanned_defaults=>["pr08_jet_42982_2d.dat"]},
25
+ :geo_time=>
26
+ {:should_include=>"true",
27
+ :description=>" target time to sample experimental data (in seconds)",
28
+ :help=>" target time to sample experimental data (in seconds)",
29
+ :code_name=>:geo_time,
30
+ :must_pass=>
31
+ [{:test=>"kind_of? Numeric",
32
+ :explanation=>
33
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
34
+ :type=>:Float,
35
+ :autoscanned_defaults=>[14.0]},
36
+ :rad_out=>
37
+ {:should_include=>"true",
38
+ :description=>" outer radial boundary",
39
+ :help=>" outer radial boundary",
40
+ :code_name=>:rad_out,
41
+ :must_pass=>
42
+ [{:test=>"kind_of? Numeric",
43
+ :explanation=>
44
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
45
+ :type=>:Float,
46
+ :autoscanned_defaults=>[0.95]},
47
+ :nrad=>
48
+ {:should_include=>"true",
49
+ :description=>" number of radial grid points",
50
+ :help=>" number of radial grid points",
51
+ :code_name=>:nrad,
52
+ :must_pass=>
53
+ [{:test=>"kind_of? Integer",
54
+ :explanation=>"This variable must be an integer."}],
55
+ :type=>:Integer,
56
+ :autoscanned_defaults=>[9]},
57
+ :bt_in=>
58
+ {:should_include=>"true",
59
+ :description=>
60
+ " if bt_in > 0.0 and overwrite_db_input=T, set bmag = bt_in (B-field strength in Tesla)",
61
+ :help=>
62
+ " if bt_in > 0.0 and overwrite_db_input=T, set bmag = bt_in (B-field strength in Tesla)",
63
+ :code_name=>:bt_in,
64
+ :must_pass=>
65
+ [{:test=>"kind_of? Numeric",
66
+ :explanation=>
67
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
68
+ :type=>:Float,
69
+ :autoscanned_defaults=>[0.0]},
70
+ :amin_in=>
71
+ {:should_include=>"true",
72
+ :description=>" geometric minor radius at LCFS (in meters)",
73
+ :help=>" geometric minor radius at LCFS (in meters)",
74
+ :code_name=>:amin_in,
75
+ :must_pass=>
76
+ [{:test=>"kind_of? Numeric",
77
+ :explanation=>
78
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
79
+ :type=>:Float,
80
+ :autoscanned_defaults=>[0.0]},
81
+ :rgeo_in=>
82
+ {:should_include=>"true",
83
+ :description=>" geometric major radius at LCFS (in meters)",
84
+ :help=>" geometric major radius at LCFS (in meters)",
85
+ :code_name=>:rgeo_in,
86
+ :must_pass=>
87
+ [{:test=>"kind_of? Numeric",
88
+ :explanation=>
89
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
90
+ :type=>:Float,
91
+ :autoscanned_defaults=>[0.0]},
92
+ :q0=>
93
+ {:should_include=>"true",
94
+ :description=>" value of q at core of profile",
95
+ :help=>" value of q at core of profile",
96
+ :code_name=>:q0,
97
+ :must_pass=>
98
+ [{:test=>"kind_of? Numeric",
99
+ :explanation=>
100
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
101
+ :type=>:Float,
102
+ :autoscanned_defaults=>[1.1]},
103
+ :qa=>
104
+ {:should_include=>"true",
105
+ :description=>" value of q at edge of plasma",
106
+ :help=>" value of q at edge of plasma",
107
+ :code_name=>:qa,
108
+ :must_pass=>
109
+ [{:test=>"kind_of? Numeric",
110
+ :explanation=>
111
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
112
+ :type=>:Float,
113
+ :autoscanned_defaults=>[2.73]},
114
+ :alph_q=>
115
+ {:should_include=>"true",
116
+ :description=>" controls flatness of q profile",
117
+ :help=>" controls flatness of q profile",
118
+ :code_name=>:alph_q,
119
+ :must_pass=>
120
+ [{:test=>"kind_of? Numeric",
121
+ :explanation=>
122
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
123
+ :type=>:Float,
124
+ :autoscanned_defaults=>[0.6]},
125
+ :sh0=>
126
+ {:should_include=>"true",
127
+ :description=>
128
+ " sh0 > 0.0 makes shat increase sharply from zero near rad=0",
129
+ :help=>" sh0 > 0.0 makes shat increase sharply from zero near rad=0",
130
+ :code_name=>:sh0,
131
+ :must_pass=>
132
+ [{:test=>"kind_of? Numeric",
133
+ :explanation=>
134
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
135
+ :type=>:Float,
136
+ :autoscanned_defaults=>[1.0]},
137
+ :kap0=>
138
+ {:should_include=>"true",
139
+ :description=>" value of kappa (elongation) at core of plasma",
140
+ :help=>" value of kappa (elongation) at core of plasma",
141
+ :code_name=>:kap0,
142
+ :must_pass=>
143
+ [{:test=>"kind_of? Numeric",
144
+ :explanation=>
145
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
146
+ :type=>:Float,
147
+ :autoscanned_defaults=>[1.35]},
148
+ :ka=>
149
+ {:should_include=>"true",
150
+ :description=>" value of kappa at edge of plasma (r/a=1)",
151
+ :help=>" value of kappa at edge of plasma (r/a=1)",
152
+ :code_name=>:ka,
153
+ :must_pass=>
154
+ [{:test=>"kind_of? Numeric",
155
+ :explanation=>
156
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
157
+ :type=>:Float,
158
+ :autoscanned_defaults=>[1.65]},
159
+ :alph_k=>
160
+ {:should_include=>"true",
161
+ :description=>" controls flatness of kappa profile",
162
+ :help=>" controls flatness of kappa profile",
163
+ :code_name=>:alph_k,
164
+ :must_pass=>
165
+ [{:test=>"kind_of? Numeric",
166
+ :explanation=>
167
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
168
+ :type=>:Float,
169
+ :autoscanned_defaults=>[0.8]},
170
+ :fluxlabel_option=>
171
+ {:should_include=>"true",
172
+ :description=>" sets choice of normalized flux label",
173
+ :help=>" sets choice of normalized flux label",
174
+ :code_name=>:fluxlabel_option,
175
+ :must_pass=>
176
+ [{:test=>"kind_of? String",
177
+ :explanation=>"This variable must be a string."}],
178
+ :type=>:String,
179
+ :autoscanned_defaults=>["default"]},
180
+ :phia_in=>
181
+ {:should_include=>"true",
182
+ :description=>
183
+ " if phia_in > 0.0 and overwrite_db_input=T, set phia = phia_in (phia is sqrt(tor flux) at separatrix)",
184
+ :help=>
185
+ " if phia_in > 0.0 and overwrite_db_input=T, set phia = phia_in (phia is sqrt(tor flux) at separatrix)",
186
+ :code_name=>:phia_in,
187
+ :must_pass=>
188
+ [{:test=>"kind_of? Numeric",
189
+ :explanation=>
190
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
191
+ :type=>:Float,
192
+ :autoscanned_defaults=>[0.0]},
193
+ :use_external_geo=>
194
+ {:should_include=>"true",
195
+ :description=>
196
+ " true if specifying geometry for flux code externally (e.g. in gs2 input files)",
197
+ :help=>
198
+ " true if specifying geometry for flux code externally (e.g. in gs2 input files)",
199
+ :code_name=>:use_external_geo,
200
+ :must_pass=>
201
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
202
+ :explanation=>
203
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
204
+ :type=>:Fortran_Bool,
205
+ :autoscanned_defaults=>[".false."]},
206
+ :write_dbinfo=>
207
+ {:should_include=>"true",
208
+ :description=>
209
+ " set true to write un-interpolated ITER DB info to screen",
210
+ :help=>" set true to write un-interpolated ITER DB info to screen",
211
+ :code_name=>:write_dbinfo,
212
+ :must_pass=>
213
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
214
+ :explanation=>
215
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
216
+ :type=>:Fortran_Bool,
217
+ :autoscanned_defaults=>[".false."]},
218
+ :overwrite_db_input=>
219
+ {:should_include=>"true",
220
+ :description=>
221
+ " true if user wants to overwrite 1D variable(s) with input file values",
222
+ :help=>
223
+ " true if user wants to overwrite 1D variable(s) with input file values",
224
+ :code_name=>:overwrite_db_input,
225
+ :must_pass=>
226
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
227
+ :explanation=>
228
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
229
+ :type=>:Fortran_Bool,
230
+ :autoscanned_defaults=>[".false."]}}},
231
+ :species=>
232
+ {:description=>"",
233
+ :should_include=>"true",
234
+ :variables=>
235
+ {:species_option=>
236
+ {:should_include=>"true",
237
+ :description=>" construct species profiles from following parameters",
238
+ :help=>" construct species profiles from following parameters",
239
+ :code_name=>:species_option,
240
+ :must_pass=>
241
+ [{:test=>"kind_of? String",
242
+ :explanation=>"This variable must be a string."}],
243
+ :type=>:String,
244
+ :autoscanned_defaults=>["default"]},
245
+ :species_file=>
246
+ {:should_include=>"true",
247
+ :description=>" file with input data",
248
+ :help=>" file with input data",
249
+ :code_name=>:species_file,
250
+ :must_pass=>
251
+ [{:test=>"kind_of? String",
252
+ :explanation=>"This variable must be a string."}],
253
+ :type=>:String,
254
+ :autoscanned_defaults=>["geo_file"]},
255
+ :species_time=>
256
+ {:should_include=>"true",
257
+ :description=>" target time to sample experimental data (in seconds)",
258
+ :help=>" target time to sample experimental data (in seconds)",
259
+ :code_name=>:species_time,
260
+ :must_pass=>
261
+ [{:test=>"kind_of? Numeric",
262
+ :explanation=>
263
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
264
+ :type=>:Float,
265
+ :autoscanned_defaults=>["geo_time"]},
266
+ :ntspec=>
267
+ {:should_include=>"true",
268
+ :description=>" number of species to evolve (profiles)",
269
+ :help=>" number of species to evolve (profiles)",
270
+ :code_name=>:ntspec,
271
+ :must_pass=>
272
+ [{:test=>"kind_of? Integer",
273
+ :explanation=>"This variable must be an integer."}],
274
+ :type=>:Integer,
275
+ :autoscanned_defaults=>[2]},
276
+ :qi=>
277
+ {:should_include=>"true",
278
+ :description=>
279
+ " simulated ion species charge (in units of fundamental charge)",
280
+ :help=>" simulated ion species charge (in units of fundamental charge)",
281
+ :code_name=>:qi,
282
+ :must_pass=>
283
+ [{:test=>"kind_of? Numeric",
284
+ :explanation=>
285
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
286
+ :type=>:Float,
287
+ :autoscanned_defaults=>[1.0]},
288
+ :mi=>
289
+ {:should_include=>"true",
290
+ :description=>" ion mass (in units of proton mass)",
291
+ :help=>" ion mass (in units of proton mass)",
292
+ :code_name=>:mi,
293
+ :must_pass=>
294
+ [{:test=>"kind_of? Numeric",
295
+ :explanation=>
296
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
297
+ :type=>:Float,
298
+ :autoscanned_defaults=>[2.0]},
299
+ :zeff_in=>
300
+ {:should_include=>"true",
301
+ :description=>" effective charge",
302
+ :help=>" effective charge",
303
+ :code_name=>:zeff_in,
304
+ :must_pass=>
305
+ [{:test=>"kind_of? Numeric",
306
+ :explanation=>
307
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
308
+ :type=>:Float,
309
+ :autoscanned_defaults=>[0.0]},
310
+ :deuterium=>
311
+ {:should_include=>"true",
312
+ :description=>
313
+ " x-label in iter profile database to look for main ion density (\"NMx\")",
314
+ :help=>
315
+ " x-label in iter profile database to look for main ion density (\"NMx\")",
316
+ :code_name=>:deuterium,
317
+ :must_pass=>
318
+ [{:test=>"kind_of? Integer",
319
+ :explanation=>"This variable must be an integer."}],
320
+ :type=>:Integer,
321
+ :autoscanned_defaults=>[1]},
322
+ :tritium=>
323
+ {:should_include=>"true",
324
+ :description=>
325
+ " x-label in iter profile database to look for secondary ion density (\"NMx\")",
326
+ :help=>
327
+ " x-label in iter profile database to look for secondary ion density (\"NMx\")",
328
+ :code_name=>:tritium,
329
+ :must_pass=>
330
+ [{:test=>"kind_of? Integer",
331
+ :explanation=>"This variable must be an integer."}],
332
+ :type=>:Integer,
333
+ :autoscanned_defaults=>[2]},
334
+ :impurity=>
335
+ {:should_include=>"true",
336
+ :description=>
337
+ " x-label in iter profile database to look for impurity density (\"NMx\")",
338
+ :help=>
339
+ " x-label in iter profile database to look for impurity density (\"NMx\")",
340
+ :code_name=>:impurity,
341
+ :must_pass=>
342
+ [{:test=>"kind_of? Integer",
343
+ :explanation=>"This variable must be an integer."}],
344
+ :type=>:Integer,
345
+ :autoscanned_defaults=>[3]},
346
+ :mimp=>
347
+ {:should_include=>"true",
348
+ :description=>" main impurity mass (in units of proton mass)",
349
+ :help=>" main impurity mass (in units of proton mass)",
350
+ :code_name=>:mimp,
351
+ :must_pass=>
352
+ [{:test=>"kind_of? Numeric",
353
+ :explanation=>
354
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
355
+ :type=>:Float,
356
+ :autoscanned_defaults=>[12.0]},
357
+ :zimp=>
358
+ {:should_include=>"true",
359
+ :description=>" main impurity charge number",
360
+ :help=>" main impurity charge number",
361
+ :code_name=>:zimp,
362
+ :must_pass=>
363
+ [{:test=>"kind_of? Numeric",
364
+ :explanation=>
365
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
366
+ :type=>:Float,
367
+ :autoscanned_defaults=>[6.0]}}},
368
+ :time=>
369
+ {:description=>"",
370
+ :should_include=>"true",
371
+ :variables=>
372
+ {:ntstep=>
373
+ {:should_include=>"true",
374
+ :description=>" number of transport time steps",
375
+ :help=>" number of transport time steps",
376
+ :code_name=>:ntstep,
377
+ :must_pass=>
378
+ [{:test=>"kind_of? Integer",
379
+ :explanation=>"This variable must be an integer."}],
380
+ :type=>:Integer,
381
+ :autoscanned_defaults=>[20]},
382
+ :niter=>
383
+ {:should_include=>"true",
384
+ :description=>" max number of newton iterations per time step",
385
+ :help=>" max number of newton iterations per time step",
386
+ :code_name=>:niter,
387
+ :must_pass=>
388
+ [{:test=>"kind_of? Integer",
389
+ :explanation=>"This variable must be an integer."}],
390
+ :type=>:Integer,
391
+ :autoscanned_defaults=>[2]},
392
+ :ntdelt=>
393
+ {:should_include=>"true",
394
+ :description=>" initial size of transport time step",
395
+ :help=>" initial size of transport time step",
396
+ :code_name=>:ntdelt,
397
+ :must_pass=>
398
+ [{:test=>"kind_of? Numeric",
399
+ :explanation=>
400
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
401
+ :type=>:Float,
402
+ :autoscanned_defaults=>[0.01]},
403
+ :ntdelt_max=>
404
+ {:should_include=>"true",
405
+ :description=>" maximum size of transport time step",
406
+ :help=>" maximum size of transport time step",
407
+ :code_name=>:ntdelt_max,
408
+ :must_pass=>
409
+ [{:test=>"kind_of? Numeric",
410
+ :explanation=>
411
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
412
+ :type=>:Float,
413
+ :autoscanned_defaults=>[0.1]},
414
+ :impfac=>
415
+ {:should_include=>"true",
416
+ :description=>" time centering (1=implicit, 0=explicit)",
417
+ :help=>" time centering (1=implicit, 0=explicit)",
418
+ :code_name=>:impfac,
419
+ :must_pass=>
420
+ [{:test=>"kind_of? Numeric",
421
+ :explanation=>
422
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
423
+ :type=>:Float,
424
+ :autoscanned_defaults=>[1.0]},
425
+ :errtol=>
426
+ {:should_include=>"true",
427
+ :description=>
428
+ " maximum allowed relative error upon end of newton iteration",
429
+ :help=>" maximum allowed relative error upon end of newton iteration",
430
+ :code_name=>:errtol,
431
+ :must_pass=>
432
+ [{:test=>"kind_of? Numeric",
433
+ :explanation=>
434
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
435
+ :type=>:Float,
436
+ :autoscanned_defaults=>[0.2]},
437
+ :errflr=>
438
+ {:should_include=>"true",
439
+ :description=>" relative error below which we stop iterating",
440
+ :help=>" relative error below which we stop iterating",
441
+ :code_name=>:errflr,
442
+ :must_pass=>
443
+ [{:test=>"kind_of? Numeric",
444
+ :explanation=>
445
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
446
+ :type=>:Float,
447
+ :autoscanned_defaults=>[0.005]},
448
+ :flrfac=>
449
+ {:should_include=>"true",
450
+ :description=>
451
+ " if relative error below errflr/flrfac, decrease ntdelt by factor of 2",
452
+ :help=>
453
+ " if relative error below errflr/flrfac, decrease ntdelt by factor of 2",
454
+ :code_name=>:flrfac,
455
+ :must_pass=>
456
+ [{:test=>"kind_of? Numeric",
457
+ :explanation=>
458
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
459
+ :type=>:Float,
460
+ :autoscanned_defaults=>[2.0]},
461
+ :nensembles=>
462
+ {:should_include=>"true",
463
+ :description=>
464
+ " # of ensembles to use in ensemble (time) average of fluxes",
465
+ :help=>" # of ensembles to use in ensemble (time) average of fluxes",
466
+ :code_name=>:nensembles,
467
+ :must_pass=>
468
+ [{:test=>"kind_of? Integer",
469
+ :explanation=>"This variable must be an integer."}],
470
+ :type=>:Integer,
471
+ :autoscanned_defaults=>[1]}}},
472
+ :fluxes=>
473
+ {:description=>"",
474
+ :should_include=>"true",
475
+ :variables=>
476
+ {:flux_option=>
477
+ {:should_include=>"true",
478
+ :description=>" determines flux model (default is gs2)",
479
+ :help=>" determines flux model (default is gs2)",
480
+ :code_name=>:flux_option,
481
+ :must_pass=>
482
+ [{:test=>"kind_of? String",
483
+ :explanation=>"This variable must be a string."}],
484
+ :type=>:String,
485
+ :autoscanned_defaults=>["default"]},
486
+ :flxmult=>
487
+ {:should_include=>"true",
488
+ :description=>" coefficient multiplying fluxes (for testing)",
489
+ :help=>" coefficient multiplying fluxes (for testing)",
490
+ :code_name=>:flxmult,
491
+ :must_pass=>
492
+ [{:test=>"kind_of? Numeric",
493
+ :explanation=>
494
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
495
+ :type=>:Float,
496
+ :autoscanned_defaults=>[1.0]},
497
+ :pflx_min=>
498
+ {:should_include=>"true",
499
+ :description=>" minimum particle flux (for below stability threshold)",
500
+ :help=>" minimum particle flux (for below stability threshold)",
501
+ :code_name=>:pflx_min,
502
+ :must_pass=>
503
+ [{:test=>"kind_of? Numeric",
504
+ :explanation=>
505
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
506
+ :type=>:Float,
507
+ :autoscanned_defaults=>[1.0e-05]},
508
+ :qflx_min=>
509
+ {:should_include=>"true",
510
+ :description=>" minimum heat flux (for below stability threshold)",
511
+ :help=>" minimum heat flux (for below stability threshold)",
512
+ :code_name=>:qflx_min,
513
+ :must_pass=>
514
+ [{:test=>"kind_of? Numeric",
515
+ :explanation=>
516
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
517
+ :type=>:Float,
518
+ :autoscanned_defaults=>[0.0005]},
519
+ :heat_min=>
520
+ {:should_include=>"true",
521
+ :description=>" minimum local heating",
522
+ :help=>" minimum local heating",
523
+ :code_name=>:heat_min,
524
+ :must_pass=>
525
+ [{:test=>"kind_of? Numeric",
526
+ :explanation=>
527
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
528
+ :type=>:Float,
529
+ :autoscanned_defaults=>[0.0]},
530
+ :lflx_min=>
531
+ {:should_include=>"true",
532
+ :description=>" minimum momentum flux (for below stability threshold)",
533
+ :help=>" minimum momentum flux (for below stability threshold)",
534
+ :code_name=>:lflx_min,
535
+ :must_pass=>
536
+ [{:test=>"kind_of? Numeric",
537
+ :explanation=>
538
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
539
+ :type=>:Float,
540
+ :autoscanned_defaults=>[0.0]},
541
+ :dfac=>
542
+ {:should_include=>"true",
543
+ :description=>" diffusion coefficient for testing",
544
+ :help=>" diffusion coefficient for testing",
545
+ :code_name=>:dfac,
546
+ :must_pass=>
547
+ [{:test=>"kind_of? Numeric",
548
+ :explanation=>
549
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
550
+ :type=>:Float,
551
+ :autoscanned_defaults=>[0.1]},
552
+ :grad_option=>
553
+ {:should_include=>"true",
554
+ :description=>" option determining which equilibrium gradients to vary",
555
+ :help=>" option determining which equilibrium gradients to vary",
556
+ :code_name=>:grad_option,
557
+ :must_pass=>
558
+ [{:test=>"kind_of? String",
559
+ :explanation=>"This variable must be a string."}],
560
+ :type=>:String,
561
+ :autoscanned_defaults=>["default"]},
562
+ :dfprim=>
563
+ {:should_include=>"true",
564
+ :description=>" step size for R/Ln is -R/Ln * dfprim",
565
+ :help=>" step size for R/Ln is -R/Ln * dfprim",
566
+ :code_name=>:dfprim,
567
+ :must_pass=>
568
+ [{:test=>"kind_of? Numeric",
569
+ :explanation=>
570
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
571
+ :type=>:Float,
572
+ :autoscanned_defaults=>[0.1]},
573
+ :dtprim=>
574
+ {:should_include=>"true",
575
+ :description=>" step size for R/LT is R/LT * dtprim",
576
+ :help=>" step size for R/LT is R/LT * dtprim",
577
+ :code_name=>:dtprim,
578
+ :must_pass=>
579
+ [{:test=>"kind_of? Numeric",
580
+ :explanation=>
581
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
582
+ :type=>:Float,
583
+ :autoscanned_defaults=>[0.1]},
584
+ :dgexb=>
585
+ {:should_include=>"true",
586
+ :description=>" step size for gexb is gexb * dgexb",
587
+ :help=>" step size for gexb is gexb * dgexb",
588
+ :code_name=>:dgexb,
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=>[0.2]},
595
+ :fork_flag=>
596
+ {:should_include=>"true",
597
+ :description=>" false for running serially",
598
+ :help=>" false for running serially",
599
+ :code_name=>:fork_flag,
600
+ :must_pass=>
601
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
602
+ :explanation=>
603
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
604
+ :type=>:Fortran_Bool,
605
+ :autoscanned_defaults=>[".true."]},
606
+ :check_flux_converge=>
607
+ {:should_include=>"true",
608
+ :description=>" if true, use auto-convergence tests in flux solver",
609
+ :help=>" if true, use auto-convergence tests in flux solver",
610
+ :code_name=>:check_flux_converge,
611
+ :must_pass=>
612
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
613
+ :explanation=>
614
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
615
+ :type=>:Fortran_Bool,
616
+ :autoscanned_defaults=>[".false."]},
617
+ :testing=>
618
+ {:should_include=>"true",
619
+ :description=>" if testing, set area, grho = 1",
620
+ :help=>" if testing, set area, grho = 1",
621
+ :code_name=>:testing,
622
+ :must_pass=>
623
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
624
+ :explanation=>
625
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
626
+ :type=>:Fortran_Bool,
627
+ :autoscanned_defaults=>[".false."]},
628
+ :dflx_stencil=>
629
+ {:should_include=>"true",
630
+ :description=>" number of fluxes to use for flux derivatives",
631
+ :help=>" number of fluxes to use for flux derivatives",
632
+ :code_name=>:dflx_stencil,
633
+ :must_pass=>
634
+ [{:test=>"kind_of? Integer",
635
+ :explanation=>"This variable must be an integer."}],
636
+ :type=>:Integer,
637
+ :autoscanned_defaults=>[2, 3]},
638
+ :dprimfac=>
639
+ {:should_include=>"true",
640
+ :description=>
641
+ " if dflx_stencil > 2, multiply dprim values that are negative by this",
642
+ :help=>
643
+ " if dflx_stencil > 2, multiply dprim values that are negative by this",
644
+ :code_name=>:dprimfac,
645
+ :must_pass=>
646
+ [{:test=>"kind_of? Numeric",
647
+ :explanation=>
648
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
649
+ :type=>:Float,
650
+ :autoscanned_defaults=>[1.0]},
651
+ :pflx_nfac=>
652
+ {:should_include=>"true",
653
+ :description=>" add to ifs-pppl a particle flux of form pflx_nfac*dens",
654
+ :help=>" add to ifs-pppl a particle flux of form pflx_nfac*dens",
655
+ :code_name=>:pflx_nfac,
656
+ :must_pass=>
657
+ [{:test=>"kind_of? Numeric",
658
+ :explanation=>
659
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
660
+ :type=>:Float,
661
+ :autoscanned_defaults=>[-0.05]},
662
+ :pflx_rlnfac=>
663
+ {:should_include=>"true",
664
+ :description=>" + pflx_rlnfac*rln",
665
+ :help=>" + pflx_rlnfac*rln",
666
+ :code_name=>:pflx_rlnfac,
667
+ :must_pass=>
668
+ [{:test=>"kind_of? Numeric",
669
+ :explanation=>
670
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
671
+ :type=>:Float,
672
+ :autoscanned_defaults=>[0.01]},
673
+ :pflx_rltfac=>
674
+ {:should_include=>"true",
675
+ :description=>" + pflx_rltfac*rlte",
676
+ :help=>" + pflx_rltfac*rlte",
677
+ :code_name=>:pflx_rltfac,
678
+ :must_pass=>
679
+ [{:test=>"kind_of? Numeric",
680
+ :explanation=>
681
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
682
+ :type=>:Float,
683
+ :autoscanned_defaults=>[0.01]},
684
+ :vtfac=>
685
+ {:should_include=>"true",
686
+ :description=>
687
+ " v_t=sqrt(vtfac*T/m). should be consistent with definition from flux code",
688
+ :help=>
689
+ " v_t=sqrt(vtfac*T/m). should be consistent with definition from flux code",
690
+ :code_name=>:vtfac,
691
+ :must_pass=>
692
+ [{:test=>"kind_of? Numeric",
693
+ :explanation=>
694
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
695
+ :type=>:Float,
696
+ :autoscanned_defaults=>[2.0]},
697
+ :ddens=>
698
+ {:should_include=>"true",
699
+ :description=>" step size for density is -density * ddens",
700
+ :help=>" step size for density is -density * ddens",
701
+ :code_name=>:ddens,
702
+ :must_pass=>
703
+ [{:test=>"kind_of? Numeric",
704
+ :explanation=>
705
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
706
+ :type=>:Float,
707
+ :autoscanned_defaults=>[0.2]},
708
+ :dti=>
709
+ {:should_include=>"true",
710
+ :description=>" step size for Ti is Ti * dti",
711
+ :help=>" step size for Ti is Ti * dti",
712
+ :code_name=>:dti,
713
+ :must_pass=>
714
+ [{:test=>"kind_of? Numeric",
715
+ :explanation=>
716
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
717
+ :type=>:Float,
718
+ :autoscanned_defaults=>[0.2]},
719
+ :dte=>
720
+ {:should_include=>"true",
721
+ :description=>" step size for Te is Te * dte",
722
+ :help=>" step size for Te is Te * dte",
723
+ :code_name=>:dte,
724
+ :must_pass=>
725
+ [{:test=>"kind_of? Numeric",
726
+ :explanation=>
727
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
728
+ :type=>:Float,
729
+ :autoscanned_defaults=>[0.2]},
730
+ :dom=>
731
+ {:should_include=>"true",
732
+ :description=>
733
+ " step size for toroidal rotation frequency, omega, is omega * dom",
734
+ :help=>
735
+ " step size for toroidal rotation frequency, omega, is omega * dom",
736
+ :code_name=>:dom,
737
+ :must_pass=>
738
+ [{:test=>"kind_of? Numeric",
739
+ :explanation=>
740
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
741
+ :type=>:Float,
742
+ :autoscanned_defaults=>[0.2]},
743
+ :nglobalrad=>
744
+ {:should_include=>"true",
745
+ :description=>
746
+ " number of radial points in global gene simulation (1 for local gene)",
747
+ :help=>
748
+ " number of radial points in global gene simulation (1 for local gene)",
749
+ :code_name=>:nglobalrad,
750
+ :must_pass=>
751
+ [{:test=>"kind_of? Integer",
752
+ :explanation=>"This variable must be an integer."}],
753
+ :type=>:Integer,
754
+ :autoscanned_defaults=>[1]},
755
+ :alph1=>
756
+ {:should_include=>"true",
757
+ :description=>" constant factor multiplying gexb for pb flux option",
758
+ :help=>" constant factor multiplying gexb for pb flux option",
759
+ :code_name=>:alph1,
760
+ :must_pass=>
761
+ [{:test=>"kind_of? Numeric",
762
+ :explanation=>
763
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
764
+ :type=>:Float,
765
+ :autoscanned_defaults=>[13.0]},
766
+ :tp0=>
767
+ {:should_include=>"true",
768
+ :description=>" critical tprim at zero flow shear for pb flux option",
769
+ :help=>" critical tprim at zero flow shear for pb flux option",
770
+ :code_name=>:tp0,
771
+ :must_pass=>
772
+ [{:test=>"kind_of? Numeric",
773
+ :explanation=>
774
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
775
+ :type=>:Float,
776
+ :autoscanned_defaults=>[4.3]},
777
+ :chi0=>
778
+ {:should_include=>"true",
779
+ :description=>
780
+ " constant factor multiplying turbulent chii for pb flux option",
781
+ :help=>" constant factor multiplying turbulent chii for pb flux option",
782
+ :code_name=>:chi0,
783
+ :must_pass=>
784
+ [{:test=>"kind_of? Numeric",
785
+ :explanation=>
786
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
787
+ :type=>:Float,
788
+ :autoscanned_defaults=>[20.0]},
789
+ :prandtl=>
790
+ {:should_include=>"true",
791
+ :description=>" turbulent prandtl number for pb flux option",
792
+ :help=>" turbulent prandtl number for pb flux option",
793
+ :code_name=>:prandtl,
794
+ :must_pass=>
795
+ [{:test=>"kind_of? Numeric",
796
+ :explanation=>
797
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
798
+ :type=>:Float,
799
+ :autoscanned_defaults=>[1.0]},
800
+ :prandtl_neo=>
801
+ {:should_include=>"true",
802
+ :description=>" neoclassical prandtl number",
803
+ :help=>" neoclassical prandtl number",
804
+ :code_name=>:prandtl_neo,
805
+ :must_pass=>
806
+ [{:test=>"kind_of? Numeric",
807
+ :explanation=>
808
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
809
+ :type=>:Float,
810
+ :autoscanned_defaults=>["prandtl*0.01"]},
811
+ :evolve_grads_only=>
812
+ {:should_include=>"true",
813
+ :description=>
814
+ " if true, calculate only dependence on grads (not profiles themselves) in jacobian",
815
+ :help=>
816
+ " if true, calculate only dependence on grads (not profiles themselves) in jacobian",
817
+ :code_name=>:evolve_grads_only,
818
+ :must_pass=>
819
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
820
+ :explanation=>
821
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
822
+ :type=>:Fortran_Bool,
823
+ :autoscanned_defaults=>[".true."]}}},
824
+ :init=>
825
+ {:description=>"",
826
+ :should_include=>"true",
827
+ :variables=>
828
+ {:init_option=>
829
+ {:should_include=>"true",
830
+ :description=>" construct initial profiles from following parameters",
831
+ :help=>" construct initial profiles from following parameters",
832
+ :code_name=>:init_option,
833
+ :must_pass=>
834
+ [{:test=>"kind_of? String",
835
+ :explanation=>"This variable must be a string."}],
836
+ :type=>:String,
837
+ :autoscanned_defaults=>["default"]},
838
+ :init_file=>
839
+ {:should_include=>"true",
840
+ :description=>" file with input data",
841
+ :help=>" file with input data",
842
+ :code_name=>:init_file,
843
+ :must_pass=>
844
+ [{:test=>"kind_of? String",
845
+ :explanation=>"This variable must be a string."}],
846
+ :type=>:String,
847
+ :autoscanned_defaults=>["geo_file"]},
848
+ :init_time=>
849
+ {:should_include=>"true",
850
+ :description=>" target time to sample experimental data (in seconds)",
851
+ :help=>" target time to sample experimental data (in seconds)",
852
+ :code_name=>:init_time,
853
+ :must_pass=>
854
+ [{:test=>"kind_of? Numeric",
855
+ :explanation=>
856
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
857
+ :type=>:Float,
858
+ :autoscanned_defaults=>["geo_time"]},
859
+ :rln=>
860
+ {:should_include=>"true",
861
+ :description=>" initial R/Ln",
862
+ :help=>" initial R/Ln",
863
+ :code_name=>:rln,
864
+ :must_pass=>
865
+ [{:test=>"kind_of? Numeric",
866
+ :explanation=>
867
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
868
+ :type=>:Float,
869
+ :autoscanned_defaults=>[0.0, 1.0]},
870
+ :rlti=>
871
+ {:should_include=>"true",
872
+ :description=>" initial R/LTi",
873
+ :help=>" initial R/LTi",
874
+ :code_name=>:rlti,
875
+ :must_pass=>
876
+ [{:test=>"kind_of? Numeric",
877
+ :explanation=>
878
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
879
+ :type=>:Float,
880
+ :autoscanned_defaults=>[4.0]},
881
+ :rlte=>
882
+ {:should_include=>"true",
883
+ :description=>" initial R/LTe",
884
+ :help=>" initial R/LTe",
885
+ :code_name=>:rlte,
886
+ :must_pass=>
887
+ [{:test=>"kind_of? Numeric",
888
+ :explanation=>
889
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
890
+ :type=>:Float,
891
+ :autoscanned_defaults=>[0.0, 4.0]},
892
+ :nedge=>
893
+ {:should_include=>"true",
894
+ :description=>
895
+ " initial density offset. if positive, override init_option for dens",
896
+ :help=>
897
+ " initial density offset. if positive, override init_option for dens",
898
+ :code_name=>:nedge,
899
+ :must_pass=>
900
+ [{:test=>"kind_of? Numeric",
901
+ :explanation=>
902
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
903
+ :type=>:Float,
904
+ :autoscanned_defaults=>[-1.0]},
905
+ :tiedge=>
906
+ {:should_include=>"true",
907
+ :description=>
908
+ " initial Ti offset. if positive, override init_option for Ti",
909
+ :help=>" initial Ti offset. if positive, override init_option for Ti",
910
+ :code_name=>:tiedge,
911
+ :must_pass=>
912
+ [{:test=>"kind_of? Numeric",
913
+ :explanation=>
914
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
915
+ :type=>:Float,
916
+ :autoscanned_defaults=>[-1.0]},
917
+ :teedge=>
918
+ {:should_include=>"true",
919
+ :description=>
920
+ " initial Te offset. if positive, override init_option for Te",
921
+ :help=>" initial Te offset. if positive, override init_option for Te",
922
+ :code_name=>:teedge,
923
+ :must_pass=>
924
+ [{:test=>"kind_of? Numeric",
925
+ :explanation=>
926
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
927
+ :type=>:Float,
928
+ :autoscanned_defaults=>[-1.0]},
929
+ :densfac=>
930
+ {:should_include=>"true",
931
+ :description=>" factor multiplying ITER DB density",
932
+ :help=>" factor multiplying ITER DB density",
933
+ :code_name=>:densfac,
934
+ :must_pass=>
935
+ [{:test=>"kind_of? Numeric",
936
+ :explanation=>
937
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
938
+ :type=>:Float,
939
+ :autoscanned_defaults=>[1.0]},
940
+ :tifac=>
941
+ {:should_include=>"true",
942
+ :description=>" factor multiplying ITER DB ion temperature",
943
+ :help=>" factor multiplying ITER DB ion temperature",
944
+ :code_name=>:tifac,
945
+ :must_pass=>
946
+ [{:test=>"kind_of? Numeric",
947
+ :explanation=>
948
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
949
+ :type=>:Float,
950
+ :autoscanned_defaults=>[1.0]},
951
+ :tefac=>
952
+ {:should_include=>"true",
953
+ :description=>" factor multiplying ITER DB electron temperature",
954
+ :help=>" factor multiplying ITER DB electron temperature",
955
+ :code_name=>:tefac,
956
+ :must_pass=>
957
+ [{:test=>"kind_of? Numeric",
958
+ :explanation=>
959
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
960
+ :type=>:Float,
961
+ :autoscanned_defaults=>[1.0]},
962
+ :ledge=>
963
+ {:should_include=>"true",
964
+ :description=>
965
+ " initial L offset. if positive, override init_option for L",
966
+ :help=>" initial L offset. if positive, override init_option for L",
967
+ :code_name=>:ledge,
968
+ :must_pass=>
969
+ [{:test=>"kind_of? Numeric",
970
+ :explanation=>
971
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
972
+ :type=>:Float,
973
+ :autoscanned_defaults=>[-1.0]},
974
+ :rll=>
975
+ {:should_include=>"true",
976
+ :description=>nil,
977
+ :help=>nil,
978
+ :code_name=>:rll,
979
+ :must_pass=>
980
+ [{:test=>"kind_of? Numeric",
981
+ :explanation=>
982
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
983
+ :type=>:Float,
984
+ :autoscanned_defaults=>[]},
985
+ :iternt_file=>
986
+ {:should_include=>"true",
987
+ :description=>
988
+ " file with old profile data for restarts in the middle of a timestep",
989
+ :help=>
990
+ " file with old profile data for restarts in the middle of a timestep",
991
+ :code_name=>:iternt_file,
992
+ :must_pass=>
993
+ [{:test=>"kind_of? String",
994
+ :explanation=>"This variable must be a string."}],
995
+ :type=>:String,
996
+ :autoscanned_defaults=>["restart.iternt"]},
997
+ :iterflx_file=>
998
+ {:should_include=>"true",
999
+ :description=>
1000
+ " file with old flx date for restarts in the middle of a timestep",
1001
+ :help=>
1002
+ " file with old flx date for restarts in the middle of a timestep",
1003
+ :code_name=>:iterflx_file,
1004
+ :must_pass=>
1005
+ [{:test=>"kind_of? String",
1006
+ :explanation=>"This variable must be a string."}],
1007
+ :type=>:String,
1008
+ :autoscanned_defaults=>["restart.iterflx"]},
1009
+ :load_balance=>
1010
+ {:should_include=>"true",
1011
+ :description=>
1012
+ " set to true to run with unequal number of procs per flux tube",
1013
+ :help=>" set to true to run with unequal number of procs per flux tube",
1014
+ :code_name=>:load_balance,
1015
+ :must_pass=>
1016
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
1017
+ :explanation=>
1018
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
1019
+ :type=>:Fortran_Bool,
1020
+ :autoscanned_defaults=>[".false."]},
1021
+ :flux_groups=>
1022
+ {:should_include=>"true",
1023
+ :description=>" The number of processors for each flux calculation",
1024
+ :help=>" The number of processors for each flux calculation",
1025
+ :code_name=>:flux_groups,
1026
+ :must_pass=>
1027
+ [{:test=>"kind_of? Integer",
1028
+ :explanation=>"This variable must be an integer."}],
1029
+ :type=>:Integer,
1030
+ :autoscanned_defaults=>["nproc/njobs"]}}},
1031
+ :sources=>
1032
+ {:description=>"",
1033
+ :should_include=>"true",
1034
+ :variables=>
1035
+ {:source_option=>
1036
+ {:should_include=>"true",
1037
+ :description=>" construct source profiles from following parameters",
1038
+ :help=>" construct source profiles from following parameters",
1039
+ :code_name=>:source_option,
1040
+ :must_pass=>
1041
+ [{:test=>"kind_of? String",
1042
+ :explanation=>"This variable must be a string."}],
1043
+ :type=>:String,
1044
+ :autoscanned_defaults=>["default"]},
1045
+ :source_file=>
1046
+ {:should_include=>"true",
1047
+ :description=>" file with input data",
1048
+ :help=>" file with input data",
1049
+ :code_name=>:source_file,
1050
+ :must_pass=>
1051
+ [{:test=>"kind_of? String",
1052
+ :explanation=>"This variable must be a string."}],
1053
+ :type=>:String,
1054
+ :autoscanned_defaults=>["geo_file"]},
1055
+ :source_time=>
1056
+ {:should_include=>"true",
1057
+ :description=>" target time to sample experimental data (in seconds)",
1058
+ :help=>" target time to sample experimental data (in seconds)",
1059
+ :code_name=>:source_time,
1060
+ :must_pass=>
1061
+ [{:test=>"kind_of? Numeric",
1062
+ :explanation=>
1063
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
1064
+ :type=>:Float,
1065
+ :autoscanned_defaults=>["geo_time"]},
1066
+ :powerin=>
1067
+ {:should_include=>"true",
1068
+ :description=>" external power input (in MW)",
1069
+ :help=>" external power input (in MW)",
1070
+ :code_name=>:powerin,
1071
+ :must_pass=>
1072
+ [{:test=>"kind_of? Numeric",
1073
+ :explanation=>
1074
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
1075
+ :type=>:Float,
1076
+ :autoscanned_defaults=>[50.0]},
1077
+ :psig=>
1078
+ {:should_include=>"true",
1079
+ :description=>
1080
+ " width of power input profile (in units of minor radius)",
1081
+ :help=>" width of power input profile (in units of minor radius)",
1082
+ :code_name=>:psig,
1083
+ :must_pass=>
1084
+ [{:test=>"kind_of? Numeric",
1085
+ :explanation=>
1086
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
1087
+ :type=>:Float,
1088
+ :autoscanned_defaults=>[0.1]},
1089
+ :radin=>
1090
+ {:should_include=>"true",
1091
+ :description=>" spatial mean of gaussian power deposition profile",
1092
+ :help=>" spatial mean of gaussian power deposition profile",
1093
+ :code_name=>:radin,
1094
+ :must_pass=>
1095
+ [{:test=>"kind_of? Numeric",
1096
+ :explanation=>
1097
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
1098
+ :type=>:Float,
1099
+ :autoscanned_defaults=>[0.0]},
1100
+ :src_ratio=>
1101
+ {:should_include=>"true",
1102
+ :description=>" fraction of external power going to ions",
1103
+ :help=>" fraction of external power going to ions",
1104
+ :code_name=>:src_ratio,
1105
+ :must_pass=>
1106
+ [{:test=>"kind_of? Numeric",
1107
+ :explanation=>
1108
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
1109
+ :type=>:Float,
1110
+ :autoscanned_defaults=>[0.5]},
1111
+ :densin=>
1112
+ {:should_include=>"true",
1113
+ :description=>" external density input",
1114
+ :help=>" external density input",
1115
+ :code_name=>:densin,
1116
+ :must_pass=>
1117
+ [{:test=>"kind_of? Numeric",
1118
+ :explanation=>
1119
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
1120
+ :type=>:Float,
1121
+ :autoscanned_defaults=>[0.0]},
1122
+ :nsig=>
1123
+ {:should_include=>"true",
1124
+ :description=>
1125
+ " width of density input profile (in units of minor radius)",
1126
+ :help=>" width of density input profile (in units of minor radius)",
1127
+ :code_name=>:nsig,
1128
+ :must_pass=>
1129
+ [{:test=>"kind_of? Numeric",
1130
+ :explanation=>
1131
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
1132
+ :type=>:Float,
1133
+ :autoscanned_defaults=>[0.1]},
1134
+ :write_pwr_profs=>
1135
+ {:should_include=>"true",
1136
+ :description=>" true writes out radial power density profiles",
1137
+ :help=>" true writes out radial power density profiles",
1138
+ :code_name=>:write_pwr_profs,
1139
+ :must_pass=>
1140
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
1141
+ :explanation=>
1142
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
1143
+ :type=>:Fortran_Bool,
1144
+ :autoscanned_defaults=>[".false."]},
1145
+ :include_alphas=>
1146
+ {:should_include=>"true",
1147
+ :description=>" include alpha heating source",
1148
+ :help=>" include alpha heating source",
1149
+ :code_name=>:include_alphas,
1150
+ :must_pass=>
1151
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
1152
+ :explanation=>
1153
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
1154
+ :type=>:Fortran_Bool,
1155
+ :autoscanned_defaults=>[".true."]},
1156
+ :include_radiation=>
1157
+ {:should_include=>"true",
1158
+ :description=>" include bremstrahlung radiation",
1159
+ :help=>" include bremstrahlung radiation",
1160
+ :code_name=>:include_radiation,
1161
+ :must_pass=>
1162
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
1163
+ :explanation=>
1164
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
1165
+ :type=>:Fortran_Bool,
1166
+ :autoscanned_defaults=>[".true."]},
1167
+ :pioq=>
1168
+ {:should_include=>"true",
1169
+ :description=>" ratio of momentum to heat input",
1170
+ :help=>" ratio of momentum to heat input",
1171
+ :code_name=>:pioq,
1172
+ :must_pass=>
1173
+ [{:test=>"kind_of? Numeric",
1174
+ :explanation=>
1175
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
1176
+ :type=>:Float,
1177
+ :autoscanned_defaults=>[0.1]},
1178
+ :write_balance=>
1179
+ {:should_include=>"true",
1180
+ :description=>
1181
+ " true writes out various terms in transport equation each time step",
1182
+ :help=>
1183
+ " true writes out various terms in transport equation each time step",
1184
+ :code_name=>:write_balance,
1185
+ :must_pass=>
1186
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
1187
+ :explanation=>
1188
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
1189
+ :type=>:Fortran_Bool,
1190
+ :autoscanned_defaults=>[".false."]},
1191
+ :write_smooth=>
1192
+ {:should_include=>"true",
1193
+ :description=>" true writes out smoothed profiles",
1194
+ :help=>" true writes out smoothed profiles",
1195
+ :code_name=>:write_smooth,
1196
+ :must_pass=>
1197
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
1198
+ :explanation=>
1199
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
1200
+ :type=>:Fortran_Bool,
1201
+ :autoscanned_defaults=>[".false."]}}},
1202
+ :physics=>
1203
+ {:description=>"",
1204
+ :should_include=>"true",
1205
+ :variables=>
1206
+ {:include_neo=>
1207
+ {:should_include=>"true",
1208
+ :description=>
1209
+ " true includes chang-hinton estimate for neoclassical ion heat flux",
1210
+ :help=>
1211
+ " true includes chang-hinton estimate for neoclassical ion heat flux",
1212
+ :code_name=>:include_neo,
1213
+ :must_pass=>
1214
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
1215
+ :explanation=>
1216
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
1217
+ :type=>:Fortran_Bool,
1218
+ :autoscanned_defaults=>[".true."]},
1219
+ :temp_equil=>
1220
+ {:should_include=>"true",
1221
+ :description=>" set to false to neglect temperature equilibration",
1222
+ :help=>" set to false to neglect temperature equilibration",
1223
+ :code_name=>:temp_equil,
1224
+ :must_pass=>
1225
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
1226
+ :explanation=>
1227
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
1228
+ :type=>:Fortran_Bool,
1229
+ :autoscanned_defaults=>[".true."]},
1230
+ :turb_heat=>
1231
+ {:should_include=>"true",
1232
+ :description=>" set to false to neglect turbulent heating",
1233
+ :help=>" set to false to neglect turbulent heating",
1234
+ :code_name=>:turb_heat,
1235
+ :must_pass=>
1236
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
1237
+ :explanation=>
1238
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
1239
+ :type=>:Fortran_Bool,
1240
+ :autoscanned_defaults=>[".true."]},
1241
+ :numult=>
1242
+ {:should_include=>"true",
1243
+ :description=>" multiplier of collision frequency for testing",
1244
+ :help=>" multiplier of collision frequency for testing",
1245
+ :code_name=>:numult,
1246
+ :must_pass=>
1247
+ [{:test=>"kind_of? Numeric",
1248
+ :explanation=>
1249
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
1250
+ :type=>:Float,
1251
+ :autoscanned_defaults=>[1.0]},
1252
+ :electrostatic=>
1253
+ {:should_include=>"true",
1254
+ :description=>" if true, set beta to zero (or very small)",
1255
+ :help=>" if true, set beta to zero (or very small)",
1256
+ :code_name=>:electrostatic,
1257
+ :must_pass=>
1258
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
1259
+ :explanation=>
1260
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
1261
+ :type=>:Fortran_Bool,
1262
+ :autoscanned_defaults=>[".true."]}}}}