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 +1 -1
- data/gs2crmod.gemspec +2 -2
- data/lib/gs2crmod/calculations.rb +7 -26
- data/lib/gs2crmod/gs2.rb +1 -0
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.12.
|
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.
|
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-
|
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
|
-
|
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 /
|
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.
|
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-
|
13
|
+
date: 2015-08-18 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: coderunner
|