trinitycrmod 0.2.6 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +3 -2
- data/VERSION +1 -1
- data/lib/trinitycrmod/graphs.rb +32 -6
- data/lib/trinitycrmod/namelists.rb +28 -27
- data/lib/trinitycrmod/trinity.rb +98 -2
- data/lib/trinitycrmod/trinity_gs2.rb +68 -0
- data/test/gs2_42982/pr08_jet_42982_1d.dat.gz +0 -0
- data/test/gs2_42982/pr08_jet_42982_2d.dat.gz +0 -0
- data/test/gs2_42982/shot42982_jet.in +186 -0
- data/test/gs2_42982/shot42982_jet.trin +57 -0
- data/test/gs2_42982_results/v.tgz +0 -0
- data/test/test_trinitycrmod.rb +65 -1
- data/trinitycrmod.gemspec +21 -11
- metadata +44 -41
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0877712c481a4fec5d91f15adc539a7e1fdb83a8
|
4
|
+
data.tar.gz: 1982d8891a6c0002d8fa0ef9ec7e10b157cc1252
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 047fbdde9d918bf6bfb0a3688101c12170c0f3bdbd06aea46d719d74ed357f7f50fd97226e9cebdbf6d9ffd867bf647ebcf729d84f90d8298158bdc43ce70d2a
|
7
|
+
data.tar.gz: 6340ce30b9d2bf792593f84feb303611b86ccd5182cf6258a8bcda4fb72bb5b3d52bd22ea80ed8e5592e422fcb05723d53957d5be88bed1148edf11fb78f6248
|
data/Gemfile
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
# Add dependencies required to use your gem here.
|
3
3
|
# Example:
|
4
|
-
gem "coderunner", ">= 0.
|
4
|
+
gem "coderunner", ">= 0.14.0"
|
5
5
|
gem "text-data-tools", ">= 1.1.3"
|
6
|
+
gem "gs2crmod", ">=0.11.10"
|
6
7
|
|
7
8
|
# Add dependencies to develop your gem here.
|
8
9
|
# Include everything needed to run rake, tests, features, etc.
|
@@ -10,5 +11,5 @@ group :development do
|
|
10
11
|
gem "shoulda", ">= 0"
|
11
12
|
gem "rdoc", "~> 3.12"
|
12
13
|
gem "bundler", "> 1.0.0"
|
13
|
-
gem "jeweler", ">=
|
14
|
+
gem "jeweler", ">= 2.0.0"
|
14
15
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
data/lib/trinitycrmod/graphs.rb
CHANGED
@@ -15,8 +15,17 @@ class CodeRunner::Trinity
|
|
15
15
|
def prof_graphkit(options)
|
16
16
|
raise "Please specify t_index" unless options[:t_index]
|
17
17
|
it = options[:t_index] - 1
|
18
|
-
|
19
|
-
|
18
|
+
if ta = options[:time_average]
|
19
|
+
if ta < 0
|
20
|
+
t_indices = (it+ta..it).to_a
|
21
|
+
else
|
22
|
+
t_indices = (it..it+ta).to_a
|
23
|
+
end
|
24
|
+
else
|
25
|
+
t_indices = [it]
|
26
|
+
end
|
27
|
+
array = t_indices.map{|i| get_2d_array_float(options[:outfile], options[:header], /1.*time/)[i].to_gslv}.mean.to_a
|
28
|
+
rho_array = t_indices.map{|i| get_2d_array_float(options[:outfile], /2.*radius/, /1.*time/)[i].to_gslv}.mean.to_a
|
20
29
|
if options[:exclude_perturbed_fluxes]
|
21
30
|
s = array.size
|
22
31
|
array = array.slice(0...nrad-1)
|
@@ -26,13 +35,26 @@ class CodeRunner::Trinity
|
|
26
35
|
kit = GraphKit.autocreate(x: {data: rho_array.to_gslv, title: 'rho', units: ''},
|
27
36
|
y: {data: array.to_gslv, title: options[:title]||"", units: options[:units]||""}
|
28
37
|
)
|
29
|
-
kit.data[0].title += " at time = #{list(:t)[it+1]} s"
|
38
|
+
kit.data[0].title += " at time = #{list(:t)[it+1]} s for id #{id}"
|
39
|
+
kit.data[0].gp.with = 'lp'
|
30
40
|
kit
|
31
41
|
end
|
32
42
|
# Graph of Qi in gyroBohm units against rho for a given t_index
|
33
43
|
def ion_hflux_gb_prof_graphkit(options)
|
34
44
|
fluxes_prof_graphkit(options.absorb({header: /Qi.*\(GB/, title: 'Ion Heat Flux', units: 'Q_gB'}))
|
35
45
|
end
|
46
|
+
# Graph of Qi in MW against rho for a given t_index
|
47
|
+
def ion_hflux_prof_graphkit(options)
|
48
|
+
fluxes_prof_graphkit(options.absorb({header: /Qi.*\(MW/, title: 'Ion Heat Flux', units: 'MW'}))
|
49
|
+
end
|
50
|
+
# Graph of Qe in gyroBohm units against rho for a given t_index
|
51
|
+
def eln_hflux_gb_prof_graphkit(options)
|
52
|
+
fluxes_prof_graphkit(options.absorb({header: /Qe.*\(GB/, title: 'Electron Heat Flux', units: 'Q_gB'}))
|
53
|
+
end
|
54
|
+
# Graph of Qe in MW against rho for a given t_index
|
55
|
+
def eln_hflux_prof_graphkit(options)
|
56
|
+
fluxes_prof_graphkit(options.absorb({header: /Qe.*\(MW/, title: 'Electron Heat Flux', units: 'MW'}))
|
57
|
+
end
|
36
58
|
# Graph of toroidal angular momentum flux in gyroBohm units against rho for a given t_index
|
37
59
|
def lflux_gb_prof_graphkit(options)
|
38
60
|
fluxes_prof_graphkit(options.absorb({header: /Pi.*\(GB/, title: 'Toroidal Angular Momentum Flux', units: 'Pi_gB'}))
|
@@ -45,18 +67,22 @@ class CodeRunner::Trinity
|
|
45
67
|
def ion_temp_prof_graphkit(options)
|
46
68
|
return nt_prof_graphkit(options.absorb({header: /i\+ temp/, title: 'Ti', units: 'keV'}))
|
47
69
|
end
|
70
|
+
# Graph of Te against rho for a given t_index
|
71
|
+
def eln_temp_prof_graphkit(options)
|
72
|
+
return nt_prof_graphkit(options.absorb({header: /e\- temp/, title: 'Te', units: 'keV'}))
|
73
|
+
end
|
48
74
|
|
49
75
|
# Graph of ion power integrated from the magnetic axis to rho vs rho
|
50
76
|
def ion_pwr_prof_graphkit(options)
|
51
77
|
return pbalance_prof_graphkit(options.absorb({header: /i\+ pwr/, title: 'Integrated ion power', units: 'MW'}))
|
52
78
|
end
|
53
79
|
# Graph of electron power integrated from the magnetic axis to rho vs rho
|
54
|
-
def
|
80
|
+
def eln_pwr_prof_graphkit(options)
|
55
81
|
return pbalance_prof_graphkit(options.absorb({header: /e\- pwr/, title: 'Integrated electron power', units: 'MW'}))
|
56
82
|
end
|
57
83
|
# Graph of ion power integrated from the magnetic axis to rho vs rho
|
58
|
-
def
|
59
|
-
return pbalance_prof_graphkit(options.absorb({header: /
|
84
|
+
def torque_prof_graphkit(options)
|
85
|
+
return pbalance_prof_graphkit(options.absorb({header: /torque/, title: 'Integrated torque', units: 'Nm'}))
|
60
86
|
end
|
61
87
|
end
|
62
88
|
|
@@ -820,7 +820,16 @@
|
|
820
820
|
:explanation=>
|
821
821
|
"This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
|
822
822
|
:type=>:Fortran_Bool,
|
823
|
-
:autoscanned_defaults=>[".true."]}
|
823
|
+
:autoscanned_defaults=>[".true."]},
|
824
|
+
:subfolders=>
|
825
|
+
{:should_include=>"true",
|
826
|
+
:description=>"If true, run flux tubes in numbered subfolders.",
|
827
|
+
:help=>"If true, run flux tubes in numbered subfolders.",
|
828
|
+
:code_name=>:subfolders,
|
829
|
+
:must_pass=>
|
830
|
+
[{:test=>"kind_of? Integer",
|
831
|
+
:explanation=>"This variable must be an integer."}],
|
832
|
+
:type=>:Integer}}},
|
824
833
|
:init=>
|
825
834
|
{:description=>"",
|
826
835
|
:should_include=>"true",
|
@@ -1201,78 +1210,70 @@
|
|
1201
1210
|
:autoscanned_defaults=>[".false."]},
|
1202
1211
|
:nbi_mult=>
|
1203
1212
|
{:should_include=>"true",
|
1204
|
-
:description=>
|
1205
|
-
|
1206
|
-
:help=>
|
1207
|
-
" multiplies QNBII, QNBIE and SNBIE when using the tokamak profile db, may not be self consistent when using TORQ for torque input (as opposed to pioq)",
|
1213
|
+
:description=>nil,
|
1214
|
+
:help=>nil,
|
1208
1215
|
:code_name=>:nbi_mult,
|
1209
1216
|
:must_pass=>
|
1210
1217
|
[{:test=>"kind_of? Numeric",
|
1211
1218
|
:explanation=>
|
1212
1219
|
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
1213
1220
|
:type=>:Float,
|
1214
|
-
:autoscanned_defaults=>[
|
1221
|
+
:autoscanned_defaults=>[]},
|
1215
1222
|
:icrh_mult=>
|
1216
1223
|
{:should_include=>"true",
|
1217
|
-
:description=>
|
1218
|
-
|
1219
|
-
:help=>
|
1220
|
-
" multiplies QICRHI and QICRHE when using the tokamak profile db",
|
1224
|
+
:description=>nil,
|
1225
|
+
:help=>nil,
|
1221
1226
|
:code_name=>:icrh_mult,
|
1222
1227
|
:must_pass=>
|
1223
1228
|
[{:test=>"kind_of? Numeric",
|
1224
1229
|
:explanation=>
|
1225
1230
|
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
1226
1231
|
:type=>:Float,
|
1227
|
-
:autoscanned_defaults=>[
|
1232
|
+
:autoscanned_defaults=>[]},
|
1228
1233
|
:ech_mult=>
|
1229
1234
|
{:should_include=>"true",
|
1230
|
-
:description=>
|
1231
|
-
|
1232
|
-
:help=>" multiplies QECHI and QECHE when using the tokamak profile db",
|
1235
|
+
:description=>nil,
|
1236
|
+
:help=>nil,
|
1233
1237
|
:code_name=>:ech_mult,
|
1234
1238
|
:must_pass=>
|
1235
1239
|
[{:test=>"kind_of? Numeric",
|
1236
1240
|
:explanation=>
|
1237
1241
|
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
1238
1242
|
:type=>:Float,
|
1239
|
-
:autoscanned_defaults=>[
|
1243
|
+
:autoscanned_defaults=>[]},
|
1240
1244
|
:lh_mult=>
|
1241
1245
|
{:should_include=>"true",
|
1242
|
-
:description=>
|
1243
|
-
|
1244
|
-
:help=>" multiplies QLHI and QLHE when using the tokamak profile db",
|
1246
|
+
:description=>nil,
|
1247
|
+
:help=>nil,
|
1245
1248
|
:code_name=>:lh_mult,
|
1246
1249
|
:must_pass=>
|
1247
1250
|
[{:test=>"kind_of? Numeric",
|
1248
1251
|
:explanation=>
|
1249
1252
|
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
1250
1253
|
:type=>:Float,
|
1251
|
-
:autoscanned_defaults=>[
|
1254
|
+
:autoscanned_defaults=>[]},
|
1252
1255
|
:ibw_mult=>
|
1253
1256
|
{:should_include=>"true",
|
1254
|
-
:description=>
|
1255
|
-
|
1256
|
-
:help=>" multiplies QIBWI and QIBWE when using the tokamak profile db",
|
1257
|
+
:description=>nil,
|
1258
|
+
:help=>nil,
|
1257
1259
|
:code_name=>:ibw_mult,
|
1258
1260
|
:must_pass=>
|
1259
1261
|
[{:test=>"kind_of? Numeric",
|
1260
1262
|
:explanation=>
|
1261
1263
|
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
1262
1264
|
:type=>:Float,
|
1263
|
-
:autoscanned_defaults=>[
|
1265
|
+
:autoscanned_defaults=>[]},
|
1264
1266
|
:dwn_mult=>
|
1265
1267
|
{:should_include=>"true",
|
1266
|
-
:description=>
|
1267
|
-
|
1268
|
-
:help=>" multiplies DWIR, DWER, DNER when using the tokamak profile db",
|
1268
|
+
:description=>nil,
|
1269
|
+
:help=>nil,
|
1269
1270
|
:code_name=>:dwn_mult,
|
1270
1271
|
:must_pass=>
|
1271
1272
|
[{:test=>"kind_of? Numeric",
|
1272
1273
|
:explanation=>
|
1273
1274
|
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
1274
1275
|
:type=>:Float,
|
1275
|
-
:autoscanned_defaults=>[
|
1276
|
+
:autoscanned_defaults=>[]}}},
|
1276
1277
|
:physics=>
|
1277
1278
|
{:description=>"",
|
1278
1279
|
:should_include=>"true",
|
data/lib/trinitycrmod/trinity.rb
CHANGED
@@ -17,6 +17,10 @@ class CodeRunner
|
|
17
17
|
setup_namelists(@code_module_folder)
|
18
18
|
require 'trinitycrmod/output_files'
|
19
19
|
require 'trinitycrmod/graphs'
|
20
|
+
require 'trinitycrmod/trinity_gs2'
|
21
|
+
|
22
|
+
# Setup gs2 in case people are using it
|
23
|
+
CodeRunner.setup_run_class('gs2')
|
20
24
|
|
21
25
|
################################################
|
22
26
|
# Quantities that are read or determined by CodeRunner
|
@@ -52,7 +56,7 @@ class CodeRunner
|
|
52
56
|
@naming_pars = []
|
53
57
|
|
54
58
|
# Any folders which are a number will contain the results from flux simulations.
|
55
|
-
@excluded_sub_folders = (1...1000).to_a.map{|i| i.to_s}
|
59
|
+
@excluded_sub_folders = (1...1000).to_a.map{|i| "flux_tube_" + i.to_s}
|
56
60
|
|
57
61
|
# A hook which gets called when printing the standard run information to the screen using the status command.
|
58
62
|
def print_out_line
|
@@ -72,9 +76,52 @@ class CodeRunner
|
|
72
76
|
|
73
77
|
# This is a hook which gets called just before submitting a simulation. It sets up the folder and generates any necessary input files.
|
74
78
|
def generate_input_file
|
79
|
+
@run_name += "_t"
|
75
80
|
write_input_file
|
81
|
+
generate_gs2_input_files if @flux_option == "gs2"
|
76
82
|
end
|
77
83
|
|
84
|
+
# Writes the gs2 input files, creating separate subfolders
|
85
|
+
# for them if @subfolders is .true.
|
86
|
+
def generate_gs2_input_files
|
87
|
+
for i in 0...(@nrad-1)*2
|
88
|
+
gs2run = gs2_run(:base).dup
|
89
|
+
gs2_run(i).instance_variables.each do |var|
|
90
|
+
gs2run.instance_variable_set(var, gs2_run(i).instance_variable_get(var))
|
91
|
+
end
|
92
|
+
if @subfolders and @subfolders.fortran_true?
|
93
|
+
gs2run.directory = @directory + "/flux_tube_#{i+1}"
|
94
|
+
FileUtils.makedirs(gs2run.directory)
|
95
|
+
gs2run.relative_directory = @relative_directory + "/flux_tube_#{i+1}"
|
96
|
+
gs2run.restart_dir = gs2run.directory + "/nc"
|
97
|
+
else
|
98
|
+
gs2run.directory = @directory
|
99
|
+
gs2run.relative_directory = @relative_directory
|
100
|
+
end
|
101
|
+
gs2run.run_name = @run_name + (i+1).to_s
|
102
|
+
gs2run.nprocs = @nprocs
|
103
|
+
if i==0
|
104
|
+
block = Proc.new{ingen}
|
105
|
+
else
|
106
|
+
block = Proc.new{}
|
107
|
+
end
|
108
|
+
Dir.chdir(gs2run.directory){gs2run.generate_input_file(&block); gs2run.write_info}
|
109
|
+
|
110
|
+
### Hack the input file so that gs2 gets the location of
|
111
|
+
# the restart dir correctly within trinity
|
112
|
+
if @subfolders and @subfolders.fortran_true?
|
113
|
+
infile = gs2run.directory + "/" + gs2run.run_name + ".in"
|
114
|
+
text = File.read(infile)
|
115
|
+
File.open(infile, 'w'){|f| f.puts text.sub(/restart_dir\s*=\s*"nc"/, "restart_dir = \"flux_tube_#{i+1}/nc\"")}
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
def vim_output
|
121
|
+
system "vim -Ro #{output_file} #{error_file} #@directory/#@run_name.error #@directory/#@run_name.out "
|
122
|
+
end
|
123
|
+
alias :vo :vim_output
|
124
|
+
|
78
125
|
# This command uses the infrastructure provided by Run::FortranNamelist, provided by CodeRunner itself.
|
79
126
|
def write_input_file
|
80
127
|
File.open(@run_name + ".trin", 'w'){|file| file.puts input_file_text}
|
@@ -88,6 +135,55 @@ class CodeRunner
|
|
88
135
|
def parameter_transition
|
89
136
|
end
|
90
137
|
|
138
|
+
def generate_component_runs
|
139
|
+
#puts "HERE"
|
140
|
+
@component_runs = []
|
141
|
+
if @flux_option == "gs2"
|
142
|
+
#puts "HERE"
|
143
|
+
for i in 0...(@nrad-1)*2
|
144
|
+
component = gs2_run(i).create_component
|
145
|
+
component.component_runs = []
|
146
|
+
#component.runner = nil
|
147
|
+
#pp component; STDIN.gets
|
148
|
+
#component.instance_variables.each{|var| puts var; pp var; puts Marshal.dump(component.instance_variable_get(var)); STDIN.gets}
|
149
|
+
#puts Marshal.dump(component); STDIN.gets
|
150
|
+
#pp component; STDIN.gets
|
151
|
+
#p component.class
|
152
|
+
component.job_no = @job_no
|
153
|
+
Dir.chdir("flux_tube_#{i+1}"){component.process_directory}
|
154
|
+
component.component_runs = []
|
155
|
+
@component_runs.push component
|
156
|
+
component.real_id = @id
|
157
|
+
#@gs2_run_list[i] = component
|
158
|
+
#pp component; STDIN.gets
|
159
|
+
#component.runner = nil
|
160
|
+
#puts Marshal.dump(component); STDIN.gets
|
161
|
+
#pp component; STDIN.gets
|
162
|
+
#component.component_runs = []
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
|
168
|
+
def save
|
169
|
+
@gs2_run_list.values.each{|r| r.runner = nil; r.component_runs = []} if @gs2_run_list.kind_of? Hash
|
170
|
+
super
|
171
|
+
|
172
|
+
#logf(:save)
|
173
|
+
#raise CRFatal.new("Something has gone horribly wrong: runner.class is #{@runner.class} instead of CodeRunner") unless @runner.class.to_s == "CodeRunner"
|
174
|
+
#runner, @runner = @runner, nil
|
175
|
+
#@system_triers, old_triers = nil, @system_triers
|
176
|
+
#@component_runs.each{|run| run.runner = nil; run.component_runs = []} if @component_runs
|
177
|
+
##@component_runs.each{|run| run.runner = nil} if @component_runs
|
178
|
+
## logi(self)
|
179
|
+
##pp self
|
180
|
+
##@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
|
181
|
+
##instance_variables.each{|var| puts var; instance_variable_get(var); puts Marshal.dump(instance_variable_get(var)); STDIN.gets}
|
182
|
+
#Dir.chdir(@directory){File.open(".code_runner_run_data", 'w'){|file| file.puts Marshal.dump(self)}}
|
183
|
+
#@runner = runner
|
184
|
+
#@component_runs.each{|run| run.runner = runner} if @component_runs
|
185
|
+
#@system_triers = old_triers
|
186
|
+
end
|
91
187
|
|
92
188
|
@source_code_subfolders = []
|
93
189
|
|
@@ -189,7 +285,7 @@ class CodeRunner
|
|
189
285
|
!
|
190
286
|
! See http://coderunner.sourceforge.net
|
191
287
|
!
|
192
|
-
! Created
|
288
|
+
! Created #{Time.now.to_s}
|
193
289
|
! by CodeRunner version #{CodeRunner::CODE_RUNNER_VERSION.to_s}
|
194
290
|
!
|
195
291
|
!==============================================================================
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# This file contains methods which allow Trinity to use GS2 as
|
2
|
+
# the flux solver
|
3
|
+
|
4
|
+
#class NumRu::NetCDF
|
5
|
+
#def _dump_data
|
6
|
+
#Marshal.dump(nil)
|
7
|
+
#end
|
8
|
+
#end
|
9
|
+
class CodeRunner
|
10
|
+
class Trinity
|
11
|
+
|
12
|
+
# This function creates a new Trinity defaults file, with Trinity parameters taken from
|
13
|
+
# trinity_input_file, and GS2 parameters taken from gs2_input_file. The file is then moved
|
14
|
+
# to the CodeRunner central defaults location, the current folder is configured to use
|
15
|
+
# the defaults file.
|
16
|
+
def self.use_new_defaults_file_with_gs2(name = ARGV[-3], trinity_input_file = ARGV[-2], gs2_input_file = ARGV[-1])
|
17
|
+
raise "Please specify a name, a trinity input file and a gs2 input file" if name == "use_new_gs2_defaults_file"
|
18
|
+
defaults_filename = "#{name}_defaults.rb"
|
19
|
+
tmp_filename = "#{name}_gs2tmp_defaults.rb"
|
20
|
+
central_defaults_filename = rcp.user_defaults_location + "/" + defaults_filename
|
21
|
+
FileUtils.rm(name + '_defaults.rb') if FileTest.exist?(name + '_defaults.rb')
|
22
|
+
FileUtils.rm(central_defaults_filename) if FileTest.exist?(central_defaults_filename)
|
23
|
+
FileUtils.rm(tmp_filename) if FileTest.exist?(tmp_filename)
|
24
|
+
raise "Defaults file: #{central_defaults_filename} already exists" if FileTest.exist? central_defaults_filename
|
25
|
+
|
26
|
+
|
27
|
+
make_new_defaults_file(name, trinity_input_file)
|
28
|
+
CodeRunner::Gs2.make_new_defaults_file(name + '_gs2tmp', gs2_input_file)
|
29
|
+
|
30
|
+
File.open(defaults_filename, 'a'){|file| file.puts <<EOF2
|
31
|
+
gs2_run(:base).instance_eval do
|
32
|
+
#{File.read(tmp_filename).gsub(/\A|\n/, "\n ")}
|
33
|
+
end
|
34
|
+
|
35
|
+
EOF2
|
36
|
+
|
37
|
+
}
|
38
|
+
FileUtils.mv(defaults_filename, central_defaults_filename)
|
39
|
+
FileUtils.rm(tmp_filename)
|
40
|
+
CodeRunner.fetch_runner(C: rcp.code, m: (rcp.modlet? ? rcp.modlet : nil), D: name)
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
def gs2_run(key)
|
45
|
+
@gs2_run_list ||= {}
|
46
|
+
@gs2_run_list[key] ||= Gs2.new(@runner)
|
47
|
+
#if key != :base
|
48
|
+
#raise "key in gs2_run must be either :base or an integer" unless key.kind_of? Integer
|
49
|
+
#@gs2_run_list[key] ||= @gs2_run_list[:base].dup
|
50
|
+
#end
|
51
|
+
@gs2_run_list[key]
|
52
|
+
end
|
53
|
+
|
54
|
+
# Override standard CodeRunner method to allow for Gs2 variables
|
55
|
+
def evaluate_defaults_file(filename)
|
56
|
+
text = File.read(filename)
|
57
|
+
text.scan(/^\s*@(\w+)/) do
|
58
|
+
var_name = $~[1].to_sym
|
59
|
+
next if var_name == :defaults_file_description
|
60
|
+
unless rcp.variables.include? var_name or Gs2.rcp.variables.include? var_name
|
61
|
+
warning("---#{var_name}---, specified in #{File.expand_path(filename)}, is not a variable. This could be an error")
|
62
|
+
end
|
63
|
+
end
|
64
|
+
instance_eval(text)
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
end
|
Binary file
|
Binary file
|
@@ -0,0 +1,186 @@
|
|
1
|
+
! electrostatic, kinetic electrons
|
2
|
+
|
3
|
+
¶meters
|
4
|
+
beta = 0.0
|
5
|
+
zeff = 1.7
|
6
|
+
/
|
7
|
+
|
8
|
+
&theta_grid_knobs
|
9
|
+
equilibrium_option='eik'
|
10
|
+
/
|
11
|
+
|
12
|
+
&theta_grid_parameters
|
13
|
+
ntheta= 8
|
14
|
+
nperiod= 1
|
15
|
+
|
16
|
+
! commented out parameters specified via Trinity
|
17
|
+
! rhoc = 0.5
|
18
|
+
! Rmaj = 5.0
|
19
|
+
! R_geo = 5.0
|
20
|
+
! qinp = 1.4
|
21
|
+
! shat = 0.8
|
22
|
+
! akappa = 1.0
|
23
|
+
! akappri = 0.0
|
24
|
+
! tri = 0.0
|
25
|
+
! tripri = 0.0
|
26
|
+
! shift = 0.0
|
27
|
+
/
|
28
|
+
|
29
|
+
&theta_grid_eik_knobs
|
30
|
+
itor = 1
|
31
|
+
iflux = 0
|
32
|
+
irho = 2
|
33
|
+
|
34
|
+
ppl_eq = F
|
35
|
+
gen_eq = F
|
36
|
+
|
37
|
+
efit_eq = F
|
38
|
+
local_eq = T
|
39
|
+
|
40
|
+
eqfile = 'dskeq.cdf'
|
41
|
+
equal_arc = T
|
42
|
+
bishop = 4
|
43
|
+
! s_hat_input = 0.8
|
44
|
+
! beta_prime_input = 0.0
|
45
|
+
delrho = 1.e-3
|
46
|
+
isym = 0
|
47
|
+
writelots = F
|
48
|
+
/
|
49
|
+
|
50
|
+
&collisions_knobs
|
51
|
+
collision_model='none'
|
52
|
+
/
|
53
|
+
|
54
|
+
&hyper_knobs
|
55
|
+
hyper_option = 'visc_only'
|
56
|
+
const_amp = .false.
|
57
|
+
isotropic_shear = .false.
|
58
|
+
D_hypervisc = 0.05
|
59
|
+
/
|
60
|
+
|
61
|
+
&species_knobs
|
62
|
+
nspec= 2
|
63
|
+
/
|
64
|
+
|
65
|
+
&species_parameters_1
|
66
|
+
z= 1.0
|
67
|
+
mass= 1.0
|
68
|
+
dens= 1.0
|
69
|
+
temp= 1.0
|
70
|
+
tprim= 4.0
|
71
|
+
fprim= 0.0
|
72
|
+
uprim= 0.0
|
73
|
+
vnewk= 0.0
|
74
|
+
type='ion'
|
75
|
+
/
|
76
|
+
|
77
|
+
&dist_fn_species_knobs_1
|
78
|
+
fexpr= 0.48
|
79
|
+
fexpi= 0.0
|
80
|
+
bakdif= 0.02
|
81
|
+
/
|
82
|
+
|
83
|
+
&species_parameters_2
|
84
|
+
z= -1.0
|
85
|
+
mass= 2.2e-4
|
86
|
+
dens= 1.0
|
87
|
+
temp= 1.0
|
88
|
+
tprim= 4.0
|
89
|
+
fprim= 0.0
|
90
|
+
uprim= 0.0
|
91
|
+
vnewk= 0.0
|
92
|
+
type='electron'
|
93
|
+
/
|
94
|
+
|
95
|
+
&dist_fn_species_knobs_2
|
96
|
+
fexpr= 0.48
|
97
|
+
fexpi= 0.0
|
98
|
+
bakdif= 0.02
|
99
|
+
/
|
100
|
+
|
101
|
+
&dist_fn_knobs
|
102
|
+
adiabatic_option="iphi00=2"
|
103
|
+
gridfac= 1.0
|
104
|
+
boundary_option="linked"
|
105
|
+
/
|
106
|
+
|
107
|
+
&init_g_knobs
|
108
|
+
chop_side = .false.
|
109
|
+
phiinit= 1.e-3
|
110
|
+
phifrac = 0.1
|
111
|
+
zf_init = 0.0
|
112
|
+
ginit_option= "noise"
|
113
|
+
/
|
114
|
+
|
115
|
+
&kt_grids_knobs
|
116
|
+
grid_option='box'
|
117
|
+
/
|
118
|
+
|
119
|
+
&kt_grids_box_parameters
|
120
|
+
! (25-1)/3+1 = 9 ky values
|
121
|
+
ny = 8
|
122
|
+
|
123
|
+
! 2*(40-1)/3 + 1 = 27 kx values
|
124
|
+
nx = 8
|
125
|
+
|
126
|
+
! dky = 1/y0 = 0.1 => ky: 0 -> 0.8
|
127
|
+
y0 = 10.
|
128
|
+
|
129
|
+
! default jtwist calculated in kt_grids to
|
130
|
+
! make box lengths in x and y equal at
|
131
|
+
! outboard midplane
|
132
|
+
! jtwist = 5
|
133
|
+
/
|
134
|
+
|
135
|
+
&le_grids_knobs
|
136
|
+
ngauss = 3
|
137
|
+
negrid = 6
|
138
|
+
vcut= 2.5
|
139
|
+
/
|
140
|
+
|
141
|
+
&knobs
|
142
|
+
wstar_units = .false.
|
143
|
+
fphi = 1.0
|
144
|
+
fapar = 0.0
|
145
|
+
faperp = 0.0
|
146
|
+
delt = 0.01
|
147
|
+
nstep = 60
|
148
|
+
/
|
149
|
+
|
150
|
+
&fields_knobs
|
151
|
+
field_option='implicit'
|
152
|
+
/
|
153
|
+
|
154
|
+
&nonlinear_terms_knobs
|
155
|
+
nonlinear_mode='on'
|
156
|
+
cfl = 0.25
|
157
|
+
/
|
158
|
+
|
159
|
+
&reinit_knobs
|
160
|
+
delt_adj = 2.0
|
161
|
+
delt_minimum = 1.e-6
|
162
|
+
delt_cushion = 10.0
|
163
|
+
/
|
164
|
+
|
165
|
+
&layouts_knobs
|
166
|
+
layout = 'lxyes'
|
167
|
+
local_field_solve = F
|
168
|
+
/
|
169
|
+
|
170
|
+
&gs2_diagnostics_knobs
|
171
|
+
print_flux_line=.false.
|
172
|
+
write_nl_flux = .true.
|
173
|
+
print_line = F
|
174
|
+
write_line = F
|
175
|
+
write_final_moments= T
|
176
|
+
write_avg_moments = .true.
|
177
|
+
write_final_fields=.true.
|
178
|
+
write_verr = F
|
179
|
+
write_gyx = F
|
180
|
+
write_hrate = F
|
181
|
+
write_correlation = T
|
182
|
+
nwrite= 10
|
183
|
+
navg= 40
|
184
|
+
omegatinst = 500.0
|
185
|
+
save_for_restart = .true.
|
186
|
+
/
|
@@ -0,0 +1,57 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
|
4
|
+
&geometry
|
5
|
+
geo_option = "iterdb"
|
6
|
+
geo_file = "../../pr08_jet_42982_2d.dat"
|
7
|
+
geo_time = 15.2
|
8
|
+
fluxlabel_option = "aminor"
|
9
|
+
rad_out = 0.85
|
10
|
+
nrad = 5
|
11
|
+
use_external_geo = .false.
|
12
|
+
write_dbinfo = .true.
|
13
|
+
/
|
14
|
+
|
15
|
+
&species
|
16
|
+
species_option = "iterdb"
|
17
|
+
ntspec = 2
|
18
|
+
qi = 1.0
|
19
|
+
mi = 2.5
|
20
|
+
deuterium = 1
|
21
|
+
/
|
22
|
+
|
23
|
+
&time
|
24
|
+
ntstep = 2
|
25
|
+
ntdelt = 0.1
|
26
|
+
impfac = 1.0
|
27
|
+
niter = 1
|
28
|
+
errtol = 0.01
|
29
|
+
errflr = 0.01
|
30
|
+
flrfac = 2.0
|
31
|
+
ntdelt_max = 100.0
|
32
|
+
/
|
33
|
+
|
34
|
+
&fluxes
|
35
|
+
flux_option = "gs2"
|
36
|
+
vtfac = 2.0
|
37
|
+
grad_option = "tigrad"
|
38
|
+
fork_flag = .true.
|
39
|
+
subfolders = .true.
|
40
|
+
/
|
41
|
+
|
42
|
+
&physics
|
43
|
+
include_neo = .true.
|
44
|
+
turb_heat = .false.
|
45
|
+
temp_equil = .true.
|
46
|
+
/
|
47
|
+
|
48
|
+
&sources
|
49
|
+
source_option = "iterdb"
|
50
|
+
write_pwr_profs = .true.
|
51
|
+
include_radiation = .true.
|
52
|
+
include_alphas = .true.
|
53
|
+
/
|
54
|
+
|
55
|
+
&init
|
56
|
+
init_option = "iterdb"
|
57
|
+
/
|
Binary file
|
data/test/test_trinitycrmod.rb
CHANGED
@@ -16,7 +16,7 @@ class TestTrinitycrmodIFSPPPL < Test::Unit::TestCase
|
|
16
16
|
FileUtils.mv('rake_test_defaults.rb', @runner.run_class.rcp.user_defaults_location)
|
17
17
|
CodeRunner.submit(Y: 'test/ifspppl', T: true, D: 'rake_test')
|
18
18
|
base_hash = @runner.run_class.parse_input_file('test/ifspppl/test.trin')
|
19
|
-
test_hash = @runner.run_class.parse_input_file('test/ifspppl/v/id_1/
|
19
|
+
test_hash = @runner.run_class.parse_input_file('test/ifspppl/v/id_1/v_id_1_t.trin')
|
20
20
|
assert_equal(base_hash, test_hash)
|
21
21
|
FileUtils.rm(@runner.run_class.rcp.user_defaults_location + '/rake_test_defaults.rb')
|
22
22
|
FileUtils.rm('test/ifspppl/rake_test_defaults.rb')
|
@@ -24,6 +24,57 @@ class TestTrinitycrmodIFSPPPL < Test::Unit::TestCase
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
+
class TestTrinitycrmodGs2 < Test::Unit::TestCase
|
28
|
+
def setup
|
29
|
+
CodeRunner.setup_run_class('trinity')
|
30
|
+
Dir.chdir('test/gs2_42982'){
|
31
|
+
CodeRunner::Trinity.use_new_defaults_file_with_gs2('rake_test_gs2_42982', 'shot42982_jet.trin', 'shot42982_jet.in')
|
32
|
+
}
|
33
|
+
@runner = CodeRunner.fetch_runner(Y: 'test/gs2_42982', C: 'trinity', X: '/dev/null')
|
34
|
+
system("gunzip test/gs2_42982/pr08_jet_42982_1d.dat.gz -c > test/gs2_42982/pr08_jet_42982_1d.dat")
|
35
|
+
system("gunzip test/gs2_42982/pr08_jet_42982_2d.dat.gz -c > test/gs2_42982/pr08_jet_42982_2d.dat")
|
36
|
+
end
|
37
|
+
def test_submit
|
38
|
+
if ENV['TRINITY_EXEC']
|
39
|
+
CodeRunner.submit(Y: 'test/gs2_42982', X: ENV['TRINITY_EXEC'], n: '8')
|
40
|
+
else
|
41
|
+
CodeRunner.submit(Y: 'test/gs2_42982', T: true, X: '/dev/null', n: '8')
|
42
|
+
end
|
43
|
+
@runner.use_component = :component
|
44
|
+
@runner.recalc_all = true
|
45
|
+
@runner.update
|
46
|
+
CodeRunner.status(Y: 'test/gs2_42982', h: :component, A: true)
|
47
|
+
end
|
48
|
+
def teardown
|
49
|
+
FileUtils.rm(@runner.run_class.rcp.user_defaults_location + '/rake_test_gs2_42982_defaults.rb')
|
50
|
+
FileUtils.rm('test/gs2_42982/rake_test_gs2_42982_defaults.rb')
|
51
|
+
FileUtils.rm('test/gs2_42982/pr08_jet_42982_1d.dat')
|
52
|
+
FileUtils.rm('test/gs2_42982/pr08_jet_42982_2d.dat')
|
53
|
+
FileUtils.rm('test/gs2_42982/.CODE_RUNNER_TEMP_RUN_LIST_CACHE')
|
54
|
+
if ENV['TRINITY_EXEC'] and not FileTest.exist?('test/gs2_42982_results/v.tgz')
|
55
|
+
Dir.chdir('test/gs2_42982'){system("tar -czf v.tgz v/")}
|
56
|
+
FileUtils.mv('test/gs2_42982/v.tgz', 'test/gs2_42982_results/.')
|
57
|
+
end
|
58
|
+
FileUtils.rm_r('test/gs2_42982/v/')
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
class TestTrinitycrmodGs2Analysis < Test::Unit::TestCase
|
63
|
+
def setup
|
64
|
+
Dir.chdir('test/gs2_42982_results/'){system "tar -xzf v.tgz"}
|
65
|
+
@runner = CodeRunner.fetch_runner(Y: 'test/gs2_42982_results', C: 'trinity', A: true)
|
66
|
+
end
|
67
|
+
def test_analysis
|
68
|
+
CodeRunner.status(Y: 'test/gs2_42982_results')
|
69
|
+
CodeRunner.status(Y: 'test/gs2_42982_results', h: :component)
|
70
|
+
end
|
71
|
+
def teardown
|
72
|
+
FileUtils.rm_r('test/gs2_42982_results/v')
|
73
|
+
FileUtils.rm('test/gs2_42982_results/.code_runner_script_defaults.rb')
|
74
|
+
FileUtils.rm('test/gs2_42982_results/.CODE_RUNNER_TEMP_RUN_LIST_CACHE')
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
27
78
|
class TestTrinitycrmodIFSPPPLAnalysis < Test::Unit::TestCase
|
28
79
|
def setup
|
29
80
|
#@runner = CodeRunner.fetch_runner(Y: 'test/ifspppl_results', C: 'trinity', X: '/dev/null')
|
@@ -57,6 +108,19 @@ class TestTrinitycrmodIFSPPPLAnalysis < Test::Unit::TestCase
|
|
57
108
|
assert_equal(kit.data[0].y.data[0], 0.2412)
|
58
109
|
#kit.gnuplot
|
59
110
|
end
|
111
|
+
|
112
|
+
def test_average_graphs
|
113
|
+
kit = @runner.run_list[1].graphkit('ion_hflux_gb_prof', {t_index: 2})
|
114
|
+
#kit.gnuplot
|
115
|
+
assert_equal(kit.data[0].class, GraphKit::DataKit)
|
116
|
+
assert_equal(kit.data[0].y.data[0], 0.001944)
|
117
|
+
kit = @runner.run_list[1].graphkit('ion_hflux_gb_prof', {t_index: 1})
|
118
|
+
#kit.gnuplot
|
119
|
+
assert_equal(kit.data[0].class, GraphKit::DataKit)
|
120
|
+
assert_equal(kit.data[0].y.data[0], 0.001975)
|
121
|
+
kit = @runner.run_list[1].graphkit('ion_hflux_gb_prof', {t_index: 2, time_average: -1})
|
122
|
+
assert_equal([0.001975, 0.001944].sum/2.0, kit.data[0].y.data[0])
|
123
|
+
end
|
60
124
|
def teardown
|
61
125
|
FileUtils.rm('test/ifspppl_results/.code_runner_script_defaults.rb')
|
62
126
|
FileUtils.rm_r('test/ifspppl_results/v/id_1/')
|
data/trinitycrmod.gemspec
CHANGED
@@ -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: trinitycrmod 0.3.0 ruby lib
|
5
6
|
|
6
7
|
Gem::Specification.new do |s|
|
7
8
|
s.name = "trinitycrmod"
|
8
|
-
s.version = "0.
|
9
|
+
s.version = "0.3.0"
|
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 = "
|
14
|
+
s.date = "2014-02-04"
|
13
15
|
s.description = "This module allows Trinity, the Multiscale Gyrokinetic Turbulent Transport solver for Fusion Reactors, to harness the power of CodeRunner, a framework for the automated running and analysis of simulations."
|
14
16
|
s.email = "edmundhighcock@sourceforge.net"
|
15
17
|
s.extra_rdoc_files = [
|
@@ -29,8 +31,14 @@ Gem::Specification.new do |s|
|
|
29
31
|
"lib/trinitycrmod/namelists.rb",
|
30
32
|
"lib/trinitycrmod/output_files.rb",
|
31
33
|
"lib/trinitycrmod/trinity.rb",
|
34
|
+
"lib/trinitycrmod/trinity_gs2.rb",
|
32
35
|
"sync_variables/helper.rb",
|
33
36
|
"sync_variables/sync_variables.rb",
|
37
|
+
"test/gs2_42982/pr08_jet_42982_1d.dat.gz",
|
38
|
+
"test/gs2_42982/pr08_jet_42982_2d.dat.gz",
|
39
|
+
"test/gs2_42982/shot42982_jet.in",
|
40
|
+
"test/gs2_42982/shot42982_jet.trin",
|
41
|
+
"test/gs2_42982_results/v.tgz",
|
34
42
|
"test/helper.rb",
|
35
43
|
"test/ifspppl/test.trin",
|
36
44
|
"test/ifspppl_results/v/id_1.tgz",
|
@@ -39,35 +47,37 @@ Gem::Specification.new do |s|
|
|
39
47
|
]
|
40
48
|
s.homepage = "http://github.com/edmundhighcock/trinitycrmod"
|
41
49
|
s.licenses = ["GPLv3"]
|
42
|
-
s.
|
43
|
-
s.rubygems_version = "1.8.23"
|
50
|
+
s.rubygems_version = "2.2.1"
|
44
51
|
s.summary = "CodeRunner module for the Trinity simulation software."
|
45
52
|
|
46
53
|
if s.respond_to? :specification_version then
|
47
|
-
s.specification_version =
|
54
|
+
s.specification_version = 4
|
48
55
|
|
49
56
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
50
|
-
s.add_runtime_dependency(%q<coderunner>, [">= 0.
|
57
|
+
s.add_runtime_dependency(%q<coderunner>, [">= 0.14.0"])
|
51
58
|
s.add_runtime_dependency(%q<text-data-tools>, [">= 1.1.3"])
|
59
|
+
s.add_runtime_dependency(%q<gs2crmod>, [">= 0.11.10"])
|
52
60
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
53
61
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
54
62
|
s.add_development_dependency(%q<bundler>, ["> 1.0.0"])
|
55
|
-
s.add_development_dependency(%q<jeweler>, [">=
|
63
|
+
s.add_development_dependency(%q<jeweler>, [">= 2.0.0"])
|
56
64
|
else
|
57
|
-
s.add_dependency(%q<coderunner>, [">= 0.
|
65
|
+
s.add_dependency(%q<coderunner>, [">= 0.14.0"])
|
58
66
|
s.add_dependency(%q<text-data-tools>, [">= 1.1.3"])
|
67
|
+
s.add_dependency(%q<gs2crmod>, [">= 0.11.10"])
|
59
68
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
60
69
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
61
70
|
s.add_dependency(%q<bundler>, ["> 1.0.0"])
|
62
|
-
s.add_dependency(%q<jeweler>, [">=
|
71
|
+
s.add_dependency(%q<jeweler>, [">= 2.0.0"])
|
63
72
|
end
|
64
73
|
else
|
65
|
-
s.add_dependency(%q<coderunner>, [">= 0.
|
74
|
+
s.add_dependency(%q<coderunner>, [">= 0.14.0"])
|
66
75
|
s.add_dependency(%q<text-data-tools>, [">= 1.1.3"])
|
76
|
+
s.add_dependency(%q<gs2crmod>, [">= 0.11.10"])
|
67
77
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
68
78
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
69
79
|
s.add_dependency(%q<bundler>, ["> 1.0.0"])
|
70
|
-
s.add_dependency(%q<jeweler>, [">=
|
80
|
+
s.add_dependency(%q<jeweler>, [">= 2.0.0"])
|
71
81
|
end
|
72
82
|
end
|
73
83
|
|
metadata
CHANGED
@@ -1,112 +1,113 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trinitycrmod
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Edmund Highcock
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-02-04 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
|
-
version: 0.
|
19
|
+
version: 0.14.0
|
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
|
-
version: 0.
|
26
|
+
version: 0.14.0
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: text-data-tools
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: 1.1.3
|
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: 1.1.3
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: gs2crmod
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.11.10
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.11.10
|
46
55
|
- !ruby/object:Gem::Dependency
|
47
56
|
name: shoulda
|
48
57
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
58
|
requirements:
|
51
|
-
- -
|
59
|
+
- - ">="
|
52
60
|
- !ruby/object:Gem::Version
|
53
61
|
version: '0'
|
54
62
|
type: :development
|
55
63
|
prerelease: false
|
56
64
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
65
|
requirements:
|
59
|
-
- -
|
66
|
+
- - ">="
|
60
67
|
- !ruby/object:Gem::Version
|
61
68
|
version: '0'
|
62
69
|
- !ruby/object:Gem::Dependency
|
63
70
|
name: rdoc
|
64
71
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
72
|
requirements:
|
67
|
-
- - ~>
|
73
|
+
- - "~>"
|
68
74
|
- !ruby/object:Gem::Version
|
69
75
|
version: '3.12'
|
70
76
|
type: :development
|
71
77
|
prerelease: false
|
72
78
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
79
|
requirements:
|
75
|
-
- - ~>
|
80
|
+
- - "~>"
|
76
81
|
- !ruby/object:Gem::Version
|
77
82
|
version: '3.12'
|
78
83
|
- !ruby/object:Gem::Dependency
|
79
84
|
name: bundler
|
80
85
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
86
|
requirements:
|
83
|
-
- -
|
87
|
+
- - ">"
|
84
88
|
- !ruby/object:Gem::Version
|
85
89
|
version: 1.0.0
|
86
90
|
type: :development
|
87
91
|
prerelease: false
|
88
92
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
93
|
requirements:
|
91
|
-
- -
|
94
|
+
- - ">"
|
92
95
|
- !ruby/object:Gem::Version
|
93
96
|
version: 1.0.0
|
94
97
|
- !ruby/object:Gem::Dependency
|
95
98
|
name: jeweler
|
96
99
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
100
|
requirements:
|
99
|
-
- -
|
101
|
+
- - ">="
|
100
102
|
- !ruby/object:Gem::Version
|
101
|
-
version:
|
103
|
+
version: 2.0.0
|
102
104
|
type: :development
|
103
105
|
prerelease: false
|
104
106
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
107
|
requirements:
|
107
|
-
- -
|
108
|
+
- - ">="
|
108
109
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
110
|
+
version: 2.0.0
|
110
111
|
description: This module allows Trinity, the Multiscale Gyrokinetic Turbulent Transport
|
111
112
|
solver for Fusion Reactors, to harness the power of CodeRunner, a framework for
|
112
113
|
the automated running and analysis of simulations.
|
@@ -117,7 +118,7 @@ extra_rdoc_files:
|
|
117
118
|
- LICENSE.txt
|
118
119
|
- README.rdoc
|
119
120
|
files:
|
120
|
-
- .document
|
121
|
+
- ".document"
|
121
122
|
- Gemfile
|
122
123
|
- LICENSE.txt
|
123
124
|
- README.rdoc
|
@@ -129,8 +130,14 @@ files:
|
|
129
130
|
- lib/trinitycrmod/namelists.rb
|
130
131
|
- lib/trinitycrmod/output_files.rb
|
131
132
|
- lib/trinitycrmod/trinity.rb
|
133
|
+
- lib/trinitycrmod/trinity_gs2.rb
|
132
134
|
- sync_variables/helper.rb
|
133
135
|
- sync_variables/sync_variables.rb
|
136
|
+
- test/gs2_42982/pr08_jet_42982_1d.dat.gz
|
137
|
+
- test/gs2_42982/pr08_jet_42982_2d.dat.gz
|
138
|
+
- test/gs2_42982/shot42982_jet.in
|
139
|
+
- test/gs2_42982/shot42982_jet.trin
|
140
|
+
- test/gs2_42982_results/v.tgz
|
134
141
|
- test/helper.rb
|
135
142
|
- test/ifspppl/test.trin
|
136
143
|
- test/ifspppl_results/v/id_1.tgz
|
@@ -139,29 +146,25 @@ files:
|
|
139
146
|
homepage: http://github.com/edmundhighcock/trinitycrmod
|
140
147
|
licenses:
|
141
148
|
- GPLv3
|
149
|
+
metadata: {}
|
142
150
|
post_install_message:
|
143
151
|
rdoc_options: []
|
144
152
|
require_paths:
|
145
153
|
- lib
|
146
154
|
required_ruby_version: !ruby/object:Gem::Requirement
|
147
|
-
none: false
|
148
155
|
requirements:
|
149
|
-
- -
|
156
|
+
- - ">="
|
150
157
|
- !ruby/object:Gem::Version
|
151
158
|
version: '0'
|
152
|
-
segments:
|
153
|
-
- 0
|
154
|
-
hash: -1744466157144352750
|
155
159
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
156
|
-
none: false
|
157
160
|
requirements:
|
158
|
-
- -
|
161
|
+
- - ">="
|
159
162
|
- !ruby/object:Gem::Version
|
160
163
|
version: '0'
|
161
164
|
requirements: []
|
162
165
|
rubyforge_project:
|
163
|
-
rubygems_version:
|
166
|
+
rubygems_version: 2.2.1
|
164
167
|
signing_key:
|
165
|
-
specification_version:
|
168
|
+
specification_version: 4
|
166
169
|
summary: CodeRunner module for the Trinity simulation software.
|
167
170
|
test_files: []
|