gs2crmod 0.11.76 → 0.11.77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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.
|