trinitycrmod 0.7.3 → 0.7.4
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.
- checksums.yaml +4 -4
- data/Gemfile +1 -0
- data/Rakefile +36 -1
- data/VERSION +1 -1
- data/lib/trinitycrmod/trinity.rb +49 -88
- data/lib/trinitycrmod/trinity_gs2.rb +40 -17
- data/trinitycrmod.gemspec +5 -2
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b4c4064ac49be83fd3218fe6019c7c43abe85f88
|
4
|
+
data.tar.gz: 310f019da68adf055c8cc32a70048fdfac956ceb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1d8442ecee17f61f52c84115d1db381bfa806fd97a343ea46ae6112a744be096aa353dbb83ad5eda37a3a35c60c66ee64e7afb928b38001838dc0985883158b3
|
7
|
+
data.tar.gz: 1fd338e931c0d1fd2dc94d86c8fb6c2382154f3bdea2e0ff5349b0792ece360b3e5dc1eb9ca76954c69069088d5f6494f51db6742342374f8534c564aab0c568
|
data/Gemfile
CHANGED
@@ -4,6 +4,7 @@ source "http://rubygems.org"
|
|
4
4
|
gem "coderunner", ">= 0.16.10"
|
5
5
|
gem "text-data-tools", ">= 1.1.6"
|
6
6
|
gem "gs2crmod", ">=0.11.76"
|
7
|
+
gem "gryfxcrmod", ">=0.1.9"
|
7
8
|
|
8
9
|
# Add dependencies to develop your gem here.
|
9
10
|
# Include everything needed to run rake, tests, features, etc.
|
data/Rakefile
CHANGED
@@ -27,7 +27,7 @@ end
|
|
27
27
|
Jeweler::RubygemsDotOrgTasks.new
|
28
28
|
|
29
29
|
require 'rake/testtask'
|
30
|
-
Rake::TestTask.new(:test) do |test|
|
30
|
+
Rake::TestTask.new(:test => [:clean_tests]) do |test|
|
31
31
|
test.libs << 'lib' << 'test'
|
32
32
|
test.pattern = 'test/**/test_*.rb'
|
33
33
|
test.verbose = true
|
@@ -38,6 +38,41 @@ Rake::TestTask.new(:sync_variables) do |test|
|
|
38
38
|
test.pattern = 'sync_variables/sync_variables.rb'
|
39
39
|
test.verbose = true
|
40
40
|
end
|
41
|
+
|
42
|
+
task :clean_tests do
|
43
|
+
require 'coderunner'
|
44
|
+
require 'rubygems'
|
45
|
+
require 'bundler'
|
46
|
+
begin
|
47
|
+
Bundler.setup(:default, :development)
|
48
|
+
rescue Bundler::BundlerError => e
|
49
|
+
$stderr.puts e.message
|
50
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
51
|
+
exit e.status_code
|
52
|
+
end
|
53
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'lib'))
|
54
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
55
|
+
@runner = CodeRunner.fetch_runner(Y: 'test/gs2_42982', C: 'trinity', X: '/dev/null')
|
56
|
+
FileUtils.rm(@runner.run_class.rcp.user_defaults_location + '/rake_test_gs2_42982_defaults.rb') rescue nil
|
57
|
+
FileUtils.rm('test/gs2_42982/rake_test_gs2_42982_defaults.rb') rescue nil
|
58
|
+
FileUtils.rm('test/gs2_42982/pr08_jet_42982_1d.dat') rescue nil
|
59
|
+
FileUtils.rm('test/gs2_42982/pr08_jet_42982_2d.dat') rescue nil
|
60
|
+
FileUtils.rm('test/gs2_42982/.CODE_RUNNER_TEMP_RUN_LIST_CACHE') rescue nil
|
61
|
+
#STDIN.gets
|
62
|
+
FileUtils.rm_r('test/gs2_42982/v/') rescue nil
|
63
|
+
FileUtils.rm_r('test/gs2_42982_results/v') rescue nil
|
64
|
+
FileUtils.rm('test/gs2_42982_results/.code_runner_script_defaults.rb') rescue nil
|
65
|
+
FileUtils.rm('test/gs2_42982_results/.CODE_RUNNER_TEMP_RUN_LIST_CACHE') rescue nil
|
66
|
+
FileUtils.rm('test/ifspppl_results/.code_runner_script_defaults.rb') rescue nil
|
67
|
+
FileUtils.rm_r('test/ifspppl_results/v/id_1/') rescue nil
|
68
|
+
FileUtils.rm('test/ifspppl/.code_runner_script_defaults.rb') rescue nil
|
69
|
+
FileUtils.rm('test/ifspppl/.CODE_RUNNER_TEMP_RUN_LIST_CACHE') rescue nil
|
70
|
+
FileUtils.rm('test/gs2_42982/pr08_jet_42982_1d.dat') rescue nil
|
71
|
+
FileUtils.rm('test/gs2_42982/pr08_jet_42982_2d.dat') rescue nil
|
72
|
+
FileUtils.rm_r('test/ifspppl/v') rescue nil
|
73
|
+
end
|
74
|
+
|
75
|
+
|
41
76
|
|
42
77
|
|
43
78
|
#require 'rcov/rcovtask
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.7.
|
1
|
+
0.7.4
|
data/lib/trinitycrmod/trinity.rb
CHANGED
@@ -12,6 +12,11 @@ class CodeRunner
|
|
12
12
|
class FluxOptionError < StandardError; end
|
13
13
|
|
14
14
|
|
15
|
+
# Setup gs2 in case people are using it
|
16
|
+
CodeRunner.setup_run_class('gs2')
|
17
|
+
# Setup gryfx in case people are using it
|
18
|
+
CodeRunner.setup_run_class('gryfx')
|
19
|
+
require 'trinitycrmod/trinity_gs2'
|
15
20
|
|
16
21
|
# Where this file is
|
17
22
|
@code_module_folder = File.dirname(File.expand_path(__FILE__)) # i.e. the directory this file is in
|
@@ -28,12 +33,6 @@ class CodeRunner
|
|
28
33
|
require 'trinitycrmod/flux_interpolator'
|
29
34
|
require 'trinitycrmod/read_netcdf'
|
30
35
|
|
31
|
-
# Setup gs2 in case people are using it
|
32
|
-
CodeRunner.setup_run_class('gs2')
|
33
|
-
require 'trinitycrmod/trinity_gs2'
|
34
|
-
|
35
|
-
# Setup gryfx in case people are using it
|
36
|
-
CodeRunner.setup_run_class('gryfx')
|
37
36
|
|
38
37
|
################################################
|
39
38
|
# Quantities that are read or determined by CodeRunner
|
@@ -102,10 +101,10 @@ class CodeRunner
|
|
102
101
|
#new_run = self.dup
|
103
102
|
(rcp.variables).each{|v| new_run.set(v, send(v)) if send(v) or new_run.send(v)}
|
104
103
|
if @flux_option == "gs2"
|
105
|
-
|
104
|
+
flux_runs.each_with_index do |run, i|
|
106
105
|
CodeRunner::Gs2.rcp.variables.each{|v|
|
107
106
|
next if [:ginit_option, :delt_option].include? v and new_run.no_restart_gs2
|
108
|
-
new_run.
|
107
|
+
new_run.flux_runs[i].set(v, run.send(v)) if run.send(v) or new_run.flux_runs[i].send(v)
|
109
108
|
}
|
110
109
|
end
|
111
110
|
end
|
@@ -122,7 +121,7 @@ class CodeRunner
|
|
122
121
|
new_run.init_file = @run_name + ".tmp"
|
123
122
|
@runner.nprocs = @nprocs if @runner.nprocs == "1" # 1 is the default so this means the user probably didn't specify nprocs
|
124
123
|
# This is unnecessary for single restart file.
|
125
|
-
warning( "Restart is not on the same number of processors as the previous run: new is #{new_run.nprocs.inspect} and old is #{@nprocs.inspect}... this is only OK if you are using parallel netcdf and single restart files.") if not new_run.no_restart_gs2 and (!new_run.nprocs or new_run.nprocs != @nprocs)
|
124
|
+
warning( "Restart is not on the same number of processors as the previous run: new is #{new_run.nprocs.inspect} and old is #{@nprocs.inspect}... this is only OK if you are using parallel netcdf and single restart files.") if flux_gs2? and not new_run.no_restart_gs2 and (!new_run.nprocs or new_run.nprocs != @nprocs)
|
126
125
|
raise "Restart cannot have a different sized jacobian: new is #{new_run.n_flux_tubes_jac} and old is #{n_flux_tubes_jac}" unless new_run.n_flux_tubes_jac == n_flux_tubes_jac
|
127
126
|
# @runner.parameters.each{|var, value| new_run.set(var,value)} if @runner.parameters
|
128
127
|
# ep @runner.parameters
|
@@ -141,38 +140,24 @@ class CodeRunner
|
|
141
140
|
# run.
|
142
141
|
FileUtils.cp("#@directory/#@run_name.#{ext}", "#{new_run.directory}/.")
|
143
142
|
end
|
144
|
-
if new_run.
|
143
|
+
if (new_run.flux_gs2? and flux_gs2?) and not new_run.no_restart_gs2
|
145
144
|
for i in 0...n_flux_tubes
|
146
145
|
break if i >= new_run.n_flux_tubes
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
#jn = i + 1
|
153
|
-
##run_name = @run_name + (jn).to_s
|
154
|
-
#folder = "flux_tube_#{jn}"
|
155
|
-
#end
|
156
|
-
#
|
157
|
-
folder = gs2_folder_name(i)
|
158
|
-
|
159
|
-
new_run.gs2_runs[i].directory = new_run.directory + "/#{folder}"
|
160
|
-
FileUtils.makedirs(new_run.gs2_runs[i].directory)
|
161
|
-
#ep ['gs2_runs[i] before', gs2_runs[i].nwrite, new_run.gs2_runs[i].nwrite, new_run.gs2_runs[i].parameter_hash]
|
162
|
-
gs2_runs[i].restart(new_run.gs2_runs[i])
|
146
|
+
folder = flux_folder_name(i)
|
147
|
+
|
148
|
+
new_run.flux_runs[i].directory = new_run.directory + "/#{folder}"
|
149
|
+
FileUtils.makedirs(new_run.flux_runs[i].directory)
|
150
|
+
flux_runs[i].restart(new_run.flux_runs[i])
|
163
151
|
if new_run.neval_calibrate and new_run.neval_calibrate > 0 and
|
164
|
-
new_run.
|
152
|
+
new_run.flux_runs[i].nonlinear_mode == "off"
|
165
153
|
|
166
|
-
new_run.
|
167
|
-
new_run.
|
168
|
-
new_run.
|
169
|
-
new_run.
|
154
|
+
new_run.flux_runs[i].ginit_option = "noise"
|
155
|
+
new_run.flux_runs[i].delt_option = "default"
|
156
|
+
new_run.flux_runs[i].is_a_restart = false
|
157
|
+
new_run.flux_runs[i].restart_id = nil
|
170
158
|
end
|
171
|
-
#ep ['gs2_runs[i] after', gs2_runs[i].nwrite, new_run.gs2_runs[i].nwrite, new_run.gs2_runs[i].parameter_hash]
|
172
|
-
#new_run.gs2_runs[i].run_name = new_run.run_name + (i+1).to_s
|
173
159
|
end
|
174
160
|
end
|
175
|
-
#@runner.submit(new_run)
|
176
161
|
new_run
|
177
162
|
end
|
178
163
|
# This is a hook which gets called just before submitting a simulation. It sets up the folder and generates any necessary input files.
|
@@ -184,7 +169,7 @@ class CodeRunner
|
|
184
169
|
setup_chease if uses_chease?
|
185
170
|
check_parameters
|
186
171
|
write_input_file
|
187
|
-
|
172
|
+
generate_flux_input_files if flux_gs2? or flux_gryfx?
|
188
173
|
end
|
189
174
|
|
190
175
|
|
@@ -198,10 +183,10 @@ class CodeRunner
|
|
198
183
|
def update_submission_parameters(parameters, start_from_defaults=true)
|
199
184
|
@set_flux_defaults_procs ||= []
|
200
185
|
super(parameters, start_from_defaults)
|
201
|
-
if
|
186
|
+
if flux_gs2? or flux_gryfx?
|
202
187
|
raise "No set_flux_defaults_procs defined" unless @set_flux_defaults_procs.size > 0
|
203
188
|
@set_flux_defaults_procs.each{|prc| prc.call}
|
204
|
-
|
189
|
+
flux_parameter_hashes = {}
|
205
190
|
if @flux_pars
|
206
191
|
@flux_pars.each do |par, val|
|
207
192
|
if val.kind_of? Hash
|
@@ -215,8 +200,8 @@ class CodeRunner
|
|
215
200
|
range = n..n
|
216
201
|
end
|
217
202
|
for i in range
|
218
|
-
|
219
|
-
|
203
|
+
flux_parameter_hashes[i] ||= {}
|
204
|
+
flux_parameter_hashes[i][par] = v
|
220
205
|
end
|
221
206
|
#gs2_parameter_hashes[n] ||= {}
|
222
207
|
#gs2_parameter_hashes[n][par] = v
|
@@ -224,15 +209,15 @@ class CodeRunner
|
|
224
209
|
else
|
225
210
|
for i in 0...n_flux_tubes
|
226
211
|
#gs2_runs.each{|r| r.set(par, val)}
|
227
|
-
|
228
|
-
|
212
|
+
flux_parameter_hashes[i] ||= {}
|
213
|
+
flux_parameter_hashes[i][par] = val
|
229
214
|
end
|
230
215
|
end
|
231
216
|
end
|
232
217
|
end
|
233
218
|
for i in 0...n_flux_tubes
|
234
|
-
|
235
|
-
|
219
|
+
flux_runs[i].parameter_hash = (flux_parameter_hashes[i] || {}).inspect
|
220
|
+
flux_runs[i].update_submission_parameters(flux_runs[i].parameter_hash, false)
|
236
221
|
end
|
237
222
|
end
|
238
223
|
self
|
@@ -286,14 +271,14 @@ class CodeRunner
|
|
286
271
|
|
287
272
|
# Writes the gs2 input files, creating separate subfolders
|
288
273
|
# for them if @subfolders is .true.
|
289
|
-
def
|
274
|
+
def generate_flux_input_files
|
290
275
|
# At the moment we must use subfolders
|
291
276
|
for i in 0...n_flux_tubes
|
292
277
|
#gs2run = gs2_run(:base).dup
|
293
278
|
#gs2_run(i).instance_variables.each do |var|
|
294
279
|
#gs2run.instance_variable_set(var, gs2_run(i).instance_variable_get(var))
|
295
280
|
#end
|
296
|
-
|
281
|
+
fluxrun = flux_runs[i]
|
297
282
|
#ep ['gs2_runs[i] in generate', gs2_runs[i].nwrite]
|
298
283
|
#p ['i',i]
|
299
284
|
#if i >= n_flux_tubes_jac
|
@@ -306,20 +291,20 @@ class CodeRunner
|
|
306
291
|
#folder = "flux_tube_#{jn}"
|
307
292
|
#end
|
308
293
|
|
309
|
-
folder =
|
310
|
-
run_name =
|
294
|
+
folder = flux_folder_name(i)
|
295
|
+
run_name = flux_run_name(i)
|
311
296
|
|
312
297
|
if @subfolders and @subfolders.fortran_true?
|
313
|
-
|
314
|
-
FileUtils.makedirs(
|
315
|
-
|
316
|
-
|
298
|
+
fluxrun.directory = @directory + "/" + folder
|
299
|
+
FileUtils.makedirs(fluxrun.directory)
|
300
|
+
fluxrun.relative_directory = @relative_directory + "/" + folder
|
301
|
+
fluxrun.restart_dir = fluxrun.directory + "/nc"
|
317
302
|
else
|
318
|
-
|
319
|
-
|
303
|
+
fluxrun.directory = @directory
|
304
|
+
fluxrun.relative_directory = @relative_directory
|
320
305
|
end
|
321
|
-
|
322
|
-
|
306
|
+
fluxrun.run_name = run_name
|
307
|
+
fluxrun.nprocs = @nprocs
|
323
308
|
if i==0
|
324
309
|
block = Proc.new{check_parameters}
|
325
310
|
else
|
@@ -327,15 +312,15 @@ class CodeRunner
|
|
327
312
|
end
|
328
313
|
#if @restart_id
|
329
314
|
#gs2run.restart_id =
|
330
|
-
Dir.chdir(
|
331
|
-
|
332
|
-
|
315
|
+
Dir.chdir(fluxrun.directory) do
|
316
|
+
fluxrun.generate_input_file(&block)
|
317
|
+
fluxrun.write_info
|
333
318
|
end
|
334
319
|
|
335
320
|
### Hack the input file so that gs2 gets the location of
|
336
321
|
# the restart dir correctly within trinity
|
337
|
-
if @subfolders and @subfolders.fortran_true?
|
338
|
-
infile =
|
322
|
+
if @subfolders and @subfolders.fortran_true?
|
323
|
+
infile = fluxrun.directory + "/" + fluxrun.run_name + ".in"
|
339
324
|
text = File.read(infile)
|
340
325
|
File.open(infile, 'w'){|f| f.puts text.sub(/restart_dir\s*=\s*"nc"/, "restart_dir = \"#{folder}/nc\"")}
|
341
326
|
end
|
@@ -377,11 +362,8 @@ class CodeRunner
|
|
377
362
|
def generate_component_runs
|
378
363
|
#puts "HERE"
|
379
364
|
@component_runs ||= []
|
380
|
-
if
|
381
|
-
|
382
|
-
#puts "generate_component_runs", @component_runs.size, @runner.run_list.size, caller.to_a.slice(0..9)
|
383
|
-
#puts @component_runs[1].ginit_option if @component_runs.size > 0
|
384
|
-
#STDIN.gets
|
365
|
+
if flux_gryfx? or flux_gs2?
|
366
|
+
fclass = flux_class
|
385
367
|
|
386
368
|
for i in 0...n_flux_tubes
|
387
369
|
component = @component_runs[i]
|
@@ -389,7 +371,7 @@ class CodeRunner
|
|
389
371
|
if not component
|
390
372
|
#p "HEELO"
|
391
373
|
#p [i, '3,', component, '4', @component_runs.size]
|
392
|
-
component = @component_runs[i] =
|
374
|
+
component = @component_runs[i] = fclass.new(@runner, self).create_component
|
393
375
|
#component.instance_variable_set(:@output_file, output_file)
|
394
376
|
#p [i, '3,', component, '4', @component_runs.size]
|
395
377
|
if false
|
@@ -417,7 +399,7 @@ class CodeRunner
|
|
417
399
|
#component.status = @status
|
418
400
|
#p ["HERE2", @component_runs.size, @component_runs[i]]
|
419
401
|
#Dir.chdir(@directory) {
|
420
|
-
compdir =
|
402
|
+
compdir = flux_folder_name(i) # "flux_tube_#{i+1}"
|
421
403
|
Dir.chdir(compdir){component.process_directory} if FileTest.exist? compdir
|
422
404
|
#}
|
423
405
|
component.component_runs = []
|
@@ -435,27 +417,6 @@ class CodeRunner
|
|
435
417
|
end
|
436
418
|
|
437
419
|
|
438
|
-
def save
|
439
|
-
#@gs2_run_list.values.each{|r| r.runner = nil; r.component_runs = []} if @gs2_run_list.kind_of? Hash
|
440
|
-
super
|
441
|
-
#@gs2_run_list.values.each{|r| r.runner = @runner} if @gs2_run_list.kind_of? Hash
|
442
|
-
|
443
|
-
#logf(:save)
|
444
|
-
#raise CRFatal.new("Something has gone horribly wrong: runner.class is #{@runner.class} instead of CodeRunner") unless @runner.class.to_s == "CodeRunner"
|
445
|
-
#runner, @runner = @runner, nil
|
446
|
-
#@system_triers, old_triers = nil, @system_triers
|
447
|
-
#@component_runs.each{|run| run.runner = nil; run.component_runs = []} if @component_runs
|
448
|
-
##@component_runs.each{|run| run.runner = nil} if @component_runs
|
449
|
-
## logi(self)
|
450
|
-
##pp self
|
451
|
-
##@component_runs.each{|ph| ph.instance_variables.each{|var| puts var; pp ph.instance_variable_get(var); STDIN.gets; puts ph.Marshal.dump(instance_variable_get(var))}} if @component_runs
|
452
|
-
##instance_variables.each{|var| puts var; instance_variable_get(var); puts Marshal.dump(instance_variable_get(var)); STDIN.gets}
|
453
|
-
#Dir.chdir(@directory){File.open(".code_runner_run_data", 'w'){|file| file.puts Marshal.dump(self)}}
|
454
|
-
#@runner = runner
|
455
|
-
#@component_runs.each{|run| run.runner = runner} if @component_runs
|
456
|
-
#@system_triers = old_triers
|
457
|
-
end
|
458
|
-
|
459
420
|
@source_code_subfolders = []
|
460
421
|
|
461
422
|
# This method, as its name suggests, is called whenever CodeRunner is asked to analyse a run directory. This happens if the run status is not :Complete, or if the user has specified recalc_all(-A on the command line) or reprocess_all (-a on the command line).
|
@@ -7,8 +7,8 @@
|
|
7
7
|
#end
|
8
8
|
#end
|
9
9
|
class CodeRunner
|
10
|
-
class
|
11
|
-
|
10
|
+
class Trinity
|
11
|
+
module TrinityComponent
|
12
12
|
attr_accessor :trinity_run
|
13
13
|
def initialize(runner, trinity_run)
|
14
14
|
super(runner)
|
@@ -40,30 +40,37 @@ class CodeRunner
|
|
40
40
|
@trinity_run = trinrun
|
41
41
|
end
|
42
42
|
end
|
43
|
-
|
44
|
-
|
43
|
+
|
44
|
+
class TrinityComponent::Gs2 < CodeRunner::Gs2
|
45
|
+
include TrinityComponent
|
46
|
+
end
|
47
|
+
|
48
|
+
class TrinityComponent::Gryfx < CodeRunner::Gryfx
|
49
|
+
include TrinityComponent
|
50
|
+
end
|
45
51
|
|
46
52
|
# This function creates a new Trinity defaults file, with Trinity parameters taken from
|
47
53
|
# trinity_input_file, and GS2 parameters taken from gs2_input_file. The file is then moved
|
48
54
|
# to the CodeRunner central defaults location, the current folder is configured to use
|
49
55
|
# the defaults file.
|
50
|
-
def self.
|
51
|
-
raise "Please specify a name, a trinity input file and a
|
56
|
+
def self.use_new_defaults_file_with_flux(name = ARGV[-4], trinity_input_file = ARGV[-3], flux_input_file = ARGV[-2], fluxcode=ARGV[-1])
|
57
|
+
raise "Please specify a name, a trinity input file and a flux code input file" if name == "use_new_defaults_file_with_flux"
|
52
58
|
defaults_filename = "#{name}_defaults.rb"
|
53
|
-
tmp_filename = "#{name}
|
59
|
+
tmp_filename = "#{name}_flxtmp_defaults.rb"
|
54
60
|
central_defaults_filename = rcp.user_defaults_location + "/" + defaults_filename
|
55
|
-
FileUtils.rm(name + '_defaults.rb') if FileTest.exist?(name + '_defaults.rb')
|
56
|
-
FileUtils.rm(central_defaults_filename) if FileTest.exist?(central_defaults_filename)
|
61
|
+
#FileUtils.rm(name + '_defaults.rb') if FileTest.exist?(name + '_defaults.rb')
|
62
|
+
#FileUtils.rm(central_defaults_filename) if FileTest.exist?(central_defaults_filename)
|
57
63
|
FileUtils.rm(tmp_filename) if FileTest.exist?(tmp_filename)
|
58
64
|
raise "Defaults file: #{central_defaults_filename} already exists" if FileTest.exist? central_defaults_filename
|
59
65
|
|
66
|
+
flxclass = flux_class(fluxcode)
|
60
67
|
|
61
68
|
make_new_defaults_file(name, trinity_input_file)
|
62
|
-
|
69
|
+
flxclass.make_new_defaults_file(name + '_flxtmp', flux_input_file)
|
63
70
|
|
64
71
|
File.open(defaults_filename, 'a'){|file| file.puts <<EOF2
|
65
72
|
@set_flux_defaults_procs.push(Proc.new do
|
66
|
-
|
73
|
+
flux_runs.each do |run|
|
67
74
|
run.instance_eval do
|
68
75
|
#{File.read(tmp_filename).gsub(/\A|\n/, "\n ")}
|
69
76
|
end
|
@@ -82,8 +89,9 @@ EOF2
|
|
82
89
|
|
83
90
|
# Generates the component runs for GS2 and returns the hash
|
84
91
|
# Raises an error if flux_option != "gs2"
|
85
|
-
def
|
86
|
-
raise FluxOptionError.new("
|
92
|
+
def flux_runs
|
93
|
+
raise FluxOptionError.new("flux_runs called and flux_option != gs2 or gryfx") if not flux_gs2? or flux_gryfx?
|
94
|
+
|
87
95
|
|
88
96
|
#puts "2@COMMMMMMMMMMMMMPOOOOOOOOOOOOOONNNETN", @component_runs
|
89
97
|
generate_component_runs if not (@component_runs and @component_runs.size == n_flux_tubes)
|
@@ -99,14 +107,14 @@ EOF2
|
|
99
107
|
#@gs2_run_list[key]
|
100
108
|
end
|
101
109
|
|
102
|
-
# Override standard CodeRunner method to allow for
|
110
|
+
# Override standard CodeRunner method to allow for flux code variables
|
103
111
|
def evaluate_defaults_file(filename)
|
104
112
|
text = File.read(filename)
|
105
113
|
instance_eval(text)
|
106
114
|
text.scan(/^\s*@(\w+)/) do
|
107
115
|
var_name = $~[1].to_sym
|
108
116
|
next if var_name == :defaults_file_description
|
109
|
-
unless rcp.variables.include? var_name or (flux_gs2? and Gs2.rcp.variables.include? var_name)
|
117
|
+
unless rcp.variables.include? var_name or (flux_gs2? and Gs2.rcp.variables.include? var_name) or (flux_gryfx? and Gryfx.rcp.variables.include? var_name)
|
110
118
|
warning("---#{var_name}---, specified in #{File.expand_path(filename)}, is not a variable. This could be an error")
|
111
119
|
end
|
112
120
|
end
|
@@ -123,12 +131,27 @@ EOF2
|
|
123
131
|
|
124
132
|
end
|
125
133
|
|
134
|
+
def self.flux_class(code)
|
135
|
+
case code
|
136
|
+
when "gs2"
|
137
|
+
CodeRunner::Trinity::TrinityComponent::Gs2
|
138
|
+
when "gryfx"
|
139
|
+
CodeRunner::Trinity::TrinityComponent::Gryfx
|
140
|
+
end
|
141
|
+
end
|
142
|
+
def flux_class
|
143
|
+
self.class.flux_class(@flux_option)
|
144
|
+
end
|
126
145
|
# Is the flux tube code being used gs2?
|
127
146
|
def flux_gs2?
|
128
147
|
@flux_option == "gs2"
|
129
148
|
end
|
149
|
+
# Is the flux tube code being used gryfx?
|
150
|
+
def flux_gryfx?
|
151
|
+
@flux_option == "gryfx"
|
152
|
+
end
|
130
153
|
|
131
|
-
def
|
154
|
+
def flux_run_name(i)
|
132
155
|
if i >= n_flux_tubes_jac
|
133
156
|
jn = i - n_flux_tubes_jac + 1
|
134
157
|
run_name = "calibrate_" + @run_name + (jn).to_s
|
@@ -138,7 +161,7 @@ EOF2
|
|
138
161
|
end
|
139
162
|
run_name
|
140
163
|
end
|
141
|
-
def
|
164
|
+
def flux_folder_name(i)
|
142
165
|
if i >= n_flux_tubes_jac
|
143
166
|
jn = i - n_flux_tubes_jac + 1
|
144
167
|
folder = "calibrate_#{jn}"
|
data/trinitycrmod.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
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: trinitycrmod 0.7.
|
5
|
+
# stub: trinitycrmod 0.7.4 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "trinitycrmod"
|
9
|
-
s.version = "0.7.
|
9
|
+
s.version = "0.7.4"
|
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"]
|
@@ -54,6 +54,7 @@ Gem::Specification.new do |s|
|
|
54
54
|
s.add_runtime_dependency(%q<coderunner>, [">= 0.16.10"])
|
55
55
|
s.add_runtime_dependency(%q<text-data-tools>, [">= 1.1.6"])
|
56
56
|
s.add_runtime_dependency(%q<gs2crmod>, [">= 0.11.76"])
|
57
|
+
s.add_runtime_dependency(%q<gryfxcrmod>, [">= 0.1.9"])
|
57
58
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
58
59
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
59
60
|
s.add_development_dependency(%q<bundler>, ["> 1.0.0"])
|
@@ -62,6 +63,7 @@ Gem::Specification.new do |s|
|
|
62
63
|
s.add_dependency(%q<coderunner>, [">= 0.16.10"])
|
63
64
|
s.add_dependency(%q<text-data-tools>, [">= 1.1.6"])
|
64
65
|
s.add_dependency(%q<gs2crmod>, [">= 0.11.76"])
|
66
|
+
s.add_dependency(%q<gryfxcrmod>, [">= 0.1.9"])
|
65
67
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
66
68
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
67
69
|
s.add_dependency(%q<bundler>, ["> 1.0.0"])
|
@@ -71,6 +73,7 @@ Gem::Specification.new do |s|
|
|
71
73
|
s.add_dependency(%q<coderunner>, [">= 0.16.10"])
|
72
74
|
s.add_dependency(%q<text-data-tools>, [">= 1.1.6"])
|
73
75
|
s.add_dependency(%q<gs2crmod>, [">= 0.11.76"])
|
76
|
+
s.add_dependency(%q<gryfxcrmod>, [">= 0.1.9"])
|
74
77
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
75
78
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
76
79
|
s.add_dependency(%q<bundler>, ["> 1.0.0"])
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trinitycrmod
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Edmund Highcock
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 0.11.76
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: gryfxcrmod
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.1.9
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.1.9
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: shoulda
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|