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/test/test_poscar.rb
CHANGED
|
@@ -1,283 +1,284 @@
|
|
|
1
1
|
#! /usr/bin/ruby -W
|
|
2
2
|
|
|
3
|
+
require "helper"
|
|
3
4
|
require "test/unit"
|
|
4
5
|
require "stringio"
|
|
5
|
-
require "vasputils.rb"
|
|
6
|
-
require "vasputils/poscar.rb"
|
|
7
6
|
|
|
8
7
|
require "rubygems"
|
|
9
|
-
gem "
|
|
10
|
-
require "
|
|
11
|
-
gem "crystalcell"
|
|
12
|
-
require "crystalcell/cell.rb"
|
|
8
|
+
#gem "crystalcell"
|
|
9
|
+
require "crystalcell"
|
|
13
10
|
|
|
14
11
|
class TC_Poscar < Test::Unit::TestCase
|
|
15
|
-
|
|
12
|
+
$tolerance = 10 ** (-10)
|
|
16
13
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
14
|
+
def test_dump
|
|
15
|
+
# 例外ケース
|
|
16
|
+
axes = CrystalCell::LatticeAxes.new( [
|
|
17
|
+
[1.0, 0.0, 0.0 ],
|
|
18
|
+
[0.0, 1.0, 0.0 ],
|
|
19
|
+
[0.0, 0.0, 1.0 ],
|
|
20
|
+
])
|
|
21
|
+
atoms = [
|
|
22
|
+
CrystalCell::Atom.new(0, [0.1, 0.2, 0.3]),
|
|
23
|
+
CrystalCell::Atom.new(1, [0.2, 0.3, 0.4]),
|
|
24
|
+
CrystalCell::Atom.new(0, [0.3, 0.4, 0.5]),
|
|
25
|
+
]
|
|
26
|
+
cell = CrystalCell::Cell.new(axes, atoms)
|
|
27
|
+
cell.comment = "test"
|
|
28
|
+
io = StringIO.new
|
|
29
|
+
assert_raises(VaspUtils::Poscar::ElementMismatchError){
|
|
30
|
+
VaspUtils::Poscar.dump(cell, [0,1,2], io)}
|
|
34
31
|
|
|
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
|
-
|
|
32
|
+
# 生成
|
|
33
|
+
axes = CrystalCell::LatticeAxes.new( [
|
|
34
|
+
[1.0, 0.0, 0.0 ],
|
|
35
|
+
[0.0, 1.0, 0.0 ],
|
|
36
|
+
[0.0, 0.0, 1.0 ],
|
|
37
|
+
])
|
|
38
|
+
atoms = [
|
|
39
|
+
CrystalCell::Atom.new(0, [0.1, 0.2, 0.3]),
|
|
40
|
+
CrystalCell::Atom.new(1, [0.2, 0.3, 0.4]),
|
|
41
|
+
CrystalCell::Atom.new(0, [0.3, 0.4, 0.5]),
|
|
42
|
+
]
|
|
43
|
+
cell = CrystalCell::Cell.new(axes, atoms)
|
|
44
|
+
cell.comment = "test"
|
|
45
|
+
io = StringIO.new
|
|
46
|
+
VaspUtils::Poscar.dump(cell, [0,1], io, 4)
|
|
47
|
+
io.rewind
|
|
48
|
+
corrects = [
|
|
49
|
+
"test\n",
|
|
50
|
+
"1.0\n",
|
|
51
|
+
" 1.000000000000000 0.000000000000000 0.000000000000000\n",
|
|
52
|
+
" 0.000000000000000 1.000000000000000 0.000000000000000\n",
|
|
53
|
+
" 0.000000000000000 0.000000000000000 1.000000000000000\n",
|
|
54
|
+
"2 1\n",
|
|
55
|
+
"Direct\n",
|
|
56
|
+
" 0.100000000000000 0.200000000000000 0.300000000000000\n",
|
|
57
|
+
" 0.300000000000000 0.400000000000000 0.500000000000000\n",
|
|
58
|
+
" 0.200000000000000 0.300000000000000 0.400000000000000\n",
|
|
59
|
+
]
|
|
60
|
+
lines = io.readlines
|
|
61
|
+
corrects.each_with_index do |cor, index|
|
|
62
|
+
assert_equal(cor, lines[index], "line: #{index}")
|
|
63
|
+
end
|
|
64
|
+
assert_equal(corrects.size, lines.size)
|
|
68
65
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
66
|
+
# vasp 4
|
|
67
|
+
atoms = [
|
|
68
|
+
CrystalCell::Atom.new(0, [0.1, 0.2, 0.3], "atom0", [false, true , true ]),
|
|
69
|
+
CrystalCell::Atom.new(1, [0.2, 0.3, 0.4], "atom1", [false, false, true ]),
|
|
70
|
+
CrystalCell::Atom.new(0, [0.3, 0.4, 0.5], "atom2", [false, false, false]),
|
|
71
|
+
]
|
|
72
|
+
cell = CrystalCell::Cell.new(axes, atoms)
|
|
73
|
+
cell.comment = "test"
|
|
74
|
+
io = StringIO.new
|
|
75
|
+
VaspUtils::Poscar.dump(cell, [0,1], io, 4)
|
|
76
|
+
io.rewind
|
|
77
|
+
corrects = [
|
|
78
|
+
"test\n",
|
|
79
|
+
"1.0\n",
|
|
80
|
+
" 1.000000000000000 0.000000000000000 0.000000000000000\n",
|
|
81
|
+
" 0.000000000000000 1.000000000000000 0.000000000000000\n",
|
|
82
|
+
" 0.000000000000000 0.000000000000000 1.000000000000000\n",
|
|
83
|
+
"2 1\n",
|
|
84
|
+
"Selective dynamics\n",
|
|
85
|
+
"Direct\n",
|
|
86
|
+
" 0.100000000000000 0.200000000000000 0.300000000000000 F T T\n",
|
|
87
|
+
" 0.300000000000000 0.400000000000000 0.500000000000000 F F F\n",
|
|
88
|
+
" 0.200000000000000 0.300000000000000 0.400000000000000 F F T\n",
|
|
89
|
+
]
|
|
90
|
+
lines = io.readlines
|
|
91
|
+
corrects.each_with_index do |cor, index|
|
|
92
|
+
assert_equal(cor, lines[index], "line: #{index}")
|
|
93
|
+
end
|
|
94
|
+
assert_equal(corrects.size, lines.size)
|
|
95
|
+
|
|
96
|
+
atoms = [
|
|
97
|
+
CrystalCell::Atom.new(0, [0.1, 0.2, 0.3], "atom0", [false, true , true ]),
|
|
98
|
+
CrystalCell::Atom.new(1, [0.2, 0.3, 0.4], "atom1", [false, false, true ]),
|
|
99
|
+
CrystalCell::Atom.new(0, [0.3, 0.4, 0.5], "atom2", [false, false, false]),
|
|
100
|
+
]
|
|
101
|
+
cell = CrystalCell::Cell.new(axes, atoms)
|
|
102
|
+
cell.comment = "test"
|
|
103
|
+
io = StringIO.new
|
|
104
|
+
VaspUtils::Poscar.dump(cell, [0,1], io, 4)
|
|
105
|
+
io.rewind
|
|
106
|
+
corrects = [
|
|
107
|
+
"test\n",
|
|
108
|
+
"1.0\n",
|
|
109
|
+
" 1.000000000000000 0.000000000000000 0.000000000000000\n",
|
|
110
|
+
" 0.000000000000000 1.000000000000000 0.000000000000000\n",
|
|
111
|
+
" 0.000000000000000 0.000000000000000 1.000000000000000\n",
|
|
112
|
+
"2 1\n",
|
|
113
|
+
"Selective dynamics\n",
|
|
114
|
+
"Direct\n",
|
|
115
|
+
" 0.100000000000000 0.200000000000000 0.300000000000000 F T T\n",
|
|
116
|
+
" 0.300000000000000 0.400000000000000 0.500000000000000 F F F\n",
|
|
117
|
+
" 0.200000000000000 0.300000000000000 0.400000000000000 F F T\n",
|
|
118
|
+
]
|
|
119
|
+
lines = io.readlines
|
|
120
|
+
corrects.each_with_index do |cor, index|
|
|
121
|
+
assert_equal(cor, lines[index], "line: #{index}")
|
|
122
|
+
end
|
|
123
|
+
assert_equal(corrects.size, lines.size)
|
|
124
|
+
# vasp 5
|
|
125
|
+
atoms = [
|
|
126
|
+
CrystalCell::Atom.new("Li", [0.1, 0.2, 0.3], "atom0", [false, true , true ]),
|
|
127
|
+
CrystalCell::Atom.new("O" , [0.2, 0.3, 0.4], "atom1", [false, false, true ]),
|
|
128
|
+
CrystalCell::Atom.new("Li", [0.3, 0.4, 0.5], "atom2", [false, false, false]),
|
|
129
|
+
]
|
|
130
|
+
cell = CrystalCell::Cell.new(axes, atoms)
|
|
131
|
+
cell.comment = "test"
|
|
132
|
+
io = StringIO.new
|
|
133
|
+
VaspUtils::Poscar.dump(cell, ["Li", "O"], io, 5)
|
|
134
|
+
io.rewind
|
|
135
|
+
corrects = [
|
|
136
|
+
"test\n",
|
|
137
|
+
"1.0\n",
|
|
138
|
+
" 1.000000000000000 0.000000000000000 0.000000000000000\n",
|
|
139
|
+
" 0.000000000000000 1.000000000000000 0.000000000000000\n",
|
|
140
|
+
" 0.000000000000000 0.000000000000000 1.000000000000000\n",
|
|
141
|
+
"Li O\n",
|
|
142
|
+
"2 1\n",
|
|
143
|
+
"Selective dynamics\n",
|
|
144
|
+
"Direct\n",
|
|
145
|
+
" 0.100000000000000 0.200000000000000 0.300000000000000 F T T\n",
|
|
146
|
+
" 0.300000000000000 0.400000000000000 0.500000000000000 F F F\n",
|
|
147
|
+
" 0.200000000000000 0.300000000000000 0.400000000000000 F F T\n",
|
|
148
|
+
]
|
|
149
|
+
lines = io.readlines
|
|
150
|
+
corrects.each_with_index do |cor, index|
|
|
151
|
+
assert_equal(cor, lines[index], "line: #{index}")
|
|
152
|
+
end
|
|
153
|
+
assert_equal(corrects.size, lines.size)
|
|
98
154
|
|
|
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
155
|
end
|
|
156
|
-
assert_equal(corrects.size, lines.size)
|
|
157
156
|
|
|
158
|
-
|
|
157
|
+
def test_parse
|
|
158
|
+
io = StringIO.new
|
|
159
|
+
assert_raises(VaspUtils::Poscar::ParseError){ VaspUtils::Poscar.parse(io) }
|
|
159
160
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
161
|
+
# vasp 4 style
|
|
162
|
+
io = StringIO.new
|
|
163
|
+
io.puts "sample0"
|
|
164
|
+
io.puts "1.0"
|
|
165
|
+
io.puts " 1.0 0.0 0.0"
|
|
166
|
+
io.puts " 0.0 1.0 0.0"
|
|
167
|
+
io.puts " 0.0 0.0 1.0"
|
|
168
|
+
io.puts " 1 1 1"
|
|
169
|
+
io.puts "Direct"
|
|
170
|
+
io.puts " 0.0 0.0 0.0 #Li-001"
|
|
171
|
+
io.puts " 0.5 0.0 0.0 #Ge-002"
|
|
172
|
+
io.puts " 0.5 0.5 0.0 #O--003"
|
|
173
|
+
io.rewind
|
|
174
|
+
cell = VaspUtils::Poscar.parse(io)
|
|
175
|
+
assert_equal("sample0", cell.comment)
|
|
176
|
+
assert_equal(
|
|
177
|
+
CrystalCell::LatticeAxes.new( [
|
|
178
|
+
[1.0, 0.0, 0.0 ],
|
|
179
|
+
[0.0, 1.0, 0.0 ],
|
|
180
|
+
[0.0, 0.0, 1.0 ],
|
|
181
|
+
]),
|
|
182
|
+
cell.axes
|
|
183
|
+
)
|
|
184
|
+
assert_equal(
|
|
185
|
+
CrystalCell::Atom.new(0, [0.0, 0.0, 0.0], "#Li-001"), cell.atoms[0])
|
|
186
|
+
assert_equal(
|
|
187
|
+
CrystalCell::Atom.new(1, [0.5, 0.0, 0.0], "#Ge-002"), cell.atoms[1])
|
|
188
|
+
assert_equal(
|
|
189
|
+
CrystalCell::Atom.new(2, [0.5, 0.5, 0.0], "#O--003"), cell.atoms[2])
|
|
163
190
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
191
|
+
# vasp 4 style and selective dynamics
|
|
192
|
+
io = StringIO.new
|
|
193
|
+
io.puts "sample1"
|
|
194
|
+
io.puts "2.0"
|
|
195
|
+
io.puts " 1.0 0.0 0.0"
|
|
196
|
+
io.puts " 0.0 1.0 0.0"
|
|
197
|
+
io.puts " 0.0 0.0 1.0"
|
|
198
|
+
io.puts " 1 1 2"
|
|
199
|
+
io.puts "Selective dynamics"
|
|
200
|
+
io.puts "Direct"
|
|
201
|
+
io.puts " 0.0 0.0 0.0 F F F #Li-001"
|
|
202
|
+
io.puts " 0.5 0.0 0.0 F T F #Ge-002"
|
|
203
|
+
io.puts " 0.5 0.5 0.0 T T T #O--003"
|
|
204
|
+
io.puts " 0.5 0.5 0.5 T T T #O--004"
|
|
205
|
+
io.rewind
|
|
206
|
+
cell = VaspUtils::Poscar.parse(io)
|
|
207
|
+
assert_equal("sample1", cell.comment)
|
|
208
|
+
assert_equal(
|
|
209
|
+
CrystalCell::LatticeAxes.new( [
|
|
210
|
+
[2.0, 0.0, 0.0 ],
|
|
211
|
+
[0.0, 2.0, 0.0 ],
|
|
212
|
+
[0.0, 0.0, 2.0 ],
|
|
213
|
+
]),
|
|
214
|
+
cell.axes
|
|
215
|
+
)
|
|
216
|
+
assert_equal(
|
|
217
|
+
CrystalCell::Atom.new(0, [0.0, 0.0, 0.0], "#Li-001", [false, false, false]),
|
|
218
|
+
cell.atoms[0])
|
|
219
|
+
assert_equal(
|
|
220
|
+
CrystalCell::Atom.new(1, [0.5, 0.0, 0.0], "#Ge-002", [false, true , false]),
|
|
221
|
+
cell.atoms[1])
|
|
222
|
+
assert_equal(
|
|
223
|
+
CrystalCell::Atom.new(2, [0.5, 0.5, 0.0], "#O--003", [true, true, true]),
|
|
224
|
+
cell.atoms[2])
|
|
225
|
+
assert_equal(
|
|
226
|
+
CrystalCell::Atom.new(2, [0.5, 0.5, 0.5], "#O--004", [true, true, true]),
|
|
227
|
+
cell.atoms[3])
|
|
193
228
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
assert_equal(
|
|
226
|
-
Atom.new(2, [0.5, 0.5, 0.0], "#O--003", [true, true, true]),
|
|
227
|
-
cell.atoms[2])
|
|
228
|
-
assert_equal(
|
|
229
|
-
Atom.new(2, [0.5, 0.5, 0.5], "#O--004", [true, true, true]),
|
|
230
|
-
cell.atoms[3])
|
|
229
|
+
# vasp 5 style
|
|
230
|
+
io = StringIO.new
|
|
231
|
+
io.puts "sample0"
|
|
232
|
+
io.puts "1.0"
|
|
233
|
+
io.puts " 1.0 0.0 0.0"
|
|
234
|
+
io.puts " 0.0 1.0 0.0"
|
|
235
|
+
io.puts " 0.0 0.0 1.0"
|
|
236
|
+
io.puts " Li Ge O"
|
|
237
|
+
io.puts " 1 1 1"
|
|
238
|
+
io.puts "Direct"
|
|
239
|
+
io.puts " 0.0 0.0 0.0 #Li-001"
|
|
240
|
+
io.puts " 0.5 0.0 0.0 #Ge-002"
|
|
241
|
+
io.puts " 0.5 0.5 0.0 #O--003"
|
|
242
|
+
io.rewind
|
|
243
|
+
cell = VaspUtils::Poscar.parse(io)
|
|
244
|
+
assert_equal("sample0", cell.comment)
|
|
245
|
+
assert_equal(
|
|
246
|
+
CrystalCell::LatticeAxes.new( [
|
|
247
|
+
[1.0, 0.0, 0.0 ],
|
|
248
|
+
[0.0, 1.0, 0.0 ],
|
|
249
|
+
[0.0, 0.0, 1.0 ],
|
|
250
|
+
]),
|
|
251
|
+
cell.axes
|
|
252
|
+
)
|
|
253
|
+
assert_equal(
|
|
254
|
+
CrystalCell::Atom.new("Li", [0.0, 0.0, 0.0], "#Li-001"), cell.atoms[0])
|
|
255
|
+
assert_equal(
|
|
256
|
+
CrystalCell::Atom.new("Ge", [0.5, 0.0, 0.0], "#Ge-002"), cell.atoms[1])
|
|
257
|
+
assert_equal(
|
|
258
|
+
CrystalCell::Atom.new("O", [0.5, 0.5, 0.0], "#O--003"), cell.atoms[2])
|
|
259
|
+
end
|
|
231
260
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
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])
|
|
262
|
-
end
|
|
261
|
+
def test_load_file
|
|
262
|
+
cell = VaspUtils::Poscar.load_file("test/poscar/POSCAR.4-0")
|
|
263
|
+
assert_equal("sample0", cell.comment)
|
|
264
|
+
assert_equal(
|
|
265
|
+
CrystalCell::LatticeAxes.new( [
|
|
266
|
+
[1.0, 0.0, 0.0 ],
|
|
267
|
+
[0.0, 1.0, 0.0 ],
|
|
268
|
+
[0.0, 0.0, 1.0 ],
|
|
269
|
+
]),
|
|
270
|
+
cell.axes
|
|
271
|
+
)
|
|
272
|
+
assert_equal(
|
|
273
|
+
CrystalCell::Atom.new(0, [0.0, 0.0, 0.0], "#Li-001"), cell.atoms[0])
|
|
274
|
+
assert_equal(
|
|
275
|
+
CrystalCell::Atom.new(1, [0.5, 0.0, 0.0], "#Ge-002"), cell.atoms[1])
|
|
276
|
+
assert_equal(
|
|
277
|
+
CrystalCell::Atom.new(2, [0.5, 0.5, 0.0], "#O--003"), cell.atoms[2])
|
|
263
278
|
|
|
264
|
-
def test_load_file
|
|
265
|
-
cell = VaspUtils::Poscar.load_file("test/poscar/POSCAR.4-0")
|
|
266
|
-
assert_equal("sample0", cell.comment)
|
|
267
|
-
assert_equal(
|
|
268
|
-
LatticeAxes.new( [
|
|
269
|
-
[1.0, 0.0, 0.0 ],
|
|
270
|
-
[0.0, 1.0, 0.0 ],
|
|
271
|
-
[0.0, 0.0, 1.0 ],
|
|
272
|
-
]),
|
|
273
|
-
cell.axes
|
|
274
|
-
)
|
|
275
|
-
assert_equal(
|
|
276
|
-
Atom.new(0, [0.0, 0.0, 0.0], "#Li-001"), cell.atoms[0])
|
|
277
|
-
assert_equal(
|
|
278
|
-
Atom.new(1, [0.5, 0.0, 0.0], "#Ge-002"), cell.atoms[1])
|
|
279
|
-
assert_equal(
|
|
280
|
-
Atom.new(2, [0.5, 0.5, 0.0], "#O--003"), cell.atoms[2])
|
|
281
279
|
|
|
282
|
-
|
|
280
|
+
assert_raise(VaspUtils::Poscar::ParseError) {
|
|
281
|
+
VaspUtils::Poscar.load_file("test/poscar/NOT_POSCAR")
|
|
282
|
+
}
|
|
283
|
+
end
|
|
283
284
|
end
|
data/test/test_potcar.rb
CHANGED
|
@@ -7,39 +7,39 @@ require "vasputils/setting.rb"
|
|
|
7
7
|
|
|
8
8
|
class TC_Potcar < Test::Unit::TestCase
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
def setup
|
|
11
|
+
@p0 = VaspUtils::Potcar.load_file("test/potcar/POTCAR" )
|
|
12
|
+
@p1 = VaspUtils::Potcar.load_file("test/potcar/POTCAR.dummy" )
|
|
13
|
+
@p2 = VaspUtils::Potcar.load_file("test/potcar/POTCAR.allElement")
|
|
14
|
+
end
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
def test_get_filename
|
|
17
|
+
assert_equal("test/potcar/POTCAR" , @p0[:name])
|
|
18
|
+
assert_equal("test/potcar/POTCAR.dummy" , @p1[:name])
|
|
19
|
+
assert_equal("test/potcar/POTCAR.allElement", @p2[:name])
|
|
20
|
+
end
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
22
|
+
def test_elements
|
|
23
|
+
assert_equal([ "Li", "Ge", "O" ], @p0[:elements])
|
|
24
|
+
assert_equal([ "Li", "Ge", "O" ], @p1[:elements])
|
|
25
|
+
correct = [
|
|
26
|
+
"Ac", "Ac", "Ag", "Al", "Al", "Ar", "As", "Au", "B", "B", "B", "Ba",
|
|
27
|
+
"Be", "Be", "Bi", "Bi", "Br", "C", "C", "C", "Ca", "Ca", "Cd", "Ce",
|
|
28
|
+
"Ce", "Cl", "Cl", "Co", "Cr", "Cr", "Cs", "Cu", "Cu", "Dy",
|
|
29
|
+
"Er", "Er", "Eu", "Eu", "F", "F", "F", "Fe", "Fe", "Ga", "Ga", "Ga",
|
|
30
|
+
"Gd", "Gd", "Ge", "Ge", "Ge", "H", "H", "H", "H", "H", "H", "He",
|
|
31
|
+
"Hf", "Hf", "Hg", "Ho", "I", "In", "In", "Ir", "K", "K", "Kr",
|
|
32
|
+
"La", "La", "Li", "Li", "Lu", "Lu", "Mg", "Mg", "Mn", "Mn",
|
|
33
|
+
"Mo", "Mo", "N", "N", "N", "Na", "Na", "Na", "Nb", "Nb", "Nd", "Nd",
|
|
34
|
+
"Ne", "Ni", "Ni", "Np", "Np", "O", "O", "O", "Os", "Os", "P", "P",
|
|
35
|
+
"Pa", "Pa", "Pb", "Pb", "Pd", "Pd", "Pm", "Pm", "Pr", "Pr", "Pt",
|
|
36
|
+
"Pu", "Pu", "Rb", "Rb", "Re", "Re", "Rh", "Rh", "Ru", "Ru", "S", "S",
|
|
37
|
+
"Sb", "Sc", "Se", "Si", "Si", "Sm", "Sm", "Sn", "Sn", "Sr",
|
|
38
|
+
"Ta", "Ta", "Tb", "Tc", "Tc", "Te", "Th", "Th", "Ti", "Ti", "Ti",
|
|
39
|
+
"Tl", "Tl", "Tm", "Tm", "U", "U", "V", "V", "V", "W", "W", "X", "Y",
|
|
40
|
+
"Yb", "Yb", "Zn", "Zr", "Zr"]
|
|
41
|
+
assert_equal( correct, @p2[:elements])
|
|
42
|
+
end
|
|
43
43
|
|
|
44
44
|
end
|
|
45
45
|
|