gs2crmod 0.12.2 → 0.12.3

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.12.2
1
+ 0.12.3
data/gs2crmod.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "gs2crmod"
8
- s.version = "0.12.2"
8
+ s.version = "0.12.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Edmund Highcock", "Ferdinand van Wyk"]
12
- s.date = "2015-08-06"
12
+ s.date = "2015-08-18"
13
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."
14
14
  s.email = "edmundhighcock@sourceforge.net"
15
15
  s.extensions = ["ext/extconf.rb"]
@@ -430,47 +430,38 @@ def calculate_transient_amplifications
430
430
  end
431
431
 
432
432
  @transient_amplification_at_ky ||= FloatHash.new
433
+ @max_transient_amplification_index_at_ky ||= FloatHash.new
433
434
  eputs
434
435
  to_calc.each do |kxy|
435
436
  transient_amplifications = send(:transient_amplification_at_ + kxy)
436
437
  list(kxy).values.sort.each do |value|
437
-
438
- #p transient_amplifications.keys, value, transient_amplifications[value.to_f-0.0],
439
- #transient_amplifications.class, transient_amplifications.keys.include?(value); exit
440
-
441
438
  next if transient_amplifications.keys.include? value
442
-
443
439
 
444
440
  Terminal.erewind(1)
445
- #ep transient_amplifications.keys
446
441
  eputs sprintf("Calculating transient amplification for #{kxy} = % 1.5e#{Terminal::CLEAR_LINE}", value)
447
-
448
-
449
- # Mode has 0 growth rate at ky==0
442
+
443
+ # Mode has 0 growth rate at ky==0
450
444
  (transient_amplifications[value] = 0.0; next) if value == 0.0 and kxy == :ky
451
445
  phi2_vec = gsl_vector("phi2_by_#{kxy}_over_time", {kxy=>value})
452
- #(transient_amplifications[value] = 0.0; next) if phi2_vec.min <= 0.0
453
446
  transient_amplifications[value] = calculate_transient_amplification(phi2_vec)
454
447
  (eputs "\n\n----------\nIn #@run_name:\n\nphi2_by_#{kxy}_over_time is all NaN; unable to calculate growth rate\n----------\n\n"; transient_amplifications[value] = -1; next) if transient_amplifications[value].to_s == "NaN"
448
+ @max_transient_amplification_index_at_ky[value] = phi2_vec.max_index
455
449
  end
456
450
  end
457
451
 
458
452
  write_results
459
453
 
460
- # ep "transient_amplification_at_ky", @transient_amplification_at_ky
461
454
  if ENV['GS2_CALCULATE_ALL']
462
455
  trap(0){eputs "Calculation of spectrum did not complete: run 'cgrf' (i.e. calculate_transient_amplifications_and_frequencies) for this run. E.g. from the command line \n $ coderunner rc 'cgrf' -j #{@id}"; exit}
463
456
  @transient_amplification_at_ky_at_kx ||= FloatHash.new
464
457
  list(:ky).values.sort.each do |kyv|
465
458
  @transient_amplification_at_ky_at_kx[kyv] ||= FloatHash.new
466
- #p @transient_amplification_at_ky_at_kx[kyv]
467
459
  list(:kx).values.sort.each do |kxv|
468
460
  next if @transient_amplification_at_ky_at_kx[kyv].keys.include? kxv
469
461
  Terminal.erewind(1)
470
462
  eputs sprintf("Calculating growth rate for kx = % 1.5e and ky = % 1.5e#{Terminal::CLEAR_LINE}", kxv, kyv)
471
463
  (@transient_amplification_at_ky_at_kx[kyv][kxv] = 0.0; next) if kyv == 0.0 # Mode has 0 growth rate at ky==0
472
464
  phi2_vec = gsl_vector("phi2_by_mode_over_time", {:kx=>kxv, :ky=>kyv})
473
- #(@transient_amplification_at_ky_at_kx[kyv][kxv] = 0.0; next) if phi2_vec.min <= 0.0
474
465
  @transient_amplification_at_ky_at_kx[kyv][kxv] = calculate_transient_amplification(phi2_vec)
475
466
  (eputs "\n\n----------\nIn #@run_name:\n\nphi2_by_#{kxy}_over_time is all NaN; unable to calculate growth rates\n----------\n\n"; @transient_amplification_at_ky_at_kx[kyv][kxv] = -1; next) if @transient_amplification_at_ky_at_kx[kyv][kxv].to_s == "NaN"
476
467
  end
@@ -481,19 +472,8 @@ def calculate_transient_amplifications
481
472
  @transient_amplifications = @transient_amplification_at_ky
482
473
  @max_transient_amplification = @transient_amplifications.values.max
483
474
  @most_amplified_mode = @transient_amplifications.key(@max_transient_amplification)
484
- #@freq_of_max_transient_amplification = @real_frequencies[@fastest_growing_mode]
485
- #ep @max_transient_amplification, @transient_amplifications
486
- #@decaying = (@max_transient_amplification < 0) if @max_transient_amplification
475
+
487
476
  @ky = @aky if @aky
488
- #if @grid_option == "single"
489
- ## ep @aky, @transient_amplifications
490
- #@gamma_r = @transient_amplifications[@aky.to_f]
491
- #@gamma_i = @real_frequencies[@aky.to_f]
492
- #end
493
- # ep @gamma_r
494
-
495
-
496
- # eputs @transient_amplifications; gets
497
477
  end
498
478
  end
499
479
 
@@ -673,7 +653,8 @@ alias :ctehfa :calculate_transient_es_heat_flux_amplifications
673
653
 
674
654
  def calculate_transient_amplification(vector, options={})
675
655
  if @g_exb_start_timestep
676
- return GSL::Sf::log(vector[(@g_exb_start_timestep/@nwrite).to_i...-1].max / vector[(@g_exb_start_timestep/@nwrite).to_i])/2
656
+ return GSL::Sf::log(vector[(@g_exb_start_timestep/@nwrite).to_i...-1].max /
657
+ vector[(@g_exb_start_timestep/@nwrite).to_i])/2
677
658
  else
678
659
  eputs "Warning: set g_exb_start_timestep to calculate transient amplifications."
679
660
  return 0
data/lib/gs2crmod/gs2.rb CHANGED
@@ -141,6 +141,7 @@ eval(%[
141
141
  :transient_amplification_at_kx,
142
142
  :transient_amplification_at_ky,
143
143
  :transient_amplification_at_ky_at_kx,
144
+ :max_transient_amplification_index_at_ky,
144
145
  :transient_es_heat_flux_amplification_at_species_at_kx,
145
146
  :transient_es_heat_flux_amplification_at_species_at_ky,
146
147
  :transient_es_heat_flux_amplification_at_species_at_ky_at_kx,
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.12.2
4
+ version: 0.12.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-08-06 00:00:00.000000000 Z
13
+ date: 2015-08-18 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: coderunner