genecrmod 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.3
1
+ 0.2.4
data/genecrmod.gemspec CHANGED
@@ -2,16 +2,14 @@
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.3 ruby lib
6
5
 
7
6
  Gem::Specification.new do |s|
8
7
  s.name = "genecrmod"
9
- s.version = "0.2.3"
8
+ s.version = "0.2.4"
10
9
 
11
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
- s.require_paths = ["lib"]
13
11
  s.authors = ["Edmund Highcock"]
14
- s.date = "2014-12-03"
12
+ s.date = "2015-08-26"
15
13
  s.description = "A module which allows the GENE gyrokinetic code to be run using the CodeRunner framework. "
16
14
  s.email = "edmundhighcock@users.sourceforge.net"
17
15
  s.extra_rdoc_files = [
@@ -37,11 +35,12 @@ Gem::Specification.new do |s|
37
35
  ]
38
36
  s.homepage = "http://github.com/edmundhighcock/genecrmod"
39
37
  s.licenses = ["GPLv3"]
40
- s.rubygems_version = "2.2.2"
38
+ s.require_paths = ["lib"]
39
+ s.rubygems_version = "1.8.23"
41
40
  s.summary = "A module which allows the GENE gyrokinetic code to be run using the CodeRunner framework."
42
41
 
43
42
  if s.respond_to? :specification_version then
44
- s.specification_version = 4
43
+ s.specification_version = 3
45
44
 
46
45
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
47
46
  s.add_runtime_dependency(%q<coderunner>, [">= 0.14.2"])
@@ -2,14 +2,8 @@
2
2
  class CodeRunner
3
3
  # This is a customised subclass of the CodeRunner::Run class which allows CodeRunner to run and analyse the GENE gyrokinetic code (see http://www2.ipp.mpg.de/~fsj/gene/)
4
4
  #
5
- #p 'hellllllooooo!!!'
6
5
  class Gene < Run::FortranNamelist
7
6
  #include CodeRunner::SYSTEM_MODULE
8
- #
9
-
10
-
11
-
12
-
13
7
  # Where this file is
14
8
  @code_module_folder = File.dirname(File.expand_path(__FILE__)) # i.e. the directory this file is in
15
9
 
@@ -19,8 +13,6 @@ class CodeRunner
19
13
  # Use the Run::FortranNamelist tools to process the variable database
20
14
  setup_namelists(@code_module_folder)
21
15
 
22
- # Setup gs2 in case people are using it
23
-
24
16
  ################################################
25
17
  # Quantities that are read or determined by CodeRunner
26
18
  # after the simulation has ended
@@ -45,8 +37,6 @@ class CodeRunner
45
37
 
46
38
  # A hook which gets called when printing the standard run information to the screen using the status command.
47
39
  def print_out_line
48
- #p ['id', id, 'ctd', ctd]
49
- #p rcp.results.zip(rcp.results.map{|r| send(r)})
50
40
  name = @run_name
51
41
  name += " (res: #@restart_id)" if @restart_id
52
42
  name += " real_id: #@real_id" if @real_id
@@ -68,47 +58,17 @@ class CodeRunner
68
58
  raise "Restart not tested yet"
69
59
  #new_run = self.dup
70
60
  (rcp.variables).each{|v| new_run.set(v, send(v)) if send(v)}
71
- #if @flux_option == "gs2"
72
- #gs2_runs.each_with_index do |run, i|
73
- #CodeRunner::Gs2.rcp.variables.each{|v| new_run.gs2_runs[i].set(v, run.send(v)) if run.send(v)}
74
- #end
75
- #end
76
- #@naming_pars.delete(:preamble)
77
- #SUBMIT_OPTIONS.each{|v| new_run.set(v, self.send(v)) unless new_run.send(v)}
78
- ##(rcp.results + rcp.gs2_run_info).each{|result| new_run.set(result, nil)}
79
61
  new_run.is_a_restart = true
80
62
  new_run.restart_id = @id
81
63
  new_run.restart_run_name = @run_name
82
64
  new_run.nopt = -1
83
- #new_run.init_option = "restart"
84
- #new_run.iternt_file = @run_name + ".iternt"
85
- #new_run.iterflx_file = @run_name + ".iterflx"
86
- #new_run.init_file = @run_name + ".tmp"
87
- #@runner.nprocs = @nprocs if @runner.nprocs == "1" # 1 is the default so this means the user probably didn't specify nprocs
88
- #raise "Restart must be on the same number of processors as the previous run: new is #{new_run.nprocs.inspect} and old is #{@nprocs.inspect}" if !new_run.nprocs or new_run.nprocs != @nprocs
89
- ### @runner.parameters.each{|var, value| new_run.set(var,value)} if @runner.parameters
90
- ### ep @runner.parameters
91
65
  new_run.run_name = nil
92
66
  new_run.naming_pars = @naming_pars
93
67
  new_run.update_submission_parameters(new_run.parameter_hash.inspect, false) if new_run.parameter_hash
94
68
  new_run.naming_pars.delete(:restart_id)
95
69
  new_run.generate_run_name
96
- #new_run.run_name += '_t'
97
70
  eputs 'Copying GENE Restart file'
98
- ##system "ls #@directory"
99
71
  FileUtils.cp("#@directory/NOUT", "#{new_run.directory}/NIN")
100
- ##########if new_run.flux_option == "gs2" and @flux_option == "gs2"
101
- ##########for i in 0...n_flux_tubes
102
- ##########new_run.gs2_runs[i].directory = new_run.directory + "/flux_tube_#{i+1}"
103
- ##########FileUtils.makedirs(new_run.gs2_runs[i].directory)
104
- ###########ep ['gs2_runs[i] before', gs2_runs[i].nwrite, new_run.gs2_runs[i].nwrite, new_run.gs2_runs[i].parameter_hash]
105
- ##########gs2_runs[i].restart(new_run.gs2_runs[i])
106
- ###########ep ['gs2_runs[i] after', gs2_runs[i].nwrite, new_run.gs2_runs[i].nwrite, new_run.gs2_runs[i].parameter_hash]
107
- ###########new_run.gs2_runs[i].run_name = new_run.run_name + (i+1).to_s
108
- ##########end
109
- ##########end
110
- ##@runner.submit(new_run)
111
- #new_run
112
72
  end
113
73
  # This is a hook which gets called just before submitting a simulation. It sets up the folder and generates any necessary input files.
114
74
  def generate_input_file
@@ -118,6 +78,9 @@ class CodeRunner
118
78
  end
119
79
  @diagdir = "."
120
80
  @n_procs_sim = actual_number_of_processors
81
+ # Simulation time limit is set to ~ 90% of wall mins to allow GENE to
82
+ # exit gracefully
83
+ @timelim = @wall_mins * 55 if @wall_mins
121
84
  write_input_file
122
85
  end
123
86
 
@@ -136,7 +99,6 @@ class CodeRunner
136
99
  text = ""
137
100
  ext = enum ? "_#{enum}" : ""
138
101
  text << "!#{'='*30}\n!#{hash[:description]} #{enum} \n!#{'='*30}\n" if hash[:description]
139
- #text << "&#{namelist}#{ext}\n"
140
102
  text << "&#{namelist}\n"
141
103
  hash[:variables].each do |var, var_hash|
142
104
  code_var = (var_hash[:code_name] or var)
@@ -170,7 +132,6 @@ class CodeRunner
170
132
 
171
133
  # This command uses the infrastructure provided by Run::FortranNamelist, provided by CodeRunner itself.
172
134
  def write_input_file
173
- #File.open("#@run_name.in", 'w'){|file| file.puts input_file_text}
174
135
  File.open("parameters", 'w'){|file| file.puts input_file_text}
175
136
  end
176
137
 
@@ -194,14 +155,12 @@ class CodeRunner
194
155
  #
195
156
  def process_directory_code_specific
196
157
  get_status
197
- #p ['id is', id, 'ctd is ', ctd]
198
158
  if ctd
199
159
  #get_global_results
200
160
  if !nonlinear or nonlinear.fortran_false?
201
161
  get_growth_rates
202
162
  end
203
163
  end
204
- #p ['fusionQ is ', fusionQ]
205
164
  @percent_complete = completed_timesteps.to_f * (istep_nrg||10) / ntimesteps.to_f * 100.0
206
165
  end
207
166
 
@@ -230,11 +189,7 @@ class CodeRunner
230
189
  end
231
190
  def get_completed_timesteps
232
191
  Dir.chdir(@directory) do
233
- #if FileTest.exist?('nrg.dat.h5')
234
- #@completed_timesteps = get_h5_narray_all('nrg.dat.h5', '/nrgIons/time').shape[0]
235
- #else
236
192
  @completed_timesteps = %x[grep '^\\s\\+\\S\\+\\s*$' nrg.dat 2>/dev/null].split("\n").size
237
- #end
238
193
  end
239
194
  end
240
195
 
metadata CHANGED
@@ -1,46 +1,52 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: genecrmod
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Edmund Highcock
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-12-03 00:00:00.000000000 Z
12
+ date: 2015-08-26 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: coderunner
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - ">="
19
+ - - ! '>='
18
20
  - !ruby/object:Gem::Version
19
21
  version: 0.14.2
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
- - - ">="
27
+ - - ! '>='
25
28
  - !ruby/object:Gem::Version
26
29
  version: 0.14.2
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: hdf5
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - ">="
35
+ - - ! '>='
32
36
  - !ruby/object:Gem::Version
33
37
  version: '0'
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
- - - ">="
43
+ - - ! '>='
39
44
  - !ruby/object:Gem::Version
40
45
  version: '0'
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: shoulda
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
51
  - - '='
46
52
  - !ruby/object:Gem::Version
@@ -48,6 +54,7 @@ dependencies:
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
59
  - - '='
53
60
  - !ruby/object:Gem::Version
@@ -55,74 +62,84 @@ dependencies:
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: rdoc
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
- - - "~>"
67
+ - - ~>
60
68
  - !ruby/object:Gem::Version
61
69
  version: '3.12'
62
70
  type: :development
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
- - - "~>"
75
+ - - ~>
67
76
  - !ruby/object:Gem::Version
68
77
  version: '3.12'
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: bundler
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
- - - "~>"
83
+ - - ~>
74
84
  - !ruby/object:Gem::Version
75
85
  version: '1.0'
76
86
  type: :development
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
- - - "~>"
91
+ - - ~>
81
92
  - !ruby/object:Gem::Version
82
93
  version: '1.0'
83
94
  - !ruby/object:Gem::Dependency
84
95
  name: jeweler
85
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
86
98
  requirements:
87
- - - "~>"
99
+ - - ~>
88
100
  - !ruby/object:Gem::Version
89
101
  version: 2.0.1
90
102
  type: :development
91
103
  prerelease: false
92
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
93
106
  requirements:
94
- - - "~>"
107
+ - - ~>
95
108
  - !ruby/object:Gem::Version
96
109
  version: 2.0.1
97
110
  - !ruby/object:Gem::Dependency
98
111
  name: simplecov
99
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
100
114
  requirements:
101
- - - ">="
115
+ - - ! '>='
102
116
  - !ruby/object:Gem::Version
103
117
  version: '0'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
107
122
  requirements:
108
- - - ">="
123
+ - - ! '>='
109
124
  - !ruby/object:Gem::Version
110
125
  version: '0'
111
126
  - !ruby/object:Gem::Dependency
112
127
  name: minitest
113
128
  requirement: !ruby/object:Gem::Requirement
129
+ none: false
114
130
  requirements:
115
- - - "~>"
131
+ - - ~>
116
132
  - !ruby/object:Gem::Version
117
133
  version: '4'
118
134
  type: :development
119
135
  prerelease: false
120
136
  version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
121
138
  requirements:
122
- - - "~>"
139
+ - - ~>
123
140
  - !ruby/object:Gem::Version
124
141
  version: '4'
125
- description: 'A module which allows the GENE gyrokinetic code to be run using the
142
+ description: ! 'A module which allows the GENE gyrokinetic code to be run using the
126
143
  CodeRunner framework. '
127
144
  email: edmundhighcock@users.sourceforge.net
128
145
  executables: []
@@ -131,7 +148,7 @@ extra_rdoc_files:
131
148
  - LICENSE.txt
132
149
  - README.rdoc
133
150
  files:
134
- - ".document"
151
+ - .document
135
152
  - Gemfile
136
153
  - LICENSE.txt
137
154
  - README.rdoc
@@ -149,26 +166,30 @@ files:
149
166
  homepage: http://github.com/edmundhighcock/genecrmod
150
167
  licenses:
151
168
  - GPLv3
152
- metadata: {}
153
169
  post_install_message:
154
170
  rdoc_options: []
155
171
  require_paths:
156
172
  - lib
157
173
  required_ruby_version: !ruby/object:Gem::Requirement
174
+ none: false
158
175
  requirements:
159
- - - ">="
176
+ - - ! '>='
160
177
  - !ruby/object:Gem::Version
161
178
  version: '0'
179
+ segments:
180
+ - 0
181
+ hash: -2164838482483879517
162
182
  required_rubygems_version: !ruby/object:Gem::Requirement
183
+ none: false
163
184
  requirements:
164
- - - ">="
185
+ - - ! '>='
165
186
  - !ruby/object:Gem::Version
166
187
  version: '0'
167
188
  requirements: []
168
189
  rubyforge_project:
169
- rubygems_version: 2.2.2
190
+ rubygems_version: 1.8.23
170
191
  signing_key:
171
- specification_version: 4
192
+ specification_version: 3
172
193
  summary: A module which allows the GENE gyrokinetic code to be run using the CodeRunner
173
194
  framework.
174
195
  test_files: []
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 7938f1cf7fa6c6d75757a3d78b995cc0bbcd49c4
4
- data.tar.gz: 72a2d2d1f472665cf5e7279173ae2f8b1647a17c
5
- SHA512:
6
- metadata.gz: a9923c1cbb1e840c62784b6f6fcdb6c7cb46037087e19f0bc1c9fb0ac6f30a20a64ca5a044edc5a477028d9fbf32126a51110bbb705a5b15f01532e5ec71dd2e
7
- data.tar.gz: 722b2b098f705b6f53897e43f7c6166e38da9787e4b34a325e7f4d3e9e2dd68e44347d32064a2de243258630a03f9a7149cb1cfe351b049b6442971d311e8e98