vasputils 0.0.5 → 0.0.6
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 +1 -1
- data/VERSION +1 -1
- data/bin/qsubvasp +29 -51
- data/bin/runvasp +1 -3
- data/lib/vasputils/vaspdir.rb +5 -94
- data/lib/vasputils/vaspgeomopt.rb +2 -2
- data/memo.txt +11 -5
- data/vasputils.gemspec +5 -5
- metadata +24 -24
data/Gemfile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.6
|
data/bin/qsubvasp
CHANGED
@@ -1,66 +1,44 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
2
|
# coding: utf-8
|
3
3
|
|
4
|
-
|
5
|
-
SCRIPT_FILE = "pbs.sh"
|
6
|
-
PBS_LOG = "pbs.log"
|
7
|
-
|
8
|
-
|
9
4
|
require "optparse"
|
10
5
|
require "yaml"
|
11
6
|
require "pp"
|
12
7
|
|
8
|
+
require "rubygems"
|
9
|
+
gem "comana"
|
10
|
+
require "comana/queuesubmitter.rb"
|
11
|
+
require "comana/machineinfo.rb"
|
12
|
+
|
13
|
+
require "vasputils/vaspdir.rb"
|
14
|
+
require "vasputils/vaspgeomopt.rb"
|
15
|
+
|
13
16
|
## option analysis
|
14
17
|
OPTS = {}
|
15
18
|
op = OptionParser.new
|
16
|
-
#op.on("-e", "--economy"
|
17
|
-
op.on("-s", "--speed"
|
18
|
-
|
19
|
-
op.on("-
|
20
|
-
|
21
|
-
#
|
22
|
-
|
19
|
+
#op.on("-e" , "--economy", "Prior efficiency." ){OPTS[:e] = true}
|
20
|
+
op.on("-s" , "--speed" , "Prior speed to efficiency."){OPTS[:s] = true}
|
21
|
+
op.on("-n nodes" , "--nodes" , "Node series." ){|v| OPTS[:n] = v}
|
22
|
+
#op.on("-c command", "--command", "Command to calculate." ){|v| OPTS[:c] = v}
|
23
|
+
op.on("-d dir" , "--dir" , "Directory to calculate." ){|v|
|
24
|
+
#OPTS[:d] = VaspDir.new(v)
|
25
|
+
OPTS[:d] = VaspGeomOpt.new(File.expand_path(v))
|
26
|
+
}
|
23
27
|
op.parse!(ARGV)
|
24
28
|
|
25
|
-
|
26
|
-
|
27
|
-
#qsub で複数のクラスターを候補に入れることができるか?e.g., Ga, Ge
|
28
|
-
#それによって、ここがかきかわる。
|
29
|
-
|
30
|
-
#puts "Options -e and -s cannot be duplicated." if OPTS[:e] && OPTS[:s]
|
31
|
-
#if [OPTS[:g], OPTS[:n], OPTS[:c]].select_all(true).size ==
|
32
|
-
# puts "Options -g, -n, and -c cannot be duplicated."
|
33
|
-
# exit
|
34
|
-
#end
|
35
|
-
|
36
|
-
yaml = YAML.load_file("#{ENV["HOME"]}/.machineinfo")
|
37
|
-
pp yaml
|
29
|
+
OPTS[:machineinfo] = MachineInfo.load_file
|
30
|
+
OPTS[:c] = "runvasp -g"
|
38
31
|
|
39
|
-
|
40
|
-
|
32
|
+
qs = QueueSubmitter.new(OPTS)
|
33
|
+
#pp qs; exit
|
34
|
+
begin
|
35
|
+
qs.start
|
36
|
+
puts "Submitted. Exit."
|
37
|
+
exit
|
38
|
+
rescue QueueSubmitter::AlreadyStartedError
|
39
|
+
puts "Already started. Exit."
|
40
|
+
exit
|
41
|
+
rescue QueueSubmitter::PrepareNextError
|
42
|
+
puts "Must not happen."
|
41
43
|
exit
|
42
44
|
end
|
43
|
-
|
44
|
-
File.open(SCRIPT_FILE, "w") do |io|
|
45
|
-
io.puts "#PBS -N task"
|
46
|
-
io.puts "#PBS -l nodes=4:ppn=1:Ga"
|
47
|
-
io.puts "cd $PBS_O_WORKDIR"
|
48
|
-
io.puts "runvasp"
|
49
|
-
#io.puts "#/usr/local/bin/mpiexec /usr/local/bin/vasp5212mpi-ifc11-fast"
|
50
|
-
#io.puts "#/home/ippei/local/mpi/mpiexec-0.84/mpiexec /usr/local/calc/bin/vasp5212-mpich2"
|
51
|
-
#io.puts "#/usr/local/calc/mpiexec/bin/mpiexec /usr/local/calc/bin/vasp5212-mpich2"
|
52
|
-
#io.puts "#~/tmp.rb #OK"
|
53
|
-
|
54
|
-
#io.puts condition
|
55
|
-
#io.puts rsync
|
56
|
-
#io.puts run
|
57
|
-
#io.puts rsync
|
58
|
-
#io.puts mv to trash?
|
59
|
-
end
|
60
|
-
|
61
|
-
# Record job_id in pbs. Overwrite if exists.
|
62
|
-
job_id = `qsub #{SCRIPT_FILE}`
|
63
|
-
File.open(PBS_LOG, "w") do |io|
|
64
|
-
io.puts job_id
|
65
|
-
end
|
66
|
-
|
data/bin/runvasp
CHANGED
@@ -5,7 +5,7 @@ require "rubygems"
|
|
5
5
|
gem "comana"
|
6
6
|
require "comana/computationmanager.rb"
|
7
7
|
|
8
|
-
gem "vasputils"
|
8
|
+
#gem "vasputils"
|
9
9
|
require "vasputils/vaspdir.rb"
|
10
10
|
require "vasputils/vaspgeomopt.rb"
|
11
11
|
|
@@ -15,10 +15,8 @@ require "optparse"
|
|
15
15
|
OPTIONS = {}
|
16
16
|
op = OptionParser.new
|
17
17
|
op.on("-g" , "--geom-opt", "Geometry optimization"){OPTIONS[:g] = true}
|
18
|
-
#op.on("-b val", "--bak=val", "descriptionB"){|v| OPTIONS[:bak] = v}
|
19
18
|
op.parse!(ARGV)
|
20
19
|
|
21
|
-
|
22
20
|
dir = ARGV[0] || "."
|
23
21
|
|
24
22
|
if OPTIONS[:g]
|
data/lib/vasputils/vaspdir.rb
CHANGED
@@ -16,27 +16,15 @@ require "vasputils/outcar.rb"
|
|
16
16
|
require "vasputils/poscar.rb"
|
17
17
|
require "vasputils/kpoints.rb"
|
18
18
|
|
19
|
-
#
|
20
|
-
#
|
21
|
-
# MEMO
|
22
|
-
# interrupted? みたいなメソッドは作れない。
|
23
|
-
# 実行が開始したあと、その計算の状態が中断されているのか、
|
24
|
-
# 単に実行中でファイルが書き込まれている途中なのか、
|
25
|
-
# プログラムを実行しているプロセス自身以外は、外部からは判別がつかない。
|
26
|
-
#
|
27
|
-
# ルール
|
28
|
-
# try00 形式の postfix がついていることを前提とする。
|
29
|
-
# 00 の部分には CONTCAR を POSCAR にする手続きで連続して行う計算の番号を示す。
|
19
|
+
# Class for VASP executable directory,
|
20
|
+
# including input and output files.
|
30
21
|
#
|
31
22
|
class VaspDir < ComputationManager
|
32
23
|
class InitializeError < Exception; end
|
33
24
|
class NoVaspBinaryError < Exception; end
|
34
25
|
class PrepareNextError < Exception; end
|
26
|
+
class ExecuteError < Exception; end
|
35
27
|
|
36
|
-
#INCAR 解析とかして、モードを調べる。
|
37
|
-
#- 格子定数の構造最適化モード(ISIF = 3)
|
38
|
-
#- 格子定数を固定した構造最適化モード(ISIF = 2)
|
39
|
-
##- k 点探索モードは無理だろう。
|
40
28
|
def initialize(dir)
|
41
29
|
super(dir)
|
42
30
|
@lockdir = "lock_vaspdir"
|
@@ -87,17 +75,6 @@ class VaspDir < ComputationManager
|
|
87
75
|
private
|
88
76
|
|
89
77
|
# vasp を投げる。
|
90
|
-
# 計算実行時に lock を生成する。
|
91
|
-
# もし既に lock が存在していれば、例外 VaspDirLockedError を
|
92
|
-
# 投げる。
|
93
|
-
# lock は作られっぱなしで、プログラムからは削除されない。
|
94
|
-
# 通常、一度計算したらもう二度と計算しないし。
|
95
|
-
#
|
96
|
-
# MEMO
|
97
|
-
# mpirun で投げる場合は
|
98
|
-
# machinefile を生成しないとどのホストで計算するか、安定しない。
|
99
|
-
# そのうち mpiexec from torque に対応するが、
|
100
|
-
# まずは mpirun で動くように作る。
|
101
78
|
def calculate
|
102
79
|
begin
|
103
80
|
info =
|
@@ -111,7 +88,8 @@ class VaspDir < ComputationManager
|
|
111
88
|
command += vasp
|
112
89
|
command += "> stdout"
|
113
90
|
|
114
|
-
system command
|
91
|
+
end_status = system command
|
92
|
+
raise ExecuteError, "end_status is #{end_status.inspect}" unless end_status
|
115
93
|
end
|
116
94
|
|
117
95
|
def prepare_next
|
@@ -120,70 +98,3 @@ class VaspDir < ComputationManager
|
|
120
98
|
end
|
121
99
|
|
122
100
|
end
|
123
|
-
|
124
|
-
#class VaspGeometryOptimization < ComputationManager
|
125
|
-
# # 次の計算ディレクトリを作成し、
|
126
|
-
# # その VaspDir クラスで self を置き換える。
|
127
|
-
# # 計算が正常終了していなければ、例外 VaspDirNotEndedError を生じる。
|
128
|
-
# # 次の計算ディレクトリが既に存在していれば例外 Errno::EEXIST が投げられる。
|
129
|
-
# def next
|
130
|
-
# raise NotEndedError unless normal_ended?
|
131
|
-
# raise ConvergedError unless to_be_continued?
|
132
|
-
# #postfix = /try(\d+)$/
|
133
|
-
# POSTFIX =~ @dir
|
134
|
-
# try_num = $1.to_i
|
135
|
-
# next_dir = @dir.sub(POSTFIX, sprintf("try%02d", try_num + 1))
|
136
|
-
# Dir.mkdir next_dir
|
137
|
-
# FileUtils.cp( "#{@dir}/INCAR" , "#{next_dir}/INCAR")
|
138
|
-
# FileUtils.cp( "#{@dir}/KPOINTS", "#{next_dir}/KPOINTS")
|
139
|
-
# FileUtils.cp( "#{@dir}/POTCAR" , "#{next_dir}/POTCAR")
|
140
|
-
# FileUtils.cp( "#{@dir}/CONTCAR", "#{next_dir}/POSCAR")
|
141
|
-
# initialize(next_dir)
|
142
|
-
# end
|
143
|
-
#
|
144
|
-
# # Return number of electronic steps.
|
145
|
-
# def internal_steps
|
146
|
-
# return outcar[:electronic_steps] if outcar
|
147
|
-
# return 0
|
148
|
-
# end
|
149
|
-
#
|
150
|
-
# # Return number of ionic steps.
|
151
|
-
# def external_steps
|
152
|
-
# return outcar[:ionic_steps] if outcar
|
153
|
-
# return 0
|
154
|
-
# end
|
155
|
-
#
|
156
|
-
# # Return elapsed time.
|
157
|
-
# def elapsed_time
|
158
|
-
# return outcar[:elapsed_time] if outcar
|
159
|
-
# return 0.0
|
160
|
-
# end
|
161
|
-
#
|
162
|
-
# # normal_ended? が false なら false。
|
163
|
-
# # normal_ended? が true のうち、
|
164
|
-
# # 結果を使って次に計算すべきなら true を、そうでなければ false を返す。
|
165
|
-
# #
|
166
|
-
# # 計算すべき、の条件はモードによって異なる。
|
167
|
-
# # NSW = 0 もしくは NSW = 1 のとき、必ず false。
|
168
|
-
# # - :single_point モードならば、常に false。
|
169
|
-
# # - :geom_opt_lattice モードならば、ionic step が 2 以上なら true。
|
170
|
-
# # - :geom_opt_atoms モードならば、ionic step が NSW と同じなら true。
|
171
|
-
# #
|
172
|
-
# def to_be_continued?
|
173
|
-
# begin
|
174
|
-
# outcar = Outcar.load_file("#{@dir}/OUTCAR")
|
175
|
-
# rescue Errno::ENOENT
|
176
|
-
# return false
|
177
|
-
# end
|
178
|
-
# ionic_steps = outcar[:ionic_steps]
|
179
|
-
# return false unless outcar[:normal_ended]
|
180
|
-
# return false if @incar["NSW"].to_i <= 1
|
181
|
-
# if @mode == :geom_opt_lattice
|
182
|
-
# return ionic_steps != 1
|
183
|
-
# elsif @mode == :geom_opt_atoms
|
184
|
-
# return ionic_steps == @incar["NSW"].to_i
|
185
|
-
# else
|
186
|
-
# return false
|
187
|
-
# end
|
188
|
-
# end
|
189
|
-
#
|
@@ -57,7 +57,7 @@ class VaspGeomOpt < ComputationManager
|
|
57
57
|
# end
|
58
58
|
#end
|
59
59
|
#puts "Geometry optimization fihished. Exit."
|
60
|
-
sleep 1 # for interrupt
|
60
|
+
#sleep 1 # for interrupt
|
61
61
|
end
|
62
62
|
|
63
63
|
# latest_dir から返って来る最新の VaspDir が finished? で真を返し、
|
@@ -108,7 +108,7 @@ class VaspGeomOpt < ComputationManager
|
|
108
108
|
next
|
109
109
|
end
|
110
110
|
end
|
111
|
-
raise NoVaspDirError
|
111
|
+
raise NoVaspDirError, @dir
|
112
112
|
end
|
113
113
|
|
114
114
|
end
|
data/memo.txt
CHANGED
@@ -1,12 +1,18 @@
|
|
1
|
-
|
1
|
+
#
|
2
|
+
|
3
|
+
0.0.6 release [2012-05-10]
|
4
|
+
bin/qsubvasp is added.
|
5
|
+
lib/vaspdir is modified to raise ExecuteError when vasp failed.
|
6
|
+
|
7
|
+
0.0.5 release
|
2
8
|
Modifiy error process in VaspDir.calculate.
|
3
9
|
Add runvasp.
|
4
10
|
Add qsubvasp.
|
5
11
|
|
6
12
|
0.0.4 release
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
13
|
+
Modified to use Comana.
|
14
|
+
bin/runvasp is added.
|
15
|
+
VaspDir is modified.
|
16
|
+
VaspGeomOpt is added.
|
11
17
|
|
12
18
|
0.0.3 release
|
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.
|
8
|
+
s.version = "0.0.6"
|
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-
|
12
|
+
s.date = "2012-05-10"
|
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"]
|
@@ -215,7 +215,7 @@ Gem::Specification.new do |s|
|
|
215
215
|
s.add_development_dependency(%q<mageo>, [">= 0.0.0"])
|
216
216
|
s.add_development_dependency(%q<malge>, [">= 0.0.1"])
|
217
217
|
s.add_development_dependency(%q<maset>, [">= 0.0.0"])
|
218
|
-
s.add_development_dependency(%q<comana>, [">= 0.0.
|
218
|
+
s.add_development_dependency(%q<comana>, [">= 0.0.6"])
|
219
219
|
s.add_development_dependency(%q<builtinextension>, [">= 0.0.3"])
|
220
220
|
else
|
221
221
|
s.add_dependency(%q<rdoc>, [">= 3.12"])
|
@@ -226,7 +226,7 @@ Gem::Specification.new do |s|
|
|
226
226
|
s.add_dependency(%q<mageo>, [">= 0.0.0"])
|
227
227
|
s.add_dependency(%q<malge>, [">= 0.0.1"])
|
228
228
|
s.add_dependency(%q<maset>, [">= 0.0.0"])
|
229
|
-
s.add_dependency(%q<comana>, [">= 0.0.
|
229
|
+
s.add_dependency(%q<comana>, [">= 0.0.6"])
|
230
230
|
s.add_dependency(%q<builtinextension>, [">= 0.0.3"])
|
231
231
|
end
|
232
232
|
else
|
@@ -238,7 +238,7 @@ Gem::Specification.new do |s|
|
|
238
238
|
s.add_dependency(%q<mageo>, [">= 0.0.0"])
|
239
239
|
s.add_dependency(%q<malge>, [">= 0.0.1"])
|
240
240
|
s.add_dependency(%q<maset>, [">= 0.0.0"])
|
241
|
-
s.add_dependency(%q<comana>, [">= 0.0.
|
241
|
+
s.add_dependency(%q<comana>, [">= 0.0.6"])
|
242
242
|
s.add_dependency(%q<builtinextension>, [">= 0.0.3"])
|
243
243
|
end
|
244
244
|
end
|
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
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05-
|
12
|
+
date: 2012-05-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rdoc
|
16
|
-
requirement: &
|
16
|
+
requirement: &79249910 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '3.12'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *79249910
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bundler
|
27
|
-
requirement: &
|
27
|
+
requirement: &79246810 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 1.1.3
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *79246810
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: jeweler
|
38
|
-
requirement: &
|
38
|
+
requirement: &79590980 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.8.3
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *79590980
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: simplecov
|
49
|
-
requirement: &
|
49
|
+
requirement: &79586380 !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: *
|
57
|
+
version_requirements: *79586380
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: crystalcell
|
60
|
-
requirement: &
|
60
|
+
requirement: &79583830 !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: *
|
68
|
+
version_requirements: *79583830
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: mageo
|
71
|
-
requirement: &
|
71
|
+
requirement: &79580340 !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: *
|
79
|
+
version_requirements: *79580340
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: malge
|
82
|
-
requirement: &
|
82
|
+
requirement: &79577480 !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: *
|
90
|
+
version_requirements: *79577480
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: maset
|
93
|
-
requirement: &
|
93
|
+
requirement: &79577090 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,21 +98,21 @@ dependencies:
|
|
98
98
|
version: 0.0.0
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *79577090
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: comana
|
104
|
-
requirement: &
|
104
|
+
requirement: &79576480 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version: 0.0.
|
109
|
+
version: 0.0.6
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *79576480
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: builtinextension
|
115
|
-
requirement: &
|
115
|
+
requirement: &79566760 !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: *
|
123
|
+
version_requirements: *79566760
|
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: -
|
334
|
+
hash: -103563277
|
335
335
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
336
336
|
none: false
|
337
337
|
requirements:
|