vasputils 0.0.11 → 0.0.12

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.
Files changed (406) hide show
  1. data/CHANGES +49 -28
  2. data/Gemfile +10 -9
  3. data/VERSION +1 -1
  4. data/{test/vaspgeometryoptimizer/ended-Iter1/try00/CONTCAR → bin/changeincar} +0 -0
  5. data/bin/checkvasp +106 -75
  6. data/bin/genincar +4 -4
  7. data/bin/genkpoints +13 -13
  8. data/bin/genpotcar +2 -2
  9. data/bin/latticeconstants +10 -12
  10. data/bin/qsubvasp +63 -80
  11. data/bin/resetvaspdir +51 -0
  12. data/bin/resetvaspgeomopt +73 -0
  13. data/bin/runvasp +42 -49
  14. data/bin/runvaspdir +19 -0
  15. data/bin/runvaspgeomopt +19 -0
  16. data/bin/showvaspdir +171 -0
  17. data/bin/showvaspgeomopt +83 -0
  18. data/bin/symposcar +89 -113
  19. data/bin/varycondition +28 -0
  20. data/example/dot.vasputils +26 -232
  21. data/lib/vasputils/conditionvarier.rb +157 -0
  22. data/lib/vasputils/incar.rb +40 -43
  23. data/lib/vasputils/kpoints.rb +31 -33
  24. data/lib/vasputils/outcar.rb +53 -53
  25. data/lib/vasputils/poscar.rb +148 -150
  26. data/lib/vasputils/potcar/concatenater.rb +22 -22
  27. data/lib/vasputils/potcar.rb +12 -12
  28. data/lib/vasputils/setting.rb +22 -22
  29. data/lib/vasputils/vaspdir.rb +199 -86
  30. data/lib/vasputils/vaspgeometryoptimizer.rb +233 -100
  31. data/lib/vasputils.rb +7 -65
  32. data/test/conditionanalyzer/00/POSCAR +8 -0
  33. data/test/conditionanalyzer/00/encut400_k444/CONTCAR +8 -0
  34. data/test/conditionanalyzer/00/encut400_k444/INCAR +28 -0
  35. data/test/conditionanalyzer/00/encut400_k444/KPOINTS +6 -0
  36. data/test/conditionanalyzer/00/encut400_k444/OUTCAR +1436 -0
  37. data/test/conditionanalyzer/00/encut400_k444/POSCAR +8 -0
  38. data/test/conditionanalyzer/00/encut400_k444/POTCAR +16 -0
  39. data/test/conditionanalyzer/00/encut400_k555/CONTCAR +8 -0
  40. data/test/conditionanalyzer/00/encut400_k555/INCAR +28 -0
  41. data/test/conditionanalyzer/00/encut400_k555/KPOINTS +6 -0
  42. data/test/conditionanalyzer/00/encut400_k555/OUTCAR +1436 -0
  43. data/test/conditionanalyzer/00/encut400_k555/POSCAR +8 -0
  44. data/test/conditionanalyzer/00/encut400_k555/POTCAR +16 -0
  45. data/test/conditionanalyzer/00/encut500_k444/CONTCAR +8 -0
  46. data/test/conditionanalyzer/00/encut500_k444/INCAR +28 -0
  47. data/test/conditionanalyzer/00/encut500_k444/KPOINTS +6 -0
  48. data/test/conditionanalyzer/00/encut500_k444/OUTCAR +1436 -0
  49. data/test/conditionanalyzer/00/encut500_k444/POSCAR +8 -0
  50. data/test/conditionanalyzer/00/encut500_k444/POTCAR +16 -0
  51. data/test/conditionanalyzer/00/encut500_k555/CONTCAR +8 -0
  52. data/test/conditionanalyzer/00/encut500_k555/INCAR +28 -0
  53. data/test/conditionanalyzer/00/encut500_k555/KPOINTS +6 -0
  54. data/test/conditionanalyzer/00/encut500_k555/OUTCAR +1436 -0
  55. data/test/conditionanalyzer/00/encut500_k555/POSCAR +8 -0
  56. data/test/conditionanalyzer/00/encut500_k555/POTCAR +16 -0
  57. data/test/{vaspkpointsfinder/01-01-01/try00 → conditionanalyzer/01/00-original}/INCAR +3 -3
  58. data/test/conditionanalyzer/01/00-original/KPOINTS +6 -0
  59. data/test/conditionanalyzer/01/00-original/POSCAR +10 -0
  60. data/test/conditionanalyzer/01/01-ENCUT/1000/try02/CONTCAR +13 -0
  61. data/test/conditionanalyzer/01/01-ENCUT/1000/try02/INCAR +17 -0
  62. data/test/conditionanalyzer/01/01-ENCUT/1000/try02/KPOINTS +6 -0
  63. data/test/conditionanalyzer/01/01-ENCUT/1000/try02/OUTCAR +1692 -0
  64. data/test/conditionanalyzer/01/01-ENCUT/1000/try02/POSCAR +13 -0
  65. data/test/conditionanalyzer/01/01-ENCUT/1200/try02/CONTCAR +13 -0
  66. data/test/conditionanalyzer/01/01-ENCUT/1200/try02/INCAR +17 -0
  67. data/test/conditionanalyzer/01/01-ENCUT/1200/try02/KPOINTS +6 -0
  68. data/test/conditionanalyzer/01/01-ENCUT/1200/try02/OUTCAR +1692 -0
  69. data/test/conditionanalyzer/01/01-ENCUT/1200/try02/POSCAR +13 -0
  70. data/test/conditionanalyzer/01/01-ENCUT/1500/try02/CONTCAR +13 -0
  71. data/test/conditionanalyzer/01/01-ENCUT/1500/try02/INCAR +17 -0
  72. data/test/conditionanalyzer/01/01-ENCUT/1500/try02/KPOINTS +6 -0
  73. data/test/conditionanalyzer/01/01-ENCUT/1500/try02/OUTCAR +1742 -0
  74. data/test/conditionanalyzer/01/01-ENCUT/1500/try02/POSCAR +13 -0
  75. data/test/conditionanalyzer/01/01-ENCUT/500/try05/CONTCAR +13 -0
  76. data/test/conditionanalyzer/01/01-ENCUT/500/try05/INCAR +17 -0
  77. data/test/conditionanalyzer/01/01-ENCUT/500/try05/KPOINTS +6 -0
  78. data/test/conditionanalyzer/01/01-ENCUT/500/try05/OUTCAR +1644 -0
  79. data/test/conditionanalyzer/01/01-ENCUT/500/try05/POSCAR +13 -0
  80. data/test/conditionanalyzer/01/01-ENCUT/600/try01/CONTCAR +13 -0
  81. data/test/conditionanalyzer/01/01-ENCUT/600/try01/INCAR +17 -0
  82. data/test/conditionanalyzer/01/01-ENCUT/600/try01/KPOINTS +6 -0
  83. data/test/conditionanalyzer/01/01-ENCUT/600/try01/OUTCAR +1644 -0
  84. data/test/conditionanalyzer/01/01-ENCUT/600/try01/POSCAR +13 -0
  85. data/test/conditionanalyzer/01/01-ENCUT/700/try01/CONTCAR +13 -0
  86. data/test/conditionanalyzer/01/01-ENCUT/700/try01/INCAR +17 -0
  87. data/test/conditionanalyzer/01/01-ENCUT/700/try01/KPOINTS +6 -0
  88. data/test/conditionanalyzer/01/01-ENCUT/700/try01/OUTCAR +1644 -0
  89. data/test/conditionanalyzer/01/01-ENCUT/700/try01/POSCAR +13 -0
  90. data/test/conditionanalyzer/01/01-ENCUT/800/try01/CONTCAR +13 -0
  91. data/test/conditionanalyzer/01/01-ENCUT/800/try01/INCAR +17 -0
  92. data/test/conditionanalyzer/01/01-ENCUT/800/try01/KPOINTS +6 -0
  93. data/test/conditionanalyzer/01/01-ENCUT/800/try01/OUTCAR +3610 -0
  94. data/test/conditionanalyzer/01/01-ENCUT/800/try01/POSCAR +10 -0
  95. data/test/conditionanalyzer/01/01-ENCUT/900/try01/CONTCAR +13 -0
  96. data/test/conditionanalyzer/01/01-ENCUT/900/try01/INCAR +17 -0
  97. data/test/conditionanalyzer/01/01-ENCUT/900/try01/KPOINTS +6 -0
  98. data/test/conditionanalyzer/01/01-ENCUT/900/try01/OUTCAR +1692 -0
  99. data/test/conditionanalyzer/01/01-ENCUT/900/try01/POSCAR +13 -0
  100. data/test/conditionanalyzer/01/02-KPOINTS/16x16x16/try07/CONTCAR +13 -0
  101. data/test/conditionanalyzer/01/02-KPOINTS/16x16x16/try07/INCAR +17 -0
  102. data/test/conditionanalyzer/01/02-KPOINTS/16x16x16/try07/KPOINTS +6 -0
  103. data/test/conditionanalyzer/01/02-KPOINTS/16x16x16/try07/OUTCAR +12318 -0
  104. data/test/conditionanalyzer/01/02-KPOINTS/16x16x16/try07/POSCAR +13 -0
  105. data/test/conditionanalyzer/01/02-KPOINTS/1x1x1/try07/CONTCAR +13 -0
  106. data/test/conditionanalyzer/01/02-KPOINTS/1x1x1/try07/INCAR +17 -0
  107. data/test/{vaspkpointsfinder/01-01-01/try00 → conditionanalyzer/01/02-KPOINTS/1x1x1/try07}/KPOINTS +1 -1
  108. data/test/conditionanalyzer/01/02-KPOINTS/1x1x1/try07/OUTCAR +1337 -0
  109. data/test/conditionanalyzer/01/02-KPOINTS/1x1x1/try07/POSCAR +13 -0
  110. data/test/conditionanalyzer/01/02-KPOINTS/2x2x2/try10/CONTCAR +13 -0
  111. data/test/conditionanalyzer/01/02-KPOINTS/2x2x2/try10/INCAR +17 -0
  112. data/test/conditionanalyzer/01/02-KPOINTS/2x2x2/try10/KPOINTS +6 -0
  113. data/test/conditionanalyzer/01/02-KPOINTS/2x2x2/try10/OUTCAR +9885 -0
  114. data/test/conditionanalyzer/01/02-KPOINTS/2x2x2/try10/POSCAR +13 -0
  115. data/test/conditionanalyzer/01/02-KPOINTS/32x32x32/try06/CONTCAR +13 -0
  116. data/test/conditionanalyzer/01/02-KPOINTS/32x32x32/try06/INCAR +17 -0
  117. data/test/conditionanalyzer/01/02-KPOINTS/32x32x32/try06/KPOINTS +6 -0
  118. data/test/conditionanalyzer/01/02-KPOINTS/32x32x32/try06/OUTCAR +72342 -0
  119. data/test/conditionanalyzer/01/02-KPOINTS/32x32x32/try06/POSCAR +13 -0
  120. data/test/conditionanalyzer/01/02-KPOINTS/32x32x64/try04/CONTCAR +13 -0
  121. data/test/conditionanalyzer/01/02-KPOINTS/32x32x64/try04/INCAR +17 -0
  122. data/test/conditionanalyzer/01/02-KPOINTS/32x32x64/try04/KPOINTS +6 -0
  123. data/test/conditionanalyzer/01/02-KPOINTS/32x32x64/try04/OUTCAR +139254 -0
  124. data/test/conditionanalyzer/01/02-KPOINTS/32x32x64/try04/POSCAR +13 -0
  125. data/test/conditionanalyzer/01/02-KPOINTS/4x4x4/try05/CONTCAR +13 -0
  126. data/test/conditionanalyzer/01/02-KPOINTS/4x4x4/try05/INCAR +17 -0
  127. data/test/conditionanalyzer/01/02-KPOINTS/4x4x4/try05/KPOINTS +6 -0
  128. data/test/conditionanalyzer/01/02-KPOINTS/4x4x4/try05/OUTCAR +1644 -0
  129. data/test/conditionanalyzer/01/02-KPOINTS/4x4x4/try05/POSCAR +13 -0
  130. data/test/conditionanalyzer/01/02-KPOINTS/64x64x64/INCAR +17 -0
  131. data/test/conditionanalyzer/01/02-KPOINTS/64x64x64/KPOINTS +6 -0
  132. data/test/conditionanalyzer/01/02-KPOINTS/64x64x64/OUTCAR +507061 -0
  133. data/test/conditionanalyzer/01/02-KPOINTS/64x64x64/POSCAR +10 -0
  134. data/test/conditionanalyzer/01/02-KPOINTS/8x8x8/try05/CONTCAR +13 -0
  135. data/test/conditionanalyzer/01/02-KPOINTS/8x8x8/try05/INCAR +17 -0
  136. data/test/conditionanalyzer/01/02-KPOINTS/8x8x8/try05/KPOINTS +6 -0
  137. data/test/conditionanalyzer/01/02-KPOINTS/8x8x8/try05/OUTCAR +3298 -0
  138. data/test/conditionanalyzer/01/02-KPOINTS/8x8x8/try05/POSCAR +13 -0
  139. data/test/conditionanalyzer/mixed_conditions/orthorhombic/CONTCAR +17 -0
  140. data/test/conditionanalyzer/mixed_conditions/orthorhombic/INCAR +28 -0
  141. data/test/conditionanalyzer/mixed_conditions/orthorhombic/KPOINTS +6 -0
  142. data/test/conditionanalyzer/mixed_conditions/orthorhombic/OUTCAR +1436 -0
  143. data/test/conditionanalyzer/mixed_conditions/orthorhombic/POSCAR +12 -0
  144. data/test/conditionanalyzer/mixed_conditions/orthorhombic/POTCAR +16 -0
  145. data/test/conditionanalyzer/mixed_conditions/tetragonal/CONTCAR +17 -0
  146. data/test/conditionanalyzer/mixed_conditions/tetragonal/INCAR +28 -0
  147. data/test/conditionanalyzer/mixed_conditions/tetragonal/KPOINTS +6 -0
  148. data/test/conditionanalyzer/mixed_conditions/tetragonal/OUTCAR +1436 -0
  149. data/test/conditionanalyzer/mixed_conditions/tetragonal/POSCAR +12 -0
  150. data/test/conditionanalyzer/mixed_conditions/tetragonal/POTCAR +16 -0
  151. data/test/conditionanalyzer/picker/encut400_k444-cubic/INCAR +28 -0
  152. data/test/conditionanalyzer/picker/encut400_k444-cubic/KPOINTS +6 -0
  153. data/test/conditionanalyzer/picker/encut400_k444-cubic/OUTCAR +1436 -0
  154. data/test/conditionanalyzer/picker/encut400_k444-cubic/POSCAR +9 -0
  155. data/test/conditionanalyzer/picker/encut400_k444-cubic/POTCAR +16 -0
  156. data/test/conditionanalyzer/picker/encut400_k444-tetragonal-b/INCAR +28 -0
  157. data/test/conditionanalyzer/picker/encut400_k444-tetragonal-b/KPOINTS +6 -0
  158. data/test/conditionanalyzer/picker/encut400_k444-tetragonal-b/OUTCAR +1436 -0
  159. data/test/conditionanalyzer/picker/encut400_k444-tetragonal-b/POSCAR +9 -0
  160. data/test/conditionanalyzer/picker/encut400_k444-tetragonal-b/POTCAR +16 -0
  161. data/test/conditionanalyzer/picker/encut400_k444-unfinished/INCAR +28 -0
  162. data/test/conditionanalyzer/picker/encut400_k444-unfinished/KPOINTS +6 -0
  163. data/test/conditionanalyzer/picker/encut400_k444-unfinished/OUTCAR +1381 -0
  164. data/test/conditionanalyzer/picker/encut400_k444-unfinished/POSCAR +12 -0
  165. data/test/conditionanalyzer/picker/encut400_k444-unfinished/POTCAR +16 -0
  166. data/test/conditionanalyzer/picker/hexiagonal/CONTCAR +13 -0
  167. data/test/conditionanalyzer/picker/hexiagonal/INCAR +17 -0
  168. data/test/conditionanalyzer/picker/hexiagonal/KPOINTS +6 -0
  169. data/test/conditionanalyzer/picker/hexiagonal/OUTCAR +1644 -0
  170. data/test/conditionanalyzer/picker/hexiagonal/POSCAR +13 -0
  171. data/test/conditionvarier/standard/INCAR +28 -0
  172. data/test/conditionvarier/standard/KPOINTS +6 -0
  173. data/test/conditionvarier/standard/POSCAR +12 -0
  174. data/test/conditionvarier/standard/POTCAR +16 -0
  175. data/test/helper.rb +4 -4
  176. data/test/poscar/symmetry/cubic/POSCAR +8 -0
  177. data/test/poscar/symmetry/hexagonal/POSCAR +8 -0
  178. data/test/poscar/symmetry/monoclinic/POSCAR +8 -0
  179. data/test/poscar/symmetry/orthorhombic/POSCAR +8 -0
  180. data/test/poscar/symmetry/tetragonal/POSCAR +8 -0
  181. data/test/poscar/symmetry/tetragonal-b/POSCAR +8 -0
  182. data/test/poscar/symmetry/triclinic/POSCAR +10 -0
  183. data/test/poscar/symmetry/trigonal/POSCAR +9 -0
  184. data/test/test_conditionvarier.rb +201 -0
  185. data/test/test_incar.rb +144 -144
  186. data/test/test_kpoints.rb +91 -91
  187. data/test/test_outcar.rb +154 -154
  188. data/test/test_poscar.rb +263 -262
  189. data/test/test_potcar.rb +31 -31
  190. data/test/test_potcar_concatenater.rb +39 -39
  191. data/test/test_setting.rb +15 -14
  192. data/test/test_vaspdir.rb +193 -126
  193. data/test/test_vaspgeometryoptimizer.rb +177 -78
  194. data/test/test_vasputils.rb +48 -48
  195. data/test/vaspdir/reset_init/finished/orig/CONTCAR +17 -0
  196. data/test/vaspdir/reset_init/finished/orig/INCAR +27 -0
  197. data/test/vaspdir/reset_init/finished/orig/KPOINTS +6 -0
  198. data/test/vaspdir/reset_init/finished/orig/OUTCAR +1436 -0
  199. data/test/vaspdir/reset_init/finished/orig/POSCAR +12 -0
  200. data/test/vaspdir/reset_init/finished/orig/POTCAR +16 -0
  201. data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir0/CONTCAR +17 -0
  202. data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir0/INCAR +27 -0
  203. data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir0/KPOINTS +6 -0
  204. data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir0/OUTCAR +1436 -0
  205. data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir0/POSCAR +12 -0
  206. data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir0/POTCAR +16 -0
  207. data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir1/CONTCAR +17 -0
  208. data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir1/INCAR +27 -0
  209. data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir1/KPOINTS +6 -0
  210. data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir1/OUTCAR +1436 -0
  211. data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir1/POSCAR +12 -0
  212. data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir1/POTCAR +16 -0
  213. data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/DOSCAR +0 -0
  214. data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/EIGENVAL +0 -0
  215. data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/INCAR +0 -0
  216. data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/KPOINTS +0 -0
  217. data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/OSZICAR +0 -0
  218. data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/OUTCAR +0 -0
  219. data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/PCDAT +0 -0
  220. data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/POSCAR +0 -0
  221. data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/POTCAR +0 -0
  222. data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/WAVECAR +0 -0
  223. data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/XDATCAR +0 -0
  224. data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/vasprun.xml +0 -0
  225. data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt01/.gitignore +0 -0
  226. data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/CHG +0 -0
  227. data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/CHGCAR +0 -0
  228. data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/CONTCAR +0 -0
  229. data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/DOSCAR +0 -0
  230. data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/EIGENVAL +0 -0
  231. data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/INCAR +0 -0
  232. data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/KPOINTS +0 -0
  233. data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/OSZICAR +0 -0
  234. data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/OUTCAR +0 -0
  235. data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/PCDAT +0 -0
  236. data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/POSCAR +0 -0
  237. data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/POTCAR +0 -0
  238. data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/WAVECAR +0 -0
  239. data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/XDATCAR +0 -0
  240. data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/vasprun.xml +0 -0
  241. data/test/vaspgeometryoptimizer/reset_init/orig/geomopt00/CONTCAR +12 -0
  242. data/test/vaspgeometryoptimizer/reset_init/orig/geomopt00/INCAR +0 -0
  243. data/test/vaspgeometryoptimizer/reset_init/orig/geomopt00/KPOINTS +0 -0
  244. data/test/vaspgeometryoptimizer/reset_init/orig/geomopt00/OUTCAR +0 -0
  245. data/test/vaspgeometryoptimizer/reset_init/orig/geomopt00/POSCAR +12 -0
  246. data/test/vaspgeometryoptimizer/reset_init/orig/geomopt00/POTCAR +0 -0
  247. data/test/vaspgeometryoptimizer/reset_init/orig/geomopt01/CONTCAR +12 -0
  248. data/test/vaspgeometryoptimizer/reset_init/orig/geomopt01/INCAR +0 -0
  249. data/test/vaspgeometryoptimizer/reset_init/orig/geomopt01/KPOINTS +0 -0
  250. data/test/vaspgeometryoptimizer/reset_init/orig/geomopt01/OUTCAR +0 -0
  251. data/test/vaspgeometryoptimizer/reset_init/orig/geomopt01/POSCAR +12 -0
  252. data/test/vaspgeometryoptimizer/reset_init/orig/geomopt01/POTCAR +0 -0
  253. data/test/vaspgeometryoptimizer/reset_init/orig/geomopt02/CONTCAR +0 -0
  254. data/test/vaspgeometryoptimizer/reset_init/orig/geomopt02/INCAR +0 -0
  255. data/test/vaspgeometryoptimizer/reset_init/orig/geomopt02/KPOINTS +0 -0
  256. data/test/vaspgeometryoptimizer/reset_init/orig/geomopt02/POSCAR +12 -0
  257. data/test/vaspgeometryoptimizer/reset_init/orig/geomopt02/POTCAR +0 -0
  258. data/test/vaspgeometryoptimizer/reset_init/orig/lock_vaspgeomopt/dummy +0 -0
  259. data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt00/CONTCAR +12 -0
  260. data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt00/INCAR +0 -0
  261. data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt00/KPOINTS +0 -0
  262. data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt00/OUTCAR +0 -0
  263. data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt00/POSCAR +12 -0
  264. data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt00/POTCAR +0 -0
  265. data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt01/CONTCAR +12 -0
  266. data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt01/INCAR +0 -0
  267. data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt01/KPOINTS +0 -0
  268. data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt01/OUTCAR +0 -0
  269. data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt01/POSCAR +12 -0
  270. data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt01/POTCAR +0 -0
  271. data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt02/CONTCAR +0 -0
  272. data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt02/INCAR +0 -0
  273. data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt02/KPOINTS +0 -0
  274. data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt02/OUTCAR +0 -0
  275. data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt02/POSCAR +12 -0
  276. data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt02/POTCAR +0 -0
  277. data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/lock_vaspgeomopt/dummy +0 -0
  278. data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt00/CONTCAR +12 -0
  279. data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt00/INCAR +0 -0
  280. data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt00/KPOINTS +0 -0
  281. data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt00/OUTCAR +0 -0
  282. data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt00/POSCAR +12 -0
  283. data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt00/POTCAR +0 -0
  284. data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt01/CONTCAR +12 -0
  285. data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt01/INCAR +0 -0
  286. data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt01/KPOINTS +0 -0
  287. data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt01/OUTCAR +0 -0
  288. data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt01/POSCAR +12 -0
  289. data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt01/POTCAR +0 -0
  290. data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt02/INCAR +0 -0
  291. data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt02/KPOINTS +0 -0
  292. data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt02/POSCAR +12 -0
  293. data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt02/POTCAR +0 -0
  294. data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/lock_vaspgeomopt/dummy +0 -0
  295. data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt00/CONTCAR +12 -0
  296. data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt00/INCAR +0 -0
  297. data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt00/KPOINTS +0 -0
  298. data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt00/OUTCAR +0 -0
  299. data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt00/POSCAR +12 -0
  300. data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt00/POTCAR +0 -0
  301. data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt01/CONTCAR +12 -0
  302. data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt01/INCAR +0 -0
  303. data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt01/KPOINTS +0 -0
  304. data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt01/OUTCAR +0 -0
  305. data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt01/POSCAR +12 -0
  306. data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt01/POTCAR +0 -0
  307. data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt02/CONTCAR +12 -0
  308. data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt02/INCAR +0 -0
  309. data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt02/KPOINTS +0 -0
  310. data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt02/POSCAR +12 -0
  311. data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt02/POTCAR +0 -0
  312. data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/lock_vaspgeomopt/dummy +0 -0
  313. data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt00/CONTCAR +12 -0
  314. data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt00/INCAR +0 -0
  315. data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt00/KPOINTS +0 -0
  316. data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt00/OUTCAR +0 -0
  317. data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt00/POSCAR +12 -0
  318. data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt00/POTCAR +0 -0
  319. data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt01/CONTCAR +12 -0
  320. data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt01/INCAR +0 -0
  321. data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt01/KPOINTS +0 -0
  322. data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt01/OUTCAR +0 -0
  323. data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt01/POSCAR +12 -0
  324. data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt01/POTCAR +0 -0
  325. data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt02/CONTCAR +0 -0
  326. data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt02/INCAR +0 -0
  327. data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt02/KPOINTS +0 -0
  328. data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt02/POSCAR +12 -0
  329. data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt02/POTCAR +0 -0
  330. data/test/vaspgeometryoptimizer/reset_reincarnation/orig/lock_vaspgeomopt/dummy +0 -0
  331. data/test/vaspgeometryoptimizer/started/geomopt00/INCAR +0 -0
  332. data/test/vaspgeometryoptimizer/started/geomopt00/KPOINTS +0 -0
  333. data/test/vaspgeometryoptimizer/started/geomopt00/POSCAR +0 -0
  334. data/test/vaspgeometryoptimizer/started/geomopt00/POTCAR +0 -0
  335. data/test/vaspgeometryoptimizer/till01/geomopt00/CONTCAR +0 -0
  336. data/test/vaspgeometryoptimizer/till01/geomopt00/INCAR +0 -0
  337. data/test/vaspgeometryoptimizer/till01/geomopt00/KPOINTS +0 -0
  338. data/test/vaspgeometryoptimizer/till01/geomopt00/OUTCAR +0 -0
  339. data/test/vaspgeometryoptimizer/till01/geomopt00/POSCAR +0 -0
  340. data/test/vaspgeometryoptimizer/till01/geomopt00/POTCAR +0 -0
  341. data/test/vaspgeometryoptimizer/till01/geomopt01/INCAR +0 -0
  342. data/test/vaspgeometryoptimizer/till01/geomopt01/KPOINTS +0 -0
  343. data/test/vaspgeometryoptimizer/till01/geomopt01/POSCAR +0 -0
  344. data/test/vaspgeometryoptimizer/till01/geomopt01/POTCAR +0 -0
  345. metadata +464 -106
  346. data/bin/genvaspdir +0 -17
  347. data/bin/rmvaspout +0 -40
  348. data/lib/vasputils/vaspkpointsfinder.rb +0 -72
  349. data/test/test_vaspkpointsfinder.rb +0 -25
  350. data/test/vaspkpointsfinder/01-01-01/try00/POSCAR +0 -8
  351. data/vasputils.gemspec +0 -567
  352. /data/test/{vaspgeometryoptimizer/ended-Iter1/try00 → conditionanalyzer/01/00-original}/POTCAR +0 -0
  353. /data/test/{vaspgeometryoptimizer/ended-Iter1/try01 → conditionanalyzer/01/01-ENCUT/1000/try02}/POTCAR +0 -0
  354. /data/test/{vaspgeometryoptimizer/ended-Iter2/try00 → conditionanalyzer/01/01-ENCUT/1200/try02}/POTCAR +0 -0
  355. /data/test/{vaspgeometryoptimizer/ended-Iter2/try01 → conditionanalyzer/01/01-ENCUT/1500/try02}/POTCAR +0 -0
  356. /data/test/{vaspgeometryoptimizer/not-yet/try00 → conditionanalyzer/01/01-ENCUT/500/try05}/POTCAR +0 -0
  357. /data/test/{vaspgeometryoptimizer/prepare_next/try00 → conditionanalyzer/01/01-ENCUT/600/try01}/POTCAR +0 -0
  358. /data/test/{vaspgeometryoptimizer/started/try00 → conditionanalyzer/01/01-ENCUT/700/try01}/POTCAR +0 -0
  359. /data/test/{vaspgeometryoptimizer/till01/try00 → conditionanalyzer/01/01-ENCUT/800/try01}/POTCAR +0 -0
  360. /data/test/{vaspgeometryoptimizer/till01 → conditionanalyzer/01/01-ENCUT/900}/try01/POTCAR +0 -0
  361. /data/test/{vaspkpointsfinder/01-01-01/try00 → conditionanalyzer/01/02-KPOINTS/16x16x16/try07}/POTCAR +0 -0
  362. /data/test/{vaspgeometryoptimizer/ended-Iter1/try00/INCAR → conditionanalyzer/01/02-KPOINTS/1x1x1/try07/POTCAR} +0 -0
  363. /data/test/{vaspgeometryoptimizer/ended-Iter1/try00/KPOINTS → conditionanalyzer/01/02-KPOINTS/2x2x2/try10/POTCAR} +0 -0
  364. /data/test/{vaspgeometryoptimizer/ended-Iter1/try00/OUTCAR → conditionanalyzer/01/02-KPOINTS/32x32x32/try06/POTCAR} +0 -0
  365. /data/test/{vaspgeometryoptimizer/ended-Iter1/try00/POSCAR → conditionanalyzer/01/02-KPOINTS/32x32x64/try04/POTCAR} +0 -0
  366. /data/test/{vaspgeometryoptimizer/ended-Iter1/try01/INCAR → conditionanalyzer/01/02-KPOINTS/4x4x4/try05/POTCAR} +0 -0
  367. /data/test/{vaspgeometryoptimizer/ended-Iter2/try00 → conditionanalyzer/01/02-KPOINTS/64x64x64}/CONTCAR +0 -0
  368. /data/test/{vaspgeometryoptimizer/ended-Iter1/try01/KPOINTS → conditionanalyzer/01/02-KPOINTS/64x64x64/POTCAR} +0 -0
  369. /data/test/{vaspgeometryoptimizer/ended-Iter1/try01/POSCAR → conditionanalyzer/01/02-KPOINTS/8x8x8/try05/POTCAR} +0 -0
  370. /data/test/{vaspgeometryoptimizer/ended-Iter2/try00/INCAR → conditionanalyzer/picker/hexiagonal/POTCAR} +0 -0
  371. /data/test/vaspgeometryoptimizer/{prepare_next/try00 → ended-Iter1/geomopt00}/CONTCAR +0 -0
  372. /data/test/vaspgeometryoptimizer/{ended-Iter2/try01 → ended-Iter1/geomopt00}/INCAR +0 -0
  373. /data/test/vaspgeometryoptimizer/{ended-Iter2/try00 → ended-Iter1/geomopt00}/KPOINTS +0 -0
  374. /data/test/vaspgeometryoptimizer/{ended-Iter2/try00 → ended-Iter1/geomopt00}/OUTCAR +0 -0
  375. /data/test/vaspgeometryoptimizer/{ended-Iter2/try00 → ended-Iter1/geomopt00}/POSCAR +0 -0
  376. /data/test/vaspgeometryoptimizer/{ended-Iter2/try01/KPOINTS → ended-Iter1/geomopt00/POTCAR} +0 -0
  377. /data/test/vaspgeometryoptimizer/{not-yet/try00 → ended-Iter1/geomopt01}/INCAR +0 -0
  378. /data/test/vaspgeometryoptimizer/{not-yet/try00 → ended-Iter1/geomopt01}/KPOINTS +0 -0
  379. /data/test/vaspgeometryoptimizer/ended-Iter1/{try01 → geomopt01}/OUTCAR +0 -0
  380. /data/test/vaspgeometryoptimizer/{ended-Iter2/try01 → ended-Iter1/geomopt01}/POSCAR +0 -0
  381. /data/test/vaspgeometryoptimizer/{not-yet/try00/POSCAR → ended-Iter1/geomopt01/POTCAR} +0 -0
  382. /data/test/vaspgeometryoptimizer/{till01/try00 → ended-Iter2/geomopt00}/CONTCAR +0 -0
  383. /data/test/vaspgeometryoptimizer/{prepare_next/try00 → ended-Iter2/geomopt00}/INCAR +0 -0
  384. /data/test/vaspgeometryoptimizer/{prepare_next/try00 → ended-Iter2/geomopt00}/KPOINTS +0 -0
  385. /data/test/vaspgeometryoptimizer/{prepare_next/try00 → ended-Iter2/geomopt00}/OUTCAR +0 -0
  386. /data/test/vaspgeometryoptimizer/{prepare_next/try00 → ended-Iter2/geomopt00}/POSCAR +0 -0
  387. /data/test/vaspgeometryoptimizer/{prepare_next/try00/CHG → ended-Iter2/geomopt00/POTCAR} +0 -0
  388. /data/test/vaspgeometryoptimizer/{started/try00 → ended-Iter2/geomopt01}/INCAR +0 -0
  389. /data/test/vaspgeometryoptimizer/{started/try00 → ended-Iter2/geomopt01}/KPOINTS +0 -0
  390. /data/test/vaspgeometryoptimizer/ended-Iter2/{try01 → geomopt01}/OUTCAR +0 -0
  391. /data/test/vaspgeometryoptimizer/{started/try00 → ended-Iter2/geomopt01}/POSCAR +0 -0
  392. /data/test/vaspgeometryoptimizer/{prepare_next/try00/CHGCAR → ended-Iter2/geomopt01/POTCAR} +0 -0
  393. /data/test/vaspgeometryoptimizer/{till01/try00 → not-geomopt/not-geomopt-subdir/calcA}/INCAR +0 -0
  394. /data/test/vaspgeometryoptimizer/{till01/try00 → not-geomopt/not-geomopt-subdir/calcA}/KPOINTS +0 -0
  395. /data/test/vaspgeometryoptimizer/{till01/try00 → not-geomopt/not-geomopt-subdir/calcA}/POSCAR +0 -0
  396. /data/test/vaspgeometryoptimizer/{prepare_next/try00/DOSCAR → not-geomopt/not-geomopt-subdir/calcA/POTCAR} +0 -0
  397. /data/test/vaspgeometryoptimizer/{till01/try01 → not-geomopt/not-geomopt-subdir/calcB}/INCAR +0 -0
  398. /data/test/vaspgeometryoptimizer/{till01/try01 → not-geomopt/not-geomopt-subdir/calcB}/KPOINTS +0 -0
  399. /data/test/vaspgeometryoptimizer/{till01/try01 → not-geomopt/not-geomopt-subdir/calcB}/POSCAR +0 -0
  400. /data/test/vaspgeometryoptimizer/{prepare_next/try00/EIGENVAL → not-geomopt/not-geomopt-subdir/calcB/POTCAR} +0 -0
  401. /data/test/vaspgeometryoptimizer/{prepare_next/try00/OSZICAR → not-yet/geomopt00/INCAR} +0 -0
  402. /data/test/vaspgeometryoptimizer/{prepare_next/try00/PCDAT → not-yet/geomopt00/KPOINTS} +0 -0
  403. /data/test/vaspgeometryoptimizer/{prepare_next/try00/WAVECAR → not-yet/geomopt00/POSCAR} +0 -0
  404. /data/test/vaspgeometryoptimizer/{prepare_next/try00/XDATCAR → not-yet/geomopt00/POTCAR} +0 -0
  405. /data/test/vaspgeometryoptimizer/prepare_next/{try00/vasprun.xml → no-contcar/geomopt00/CHG} +0 -0
  406. /data/test/vaspgeometryoptimizer/{till01/try00/OUTCAR → prepare_next/no-contcar/geomopt00/CHGCAR} +0 -0
@@ -2,96 +2,195 @@
2
2
  # coding: utf-8
3
3
 
4
4
  require "fileutils"
5
+ require "stringio"
5
6
  require "test/unit"
6
7
 
7
8
  require "vasputils.rb"
8
9
  #require "vasputils/vaspgeometryoptimizer.rb"
9
10
 
10
11
 
11
- class VaspUtils::VaspGeometryOptimizer < ComputationManager
12
- public :latest_dir, :prepare_next
12
+ class VaspUtils::VaspGeometryOptimizer < Comana::ComputationManager
13
+ public :latest_dir, :prepare_next
13
14
  end
14
15
 
15
16
  class TC_VaspGeometryOptimizer < Test::Unit::TestCase
16
- TEST_DIR = "test/vaspgeometryoptimizer"
17
- def setup
18
- @vgo00 = VaspUtils::VaspGeometryOptimizer.new( TEST_DIR + "/not-yet")
19
- @vgo01 = VaspUtils::VaspGeometryOptimizer.new( TEST_DIR + "/started")
20
- @vgo02 = VaspUtils::VaspGeometryOptimizer.new( TEST_DIR + "/till01")
21
- @vgo03 = VaspUtils::VaspGeometryOptimizer.new( TEST_DIR + "/ended-Iter1")
22
- @vgo04 = VaspUtils::VaspGeometryOptimizer.new( TEST_DIR + "/ended-Iter2")
23
- end
24
-
25
- def test_initialize
26
- assert_raise(VaspUtils::VaspGeometryOptimizer::NoVaspDirError){
27
- VaspUtils::VaspGeometryOptimizer.new( TEST_DIR + "/not-geomopt")
28
- }
29
- end
30
-
31
- def test_latest_dir
32
- assert_equal("#{@vgo00.dir}/try00", @vgo00.latest_dir.dir)
33
- assert_equal("#{@vgo01.dir}/try00", @vgo01.latest_dir.dir)
34
- assert_equal("#{@vgo02.dir}/try01", @vgo02.latest_dir.dir)
35
- assert_equal("#{@vgo03.dir}/try01", @vgo03.latest_dir.dir)
36
- end
37
-
38
- def test_finished?
39
- assert_equal(false, @vgo00.finished?)
40
- assert_equal(false, @vgo01.finished?)
41
- assert_equal(false, @vgo02.finished?)
42
- assert_equal(true , @vgo03.finished?)
43
- assert_equal(false, @vgo04.finished?)
44
- end
45
-
46
- def test_next_name
47
- assert_equal( "try01" , VaspUtils::VaspGeometryOptimizer.next_name("try00"))
48
- assert_equal( "try01" , VaspUtils::VaspGeometryOptimizer.next_name("try0"))
49
- assert_equal( "try10" , VaspUtils::VaspGeometryOptimizer.next_name("try09"))
50
- assert_equal( "try11" , VaspUtils::VaspGeometryOptimizer.next_name("try10"))
51
- assert_equal( "try100", VaspUtils::VaspGeometryOptimizer.next_name("try99"))
52
- assert_equal( "01" , VaspUtils::VaspGeometryOptimizer.next_name("00"))
53
- assert_equal( "try01" , VaspUtils::VaspGeometryOptimizer.next_name("try"))
54
- #assert_raise(VaspUtils::VaspGeometryOptimizer::NoIntegerEndedNameError){VaspUtils::VaspGeometryOptimizer.next_name("try")}
55
- end
56
-
57
- def test_prepare_next
58
- dir = TEST_DIR + "/prepare_next"
59
- old_number_dir = dir + "/try00"
60
- new_number_dir = dir + "/try01"
61
-
62
- if Dir.exist?(new_number_dir)
63
- Dir.glob(new_number_dir + "/*").each do |file|
64
- FileUtils.rm file
65
- end
66
- Dir.rmdir new_number_dir
17
+ TEST_DIR = "test/vaspgeometryoptimizer"
18
+ def setup
19
+ @vgo00 = VaspUtils::VaspGeometryOptimizer.new( TEST_DIR + "/not-yet")
20
+ @vgo01 = VaspUtils::VaspGeometryOptimizer.new( TEST_DIR + "/started")
21
+ @vgo02 = VaspUtils::VaspGeometryOptimizer.new( TEST_DIR + "/till01")
22
+ @vgo03 = VaspUtils::VaspGeometryOptimizer.new( TEST_DIR + "/ended-Iter1")
23
+ @vgo04 = VaspUtils::VaspGeometryOptimizer.new( TEST_DIR + "/ended-Iter2")
67
24
  end
68
25
 
69
- vgo = VaspUtils::VaspGeometryOptimizer.new(dir)
70
- vgo.prepare_next
71
- assert(Dir.exist?(new_number_dir))
72
- assert(File.exist?(new_number_dir + "/CHG" ))
73
- assert(File.exist?(new_number_dir + "/CHGCAR" ))
74
- assert(File.exist?(new_number_dir + "/DOSCAR" ))
75
- assert(File.exist?(new_number_dir + "/EIGENVAL"))
76
- assert(File.exist?(new_number_dir + "/INCAR" ))
77
- assert(File.exist?(new_number_dir + "/KPOINTS" ))
78
- assert(File.exist?(new_number_dir + "/OSZICAR" ))
79
- assert(File.exist?(new_number_dir + "/PCDAT" ))
80
- assert(File.exist?(new_number_dir + "/POTCAR" ))
81
- assert(File.exist?(new_number_dir + "/WAVECAR" ))
82
- assert(File.exist?(new_number_dir + "/XDATCAR" ))
83
- assert(File.exist?(new_number_dir + "/POSCAR" ))
84
- assert(! File.exist?(new_number_dir + "/CONTCAR" ))
85
- assert(! File.exist?(new_number_dir + "/OUTCAR" ))
86
- assert(! File.exist?(new_number_dir + "/vasprun.xml" ))
87
-
88
- if Dir.exist?(new_number_dir)
89
- Dir.glob(new_number_dir + "/*").each do |file|
90
- FileUtils.rm file
91
- end
92
- Dir.rmdir new_number_dir
26
+ def test_initialize
27
+ assert_raise(VaspUtils::VaspGeometryOptimizer::InitializeError){
28
+ VaspUtils::VaspGeometryOptimizer.new( TEST_DIR + "/not-geomopt/nothing")
29
+ }
30
+
31
+ assert_raise(VaspUtils::VaspGeometryOptimizer::InitializeError){
32
+ VaspUtils::VaspGeometryOptimizer.new( TEST_DIR + "/not-geomopt/not-geomopt-subdir")
33
+ }
34
+
35
+ #assert_raise(VaspUtils::VaspGeometryOptimizer::InitializeError){
36
+ assert_raise(VaspUtils::VaspGeometryOptimizer::InitializeError){
37
+ VaspUtils::VaspGeometryOptimizer.new( TEST_DIR + "test/vaspgeometryoptimizer/multiple_vaspdir")
38
+ }
39
+ end
40
+
41
+ def test_latest_dir
42
+ assert_equal("#{@vgo00.dir}/geomopt00", @vgo00.latest_dir.dir)
43
+ assert_equal("#{@vgo01.dir}/geomopt00", @vgo01.latest_dir.dir)
44
+ assert_equal("#{@vgo02.dir}/geomopt01", @vgo02.latest_dir.dir)
45
+ assert_equal("#{@vgo03.dir}/geomopt01", @vgo03.latest_dir.dir)
46
+ end
47
+
48
+ def test_finished?
49
+ assert_equal(false, @vgo00.finished?)
50
+ assert_equal(false, @vgo01.finished?)
51
+ assert_equal(false, @vgo02.finished?)
52
+ assert_equal(true , @vgo03.finished?)
53
+ assert_equal(false, @vgo04.finished?)
54
+ end
55
+
56
+ def test_next_name
57
+ assert_equal( "geomopt01" , VaspUtils::VaspGeometryOptimizer.next_name("geomopt00"))
58
+ assert_equal( "geomopt01" , VaspUtils::VaspGeometryOptimizer.next_name("geomopt0"))
59
+ assert_equal( "geomopt10" , VaspUtils::VaspGeometryOptimizer.next_name("geomopt09"))
60
+ assert_equal( "geomopt11" , VaspUtils::VaspGeometryOptimizer.next_name("geomopt10"))
61
+ assert_equal( "geomopt100", VaspUtils::VaspGeometryOptimizer.next_name("geomopt99"))
62
+ assert_equal( "01" , VaspUtils::VaspGeometryOptimizer.next_name("00"))
63
+ assert_equal( "geomopt01" , VaspUtils::VaspGeometryOptimizer.next_name("geomopt"))
64
+ #assert_raise(VaspUtils::VaspGeometryOptimizer::NoIntegerEndedNameError){VaspUtils::VaspGeometryOptimizer.next_name("try")}
65
+ end
66
+
67
+ def test_prepare_next
68
+ dir = TEST_DIR + "/prepare_next/normal"
69
+ old_number_dir = dir + "/geomopt00"
70
+ new_number_dir = dir + "/geomopt01"
71
+
72
+ if Dir.exist?(new_number_dir)
73
+ Dir.glob(new_number_dir + "/*").each do |file|
74
+ FileUtils.rm file
75
+ end
76
+ Dir.rmdir new_number_dir
77
+ end
78
+
79
+ vgo = VaspUtils::VaspGeometryOptimizer.new(dir)
80
+ vgo.prepare_next
81
+ assert_equal(true ,Dir.exist?(new_number_dir))
82
+ assert_equal(true , File.exist?(new_number_dir + "/CHG" ))
83
+ assert_equal(true , File.exist?(new_number_dir + "/CHGCAR" ))
84
+ assert_equal(true , File.exist?(new_number_dir + "/DOSCAR" ))
85
+ assert_equal(true , File.exist?(new_number_dir + "/EIGENVAL"))
86
+ assert_equal(true , File.exist?(new_number_dir + "/INCAR" ))
87
+ assert_equal(true , File.exist?(new_number_dir + "/KPOINTS" ))
88
+ assert_equal(true , File.exist?(new_number_dir + "/OSZICAR" ))
89
+ assert_equal(true , File.exist?(new_number_dir + "/PCDAT" ))
90
+ assert_equal(true , File.exist?(new_number_dir + "/POTCAR" ))
91
+ assert_equal(true , File.exist?(new_number_dir + "/WAVECAR" ))
92
+ assert_equal(true , File.exist?(new_number_dir + "/XDATCAR" ))
93
+ assert_equal(true , File.exist?(new_number_dir + "/POSCAR" ))
94
+ assert_equal(false, File.exist?(new_number_dir + "/CONTCAR" ))
95
+ assert_equal(false, File.exist?(new_number_dir + "/OUTCAR" ))
96
+ assert_equal(false, File.exist?(new_number_dir + "/vasprun.xml" ))
97
+
98
+ if Dir.exist?(new_number_dir)
99
+ Dir.glob(new_number_dir + "/*").each do |file|
100
+ FileUtils.rm file
101
+ end
102
+ Dir.rmdir new_number_dir
103
+ end
104
+
105
+ dir = TEST_DIR + "/prepare_next/no-contcar"
106
+ vgo = VaspUtils::VaspGeometryOptimizer.new(dir)
107
+ assert_raise(VaspUtils::VaspGeometryOptimizer::NoContcarError){
108
+ vgo.prepare_next
109
+ }
110
+ end
111
+
112
+
113
+ def test_reset_init
114
+ orig = TEST_DIR + "/reset_init/orig"
115
+ tmp = TEST_DIR + "/reset_init/tmp"
116
+ FileUtils.rm_r tmp if FileTest.exist? tmp
117
+ FileUtils.cp_r(orig, tmp)
118
+ vgo = VaspUtils::VaspGeometryOptimizer.new(tmp)
119
+ vgo.reset_init
120
+ assert_equal(true, File.exist?("#{tmp}/geomopt00"))
121
+ assert_equal(false, File.exist?("#{tmp}/geomopt01"))
122
+ assert_equal(4, Dir.glob("#{tmp}/geomopt00/*").size)
123
+ assert_equal("POSCAR_00\n", File.open("#{tmp}/geomopt00/POSCAR", "r").readline)
124
+ FileUtils.rm_rf tmp if FileTest.exist? tmp
125
+ end
126
+
127
+ def test_reset_next
128
+ #with correct POSCAR and CONTCAR
129
+ orig = TEST_DIR + "/reset_next/poscar-contcar/orig"
130
+ tmp = TEST_DIR + "/reset_next/poscar-contcar/tmp"
131
+ FileUtils.rm_r tmp if FileTest.exist? tmp
132
+ FileUtils.cp_r(orig, tmp)
133
+ vgo = VaspUtils::VaspGeometryOptimizer.new(tmp)
134
+ io = StringIO.new
135
+ vgo.reset_next(io)
136
+ assert_equal(true, File.exist?("#{tmp}/geomopt00"))
137
+ assert_equal(true, File.exist?("#{tmp}/geomopt01"))
138
+ assert_equal(true, File.exist?("#{tmp}/geomopt02"))
139
+ assert_equal(true, File.exist?("#{tmp}/geomopt03"))
140
+ assert_equal(4, Dir.glob("#{tmp}/geomopt03/*").size)
141
+ assert_equal("CONTCAR_02\n", File.open("#{tmp}/geomopt03/POSCAR", "r").readline)
142
+ FileUtils.rm_rf tmp if FileTest.exist? tmp
143
+
144
+ #with correct POSCAR and empty CONTCAR
145
+ orig = TEST_DIR + "/reset_next/empty-contcar/orig"
146
+ tmp = TEST_DIR + "/reset_next/empty-contcar/tmp"
147
+ FileUtils.rm_r tmp if FileTest.exist? tmp
148
+ FileUtils.cp_r(orig, tmp)
149
+ vgo = VaspUtils::VaspGeometryOptimizer.new(tmp)
150
+ vgo.reset_next(io)
151
+ assert_equal(true, File.exist?("#{tmp}/geomopt00"))
152
+ assert_equal(true, File.exist?("#{tmp}/geomopt01"))
153
+ assert_equal(true, File.exist?("#{tmp}/geomopt02"))
154
+ assert_equal(false, File.exist?("#{tmp}/geomopt03"))
155
+ assert_equal(4, Dir.glob("#{tmp}/geomopt02/*").size)
156
+ assert_equal("POSCAR_02\n", File.open("#{tmp}/geomopt02/POSCAR", "r").readline)
157
+ FileUtils.rm_rf tmp if FileTest.exist? tmp
158
+
159
+ #with correct POSCAR and no CONTCAR
160
+ orig = TEST_DIR + "/reset_next/no-contcar/orig"
161
+ tmp = TEST_DIR + "/reset_next/no-contcar/tmp"
162
+ FileUtils.rm_r tmp if FileTest.exist? tmp
163
+ FileUtils.cp_r(orig, tmp)
164
+ vgo = VaspUtils::VaspGeometryOptimizer.new(tmp)
165
+ vgo.reset_next(io)
166
+ assert_equal(true, File.exist?("#{tmp}/geomopt00"))
167
+ assert_equal(true, File.exist?("#{tmp}/geomopt01"))
168
+ assert_equal(true, File.exist?("#{tmp}/geomopt02"))
169
+ assert_equal(false, File.exist?("#{tmp}/geomopt03"))
170
+ assert_equal(4, Dir.glob("#{tmp}/geomopt02/*").size)
171
+ assert_equal("POSCAR_02\n", File.open("#{tmp}/geomopt02/POSCAR", "r").readline)
172
+ FileUtils.rm_rf tmp if FileTest.exist? tmp
173
+ end
174
+
175
+ def test_reset_reincarnation
176
+ orig = TEST_DIR + "/reset_reincarnation/orig"
177
+ tmp = TEST_DIR + "/reset_reincarnation/tmp"
178
+
179
+ FileUtils.rm_r tmp if FileTest.exist? tmp
180
+
181
+ FileUtils.cp_r(orig, tmp)
182
+ vgo = VaspUtils::VaspGeometryOptimizer.new(tmp)
183
+ vgo.reset_reincarnate
184
+
185
+ assert_equal(true, File.exist?("#{tmp}/geomopt00"))
186
+ assert_equal(false, File.exist?("#{tmp}/geomopt01"))
187
+ #assert_equal(1, Dir.glob("#{tmp}/*").size)
188
+ #This test may rail in NFS environment due to nfs lock; geomopt02/.nfs*.
189
+ assert_equal(4, Dir.glob("#{tmp}/geomopt00/*").size)
190
+ assert_equal("CONTCAR_01\n", File.open("#{tmp}/geomopt00/POSCAR", "r").readline)
191
+
192
+ FileUtils.rm_rf tmp if FileTest.exist? tmp
93
193
  end
94
- end
95
194
 
96
195
  end
97
196
 
@@ -5,61 +5,61 @@ require "test/unit"
5
5
  require "vasputils.rb"
6
6
 
7
7
  class TC_VaspUtils < Test::Unit::TestCase
8
- #def setup
9
- # @k = VaspUtils.new
10
- #end
8
+ #def setup
9
+ # @k = VaspUtils.new
10
+ #end
11
11
 
12
- #def test_generate_kmeshes
13
- # results = VaspUtils::generate_kmeshes([1.0, 1.0, 1.0], 5.0)
14
- # corrects = [
15
- # [1,1,1],
16
- # [2,2,2],
17
- # [4,4,4],
18
- # [8,8,8],
19
- # ]
20
- # assert_equal(corrects, results)
12
+ #def test_generate_kmeshes
13
+ # results = VaspUtils::generate_kmeshes([1.0, 1.0, 1.0], 5.0)
14
+ # corrects = [
15
+ # [1,1,1],
16
+ # [2,2,2],
17
+ # [4,4,4],
18
+ # [8,8,8],
19
+ # ]
20
+ # assert_equal(corrects, results)
21
21
 
22
- # results = VaspUtils::generate_kmeshes([1.0, 1.0, 2.0], 5.0)
23
- # corrects = [
24
- # [1,1,1],
25
- # [2,2,1],
26
- # [4,4,2],
27
- # [8,8,4],
28
- # ]
29
- # assert_equal(corrects, results)
22
+ # results = VaspUtils::generate_kmeshes([1.0, 1.0, 2.0], 5.0)
23
+ # corrects = [
24
+ # [1,1,1],
25
+ # [2,2,1],
26
+ # [4,4,2],
27
+ # [8,8,4],
28
+ # ]
29
+ # assert_equal(corrects, results)
30
30
 
31
- # results = VaspUtils::generate_kmeshes([1.0, 1.0, 3.0], 5.0)
32
- # corrects = [
33
- # [1,1,1], #1.0, 1.0, 3.0
34
- # [2,2,1], #2.0, 2.0, 3.0
35
- # [4,4,1], #4.0, 4.0, 3.0
36
- # [4,4,2], #4.0, 4.0, 6.0
37
- # [8,8,2], #8.0, 8.0, 6.0
38
- # ]
39
- # assert_equal(corrects, results)
31
+ # results = VaspUtils::generate_kmeshes([1.0, 1.0, 3.0], 5.0)
32
+ # corrects = [
33
+ # [1,1,1], #1.0, 1.0, 3.0
34
+ # [2,2,1], #2.0, 2.0, 3.0
35
+ # [4,4,1], #4.0, 4.0, 3.0
36
+ # [4,4,2], #4.0, 4.0, 6.0
37
+ # [8,8,2], #8.0, 8.0, 6.0
38
+ # ]
39
+ # assert_equal(corrects, results)
40
40
 
41
- # # check condition of equal
42
- # results = VaspUtils::generate_kmeshes([1.0, 1.0, 1.0], 2.0)
43
- # corrects = [
44
- # [1,1,1],
45
- # [2,2,2],
46
- # ]
47
- # assert_equal(corrects, results)
41
+ # # check condition of equal
42
+ # results = VaspUtils::generate_kmeshes([1.0, 1.0, 1.0], 2.0)
43
+ # corrects = [
44
+ # [1,1,1],
45
+ # [2,2,2],
46
+ # ]
47
+ # assert_equal(corrects, results)
48
48
 
49
- # assert_raise(VaspUtils::ArgumentError,
50
- # VaspUtils::generate_kmeshes([1.0, 2.0, 2.0, 0.0], 5.0)
51
- # )
52
- #end
49
+ # assert_raise(VaspUtils::ArgumentError,
50
+ # VaspUtils::generate_kmeshes([1.0, 2.0, 2.0, 0.0], 5.0)
51
+ # )
52
+ #end
53
53
 
54
- #def test_generate_wavelengths
55
- # results = VaspUtils::generate_wavelengths([2.0, 2.0, 3.0], 5.0)
56
- # corrects = [2.0, 3.0, 4.0, 6.0]
57
- # assert_equal(corrects, results)
54
+ #def test_generate_wavelengths
55
+ # results = VaspUtils::generate_wavelengths([2.0, 2.0, 3.0], 5.0)
56
+ # corrects = [2.0, 3.0, 4.0, 6.0]
57
+ # assert_equal(corrects, results)
58
58
 
59
- # results = VaspUtils::generate_wavelengths([1.0, 1.0, 1.0], 2.0)
60
- # corrects = [1.0, 2.0]
61
- # assert_equal(corrects, results)
62
- #end
59
+ # results = VaspUtils::generate_wavelengths([1.0, 1.0, 1.0], 2.0)
60
+ # corrects = [1.0, 2.0]
61
+ # assert_equal(corrects, results)
62
+ #end
63
63
 
64
64
  end
65
65
 
@@ -0,0 +1,17 @@
1
+ CONTCAR
2
+ 1.00000000000000
3
+ 3.6509999999999998 0.0000000000000000 0.0000000000000000
4
+ -1.8254999999999919 3.1618587492169889 0.0000000000000000
5
+ 0.0000000000000000 0.0000000000000000 3.8879999999999999
6
+ 3 1
7
+ Selective dynamics
8
+ Direct
9
+ 0.0000000000000000 0.0000000000000000 0.5000000000000000 T T T
10
+ 0.3333333333333357 0.6666666666666642 0.0000000000000000 T T T
11
+ 0.6666666666666642 0.3333333333333357 0.0000000000000000 T T T
12
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 F F F
13
+
14
+ 0.00000000E+00 0.00000000E+00 0.00000000E+00
15
+ 0.00000000E+00 0.00000000E+00 0.00000000E+00
16
+ 0.00000000E+00 0.00000000E+00 0.00000000E+00
17
+ 0.00000000E+00 0.00000000E+00 0.00000000E+00
@@ -0,0 +1,27 @@
1
+ # SCF input for VASP
2
+
3
+ SYSTEM = Untitled (VASP)
4
+ PREC = High
5
+ IBRION = -1 #-1:atoms not moved, 1:quasi-Newton, 2:conjugate-gradient
6
+ NSW = 0 #maximum number of ionic steps
7
+ ENCUT = 400
8
+ NELM = 60 #maximum number of electronic steps
9
+ NELMIN = 2 #minimum number of electronic steps
10
+ EDIFF = 1.0e-05
11
+ EDIFFG = -0.02
12
+ VOSKOWN = 1
13
+ NBLOCK = 1
14
+ ISPIN = 1 #1:non spin polarized, 2:spin polarized
15
+ INIWAV = 1
16
+ ISTART = 1
17
+ ICHARG = 1
18
+ LWAVE = .TRUE.
19
+ LCHARG = .TRUE.
20
+ ISMEAR = 0
21
+ SIGMA = 0.1
22
+ IALGO = 38 #38:KosugiAlgorithm, 48:RMM-DIIS
23
+ #LREAL = .FALSE.
24
+ LREAL = Auto #fast & not accurate
25
+ NGX = 36
26
+ NGY = 36
27
+ NGZ = 42
@@ -0,0 +1,6 @@
1
+ Automatic mesh
2
+ 0
3
+ Monkhorst Pack
4
+ 5 5 5
5
+ 0. 0. 0.
6
+