trinitycrdriver 0.0.0 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 55c1dd03a8d915c6e9e234197bb623737aa913fc
4
- data.tar.gz: e503fe33b08e9c0fe990649b616e84f6c27e2c17
3
+ metadata.gz: 49e4039f446adecc1130738a3d689af2a3193c61
4
+ data.tar.gz: 65142591fe93ea98359f1edf1bd2cdb9043745d3
5
5
  SHA512:
6
- metadata.gz: d16ca4155f9819244b855f343fdbb071758c4f12ffe72022bf2698db38490b819ec79f36759f8dd4d7c8329f926f81a9489763bafa5360c7959479a597690f43
7
- data.tar.gz: 7c8c8ffc855553e824feb72d2b260c4ffb18c19a95ab57741ed4d4a57653c5516e3bbc17723d4e90408a5315cd40a3f02b9b206b43782d9bbfbac05cb08bff1b
6
+ metadata.gz: 84b29e1c9e3272fba5a1b4fb5815fc4cfcfec9e8a352b8195d5b0289e2881cfe8d9beaa459083433ace8f63bd8fd38d5aebcfdf922c3bd1dca4052706a4c1353
7
+ data.tar.gz: ac3d4cf4163d2be4bf1459bf2ef7d8b9d20e478958e0ba82f634704458bfec2cd20e650140ba3acb53d7abd4ef227ae173344d3ef7c550a40b0aaabdc09f4dbe
data/Gemfile CHANGED
@@ -5,12 +5,17 @@ source "http://rubygems.org"
5
5
  gem "text-data-tools", ">= 1.1.3"
6
6
  gem "gs2crmod", ">=0.11.33"
7
7
  gem "trinitycrmod", ">= 0.4.7"
8
+ gem "ruby-mpi", ">=0.2.0"
9
+ gem "cheasecrmod", ">=0.1.0"
8
10
 
9
11
  # Add dependencies to develop your gem here.
10
12
  # Include everything needed to run rake, tests, features, etc.
11
13
  group :development do
12
- gem "shoulda", ">= 0"
14
+ gem "shoulda", " 3.0.1"
13
15
  gem "rdoc", "~> 3.12"
14
16
  gem "bundler", "> 1.0.0"
15
- gem "jeweler", ">= 2.0.0"
17
+ gem "jeweler", ">= 2.0.1"
18
+ gem "simplecov", ">=0"
19
+ gem "minitest", "~> 4"
20
+ gem "rake-compiler"
16
21
  end
data/Rakefile CHANGED
@@ -21,6 +21,8 @@ Jeweler::Tasks.new do |gem|
21
21
  gem.description = %Q{A gem to allow coderunner to run the trinity code directly.}
22
22
  gem.email = "edmundhighcock@users.sourceforge.net"
23
23
  gem.authors = ["Edmund Highcock"]
24
+ gem.files.exclude 'test/**/*'
25
+ gem.extensions = %w[ext/trinitycrdriver/extconf.rb]
24
26
  # dependencies defined in Gemfile
25
27
  end
26
28
  Jeweler::RubygemsDotOrgTasks.new
@@ -49,3 +51,11 @@ Rake::RDocTask.new do |rdoc|
49
51
  rdoc.rdoc_files.include('README*')
50
52
  rdoc.rdoc_files.include('lib/**/*.rb')
51
53
  end
54
+
55
+ NAME = 'trinitycrdriver'
56
+
57
+ require "rake/extensiontask"
58
+
59
+ Rake::ExtensionTask.new "trinitycrdriver" do |ext|
60
+ ext.lib_dir = "lib/trinitycrdriver"
61
+ end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.0
1
+ 0.1.0
data/clean.sh ADDED
@@ -0,0 +1,9 @@
1
+ rm -rf lib/trinitycrdriver/trinitycrdriver.so
2
+ rm -rf rake_test_opt_chease_defaults.rb
3
+ rm -rf rake_test_opt_defaults.rb
4
+ rm -rf test/chease_opt/.CODE_RUNNER_TEMP_RUN_LIST_CACHE
5
+ rm -rf test/chease_opt/ogyropsi.dat
6
+ rm -rf test/chease_opt/v/
7
+ rm -rf test/chease_opt_chease/.CODE_RUNNER_TEMP_RUN_LIST_CACHE
8
+ rm -rf test/chease_opt_chease/v/
9
+ rm -rf test/trinopt/
@@ -0,0 +1,42 @@
1
+ require 'mkmf'
2
+
3
+ #Need to link with C GSL libraries to use in C extensions
4
+ #gsl_inc = `gsl-config --cflags`
5
+
6
+ #$CFLAGS = " -Wall -I../include #{gsl_inc}"
7
+
8
+ #srcs = Dir.glob("*.c")
9
+
10
+ #p ['srcs', srcs]
11
+
12
+ #$objs = srcs.collect { |f| f.sub(".c", ".o") }
13
+ RbConfig::CONFIG['CC'] = CONFIG['CC'] = ENV['CC'] || "mpicc"
14
+ RbConfig::CONFIG['CPP'] = CONFIG['CPP'] = ENV['CPP'] || "mpicc -E"
15
+ p 'CONFIG[CC]', CONFIG['CC']
16
+ crgemspec=Gem::Specification.find_by_name('coderunner')
17
+ crconfig = crgemspec.full_gem_path
18
+ $CPPFLAGS = " -I#{File.join(crconfig, 'include')} "+$CPPFLAGS
19
+ p ['CPPFLAGS', $CPPFLAGS]
20
+ raise "Please set the environment variable TRINITY_DIR" unless ENV['TRINITY_DIR']
21
+ $LOCAL_LIBS = " -L#{ENV['TRINITY_DIR']} " + $LOCAL_LIBS
22
+ $LOCAL_LIBS = " -L#{ENV['GS2']} " + $LOCAL_LIBS
23
+ have_library("gfortran")
24
+ have_library("netcdf")
25
+ have_library("netcdff")
26
+ have_library("fftw3")
27
+ have_library("fftw3f")
28
+ have_library("fftw3_mpi")
29
+ have_library("fftw3f_mpi")
30
+ have_library("simpledataio")
31
+
32
+ #have_library("gs2", "__gs2_main_MOD_gs2spec_from_trin")
33
+ have_library("gs2")
34
+ have_library("trinity")
35
+
36
+ dir_config('mpi')
37
+ have_header("mpi.h")
38
+ have_library("mpi")
39
+ have_library("mpi_f90")
40
+ have_library("mpi_f77")
41
+
42
+ create_makefile("trinitycrdriver/trinitycrdriver")
@@ -0,0 +1,69 @@
1
+ #include <math.h>
2
+ #include <string.h>
3
+ #include "code_runner_ext.h"
4
+ #include <mpi.h>
5
+ #include <stdbool.h>
6
+
7
+ /* Taken from the ruby-mpi gem*/
8
+ struct _Comm {
9
+ MPI_Comm Comm;
10
+ bool free;
11
+ };
12
+
13
+ static VALUE trinitycrdriver_run_trinity(VALUE class, VALUE input_file_name, VALUE mpi_comm){
14
+ printf("RUNNING TRINITY!!!\n\n");
15
+
16
+ struct _Comm *comm;
17
+ char * input_file_name_c;
18
+
19
+ Data_Get_Struct(mpi_comm, struct _Comm, comm);
20
+ input_file_name_c = StringValueCStr(input_file_name);
21
+ run_trinity_c(input_file_name_c, comm->Comm);
22
+
23
+ /*printf("input file name was %s\n", input_file_name_c);*/
24
+ /**/
25
+ /*free(input_file_name_c);*/
26
+
27
+
28
+
29
+ return Qnil;
30
+
31
+ }
32
+
33
+ void Init_trinitycrdriver()
34
+ {
35
+
36
+ VALUE ctrinity;
37
+
38
+ cgraph_kit = Qnil;
39
+ ccode_runner_gs2 = Qnil;
40
+ ccode_runner_ext = Qnil;
41
+ printf("HERE!!!\n\n");
42
+ ccode_runner = RGET_CLASS_TOP("CodeRunner");
43
+ /*VALUE ctrinity = RGET_CLASS_TOP("CodeRunner");*/
44
+ ctrinity = RGET_CLASS(ccode_runner, "Trinity");
45
+ rb_define_method(ctrinity, "run_trinity", trinitycrdriver_run_trinity, 2);
46
+ /*rb_define_class_under(ccode_runner, "Trinity",*/
47
+ /*RGET_CLASS(*/
48
+ /*RGET_CLASS(ccode_runner, "Run"), */
49
+ /*"FortranNamelist"*/
50
+ /*)*/
51
+ /*);*/
52
+
53
+ /*ccode_runner_gs2_gsl_tensor_complexes = rb_define_module_under(ccode_runner_gs2, "GSLComplexTensors");*/
54
+ /*rb_include_module(ccode_runner_gs2, ccode_runner_gs2_gsl_tensor_complexes);*/
55
+
56
+ /*ccode_runner_gs2_gsl_tensors = rb_define_module_under(ccode_runner_gs2, "GSLTensors"); */
57
+ /*rb_include_module(ccode_runner_gs2, ccode_runner_gs2_gsl_tensors);*/
58
+
59
+ /*cgsl = RGET_CLASS_TOP("GSL");*/
60
+ /*cgsl_vector = RGET_CLASS(cgsl, "Vector");*/
61
+ /*cgsl_vector_complex = RGET_CLASS(cgsl_vector, "Complex");*/
62
+
63
+ /*rb_define_method(ccode_runner_gs2_gsl_tensor_complexes, "field_gsl_tensor_complex_2", gs2crmod_tensor_complexes_field_gsl_tensor_complex_2, 1);*/
64
+ /*rb_define_method(ccode_runner_gs2_gsl_tensors, "field_real_space_gsl_tensor", gs2crmod_tensor_field_gsl_tensor, 1);*/
65
+ /*rb_define_method(ccode_runner_gs2_gsl_tensors, "field_correlation_gsl_tensor", gs2crmod_tensor_field_correlation_gsl_tensor, 1);*/
66
+
67
+ /*rb_define_method(ccode_runner_ext, "hello_world", code_runner_ext_hello_world, 0);*/
68
+ }
69
+
@@ -0,0 +1,100 @@
1
+
2
+ class CodeRunner::Trinity::Optimisation
3
+ include GSL::MultiMin
4
+ # optimisation_spec is a hash of {:code_name => {:variable => [initial_guess, dimension_scale_factor]}}
5
+ # dimension_scale_factor is just some estimate of the length scale in which the result
6
+ # varies significantly
7
+ # code_name is either trinity or chease (both can be used simultaneously)
8
+ attr_reader :optimisation_spec
9
+ attr_reader :optimisation_variables
10
+ attr_accessor :trinity_runner
11
+ attr_accessor :chease_runner
12
+ def initialize(optimised_quantity, optimisation_spec)
13
+ #@folder = folder
14
+ @optimised_quantity = optimised_quantity
15
+ @optimisation_spec = optimisation_spec
16
+ @optimisation_variables = optimisation_spec.map{|code, hash| hash.map{|var, pars| [code, var]}}.flatten(1)
17
+ @optimisation_starts = optimisation_spec.map{|code, hash| hash.map{|var, pars| pars[0]}}.flatten(1)
18
+ @optimisation_steps = optimisation_spec.map{|code, hash| hash.map{|var, pars| pars[1]}}.flatten(1)
19
+ #@runner = CodeRunner.fetch_runner(
20
+ #p ['optimisation_variables', @optimisation_variables]
21
+ end
22
+ def dimension
23
+ @optimisation_variables.size
24
+ end
25
+ def serial_optimise(optimisation_method, parameters_obj)
26
+ optimisation_meth = case optimisation_method
27
+ when :simplex
28
+ FMinimizer::NMSIMPLEX
29
+ else
30
+ raise "Unknown optimisation_method"
31
+ end
32
+ opt = FMinimizer.alloc(optimisation_meth, @optimisation_variables.size)
33
+ func = Proc.new{|v, optimiser| optimiser.func(v)}
34
+ gsl_func = Function.alloc(func, dimension)
35
+ gsl_func.set_params(self)
36
+ opt.set(gsl_func, @optimisation_starts.to_gslv, @optimisation_steps.to_gslv)
37
+ parameters_obj.nit.times do |i|
38
+ opt.iterate
39
+ p ['status', opt.x, opt.minimum, i, parameters_obj.nit]
40
+ end
41
+
42
+ p 'heellllllo'
43
+ MPI.Finalize
44
+
45
+ end
46
+ def func(v)
47
+ pars = {}
48
+ pars[:chease] = {}
49
+ pars[:trinity] = {}
50
+ for i in 0...v.size
51
+ code, varname = @optimisation_variables[i]
52
+ val = v[i]
53
+ pars[code][varname] = val
54
+ end
55
+ if not @first_run_done
56
+ pars[:trinity][:ntstep] = 300
57
+ #@first_run_done = true
58
+ #else
59
+ #pars[:trinity][:ntstep] = 100
60
+ end
61
+
62
+ pars[:chease][:ap] = [0.3,0.5,0.4,0.0,0.4,0.0,0.0]
63
+ pars[:chease][:at] = [0.16,1.0,1.0,-1.1,-1.1]
64
+
65
+
66
+ trinity_runner.run_class.instance_variable_set(:@mpi_communicator, MPI::Comm::WORLD)
67
+ if false and trinity_runner.run_list.size > 0
68
+ else
69
+ crun = chease_runner.run_class.new(chease_runner)
70
+ crun.update_submission_parameters(pars[:chease].inspect)
71
+ if chease_runner.run_list.size > 0
72
+ crun.restart_id = @cid
73
+ end
74
+ chease_runner.submit(crun)
75
+ crun = chease_runner.run_list[@cid = chease_runner.max_id]
76
+ crun.recheck
77
+ chease_runner.update
78
+ #chease_runner.print_out(0)
79
+ FileUtils.cp(crun.directory + '/ogyropsi.dat', trinity_runner.root_folder + '/.')
80
+
81
+ run = trinity_runner.run_class.new(trinity_runner)
82
+ run.update_submission_parameters(pars[:trinity].inspect)
83
+ #trinity_runner.run_class.instance_variable_set(:@delay_execution, true)
84
+ if trinity_runner.run_list.size > 0
85
+ #run.restart_id = @id
86
+ end
87
+ trinity_runner.submit(run)
88
+ run = trinity_runner.run_list[@id = trinity_runner.max_id]
89
+ run.recheck
90
+ trinity_runner.update
91
+ #trinity_runner.print_out(0)
92
+ result = run.send(@optimised_quantity)
93
+ p ['result is ', result]
94
+ return -result
95
+ end
96
+
97
+
98
+ #v.square.sum
99
+ end
100
+ end
@@ -0,0 +1,35 @@
1
+
2
+ require 'trinitycrdriver/trinitycrdriver'
3
+ require 'mpi'
4
+
5
+ class CodeRunner::Trinity
6
+ # We overwrite the system module's implemenation of this command.
7
+ # Instead of running trinity via a bash command or a batch script,
8
+ # we run it directly via its API.
9
+ @delay_execution = false
10
+ def execute
11
+ if rcp.delay_execution
12
+ return
13
+ else
14
+ execute_actual
15
+ end
16
+ end
17
+ def execute_actual
18
+ Dir.chdir(@directory){
19
+ if rcp.mpi_communicator?
20
+ start_mpi = false
21
+ mpicomm = rcp.mpi_communicator
22
+ else
23
+ start_mpi = true
24
+ MPI.Init
25
+ mpicomm = MPI::Comm::WORLD
26
+ puts ["INITIALISED MPI", mpicomm.size ]
27
+ end
28
+ run_trinity(@run_name + ".trin", mpicomm)
29
+ if start_mpi
30
+ MPI.Finalize
31
+ end
32
+
33
+ }
34
+ end
35
+ end
@@ -0,0 +1,174 @@
1
+
2
+ class CodeRunner
3
+ # This is a customised subclass of the CodeRunner::Run class which is designed to run the CodeRunner/Trinity optimisation framework
4
+ #
5
+ class Trinopt < Run
6
+
7
+ # Where this file is
8
+ @code_module_folder = File.dirname(File.expand_path(__FILE__)) # i.e. the directory this file is in
9
+
10
+
11
+ ################################################
12
+ # Quantities that are read or determined by CodeRunner
13
+ # after the simulation has ended
14
+ ###################################################
15
+
16
+ @results = [
17
+ ]
18
+
19
+ @code_long="CodeRunner/Trinity Optimisation Framework"
20
+
21
+ @run_info=[:time, :is_a_restart, :restart_id, :restart_run_name, :completed_steps, :percent_complete]
22
+
23
+ @variables = [
24
+ :chease_exec,
25
+ :output,
26
+ :search,
27
+ :trinity_defaults,
28
+ :gs_defaults,
29
+ :nit
30
+ ]
31
+
32
+ @uses_mpi = true
33
+
34
+ @modlet_required = false
35
+
36
+ @naming_pars = []
37
+
38
+ # Any folders which are a number will contain the results from flux simulations.
39
+ @excluded_sub_folders = ['trinity_runs', 'chease_runs', 'ecom_runs']
40
+
41
+ # A hook which gets called when printing the standard run information to the screen using the status command.
42
+ def print_out_line
43
+ #p ['id', id, 'ctd', ctd]
44
+ #p rcp.results.zip(rcp.results.map{|r| send(r)})
45
+ name = @run_name
46
+ name += " (res: #@restart_id)" if @restart_id
47
+ beginning = sprintf("%2d:%d %-60s %1s:%2.1f(%s) %3s%1s", @id, @job_no, name, @status.to_s[0,1], @run_time.to_f / 60.0, @nprocs.to_s, percent_complete, "%")
48
+ if ctd
49
+ #beginning += sprintf("Q:%f, Pfusion:%f MW, Ti0:%f keV, Te0:%f keV, n0:%f x10^20", fusionQ, pfus, ti0, te0, ne0)
50
+ end
51
+ beginning += " ---#{@comment}" if @comment
52
+ beginning
53
+ end
54
+
55
+
56
+
57
+ # Modify new_run so that it becomes a restart of self. Adusts
58
+ # all the parameters of the new run to be equal to the parameters
59
+ # of the run that calls this function, and sets up its run name
60
+ # correctly
61
+ def restart(new_run)
62
+ #new_run = self.dup
63
+ (rcp.variables).each{|v| new_run.set(v, send(v)) if send(v)}
64
+ new_run.is_a_restart = true
65
+ new_run.restart_id = @id
66
+ new_run.restart_run_name = @run_name
67
+ new_run.nopt = -1
68
+ new_run.run_name = nil
69
+ new_run.naming_pars = @naming_pars
70
+ new_run.update_submission_parameters(new_run.parameter_hash.inspect, false) if new_run.parameter_hash
71
+ new_run.naming_pars.delete(:restart_id)
72
+ new_run.generate_run_name
73
+ raise "This function is not complete"
74
+ end
75
+ # This is a hook which gets called just before submitting a simulation. It sets up the folder and generates any necessary input files.
76
+ def generate_input_file
77
+ check_parameters
78
+ if @restart_id
79
+ @runner.run_list[@restart_id].restart(self)
80
+ end
81
+ File.open("driver_script.rb", "w"){|f| f.puts optimisation_script}
82
+ FileUtils.makedirs('trinity_runs')
83
+ FileUtils.makedirs('gs_runs')
84
+ FileUtils.ln_s("../../#{@trinity_defaults}_defaults.rb", "trinity_runs")
85
+ FileUtils.ln_s("../../#{@gs_defaults}_defaults.rb", "gs_runs")
86
+ save
87
+ end
88
+
89
+ def optimisation_script
90
+ return <<EOF
91
+ require 'coderunner'
92
+ CodeRunner.setup_run_class('trinity')
93
+ CodeRunner.setup_run_class('trinopt')
94
+ require 'trinitycrdriver'
95
+ require 'trinitycrdriver/optimisation'
96
+ CodeRunner::Trinopt.run_optimisation(#@id)
97
+ EOF
98
+ end
99
+
100
+ def check_parameters
101
+ end
102
+
103
+
104
+ def self.run_optimisation(id = ARGV[-1])
105
+ MPI.Init
106
+ @runner = CodeRunner.fetch_runner(Y: '../../', U: true)
107
+ #@run = @runner.run_list[id.to_i]
108
+ @run = self.load(Dir.pwd, @runner)
109
+ #raise "Can't find run with id #{id}; #{@runner.run_list.keys}" unless @run
110
+ opt = CodeRunner::Trinity::Optimisation.new(
111
+ @run.output, @run.search
112
+ )
113
+ @trinity_runner = CodeRunner.fetch_runner(Y: 'trinity_runs', X: '/dev/null', C: 'trinity', D: @run.trinity_defaults)
114
+ @trinity_runner.nprocs = MPI::Comm::WORLD.size
115
+ @chease_runner = CodeRunner.fetch_runner(Y: 'gs_runs', X: @run.chease_exec, C: 'chease', D: @run.gs_defaults)
116
+ @chease_runner.nprocs = '1'
117
+ #Dir.chdir('trinity_runs'){@trinity_runner.run_class.use_new_defaults_file('rake_test_opt', 'ifspppl_chease_input.trin')}
118
+ #Dir.chdir(tfolderchease){@chease_runner.run_class.use_new_defaults_file('rake_test_opt_chease', 'chease_example.in')}
119
+ #assert_equal([:trinity, :powerin], opt.optimisation_variables[0])
120
+ opt.trinity_runner = @trinity_runner
121
+ opt.chease_runner = @chease_runner
122
+ opt.serial_optimise(:simplex, @run)
123
+ MPI.Finalize
124
+ end
125
+
126
+
127
+
128
+ def vim_output
129
+ system "vim -Ro #{output_file} #{error_file}"
130
+ end
131
+ alias :vo :vim_output
132
+
133
+
134
+ # Parameters which follow the Trinity executable, in this case just the input file.
135
+ def parameter_string
136
+ " driver_script.rb #@id"
137
+ end
138
+
139
+ def parameter_transition
140
+ end
141
+
142
+ def generate_component_runs
143
+ #puts "HERE"
144
+ end
145
+
146
+
147
+
148
+ @source_code_subfolders = []
149
+
150
+ # 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).
151
+ #
152
+ def process_directory_code_specific
153
+ get_status
154
+ #p ['id is', id, 'ctd is ', ctd]
155
+ #if ctd
156
+ #get_global_results
157
+ #end
158
+ #p ['fusionQ is ', fusionQ]
159
+ #@percent_complete = completed_timesteps.to_f / ntstep.to_f * 100.0
160
+ @percent_complete = 0.0
161
+ end
162
+
163
+ def get_status
164
+ return :Unknown
165
+ end
166
+
167
+
168
+ def input_file_extension
169
+ ''
170
+ end
171
+
172
+ end
173
+ end
174
+
@@ -0,0 +1 @@
1
+ require 'trinoptcrmod/trinopt'
@@ -0,0 +1,92 @@
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
+ # stub: trinitycrdriver 0.1.0 ruby lib
6
+ # stub: ext/trinitycrdriver/extconf.rb
7
+
8
+ Gem::Specification.new do |s|
9
+ s.name = "trinitycrdriver"
10
+ s.version = "0.1.0"
11
+
12
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
13
+ s.require_paths = ["lib"]
14
+ s.authors = ["Edmund Highcock"]
15
+ s.date = "2015-07-23"
16
+ s.description = "A gem to allow coderunner to run the trinity code directly."
17
+ s.email = "edmundhighcock@users.sourceforge.net"
18
+ s.extensions = ["ext/trinitycrdriver/extconf.rb"]
19
+ s.extra_rdoc_files = [
20
+ "LICENSE.txt",
21
+ "README.rdoc"
22
+ ]
23
+ s.files = [
24
+ ".document",
25
+ "Gemfile",
26
+ "LICENSE.txt",
27
+ "README.rdoc",
28
+ "Rakefile",
29
+ "VERSION",
30
+ "clean.sh",
31
+ "ext/trinitycrdriver/extconf.rb",
32
+ "ext/trinitycrdriver/trinitycrdriver.c",
33
+ "lib/trinitycrdriver.rb",
34
+ "lib/trinitycrdriver/optimisation.rb",
35
+ "lib/trinoptcrmod.rb",
36
+ "lib/trinoptcrmod/trinopt.rb",
37
+ "trinitycrdriver.gemspec"
38
+ ]
39
+ s.homepage = "http://github.com/edmundhighcock/trinitycrdriver"
40
+ s.licenses = ["GPLv3"]
41
+ s.rubygems_version = "2.4.8"
42
+ s.summary = "A gem to allow coderunner to run the trinity code directly via a C interface."
43
+
44
+ if s.respond_to? :specification_version then
45
+ s.specification_version = 4
46
+
47
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
48
+ s.add_runtime_dependency(%q<coderunner>, [">= 0.14.2"])
49
+ s.add_runtime_dependency(%q<text-data-tools>, [">= 1.1.3"])
50
+ s.add_runtime_dependency(%q<gs2crmod>, [">= 0.11.33"])
51
+ s.add_runtime_dependency(%q<trinitycrmod>, [">= 0.4.7"])
52
+ s.add_runtime_dependency(%q<ruby-mpi>, [">= 0.2.0"])
53
+ s.add_runtime_dependency(%q<cheasecrmod>, [">= 0.1.0"])
54
+ s.add_development_dependency(%q<shoulda>, ["= 3.0.1"])
55
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
56
+ s.add_development_dependency(%q<bundler>, ["> 1.0.0"])
57
+ s.add_development_dependency(%q<jeweler>, [">= 2.0.1"])
58
+ s.add_development_dependency(%q<simplecov>, [">= 0"])
59
+ s.add_development_dependency(%q<minitest>, ["~> 4"])
60
+ s.add_development_dependency(%q<rake-compiler>, [">= 0"])
61
+ else
62
+ s.add_dependency(%q<coderunner>, [">= 0.14.2"])
63
+ s.add_dependency(%q<text-data-tools>, [">= 1.1.3"])
64
+ s.add_dependency(%q<gs2crmod>, [">= 0.11.33"])
65
+ s.add_dependency(%q<trinitycrmod>, [">= 0.4.7"])
66
+ s.add_dependency(%q<ruby-mpi>, [">= 0.2.0"])
67
+ s.add_dependency(%q<cheasecrmod>, [">= 0.1.0"])
68
+ s.add_dependency(%q<shoulda>, ["= 3.0.1"])
69
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
70
+ s.add_dependency(%q<bundler>, ["> 1.0.0"])
71
+ s.add_dependency(%q<jeweler>, [">= 2.0.1"])
72
+ s.add_dependency(%q<simplecov>, [">= 0"])
73
+ s.add_dependency(%q<minitest>, ["~> 4"])
74
+ s.add_dependency(%q<rake-compiler>, [">= 0"])
75
+ end
76
+ else
77
+ s.add_dependency(%q<coderunner>, [">= 0.14.2"])
78
+ s.add_dependency(%q<text-data-tools>, [">= 1.1.3"])
79
+ s.add_dependency(%q<gs2crmod>, [">= 0.11.33"])
80
+ s.add_dependency(%q<trinitycrmod>, [">= 0.4.7"])
81
+ s.add_dependency(%q<ruby-mpi>, [">= 0.2.0"])
82
+ s.add_dependency(%q<cheasecrmod>, [">= 0.1.0"])
83
+ s.add_dependency(%q<shoulda>, ["= 3.0.1"])
84
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
85
+ s.add_dependency(%q<bundler>, ["> 1.0.0"])
86
+ s.add_dependency(%q<jeweler>, [">= 2.0.1"])
87
+ s.add_dependency(%q<simplecov>, [">= 0"])
88
+ s.add_dependency(%q<minitest>, ["~> 4"])
89
+ s.add_dependency(%q<rake-compiler>, [">= 0"])
90
+ end
91
+ end
92
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trinitycrdriver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edmund Highcock
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-23 00:00:00.000000000 Z
11
+ date: 2015-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: coderunner
@@ -67,19 +67,47 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: 0.4.7
69
69
  - !ruby/object:Gem::Dependency
70
- name: shoulda
70
+ name: ruby-mpi
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
75
+ version: 0.2.0
76
+ type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: 0.2.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: cheasecrmod
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: 0.1.0
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 0.1.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: shoulda
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '='
102
+ - !ruby/object:Gem::Version
103
+ version: 3.0.1
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '='
109
+ - !ruby/object:Gem::Version
110
+ version: 3.0.1
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: rdoc
85
113
  requirement: !ruby/object:Gem::Requirement
@@ -114,18 +142,61 @@ dependencies:
114
142
  requirements:
115
143
  - - ">="
116
144
  - !ruby/object:Gem::Version
117
- version: 2.0.0
145
+ version: 2.0.1
118
146
  type: :development
119
147
  prerelease: false
120
148
  version_requirements: !ruby/object:Gem::Requirement
121
149
  requirements:
122
150
  - - ">="
123
151
  - !ruby/object:Gem::Version
124
- version: 2.0.0
152
+ version: 2.0.1
153
+ - !ruby/object:Gem::Dependency
154
+ name: simplecov
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: minitest
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '4'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '4'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rake-compiler
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
125
195
  description: A gem to allow coderunner to run the trinity code directly.
126
196
  email: edmundhighcock@users.sourceforge.net
127
197
  executables: []
128
- extensions: []
198
+ extensions:
199
+ - ext/trinitycrdriver/extconf.rb
129
200
  extra_rdoc_files:
130
201
  - LICENSE.txt
131
202
  - README.rdoc
@@ -136,9 +207,14 @@ files:
136
207
  - README.rdoc
137
208
  - Rakefile
138
209
  - VERSION
210
+ - clean.sh
211
+ - ext/trinitycrdriver/extconf.rb
212
+ - ext/trinitycrdriver/trinitycrdriver.c
139
213
  - lib/trinitycrdriver.rb
140
- - test/helper.rb
141
- - test/test_trinitycrdriver.rb
214
+ - lib/trinitycrdriver/optimisation.rb
215
+ - lib/trinoptcrmod.rb
216
+ - lib/trinoptcrmod/trinopt.rb
217
+ - trinitycrdriver.gemspec
142
218
  homepage: http://github.com/edmundhighcock/trinitycrdriver
143
219
  licenses:
144
220
  - GPLv3
@@ -159,7 +235,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
159
235
  version: '0'
160
236
  requirements: []
161
237
  rubyforge_project:
162
- rubygems_version: 2.2.2
238
+ rubygems_version: 2.4.8
163
239
  signing_key:
164
240
  specification_version: 4
165
241
  summary: A gem to allow coderunner to run the trinity code directly via a C interface.
data/test/helper.rb DELETED
@@ -1,34 +0,0 @@
1
- require 'simplecov'
2
-
3
- module SimpleCov::Configuration
4
- def clean_filters
5
- @filters = []
6
- end
7
- end
8
-
9
- SimpleCov.configure do
10
- clean_filters
11
- load_adapter 'test_frameworks'
12
- end
13
-
14
- ENV["COVERAGE"] && SimpleCov.start do
15
- add_filter "/.rvm/"
16
- end
17
- require 'rubygems'
18
- require 'bundler'
19
- begin
20
- Bundler.setup(:default, :development)
21
- rescue Bundler::BundlerError => e
22
- $stderr.puts e.message
23
- $stderr.puts "Run `bundle install` to install missing gems"
24
- exit e.status_code
25
- end
26
- require 'test/unit'
27
- require 'shoulda'
28
-
29
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
30
- $LOAD_PATH.unshift(File.dirname(__FILE__))
31
- require 'trinitycrdriver'
32
-
33
- class Test::Unit::TestCase
34
- end
@@ -1,6 +0,0 @@
1
- require 'helper'
2
-
3
- class TestTrinitycrdriver < Test::Unit::TestCase
4
- def test_run
5
- end
6
- end