gs2crmod 0.11.59 → 0.11.60

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 11ed845e05afb808191f73d4ace5d22d5e6b9b97
4
- data.tar.gz: ce01b9697ac0e72ec05ac109e29d0a9d042e1024
3
+ metadata.gz: 9089e39649c5f7f9a5c4ae0d553828276f388a7c
4
+ data.tar.gz: 357ad80ed05f78cd5f5976c85c6bd77b5ea98ae5
5
5
  SHA512:
6
- metadata.gz: dd9ef99e446880c00cf1499f7dfba2247dda852dca510a8b9698bc0d4c8fbaa762ac3b4c36999178860d5fba262b09a17f92cdc6add814fd4497bcea447b8c2a
7
- data.tar.gz: fb1685f7c6480bb3bbe00f40375df7e662f5d1a79d58a8cefb2067330b13cc3b5cc9a6f4db7a23ae81531d5c61cb2ede0ddd07bfe340f00ada21c625db2236e9
6
+ metadata.gz: 96561c96204b054641953da8c1cbd739ae90c3d4eacfcf55f421367c4f63b2e6c99d265b8283c54be0d833d4251153c53d5bd39c9802c646f5eb09cd9cbcb753
7
+ data.tar.gz: cd828d57eb5c8ced190c465728bcc5e3e537bf194bc20aa04880d31357e89a9c92a745a932615e2e05ba1a1f21c71278375e84bb8cc63c765a22f47f0746c799
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.11.59
1
+ 0.11.60
data/gs2crmod.gemspec CHANGED
@@ -2,12 +2,12 @@
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.59 ruby lib
5
+ # stub: gs2crmod 0.11.60 ruby lib
6
6
  # stub: ext/extconf.rb
7
7
 
8
8
  Gem::Specification.new do |s|
9
9
  s.name = "gs2crmod"
10
- s.version = "0.11.59"
10
+ s.version = "0.11.60"
11
11
 
12
12
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
13
13
  s.require_paths = ["lib"]
@@ -274,6 +274,50 @@ def check_parameters
274
274
  error("Must set z = -1 for electron species.") if (@type_2 and @z_2 and @type_2=='electron' and @z_2 != -1)
275
275
 
276
276
 
277
+ #################
278
+ # Optimisations #
279
+ #################
280
+
281
+ if CODE_OPTIONS[:gs2] and CODE_OPTIONS[:gs2][:show_opt]
282
+ eputs("Optimisation Summary:")
283
+ optimisation_flags.each do |flag|
284
+ eputs("------------------------- #{flag}: #{send(flag)}\n* #{rcp.variables_with_help[flag].gsub(/\n/, "\n\t")}")
285
+ end
286
+ #not_set = [:operator, :save_for_restart, :write_nl_flux, :write_final_fields, :write_final_moments].find_all do |diagnostic|
287
+ #not (send(diagnostic) and send(diagnostic).fortran_true?)
288
+ #end
289
+
290
+ #if not_set.size > 0
291
+ #str = not_set.inject("") do |s, diagnostic|
292
+ #s + "\n\t#{diagnostic} --- " + rcp.namelists[diagnostics_namelist][:variables][diagnostic][:description] rescue s
293
+ #end
294
+ #warning("The following useful diagnostics were not set:" + str) if str.length > 0
295
+ #end
296
+ end
297
+
298
+
299
+
300
+
301
+ end
302
+
303
+ def optimisation_flags
304
+ [
305
+ :opt_redist_persist,
306
+ :opt_redist_persist_overlap,
307
+ :opt_redist_nbk,
308
+ :opt_redist_init,
309
+ :intmom_sub,
310
+ :intspec_sub,
311
+ #:local_field_solve,
312
+ :do_smart_update,
313
+ :field_subgath,
314
+ :field_option,
315
+ :field_local_allreduce,
316
+ :field_local_allreduce_sub,
317
+ :minnrow,
318
+ :opt_init_bc,
319
+ :opt_source
320
+ ]
277
321
  end
278
322
 
279
323
  # A hash which gives the actual numbers of gridpoints indexed by their corresponding letters in the layout string.
@@ -402,7 +402,7 @@
402
402
  :should_include=>"true",
403
403
  :description=>"",
404
404
  :tests=>["Tst::FLOAT"],
405
- :autoscanned_defaults=>[0.0, 0.20013433062472832, 0.75],
405
+ :autoscanned_defaults=>[0.0, 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.33, 0.5, 0.6, 0.8, 1.0],
445
+ :autoscanned_defaults=>[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.147066305282792, 1.5],
459
+ :autoscanned_defaults=>[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, 1.3185652797218639],
473
+ :autoscanned_defaults=>[1.0],
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.006360432757579471, 0.0],
486
+ :autoscanned_defaults=>[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, 0.004358569789972528],
499
+ :autoscanned_defaults=>[0.0],
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, 0.12435021170306493],
512
+ :autoscanned_defaults=>[0.0],
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.17067265951553612, 0.0, 0],
525
+ :autoscanned_defaults=>[0.0, 0],
526
526
  :must_pass=>
527
527
  [{:test=>"kind_of? Float or kind_of? Integer",
528
528
  :explanation=>
@@ -959,7 +959,7 @@
959
959
  :should_include=>"true",
960
960
  :description=>nil,
961
961
  :tests=>["Tst::FLOAT"],
962
- :autoscanned_defaults=>[0.0, 0.8, 1],
962
+ :autoscanned_defaults=>[0.8, 1],
963
963
  :must_pass=>
964
964
  [{:test=>"kind_of? Float or kind_of? Integer",
965
965
  :explanation=>
@@ -1043,7 +1043,7 @@
1043
1043
  :should_include=>"true",
1044
1044
  :description=>nil,
1045
1045
  :tests=>["Tst::FORTRAN_BOOL"],
1046
- :autoscanned_defaults=>[".true."],
1046
+ :autoscanned_defaults=>[".false.", ".true."],
1047
1047
  :must_pass=>
1048
1048
  [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
1049
1049
  :explanation=>
@@ -1195,7 +1195,8 @@
1195
1195
  [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
1196
1196
  :explanation=>
1197
1197
  "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
1198
- :type=>:Fortran_Bool}}},
1198
+ :type=>:Fortran_Bool,
1199
+ :autoscanned_defaults=>[".false.", ".true."]}}},
1199
1200
  :le_grids_knobs=>
1200
1201
  {:description=>"PITCH ANGLE/ENERGY GRID SETUP",
1201
1202
  :should_include=>"true",
@@ -1808,14 +1809,28 @@
1808
1809
  :autoscanned_defaults=>[".false."]},
1809
1810
  :opt_source=>
1810
1811
  {:should_include=>"true",
1811
- :description=>"If true then use an optimised linear source calculation which uses pre-calculated coefficients.",
1812
- :help=>"If true then use an optimised linear source calculation which uses pre-calculated coefficients, calculates both sigma together and skips work associated with empty fields. Can contribute 10-25% savings for linear electrostatic collisionless simulations. For more complicated runs the savings will likely be less. If enabled memory usage will increase due to using an additional array of size 2-4 times gnew. Can potentially slow down certain runs.",
1812
+ :description=>
1813
+ "If true then use an optimised linear source calculation which uses pre-calculated coefficients.",
1814
+ :help=>
1815
+ "If true then use an optimised linear source calculation which uses pre-calculated coefficients, calculates both sigma together and skips work associated with empty fields. Can contribute 10-25% savings for linear electrostatic collisionless simulations. For more complicated runs the savings will likely be less. If enabled memory usage will increase due to using an additional array of size 2-4 times gnew. Can potentially slow down certain runs.",
1813
1816
  :code_name=>:opt_source,
1814
1817
  :must_pass=>
1815
1818
  [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
1816
1819
  :explanation=>
1817
1820
  "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
1818
1821
  :type=>:Fortran_Bool,
1822
+ :autoscanned_defaults=>[".false."]},
1823
+ :zero_forbid=>
1824
+ {:should_include=>"true",
1825
+ :description=>"",
1826
+ :help=>
1827
+ "If true then force `gnew=0` in the forbidden region at the end of invert_rhs_1 (this is the original behaviour).\n*Nothing should depend on the forbidden region so g should be 0 here and if it's not for some reason then it shouldn't impact on results. If the results of your simulation depend upon this flag then something has likely gone wrong somewhere.\n\n",
1828
+ :code_name=>:zero_forbid,
1829
+ :must_pass=>
1830
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
1831
+ :explanation=>
1832
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
1833
+ :type=>:Fortran_Bool,
1819
1834
  :autoscanned_defaults=>[".false."]}}},
1820
1835
  :fields_knobs=>
1821
1836
  {:description=>"ALGORITHMIC CHOICES",
@@ -1921,7 +1936,8 @@
1921
1936
  :field_local_allreduce=>
1922
1937
  {:should_include=>"true",
1923
1938
  :description=>"",
1924
- :help=>"",
1939
+ :help=>
1940
+ "Set to true to use an allreduce (on mp_comm) in field calculation ([[field_option]]='local' only) rather than a reduction on a sub-communicator followed by a global broadcast.\n* Typically a little faster than default performance but may depend on MPI implementation. ",
1925
1941
  :code_name=>:field_local_allreduce,
1926
1942
  :must_pass=>
1927
1943
  [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
@@ -1932,7 +1948,8 @@
1932
1948
  :field_local_allreduce_sub=>
1933
1949
  {:should_include=>"true",
1934
1950
  :description=>"",
1935
- :help=>"",
1951
+ :help=>
1952
+ "Set to true, along with [[field_local_allreduce]] and [[intspec_sub]], to replace the allreduce used in field calculation with an allreduce on a sub-communicator followed by a reduction on a \"perpendicular\" communicator.\n*Typically a bit faster than default and scales slightly more efficiently.\n*Note if this option is active only proc0 has knowledge of the full field arrays. Other processors know the full field for any supercell (connected x-y domains) for which it has any of the xy indices local in the g_lo layout. ",
1936
1953
  :code_name=>:field_local_allreduce_sub,
1937
1954
  :must_pass=>
1938
1955
  [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
@@ -2205,16 +2222,28 @@
2205
2222
  :autoscanned_defaults=>[".false."]},
2206
2223
  :do_eigsolve=>
2207
2224
  {:should_include=>"true",
2208
- :description=>"",
2225
+ :description=>
2226
+ "If true then use eigensolver instead of initial value solver.",
2209
2227
  :help=>
2210
- "A new eigenvalue solve mode has been implemented. Contact David Dickinson for details.",
2228
+ "If true then use eigensolver instead of initial value solver. Only valid for executables compiled with WITH_EIG=on and linked with PETSC+SLEPC libraries. Should only be used in linear simulations with a single ky and theta0.",
2211
2229
  :code_name=>:do_eigsolve,
2212
2230
  :must_pass=>
2213
2231
  [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
2214
2232
  :explanation=>
2215
2233
  "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
2216
2234
  :type=>:Fortran_Bool,
2217
- :autoscanned_defaults=>[".false."]}}},
2235
+ :autoscanned_defaults=>[".false."]},
2236
+ :immediate_reset=>
2237
+ {:should_include=>"true",
2238
+ :description=>"",
2239
+ :help=>"",
2240
+ :code_name=>:immediate_reset,
2241
+ :must_pass=>
2242
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
2243
+ :explanation=>
2244
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
2245
+ :type=>:Fortran_Bool,
2246
+ :autoscanned_defaults=>[".true."]}}},
2218
2247
  :reinit_knobs=>
2219
2248
  {:description=>"",
2220
2249
  :should_include=>"true",
@@ -2269,7 +2298,18 @@
2269
2298
  :explanation=>
2270
2299
  "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
2271
2300
  :type=>:Fortran_Bool,
2272
- :autoscanned_defaults=>[".true."]}}},
2301
+ :autoscanned_defaults=>[".true."]},
2302
+ :in_memory=>
2303
+ {:should_include=>"true",
2304
+ :description=>"",
2305
+ :help=>
2306
+ "If true then attempts to create temporary copies of the dist fn and fields in memory to be restored after the time step reset rather than dumping to fields.\n* This could be faster on machines with slow file systems.\n* If the required memory allocation fails then we set `in_memory=.false.` and fall back to the traditional file based approach.",
2307
+ :code_name=>:in_memory,
2308
+ :must_pass=>
2309
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
2310
+ :explanation=>
2311
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
2312
+ :type=>:Fortran_Bool}}},
2273
2313
  :layouts_knobs=>
2274
2314
  {:description=>"",
2275
2315
  :should_include=>"true",
@@ -2406,7 +2446,8 @@
2406
2446
  :autoscanned_defaults=>[".false."]},
2407
2447
  :opt_local_copy=>
2408
2448
  {:should_include=>"true",
2409
- :description=>"Setting to .true. enables optimising redistribute code, used in FFTs for evaluating nonlinear terms, that avoids indirect addressing.",
2449
+ :description=>
2450
+ "Setting to .true. enables optimising redistribute code, used in FFTs for evaluating nonlinear terms, that avoids indirect addressing.",
2410
2451
  :help=>
2411
2452
  "Setting to .true. enables optimising redistribute code, used in FFTs for evaluating nonlinear terms, that avoids indirect addressing. \nThis can introduces worthwhile savings in nonlinear GS2 simulations at lower core counts. \n* [http://www.gyrokinetics.sourceforge.net/wikifiles/CMR/GS2_Final_report_NAG_Version_v1.0.pdf See Adrian Jackson's DCSE report \"Improved Data Distribution Routines for Gyrokinetic Plasma Simulations\"]\n",
2412
2453
  :code_name=>:opt_local_copy,
@@ -2418,8 +2459,10 @@
2418
2459
  :autoscanned_defaults=>[".false."]},
2419
2460
  :opt_redist_persist=>
2420
2461
  {:should_include=>"true",
2421
- :description=>"Set to true to use persistent (non-blocking) comms in the redistribute routines.",
2422
- :help=>"Set to true to use persistent (non-blocking) comms in the redistribute routines. \n* Must also set opt_redist_nbk=.true. \n* Can help improve scaling efficiency at large core counts, but can cause slow down at low core counts.",
2462
+ :description=>
2463
+ "Set to true to use persistent (non-blocking) comms in the redistribute routines.",
2464
+ :help=>
2465
+ "Set to true to use persistent (non-blocking) comms in the redistribute routines.\n* Must also set opt_redist_nbk=.true.\n* Can help improve scaling efficiency at large core counts, but can cause slow down at low core counts.",
2423
2466
  :code_name=>:opt_redist_persist,
2424
2467
  :must_pass=>
2425
2468
  [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
@@ -2429,15 +2472,29 @@
2429
2472
  :autoscanned_defaults=>[".false."]},
2430
2473
  :opt_redist_persist_overlap=>
2431
2474
  {:should_include=>"true",
2432
- :description=>"Set to true to try to overlap the mpi and local parts of the gather/scatter routines.",
2433
- :help=>"Set to true to try to overlap the mpi and local parts of the gather/scatter routines. \n* Should only be used with opt_redist_persist=.true. \n* See Optimising your runs for more details.",
2475
+ :description=>
2476
+ "Set to true to try to overlap the mpi and local parts of the gather/scatter routines.",
2477
+ :help=>
2478
+ "Set to true to try to overlap the mpi and local parts of the gather/scatter routines.\n* Should only be used with opt_redist_persist=.true.\n* See [[Optimising your runs]] for more details.",
2434
2479
  :code_name=>:opt_redist_persist_overlap,
2435
2480
  :must_pass=>
2436
2481
  [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
2437
2482
  :explanation=>
2438
2483
  "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
2439
2484
  :type=>:Fortran_Bool,
2440
- :autoscanned_defaults=>[".false."]}}},
2485
+ :autoscanned_defaults=>[".false."]},
2486
+ :fft_measure_plan=>
2487
+ {:should_include=>"true",
2488
+ :description=>"",
2489
+ :help=>
2490
+ "When set to true fft will use timing data during plan creation to select optimal settings. When false it will fall back to a simple heuristic estimate.\n ",
2491
+ :code_name=>:fft_measure_plan,
2492
+ :must_pass=>
2493
+ [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
2494
+ :explanation=>
2495
+ "This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
2496
+ :type=>:Fortran_Bool,
2497
+ :autoscanned_defaults=>[".true."]}}},
2441
2498
  :collisions_knobs=>
2442
2499
  {:description=>"COLLISIONS",
2443
2500
  :should_include=>"true",
@@ -2775,7 +2832,7 @@
2775
2832
  :module=>:hyper},
2776
2833
  :const_amp=>
2777
2834
  {:help=>
2778
- "Determines whether hyperviscosity includes time dependent amplitude factor when calculating damping rate. Not recommended for linear runs.",
2835
+ "Determines whether hyperviscosity includes time dependent amplitude factor when calculating damping rate. Recommend TRUE for linear runs and FALSE for nolinear runs, since amplutide of turbulence grows linearly with time in linear run.",
2779
2836
  :should_include=>"true",
2780
2837
  :description=>
2781
2838
  "Detrmines whether damping rate depends on amplitude variations. Recommend FALSE for nonlinear, TRUE for linear.",
@@ -2842,9 +2899,11 @@
2842
2899
  :code_name=>:nexp,
2843
2900
  :module=>:hyper},
2844
2901
  :d_hypervisc=>
2845
- {:help=>"Sets hyperviscosity parameter multiplying damping term. See Belli (2006) thesis for more information.",
2902
+ {:help=>
2903
+ "Sets hyperviscosity parameter multiplying damping term. See Belli (2006) thesis for more information.",
2846
2904
  :should_include=>"true",
2847
- :description=>"Sets hyperviscosity parameter multiplying damping term. See Belli (2006) thesis for more information.",
2905
+ :description=>
2906
+ "Sets hyperviscosity parameter multiplying damping term. See Belli (2006) thesis for more information.",
2848
2907
  :tests=>["Tst::FLOAT"],
2849
2908
  :autoscanned_defaults=>[],
2850
2909
  :must_pass=>
@@ -6248,7 +6307,8 @@
6248
6307
  {:n_eig=>
6249
6308
  {:should_include=>"true",
6250
6309
  :description=>"",
6251
- :help=>"",
6310
+ :help=>
6311
+ "The number of eigenmodes to search for. number of modes found may be larger than this.\n",
6252
6312
  :code_name=>:n_eig,
6253
6313
  :must_pass=>
6254
6314
  [{:test=>"kind_of? Integer",
@@ -6258,7 +6318,8 @@
6258
6318
  :max_iter=>
6259
6319
  {:should_include=>"true",
6260
6320
  :description=>"",
6261
- :help=>"",
6321
+ :help=>
6322
+ "Sets the maximum number of SLEPC iterations used. \n** If not set (recommended) then let SLEPC decide what to use (varies with different options).\n",
6262
6323
  :code_name=>:max_iter,
6263
6324
  :must_pass=>
6264
6325
  [{:test=>"kind_of? Integer",
@@ -6268,7 +6329,7 @@
6268
6329
  :tolerance=>
6269
6330
  {:should_include=>"true",
6270
6331
  :description=>"",
6271
- :help=>"",
6332
+ :help=>"Sets tolerance on SLEPC eigenmode search.\n",
6272
6333
  :code_name=>:tolerance,
6273
6334
  :must_pass=>
6274
6335
  [{:test=>"kind_of? Numeric",
@@ -6279,7 +6340,8 @@
6279
6340
  :solver_option=>
6280
6341
  {:should_include=>"true",
6281
6342
  :description=>"",
6282
- :help=>"",
6343
+ :help=>
6344
+ "Sets the type of solver to use, must be one of:\n** 'default' (Krylov-Schur)\n** 'slepc_default' (Krylov-Schur)\n** 'power'\n** 'subspace'\n** 'arnoldi'\n** 'lanczos'\n** 'krylov'\n** 'GD'\n** 'JD'\n** 'RQCG'\n** 'CISS'\n** 'lapack'\n** 'arpack'\n** 'blzpack'\n** 'trlan'\n** 'blopex'\n** 'primme'\n** 'feast'\n* Not all solver types are compatible with other eigenvalue options, some options may not be supported in older SLEPC versions and some may require certain flags to be set when SLEPC is compiled.\n",
6283
6345
  :code_name=>:solver_option,
6284
6346
  :must_pass=>
6285
6347
  [{:test=>"kind_of? String",
@@ -6289,7 +6351,8 @@
6289
6351
  :extraction_option=>
6290
6352
  {:should_include=>"true",
6291
6353
  :description=>"",
6292
- :help=>"",
6354
+ :help=>
6355
+ "Sets the extraction technique, must be one of:\n** 'default' (use SLEPC default)\n** 'slepc_default' (use SLEPC default)\n** 'ritz'\n** 'harmonic'\n** 'harmonic_relative'\n** 'harmonic_right'\n** 'harmonic_largest'\n** 'refined'\n** 'refined_harmonic'\n",
6293
6356
  :code_name=>:extraction_option,
6294
6357
  :must_pass=>
6295
6358
  [{:test=>"kind_of? String",
@@ -6299,7 +6362,8 @@
6299
6362
  :which_option=>
6300
6363
  {:should_include=>"true",
6301
6364
  :description=>"",
6302
- :help=>"",
6365
+ :help=>
6366
+ "Sets SLEPC mode of operation (i.e. what sort of eigenvalues it looks for). Must be one of\n** 'default' (equivalent to 'target_magnitude')\n** 'slepc_default' (let SLEPC decide)\n** 'largest_magnitude'\n** 'smallest_magnitude'\n** 'largest_real'\n** 'smallest_real'\n** 'largest_imaginary'\n** 'smallest_imaginary'\n** 'target_magnitude' (complex eigenvalue magnitude closest to magnitude of target)\n** 'target_real'\n** 'target_imaginary'\n** 'all' (only some solver types, e.g. lapack)\n** 'user' (will use a user specified function to pick between eigenmodes, note not currently implemented)\n",
6303
6367
  :code_name=>:which_option,
6304
6368
  :must_pass=>
6305
6369
  [{:test=>"kind_of? String",
@@ -6309,7 +6373,8 @@
6309
6373
  :transform_option=>
6310
6374
  {:should_include=>"true",
6311
6375
  :description=>"",
6312
- :help=>"",
6376
+ :help=>
6377
+ "Sets the type of spectral transform to be used. Must be one of\n** 'default' (let SLEPC decide)\n** 'slepc_default' (let SLEPC decide)\n** 'shell'\n** 'shift'\n** 'invert'\n** 'cayley'\n** 'fold'\n** 'precond' (not implemented)\n* Not all options are available in all versions of the library.\n",
6313
6378
  :code_name=>:transform_option,
6314
6379
  :must_pass=>
6315
6380
  [{:test=>"kind_of? String",
@@ -6319,7 +6384,8 @@
6319
6384
  :targ_re=>
6320
6385
  {:should_include=>"true",
6321
6386
  :description=>"",
6322
- :help=>"",
6387
+ :help=>
6388
+ "Real part of the eigenvalue target\n** Often beneficial to set this fairly small (e.g. ~0)\n",
6323
6389
  :code_name=>:targ_re,
6324
6390
  :must_pass=>
6325
6391
  [{:test=>"kind_of? Numeric",
@@ -6330,7 +6396,8 @@
6330
6396
  :targ_im=>
6331
6397
  {:should_include=>"true",
6332
6398
  :description=>"",
6333
- :help=>"",
6399
+ :help=>
6400
+ "Imaginary part of the eigenvalue target\n** Often beneficial to set this fairly large (e.g. 10)\n",
6334
6401
  :code_name=>:targ_im,
6335
6402
  :must_pass=>
6336
6403
  [{:test=>"kind_of? Numeric",
@@ -6341,7 +6408,8 @@
6341
6408
  :use_ginit=>
6342
6409
  {:should_include=>"true",
6343
6410
  :description=>"",
6344
- :help=>"",
6411
+ :help=>
6412
+ "If true then provide an initial guess for the eigenmode based on using init_g routines to initialise g. \n** Probably most useful with ginit_option='many' (etc.) to start an eigenvalue search from a previously obtained solution.\n",
6345
6413
  :code_name=>:use_ginit,
6346
6414
  :must_pass=>
6347
6415
  [{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
@@ -1,7 +1,9 @@
1
1
  require 'helper'
2
2
  CodeRunner.setup_run_class('gs2')
3
3
 
4
- raise "curl failed" unless system %[curl 'http://sourceforge.net/apps/mediawiki/gyrokinetics/index.php?title=GS2_Input_Parameters&action=edit' | sed 's/&amp;/\\&/g' | sed 's/&quot;/"/g' | sed 's/&gt;/>/g' | sed 's/&lt;/</g' | sed 's/&nbsp;/ /g' > gs2_mediawiki.txt]
4
+ #raise "curl failed" unless system %[curl 'http://sourceforge.net/apps/mediawiki/gyrokinetics/index.php?title=GS2_Input_Parameters&action=edit' | sed 's/&amp;/\\&/g' | sed 's/&quot;/"/g' | sed 's/&gt;/>/g' | sed 's/&lt;/</g' | sed 's/&nbsp;/ /g' > gs2_mediawiki.txt]
5
+ #http://gyrokinetics.sourceforge.net/wiki/index.php?title=GS2_Input_Parameters&action=edit
6
+ raise "curl failed" unless system %[curl 'http://gyrokinetics.sourceforge.net/wiki/index.php?title=GS2_Input_Parameters&action=edit' | sed 's/&amp;/\\&/g' | sed 's/&quot;/"/g' | sed 's/&gt;/>/g' | sed 's/&lt;/</g' | sed 's/&nbsp;/ /g' > gs2_mediawiki.txt]
5
7
  CodeRunner::Gs2.read_mediawiki_documentation('gs2_mediawiki.txt')
6
8
  CodeRunner::Gs2.write_mediawiki_documentation('gs2_mediawiki2.txt')
7
9
  system 'kwrite gs2_mediawiki2.txt' or system '/Applications/TextEdit.app/Contents/MacOS/TextEdit gs2_mediawiki2.txt'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gs2crmod
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.59
4
+ version: 0.11.60
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edmund Highcock