gs2crmod 0.11.51 → 0.11.53

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.
data/Gemfile CHANGED
@@ -9,8 +9,10 @@ source "http://rubygems.org"
9
9
  # Add dependencies to develop your gem here.
10
10
  # Include everything needed to run rake, tests, features, etc.
11
11
  group :development do
12
- gem "shoulda", ">= 0"
12
+ gem "shoulda", " 3.0.1"
13
13
  gem "rdoc", "~> 3.12"
14
14
  gem "bundler", "> 1.0.0"
15
15
  gem "jeweler", ">= 1.8.4"
16
+ gem "minitest", "~> 4"
17
+ #gem "rake-compiler"
16
18
  end
data/Rakefile CHANGED
@@ -24,6 +24,7 @@ Jeweler::Tasks.new do |gem|
24
24
  gem.extensions = "ext/extconf.rb"
25
25
  gem.files.include('ext/*.c', 'include/*.h', 'ext/*.rb')
26
26
  gem.required_ruby_version = '>= 1.9.1'
27
+ gem.files.exclude 'test/**/*'
27
28
  # dependencies defined in Gemfile
28
29
  end
29
30
  Jeweler::RubygemsDotOrgTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.11.51
1
+ 0.11.53
data/gs2crmod.gemspec CHANGED
@@ -2,17 +2,14 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: gs2crmod 0.11.51 ruby lib
6
- # stub: ext/extconf.rb
7
5
 
8
6
  Gem::Specification.new do |s|
9
7
  s.name = "gs2crmod"
10
- s.version = "0.11.51"
8
+ s.version = "0.11.53"
11
9
 
12
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
13
- s.require_paths = ["lib"]
14
11
  s.authors = ["Edmund Highcock", "Ferdinand van Wyk"]
15
- s.date = "2014-07-03"
12
+ s.date = "2014-07-06"
16
13
  s.description = "GS2 is a gyrokinetic flux tube initial value turbulence code which can be used for fusion or astrophysical plasmas. CodeRunner is a framework for the automated running and analysis of large simulations. This module allows GS2 (and its sister code AstroGK) to harness the power of the CodeRunner framework."
17
14
  s.email = "edmundhighcock@sourceforge.net"
18
15
  s.extensions = ["ext/extconf.rb"]
@@ -74,49 +71,46 @@ Gem::Specification.new do |s|
74
71
  "sync_variables/helper.rb",
75
72
  "sync_variables/sync_variables.rb",
76
73
  "sync_variables_sgk/helper.rb",
77
- "sync_variables_sgk/sync_variables_sgk.rb",
78
- "test/agk_slab_itg_low_kperp.in",
79
- "test/agk_slab_itg_low_kperp.tgz",
80
- "test/cyclone_low_res.in",
81
- "test/cyclone_low_res.tgz",
82
- "test/helper.rb",
83
- "test/slab_itg/dummy",
84
- "test/test_gs2crmod.rb"
74
+ "sync_variables_sgk/sync_variables_sgk.rb"
85
75
  ]
86
76
  s.homepage = "http://gs2crmod.sourceforge.net"
87
77
  s.licenses = ["GSLv3"]
78
+ s.require_paths = ["lib"]
88
79
  s.required_ruby_version = Gem::Requirement.new(">= 1.9.1")
89
- s.rubygems_version = "2.2.2"
80
+ s.rubygems_version = "1.8.11"
90
81
  s.summary = "Module to allow CodeRunner to run and analyse the GS2 and AstroGK codes."
91
82
 
92
83
  if s.respond_to? :specification_version then
93
- s.specification_version = 4
84
+ s.specification_version = 3
94
85
 
95
86
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
96
87
  s.add_runtime_dependency(%q<coderunner>, [">= 0.14.15"])
97
88
  s.add_runtime_dependency(%q<rubyhacks>, [">= 0.1.2"])
98
89
  s.add_runtime_dependency(%q<ruby-netcdf-updated>, [">= 0.6.6.1"])
99
- s.add_development_dependency(%q<shoulda>, [">= 0"])
90
+ s.add_development_dependency(%q<shoulda>, ["= 3.0.1"])
100
91
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
101
92
  s.add_development_dependency(%q<bundler>, ["> 1.0.0"])
102
93
  s.add_development_dependency(%q<jeweler>, [">= 1.8.4"])
94
+ s.add_development_dependency(%q<minitest>, ["~> 4"])
103
95
  else
104
96
  s.add_dependency(%q<coderunner>, [">= 0.14.15"])
105
97
  s.add_dependency(%q<rubyhacks>, [">= 0.1.2"])
106
98
  s.add_dependency(%q<ruby-netcdf-updated>, [">= 0.6.6.1"])
107
- s.add_dependency(%q<shoulda>, [">= 0"])
99
+ s.add_dependency(%q<shoulda>, ["= 3.0.1"])
108
100
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
109
101
  s.add_dependency(%q<bundler>, ["> 1.0.0"])
110
102
  s.add_dependency(%q<jeweler>, [">= 1.8.4"])
103
+ s.add_dependency(%q<minitest>, ["~> 4"])
111
104
  end
112
105
  else
113
106
  s.add_dependency(%q<coderunner>, [">= 0.14.15"])
114
107
  s.add_dependency(%q<rubyhacks>, [">= 0.1.2"])
115
108
  s.add_dependency(%q<ruby-netcdf-updated>, [">= 0.6.6.1"])
116
- s.add_dependency(%q<shoulda>, [">= 0"])
109
+ s.add_dependency(%q<shoulda>, ["= 3.0.1"])
117
110
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
118
111
  s.add_dependency(%q<bundler>, ["> 1.0.0"])
119
112
  s.add_dependency(%q<jeweler>, [">= 1.8.4"])
113
+ s.add_dependency(%q<minitest>, ["~> 4"])
120
114
  end
121
115
  end
122
116
 
@@ -45,6 +45,7 @@ def auto_axiskits(name, options)
45
45
  'spectrum_over_kx' => ["Spectrum at t = #{sprintf("%.3f" ,(options[:t] or list(:t)[options[:t_index]] or list(:t).values.max))}", '', 1],
46
46
  'zonal_spectrum' => ["Zonal spectrum at t = #{sprintf("%.3f" ,(options[:t] or list(:t)[options[:t_index]] or list(:t).values.max))}", '', 1],
47
47
  'spectrum_over_ky' => ["Spectrum at t = #{sprintf("%.3f" ,(options[:t] or list(:t)[options[:t_index]] or list(:t).values.max))}", '', 1],
48
+ 'es_heat_over_kx' => ["Heat Flux at t = #{sprintf("%.3f" ,(options[:t] or list(:t)[options[:t_index]] or list(:t).values.max))}", 'Q_gB', 1],
48
49
  'es_heat_over_ky' => ["Heat Flux at t = #{sprintf("%.3f" ,(options[:t] or list(:t)[options[:t_index]] or list(:t).values.max))}", 'Q_gB', 1],
49
50
  'es_heat_flux_over_ky_over_kx' => ["Heat flux at t = #{sprintf("%.3f" ,(options[:t] or list(:t)[options[:t_index]] or list(:t).values.max))}", '', 2],
50
51
  'spectrum_over_kpar' => ["Spectrum at t = #{sprintf("%.3f" ,(options[:t] or list(:t)[options[:t_index]] or list(:t).values.max))}", '', 1],
@@ -348,7 +349,7 @@ module GraphKits
348
349
 
349
350
  alias :eigenfunction_graphkit :efn_graphkit
350
351
 
351
- def es_heat_flux_vs_ky_vs_kx_graphkit(options={})
352
+ def es_heat_vs_ky_vs_kx_graphkit(options={})
352
353
  case options[:command]
353
354
  when :help
354
355
  return "Graph of electrostatic contribution to heat flux at a given time vs kx and ky"
@@ -365,18 +366,28 @@ module GraphKits
365
366
  end
366
367
  end
367
368
 
369
+ def es_heat_vs_kx_graphkit(options={})
370
+ case options[:command]
371
+ when :help
372
+ return "Heat flux vs kx"
373
+ when :options
374
+ return [:species_index]
375
+ else
376
+ return es_heat_flux_vs_kxy_graphkit(options.absorb({direction: :kx}))
377
+ end
378
+ end
368
379
  def es_heat_vs_ky_graphkit(options={})
369
380
  case options[:command]
370
381
  when :help
371
382
  return "Heat flux vs ky"
372
383
  when :options
373
- return [:ky_index, :species_index]
384
+ return [:species_index]
374
385
  else
375
386
  return es_heat_flux_vs_kxy_graphkit(options.absorb({direction: :ky}))
376
387
  end
377
388
  end
378
389
 
379
- def es_heat_vs_kxy_graphkit(options={})
390
+ def es_heat_flux_vs_kxy_graphkit(options={})
380
391
  case options[:command]
381
392
  when :help
382
393
  return "Heat flux vs options[:direction] (kx or ky)"
@@ -384,12 +395,12 @@ module GraphKits
384
395
  return [:ky_index, :species_index]
385
396
  else
386
397
  kxy = options[:direction]||options[:kxy]
387
- kit = GraphKit.autocreate({x: axiskit(kxy.to_s, options), y: axiskit("es_flux_vs_#{kxy}", options)})
398
+ kit = GraphKit.autocreate({x: axiskit(kxy.to_s, options), y: axiskit("es_heat_over_#{kxy}", options)})
388
399
  kit.title = "Heat flux vs #{kxy} for species #{options[:species_index]}"
389
400
  kit.file_name = options[:graphkit_name] + options[:t_index].to_s
390
401
  kit.data[0].with = 'lp'
391
- #kit.ylabel = "Phi^2 #{kxy}^2"
392
402
  kit.pointsize = 2.0
403
+ return kit
393
404
  end
394
405
  end
395
406
 
@@ -449,6 +449,47 @@ module GSLVectors
449
449
  end
450
450
  private :es_heat_by_kxy_over_time_gsl_vector
451
451
 
452
+ def es_heat_over_kx_gsl_vector(options)
453
+ options[:direction] = :kx
454
+ es_heat_over_kxy_gsl_vector(options)
455
+ end
456
+ def es_heat_over_ky_gsl_vector(options)
457
+ options[:direction] = :ky
458
+ es_heat_over_kxy_gsl_vector(options)
459
+ end
460
+
461
+ #This function will output the heat flux as a function of kx or ky.
462
+ #Default behaviour will be to average the heat flux over the time domain.
463
+ def es_heat_over_kxy_gsl_vector(options)
464
+ Dir.chdir(@directory) do
465
+ kxy = options[:direction]
466
+ raise "Please provide species_index " unless options[:species_index]
467
+ if kxy==:ky
468
+ es_heat = (netcdf_file.var('es_heat_by_k').get({'start' => [0,0,options[:species_index]-1, 0], 'end' => [-1,-1,options[:species_index]-1, -1]})) #index = [kx,ky,spec,t]
469
+ #Need to average over time and sum over kx
470
+ shape = es_heat.shape
471
+ es_heat_av = []; temp = [];
472
+ for iy in 0...shape[1]
473
+ for ix in 0...shape[0]
474
+ temp[ix] = es_heat[ix,iy,0,0..-1].sum / shape[3]
475
+ end
476
+ es_heat_av[iy] = temp.sum
477
+ end
478
+ return es_heat_av.to_gslv
479
+ else
480
+ es_heat = (netcdf_file.var('es_heat_by_k').get({'start' => [0,0,options[:species_index]-1, 0], 'end' => [-1,-1,options[:species_index]-1, -1]})) #index = [kx,ky,spec,t]
481
+ shape = es_heat.shape
482
+ es_heat_av = []; temp = [];
483
+ for ix in 0...shape[0]
484
+ for iy in 0...shape[1]
485
+ temp[iy] = es_heat[ix,iy,0,0..-1].sum / shape[3]
486
+ end
487
+ es_heat_av[ix] = temp.sum
488
+ end
489
+ return es_heat_av.to_gslv
490
+ end
491
+ end
492
+ end
452
493
  def phi2_by_kx_over_time_gsl_vector(options)
453
494
  options[:direction] = :kx
454
495
  phi2_by_kxy_over_time_gsl_vector(options)
@@ -402,7 +402,7 @@
402
402
  :should_include=>"true",
403
403
  :description=>"",
404
404
  :tests=>["Tst::FLOAT"],
405
- :autoscanned_defaults=>[0.0, 0.75],
405
+ :autoscanned_defaults=>[0.0, 0.20013433062472832, 0.75],
406
406
  :must_pass=>
407
407
  [{:test=>"kind_of? Float or kind_of? Integer",
408
408
  :explanation=>
@@ -442,7 +442,7 @@
442
442
  :description=>
443
443
  "Flux surface label. Usually rho = diameter/diameter of LCFS",
444
444
  :tests=>["Tst::FLOAT"],
445
- :autoscanned_defaults=>[0.5, 0.6, 0.8, 1.0],
445
+ :autoscanned_defaults=>[0.33, 0.5, 0.6, 0.8, 1.0],
446
446
  :must_pass=>
447
447
  [{:test=>"kind_of? Float or kind_of? Integer",
448
448
  :explanation=>
@@ -456,7 +456,7 @@
456
456
  :description=>
457
457
  "Sets value of the safety factor when using local toroidal equilibrium model.",
458
458
  :tests=>["Tst::FLOAT"],
459
- :autoscanned_defaults=>[1.5],
459
+ :autoscanned_defaults=>[1.147066305282792, 1.5],
460
460
  :must_pass=>
461
461
  [{:test=>"kind_of? Float or kind_of? Integer",
462
462
  :explanation=>
@@ -470,7 +470,7 @@
470
470
  :description=>
471
471
  "Sets local elongation when local toroidal equilibrium is specified.",
472
472
  :tests=>["Tst::FLOAT"],
473
- :autoscanned_defaults=>[1.0],
473
+ :autoscanned_defaults=>[1.0, 1.3185652797218639],
474
474
  :must_pass=>
475
475
  [{:test=>"kind_of? Float or kind_of? Integer",
476
476
  :explanation=>
@@ -483,7 +483,7 @@
483
483
  :should_include=>"true",
484
484
  :description=>"akappri = dkappa/drho",
485
485
  :tests=>["Tst::FLOAT"],
486
- :autoscanned_defaults=>[0.0],
486
+ :autoscanned_defaults=>[-0.006360432757579471, 0.0],
487
487
  :must_pass=>
488
488
  [{:test=>"kind_of? Float or kind_of? Integer",
489
489
  :explanation=>
@@ -496,7 +496,7 @@
496
496
  :should_include=>"true",
497
497
  :description=>"tri = arcsin[(R(max(Z))-R_major)/r_mid]",
498
498
  :tests=>["Tst::FLOAT"],
499
- :autoscanned_defaults=>[0.0],
499
+ :autoscanned_defaults=>[0.0, 0.004358569789972528],
500
500
  :must_pass=>
501
501
  [{:test=>"kind_of? Float or kind_of? Integer",
502
502
  :explanation=>
@@ -509,7 +509,7 @@
509
509
  :should_include=>"true",
510
510
  :description=>"tripri = dtri/drho",
511
511
  :tests=>["Tst::FLOAT"],
512
- :autoscanned_defaults=>[0.0],
512
+ :autoscanned_defaults=>[0.0, 0.12435021170306493],
513
513
  :must_pass=>
514
514
  [{:test=>"kind_of? Float or kind_of? Integer",
515
515
  :explanation=>
@@ -522,7 +522,7 @@
522
522
  :should_include=>"true",
523
523
  :description=>"shift = -R q**2 dbeta/drho (>0)",
524
524
  :tests=>["Tst::FLOAT"],
525
- :autoscanned_defaults=>[0.0, 0],
525
+ :autoscanned_defaults=>[-0.17067265951553612, 0.0, 0],
526
526
  :must_pass=>
527
527
  [{:test=>"kind_of? Float or kind_of? Integer",
528
528
  :explanation=>
@@ -642,7 +642,29 @@
642
642
  :autoscanned_defaults=>[".false."],
643
643
  :type=>:Fortran_Bool,
644
644
  :code_name=>:gb_to_cv,
645
- :module=>:theta_grid}}},
645
+ :module=>:theta_grid},
646
+ :cvdriftknob=>
647
+ {:should_include=>"true",
648
+ :description=>"",
649
+ :help=>"",
650
+ :code_name=>:cvdriftknob,
651
+ :must_pass=>
652
+ [{:test=>"kind_of? Numeric",
653
+ :explanation=>
654
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
655
+ :type=>:Float,
656
+ :autoscanned_defaults=>[1.0]},
657
+ :gbdriftknob=>
658
+ {:should_include=>"true",
659
+ :description=>"",
660
+ :help=>"",
661
+ :code_name=>:gbdriftknob,
662
+ :must_pass=>
663
+ [{:test=>"kind_of? Numeric",
664
+ :explanation=>
665
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
666
+ :type=>:Float,
667
+ :autoscanned_defaults=>[1.0]}}},
646
668
  :theta_grid_salpha_knobs=>
647
669
  {:description=>"",
648
670
  :should_include=>"true",
@@ -937,7 +959,7 @@
937
959
  :should_include=>"true",
938
960
  :description=>nil,
939
961
  :tests=>["Tst::FLOAT"],
940
- :autoscanned_defaults=>[0.8, 1],
962
+ :autoscanned_defaults=>[0.0, 0.8, 1],
941
963
  :must_pass=>
942
964
  [{:test=>"kind_of? Float or kind_of? Integer",
943
965
  :explanation=>
@@ -1163,7 +1185,17 @@
1163
1185
  :explanation=>"This variable must be an integer."}],
1164
1186
  :autoscanned_defaults=>[],
1165
1187
  :type=>:Integer,
1166
- :code_name=>:invLp_input}}},
1188
+ :code_name=>:invLp_input},
1189
+ :chs_eq=>
1190
+ {:should_include=>"true",
1191
+ :description=>"Use equilbrium data from the CHEASE file ogyropsi.dat",
1192
+ :help=>"Use equilbrium data from the CHEASE file ogyropsi.dat",
1193
+ :code_name=>:chs_eq,
1194
+ :must_pass=>
1195
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
1196
+ :explanation=>
1197
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
1198
+ :type=>:Fortran_Bool}}},
1167
1199
  :le_grids_knobs=>
1168
1200
  {:description=>"PITCH ANGLE/ENERGY GRID SETUP",
1169
1201
  :should_include=>"true",
@@ -1762,6 +1794,28 @@
1762
1794
  :explanation=>
1763
1795
  "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
1764
1796
  :type=>:Fortran_Bool,
1797
+ :autoscanned_defaults=>[".false."]},
1798
+ :wfb_cmr=>
1799
+ {:should_include=>"true",
1800
+ :description=>"",
1801
+ :help=>"",
1802
+ :code_name=>:wfb_cmr,
1803
+ :must_pass=>
1804
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
1805
+ :explanation=>
1806
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
1807
+ :type=>:Fortran_Bool,
1808
+ :autoscanned_defaults=>[".false."]},
1809
+ :opt_source=>
1810
+ {:should_include=>"true",
1811
+ :description=>"",
1812
+ :help=>"",
1813
+ :code_name=>:opt_source,
1814
+ :must_pass=>
1815
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
1816
+ :explanation=>
1817
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
1818
+ :type=>:Fortran_Bool,
1765
1819
  :autoscanned_defaults=>[".false."]}}},
1766
1820
  :fields_knobs=>
1767
1821
  {:description=>"ALGORITHMIC CHOICES",
@@ -1863,6 +1917,28 @@
1863
1917
  :explanation=>
1864
1918
  "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
1865
1919
  :type=>:Fortran_Bool,
1920
+ :autoscanned_defaults=>[".false."]},
1921
+ :field_local_allreduce=>
1922
+ {:should_include=>"true",
1923
+ :description=>"",
1924
+ :help=>"",
1925
+ :code_name=>:field_local_allreduce,
1926
+ :must_pass=>
1927
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
1928
+ :explanation=>
1929
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
1930
+ :type=>:Fortran_Bool,
1931
+ :autoscanned_defaults=>[".false."]},
1932
+ :field_local_allreduce_sub=>
1933
+ {:should_include=>"true",
1934
+ :description=>"",
1935
+ :help=>"",
1936
+ :code_name=>:field_local_allreduce_sub,
1937
+ :must_pass=>
1938
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
1939
+ :explanation=>
1940
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
1941
+ :type=>:Fortran_Bool,
1866
1942
  :autoscanned_defaults=>[".false."]}}},
1867
1943
  :knobs=>
1868
1944
  {:description=>"",
@@ -2126,6 +2202,18 @@
2126
2202
  :explanation=>
2127
2203
  "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
2128
2204
  :type=>:Fortran_Bool,
2205
+ :autoscanned_defaults=>[".false."]},
2206
+ :do_eigsolve=>
2207
+ {:should_include=>"true",
2208
+ :description=>"",
2209
+ :help=>
2210
+ "A new eigenvalue solve mode has been implemented. Contact David Dickinson for details.",
2211
+ :code_name=>:do_eigsolve,
2212
+ :must_pass=>
2213
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
2214
+ :explanation=>
2215
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
2216
+ :type=>:Fortran_Bool,
2129
2217
  :autoscanned_defaults=>[".false."]}}},
2130
2218
  :reinit_knobs=>
2131
2219
  {:description=>"",
@@ -2327,6 +2415,28 @@
2327
2415
  :explanation=>
2328
2416
  "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
2329
2417
  :type=>:Fortran_Bool,
2418
+ :autoscanned_defaults=>[".false."]},
2419
+ :opt_redist_persist=>
2420
+ {:should_include=>"true",
2421
+ :description=>"",
2422
+ :help=>"",
2423
+ :code_name=>:opt_redist_persist,
2424
+ :must_pass=>
2425
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
2426
+ :explanation=>
2427
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
2428
+ :type=>:Fortran_Bool,
2429
+ :autoscanned_defaults=>[".false."]},
2430
+ :opt_redist_persist_overlap=>
2431
+ {:should_include=>"true",
2432
+ :description=>"",
2433
+ :help=>"",
2434
+ :code_name=>:opt_redist_persist_overlap,
2435
+ :must_pass=>
2436
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
2437
+ :explanation=>
2438
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
2439
+ :type=>:Fortran_Bool,
2330
2440
  :autoscanned_defaults=>[".false."]}}},
2331
2441
  :collisions_knobs=>
2332
2442
  {:description=>"COLLISIONS",
@@ -4792,7 +4902,18 @@
4792
4902
  [{:test=>"kind_of? Integer",
4793
4903
  :explanation=>"This variable must be an integer."}],
4794
4904
  :type=>:Integer,
4795
- :autoscanned_defaults=>[4000]}},
4905
+ :autoscanned_defaults=>[10000]},
4906
+ :use_nonlin_convergence=>
4907
+ {:should_include=>"true",
4908
+ :description=>"",
4909
+ :help=>"",
4910
+ :code_name=>:use_nonlin_convergence,
4911
+ :must_pass=>
4912
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
4913
+ :explanation=>
4914
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
4915
+ :type=>:Fortran_Bool,
4916
+ :autoscanned_defaults=>[".false."]}},
4796
4917
  :help=>
4797
4918
  "Controls what information is output by GS2 during and at the end of a simulation."},
4798
4919
  :testgridgen=>
@@ -6118,4 +6239,112 @@
6118
6239
  :explanation=>
6119
6240
  "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
6120
6241
  :type=>:Fortran_Bool,
6121
- :autoscanned_defaults=>[".true."]}}}}
6242
+ :autoscanned_defaults=>[".true."]}}},
6243
+ :eigval_knobs=>
6244
+ {:description=>"",
6245
+ :should_include=>"true",
6246
+ :variables=>
6247
+ {:n_eig=>
6248
+ {:should_include=>"true",
6249
+ :description=>"",
6250
+ :help=>"",
6251
+ :code_name=>:n_eig,
6252
+ :must_pass=>
6253
+ [{:test=>"kind_of? Integer",
6254
+ :explanation=>"This variable must be an integer."}],
6255
+ :type=>:Integer,
6256
+ :autoscanned_defaults=>[1]},
6257
+ :max_iter=>
6258
+ {:should_include=>"true",
6259
+ :description=>"",
6260
+ :help=>"",
6261
+ :code_name=>:max_iter,
6262
+ :must_pass=>
6263
+ [{:test=>"kind_of? Integer",
6264
+ :explanation=>"This variable must be an integer."}],
6265
+ :type=>:Integer,
6266
+ :autoscanned_defaults=>["PETSC_DECIDE"]},
6267
+ :tolerance=>
6268
+ {:should_include=>"true",
6269
+ :description=>"",
6270
+ :help=>"",
6271
+ :code_name=>:tolerance,
6272
+ :must_pass=>
6273
+ [{:test=>"kind_of? Numeric",
6274
+ :explanation=>
6275
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
6276
+ :type=>:Float,
6277
+ :autoscanned_defaults=>[1.0e-06]},
6278
+ :solver_option=>
6279
+ {:should_include=>"true",
6280
+ :description=>"",
6281
+ :help=>"",
6282
+ :code_name=>:solver_option,
6283
+ :must_pass=>
6284
+ [{:test=>"kind_of? String",
6285
+ :explanation=>"This variable must be a string."}],
6286
+ :type=>:String,
6287
+ :autoscanned_defaults=>["default"]},
6288
+ :extraction_option=>
6289
+ {:should_include=>"true",
6290
+ :description=>"",
6291
+ :help=>"",
6292
+ :code_name=>:extraction_option,
6293
+ :must_pass=>
6294
+ [{:test=>"kind_of? String",
6295
+ :explanation=>"This variable must be a string."}],
6296
+ :type=>:String,
6297
+ :autoscanned_defaults=>["default"]},
6298
+ :which_option=>
6299
+ {:should_include=>"true",
6300
+ :description=>"",
6301
+ :help=>"",
6302
+ :code_name=>:which_option,
6303
+ :must_pass=>
6304
+ [{:test=>"kind_of? String",
6305
+ :explanation=>"This variable must be a string."}],
6306
+ :type=>:String,
6307
+ :autoscanned_defaults=>["default"]},
6308
+ :transform_option=>
6309
+ {:should_include=>"true",
6310
+ :description=>"",
6311
+ :help=>"",
6312
+ :code_name=>:transform_option,
6313
+ :must_pass=>
6314
+ [{:test=>"kind_of? String",
6315
+ :explanation=>"This variable must be a string."}],
6316
+ :type=>:String,
6317
+ :autoscanned_defaults=>["default"]},
6318
+ :targ_re=>
6319
+ {:should_include=>"true",
6320
+ :description=>"",
6321
+ :help=>"",
6322
+ :code_name=>:targ_re,
6323
+ :must_pass=>
6324
+ [{:test=>"kind_of? Numeric",
6325
+ :explanation=>
6326
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
6327
+ :type=>:Float,
6328
+ :autoscanned_defaults=>[0.5]},
6329
+ :targ_im=>
6330
+ {:should_include=>"true",
6331
+ :description=>"",
6332
+ :help=>"",
6333
+ :code_name=>:targ_im,
6334
+ :must_pass=>
6335
+ [{:test=>"kind_of? Numeric",
6336
+ :explanation=>
6337
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
6338
+ :type=>:Float,
6339
+ :autoscanned_defaults=>[0.5]},
6340
+ :use_ginit=>
6341
+ {:should_include=>"true",
6342
+ :description=>"",
6343
+ :help=>"",
6344
+ :code_name=>:use_ginit,
6345
+ :must_pass=>
6346
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
6347
+ :explanation=>
6348
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
6349
+ :type=>:Fortran_Bool,
6350
+ :autoscanned_defaults=>[".false."]}}}}