vasputils 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -6,9 +6,9 @@ source "http://rubygems.org"
6
6
  # Add dependencies to develop your gem here.
7
7
  # Include everything needed to run rake, tests, features, etc.
8
8
  group :development do
9
- gem "rdoc", "~> 3.12"
10
- gem "bundler", "~> 1.1.3"
11
- gem "jeweler", "~> 1.8.3"
9
+ gem "rdoc", ">= 3.12"
10
+ gem "bundler", ">= 1.1.3"
11
+ gem "jeweler", ">= 1.8.3"
12
12
  gem "simplecov", ">= 0"
13
13
  gem "crystalcell", ">= 0.0.0"
14
14
  gem "mageo", ">= 0.0.0"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.4
1
+ 0.0.5
data/bin/qsubvasp CHANGED
@@ -45,7 +45,7 @@ File.open(SCRIPT_FILE, "w") do |io|
45
45
  io.puts "#PBS -N task"
46
46
  io.puts "#PBS -l nodes=4:ppn=1:Ga"
47
47
  io.puts "cd $PBS_O_WORKDIR"
48
- io.puts "vaspgeomopt"
48
+ io.puts "runvasp"
49
49
  #io.puts "#/usr/local/bin/mpiexec /usr/local/bin/vasp5212mpi-ifc11-fast"
50
50
  #io.puts "#/home/ippei/local/mpi/mpiexec-0.84/mpiexec /usr/local/calc/bin/vasp5212-mpich2"
51
51
  #io.puts "#/usr/local/calc/mpiexec/bin/mpiexec /usr/local/calc/bin/vasp5212-mpich2"
data/bin/runvasp CHANGED
@@ -1,8 +1,10 @@
1
1
  #! /usr/bin/env ruby
2
2
  # coding: utf-8
3
3
 
4
-
5
4
  require "rubygems"
5
+ gem "comana"
6
+ require "comana/computationmanager.rb"
7
+
6
8
  gem "vasputils"
7
9
  require "vasputils/vaspdir.rb"
8
10
  require "vasputils/vaspgeomopt.rb"
@@ -25,11 +27,11 @@ else
25
27
  calc_dir = VaspDir.new(dir)
26
28
  end
27
29
 
28
- #pp calc_dir
30
+ #pp calc_dir.class.ancestors
29
31
 
30
32
  begin
31
33
  calc_dir.start
32
- rescue Comana::AlreadyStartedError
34
+ rescue ComputationManager::AlreadyStartedError
33
35
  puts "Already started. Exit."
34
36
  exit
35
37
  end
@@ -28,8 +28,10 @@ require "vasputils/kpoints.rb"
28
28
  # try00 形式の postfix がついていることを前提とする。
29
29
  # 00 の部分には CONTCAR を POSCAR にする手続きで連続して行う計算の番号を示す。
30
30
  #
31
- class VaspDir < Comana
31
+ class VaspDir < ComputationManager
32
32
  class InitializeError < Exception; end
33
+ class NoVaspBinaryError < Exception; end
34
+ class PrepareNextError < Exception; end
33
35
 
34
36
  #INCAR 解析とかして、モードを調べる。
35
37
  #- 格子定数の構造最適化モード(ISIF = 3)
@@ -37,6 +39,7 @@ class VaspDir < Comana
37
39
  ##- k 点探索モードは無理だろう。
38
40
  def initialize(dir)
39
41
  super(dir)
42
+ @lockdir = "lock_vaspdir"
40
43
  %w(INCAR KPOINTS POSCAR POTCAR).each do |file|
41
44
  infile = "#{@dir}/#{file}"
42
45
  raise InitializeError, infile unless FileTest.exist? infile
@@ -96,58 +99,29 @@ class VaspDir < Comana
96
99
  # そのうち mpiexec from torque に対応するが、
97
100
  # まずは mpirun で動くように作る。
98
101
  def calculate
99
- #File.open(lock_file, "w") do |lock_io|
100
- # lock_io.puts "HOST: #{ENV["HOST"]}"
101
- # lock_io.puts "START: #{Time.now.to_s}"
102
- # lock_io.flush
103
-
104
- # num_cores = 4 if /^Se\d\d/ =~ ENV["HOST"]
105
- # num_cores = 4 if /^Ge\d\d/ =~ ENV["HOST"]
106
- # num_cores = 4 if /^Ga\d\d/ =~ ENV["HOST"]
107
- # num_cores = 4 if /^At$/ =~ ENV["HOST"]
108
- # num_cores = 2 if /^yggdrasil$/ =~ ENV["HOST"]
109
-
110
- # # machines を生成
111
- # File.open("#{@dir}/machines", "w") do |io|
112
- # io.puts "localhost:#{num_cores}"
113
- # end
114
- #end
115
- #num_cores = 4
116
-
117
- #settings = YAML.load_file("#{ENV["HOME"]}/.machineinfo")
118
- #setting = settings[ENV["HOST"]]
119
102
  begin
120
- hi = MachineInfo.load_file("#{ENV["HOME"]}/.machineinfo").get_host(ENV["HOST"])
121
- vasp = hi["vasp"]
103
+ info =
104
+ MachineInfo.load_file("#{ENV["HOME"]}/.machineinfo").get_info(ENV["HOST"])
105
+ vasp = info["vasp"]
122
106
  rescue
123
- vasp = "vasp"
107
+ #vasp = "vasp"
108
+ raise NoVaspBinaryError, "No vasp path in #{ENV["HOME"]}/.machineinfo"
124
109
  end
125
110
  command = "cd #{@dir};"
126
111
  command += vasp
127
112
  command += "> stdout"
128
113
 
129
- #if ENV["PBS_JOBID"]
130
- # command += "/usr/local/calc/mpiexec/bin/mpiexec /usr/local/calc/bin/vasp5212-mpich2"
131
- #else
132
- # /usr/local/calc/bin/vasp5212-mpich2"
133
- ## command = "cd #{@dir};" +
134
- ## "/usr/local/calc/mpich-1.2.7-ifc7/bin/mpirun " +
135
- ## "-np #{num_cores} " +
136
- ## "-machinefile machines " +
137
- ## "/usr/local/calc/vasp/vasp4631mpi" +
138
- ## "> stdout"
139
- #end
140
-
141
114
  system command
142
115
  end
143
116
 
144
117
  def prepare_next
145
118
  #do_nothing
119
+ raise PrepareNextError, "VaspDir doesn't need next."
146
120
  end
147
121
 
148
122
  end
149
123
 
150
- #class VaspGeometryOptimization < Comana
124
+ #class VaspGeometryOptimization < ComputationManager
151
125
  # # 次の計算ディレクトリを作成し、
152
126
  # # その VaspDir クラスで self を置き換える。
153
127
  # # 計算が正常終了していなければ、例外 VaspDirNotEndedError を生じる。
@@ -6,20 +6,21 @@ require "fileutils"
6
6
 
7
7
  require "rubygems"
8
8
  gem "comana"
9
- require "comana"
9
+ require "comana/computationmanager.rb"
10
10
 
11
- require "vasputils/vaspdir"
11
+ require "vasputils/vaspdir.rb"
12
12
 
13
13
  #
14
14
  #
15
15
  #
16
- class VaspGeomOpt < Comana
16
+ class VaspGeomOpt < ComputationManager
17
17
  class NoVaspDirError < Exception; end
18
18
  class LatestDirStartedError < Exception; end
19
19
  class NoIntegerEndedNameError < Exception; end
20
20
 
21
21
  def initialize(dir)
22
22
  super(dir)
23
+ @lockdir = "lock_vaspgeomopt"
23
24
  latest_dir # to check.
24
25
  end
25
26
 
data/memo.txt CHANGED
@@ -1,3 +1,8 @@
1
+ 0.0.5
2
+ Modifiy error process in VaspDir.calculate.
3
+ Add runvasp.
4
+ Add qsubvasp.
5
+
1
6
  0.0.4 release
2
7
  Using Comana library.
3
8
  Add runvasp.
data/test/test_vaspdir.rb CHANGED
@@ -5,7 +5,7 @@ $TEST = true
5
5
 
6
6
  require "rubygems"
7
7
  gem "comana"
8
- require "comana.rb"
8
+ require "comana/computationmanager.rb"
9
9
 
10
10
  require "test/unit"
11
11
  require "vasputils/vaspdir.rb"
@@ -14,7 +14,7 @@ require "vasputils/vaspdir.rb"
14
14
  # assert_in_delta( cor, data, $tolerance )
15
15
  # assert_raise( RuntimeError ){}
16
16
 
17
- class VaspDir < Comana
17
+ class VaspDir < ComputationManager
18
18
  attr_reader :mode
19
19
 
20
20
  def calculate
@@ -88,7 +88,7 @@ class TC_VaspDir < Test::Unit::TestCase
88
88
  end
89
89
 
90
90
  def test_calculate
91
- lock_dir = "test/vaspdir/not-yet/comana_lock"
91
+ lock_dir = "test/vaspdir/not-yet/lock_vaspdir"
92
92
  Dir.rmdir(lock_dir) if Dir.exist?(lock_dir)
93
93
  #pp @vd00;exit
94
94
  #@vd00.calculate
@@ -102,7 +102,7 @@ class TC_VaspDir < Test::Unit::TestCase
102
102
  assert(FileTest.exist? "test/vaspdir/not-yet/POSCAR")
103
103
  assert(FileTest.exist? "test/vaspdir/not-yet/POTCAR")
104
104
 
105
- lock_dir = "test/vaspdir/not-yet/comana_lock"
105
+ lock_dir = "test/vaspdir/not-yet/lock_vaspdir"
106
106
  Dir.rmdir(lock_dir) if Dir.exist?(lock_dir)
107
107
  end
108
108
 
@@ -3,10 +3,11 @@
3
3
 
4
4
  require "fileutils"
5
5
  require "test/unit"
6
+
6
7
  require "vasputils/vaspgeomopt.rb"
7
8
 
8
9
 
9
- class VaspGeomOpt < Comana
10
+ class VaspGeomOpt < ComputationManager
10
11
  public :latest_dir, :prepare_next
11
12
  end
12
13
 
data/vasputils.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "vasputils"
8
- s.version = "0.0.4"
8
+ s.version = "0.0.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["ippei94da"]
12
- s.date = "2012-05-07"
12
+ s.date = "2012-05-08"
13
13
  s.description = "This gem provides parsers for some of input and output files for VASP.\n This will provide support command for computations."
14
14
  s.email = "ippei94da@gmail.com"
15
15
  s.executables = ["addVolumeToten.rb", "latticeconstants", "lsvasp", "lsvaspdir", "lsvaspseries", "qsubvasp", "runvasp", "symposcar"]
@@ -207,9 +207,9 @@ Gem::Specification.new do |s|
207
207
  s.specification_version = 3
208
208
 
209
209
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
210
- s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
211
- s.add_development_dependency(%q<bundler>, ["~> 1.1.3"])
212
- s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
210
+ s.add_development_dependency(%q<rdoc>, [">= 3.12"])
211
+ s.add_development_dependency(%q<bundler>, [">= 1.1.3"])
212
+ s.add_development_dependency(%q<jeweler>, [">= 1.8.3"])
213
213
  s.add_development_dependency(%q<simplecov>, [">= 0"])
214
214
  s.add_development_dependency(%q<crystalcell>, [">= 0.0.0"])
215
215
  s.add_development_dependency(%q<mageo>, [">= 0.0.0"])
@@ -218,9 +218,9 @@ Gem::Specification.new do |s|
218
218
  s.add_development_dependency(%q<comana>, [">= 0.0.5"])
219
219
  s.add_development_dependency(%q<builtinextension>, [">= 0.0.3"])
220
220
  else
221
- s.add_dependency(%q<rdoc>, ["~> 3.12"])
222
- s.add_dependency(%q<bundler>, ["~> 1.1.3"])
223
- s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
221
+ s.add_dependency(%q<rdoc>, [">= 3.12"])
222
+ s.add_dependency(%q<bundler>, [">= 1.1.3"])
223
+ s.add_dependency(%q<jeweler>, [">= 1.8.3"])
224
224
  s.add_dependency(%q<simplecov>, [">= 0"])
225
225
  s.add_dependency(%q<crystalcell>, [">= 0.0.0"])
226
226
  s.add_dependency(%q<mageo>, [">= 0.0.0"])
@@ -230,9 +230,9 @@ Gem::Specification.new do |s|
230
230
  s.add_dependency(%q<builtinextension>, [">= 0.0.3"])
231
231
  end
232
232
  else
233
- s.add_dependency(%q<rdoc>, ["~> 3.12"])
234
- s.add_dependency(%q<bundler>, ["~> 1.1.3"])
235
- s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
233
+ s.add_dependency(%q<rdoc>, [">= 3.12"])
234
+ s.add_dependency(%q<bundler>, [">= 1.1.3"])
235
+ s.add_dependency(%q<jeweler>, [">= 1.8.3"])
236
236
  s.add_dependency(%q<simplecov>, [">= 0"])
237
237
  s.add_dependency(%q<crystalcell>, [">= 0.0.0"])
238
238
  s.add_dependency(%q<mageo>, [">= 0.0.0"])
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vasputils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,44 +9,44 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-07 00:00:00.000000000 Z
12
+ date: 2012-05-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rdoc
16
- requirement: &86738910 !ruby/object:Gem::Requirement
16
+ requirement: &82143140 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ~>
19
+ - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
21
  version: '3.12'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *86738910
24
+ version_requirements: *82143140
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &86737820 !ruby/object:Gem::Requirement
27
+ requirement: &82141240 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
- - - ~>
30
+ - - ! '>='
31
31
  - !ruby/object:Gem::Version
32
32
  version: 1.1.3
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *86737820
35
+ version_requirements: *82141240
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: jeweler
38
- requirement: &86753150 !ruby/object:Gem::Requirement
38
+ requirement: &82139430 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
- - - ~>
41
+ - - ! '>='
42
42
  - !ruby/object:Gem::Version
43
43
  version: 1.8.3
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *86753150
46
+ version_requirements: *82139430
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: simplecov
49
- requirement: &86752350 !ruby/object:Gem::Requirement
49
+ requirement: &82155010 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *86752350
57
+ version_requirements: *82155010
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: crystalcell
60
- requirement: &86751370 !ruby/object:Gem::Requirement
60
+ requirement: &82154520 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 0.0.0
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *86751370
68
+ version_requirements: *82154520
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: mageo
71
- requirement: &86749640 !ruby/object:Gem::Requirement
71
+ requirement: &82153850 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 0.0.0
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *86749640
79
+ version_requirements: *82153850
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: malge
82
- requirement: &86748730 !ruby/object:Gem::Requirement
82
+ requirement: &82153190 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: 0.0.1
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *86748730
90
+ version_requirements: *82153190
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: maset
93
- requirement: &86745950 !ruby/object:Gem::Requirement
93
+ requirement: &82152310 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: 0.0.0
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *86745950
101
+ version_requirements: *82152310
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: comana
104
- requirement: &86584290 !ruby/object:Gem::Requirement
104
+ requirement: &82150690 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: 0.0.5
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *86584290
112
+ version_requirements: *82150690
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: builtinextension
115
- requirement: &86583340 !ruby/object:Gem::Requirement
115
+ requirement: &82149970 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,7 +120,7 @@ dependencies:
120
120
  version: 0.0.3
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *86583340
123
+ version_requirements: *82149970
124
124
  description: ! "This gem provides parsers for some of input and output files for VASP.\n
125
125
  \ This will provide support command for computations."
126
126
  email: ippei94da@gmail.com
@@ -331,7 +331,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
331
331
  version: '0'
332
332
  segments:
333
333
  - 0
334
- hash: -619006479
334
+ hash: -917063793
335
335
  required_rubygems_version: !ruby/object:Gem::Requirement
336
336
  none: false
337
337
  requirements: