vasputils 0.0.10 → 0.0.11

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 (335) hide show
  1. data/CHANGES +48 -0
  2. data/VERSION +1 -1
  3. data/bin/genincar +39 -0
  4. data/bin/genkpoints +45 -0
  5. data/bin/genpotcar +27 -0
  6. data/bin/genvaspdir +17 -0
  7. data/bin/qsubvasp +3 -3
  8. data/bin/runvasp +2 -2
  9. data/example/dot.vasputils +331 -0
  10. data/lib/vasputils/incar.rb +13 -5
  11. data/lib/vasputils/kpoints.rb +2 -0
  12. data/lib/vasputils/poscar.rb +32 -18
  13. data/lib/vasputils/potcar/concatenater.rb +37 -0
  14. data/lib/vasputils/setting.rb +34 -0
  15. data/lib/vasputils.rb +65 -0
  16. data/test/incar/test.vasputils +335 -0
  17. data/test/poscar/trash/POSCAR.5-0 +11 -0
  18. data/test/potcar/dummy/Ac/POTCAR +1 -0
  19. data/test/potcar/dummy/Ag/POTCAR +1 -0
  20. data/test/potcar/dummy/Ag_GW/POTCAR +1 -0
  21. data/test/potcar/dummy/Ag_pv/POTCAR +1 -0
  22. data/test/potcar/dummy/Al/POTCAR +1 -0
  23. data/test/potcar/dummy/Al_GW/POTCAR +1 -0
  24. data/test/potcar/dummy/Al_sv_GW/POTCAR +1 -0
  25. data/test/potcar/dummy/Am/POTCAR +1 -0
  26. data/test/potcar/dummy/Ar/POTCAR +1 -0
  27. data/test/potcar/dummy/Ar_GW/POTCAR +1 -0
  28. data/test/potcar/dummy/As/POTCAR +1 -0
  29. data/test/potcar/dummy/As_GW/POTCAR +1 -0
  30. data/test/potcar/dummy/As_d/POTCAR +1 -0
  31. data/test/potcar/dummy/At/POTCAR +1 -0
  32. data/test/potcar/dummy/At_d/POTCAR +1 -0
  33. data/test/potcar/dummy/Au/POTCAR +1 -0
  34. data/test/potcar/dummy/Au_GW/POTCAR +1 -0
  35. data/test/potcar/dummy/Au_pv_GW/POTCAR +1 -0
  36. data/test/potcar/dummy/B/POTCAR +1 -0
  37. data/test/potcar/dummy/B_GW/POTCAR +1 -0
  38. data/test/potcar/dummy/B_h/POTCAR +1 -0
  39. data/test/potcar/dummy/B_s/POTCAR +1 -0
  40. data/test/potcar/dummy/Ba_sv/POTCAR +1 -0
  41. data/test/potcar/dummy/Ba_sv_GW/POTCAR +1 -0
  42. data/test/potcar/dummy/Be/POTCAR +1 -0
  43. data/test/potcar/dummy/Be_GW/POTCAR +1 -0
  44. data/test/potcar/dummy/Be_sv/POTCAR +1 -0
  45. data/test/potcar/dummy/Be_sv_GW/POTCAR +1 -0
  46. data/test/potcar/dummy/Bi/POTCAR +1 -0
  47. data/test/potcar/dummy/Bi_GW/POTCAR +1 -0
  48. data/test/potcar/dummy/Bi_d/POTCAR +1 -0
  49. data/test/potcar/dummy/Bi_d_GW/POTCAR +1 -0
  50. data/test/potcar/dummy/Br/POTCAR +1 -0
  51. data/test/potcar/dummy/Br_GW/POTCAR +1 -0
  52. data/test/potcar/dummy/C/POTCAR +1 -0
  53. data/test/potcar/dummy/C_GW/POTCAR +1 -0
  54. data/test/potcar/dummy/C_GW_new/POTCAR +1 -0
  55. data/test/potcar/dummy/C_h/POTCAR +1 -0
  56. data/test/potcar/dummy/C_s/POTCAR +1 -0
  57. data/test/potcar/dummy/Ca_pv/POTCAR +1 -0
  58. data/test/potcar/dummy/Ca_sv/POTCAR +1 -0
  59. data/test/potcar/dummy/Ca_sv_GW/POTCAR +1 -0
  60. data/test/potcar/dummy/Cd/POTCAR +1 -0
  61. data/test/potcar/dummy/Cd_GW/POTCAR +1 -0
  62. data/test/potcar/dummy/Cd_pv_GW/POTCAR +1 -0
  63. data/test/potcar/dummy/Cd_sv_GW/POTCAR +1 -0
  64. data/test/potcar/dummy/Ce/POTCAR +1 -0
  65. data/test/potcar/dummy/Ce_3/POTCAR +1 -0
  66. data/test/potcar/dummy/Ce_GW/POTCAR +1 -0
  67. data/test/potcar/dummy/Ce_h/POTCAR +1 -0
  68. data/test/potcar/dummy/Cl/POTCAR +1 -0
  69. data/test/potcar/dummy/Cl_GW/POTCAR +1 -0
  70. data/test/potcar/dummy/Cl_h/POTCAR +1 -0
  71. data/test/potcar/dummy/Cm/POTCAR +1 -0
  72. data/test/potcar/dummy/Co/POTCAR +1 -0
  73. data/test/potcar/dummy/Co_GW/POTCAR +1 -0
  74. data/test/potcar/dummy/Co_pv/POTCAR +1 -0
  75. data/test/potcar/dummy/Co_sv/POTCAR +1 -0
  76. data/test/potcar/dummy/Co_sv_GW/POTCAR +1 -0
  77. data/test/potcar/dummy/Cr/POTCAR +1 -0
  78. data/test/potcar/dummy/Cr_pv/POTCAR +1 -0
  79. data/test/potcar/dummy/Cr_sv/POTCAR +1 -0
  80. data/test/potcar/dummy/Cr_sv_GW/POTCAR +1 -0
  81. data/test/potcar/dummy/Cs_sv/POTCAR +1 -0
  82. data/test/potcar/dummy/Cs_sv_GW/POTCAR +1 -0
  83. data/test/potcar/dummy/Cu/POTCAR +1 -0
  84. data/test/potcar/dummy/Cu_GW/POTCAR +1 -0
  85. data/test/potcar/dummy/Cu_pv/POTCAR +1 -0
  86. data/test/potcar/dummy/Cu_pv_GW/POTCAR +1 -0
  87. data/test/potcar/dummy/Dy/POTCAR +1 -0
  88. data/test/potcar/dummy/Dy_3/POTCAR +1 -0
  89. data/test/potcar/dummy/Er/POTCAR +1 -0
  90. data/test/potcar/dummy/Er_2/POTCAR +1 -0
  91. data/test/potcar/dummy/Er_3/POTCAR +1 -0
  92. data/test/potcar/dummy/Eu/POTCAR +1 -0
  93. data/test/potcar/dummy/Eu_2/POTCAR +1 -0
  94. data/test/potcar/dummy/Eu_3/POTCAR +1 -0
  95. data/test/potcar/dummy/F/POTCAR +1 -0
  96. data/test/potcar/dummy/F_GW/POTCAR +1 -0
  97. data/test/potcar/dummy/F_GW_new/POTCAR +1 -0
  98. data/test/potcar/dummy/F_h/POTCAR +1 -0
  99. data/test/potcar/dummy/F_s/POTCAR +1 -0
  100. data/test/potcar/dummy/Fe/POTCAR +1 -0
  101. data/test/potcar/dummy/Fe_GW/POTCAR +1 -0
  102. data/test/potcar/dummy/Fe_pv/POTCAR +1 -0
  103. data/test/potcar/dummy/Fe_sv/POTCAR +1 -0
  104. data/test/potcar/dummy/Fe_sv_GW/POTCAR +1 -0
  105. data/test/potcar/dummy/Fr_sv/POTCAR +1 -0
  106. data/test/potcar/dummy/Ga/POTCAR +1 -0
  107. data/test/potcar/dummy/Ga_GW/POTCAR +1 -0
  108. data/test/potcar/dummy/Ga_d/POTCAR +1 -0
  109. data/test/potcar/dummy/Ga_d_GW/POTCAR +1 -0
  110. data/test/potcar/dummy/Ga_h/POTCAR +1 -0
  111. data/test/potcar/dummy/Ga_pv_GW/POTCAR +1 -0
  112. data/test/potcar/dummy/Ga_sv_GW/POTCAR +1 -0
  113. data/test/potcar/dummy/Gd/POTCAR +1 -0
  114. data/test/potcar/dummy/Gd_3/POTCAR +1 -0
  115. data/test/potcar/dummy/Ge/POTCAR +1 -0
  116. data/test/potcar/dummy/Ge_GW/POTCAR +1 -0
  117. data/test/potcar/dummy/Ge_d/POTCAR +1 -0
  118. data/test/potcar/dummy/Ge_d_GW/POTCAR +1 -0
  119. data/test/potcar/dummy/Ge_h/POTCAR +1 -0
  120. data/test/potcar/dummy/Ge_sv_GW/POTCAR +1 -0
  121. data/test/potcar/dummy/H/POTCAR +1 -0
  122. data/test/potcar/dummy/H.25/POTCAR +1 -0
  123. data/test/potcar/dummy/H.33/POTCAR +1 -0
  124. data/test/potcar/dummy/H.42/POTCAR +1 -0
  125. data/test/potcar/dummy/H.5/POTCAR +1 -0
  126. data/test/potcar/dummy/H.58/POTCAR +1 -0
  127. data/test/potcar/dummy/H.66/POTCAR +1 -0
  128. data/test/potcar/dummy/H.75/POTCAR +1 -0
  129. data/test/potcar/dummy/H1.25/POTCAR +1 -0
  130. data/test/potcar/dummy/H1.33/POTCAR +1 -0
  131. data/test/potcar/dummy/H1.5/POTCAR +1 -0
  132. data/test/potcar/dummy/H1.66/POTCAR +1 -0
  133. data/test/potcar/dummy/H1.75/POTCAR +1 -0
  134. data/test/potcar/dummy/H_AE/POTCAR +1 -0
  135. data/test/potcar/dummy/H_GW/POTCAR +1 -0
  136. data/test/potcar/dummy/H_h/POTCAR +1 -0
  137. data/test/potcar/dummy/H_h_GW/POTCAR +1 -0
  138. data/test/potcar/dummy/H_s/POTCAR +1 -0
  139. data/test/potcar/dummy/He/POTCAR +1 -0
  140. data/test/potcar/dummy/He_GW/POTCAR +1 -0
  141. data/test/potcar/dummy/Hf/POTCAR +1 -0
  142. data/test/potcar/dummy/Hf_pv/POTCAR +1 -0
  143. data/test/potcar/dummy/Hf_sv/POTCAR +1 -0
  144. data/test/potcar/dummy/Hf_sv_GW/POTCAR +1 -0
  145. data/test/potcar/dummy/Hg/POTCAR +1 -0
  146. data/test/potcar/dummy/Ho/POTCAR +1 -0
  147. data/test/potcar/dummy/Ho_3/POTCAR +1 -0
  148. data/test/potcar/dummy/I/POTCAR +1 -0
  149. data/test/potcar/dummy/I_GW/POTCAR +1 -0
  150. data/test/potcar/dummy/In/POTCAR +1 -0
  151. data/test/potcar/dummy/In_d/POTCAR +1 -0
  152. data/test/potcar/dummy/In_d_GW/POTCAR +1 -0
  153. data/test/potcar/dummy/Ir/POTCAR +1 -0
  154. data/test/potcar/dummy/Ir_sv_GW/POTCAR +1 -0
  155. data/test/potcar/dummy/K_pv/POTCAR +1 -0
  156. data/test/potcar/dummy/K_sv/POTCAR +1 -0
  157. data/test/potcar/dummy/K_sv_GW/POTCAR +1 -0
  158. data/test/potcar/dummy/Kr/POTCAR +1 -0
  159. data/test/potcar/dummy/Kr_GW/POTCAR +1 -0
  160. data/test/potcar/dummy/La/POTCAR +1 -0
  161. data/test/potcar/dummy/La_s/POTCAR +1 -0
  162. data/test/potcar/dummy/Li/POTCAR +1 -0
  163. data/test/potcar/dummy/Li_AE_GW/POTCAR +1 -0
  164. data/test/potcar/dummy/Li_GW/POTCAR +1 -0
  165. data/test/potcar/dummy/Li_sv/POTCAR +1 -0
  166. data/test/potcar/dummy/Li_sv_GW/POTCAR +1 -0
  167. data/test/potcar/dummy/Lu/POTCAR +1 -0
  168. data/test/potcar/dummy/Lu_3/POTCAR +1 -0
  169. data/test/potcar/dummy/Mg/POTCAR +1 -0
  170. data/test/potcar/dummy/Mg_GW/POTCAR +1 -0
  171. data/test/potcar/dummy/Mg_pv/POTCAR +1 -0
  172. data/test/potcar/dummy/Mg_pv_GW/POTCAR +1 -0
  173. data/test/potcar/dummy/Mg_sv/POTCAR +1 -0
  174. data/test/potcar/dummy/Mg_sv_GW/POTCAR +1 -0
  175. data/test/potcar/dummy/Mn/POTCAR +1 -0
  176. data/test/potcar/dummy/Mn_GW/POTCAR +1 -0
  177. data/test/potcar/dummy/Mn_pv/POTCAR +1 -0
  178. data/test/potcar/dummy/Mn_sv/POTCAR +1 -0
  179. data/test/potcar/dummy/Mn_sv_GW/POTCAR +1 -0
  180. data/test/potcar/dummy/Mo/POTCAR +1 -0
  181. data/test/potcar/dummy/Mo_pv/POTCAR +1 -0
  182. data/test/potcar/dummy/Mo_sv/POTCAR +1 -0
  183. data/test/potcar/dummy/Mo_sv_GW/POTCAR +1 -0
  184. data/test/potcar/dummy/N/POTCAR +1 -0
  185. data/test/potcar/dummy/N_GW/POTCAR +1 -0
  186. data/test/potcar/dummy/N_GW_new/POTCAR +1 -0
  187. data/test/potcar/dummy/N_h/POTCAR +1 -0
  188. data/test/potcar/dummy/N_s/POTCAR +1 -0
  189. data/test/potcar/dummy/N_s_GW/POTCAR +1 -0
  190. data/test/potcar/dummy/Na/POTCAR +1 -0
  191. data/test/potcar/dummy/Na_pv/POTCAR +1 -0
  192. data/test/potcar/dummy/Na_sv/POTCAR +1 -0
  193. data/test/potcar/dummy/Na_sv_GW/POTCAR +1 -0
  194. data/test/potcar/dummy/Nb_pv/POTCAR +1 -0
  195. data/test/potcar/dummy/Nb_sv/POTCAR +1 -0
  196. data/test/potcar/dummy/Nb_sv_GW/POTCAR +1 -0
  197. data/test/potcar/dummy/Nd/POTCAR +1 -0
  198. data/test/potcar/dummy/Nd_3/POTCAR +1 -0
  199. data/test/potcar/dummy/Ne/POTCAR +1 -0
  200. data/test/potcar/dummy/Ne_GW/POTCAR +1 -0
  201. data/test/potcar/dummy/Ne_GW_soft/POTCAR +1 -0
  202. data/test/potcar/dummy/Ni/POTCAR +1 -0
  203. data/test/potcar/dummy/Ni_GW/POTCAR +1 -0
  204. data/test/potcar/dummy/Ni_pv/POTCAR +1 -0
  205. data/test/potcar/dummy/Ni_sv_GW/POTCAR +1 -0
  206. data/test/potcar/dummy/Np/POTCAR +1 -0
  207. data/test/potcar/dummy/Np_s/POTCAR +1 -0
  208. data/test/potcar/dummy/O/POTCAR +1 -0
  209. data/test/potcar/dummy/O_GW/POTCAR +1 -0
  210. data/test/potcar/dummy/O_GW_new/POTCAR +1 -0
  211. data/test/potcar/dummy/O_h/POTCAR +1 -0
  212. data/test/potcar/dummy/O_s/POTCAR +1 -0
  213. data/test/potcar/dummy/O_s_GW/POTCAR +1 -0
  214. data/test/potcar/dummy/Os/POTCAR +1 -0
  215. data/test/potcar/dummy/Os_pv/POTCAR +1 -0
  216. data/test/potcar/dummy/Os_sv_GW/POTCAR +1 -0
  217. data/test/potcar/dummy/P/POTCAR +1 -0
  218. data/test/potcar/dummy/P_GW/POTCAR +1 -0
  219. data/test/potcar/dummy/P_h/POTCAR +1 -0
  220. data/test/potcar/dummy/Pa/POTCAR +1 -0
  221. data/test/potcar/dummy/Pa_s/POTCAR +1 -0
  222. data/test/potcar/dummy/Pb/POTCAR +1 -0
  223. data/test/potcar/dummy/Pb_d/POTCAR +1 -0
  224. data/test/potcar/dummy/Pb_d_GW/POTCAR +1 -0
  225. data/test/potcar/dummy/Pd/POTCAR +1 -0
  226. data/test/potcar/dummy/Pd_GW/POTCAR +1 -0
  227. data/test/potcar/dummy/Pd_pv/POTCAR +1 -0
  228. data/test/potcar/dummy/Pm/POTCAR +1 -0
  229. data/test/potcar/dummy/Pm_3/POTCAR +1 -0
  230. data/test/potcar/dummy/Po/POTCAR +1 -0
  231. data/test/potcar/dummy/Po_d/POTCAR +1 -0
  232. data/test/potcar/dummy/Pr/POTCAR +1 -0
  233. data/test/potcar/dummy/Pr_3/POTCAR +1 -0
  234. data/test/potcar/dummy/Pt/POTCAR +1 -0
  235. data/test/potcar/dummy/Pt_GW/POTCAR +1 -0
  236. data/test/potcar/dummy/Pt_pv/POTCAR +1 -0
  237. data/test/potcar/dummy/Pt_pv_GW/POTCAR +1 -0
  238. data/test/potcar/dummy/Pt_sv_GW/POTCAR +1 -0
  239. data/test/potcar/dummy/Pu/POTCAR +1 -0
  240. data/test/potcar/dummy/Pu_s/POTCAR +1 -0
  241. data/test/potcar/dummy/README.UPDATES/POTCAR +1 -0
  242. data/test/potcar/dummy/RELEASE_NOTE.txt/POTCAR +1 -0
  243. data/test/potcar/dummy/Ra_sv/POTCAR +1 -0
  244. data/test/potcar/dummy/Rb_pv/POTCAR +1 -0
  245. data/test/potcar/dummy/Rb_sv/POTCAR +1 -0
  246. data/test/potcar/dummy/Rb_sv_GW/POTCAR +1 -0
  247. data/test/potcar/dummy/Re/POTCAR +1 -0
  248. data/test/potcar/dummy/Re_pv/POTCAR +1 -0
  249. data/test/potcar/dummy/Re_sv_GW/POTCAR +1 -0
  250. data/test/potcar/dummy/Rh/POTCAR +1 -0
  251. data/test/potcar/dummy/Rh_GW/POTCAR +1 -0
  252. data/test/potcar/dummy/Rh_pv/POTCAR +1 -0
  253. data/test/potcar/dummy/Rh_pv_GW/POTCAR +1 -0
  254. data/test/potcar/dummy/Rh_sv_GW/POTCAR +1 -0
  255. data/test/potcar/dummy/Rn/POTCAR +1 -0
  256. data/test/potcar/dummy/Ru/POTCAR +1 -0
  257. data/test/potcar/dummy/Ru_pv/POTCAR +1 -0
  258. data/test/potcar/dummy/Ru_pv_GW/POTCAR +1 -0
  259. data/test/potcar/dummy/Ru_sv/POTCAR +1 -0
  260. data/test/potcar/dummy/Ru_sv_GW/POTCAR +1 -0
  261. data/test/potcar/dummy/S/POTCAR +1 -0
  262. data/test/potcar/dummy/S_GW/POTCAR +1 -0
  263. data/test/potcar/dummy/S_h/POTCAR +1 -0
  264. data/test/potcar/dummy/Sb/POTCAR +1 -0
  265. data/test/potcar/dummy/Sb_GW/POTCAR +1 -0
  266. data/test/potcar/dummy/Sb_d_GW/POTCAR +1 -0
  267. data/test/potcar/dummy/Sc/POTCAR +1 -0
  268. data/test/potcar/dummy/Sc_sv/POTCAR +1 -0
  269. data/test/potcar/dummy/Sc_sv_GW/POTCAR +1 -0
  270. data/test/potcar/dummy/Se/POTCAR +1 -0
  271. data/test/potcar/dummy/Se_GW/POTCAR +1 -0
  272. data/test/potcar/dummy/Si/POTCAR +1 -0
  273. data/test/potcar/dummy/Si_GW/POTCAR +1 -0
  274. data/test/potcar/dummy/Si_sv_GW/POTCAR +1 -0
  275. data/test/potcar/dummy/Sm/POTCAR +1 -0
  276. data/test/potcar/dummy/Sm_3/POTCAR +1 -0
  277. data/test/potcar/dummy/Sn/POTCAR +1 -0
  278. data/test/potcar/dummy/Sn_d/POTCAR +1 -0
  279. data/test/potcar/dummy/Sn_d_GW/POTCAR +1 -0
  280. data/test/potcar/dummy/Sr_sv/POTCAR +1 -0
  281. data/test/potcar/dummy/Sr_sv_GW/POTCAR +1 -0
  282. data/test/potcar/dummy/Ta/POTCAR +1 -0
  283. data/test/potcar/dummy/Ta_pv/POTCAR +1 -0
  284. data/test/potcar/dummy/Ta_sv_GW/POTCAR +1 -0
  285. data/test/potcar/dummy/Tb/POTCAR +1 -0
  286. data/test/potcar/dummy/Tb_3/POTCAR +1 -0
  287. data/test/potcar/dummy/Tc/POTCAR +1 -0
  288. data/test/potcar/dummy/Tc_pv/POTCAR +1 -0
  289. data/test/potcar/dummy/Tc_sv/POTCAR +1 -0
  290. data/test/potcar/dummy/Tc_sv_GW/POTCAR +1 -0
  291. data/test/potcar/dummy/Te/POTCAR +1 -0
  292. data/test/potcar/dummy/Te_GW/POTCAR +1 -0
  293. data/test/potcar/dummy/Th/POTCAR +1 -0
  294. data/test/potcar/dummy/Th_s/POTCAR +1 -0
  295. data/test/potcar/dummy/Ti/POTCAR +1 -0
  296. data/test/potcar/dummy/Ti_pv/POTCAR +1 -0
  297. data/test/potcar/dummy/Ti_sv/POTCAR +1 -0
  298. data/test/potcar/dummy/Ti_sv_GW/POTCAR +1 -0
  299. data/test/potcar/dummy/Tl/POTCAR +1 -0
  300. data/test/potcar/dummy/Tl_d/POTCAR +1 -0
  301. data/test/potcar/dummy/Tm/POTCAR +1 -0
  302. data/test/potcar/dummy/Tm_3/POTCAR +1 -0
  303. data/test/potcar/dummy/U/POTCAR +1 -0
  304. data/test/potcar/dummy/U_s/POTCAR +1 -0
  305. data/test/potcar/dummy/V/POTCAR +1 -0
  306. data/test/potcar/dummy/V_pv/POTCAR +1 -0
  307. data/test/potcar/dummy/V_sv/POTCAR +1 -0
  308. data/test/potcar/dummy/V_sv_GW/POTCAR +1 -0
  309. data/test/potcar/dummy/W/POTCAR +1 -0
  310. data/test/potcar/dummy/W_pv/POTCAR +1 -0
  311. data/test/potcar/dummy/W_sv_GW/POTCAR +1 -0
  312. data/test/potcar/dummy/Xe/POTCAR +1 -0
  313. data/test/potcar/dummy/Xe_GW/POTCAR +1 -0
  314. data/test/potcar/dummy/Y_sv/POTCAR +1 -0
  315. data/test/potcar/dummy/Y_sv_GW/POTCAR +1 -0
  316. data/test/potcar/dummy/Yb/POTCAR +1 -0
  317. data/test/potcar/dummy/Yb_2/POTCAR +1 -0
  318. data/test/potcar/dummy/Zn/POTCAR +1 -0
  319. data/test/potcar/dummy/Zn_GW/POTCAR +1 -0
  320. data/test/potcar/dummy/Zn_pv_GW/POTCAR +1 -0
  321. data/test/potcar/dummy/Zn_sv_GW/POTCAR +1 -0
  322. data/test/potcar/dummy/Zr_sv/POTCAR +1 -0
  323. data/test/potcar/dummy/Zr_sv_GW/POTCAR +1 -0
  324. data/test/potcar/dummy/data_base/POTCAR +1 -0
  325. data/test/potcar/test.vasputils +307 -0
  326. data/test/test_incar.rb +45 -5
  327. data/test/test_poscar.rb +97 -24
  328. data/test/test_potcar.rb +1 -22
  329. data/test/test_potcar_concatenater.rb +56 -0
  330. data/test/test_setting.rb +23 -0
  331. data/test/test_vasputils.rb +65 -0
  332. data/vasputils.gemspec +325 -5
  333. metadata +349 -25
  334. data/memo.txt +0 -37
  335. /data/test/poscar/{POSCAR.00 → POSCAR.4-0} +0 -0
@@ -0,0 +1,307 @@
1
+ --- # vim: syntax=yaml
2
+
3
+ potcar_path: test/potcar/dummy
4
+ element_potcar:
5
+ Ac: Ac # 11.0000000000000
6
+ Ag: Ag_pv # 17.0000000000000
7
+ #Al: Al # 3.00000000000000
8
+ #Al: Al_GW # 3.00000000000000
9
+ Al: Al_sv_GW # 11.0000000000000
10
+ Am: Am # 17.0000000000000
11
+ #Ar: Ar # 8.00000000000000
12
+ Ar: Ar_GW # 8.00000000000000
13
+ #As: As # 5.00000000000000
14
+ #As: As_GW # 5.00000000000000
15
+ As: As_d # 15.0000000000000
16
+ #At: At # 7.00000000000000
17
+ At: At_d # 17.0000000000000
18
+ #Au: Au # 11.0000000000000
19
+ #Au: Au_GW # 11.0000000000000
20
+ Au: Au_pv_GW # 17.0000000000000
21
+ B : B # 3.00000000000000
22
+ #B : B_GW # 3.00000000000000
23
+ #B : B_h # 3.00000000000000
24
+ #B : B_s # 3.00000000000000
25
+ Ba: Ba_sv # 10.0000000000000
26
+ #Ba: Ba_sv_GW # 10.0000000000000
27
+ #Be: Be # 2.00000000000000
28
+ #Be: Be_GW # 2.00000000000000
29
+ #Be: Be_sv # 4.00000000000000
30
+ #Be: Be_sv_GW # 4.00000000000000
31
+ #Bi: Bi # 5.00000000000000
32
+ #Bi: Bi_GW # 5.00000000000000
33
+ Bi: Bi_d # 15.0000000000000
34
+ #Bi: Bi_d_GW # 15.0000000000000
35
+ Br: Br # 7.00000000000000
36
+ #Br: Br_GW # 7.00000000000000
37
+ C : C # 4.00000000000000
38
+ #C : C_GW # 4.00000000000000
39
+ #C : C_GW_new # 4.00000000000000
40
+ #C : C_h # 4.00000000000000
41
+ #C : C_s # 4.00000000000000
42
+ #Ca: Ca_pv # 8.00000000000000
43
+ Ca: Ca_sv # 10.0000000000000
44
+ #Ca: Ca_sv_GW # 10.0000000000000
45
+ #Cd: Cd # 12.0000000000000
46
+ #Cd: Cd_GW # 12.0000000000000
47
+ #Cd: Cd_pv_GW # 18.0000000000000
48
+ Cd: Cd_sv_GW # 20.0000000000000
49
+ Ce: Ce # 12.0000000000000
50
+ #Ce: Ce_3 # 11.0000000000000
51
+ #Ce: Ce_GW # 12.0000000000000
52
+ #Ce: Ce_h # 12.0000000000000
53
+ Cl: Cl # 7.00000000000000
54
+ #Cl: Cl_GW # 7.00000000000000
55
+ #Cl: Cl_h # 7.00000000000000
56
+ Cm: Cm # 18.0000000000000
57
+ #Co: Co # 9.00000000000000
58
+ #Co: Co_GW # 9.00000000000000
59
+ #Co: Co_pv # 15.0000000000000
60
+ Co: Co_sv # 17.0000000000000
61
+ #Co: Co_sv_GW # 17.0000000000000
62
+ #Cr: Cr # 6.00000000000000
63
+ #Cr: Cr_pv # 12.0000000000000
64
+ Cr: Cr_sv # 14.0000000000000
65
+ #Cr: Cr_sv_GW # 14.0000000000000
66
+ Cs: Cs_sv # 9.00000000000000
67
+ #Cs: Cs_sv_GW # 9.00000000000000
68
+ #Cu: Cu # 11.0000000000000
69
+ #Cu: Cu_GW # 11.0000000000000
70
+ Cu: Cu_pv # 17.0000000000000
71
+ #Cu: Cu_pv_GW # 17.0000000000000
72
+ Dy: Dy # 20.0000000000000
73
+ #Dy: Dy_3 # 9.00000000000000
74
+ Er: Er # 22.0000000000000
75
+ #Er: Er_2 # 8.00000000000000
76
+ #Er: Er_3 # 9.00000000000000
77
+ Eu: Eu # 17.0000000000000
78
+ #Eu: Eu_2 # 8.00000000000000
79
+ #Eu: Eu_3 # 9.00000000000000
80
+ F : F # 7.00000000000000
81
+ #F : F_GW # 7.00000000000000
82
+ #F : F_GW_new # 7.00000000000000
83
+ #F : F_h # 7.00000000000000
84
+ #F : F_s # 7.00000000000000
85
+ #Fe: Fe # 8.00000000000000
86
+ #Fe: Fe_GW # 8.00000000000000
87
+ #Fe: Fe_pv # 14.0000000000000
88
+ Fe: Fe_sv # 16.0000000000000
89
+ #Fe: Fe_sv_GW # 16.0000000000000
90
+ Fr: Fr_sv # 9.00000000000000
91
+ #Ga: Ga # 3.00000000000000
92
+ #Ga: Ga_GW # 3.00000000000000
93
+ #Ga: Ga_d # 13.0000000000000
94
+ #Ga: Ga_d_GW # 13.0000000000000
95
+ #Ga: Ga_h # 13.0000000000000
96
+ #Ga: Ga_pv_GW # 19.0000000000000
97
+ Ga: Ga_sv_GW # 21.0000000000000
98
+ Gd: Gd # 18.0000000000000
99
+ #Gd: Gd_3 # 9.00000000000000
100
+ #Ge: Ge # 4.00000000000000
101
+ #Ge: Ge_GW # 4.00000000000000
102
+ #Ge: Ge_d # 14.0000000000000
103
+ #Ge: Ge_d_GW # 14.0000000000000
104
+ #Ge: Ge_h # 14.0000000000000
105
+ Ge: Ge_sv_GW # 22.0000000000000
106
+ #H : H.5 # 0.500000000000000
107
+ #H : H.25 # 0.250000000000000
108
+ #H : H.33 # 0.330000000000000
109
+ #H : H.42 # 0.420000000000000
110
+ #H : H.58 # 0.580000000000000
111
+ #H : H.66 # 0.660000000000000
112
+ #H : H.75 # 0.750000000000000
113
+ H : H # 1.00000000000000
114
+ #H : H1.5 # 1.50000000000000
115
+ #H : H1.25 # 1.25000000000000
116
+ #H : H1.33 # 1.33000000000000
117
+ #H : H1.66 # 1.66000000000000
118
+ #H : H1.75 # 1.75000000000000
119
+ #H : H_AE # 1.0000000000000000
120
+ #H : H_GW # 1.00000000000000
121
+ #H : H_h # 1.00000000000000
122
+ #H : H_h_GW # 1.00000000000000
123
+ #H : H_s # 1.00000000000000
124
+ He: He # 2.00000000000000
125
+ #He: He_GW # 2.00000000000000
126
+ #Hf: Hf # 4.00000000000000
127
+ #Hf: Hf_pv # 10.0000000000000
128
+ Hf: Hf_sv # 12.0000000000000
129
+ #Hf: Hf_sv_GW # 12.0000000000000
130
+ Hg: Hg # 12.0000000000000
131
+ Ho: Ho # 21.0000000000000
132
+ #Ho: Ho_3 # 9.00000000000000
133
+ I : I # 7.00000000000000
134
+ #I : I_GW # 7.00000000000000
135
+ #In: In # 3.00000000000000
136
+ In: In_d # 13.0000000000000
137
+ #In: In_d_GW # 13.0000000000000
138
+ #Ir: Ir # 9.00000000000000
139
+ Ir: Ir_sv_GW # 17.0000000000000
140
+ #K : K_pv # 7.00000000000000
141
+ K : K_sv # 9.00000000000000
142
+ #K : K_sv_GW # 9.00000000000000
143
+ Kr: Kr # 8.00000000000000
144
+ #Kr: Kr_GW # 8.00000000000000
145
+ La: La # 11.0000000000000
146
+ #La: La_s # 9.00000000000000
147
+ #Li: Li # 1.00000000000000
148
+ #Li: Li_AE_GW # 3.00000000000000
149
+ #Li: Li_GW # 1.00000000000000
150
+ Li: Li_sv # 3.00000000000000
151
+ #Li: Li_sv_GW # 3.00000000000000
152
+ Lu: Lu # 25.0000000000000
153
+ #Lu: Lu_3 # 9.00000000000000
154
+ #Mg: Mg # 2.00000000000000
155
+ #Mg: Mg_GW # 2.00000000000000
156
+ #Mg: Mg_pv # 8.00000000000000
157
+ #Mg: Mg_pv_GW # 8.00000000000000
158
+ Mg: Mg_sv # 10.0000000000000
159
+ #Mg: Mg_sv_GW # 10.0000000000000
160
+ #Mn: Mn # 7.00000000000000
161
+ #Mn: Mn_GW # 7.00000000000000
162
+ #Mn: Mn_pv # 13.0000000000000
163
+ Mn: Mn_sv # 15.0000000000000
164
+ #Mn: Mn_sv_GW # 15.0000000000000
165
+ #Mo: Mo # 6.00000000000000
166
+ #Mo: Mo_pv # 12.0000000000000
167
+ Mo: Mo_sv # 14.0000000000000
168
+ #Mo: Mo_sv_GW # 14.0000000000000
169
+ N : N # 5.00000000000000
170
+ #N : N_GW # 5.00000000000000
171
+ #N : N_GW_new # 5.00000000000000
172
+ #N : N_h # 5.00000000000000
173
+ #N : N_s # 5.00000000000000
174
+ #N : N_s_GW # 5.00000000000000
175
+ #Na: Na # 1.00000000000000
176
+ #Na: Na_pv # 7.00000000000000
177
+ Na: Na_sv # 9.00000000000000
178
+ #Na: Na_sv_GW # 9.00000000000000
179
+ #Nb: Nb_pv # 11.0000000000000
180
+ Nb: Nb_sv # 13.0000000000000
181
+ #Nb: Nb_sv_GW # 13.0000000000000
182
+ Nd: Nd # 14.0000000000000
183
+ #Nd: Nd_3 # 11.0000000000000
184
+ Ne: Ne # 8.00000000000000
185
+ #Ne: Ne_GW # 8.00000000000000
186
+ #Ne: Ne_GW_soft # 8.00000000000000
187
+ #Ni: Ni # 10.0000000000000
188
+ #Ni: Ni_GW # 10.0000000000000
189
+ #Ni: Ni_pv # 16.0000000000000
190
+ Ni: Ni_sv_GW # 18.0000000000000
191
+ Np: Np # 15.0000000000000
192
+ #Np: Np_s # 15.0000000000000
193
+ O : O # 6.00000000000000
194
+ #O : O_GW # 6.00000000000000
195
+ #O : O_GW_new # 6.00000000000000
196
+ #O : O_h # 6.00000000000000
197
+ #O : O_s # 6.00000000000000
198
+ #O : O_s_GW # 6.00000000000000
199
+ #Os: Os # 8.00000000000000
200
+ #Os: Os_pv # 14.0000000000000
201
+ Os: Os_sv_GW # 16.0000000000000
202
+ P : P # 5.00000000000000
203
+ #P : P_GW # 5.00000000000000
204
+ #P : P_h # 5.00000000000000
205
+ Pa: Pa # 13.0000000000000
206
+ #Pa: Pa_s # 11.0000000000000
207
+ #Pb: Pb # 4.00000000000000
208
+ Pb: Pb_d # 14.0000000000000
209
+ #Pb: Pb_d_GW # 14.0000000000000
210
+ #Pd: Pd # 10.0000000000000
211
+ #Pd: Pd_GW # 10.0000000000000
212
+ Pd: Pd_pv # 16.0000000000000
213
+ Pm: Pm # 15.0000000000000
214
+ #Pm: Pm_3 # 11.0000000000000
215
+ #Po: Po # 6.00000000000000
216
+ Po: Po_d # 16.0000000000000
217
+ Pr: Pr # 13.0000000000000
218
+ #Pr: Pr_3 # 11.0000000000000
219
+ #Pt: Pt # 10.0000000000000
220
+ #Pt: Pt_GW # 10.0000000000000
221
+ #Pt: Pt_pv # 16.0000000000000
222
+ #Pt: Pt_pv_GW # 16.0000000000000
223
+ Pt: Pt_sv_GW # 18.0000000000000
224
+ Pu: Pu # 16.0000000000000
225
+ #Pu: Pu_s # 16.0000000000000
226
+ Ra: Ra_sv # 10.0000000000000
227
+ #Rb: Rb_pv # 7.00000000000000
228
+ Rb: Rb_sv # 9.00000000000000
229
+ #Rb: Rb_sv_GW # 9.00000000000000
230
+ #Re: Re # 7.00000000000000
231
+ #Re: Re_pv # 13.0000000000000
232
+ Re: Re_sv_GW # 15.0000000000000
233
+ #Rh: Rh # 9.00000000000000
234
+ #Rh: Rh_GW # 9.00000000000000
235
+ #Rh: Rh_pv # 15.0000000000000
236
+ #Rh: Rh_pv_GW # 15.0000000000000
237
+ Rh: Rh_sv_GW # 17.0000000000000
238
+ Rn: Rn # 8.00000000000000
239
+ #Ru: Ru # 8.00000000000000
240
+ #Ru: Ru_pv # 14.0000000000000
241
+ #Ru: Ru_pv_GW # 14.0000000000000
242
+ Ru: Ru_sv # 16.0000000000000
243
+ #Ru: Ru_sv_GW # 16.0000000000000
244
+ S : S # 6.00000000000000
245
+ #S : S_GW # 6.00000000000000
246
+ #S : S_h # 6.00000000000000
247
+ #Sb: Sb # 5.00000000000000
248
+ #Sb: Sb_GW # 5.00000000000000
249
+ Sb: Sb_d_GW # 15.0000000000000
250
+ #Sc: Sc # 3.00000000000000
251
+ Sc: Sc_sv # 11.0000000000000
252
+ #Sc: Sc_sv_GW # 11.0000000000000
253
+ Se: Se # 6.00000000000000
254
+ #Se: Se_GW # 6.00000000000000
255
+ #Si: Si # 4.00000000000000
256
+ #Si: Si_GW # 4.00000000000000
257
+ Si: Si_sv_GW # 12.0000000000000
258
+ Sm: Sm # 16.0000000000000
259
+ #Sm: Sm_3 # 11.0000000000000
260
+ #Sn: Sn # 4.00000000000000
261
+ Sn: Sn_d # 14.0000000000000
262
+ #Sn: Sn_d_GW # 14.0000000000000
263
+ Sr: Sr_sv # 10.0000000000000
264
+ #Sr: Sr_sv_GW # 10.0000000000000
265
+ #Ta: Ta # 5.00000000000000
266
+ #Ta: Ta_pv # 11.0000000000000
267
+ Ta: Ta_sv_GW # 13.0000000000000
268
+ Tb: Tb # 19.0000000000000
269
+ #Tb: Tb_3 # 9.00000000000000
270
+ #Tc: Tc # 7.00000000000000
271
+ #Tc: Tc_pv # 13.0000000000000
272
+ Tc: Tc_sv # 15.0000000000000
273
+ #Tc: Tc_sv_GW # 15.0000000000000
274
+ Te: Te # 6.00000000000000
275
+ #Te: Te_GW # 6.00000000000000
276
+ Th: Th # 12.0000000000000
277
+ #Th: Th_s # 10.0000000000000
278
+ #Ti: Ti # 4.00000000000000
279
+ #Ti: Ti_pv # 10.0000000000000
280
+ Ti: Ti_sv # 12.0000000000000
281
+ #Ti: Ti_sv_GW # 12.0000000000000
282
+ #Tl: Tl # 3.00000000000000
283
+ Tl: Tl_d # 13.0000000000000
284
+ Tm: Tm # 23.0000000000000
285
+ #Tm: Tm_3 # 9.00000000000000
286
+ U : U # 14.0000000000000
287
+ #U : U_s # 14.0000000000000
288
+ #V : V # 5.00000000000000
289
+ #V : V_pv # 11.0000000000000
290
+ V : V_sv # 13.0000000000000
291
+ #V : V_sv_GW # 13.0000000000000
292
+ #W : W # 6.00000000000000
293
+ #W : W_pv # 12.0000000000000
294
+ W : W_sv_GW # 14.0000000000000
295
+ Xe: Xe # 8.00000000000000
296
+ #Xe: Xe_GW # 8.00000000000000
297
+ Y : Y_sv # 11.0000000000000
298
+ #Y : Y_sv_GW # 11.0000000000000
299
+ Yb: Yb # 24.0000000000000
300
+ #Yb: Yb_2 # 8.00000000000000
301
+ #Zn: Zn # 12.0000000000000
302
+ #Zn: Zn_GW # 12.0000000000000
303
+ #Zn: Zn_pv_GW # 18.0000000000000
304
+ Zn: Zn_sv_GW # 20.0000000000000
305
+ Zr: Zr_sv # 12.0000000000000
306
+ #Zr: Zr_sv_GW # 12.0000000000000
307
+
data/test/test_incar.rb CHANGED
@@ -117,11 +117,51 @@ class TC_Incar < Test::Unit::TestCase
117
117
  assert_raise(Errno::ENOENT){VaspUtils::Incar.load_file("")}
118
118
  end
119
119
 
120
- #def test_dump
121
- #
122
- #
123
- # TODO
124
- #end
120
+ def test_dump
121
+ pairs = {
122
+ "SYSTEM" => "dummy",
123
+ "PREC" => "High",
124
+ "ENCUT" => "400",
125
+ "EDIFF" => "1.0e-05",
126
+ "LREAL" => ".TRUE.",
127
+ }
128
+
129
+ assert_equal(
130
+ [
131
+ "SYSTEM = dummy",
132
+ "PREC = High",
133
+ "ENCUT = 400",
134
+ "EDIFF = 1.0e-05",
135
+ "LREAL = .TRUE.",
136
+ ].join("\n"),
137
+ VaspUtils::Incar.dump(pairs)
138
+ )
125
139
 
140
+ assert_equal(
141
+ [
142
+ "SYSTEM = dummy",
143
+ "PREC = High",
144
+ "ENCUT = 400",
145
+ "EDIFF = 1.0e-05",
146
+ "LREAL = .TRUE.",
147
+ ].join("\n"),
148
+ VaspUtils::Incar.dump(pairs, nil)
149
+ )
150
+
151
+ outfile = "test/incar/tmp.incar"
152
+ FileUtils.rm outfile if File.exist? outfile
153
+ File.open(outfile, "w") { |io| VaspUtils::Incar.dump(pairs, io) }
154
+ assert_equal(
155
+ [
156
+ "SYSTEM = dummy",
157
+ "PREC = High",
158
+ "ENCUT = 400",
159
+ "EDIFF = 1.0e-05",
160
+ "LREAL = .TRUE.",
161
+ ].join("\n"),
162
+ File.open(outfile).read
163
+ )
164
+ FileUtils.rm outfile if File.exist? outfile
165
+ end
126
166
  end
127
167
 
data/test/test_poscar.rb CHANGED
@@ -46,7 +46,7 @@ class TC_Poscar < Test::Unit::TestCase
46
46
  cell = Cell.new(axes, atoms)
47
47
  cell.comment = "test"
48
48
  io = StringIO.new
49
- VaspUtils::Poscar.dump(cell, [0,1], io)
49
+ VaspUtils::Poscar.dump(cell, [0,1], io, 4)
50
50
  io.rewind
51
51
  corrects = [
52
52
  "test\n",
@@ -66,6 +66,7 @@ class TC_Poscar < Test::Unit::TestCase
66
66
  end
67
67
  assert_equal(corrects.size, lines.size)
68
68
 
69
+ # vasp 4
69
70
  atoms = [
70
71
  Atom.new(0, [0.1, 0.2, 0.3], "atom0", [false, true , true ]),
71
72
  Atom.new(1, [0.2, 0.3, 0.4], "atom1", [false, false, true ]),
@@ -74,7 +75,7 @@ class TC_Poscar < Test::Unit::TestCase
74
75
  cell = Cell.new(axes, atoms)
75
76
  cell.comment = "test"
76
77
  io = StringIO.new
77
- VaspUtils::Poscar.dump(cell, [0,1], io)
78
+ VaspUtils::Poscar.dump(cell, [0,1], io, 4)
78
79
  io.rewind
79
80
  corrects = [
80
81
  "test\n",
@@ -94,12 +95,73 @@ class TC_Poscar < Test::Unit::TestCase
94
95
  assert_equal(cor, lines[index], "line: #{index}")
95
96
  end
96
97
  assert_equal(corrects.size, lines.size)
98
+
99
+ atoms = [
100
+ Atom.new(0, [0.1, 0.2, 0.3], "atom0", [false, true , true ]),
101
+ Atom.new(1, [0.2, 0.3, 0.4], "atom1", [false, false, true ]),
102
+ Atom.new(0, [0.3, 0.4, 0.5], "atom2", [false, false, false]),
103
+ ]
104
+ cell = Cell.new(axes, atoms)
105
+ cell.comment = "test"
106
+ io = StringIO.new
107
+ VaspUtils::Poscar.dump(cell, [0,1], io, 4)
108
+ io.rewind
109
+ corrects = [
110
+ "test\n",
111
+ "1.0\n",
112
+ " 1.000000000000000 0.000000000000000 0.000000000000000\n",
113
+ " 0.000000000000000 1.000000000000000 0.000000000000000\n",
114
+ " 0.000000000000000 0.000000000000000 1.000000000000000\n",
115
+ "2 1\n",
116
+ "Selective dynamics\n",
117
+ "Direct\n",
118
+ " 0.100000000000000 0.200000000000000 0.300000000000000 F T T\n",
119
+ " 0.300000000000000 0.400000000000000 0.500000000000000 F F F\n",
120
+ " 0.200000000000000 0.300000000000000 0.400000000000000 F F T\n",
121
+ ]
122
+ lines = io.readlines
123
+ corrects.each_with_index do |cor, index|
124
+ assert_equal(cor, lines[index], "line: #{index}")
125
+ end
126
+ assert_equal(corrects.size, lines.size)
127
+ # vasp 5
128
+ atoms = [
129
+ Atom.new("Li", [0.1, 0.2, 0.3], "atom0", [false, true , true ]),
130
+ Atom.new("O" , [0.2, 0.3, 0.4], "atom1", [false, false, true ]),
131
+ Atom.new("Li", [0.3, 0.4, 0.5], "atom2", [false, false, false]),
132
+ ]
133
+ cell = Cell.new(axes, atoms)
134
+ cell.comment = "test"
135
+ io = StringIO.new
136
+ VaspUtils::Poscar.dump(cell, ["Li", "O"], io, 5)
137
+ io.rewind
138
+ corrects = [
139
+ "test\n",
140
+ "1.0\n",
141
+ " 1.000000000000000 0.000000000000000 0.000000000000000\n",
142
+ " 0.000000000000000 1.000000000000000 0.000000000000000\n",
143
+ " 0.000000000000000 0.000000000000000 1.000000000000000\n",
144
+ "Li O\n",
145
+ "2 1\n",
146
+ "Selective dynamics\n",
147
+ "Direct\n",
148
+ " 0.100000000000000 0.200000000000000 0.300000000000000 F T T\n",
149
+ " 0.300000000000000 0.400000000000000 0.500000000000000 F F F\n",
150
+ " 0.200000000000000 0.300000000000000 0.400000000000000 F F T\n",
151
+ ]
152
+ lines = io.readlines
153
+ corrects.each_with_index do |cor, index|
154
+ assert_equal(cor, lines[index], "line: #{index}")
155
+ end
156
+ assert_equal(corrects.size, lines.size)
157
+
97
158
  end
98
159
 
99
160
  def test_parse
100
161
  io = StringIO.new
101
162
  assert_raises(VaspUtils::Poscar::ParseError){ VaspUtils::Poscar.parse(io) }
102
163
 
164
+ # vasp 4 style
103
165
  io = StringIO.new
104
166
  io.puts "sample0"
105
167
  io.puts "1.0"
@@ -129,6 +191,7 @@ class TC_Poscar < Test::Unit::TestCase
129
191
  assert_equal(
130
192
  Atom.new(2, [0.5, 0.5, 0.0], "#O--003"), cell.atoms[2])
131
193
 
194
+ # vasp 4 style and selective dynamics
132
195
  io = StringIO.new
133
196
  io.puts "sample1"
134
197
  io.puts "2.0"
@@ -165,10 +228,41 @@ class TC_Poscar < Test::Unit::TestCase
165
228
  assert_equal(
166
229
  Atom.new(2, [0.5, 0.5, 0.5], "#O--004", [true, true, true]),
167
230
  cell.atoms[3])
231
+
232
+ # vasp 5 style
233
+ io = StringIO.new
234
+ io.puts "sample0"
235
+ io.puts "1.0"
236
+ io.puts " 1.0 0.0 0.0"
237
+ io.puts " 0.0 1.0 0.0"
238
+ io.puts " 0.0 0.0 1.0"
239
+ io.puts " Li Ge O"
240
+ io.puts " 1 1 1"
241
+ io.puts "Direct"
242
+ io.puts " 0.0 0.0 0.0 #Li-001"
243
+ io.puts " 0.5 0.0 0.0 #Ge-002"
244
+ io.puts " 0.5 0.5 0.0 #O--003"
245
+ io.rewind
246
+ cell = VaspUtils::Poscar.parse(io)
247
+ assert_equal("sample0", cell.comment)
248
+ assert_equal(
249
+ LatticeAxes.new( [
250
+ [1.0, 0.0, 0.0 ],
251
+ [0.0, 1.0, 0.0 ],
252
+ [0.0, 0.0, 1.0 ],
253
+ ]),
254
+ cell.axes
255
+ )
256
+ assert_equal(
257
+ Atom.new("Li", [0.0, 0.0, 0.0], "#Li-001"), cell.atoms[0])
258
+ assert_equal(
259
+ Atom.new("Ge", [0.5, 0.0, 0.0], "#Ge-002"), cell.atoms[1])
260
+ assert_equal(
261
+ Atom.new("O", [0.5, 0.5, 0.0], "#O--003"), cell.atoms[2])
168
262
  end
169
263
 
170
264
  def test_load_file
171
- cell = VaspUtils::Poscar.load_file("test/poscar/POSCAR.00")
265
+ cell = VaspUtils::Poscar.load_file("test/poscar/POSCAR.4-0")
172
266
  assert_equal("sample0", cell.comment)
173
267
  assert_equal(
174
268
  LatticeAxes.new( [
@@ -185,26 +279,5 @@ class TC_Poscar < Test::Unit::TestCase
185
279
  assert_equal(
186
280
  Atom.new(2, [0.5, 0.5, 0.0], "#O--003"), cell.atoms[2])
187
281
 
188
- #cell = VaspUtils::Poscar.load_file("test/poscar/POSCAR.02")
189
- #assert_equal("sample0", cell.comment)
190
- #assert_in_delta( 7.1028554188641708, cell.axes[0][0], $tolerance)
191
- #assert_in_delta(-0.0000000169534433, cell.axes[0][1], $tolerance)
192
- #assert_in_delta(-0.0000000169534428, cell.axes[0][2], $tolerance)
193
- #assert_in_delta( 0.0000001136137521, cell.axes[1][0], $tolerance)
194
- #assert_in_delta( 7.1028554188641725, cell.axes[1][1], $tolerance)
195
- #assert_in_delta(-0.0000000169534433, cell.axes[1][2], $tolerance)
196
- #assert_in_delta( 0.0000001136137521, cell.axes[2][0], $tolerance)
197
- #assert_in_delta( 0.0000001136137521, cell.axes[2][1], $tolerance)
198
- #assert_in_delta( 7.1028554188641725, cell.axes[2][2], $tolerance)
199
- #assert_equal(0, cell.atoms[0].element)
200
- #assert_equal(0.0395891220708791, cell.atoms[0].position[0])
201
- #assert_equal(0.0395891220708791, cell.atoms[0].position[1])
202
- #assert_equal(0.0395891220708791, cell.atoms[0].position[2])
203
-
204
282
  end
205
-
206
- #def setup
207
- # #@pp02 = VaspUtils::Poscar.new("test/poscar/POSCAR.shirai")
208
- #end
209
-
210
283
  end
data/test/test_potcar.rb CHANGED
@@ -3,6 +3,7 @@
3
3
  require "test/unit"
4
4
  require "vasputils.rb"
5
5
  require "vasputils/potcar.rb"
6
+ require "vasputils/setting.rb"
6
7
 
7
8
  class TC_Potcar < Test::Unit::TestCase
8
9
 
@@ -40,27 +41,5 @@ class TC_Potcar < Test::Unit::TestCase
40
41
  assert_equal( correct, @p2[:elements])
41
42
  end
42
43
 
43
- #def test_self_elements
44
- # assert_equal([ "Li", "Ge", "O" ], VaspUtils::Potcar.elements( @p0 ))
45
- # assert_equal([ "Li", "Ge", "O" ], VaspUtils::Potcar.elements( @p1 ))
46
- # correct = [
47
- # "Ac", "Ac", "Ag", "Al", "Al", "Ar", "As", "Au", "B", "B", "B", "Ba",
48
- # "Be", "Be", "Bi", "Bi", "Br", "C", "C", "C", "Ca", "Ca", "Cd", "Ce",
49
- # "Ce", "Cl", "Cl", "Co", "Cr", "Cr", "Cs", "Cu", "Cu", "Dy",
50
- # "Er", "Er", "Eu", "Eu", "F", "F", "F", "Fe", "Fe", "Ga", "Ga", "Ga",
51
- # "Gd", "Gd", "Ge", "Ge", "Ge", "H", "H", "H", "H", "H", "H", "He",
52
- # "Hf", "Hf", "Hg", "Ho", "I", "In", "In", "Ir", "K", "K", "Kr",
53
- # "La", "La", "Li", "Li", "Lu", "Lu", "Mg", "Mg", "Mn", "Mn",
54
- # "Mo", "Mo", "N", "N", "N", "Na", "Na", "Na", "Nb", "Nb", "Nd", "Nd",
55
- # "Ne", "Ni", "Ni", "Np", "Np", "O", "O", "O", "Os", "Os", "P", "P",
56
- # "Pa", "Pa", "Pb", "Pb", "Pd", "Pd", "Pm", "Pm", "Pr", "Pr", "Pt",
57
- # "Pu", "Pu", "Rb", "Rb", "Re", "Re", "Rh", "Rh", "Ru", "Ru", "S", "S",
58
- # "Sb", "Sc", "Se", "Si", "Si", "Sm", "Sm", "Sn", "Sn", "Sr",
59
- # "Ta", "Ta", "Tb", "Tc", "Tc", "Te", "Th", "Th", "Ti", "Ti", "Ti",
60
- # "Tl", "Tl", "Tm", "Tm", "U", "U", "V", "V", "V", "W", "W", "X", "Y",
61
- # "Yb", "Yb", "Zn", "Zr", "Zr"]
62
- # assert_equal( correct, VaspUtils::Potcar.elements( @p2 ))
63
- #end
64
-
65
44
  end
66
45
 
@@ -0,0 +1,56 @@
1
+ #! /usr/bin/env ruby
2
+ # coding: utf-8
3
+
4
+ require "test/unit"
5
+ require "vasputils.rb"
6
+ #require "vasputils/setting.rb"
7
+ #require "vasputils/potcar/concatenater.rb"
8
+
9
+ class VaspUtils::Potcar::Concatenater
10
+ public :dump
11
+ end
12
+
13
+ class TC_Concatenater < Test::Unit::TestCase
14
+ def setup
15
+ settings = VaspUtils::Setting.new("test/potcar/test.vasputils")
16
+ potcar_path = settings["potcar_path"]
17
+ elem_potcar = settings["element_potcar"]
18
+
19
+ @c = VaspUtils::Potcar::Concatenater.new(potcar_path, elem_potcar)
20
+ end
21
+
22
+ def test_dump
23
+ # concatenating
24
+ assert_equal(
25
+ "H\n",
26
+ @c.dump(["H"])
27
+ )
28
+ assert_equal(
29
+ "H\nLi_sv\n",
30
+ @c.dump(["H", "Li"])
31
+ )
32
+ assert_raise(VaspUtils::Potcar::Concatenater::NoPotcarError){@c.dump(["H", "Li", "not_exist_element"])}
33
+
34
+
35
+ # return string if io is nil.
36
+ assert_equal(
37
+ "H\n",
38
+ @c.dump(["H"], nil)
39
+ )
40
+
41
+ # write io
42
+ outfile = "test/potcar/tmp.POTCAR"
43
+ FileUtils.rm(outfile) if File.exist? outfile
44
+ File.open(outfile, "w") do |io|
45
+ @c.dump(["H"], io)
46
+ end
47
+ assert_equal(
48
+ "H\n",
49
+ File.read(outfile)
50
+ )
51
+
52
+ FileUtils.rm(outfile) if File.exist? outfile
53
+ end
54
+
55
+ end
56
+
@@ -0,0 +1,23 @@
1
+ #! /usr/bin/env ruby
2
+ # coding: utf-8
3
+
4
+ require "test/unit"
5
+ require "vasputils/setting.rb"
6
+
7
+ class TC_Setting < Test::Unit::TestCase
8
+ def setup
9
+ @s = VaspUtils::Setting.new("example/dot.vasputils")
10
+ end
11
+
12
+ def test_initialize
13
+ assert_raise(Errno::ENOENT){VaspUtils::Setting.new("not_exist_file")}
14
+ end
15
+
16
+ def test_get
17
+ #assert_raise(VaspUtils::Setting::NoEntryError){@s.get("no_entory_key")}
18
+ #assert_equal("/usr/local/calc/potcar/potpaw_PBE.52", @s.get("potcar_dir"))
19
+ assert_raise(VaspUtils::Setting::NoEntryError){@s["no_entory_key"]}
20
+ assert_equal("/usr/local/calc/potcar/potpaw_PBE.52", @s["potcar_dir"])
21
+ end
22
+ end
23
+