gryfxcrmod 0.1.10 → 0.1.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/gryfxcrmod.gemspec +4 -4
- data/lib/gryfxcrmod/gryfx.rb +52 -4
- data/lib/gryfxcrmod/namelists.rb +10 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 800a98285a49848e158c4604a6c228b99f3866e1
|
4
|
+
data.tar.gz: a8d9eef858291a583893c8e9d54e282ff0596493
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d98226c8cbb4ae969e2a363c070afe83bc5444916dc4ecf530e06682f437a0e6bdd017f11530bc8c97aaa2c5a95c71d3976f2e950a9c8419a0b0e1e4f191575
|
7
|
+
data.tar.gz: a6291daacd5e099bef7587205a041a695831391124c297814e4dfdcac020f949dba00c092e4180c9bb918d41983be7cdab6ac246294d507f7a02ea1e8cf8d18a
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.11
|
data/gryfxcrmod.gemspec
CHANGED
@@ -2,16 +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: gryfxcrmod 0.1.
|
5
|
+
# stub: gryfxcrmod 0.1.11 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "gryfxcrmod"
|
9
|
-
s.version = "0.1.
|
9
|
+
s.version = "0.1.11"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Edmund Highcock"]
|
14
|
-
s.date = "
|
14
|
+
s.date = "2016-09-23"
|
15
15
|
s.description = "This is a customised subclass of the CodeRunner::Run class which allows CodeRunner to run and analyse the gyrofluid GPU turbulent transport solver Gryfx."
|
16
16
|
s.email = "edmundhighcock@users.sourceforge.net"
|
17
17
|
s.extra_rdoc_files = [
|
@@ -42,7 +42,7 @@ Gem::Specification.new do |s|
|
|
42
42
|
]
|
43
43
|
s.homepage = "http://github.com/edmundhighcock/gryfxcrmod"
|
44
44
|
s.licenses = ["MIT"]
|
45
|
-
s.rubygems_version = "2.
|
45
|
+
s.rubygems_version = "2.2.0"
|
46
46
|
s.summary = "CodeRunner module for the Gryfx Gyrofluid Transport Solver"
|
47
47
|
|
48
48
|
if s.respond_to? :specification_version then
|
data/lib/gryfxcrmod/gryfx.rb
CHANGED
@@ -3,13 +3,18 @@ class CodeRunner
|
|
3
3
|
#
|
4
4
|
# It generates the Gryfx input file, and both analyses the results and allows easy plotting of them.
|
5
5
|
CodeRunner.setup_run_class('gs2')
|
6
|
+
class Gs2
|
7
|
+
# This is necessary because the restart
|
8
|
+
# parameter overrwrites this function in Gryfx
|
9
|
+
alias :set_restart :restart
|
10
|
+
end
|
6
11
|
class Gryfx < Gs2
|
7
12
|
#include CodeRunner::SYSTEM_MODULE
|
8
13
|
|
9
14
|
|
10
15
|
|
11
16
|
# Where this file is
|
12
|
-
@code_module_folder =
|
17
|
+
@code_module_folder = File.dirname(File.expand_path(__FILE__)) # i.e. the directory this file is in
|
13
18
|
|
14
19
|
# Use the Run::FortranNamelist tools to process the variable database
|
15
20
|
setup_namelists(@code_module_folder)
|
@@ -64,11 +69,44 @@ class CodeRunner
|
|
64
69
|
beginning
|
65
70
|
end
|
66
71
|
|
72
|
+
def set_restart(new_run)
|
73
|
+
eputs 'Restarting ' + @run_name
|
74
|
+
#(rcp.variables).each{|v| new_run.set(v, send(v)) if send(v)}
|
75
|
+
#@naming_pars.delete(:preamble)
|
76
|
+
#SUBMIT_OPTIONS.each{|v| new_run.set(v, self.send(v)) unless new_run.send(v)}
|
77
|
+
#new_run.is_a_restart = true
|
78
|
+
#new_run.restart_id = @id
|
79
|
+
#new_run.restart_run_name = @run_name
|
80
|
+
#@runner.nprocs = @nprocs if @runner.nprocs == "1" # 1 is the default
|
81
|
+
#new_run.run_name = nil
|
82
|
+
#new_run.naming_pars = @naming_pars
|
83
|
+
#new_run.update_submission_parameters(new_run.parameter_hash_string, false) if new_run.parameter_hash
|
84
|
+
#new_run.naming_pars.delete(:restart_id)
|
85
|
+
#new_run.generate_run_name
|
86
|
+
#copy_restart_files(new_run)
|
87
|
+
super(new_run)
|
88
|
+
new_run.restart = "on"
|
89
|
+
# Gryfx automatically configures GS2 for restart so here we set the GS2
|
90
|
+
# parameters to default
|
91
|
+
new_run.delt_option = "default"
|
92
|
+
new_run.ginit_option = "noise"
|
93
|
+
new_run
|
94
|
+
end
|
95
|
+
|
96
|
+
def copy_restart_files(new_run)
|
97
|
+
eputs 'Copying gryfx restart file...', ''
|
98
|
+
FileUtils.cp(
|
99
|
+
@directory + '/' + @run_name + '.restart.cdf',
|
100
|
+
new_run.directory + '/' + new_run.run_name + '.restart.cdf'
|
101
|
+
)
|
102
|
+
super(new_run)
|
103
|
+
end
|
104
|
+
|
67
105
|
|
68
106
|
# This is a hook which gets called just before submitting a simulation. It sets up the folder and generates any necessary input files.
|
69
107
|
def generate_input_file
|
70
108
|
if @restart_id and (not @is_a_restart or @resubmit_id)
|
71
|
-
@runner.run_list[@restart_id].
|
109
|
+
@runner.run_list[@restart_id].set_restart(self)
|
72
110
|
elsif ((@save_for_restart and @save_for_restart.fortran_true?) or
|
73
111
|
(@save_for_restart_new and @save_for_restart_new.fortran_true?)) and
|
74
112
|
(not @is_a_restart or @resubmit_id)
|
@@ -76,6 +114,7 @@ class CodeRunner
|
|
76
114
|
FileUtils.makedirs @restart_dir
|
77
115
|
@restart_file = "#@run_name.nc"
|
78
116
|
end
|
117
|
+
@avail_cpu_time = (@wall_mins - 1.0) * 60.0 if @wall_mins
|
79
118
|
write_input_file
|
80
119
|
end
|
81
120
|
|
@@ -99,7 +138,7 @@ class CodeRunner
|
|
99
138
|
#
|
100
139
|
def process_directory_code_specific
|
101
140
|
@grid_option = "box" # For compatibility with the GS2 routines
|
102
|
-
@write_phi_over_time = "true" # For compatibility with the GS2 routines
|
141
|
+
@write_phi_over_time = ".true." # For compatibility with the GS2 routines
|
103
142
|
get_status
|
104
143
|
#p ['id is', id, 'ctd is ', ctd]
|
105
144
|
if ctd
|
@@ -132,7 +171,16 @@ class CodeRunner
|
|
132
171
|
|
133
172
|
def get_completed_timesteps
|
134
173
|
if FileTest.exist?(@run_name + '.cdf')
|
135
|
-
|
174
|
+
count = 0
|
175
|
+
begin
|
176
|
+
@completed_timesteps = netcdf_file.var('t').get.size #gsl_vector('t').size
|
177
|
+
rescue NetcdfError => err
|
178
|
+
eputs err
|
179
|
+
count += 1
|
180
|
+
eputs "Retrying: #{count} attempt(s) out of 4"
|
181
|
+
sleep 1
|
182
|
+
count < 5 ? retry : raise(err)
|
183
|
+
end
|
136
184
|
else
|
137
185
|
@completed_timesteps = 0
|
138
186
|
end
|
data/lib/gryfxcrmod/namelists.rb
CHANGED
@@ -2113,6 +2113,16 @@
|
|
2113
2113
|
:explanation=>"This variable must be an integer."}],
|
2114
2114
|
:type=>:Integer,
|
2115
2115
|
:autoscanned_defaults=>[1]},
|
2116
|
+
:write_netcdf=>
|
2117
|
+
{:should_include=>"true",
|
2118
|
+
:description=>"Set true to write to netcdf file.",
|
2119
|
+
:help=>"",
|
2120
|
+
:code_name=>:write_netcdf,
|
2121
|
+
:must_pass=>
|
2122
|
+
[{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
|
2123
|
+
:explanation=>
|
2124
|
+
"This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
|
2125
|
+
:type=>:Fortran_Bool},
|
2116
2126
|
:hyper=>
|
2117
2127
|
{:should_include=>"true",
|
2118
2128
|
:description=>"",
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gryfxcrmod
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Edmund Highcock
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-09-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: coderunner
|
@@ -143,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
143
|
version: '0'
|
144
144
|
requirements: []
|
145
145
|
rubyforge_project:
|
146
|
-
rubygems_version: 2.
|
146
|
+
rubygems_version: 2.2.0
|
147
147
|
signing_key:
|
148
148
|
specification_version: 4
|
149
149
|
summary: CodeRunner module for the Gryfx Gyrofluid Transport Solver
|