vasputils 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (7) hide show
  1. data/Gemfile +1 -1
  2. data/VERSION +1 -1
  3. data/bin/lsvasp +60 -55
  4. data/bin/qsubvasp +69 -10
  5. data/memo.txt +4 -1
  6. data/vasputils.gemspec +5 -5
  7. metadata +24 -24
data/Gemfile CHANGED
@@ -14,6 +14,6 @@ group :development do
14
14
  gem "mageo", ">= 0.0.0"
15
15
  gem "malge", ">= 0.0.1"
16
16
  gem "maset", ">= 0.0.0"
17
- gem "comana", ">= 0.0.8"
17
+ gem "comana", ">= 0.0.9"
18
18
  gem "builtinextension", ">= 0.0.3"
19
19
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.7
1
+ 0.0.8
data/bin/lsvasp CHANGED
@@ -5,34 +5,34 @@
5
5
 
6
6
  #require "vasputils/calcseries.rb"
7
7
  require "vasputils/vaspgeomopt.rb"
8
- require "optparse"
9
-
10
- # option analysis
11
- OPTIONS = Hash.new
12
- op = OptionParser.new
13
- op.on("-c", "--cutoff" , "Show cutoff energy. "){ OPTIONS[:cutoff ] = true }
14
- op.on("-e", "--electronic-steps", "Show electronic-steps." ){ OPTIONS[:e_steps] = true }
15
- op.on("-i", "--ionic-steps" , "Show ionic-steps." ){ OPTIONS[:i_steps] = true }
16
- op.on("-k", "--k-mesh" , "Show k-mesh." ){ OPTIONS[:k_mesh] = true }
17
- op.on("-K", "--irr-kpoints" , "Show irreducible k-points."){ OPTIONS[:irr_k ] = true }
18
- op.on("-l", "--lattice-const" , "Show lattice constants."){ OPTIONS[:lattice] = true }
19
- op.on("-t", "--elapsed-time" , "Show elapsed-time." ){ OPTIONS[:time ] = true }
20
- op.on("-T", "--time-estesp" , "Show time per elec. steps."){ OPTIONS[:time_e] = true }
21
- op.on("-E", "--toten" , "Show toten." ){ OPTIONS[:toten ] = true }
22
- op.on("-a", "--all" , "Show all information." ){
23
- # -a で出力される順序はここで決まる。
24
- OPTIONS[:cutoff ] = true
25
- OPTIONS[:irr_k ] = true
26
- OPTIONS[:k_mesh ] = true
27
- OPTIONS[:i_steps ] = true
28
- OPTIONS[:e_steps ] = true
29
- OPTIONS[:time ] = true
30
- OPTIONS[:time_e ] = true
31
- OPTIONS[:lattice ] = true
32
- OPTIONS[:toten ] = true
33
- }
34
-
35
- op.parse!(ARGV)
8
+ #require "optparse"
9
+ #
10
+ ## option analysis
11
+ #OPTIONS = Hash.new
12
+ #op = OptionParser.new
13
+ #op.on("-c", "--cutoff" , "Show cutoff energy. "){ OPTIONS[:cutoff ] = true }
14
+ #op.on("-e", "--electronic-steps", "Show electronic-steps." ){ OPTIONS[:e_steps] = true }
15
+ #op.on("-i", "--ionic-steps" , "Show ionic-steps." ){ OPTIONS[:i_steps] = true }
16
+ #op.on("-k", "--k-mesh" , "Show k-mesh." ){ OPTIONS[:k_mesh] = true }
17
+ #op.on("-K", "--irr-kpoints" , "Show irreducible k-points."){ OPTIONS[:irr_k ] = true }
18
+ #op.on("-l", "--lattice-const" , "Show lattice constants."){ OPTIONS[:lattice] = true }
19
+ #op.on("-t", "--elapsed-time" , "Show elapsed-time." ){ OPTIONS[:time ] = true }
20
+ #op.on("-T", "--time-estesp" , "Show time per elec. steps."){ OPTIONS[:time_e] = true }
21
+ #op.on("-E", "--toten" , "Show toten." ){ OPTIONS[:toten ] = true }
22
+ #op.on("-a", "--all" , "Show all information." ){
23
+ # # -a で出力される順序はここで決まる。
24
+ # OPTIONS[:cutoff ] = true
25
+ # OPTIONS[:irr_k ] = true
26
+ # OPTIONS[:k_mesh ] = true
27
+ # OPTIONS[:i_steps ] = true
28
+ # OPTIONS[:e_steps ] = true
29
+ # OPTIONS[:time ] = true
30
+ # OPTIONS[:time_e ] = true
31
+ # OPTIONS[:lattice ] = true
32
+ # OPTIONS[:toten ] = true
33
+ #}
34
+ #
35
+ #op.parse!(ARGV)
36
36
 
37
37
  dirs = ARGV
38
38
  dirs = Dir.glob("*").sort if ARGV.empty?
@@ -59,32 +59,37 @@ dirs = Dir.glob("*").sort if ARGV.empty?
59
59
  #puts "#" + items.join(", ")
60
60
 
61
61
  dirs.each do |dir|
62
- begin
63
- ldir = VaspGeomOpt.new(dir).latest_dir
64
- results = []
65
- names = []
66
- OPTIONS.each do |key, val|
67
- case key
68
- when :cutoff
69
- results << sprintf("%6s", ldir.finished_calc.incar["ENCUT"])
70
- when :k_mesh then results << sprintf("%2d, %2d, %2d, %8.5f, %8.5f, %8.5f",
71
- * ldir.finished_calc.kpoints[:mesh], * ldir.finished_calc.kpoints[:shift])
72
- when :irr_k then results << sprintf("%4d", ldir.finished_calc.outcar[:irreducible_kpoints])
73
- when :lattice then
74
- results << sprintf("%9.5f, %9.5f, %9.5f, %9.5f, %9.5f, %9.5f",
75
- * ldir.finished_calc.contcar.axes.get_lattice_constants)
76
- when :e_steps then results << sprintf("%4d", ldir.internal_steps)
77
- when :i_steps then results << sprintf("%4d", ldir.external_steps)
78
- when :time then results << sprintf("%8d", ldir.elapsed_time)
79
- when :time_e then results << sprintf("%8d", ldir.elapsed_time/ldir.internal_steps)
80
- when :toten then results << sprintf("%16.4f", ldir.finished_calc.outcar[:totens][-1])
81
- end
82
- end
83
- results << dir
84
- puts " " + results.join(", ")
85
- rescue
86
- puts "Something wrong: #{dir}"
87
- next
88
- end
62
+ state = VaspGeomOpt.new(dir).state
63
+ longest = :terminated.size
64
+ state = state.to_s + (" " * (longest - state.size ))
65
+
66
+ puts
67
+ #begin
68
+ # ldir = VaspGeomOpt.new(dir).latest_dir
69
+ # results = []
70
+ # names = []
71
+ # OPTIONS.each do |key, val|
72
+ # case key
73
+ # when :cutoff
74
+ # results << sprintf("%6s", ldir.finished_calc.incar["ENCUT"])
75
+ # when :k_mesh then results << sprintf("%2d, %2d, %2d, %8.5f, %8.5f, %8.5f",
76
+ # * ldir.finished_calc.kpoints[:mesh], * ldir.finished_calc.kpoints[:shift])
77
+ # when :irr_k then results << sprintf("%4d", ldir.finished_calc.outcar[:irreducible_kpoints])
78
+ # when :lattice then
79
+ # results << sprintf("%9.5f, %9.5f, %9.5f, %9.5f, %9.5f, %9.5f",
80
+ # * ldir.finished_calc.contcar.axes.get_lattice_constants)
81
+ # when :e_steps then results << sprintf("%4d", ldir.internal_steps)
82
+ # when :i_steps then results << sprintf("%4d", ldir.external_steps)
83
+ # when :time then results << sprintf("%8d", ldir.elapsed_time)
84
+ # when :time_e then results << sprintf("%8d", ldir.elapsed_time/ldir.internal_steps)
85
+ # when :toten then results << sprintf("%16.4f", ldir.finished_calc.outcar[:totens][-1])
86
+ # end
87
+ # end
88
+ # results << dir
89
+ # puts " " + results.join(", ")
90
+ #rescue
91
+ # puts "Something wrong: #{dir}"
92
+ # next
93
+ #end
89
94
 
90
95
  end
data/bin/qsubvasp CHANGED
@@ -12,30 +12,89 @@
12
12
  # the INDICATOR in ~/.machineinfo
13
13
  # Default value is 1.
14
14
  #
15
- # calc_dir must be a vasp geometry optimization directory.
15
+ # calc_dir is a vasp directory as usual,
16
+ # when with -g option, VaspGeomOpt directory.
16
17
 
17
18
  #require "optparse"
18
- require "yaml"
19
19
  require "pp"
20
+ require "yaml"
21
+ require "optparse"
20
22
 
21
23
  require "rubygems"
22
24
  gem "comana"
23
25
  require "comana/queuesubmitter.rb"
24
- #require "comana/machineinfo.rb"
26
+ require "comana/machineinfo.rb"
25
27
 
26
28
  require "vasputils/vaspdir.rb"
27
29
  require "vasputils/vaspgeomopt.rb"
28
30
 
31
+ opts = {}
32
+
33
+ op = OptionParser.new
34
+ op.on("-c cluster", "--cluster" , "Cluster name."){|v| opts["cluster"] = v }
35
+ op.on("-n number", "--number", "Indicate node number, or key in ~/.machineinfo."){|v|
36
+ opts["number"] = v
37
+ }
38
+ op.on("-g", "--geom-opt", "Geometry optimization."){ opts["geomopt"] = true}
39
+ op.parse!(ARGV)
40
+
41
+ def condition_check(opts)
42
+ # Condition Check
43
+ mi = MachineInfo.load_file("#{ENV["HOME"]}/.machineinfo")
44
+ conds = {}
45
+ # cluster
46
+ name = opts["cluster"]
47
+ #pp mi.get_info(name)
48
+ if name
49
+ conds["cluster"] = name
50
+ else
51
+ puts "-c CLUSTER_NAME is necessary."
52
+ exit
53
+ end
29
54
 
30
- OPTS = QueueSubmitter.parse_options(
31
- ARGV, MachineInfo.load_file("#{ENV["HOME"]}/.machineinfo")
32
- )
33
- OPTS[:directory] = VaspGeomOpt.new(File.expand_path(ARGV[0]))
34
- OPTS[:command] = "runvasp -g"
35
- #pp OPTS; exit
55
+ # target and command
56
+ unless ARGV.size == 1
57
+ puts "Indicate only one directory for vasp. Argument: #{ARGV}"
58
+ exit
59
+ end
60
+ if opts["geomopt"]
61
+ begin
62
+ conds["target"] = VaspGeomOpt.new(File.expand_path(ARGV[0]))
63
+ conds["command"] = "runvasp -g"
64
+ rescue VaspGeomOpt::NoVaspDirError
65
+ puts "Seem not to be a directory for VaspGeomOpt #{ARGV}"
66
+ exit
67
+ end
68
+ else
69
+ begin
70
+ conds["target"] = VaspDir.new(File.expand_path(ARGV[0]))
71
+ conds["command"] = "runvasp"
72
+ rescue VaspDir::InitializeError
73
+ puts "Seem not to be a directory for VaspDir #{ARGV}"
74
+ exit
75
+ end
76
+ end
36
77
 
37
- qs = QueueSubmitter.new(OPTS)
78
+ # number
79
+ str = opts["number"]
80
+ num = str.to_i
81
+ if num > 0
82
+ conds["number"] = num
83
+ else
84
+ if mi.get_info(name).has_key?(str)
85
+ conds["number"] = mi.get_info(name)[str]
86
+ else
87
+ puts "-n argument must be a positive integer or key in ~/machineinfo."
88
+ exit
89
+ end
90
+ end
91
+ conds
92
+ end
93
+ opts = condition_check(opts)
94
+
95
+ qs = QueueSubmitter.new(opts)
38
96
  #pp qs; exit
97
+
39
98
  begin
40
99
  qs.start
41
100
  puts "Submitted. Exit."
data/memo.txt CHANGED
@@ -1,9 +1,12 @@
1
1
  #
2
2
 
3
+ 0.0.8 release
4
+ Modified bin/qsubvasp, add -g option.
5
+
3
6
  0.0.7 release
4
7
  Modified bin/qsubvasp
5
8
 
6
- 0.0.6 release [2012-05-10]
9
+ 0.0.6 release
7
10
  bin/qsubvasp is added.
8
11
  lib/vaspdir is modified to raise ExecuteError when vasp failed.
9
12
 
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.7"
8
+ s.version = "0.0.8"
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-18"
12
+ s.date = "2012-05-29"
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.8"])
218
+ s.add_development_dependency(%q<comana>, [">= 0.0.9"])
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.8"])
229
+ s.add_dependency(%q<comana>, [">= 0.0.9"])
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.8"])
241
+ s.add_dependency(%q<comana>, [">= 0.0.9"])
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.7
4
+ version: 0.0.8
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-18 00:00:00.000000000 Z
12
+ date: 2012-05-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rdoc
16
- requirement: &85401430 !ruby/object:Gem::Requirement
16
+ requirement: &80740170 !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: *85401430
24
+ version_requirements: *80740170
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &85401110 !ruby/object:Gem::Requirement
27
+ requirement: &80739710 !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: *85401110
35
+ version_requirements: *80739710
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: jeweler
38
- requirement: &85400730 !ruby/object:Gem::Requirement
38
+ requirement: &80739300 !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: *85400730
46
+ version_requirements: *80739300
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: simplecov
49
- requirement: &85400380 !ruby/object:Gem::Requirement
49
+ requirement: &80739060 !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: *85400380
57
+ version_requirements: *80739060
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: crystalcell
60
- requirement: &85400010 !ruby/object:Gem::Requirement
60
+ requirement: &80738780 !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: *85400010
68
+ version_requirements: *80738780
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: mageo
71
- requirement: &85399650 !ruby/object:Gem::Requirement
71
+ requirement: &80738530 !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: *85399650
79
+ version_requirements: *80738530
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: malge
82
- requirement: &85399320 !ruby/object:Gem::Requirement
82
+ requirement: &80738290 !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: *85399320
90
+ version_requirements: *80738290
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: maset
93
- requirement: &85398980 !ruby/object:Gem::Requirement
93
+ requirement: &80738050 !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: *85398980
101
+ version_requirements: *80738050
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: comana
104
- requirement: &85830120 !ruby/object:Gem::Requirement
104
+ requirement: &80737740 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
108
108
  - !ruby/object:Gem::Version
109
- version: 0.0.8
109
+ version: 0.0.9
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *85830120
112
+ version_requirements: *80737740
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: builtinextension
115
- requirement: &85829250 !ruby/object:Gem::Requirement
115
+ requirement: &80737270 !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: *85829250
123
+ version_requirements: *80737270
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: -1045014531
334
+ hash: -929575121
335
335
  required_rubygems_version: !ruby/object:Gem::Requirement
336
336
  none: false
337
337
  requirements: