genecrmod 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 15cb544d0c7f91d1f29358dcbaa51eaf4931400f
4
+ data.tar.gz: bb7a3f4dd8ee898a24828f4837da17efc5778bd2
5
+ SHA512:
6
+ metadata.gz: cbf12402982835bb5af91bacbe72a5a0e4c97d997a4ec4b262ef1a2765cad0f48db14fb13ec3941031c6987bbcb2a3bbde5f1c283ba5d4cdd4a9cb76731bdade
7
+ data.tar.gz: adff8560a7697ca5a3c2f10be7b204e008b6611eb4f63ad360bfb609eaa795f66c75d6c81859516e40c3adbc6655e06472e5540bcbf6baa1ab7b5821401f71f4
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.4
1
+ 0.2.5
@@ -2,14 +2,16 @@
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: genecrmod 0.2.5 ruby lib
5
6
 
6
7
  Gem::Specification.new do |s|
7
8
  s.name = "genecrmod"
8
- s.version = "0.2.4"
9
+ s.version = "0.2.5"
9
10
 
10
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib"]
11
13
  s.authors = ["Edmund Highcock"]
12
- s.date = "2015-08-26"
14
+ s.date = "2015-08-28"
13
15
  s.description = "A module which allows the GENE gyrokinetic code to be run using the CodeRunner framework. "
14
16
  s.email = "edmundhighcock@users.sourceforge.net"
15
17
  s.extra_rdoc_files = [
@@ -35,12 +37,11 @@ Gem::Specification.new do |s|
35
37
  ]
36
38
  s.homepage = "http://github.com/edmundhighcock/genecrmod"
37
39
  s.licenses = ["GPLv3"]
38
- s.require_paths = ["lib"]
39
- s.rubygems_version = "1.8.23"
40
+ s.rubygems_version = "2.2.2"
40
41
  s.summary = "A module which allows the GENE gyrokinetic code to be run using the CodeRunner framework."
41
42
 
42
43
  if s.respond_to? :specification_version then
43
- s.specification_version = 3
44
+ s.specification_version = 4
44
45
 
45
46
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
46
47
  s.add_runtime_dependency(%q<coderunner>, [">= 0.14.2"])
@@ -1,40 +1,59 @@
1
1
 
2
2
  class CodeRunner::Gene
3
- def run_namelist_tests(namelist, hash, enum = nil)
4
- ext = enum ? "_#{enum}" : ""
5
- hash[:must_pass].each do |tst|
6
- error(namelist_test_failed(namelist, tst)) unless instance_eval(tst[:test])
7
- end if hash[:must_pass]
8
- hash[:should_pass].each do |tst|
9
- warning(namelist_test_failed(namelist, tst)) unless instance_eval(tst[:test])
10
- end if hash[:should_pass]
11
- hash[:variables].each do |var, var_hash|
12
- #gs2_var = (var_hash[:gs2_name] or var)
13
- cr_var = var+ext.to_sym
14
- value = send(cr_var)
15
- if value.kind_of? Array
16
- value.each{|v| test_variable(namelist, var, var_hash, ext, v)}
17
- else
18
- test_variable(namelist, var, var_hash, ext, value)
19
- end
20
- end
3
+ def run_namelist_tests(namelist, hash, enum = nil)
4
+ ext = enum ? "_#{enum}" : ""
5
+ hash[:must_pass].each do |tst|
6
+ error(namelist_test_failed(namelist, tst)) unless instance_eval(tst[:test])
7
+ end if hash[:must_pass]
8
+ hash[:should_pass].each do |tst|
9
+ warning(namelist_test_failed(namelist, tst)) unless instance_eval(tst[:test])
10
+ end if hash[:should_pass]
11
+ hash[:variables].each do |var, var_hash|
12
+ cr_var = var+ext.to_sym
13
+ value = send(cr_var)
14
+ if value.kind_of? Array
15
+ value.each{|v| test_variable(namelist, var, var_hash, ext, v)}
16
+ else
17
+ test_variable(namelist, var, var_hash, ext, value)
21
18
  end
22
- def check_parameters
23
- rcp.namelists.each do |namelist, hash|
24
- next if hash[:should_include].kind_of? String and not eval(hash[:should_include])
25
- if en = hash[:enumerator]
26
- #ep 'en', en, namelist
27
- next unless send(en[:name])
28
- send(en[:name]).times do |i|
29
- run_namelist_tests(namelist, hash, i+1)
30
- end
31
- else
32
- run_namelist_tests(namelist, hash)
19
+ end
20
+ end
21
+
22
+ def check_parameters
23
+ rcp.namelists.each do |namelist, hash|
24
+ next if hash[:should_include].kind_of? String and not eval(hash[:should_include])
25
+ if en = hash[:enumerator]
26
+ next unless send(en[:name])
27
+ send(en[:name]).times do |i|
28
+ run_namelist_tests(namelist, hash, i+1)
33
29
  end
30
+ else
31
+ run_namelist_tests(namelist, hash)
34
32
  end
35
- warning("Very little analysis will be possible without write_h5 = '.true.'") if not (@write_h5 and @write_h5.fortran_true?)
36
33
  end
37
- def test_failed(namelist, var, gs2_var, tst)
34
+
35
+ # Now look at namelist specific flags, catch any obvious mistakes/conflicts
36
+
37
+ ###################
38
+ # in_out namelist #
39
+ ###################
40
+
41
+ if not (@write_h5 and @write_h5.fortran_true?)
42
+ warning("Very little analysis will be possible without write_h5 = '.true.'")
43
+ end
44
+
45
+ if not (@write_checkpoint and @write_checkpoint.fortran_true?) and
46
+ not (@chpt_h5 and @chpt_h5.fortran_true?)
47
+ p @write_checkpoint, @write_checkpoint.fortran_true?
48
+ warning("This simulation will not write out a checkpoint file.")
49
+ end
50
+
51
+ if (@write_std and @write_std.fortran_true?) and (@write_h5 and @write_h5.fortran_true?)
52
+ warning("Both write_std and write_h5 are specified - will produce lots of output!")
53
+ end
54
+ end
55
+
56
+ def test_failed(namelist, var, gene_var, tst)
38
57
  return <<EOF
39
58
 
40
59
  ---------------------------
@@ -43,7 +62,7 @@ def test_failed(namelist, var, gs2_var, tst)
43
62
 
44
63
  Namelist: #{namelist}
45
64
  Variable: #{var}
46
- GS2 Name: #{gs2_var}
65
+ GENE Name: #{gene_var}
47
66
  Value: #{send(var)}
48
67
  Test: #{tst[:test]}
49
68
  Explanation: #{tst[:explanation]}
@@ -51,10 +70,10 @@ Explanation: #{tst[:explanation]}
51
70
  ---------------------------
52
71
  EOF
53
72
 
54
- end
73
+ end
55
74
 
56
75
 
57
- def namelist_test_failed(namelist, tst)
76
+ def namelist_test_failed(namelist, tst)
58
77
  return <<EOF
59
78
 
60
79
  ---------------------------
@@ -68,22 +87,22 @@ Explanation: #{tst[:explanation]}
68
87
  ---------------------------
69
88
  EOF
70
89
 
71
- end
72
- def test_variable(namelist, var, var_hash, ext, value)
73
- gs2_var = (var_hash[:gs2_name] or var)
74
- cr_var = var+ext.to_sym
75
- if value and (not var_hash[:should_include] or eval(var_hash[:should_include]))
76
- var_hash[:must_pass].each do |tst|
77
- error(test_failed(namelist, cr_var, gs2_var, tst)) unless value.instance_eval(tst[:test])
78
- end if var_hash[:must_pass]
79
- var_hash[:should_pass].each do |tst|
80
- warning(test_failed(namelist, cr_var, gs2_var, tst)) unless value.instance_eval(tst[:test])
81
- end if var_hash[:should_pass]
82
- if (var_hash[:allowed_values] or var_hash[:text_options])
83
- tst = {test: "#{(var_hash[:allowed_values] or var_hash[:text_options]).inspect}.include? self", explanation: "The variable must have one of these values"}
84
- error(test_failed(namelist, cr_var, gs2_var, tst)) unless value.instance_eval(tst[:test])
85
- end
86
-
87
- end
88
- end
90
+ end
91
+
92
+ def test_variable(namelist, var, var_hash, ext, value)
93
+ gene_var = (var_hash[:gene_name] or var)
94
+ cr_var = var+ext.to_sym
95
+ if value and (not var_hash[:should_include] or eval(var_hash[:should_include]))
96
+ var_hash[:must_pass].each do |tst|
97
+ error(test_failed(namelist, cr_var, gene_var, tst)) unless value.instance_eval(tst[:test])
98
+ end if var_hash[:must_pass]
99
+ var_hash[:should_pass].each do |tst|
100
+ warning(test_failed(namelist, cr_var, gene_var, tst)) unless value.instance_eval(tst[:test])
101
+ end if var_hash[:should_pass]
102
+ if (var_hash[:allowed_values] or var_hash[:text_options])
103
+ tst = {test: "#{(var_hash[:allowed_values] or var_hash[:text_options]).inspect}.include? self", explanation: "The variable must have one of these values"}
104
+ error(test_failed(namelist, cr_var, gene_var, tst)) unless value.instance_eval(tst[:test])
105
+ end
106
+ end
107
+ end
89
108
  end
@@ -50,26 +50,31 @@ class CodeRunner
50
50
 
51
51
 
52
52
 
53
- # Modify new_run so that it becomes a restart of self. Adusts
53
+ # Modify new_run so that it becomes a restart of self. Adjusts
54
54
  # all the parameters of the new run to be equal to the parameters
55
55
  # of the run that calls this function, and sets up its run name
56
56
  # correctly
57
57
  def restart(new_run)
58
- raise "Restart not tested yet"
59
- #new_run = self.dup
60
58
  (rcp.variables).each{|v| new_run.set(v, send(v)) if send(v)}
61
59
  new_run.is_a_restart = true
62
60
  new_run.restart_id = @id
63
61
  new_run.restart_run_name = @run_name
64
- new_run.nopt = -1
65
62
  new_run.run_name = nil
66
63
  new_run.naming_pars = @naming_pars
67
64
  new_run.update_submission_parameters(new_run.parameter_hash.inspect, false) if new_run.parameter_hash
68
65
  new_run.naming_pars.delete(:restart_id)
69
66
  new_run.generate_run_name
70
- eputs 'Copying GENE Restart file'
71
- FileUtils.cp("#@directory/NOUT", "#{new_run.directory}/NIN")
67
+
68
+ eputs 'Copying GENE restart file'
69
+ if (@chpt_h5 and @chpt_h5.fortran_true?)
70
+ new_run.chpt_read_h5 = ".true."
71
+ FileUtils.cp("#@directory/checkpoint.h5", "#{new_run.directory}/checkpoint.h5")
72
+ else
73
+ new_run.read_checkpoint = ".true."
74
+ FileUtils.cp("#@directory/checkpoint", "#{new_run.directory}/checkpoint")
75
+ end
72
76
  end
77
+
73
78
  # This is a hook which gets called just before submitting a simulation. It sets up the folder and generates any necessary input files.
74
79
  def generate_input_file
75
80
  check_parameters
@@ -942,9 +942,10 @@
942
942
  :help=>nil,
943
943
  :code_name=>:underflow_limit,
944
944
  :must_pass=>
945
- [{:test=>"kind_of? String",
946
- :explanation=>"This variable must be a string."}],
947
- :type=>:String},
945
+ [{:test=>"kind_of? Numeric",
946
+ :explanation=>
947
+ "This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
948
+ :type=>:Float},
948
949
  :omega_prec=>
949
950
  {:should_include=>"true",
950
951
  :description=>nil,
metadata CHANGED
@@ -1,52 +1,46 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: genecrmod
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
5
- prerelease:
4
+ version: 0.2.5
6
5
  platform: ruby
7
6
  authors:
8
7
  - Edmund Highcock
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2015-08-26 00:00:00.000000000 Z
11
+ date: 2015-08-28 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: coderunner
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: 0.14.2
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: 0.14.2
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: hdf5
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: shoulda
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - '='
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - '='
60
53
  - !ruby/object:Gem::Version
@@ -62,84 +55,74 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rdoc
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ~>
59
+ - - "~>"
68
60
  - !ruby/object:Gem::Version
69
61
  version: '3.12'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ~>
66
+ - - "~>"
76
67
  - !ruby/object:Gem::Version
77
68
  version: '3.12'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: bundler
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ~>
73
+ - - "~>"
84
74
  - !ruby/object:Gem::Version
85
75
  version: '1.0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ~>
80
+ - - "~>"
92
81
  - !ruby/object:Gem::Version
93
82
  version: '1.0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: jeweler
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ~>
87
+ - - "~>"
100
88
  - !ruby/object:Gem::Version
101
89
  version: 2.0.1
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ~>
94
+ - - "~>"
108
95
  - !ruby/object:Gem::Version
109
96
  version: 2.0.1
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: simplecov
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - ">="
116
102
  - !ruby/object:Gem::Version
117
103
  version: '0'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - ">="
124
109
  - !ruby/object:Gem::Version
125
110
  version: '0'
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: minitest
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
- - - ~>
115
+ - - "~>"
132
116
  - !ruby/object:Gem::Version
133
117
  version: '4'
134
118
  type: :development
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
- - - ~>
122
+ - - "~>"
140
123
  - !ruby/object:Gem::Version
141
124
  version: '4'
142
- description: ! 'A module which allows the GENE gyrokinetic code to be run using the
125
+ description: 'A module which allows the GENE gyrokinetic code to be run using the
143
126
  CodeRunner framework. '
144
127
  email: edmundhighcock@users.sourceforge.net
145
128
  executables: []
@@ -148,7 +131,7 @@ extra_rdoc_files:
148
131
  - LICENSE.txt
149
132
  - README.rdoc
150
133
  files:
151
- - .document
134
+ - ".document"
152
135
  - Gemfile
153
136
  - LICENSE.txt
154
137
  - README.rdoc
@@ -166,30 +149,26 @@ files:
166
149
  homepage: http://github.com/edmundhighcock/genecrmod
167
150
  licenses:
168
151
  - GPLv3
152
+ metadata: {}
169
153
  post_install_message:
170
154
  rdoc_options: []
171
155
  require_paths:
172
156
  - lib
173
157
  required_ruby_version: !ruby/object:Gem::Requirement
174
- none: false
175
158
  requirements:
176
- - - ! '>='
159
+ - - ">="
177
160
  - !ruby/object:Gem::Version
178
161
  version: '0'
179
- segments:
180
- - 0
181
- hash: -2164838482483879517
182
162
  required_rubygems_version: !ruby/object:Gem::Requirement
183
- none: false
184
163
  requirements:
185
- - - ! '>='
164
+ - - ">="
186
165
  - !ruby/object:Gem::Version
187
166
  version: '0'
188
167
  requirements: []
189
168
  rubyforge_project:
190
- rubygems_version: 1.8.23
169
+ rubygems_version: 2.2.2
191
170
  signing_key:
192
- specification_version: 3
171
+ specification_version: 4
193
172
  summary: A module which allows the GENE gyrokinetic code to be run using the CodeRunner
194
173
  framework.
195
174
  test_files: []