gs2crmod 0.11.51 → 0.11.53

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