gs2crmod 0.11.76 → 0.11.77
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/gs2crmod.gemspec +3 -3
- data/lib/gs2crmod/calculations.rb +38 -34
- metadata +20 -60
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.11.
|
1
|
+
0.11.77
|
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.11.
|
8
|
+
s.version = "0.11.77"
|
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 = "2014-
|
12
|
+
s.date = "2014-10-05"
|
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"]
|
@@ -77,7 +77,7 @@ Gem::Specification.new do |s|
|
|
77
77
|
s.licenses = ["GSLv3"]
|
78
78
|
s.require_paths = ["lib"]
|
79
79
|
s.required_ruby_version = Gem::Requirement.new(">= 1.9.1")
|
80
|
-
s.rubygems_version = "1.8.
|
80
|
+
s.rubygems_version = "1.8.11"
|
81
81
|
s.summary = "Module to allow CodeRunner to run and analyse the GS2 and AstroGK codes."
|
82
82
|
|
83
83
|
if s.respond_to? :specification_version then
|
@@ -666,41 +666,45 @@ end
|
|
666
666
|
alias :ctehfa :calculate_transient_es_heat_flux_amplifications
|
667
667
|
alias :ctehfa :calculate_transient_es_heat_flux_amplifications
|
668
668
|
|
669
|
+
|
669
670
|
def calculate_transient_amplification(vector, options={})
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
671
|
+
t = gsl_vector(:t)
|
672
|
+
|
673
|
+
#Implement data smoothing through a moving average procedure of 5 surrounding points.
|
674
|
+
#This is needed since we need to know the turning points and need calculate gradients
|
675
|
+
#to find the points where they change sign. In order to get the actual transient amplification
|
676
|
+
#use the original data at the points where the gradient of smoothed data changes sign.
|
677
|
+
|
678
|
+
vec_smooth = GSL::Vector.alloc(vector.size-2);
|
679
|
+
vec_smooth[0] = vector[0]
|
680
|
+
vec_smooth[1] = (vector[0] + vector[1] + vector[2])/3
|
681
|
+
for i in 2...vector.size-2
|
682
|
+
vec_smooth[i] = (vector[i-2] + vector[i-1] + vector[i] + vector[i+1] + vector[i+2])/5
|
683
|
+
end
|
684
|
+
|
685
|
+
#Calculate the gradient of the smoothed function
|
686
|
+
grad = GSL::Vector.alloc(vec_smooth.size-1);
|
687
|
+
for i in 0...vec_smooth.size-1
|
688
|
+
grad[i] = (vec_smooth[i+1] - vec_smooth[i])/(t[i+1]-t[i])
|
689
|
+
end
|
690
|
+
|
691
|
+
#Now find the first two points where the gradient changes sign
|
692
|
+
#If your data still oscillates too much this method will not work.
|
693
|
+
#You will have to change the order of the data smoothing scheme.
|
694
|
+
turning_points = Array.new
|
695
|
+
for i in 1...grad.size
|
696
|
+
if GSL::sign(grad[i]) != GSL::sign(grad[i-1])
|
697
|
+
turning_points.push(i+1)
|
698
|
+
end
|
699
|
+
end
|
700
|
+
|
701
|
+
#Now calculate amplification factor using original vector (assuming turning point is roughly the same)
|
702
|
+
#by dividing value at max by the value at the min
|
703
|
+
if turning_points.empty? or turning_points.size < 2
|
704
|
+
return 0
|
705
|
+
else
|
706
|
+
return vector[turning_points[1]]/vector[turning_points[0]]
|
707
|
+
end
|
704
708
|
end
|
705
709
|
|
706
710
|
def ctan
|
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.
|
4
|
+
version: 0.11.77
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2014-
|
13
|
+
date: 2014-10-05 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: coderunner
|
17
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirement: &10066420 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,15 +22,10 @@ dependencies:
|
|
22
22
|
version: 0.14.15
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements:
|
26
|
-
none: false
|
27
|
-
requirements:
|
28
|
-
- - ! '>='
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
version: 0.14.15
|
25
|
+
version_requirements: *10066420
|
31
26
|
- !ruby/object:Gem::Dependency
|
32
27
|
name: rubyhacks
|
33
|
-
requirement: !ruby/object:Gem::Requirement
|
28
|
+
requirement: &10065380 !ruby/object:Gem::Requirement
|
34
29
|
none: false
|
35
30
|
requirements:
|
36
31
|
- - ! '>='
|
@@ -38,15 +33,10 @@ dependencies:
|
|
38
33
|
version: 0.1.2
|
39
34
|
type: :runtime
|
40
35
|
prerelease: false
|
41
|
-
version_requirements:
|
42
|
-
none: false
|
43
|
-
requirements:
|
44
|
-
- - ! '>='
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: 0.1.2
|
36
|
+
version_requirements: *10065380
|
47
37
|
- !ruby/object:Gem::Dependency
|
48
38
|
name: ruby-netcdf-updated
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
39
|
+
requirement: &10064080 !ruby/object:Gem::Requirement
|
50
40
|
none: false
|
51
41
|
requirements:
|
52
42
|
- - ! '>='
|
@@ -54,31 +44,21 @@ dependencies:
|
|
54
44
|
version: 0.6.6.1
|
55
45
|
type: :runtime
|
56
46
|
prerelease: false
|
57
|
-
version_requirements:
|
58
|
-
none: false
|
59
|
-
requirements:
|
60
|
-
- - ! '>='
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: 0.6.6.1
|
47
|
+
version_requirements: *10064080
|
63
48
|
- !ruby/object:Gem::Dependency
|
64
49
|
name: shoulda
|
65
|
-
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirement: &10062880 !ruby/object:Gem::Requirement
|
66
51
|
none: false
|
67
52
|
requirements:
|
68
|
-
- -
|
53
|
+
- - =
|
69
54
|
- !ruby/object:Gem::Version
|
70
55
|
version: 3.0.1
|
71
56
|
type: :development
|
72
57
|
prerelease: false
|
73
|
-
version_requirements:
|
74
|
-
none: false
|
75
|
-
requirements:
|
76
|
-
- - '='
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version: 3.0.1
|
58
|
+
version_requirements: *10062880
|
79
59
|
- !ruby/object:Gem::Dependency
|
80
60
|
name: rdoc
|
81
|
-
requirement: !ruby/object:Gem::Requirement
|
61
|
+
requirement: &10061120 !ruby/object:Gem::Requirement
|
82
62
|
none: false
|
83
63
|
requirements:
|
84
64
|
- - ~>
|
@@ -86,15 +66,10 @@ dependencies:
|
|
86
66
|
version: '3.12'
|
87
67
|
type: :development
|
88
68
|
prerelease: false
|
89
|
-
version_requirements:
|
90
|
-
none: false
|
91
|
-
requirements:
|
92
|
-
- - ~>
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
version: '3.12'
|
69
|
+
version_requirements: *10061120
|
95
70
|
- !ruby/object:Gem::Dependency
|
96
71
|
name: bundler
|
97
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirement: &10074460 !ruby/object:Gem::Requirement
|
98
73
|
none: false
|
99
74
|
requirements:
|
100
75
|
- - ! '>'
|
@@ -102,15 +77,10 @@ dependencies:
|
|
102
77
|
version: 1.0.0
|
103
78
|
type: :development
|
104
79
|
prerelease: false
|
105
|
-
version_requirements:
|
106
|
-
none: false
|
107
|
-
requirements:
|
108
|
-
- - ! '>'
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: 1.0.0
|
80
|
+
version_requirements: *10074460
|
111
81
|
- !ruby/object:Gem::Dependency
|
112
82
|
name: jeweler
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
83
|
+
requirement: &10072140 !ruby/object:Gem::Requirement
|
114
84
|
none: false
|
115
85
|
requirements:
|
116
86
|
- - ! '>='
|
@@ -118,15 +88,10 @@ dependencies:
|
|
118
88
|
version: 1.8.4
|
119
89
|
type: :development
|
120
90
|
prerelease: false
|
121
|
-
version_requirements:
|
122
|
-
none: false
|
123
|
-
requirements:
|
124
|
-
- - ! '>='
|
125
|
-
- !ruby/object:Gem::Version
|
126
|
-
version: 1.8.4
|
91
|
+
version_requirements: *10072140
|
127
92
|
- !ruby/object:Gem::Dependency
|
128
93
|
name: minitest
|
129
|
-
requirement: !ruby/object:Gem::Requirement
|
94
|
+
requirement: &10070740 !ruby/object:Gem::Requirement
|
130
95
|
none: false
|
131
96
|
requirements:
|
132
97
|
- - ~>
|
@@ -134,12 +99,7 @@ dependencies:
|
|
134
99
|
version: '4'
|
135
100
|
type: :development
|
136
101
|
prerelease: false
|
137
|
-
version_requirements:
|
138
|
-
none: false
|
139
|
-
requirements:
|
140
|
-
- - ~>
|
141
|
-
- !ruby/object:Gem::Version
|
142
|
-
version: '4'
|
102
|
+
version_requirements: *10070740
|
143
103
|
description: GS2 is a gyrokinetic flux tube initial value turbulence code which can
|
144
104
|
be used for fusion or astrophysical plasmas. CodeRunner is a framework for the automated
|
145
105
|
running and analysis of large simulations. This module allows GS2 (and its sister
|
@@ -227,7 +187,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
227
187
|
version: '0'
|
228
188
|
requirements: []
|
229
189
|
rubyforge_project:
|
230
|
-
rubygems_version: 1.8.
|
190
|
+
rubygems_version: 1.8.11
|
231
191
|
signing_key:
|
232
192
|
specification_version: 3
|
233
193
|
summary: Module to allow CodeRunner to run and analyse the GS2 and AstroGK codes.
|