trinitycrmod 0.1.0 → 0.2.0

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.
data/Gemfile CHANGED
@@ -2,7 +2,7 @@ source "http://rubygems.org"
2
2
  # Add dependencies required to use your gem here.
3
3
  # Example:
4
4
  gem "coderunner", ">= 0.11.0"
5
- gem "text-data-tools", ">= 1.1.1"
5
+ gem "text-data-tools", ">= 1.1.3"
6
6
 
7
7
  # Add dependencies to develop your gem here.
8
8
  # Include everything needed to run rake, tests, features, etc.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.0
@@ -0,0 +1,48 @@
1
+ class CodeRunner::Trinity
2
+ module TrinityGraphKits
3
+ def nt_prof_graphkit(options)
4
+ raise "Please specify t_index" unless options[:t_index]
5
+ it = options[:t_index] - 1
6
+ array = nt_outfile.get_2d_array_float(options[:header], /1.*time/)
7
+ rho_array = nt_outfile.get_2d_array_float(/2.*radius/, /1.*time/)
8
+ #p rho_array, array
9
+ GraphKit.autocreate(x: {data: rho_array[it].to_gslv, title: 'rho', units: ''},
10
+ y: {data: array[it].to_gslv, title: options[:title]||"", units: options[:units]||""}
11
+ )
12
+ end
13
+ def ion_temp_prof_graphkit(options)
14
+ return nt_prof_graphkit(options.dup.absorb({header: /i\+ temp/}))
15
+ end
16
+ end
17
+
18
+ include TrinityGraphKits
19
+
20
+ def graphkit(name, options)
21
+ [:t].each do |var|
22
+ #ep 'index', var
23
+ if options[var].class == Symbol and options[var] == :all
24
+ options[var] = list(var).values
25
+ elsif options[var+:_index].class == Symbol and options[var+:_index] == :all
26
+ #ep 'Symbol'
27
+ options[var+:_index] = list(var).keys
28
+ end
29
+ if options[var].class == Array
30
+ return options[var].map{|value| graphkit(name, options.dup.absorb({var => value}))}.sum
31
+ elsif options[var+:_index].class == Array
32
+ #ep 'Array'
33
+ return options[var+:_index].map{|value| graphkit(name, options.dup.absorb({var+:_index => value}))}.sum
34
+ end
35
+ if options[var].class == Symbol and options[var] == :max
36
+ options[var] = list(var).values.max
37
+ elsif options[var+:_index].class == Symbol and options[var+:_index] == :max
38
+ ep 'Symbol'
39
+ options[var+:_index] = list(var).keys.max
40
+ end
41
+ end
42
+ if meth = TrinityGraphKits.instance_methods.find{|m| m.to_s == name + '_graphkit'}
43
+ return send(meth, options)
44
+ else
45
+ raise "GraphKit not found: #{name}"
46
+ end
47
+ end
48
+ end
@@ -9,6 +9,9 @@ class CodeRunner
9
9
  def info_outfile
10
10
  TextDataTools::Named::DataFile.new(@directory + '/' + @run_name + '.info', ':')
11
11
  end
12
+ def nt_outfile
13
+ TextDataTools::Column::DataFile.new(@directory + '/' + @run_name + '.nt', true, /\S+/, /(?:\#\s+)?\d:.*?(?=\d:)/)
14
+ end
12
15
  def time_outfile
13
16
  TextDataTools::Column::DataFile.new(@directory + '/' + @run_name + '.time', true, /\S+/, /\w+/)
14
17
  end
@@ -16,6 +16,7 @@ class CodeRunner
16
16
  # Use the Run::FortranNamelist tools to process the variable database
17
17
  setup_namelists(@code_module_folder)
18
18
  require 'trinitycrmod/output_files'
19
+ require 'trinitycrmod/graphs'
19
20
 
20
21
  ################################################
21
22
  # Quantities that are read or determined by CodeRunner
@@ -27,7 +27,7 @@ end
27
27
  class TestTrinitycrmodIFSPPPLAnalysis < Test::Unit::TestCase
28
28
  def setup
29
29
  #@runner = CodeRunner.fetch_runner(Y: 'test/ifspppl_results', C: 'trinity', X: '/dev/null')
30
- Dir.chdir('test/ifspppl_results/v'){system "tar -xzf id_1.tgz"}
30
+ Dir.chdir('test/ifspppl_results/v'){str = "tar -xzf id_1.tgz";system str}
31
31
  @runner = CodeRunner.fetch_runner(Y: 'test/ifspppl_results', C: 'trinity', X: ENV['HOME'] + '/Code/trinity/trunk/trinity', A: true)
32
32
  #@runner.run_class.make_new_defaults_file("rake_test", "test/ifspppl/test.trin")
33
33
  #FileUtils.mv('rake_test_defaults.rb', @runner.run_class.rcp.user_defaults_location)
@@ -37,10 +37,16 @@ class TestTrinitycrmodIFSPPPLAnalysis < Test::Unit::TestCase
37
37
  CodeRunner.status(Y: 'test/ifspppl_results')
38
38
  assert_equal(@runner.run_list.size, 1)
39
39
  assert_equal(@runner.run_list[1].fusionQ, 0.075658439797815016)
40
+ FileUtils.rm('test/ifspppl_results/.CODE_RUNNER_TEMP_RUN_LIST_CACHE')
40
41
  end
42
+ def test_graphs
43
+ kit = @runner.run_list[1].graphkit('ion_temp_prof', {t_index: 2})
44
+ #kit.gnuplot
45
+ assert_equal(kit.data[0].class, GraphKit::DataKit)
46
+ assert_equal(kit.data[0].x.data[0], 0.05)
47
+ end
41
48
  def teardown
42
49
  FileUtils.rm('test/ifspppl_results/.code_runner_script_defaults.rb')
43
- FileUtils.rm('test/ifspppl_results/.CODE_RUNNER_TEMP_RUN_LIST_CACHE')
44
50
  FileUtils.rm_r('test/ifspppl_results/v/id_1/')
45
51
  end
46
52
  end
@@ -0,0 +1,73 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "trinitycrmod"
8
+ s.version = "0.2.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Edmund Highcock"]
12
+ s.date = "2013-06-17"
13
+ 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
+ s.email = "edmundhighcock@sourceforge.net"
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ "Gemfile",
22
+ "LICENSE.txt",
23
+ "README.rdoc",
24
+ "Rakefile",
25
+ "VERSION",
26
+ "lib/trinitycrmod.rb",
27
+ "lib/trinitycrmod/deleted_variables.rb",
28
+ "lib/trinitycrmod/graphs.rb",
29
+ "lib/trinitycrmod/namelists.rb",
30
+ "lib/trinitycrmod/output_files.rb",
31
+ "lib/trinitycrmod/trinity.rb",
32
+ "sync_variables/helper.rb",
33
+ "sync_variables/sync_variables.rb",
34
+ "test/helper.rb",
35
+ "test/ifspppl/test.trin",
36
+ "test/ifspppl_results/v/id_1.tgz",
37
+ "test/test_trinitycrmod.rb",
38
+ "trinitycrmod.gemspec"
39
+ ]
40
+ s.homepage = "http://github.com/edmundhighcock/trinitycrmod"
41
+ s.licenses = ["GPLv3"]
42
+ s.require_paths = ["lib"]
43
+ s.rubygems_version = "1.8.23"
44
+ s.summary = "CodeRunner module for the Trinity simulation software."
45
+
46
+ if s.respond_to? :specification_version then
47
+ s.specification_version = 3
48
+
49
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
50
+ s.add_runtime_dependency(%q<coderunner>, [">= 0.11.0"])
51
+ s.add_runtime_dependency(%q<text-data-tools>, [">= 1.1.3"])
52
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
53
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
54
+ s.add_development_dependency(%q<bundler>, ["> 1.0.0"])
55
+ s.add_development_dependency(%q<jeweler>, [">= 1.8.4"])
56
+ else
57
+ s.add_dependency(%q<coderunner>, [">= 0.11.0"])
58
+ s.add_dependency(%q<text-data-tools>, [">= 1.1.3"])
59
+ s.add_dependency(%q<shoulda>, [">= 0"])
60
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
61
+ s.add_dependency(%q<bundler>, ["> 1.0.0"])
62
+ s.add_dependency(%q<jeweler>, [">= 1.8.4"])
63
+ end
64
+ else
65
+ s.add_dependency(%q<coderunner>, [">= 0.11.0"])
66
+ s.add_dependency(%q<text-data-tools>, [">= 1.1.3"])
67
+ s.add_dependency(%q<shoulda>, [">= 0"])
68
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
69
+ s.add_dependency(%q<bundler>, ["> 1.0.0"])
70
+ s.add_dependency(%q<jeweler>, [">= 1.8.4"])
71
+ end
72
+ end
73
+
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.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - ! '>='
36
36
  - !ruby/object:Gem::Version
37
- version: 1.1.1
37
+ version: 1.1.3
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,7 @@ dependencies:
42
42
  requirements:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
- version: 1.1.1
45
+ version: 1.1.3
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: shoulda
48
48
  requirement: !ruby/object:Gem::Requirement
@@ -125,6 +125,7 @@ files:
125
125
  - VERSION
126
126
  - lib/trinitycrmod.rb
127
127
  - lib/trinitycrmod/deleted_variables.rb
128
+ - lib/trinitycrmod/graphs.rb
128
129
  - lib/trinitycrmod/namelists.rb
129
130
  - lib/trinitycrmod/output_files.rb
130
131
  - lib/trinitycrmod/trinity.rb
@@ -134,6 +135,7 @@ files:
134
135
  - test/ifspppl/test.trin
135
136
  - test/ifspppl_results/v/id_1.tgz
136
137
  - test/test_trinitycrmod.rb
138
+ - trinitycrmod.gemspec
137
139
  homepage: http://github.com/edmundhighcock/trinitycrmod
138
140
  licenses:
139
141
  - GPLv3
@@ -149,7 +151,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
149
151
  version: '0'
150
152
  segments:
151
153
  - 0
152
- hash: -4412447683332078047
154
+ hash: -1760812951921536995
153
155
  required_rubygems_version: !ruby/object:Gem::Requirement
154
156
  none: false
155
157
  requirements: