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.
- data/CHANGES +49 -28
- data/Gemfile +10 -9
- data/VERSION +1 -1
- data/{test/vaspgeometryoptimizer/ended-Iter1/try00/CONTCAR → bin/changeincar} +0 -0
- data/bin/checkvasp +106 -75
- data/bin/genincar +4 -4
- data/bin/genkpoints +13 -13
- data/bin/genpotcar +2 -2
- data/bin/latticeconstants +10 -12
- data/bin/qsubvasp +63 -80
- data/bin/resetvaspdir +51 -0
- data/bin/resetvaspgeomopt +73 -0
- data/bin/runvasp +42 -49
- data/bin/runvaspdir +19 -0
- data/bin/runvaspgeomopt +19 -0
- data/bin/showvaspdir +171 -0
- data/bin/showvaspgeomopt +83 -0
- data/bin/symposcar +89 -113
- data/bin/varycondition +28 -0
- data/example/dot.vasputils +26 -232
- data/lib/vasputils/conditionvarier.rb +157 -0
- data/lib/vasputils/incar.rb +40 -43
- data/lib/vasputils/kpoints.rb +31 -33
- data/lib/vasputils/outcar.rb +53 -53
- data/lib/vasputils/poscar.rb +148 -150
- data/lib/vasputils/potcar/concatenater.rb +22 -22
- data/lib/vasputils/potcar.rb +12 -12
- data/lib/vasputils/setting.rb +22 -22
- data/lib/vasputils/vaspdir.rb +199 -86
- data/lib/vasputils/vaspgeometryoptimizer.rb +233 -100
- data/lib/vasputils.rb +7 -65
- data/test/conditionanalyzer/00/POSCAR +8 -0
- data/test/conditionanalyzer/00/encut400_k444/CONTCAR +8 -0
- data/test/conditionanalyzer/00/encut400_k444/INCAR +28 -0
- data/test/conditionanalyzer/00/encut400_k444/KPOINTS +6 -0
- data/test/conditionanalyzer/00/encut400_k444/OUTCAR +1436 -0
- data/test/conditionanalyzer/00/encut400_k444/POSCAR +8 -0
- data/test/conditionanalyzer/00/encut400_k444/POTCAR +16 -0
- data/test/conditionanalyzer/00/encut400_k555/CONTCAR +8 -0
- data/test/conditionanalyzer/00/encut400_k555/INCAR +28 -0
- data/test/conditionanalyzer/00/encut400_k555/KPOINTS +6 -0
- data/test/conditionanalyzer/00/encut400_k555/OUTCAR +1436 -0
- data/test/conditionanalyzer/00/encut400_k555/POSCAR +8 -0
- data/test/conditionanalyzer/00/encut400_k555/POTCAR +16 -0
- data/test/conditionanalyzer/00/encut500_k444/CONTCAR +8 -0
- data/test/conditionanalyzer/00/encut500_k444/INCAR +28 -0
- data/test/conditionanalyzer/00/encut500_k444/KPOINTS +6 -0
- data/test/conditionanalyzer/00/encut500_k444/OUTCAR +1436 -0
- data/test/conditionanalyzer/00/encut500_k444/POSCAR +8 -0
- data/test/conditionanalyzer/00/encut500_k444/POTCAR +16 -0
- data/test/conditionanalyzer/00/encut500_k555/CONTCAR +8 -0
- data/test/conditionanalyzer/00/encut500_k555/INCAR +28 -0
- data/test/conditionanalyzer/00/encut500_k555/KPOINTS +6 -0
- data/test/conditionanalyzer/00/encut500_k555/OUTCAR +1436 -0
- data/test/conditionanalyzer/00/encut500_k555/POSCAR +8 -0
- data/test/conditionanalyzer/00/encut500_k555/POTCAR +16 -0
- data/test/{vaspkpointsfinder/01-01-01/try00 → conditionanalyzer/01/00-original}/INCAR +3 -3
- data/test/conditionanalyzer/01/00-original/KPOINTS +6 -0
- data/test/conditionanalyzer/01/00-original/POSCAR +10 -0
- data/test/conditionanalyzer/01/01-ENCUT/1000/try02/CONTCAR +13 -0
- data/test/conditionanalyzer/01/01-ENCUT/1000/try02/INCAR +17 -0
- data/test/conditionanalyzer/01/01-ENCUT/1000/try02/KPOINTS +6 -0
- data/test/conditionanalyzer/01/01-ENCUT/1000/try02/OUTCAR +1692 -0
- data/test/conditionanalyzer/01/01-ENCUT/1000/try02/POSCAR +13 -0
- data/test/conditionanalyzer/01/01-ENCUT/1200/try02/CONTCAR +13 -0
- data/test/conditionanalyzer/01/01-ENCUT/1200/try02/INCAR +17 -0
- data/test/conditionanalyzer/01/01-ENCUT/1200/try02/KPOINTS +6 -0
- data/test/conditionanalyzer/01/01-ENCUT/1200/try02/OUTCAR +1692 -0
- data/test/conditionanalyzer/01/01-ENCUT/1200/try02/POSCAR +13 -0
- data/test/conditionanalyzer/01/01-ENCUT/1500/try02/CONTCAR +13 -0
- data/test/conditionanalyzer/01/01-ENCUT/1500/try02/INCAR +17 -0
- data/test/conditionanalyzer/01/01-ENCUT/1500/try02/KPOINTS +6 -0
- data/test/conditionanalyzer/01/01-ENCUT/1500/try02/OUTCAR +1742 -0
- data/test/conditionanalyzer/01/01-ENCUT/1500/try02/POSCAR +13 -0
- data/test/conditionanalyzer/01/01-ENCUT/500/try05/CONTCAR +13 -0
- data/test/conditionanalyzer/01/01-ENCUT/500/try05/INCAR +17 -0
- data/test/conditionanalyzer/01/01-ENCUT/500/try05/KPOINTS +6 -0
- data/test/conditionanalyzer/01/01-ENCUT/500/try05/OUTCAR +1644 -0
- data/test/conditionanalyzer/01/01-ENCUT/500/try05/POSCAR +13 -0
- data/test/conditionanalyzer/01/01-ENCUT/600/try01/CONTCAR +13 -0
- data/test/conditionanalyzer/01/01-ENCUT/600/try01/INCAR +17 -0
- data/test/conditionanalyzer/01/01-ENCUT/600/try01/KPOINTS +6 -0
- data/test/conditionanalyzer/01/01-ENCUT/600/try01/OUTCAR +1644 -0
- data/test/conditionanalyzer/01/01-ENCUT/600/try01/POSCAR +13 -0
- data/test/conditionanalyzer/01/01-ENCUT/700/try01/CONTCAR +13 -0
- data/test/conditionanalyzer/01/01-ENCUT/700/try01/INCAR +17 -0
- data/test/conditionanalyzer/01/01-ENCUT/700/try01/KPOINTS +6 -0
- data/test/conditionanalyzer/01/01-ENCUT/700/try01/OUTCAR +1644 -0
- data/test/conditionanalyzer/01/01-ENCUT/700/try01/POSCAR +13 -0
- data/test/conditionanalyzer/01/01-ENCUT/800/try01/CONTCAR +13 -0
- data/test/conditionanalyzer/01/01-ENCUT/800/try01/INCAR +17 -0
- data/test/conditionanalyzer/01/01-ENCUT/800/try01/KPOINTS +6 -0
- data/test/conditionanalyzer/01/01-ENCUT/800/try01/OUTCAR +3610 -0
- data/test/conditionanalyzer/01/01-ENCUT/800/try01/POSCAR +10 -0
- data/test/conditionanalyzer/01/01-ENCUT/900/try01/CONTCAR +13 -0
- data/test/conditionanalyzer/01/01-ENCUT/900/try01/INCAR +17 -0
- data/test/conditionanalyzer/01/01-ENCUT/900/try01/KPOINTS +6 -0
- data/test/conditionanalyzer/01/01-ENCUT/900/try01/OUTCAR +1692 -0
- data/test/conditionanalyzer/01/01-ENCUT/900/try01/POSCAR +13 -0
- data/test/conditionanalyzer/01/02-KPOINTS/16x16x16/try07/CONTCAR +13 -0
- data/test/conditionanalyzer/01/02-KPOINTS/16x16x16/try07/INCAR +17 -0
- data/test/conditionanalyzer/01/02-KPOINTS/16x16x16/try07/KPOINTS +6 -0
- data/test/conditionanalyzer/01/02-KPOINTS/16x16x16/try07/OUTCAR +12318 -0
- data/test/conditionanalyzer/01/02-KPOINTS/16x16x16/try07/POSCAR +13 -0
- data/test/conditionanalyzer/01/02-KPOINTS/1x1x1/try07/CONTCAR +13 -0
- data/test/conditionanalyzer/01/02-KPOINTS/1x1x1/try07/INCAR +17 -0
- data/test/{vaspkpointsfinder/01-01-01/try00 → conditionanalyzer/01/02-KPOINTS/1x1x1/try07}/KPOINTS +1 -1
- data/test/conditionanalyzer/01/02-KPOINTS/1x1x1/try07/OUTCAR +1337 -0
- data/test/conditionanalyzer/01/02-KPOINTS/1x1x1/try07/POSCAR +13 -0
- data/test/conditionanalyzer/01/02-KPOINTS/2x2x2/try10/CONTCAR +13 -0
- data/test/conditionanalyzer/01/02-KPOINTS/2x2x2/try10/INCAR +17 -0
- data/test/conditionanalyzer/01/02-KPOINTS/2x2x2/try10/KPOINTS +6 -0
- data/test/conditionanalyzer/01/02-KPOINTS/2x2x2/try10/OUTCAR +9885 -0
- data/test/conditionanalyzer/01/02-KPOINTS/2x2x2/try10/POSCAR +13 -0
- data/test/conditionanalyzer/01/02-KPOINTS/32x32x32/try06/CONTCAR +13 -0
- data/test/conditionanalyzer/01/02-KPOINTS/32x32x32/try06/INCAR +17 -0
- data/test/conditionanalyzer/01/02-KPOINTS/32x32x32/try06/KPOINTS +6 -0
- data/test/conditionanalyzer/01/02-KPOINTS/32x32x32/try06/OUTCAR +72342 -0
- data/test/conditionanalyzer/01/02-KPOINTS/32x32x32/try06/POSCAR +13 -0
- data/test/conditionanalyzer/01/02-KPOINTS/32x32x64/try04/CONTCAR +13 -0
- data/test/conditionanalyzer/01/02-KPOINTS/32x32x64/try04/INCAR +17 -0
- data/test/conditionanalyzer/01/02-KPOINTS/32x32x64/try04/KPOINTS +6 -0
- data/test/conditionanalyzer/01/02-KPOINTS/32x32x64/try04/OUTCAR +139254 -0
- data/test/conditionanalyzer/01/02-KPOINTS/32x32x64/try04/POSCAR +13 -0
- data/test/conditionanalyzer/01/02-KPOINTS/4x4x4/try05/CONTCAR +13 -0
- data/test/conditionanalyzer/01/02-KPOINTS/4x4x4/try05/INCAR +17 -0
- data/test/conditionanalyzer/01/02-KPOINTS/4x4x4/try05/KPOINTS +6 -0
- data/test/conditionanalyzer/01/02-KPOINTS/4x4x4/try05/OUTCAR +1644 -0
- data/test/conditionanalyzer/01/02-KPOINTS/4x4x4/try05/POSCAR +13 -0
- data/test/conditionanalyzer/01/02-KPOINTS/64x64x64/INCAR +17 -0
- data/test/conditionanalyzer/01/02-KPOINTS/64x64x64/KPOINTS +6 -0
- data/test/conditionanalyzer/01/02-KPOINTS/64x64x64/OUTCAR +507061 -0
- data/test/conditionanalyzer/01/02-KPOINTS/64x64x64/POSCAR +10 -0
- data/test/conditionanalyzer/01/02-KPOINTS/8x8x8/try05/CONTCAR +13 -0
- data/test/conditionanalyzer/01/02-KPOINTS/8x8x8/try05/INCAR +17 -0
- data/test/conditionanalyzer/01/02-KPOINTS/8x8x8/try05/KPOINTS +6 -0
- data/test/conditionanalyzer/01/02-KPOINTS/8x8x8/try05/OUTCAR +3298 -0
- data/test/conditionanalyzer/01/02-KPOINTS/8x8x8/try05/POSCAR +13 -0
- data/test/conditionanalyzer/mixed_conditions/orthorhombic/CONTCAR +17 -0
- data/test/conditionanalyzer/mixed_conditions/orthorhombic/INCAR +28 -0
- data/test/conditionanalyzer/mixed_conditions/orthorhombic/KPOINTS +6 -0
- data/test/conditionanalyzer/mixed_conditions/orthorhombic/OUTCAR +1436 -0
- data/test/conditionanalyzer/mixed_conditions/orthorhombic/POSCAR +12 -0
- data/test/conditionanalyzer/mixed_conditions/orthorhombic/POTCAR +16 -0
- data/test/conditionanalyzer/mixed_conditions/tetragonal/CONTCAR +17 -0
- data/test/conditionanalyzer/mixed_conditions/tetragonal/INCAR +28 -0
- data/test/conditionanalyzer/mixed_conditions/tetragonal/KPOINTS +6 -0
- data/test/conditionanalyzer/mixed_conditions/tetragonal/OUTCAR +1436 -0
- data/test/conditionanalyzer/mixed_conditions/tetragonal/POSCAR +12 -0
- data/test/conditionanalyzer/mixed_conditions/tetragonal/POTCAR +16 -0
- data/test/conditionanalyzer/picker/encut400_k444-cubic/INCAR +28 -0
- data/test/conditionanalyzer/picker/encut400_k444-cubic/KPOINTS +6 -0
- data/test/conditionanalyzer/picker/encut400_k444-cubic/OUTCAR +1436 -0
- data/test/conditionanalyzer/picker/encut400_k444-cubic/POSCAR +9 -0
- data/test/conditionanalyzer/picker/encut400_k444-cubic/POTCAR +16 -0
- data/test/conditionanalyzer/picker/encut400_k444-tetragonal-b/INCAR +28 -0
- data/test/conditionanalyzer/picker/encut400_k444-tetragonal-b/KPOINTS +6 -0
- data/test/conditionanalyzer/picker/encut400_k444-tetragonal-b/OUTCAR +1436 -0
- data/test/conditionanalyzer/picker/encut400_k444-tetragonal-b/POSCAR +9 -0
- data/test/conditionanalyzer/picker/encut400_k444-tetragonal-b/POTCAR +16 -0
- data/test/conditionanalyzer/picker/encut400_k444-unfinished/INCAR +28 -0
- data/test/conditionanalyzer/picker/encut400_k444-unfinished/KPOINTS +6 -0
- data/test/conditionanalyzer/picker/encut400_k444-unfinished/OUTCAR +1381 -0
- data/test/conditionanalyzer/picker/encut400_k444-unfinished/POSCAR +12 -0
- data/test/conditionanalyzer/picker/encut400_k444-unfinished/POTCAR +16 -0
- data/test/conditionanalyzer/picker/hexiagonal/CONTCAR +13 -0
- data/test/conditionanalyzer/picker/hexiagonal/INCAR +17 -0
- data/test/conditionanalyzer/picker/hexiagonal/KPOINTS +6 -0
- data/test/conditionanalyzer/picker/hexiagonal/OUTCAR +1644 -0
- data/test/conditionanalyzer/picker/hexiagonal/POSCAR +13 -0
- data/test/conditionvarier/standard/INCAR +28 -0
- data/test/conditionvarier/standard/KPOINTS +6 -0
- data/test/conditionvarier/standard/POSCAR +12 -0
- data/test/conditionvarier/standard/POTCAR +16 -0
- data/test/helper.rb +4 -4
- data/test/poscar/symmetry/cubic/POSCAR +8 -0
- data/test/poscar/symmetry/hexagonal/POSCAR +8 -0
- data/test/poscar/symmetry/monoclinic/POSCAR +8 -0
- data/test/poscar/symmetry/orthorhombic/POSCAR +8 -0
- data/test/poscar/symmetry/tetragonal/POSCAR +8 -0
- data/test/poscar/symmetry/tetragonal-b/POSCAR +8 -0
- data/test/poscar/symmetry/triclinic/POSCAR +10 -0
- data/test/poscar/symmetry/trigonal/POSCAR +9 -0
- data/test/test_conditionvarier.rb +201 -0
- data/test/test_incar.rb +144 -144
- data/test/test_kpoints.rb +91 -91
- data/test/test_outcar.rb +154 -154
- data/test/test_poscar.rb +263 -262
- data/test/test_potcar.rb +31 -31
- data/test/test_potcar_concatenater.rb +39 -39
- data/test/test_setting.rb +15 -14
- data/test/test_vaspdir.rb +193 -126
- data/test/test_vaspgeometryoptimizer.rb +177 -78
- data/test/test_vasputils.rb +48 -48
- data/test/vaspdir/reset_init/finished/orig/CONTCAR +17 -0
- data/test/vaspdir/reset_init/finished/orig/INCAR +27 -0
- data/test/vaspdir/reset_init/finished/orig/KPOINTS +6 -0
- data/test/vaspdir/reset_init/finished/orig/OUTCAR +1436 -0
- data/test/vaspdir/reset_init/finished/orig/POSCAR +12 -0
- data/test/vaspdir/reset_init/finished/orig/POTCAR +16 -0
- data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir0/CONTCAR +17 -0
- data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir0/INCAR +27 -0
- data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir0/KPOINTS +6 -0
- data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir0/OUTCAR +1436 -0
- data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir0/POSCAR +12 -0
- data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir0/POTCAR +16 -0
- data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir1/CONTCAR +17 -0
- data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir1/INCAR +27 -0
- data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir1/KPOINTS +6 -0
- data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir1/OUTCAR +1436 -0
- data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir1/POSCAR +12 -0
- data/test/vaspgeometryoptimizer/multiple_vaspdir/vaspdir1/POTCAR +16 -0
- data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/DOSCAR +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/EIGENVAL +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/INCAR +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/KPOINTS +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/OSZICAR +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/OUTCAR +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/PCDAT +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/POSCAR +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/POTCAR +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/WAVECAR +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/XDATCAR +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt00/vasprun.xml +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/no-contcar/geomopt01/.gitignore +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/CHG +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/CHGCAR +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/CONTCAR +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/DOSCAR +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/EIGENVAL +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/INCAR +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/KPOINTS +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/OSZICAR +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/OUTCAR +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/PCDAT +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/POSCAR +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/POTCAR +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/WAVECAR +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/XDATCAR +0 -0
- data/test/vaspgeometryoptimizer/prepare_next/normal/geomopt00/vasprun.xml +0 -0
- data/test/vaspgeometryoptimizer/reset_init/orig/geomopt00/CONTCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_init/orig/geomopt00/INCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_init/orig/geomopt00/KPOINTS +0 -0
- data/test/vaspgeometryoptimizer/reset_init/orig/geomopt00/OUTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_init/orig/geomopt00/POSCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_init/orig/geomopt00/POTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_init/orig/geomopt01/CONTCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_init/orig/geomopt01/INCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_init/orig/geomopt01/KPOINTS +0 -0
- data/test/vaspgeometryoptimizer/reset_init/orig/geomopt01/OUTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_init/orig/geomopt01/POSCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_init/orig/geomopt01/POTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_init/orig/geomopt02/CONTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_init/orig/geomopt02/INCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_init/orig/geomopt02/KPOINTS +0 -0
- data/test/vaspgeometryoptimizer/reset_init/orig/geomopt02/POSCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_init/orig/geomopt02/POTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_init/orig/lock_vaspgeomopt/dummy +0 -0
- data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt00/CONTCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt00/INCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt00/KPOINTS +0 -0
- data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt00/OUTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt00/POSCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt00/POTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt01/CONTCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt01/INCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt01/KPOINTS +0 -0
- data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt01/OUTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt01/POSCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt01/POTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt02/CONTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt02/INCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt02/KPOINTS +0 -0
- data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt02/OUTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt02/POSCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/geomopt02/POTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/empty-contcar/orig/lock_vaspgeomopt/dummy +0 -0
- data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt00/CONTCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt00/INCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt00/KPOINTS +0 -0
- data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt00/OUTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt00/POSCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt00/POTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt01/CONTCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt01/INCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt01/KPOINTS +0 -0
- data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt01/OUTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt01/POSCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt01/POTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt02/INCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt02/KPOINTS +0 -0
- data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt02/POSCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/geomopt02/POTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/no-contcar/orig/lock_vaspgeomopt/dummy +0 -0
- data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt00/CONTCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt00/INCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt00/KPOINTS +0 -0
- data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt00/OUTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt00/POSCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt00/POTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt01/CONTCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt01/INCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt01/KPOINTS +0 -0
- data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt01/OUTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt01/POSCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt01/POTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt02/CONTCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt02/INCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt02/KPOINTS +0 -0
- data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt02/POSCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/geomopt02/POTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_next/poscar-contcar/orig/lock_vaspgeomopt/dummy +0 -0
- data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt00/CONTCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt00/INCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt00/KPOINTS +0 -0
- data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt00/OUTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt00/POSCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt00/POTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt01/CONTCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt01/INCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt01/KPOINTS +0 -0
- data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt01/OUTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt01/POSCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt01/POTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt02/CONTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt02/INCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt02/KPOINTS +0 -0
- data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt02/POSCAR +12 -0
- data/test/vaspgeometryoptimizer/reset_reincarnation/orig/geomopt02/POTCAR +0 -0
- data/test/vaspgeometryoptimizer/reset_reincarnation/orig/lock_vaspgeomopt/dummy +0 -0
- data/test/vaspgeometryoptimizer/started/geomopt00/INCAR +0 -0
- data/test/vaspgeometryoptimizer/started/geomopt00/KPOINTS +0 -0
- data/test/vaspgeometryoptimizer/started/geomopt00/POSCAR +0 -0
- data/test/vaspgeometryoptimizer/started/geomopt00/POTCAR +0 -0
- data/test/vaspgeometryoptimizer/till01/geomopt00/CONTCAR +0 -0
- data/test/vaspgeometryoptimizer/till01/geomopt00/INCAR +0 -0
- data/test/vaspgeometryoptimizer/till01/geomopt00/KPOINTS +0 -0
- data/test/vaspgeometryoptimizer/till01/geomopt00/OUTCAR +0 -0
- data/test/vaspgeometryoptimizer/till01/geomopt00/POSCAR +0 -0
- data/test/vaspgeometryoptimizer/till01/geomopt00/POTCAR +0 -0
- data/test/vaspgeometryoptimizer/till01/geomopt01/INCAR +0 -0
- data/test/vaspgeometryoptimizer/till01/geomopt01/KPOINTS +0 -0
- data/test/vaspgeometryoptimizer/till01/geomopt01/POSCAR +0 -0
- data/test/vaspgeometryoptimizer/till01/geomopt01/POTCAR +0 -0
- metadata +464 -106
- data/bin/genvaspdir +0 -17
- data/bin/rmvaspout +0 -40
- data/lib/vasputils/vaspkpointsfinder.rb +0 -72
- data/test/test_vaspkpointsfinder.rb +0 -25
- data/test/vaspkpointsfinder/01-01-01/try00/POSCAR +0 -8
- data/vasputils.gemspec +0 -567
- /data/test/{vaspgeometryoptimizer/ended-Iter1/try00 → conditionanalyzer/01/00-original}/POTCAR +0 -0
- /data/test/{vaspgeometryoptimizer/ended-Iter1/try01 → conditionanalyzer/01/01-ENCUT/1000/try02}/POTCAR +0 -0
- /data/test/{vaspgeometryoptimizer/ended-Iter2/try00 → conditionanalyzer/01/01-ENCUT/1200/try02}/POTCAR +0 -0
- /data/test/{vaspgeometryoptimizer/ended-Iter2/try01 → conditionanalyzer/01/01-ENCUT/1500/try02}/POTCAR +0 -0
- /data/test/{vaspgeometryoptimizer/not-yet/try00 → conditionanalyzer/01/01-ENCUT/500/try05}/POTCAR +0 -0
- /data/test/{vaspgeometryoptimizer/prepare_next/try00 → conditionanalyzer/01/01-ENCUT/600/try01}/POTCAR +0 -0
- /data/test/{vaspgeometryoptimizer/started/try00 → conditionanalyzer/01/01-ENCUT/700/try01}/POTCAR +0 -0
- /data/test/{vaspgeometryoptimizer/till01/try00 → conditionanalyzer/01/01-ENCUT/800/try01}/POTCAR +0 -0
- /data/test/{vaspgeometryoptimizer/till01 → conditionanalyzer/01/01-ENCUT/900}/try01/POTCAR +0 -0
- /data/test/{vaspkpointsfinder/01-01-01/try00 → conditionanalyzer/01/02-KPOINTS/16x16x16/try07}/POTCAR +0 -0
- /data/test/{vaspgeometryoptimizer/ended-Iter1/try00/INCAR → conditionanalyzer/01/02-KPOINTS/1x1x1/try07/POTCAR} +0 -0
- /data/test/{vaspgeometryoptimizer/ended-Iter1/try00/KPOINTS → conditionanalyzer/01/02-KPOINTS/2x2x2/try10/POTCAR} +0 -0
- /data/test/{vaspgeometryoptimizer/ended-Iter1/try00/OUTCAR → conditionanalyzer/01/02-KPOINTS/32x32x32/try06/POTCAR} +0 -0
- /data/test/{vaspgeometryoptimizer/ended-Iter1/try00/POSCAR → conditionanalyzer/01/02-KPOINTS/32x32x64/try04/POTCAR} +0 -0
- /data/test/{vaspgeometryoptimizer/ended-Iter1/try01/INCAR → conditionanalyzer/01/02-KPOINTS/4x4x4/try05/POTCAR} +0 -0
- /data/test/{vaspgeometryoptimizer/ended-Iter2/try00 → conditionanalyzer/01/02-KPOINTS/64x64x64}/CONTCAR +0 -0
- /data/test/{vaspgeometryoptimizer/ended-Iter1/try01/KPOINTS → conditionanalyzer/01/02-KPOINTS/64x64x64/POTCAR} +0 -0
- /data/test/{vaspgeometryoptimizer/ended-Iter1/try01/POSCAR → conditionanalyzer/01/02-KPOINTS/8x8x8/try05/POTCAR} +0 -0
- /data/test/{vaspgeometryoptimizer/ended-Iter2/try00/INCAR → conditionanalyzer/picker/hexiagonal/POTCAR} +0 -0
- /data/test/vaspgeometryoptimizer/{prepare_next/try00 → ended-Iter1/geomopt00}/CONTCAR +0 -0
- /data/test/vaspgeometryoptimizer/{ended-Iter2/try01 → ended-Iter1/geomopt00}/INCAR +0 -0
- /data/test/vaspgeometryoptimizer/{ended-Iter2/try00 → ended-Iter1/geomopt00}/KPOINTS +0 -0
- /data/test/vaspgeometryoptimizer/{ended-Iter2/try00 → ended-Iter1/geomopt00}/OUTCAR +0 -0
- /data/test/vaspgeometryoptimizer/{ended-Iter2/try00 → ended-Iter1/geomopt00}/POSCAR +0 -0
- /data/test/vaspgeometryoptimizer/{ended-Iter2/try01/KPOINTS → ended-Iter1/geomopt00/POTCAR} +0 -0
- /data/test/vaspgeometryoptimizer/{not-yet/try00 → ended-Iter1/geomopt01}/INCAR +0 -0
- /data/test/vaspgeometryoptimizer/{not-yet/try00 → ended-Iter1/geomopt01}/KPOINTS +0 -0
- /data/test/vaspgeometryoptimizer/ended-Iter1/{try01 → geomopt01}/OUTCAR +0 -0
- /data/test/vaspgeometryoptimizer/{ended-Iter2/try01 → ended-Iter1/geomopt01}/POSCAR +0 -0
- /data/test/vaspgeometryoptimizer/{not-yet/try00/POSCAR → ended-Iter1/geomopt01/POTCAR} +0 -0
- /data/test/vaspgeometryoptimizer/{till01/try00 → ended-Iter2/geomopt00}/CONTCAR +0 -0
- /data/test/vaspgeometryoptimizer/{prepare_next/try00 → ended-Iter2/geomopt00}/INCAR +0 -0
- /data/test/vaspgeometryoptimizer/{prepare_next/try00 → ended-Iter2/geomopt00}/KPOINTS +0 -0
- /data/test/vaspgeometryoptimizer/{prepare_next/try00 → ended-Iter2/geomopt00}/OUTCAR +0 -0
- /data/test/vaspgeometryoptimizer/{prepare_next/try00 → ended-Iter2/geomopt00}/POSCAR +0 -0
- /data/test/vaspgeometryoptimizer/{prepare_next/try00/CHG → ended-Iter2/geomopt00/POTCAR} +0 -0
- /data/test/vaspgeometryoptimizer/{started/try00 → ended-Iter2/geomopt01}/INCAR +0 -0
- /data/test/vaspgeometryoptimizer/{started/try00 → ended-Iter2/geomopt01}/KPOINTS +0 -0
- /data/test/vaspgeometryoptimizer/ended-Iter2/{try01 → geomopt01}/OUTCAR +0 -0
- /data/test/vaspgeometryoptimizer/{started/try00 → ended-Iter2/geomopt01}/POSCAR +0 -0
- /data/test/vaspgeometryoptimizer/{prepare_next/try00/CHGCAR → ended-Iter2/geomopt01/POTCAR} +0 -0
- /data/test/vaspgeometryoptimizer/{till01/try00 → not-geomopt/not-geomopt-subdir/calcA}/INCAR +0 -0
- /data/test/vaspgeometryoptimizer/{till01/try00 → not-geomopt/not-geomopt-subdir/calcA}/KPOINTS +0 -0
- /data/test/vaspgeometryoptimizer/{till01/try00 → not-geomopt/not-geomopt-subdir/calcA}/POSCAR +0 -0
- /data/test/vaspgeometryoptimizer/{prepare_next/try00/DOSCAR → not-geomopt/not-geomopt-subdir/calcA/POTCAR} +0 -0
- /data/test/vaspgeometryoptimizer/{till01/try01 → not-geomopt/not-geomopt-subdir/calcB}/INCAR +0 -0
- /data/test/vaspgeometryoptimizer/{till01/try01 → not-geomopt/not-geomopt-subdir/calcB}/KPOINTS +0 -0
- /data/test/vaspgeometryoptimizer/{till01/try01 → not-geomopt/not-geomopt-subdir/calcB}/POSCAR +0 -0
- /data/test/vaspgeometryoptimizer/{prepare_next/try00/EIGENVAL → not-geomopt/not-geomopt-subdir/calcB/POTCAR} +0 -0
- /data/test/vaspgeometryoptimizer/{prepare_next/try00/OSZICAR → not-yet/geomopt00/INCAR} +0 -0
- /data/test/vaspgeometryoptimizer/{prepare_next/try00/PCDAT → not-yet/geomopt00/KPOINTS} +0 -0
- /data/test/vaspgeometryoptimizer/{prepare_next/try00/WAVECAR → not-yet/geomopt00/POSCAR} +0 -0
- /data/test/vaspgeometryoptimizer/{prepare_next/try00/XDATCAR → not-yet/geomopt00/POTCAR} +0 -0
- /data/test/vaspgeometryoptimizer/prepare_next/{try00/vasprun.xml → no-contcar/geomopt00/CHG} +0 -0
- /data/test/vaspgeometryoptimizer/{till01/try00/OUTCAR → prepare_next/no-contcar/geomopt00/CHGCAR} +0 -0
data/lib/vasputils/poscar.rb
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
#! /usr/bin/ruby
|
|
2
2
|
|
|
3
3
|
require "rubygems"
|
|
4
|
-
gem "crystalcell"
|
|
5
|
-
require "crystalcell
|
|
6
|
-
|
|
7
|
-
require "vasputils.rb"
|
|
4
|
+
#gem "crystalcell"
|
|
5
|
+
require "crystalcell"
|
|
8
6
|
|
|
9
7
|
# Class to manage POSCAR format of VASP.
|
|
10
8
|
#
|
|
@@ -20,165 +18,165 @@ require "vasputils.rb"
|
|
|
20
18
|
# VASP 5 系を使うようになれば事情が変わるだろう。
|
|
21
19
|
class VaspUtils::Poscar
|
|
22
20
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
21
|
+
class ElementMismatchError < Exception; end
|
|
22
|
+
class ParseError < Exception; end
|
|
23
|
+
|
|
24
|
+
# io を読み込んで Cell クラスインスタンスを返す。
|
|
25
|
+
# 構文解析できなければ例外 Poscar::ParseError を投げる。
|
|
26
|
+
def self.parse(io)
|
|
27
|
+
# analyze POSCAR.
|
|
28
|
+
|
|
29
|
+
begin
|
|
30
|
+
#line 1: comment (string)
|
|
31
|
+
comment = io.readline.chomp
|
|
32
|
+
|
|
33
|
+
#line 2: universal scaling factor (float)
|
|
34
|
+
scale = io.readline.to_f
|
|
35
|
+
raise "Poscar.load_file cannot use negative scaling factor.\n" if scale < 0
|
|
36
|
+
|
|
37
|
+
#line 3-5: axes (3x3 Array of float)
|
|
38
|
+
axes = []
|
|
39
|
+
3.times do |i| #each axis of a, b, c.
|
|
40
|
+
vec = io.readline.strip.split(/\s+/) #in x,y,z directions
|
|
41
|
+
axes << vec.collect! { |i| i.to_f * scale } #multiply scaling factor
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# Element symbol (vasp 5). Nothing in vasp 4.
|
|
45
|
+
#elements = io.readline.strip.split(/\s+/).map{|i| i.to_i}
|
|
46
|
+
vals = io.readline.strip.split(/\s+/)
|
|
47
|
+
if vals[0].to_i == 0
|
|
48
|
+
elements = vals
|
|
49
|
+
nums_elements = io.readline.strip.split(/\s+/).map{|i| i.to_i}
|
|
50
|
+
else
|
|
51
|
+
elements = []
|
|
52
|
+
vals.size.times { |i| elements << i }
|
|
53
|
+
nums_elements = vals.map{|i| i.to_i}
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# 'Selective dynamics' or not (bool)
|
|
57
|
+
line = io.readline
|
|
58
|
+
if line =~ /^\s*s/i
|
|
59
|
+
selective_dynamics = true
|
|
60
|
+
line = io.readline # when this situation, reading one more line is nessesarry
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
if (line =~ /^\s*d/i) # allow only 'Direct' now
|
|
64
|
+
direct = true
|
|
65
|
+
else
|
|
66
|
+
raise "Not 'direct' indication."
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# atom positions
|
|
70
|
+
# e.g., positions_of_elements
|
|
71
|
+
# e.g., movable_flags_of_elements
|
|
72
|
+
|
|
73
|
+
atoms = []
|
|
74
|
+
nums_elements.size.times do |elem_index|
|
|
75
|
+
nums_elements[elem_index].times do |index|
|
|
76
|
+
items = io.readline.strip.split(/\s+/)
|
|
77
|
+
pos = items[0..2].map {|coord| coord.to_f}
|
|
78
|
+
|
|
79
|
+
mov_flags = []
|
|
80
|
+
if items.size >= 6 then
|
|
81
|
+
items[3..5].each do |i|
|
|
82
|
+
(i =~ /^t/i) ? mov_flags << true : mov_flags << false
|
|
83
|
+
end
|
|
84
|
+
atoms << CrystalCell::Atom.new(elements[elem_index], pos, mov_flags)
|
|
85
|
+
else
|
|
86
|
+
atoms << CrystalCell::Atom.new(elements[elem_index], pos)
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
rescue EOFError
|
|
91
|
+
raise ParseError, "end of file reached"
|
|
90
92
|
end
|
|
91
|
-
end
|
|
92
|
-
rescue EOFError
|
|
93
|
-
raise ParseError, "end of file reached"
|
|
94
|
-
end
|
|
95
93
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
# file で与えられた名前のファイルを読み込んで Cell クラスインスタンスを返す。
|
|
102
|
-
# 構文解析できなければ例外 Poscar::ParseError を投げる。
|
|
103
|
-
def self.load_file(file)
|
|
104
|
-
io = File.open(file, "r")
|
|
105
|
-
self.parse(io)
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
# POSCAR 形式で書き出す。
|
|
109
|
-
# cell は Cell クラスインスタンスと同等のメソッドを持つもの。
|
|
110
|
-
# elems は書き出す元素の順番。
|
|
111
|
-
# elems が cell の持つ元素リストとマッチしなければ
|
|
112
|
-
# 例外 Poscar::ElementMismatchError を投げる。
|
|
113
|
-
# io は書き出すファイルハンドル。
|
|
114
|
-
# 'version' indicates a poscar style for vasp 4 or 5.
|
|
115
|
-
def self.dump(cell, elems, io, version = 5)
|
|
116
|
-
unless (Mapping::map?(cell.elements.uniq, elems){ |i, j| i == j })
|
|
117
|
-
raise ElementMismatchError,
|
|
118
|
-
"elems [#{elems.join(",")}] mismatches to cell.elements [#{cell.elements.join(",")}."
|
|
94
|
+
cell = CrystalCell::Cell.new(axes, atoms)
|
|
95
|
+
cell.comment = comment
|
|
96
|
+
cell
|
|
119
97
|
end
|
|
120
98
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
99
|
+
# file で与えられた名前のファイルを読み込んで CrystalCell::Cell クラスインスタンスを返す。
|
|
100
|
+
# 構文解析できなければ例外 Poscar::ParseError を投げる。
|
|
101
|
+
def self.load_file(file)
|
|
102
|
+
io = File.open(file, "r")
|
|
103
|
+
self.parse(io)
|
|
126
104
|
end
|
|
127
105
|
|
|
128
|
-
#
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
106
|
+
# POSCAR 形式で書き出す。
|
|
107
|
+
# cell は CrystalCell::Cell クラスインスタンスと同等のメソッドを持つもの。
|
|
108
|
+
# elems は書き出す元素の順番。
|
|
109
|
+
# elems が cell の持つ元素リストとマッチしなければ
|
|
110
|
+
# 例外 Poscar::ElementMismatchError を投げる。
|
|
111
|
+
# io は書き出すファイルハンドル。
|
|
112
|
+
# 'version' indicates a poscar style for vasp 4 or 5.
|
|
113
|
+
def self.dump(cell, elems, io, version = 5)
|
|
114
|
+
unless (Mapping::map?(cell.elements.uniq, elems){ |i, j| i == j })
|
|
115
|
+
raise ElementMismatchError,
|
|
116
|
+
"elems [#{elems.join(",")}] mismatches to cell.elements [#{cell.elements.join(",")}."
|
|
117
|
+
end
|
|
132
118
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
# Selective dynamics
|
|
141
|
-
# どれか1つでも getMovableFlag が真であれば Selective dynamics をオンにする
|
|
142
|
-
selective_dynamics = false
|
|
143
|
-
cell.atoms.each do |atom|
|
|
144
|
-
if atom.movable_flags
|
|
145
|
-
selective_dynamics = true
|
|
146
|
-
io.puts "Selective dynamics"
|
|
147
|
-
break
|
|
148
|
-
end
|
|
149
|
-
end
|
|
119
|
+
io.puts cell.comment
|
|
120
|
+
io.puts "1.0" #scale
|
|
121
|
+
3.times do |i|
|
|
122
|
+
io.printf(" % 18.15f % 18.15f % 18.15f\n", cell.axes[i][0], cell.axes[i][1], cell.axes[i][2]
|
|
123
|
+
)
|
|
124
|
+
end
|
|
150
125
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
126
|
+
# Element symbols for vasp 5.
|
|
127
|
+
if version >= 5
|
|
128
|
+
io.puts cell.atoms.map {|atom| atom.element}.uniq.join(" ")
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
# Atom numbers.
|
|
132
|
+
elem_list = Hash.new
|
|
133
|
+
elems.each do |elem|
|
|
134
|
+
elem_list[ elem ] = cell.atoms.select{ |atom| atom.element == elem }
|
|
135
|
+
end
|
|
136
|
+
io.puts(elems.map { |elem| elem_list[elem].size }.join(" "))
|
|
137
|
+
|
|
138
|
+
# Selective dynamics
|
|
139
|
+
# どれか1つでも getMovableFlag が真であれば Selective dynamics をオンにする
|
|
140
|
+
selective_dynamics = false
|
|
141
|
+
cell.atoms.each do |atom|
|
|
142
|
+
if atom.movable_flags
|
|
143
|
+
selective_dynamics = true
|
|
144
|
+
io.puts "Selective dynamics"
|
|
145
|
+
break
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
elems.each do |elem|
|
|
150
|
+
elem_list[ elem ].each do |atom|
|
|
151
|
+
if atom.movable_flags
|
|
152
|
+
selective_dynamics = true
|
|
153
|
+
break
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
break if selective_dynamics
|
|
156
157
|
end
|
|
157
|
-
end
|
|
158
|
-
break if selective_dynamics
|
|
159
|
-
end
|
|
160
158
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
159
|
+
io.puts "Direct"
|
|
160
|
+
|
|
161
|
+
# positions of atoms
|
|
162
|
+
elems.each do |elem|
|
|
163
|
+
elem_list[ elem ].each do |atom|
|
|
164
|
+
tmp = sprintf(
|
|
165
|
+
" % 18.15f % 18.15f % 18.15f",
|
|
166
|
+
* atom.position)
|
|
167
|
+
if selective_dynamics
|
|
168
|
+
if atom.movable_flags == nil
|
|
169
|
+
tmp += " T T T"
|
|
170
|
+
else
|
|
171
|
+
atom.movable_flags.each do |mov|
|
|
172
|
+
(mov == true) ? tmp += " T" : tmp += " F"
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
io.puts tmp
|
|
175
177
|
end
|
|
176
|
-
end
|
|
177
178
|
end
|
|
178
|
-
io.puts tmp
|
|
179
|
-
end
|
|
180
179
|
end
|
|
181
|
-
end
|
|
182
180
|
|
|
183
181
|
end
|
|
184
182
|
|
|
@@ -7,31 +7,31 @@ require "pp"
|
|
|
7
7
|
#
|
|
8
8
|
#
|
|
9
9
|
class VaspUtils::Potcar::Concatenater
|
|
10
|
-
|
|
10
|
+
class NoPotcarError < Exception; end
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
# 'potcar_path' indicates a storage directory of POTCARs.
|
|
13
|
+
# 'elem_potcar' indicates a correspondence
|
|
14
|
+
# between element symbol and prior POTCAR as Hash.
|
|
15
|
+
def initialize(potcar_path, elem_potcar)
|
|
16
|
+
@potcar_path = potcar_path
|
|
17
|
+
@elem_potcar = elem_potcar
|
|
18
|
+
end
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
# Concatenate POTCARs.
|
|
21
|
+
# Write to io if defined
|
|
22
|
+
# Return string if io is nil.
|
|
23
|
+
def dump(elements, io = nil)
|
|
24
|
+
result = elements.map { |elem|
|
|
25
|
+
raise NoPotcarError unless @elem_potcar.include? elem
|
|
26
|
+
filename = @potcar_path + "/" + @elem_potcar[elem] + "/POTCAR"
|
|
27
|
+
File.read filename
|
|
28
|
+
}.join("")
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
if io # is defined
|
|
31
|
+
io.print result
|
|
32
|
+
else
|
|
33
|
+
return result
|
|
34
|
+
end
|
|
34
35
|
end
|
|
35
|
-
end
|
|
36
36
|
end
|
|
37
37
|
|
data/lib/vasputils/potcar.rb
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
require "vasputils.rb"
|
|
1
|
+
#require "vasputils.rb"
|
|
2
2
|
|
|
3
3
|
#
|
|
4
4
|
# Class for dealing with POTCAR.
|
|
5
5
|
#
|
|
6
6
|
module VaspUtils::Potcar
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
def self.load_file(file)
|
|
8
|
+
results = {}
|
|
9
|
+
results[:name] = file
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
elements = Array.new
|
|
12
|
+
File.open( file, "r" ).each do |line|
|
|
13
|
+
if line =~ /VRHFIN\s*=\s*([A-Za-z]*)/
|
|
14
|
+
elements << $1
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
results[:elements] = elements
|
|
18
|
+
results
|
|
16
19
|
end
|
|
17
|
-
results[:elements] = elements
|
|
18
|
-
results
|
|
19
|
-
end
|
|
20
20
|
end
|
data/lib/vasputils/setting.rb
CHANGED
|
@@ -2,33 +2,33 @@
|
|
|
2
2
|
# coding: utf-8
|
|
3
3
|
|
|
4
4
|
require 'yaml'
|
|
5
|
-
require 'vasputils'
|
|
5
|
+
#require 'vasputils'
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
# Class to deal with private settings for VaspUtils.
|
|
9
9
|
|
|
10
10
|
class VaspUtils::Setting
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
11
|
+
class NoEntryError < Exception; end
|
|
12
|
+
|
|
13
|
+
#
|
|
14
|
+
def initialize(file = ENV["HOME"] + "/.vasputils")
|
|
15
|
+
@data = YAML.load_file(file)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Return value corresponding to a key.
|
|
19
|
+
# Raise VaspUtils::Setting::NoEntryError if the key is not exist.
|
|
20
|
+
def [](key)
|
|
21
|
+
unless @data.include? key
|
|
22
|
+
raise NoEntryError, key
|
|
23
|
+
end
|
|
24
|
+
@data[key]
|
|
23
25
|
end
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
# @data[key]
|
|
32
|
-
#end
|
|
26
|
+
|
|
27
|
+
#def get(key)
|
|
28
|
+
# unless @data.include? key
|
|
29
|
+
# raise NoEntryError, key
|
|
30
|
+
# end
|
|
31
|
+
# @data[key]
|
|
32
|
+
#end
|
|
33
33
|
end
|
|
34
34
|
|