vasputils 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
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
+