Esempio n. 1
0
 def test_vasp_poscar_setup_no_poscar(self):
     compare_pos = pymatgen.io.vaspio.Poscar.from_file(os.path.join(testdir, "structure", "POSCAR_perfect"))
     myvc = VaspChecker(name="childdir", structure=compare_pos.structure)
     self.assertFalse(os.path.isfile(os.path.join(testdir, "childdir", "POSCAR")))
     myvc._vasp_poscar_setup()
     mypos = pymatgen.io.vaspio.Poscar.from_file(os.path.join(testdir, "childdir", "POSCAR"))
     self.assertEqual(mypos.structure, compare_pos.structure)
Esempio n. 2
0
 def test_vasp_poscar_setup_no_poscar(self):
     compare_pos = pymatgen.io.vaspio.Poscar.from_file(
         os.path.join(testdir, "structure", "POSCAR_perfect"))
     myvc = VaspChecker(name="childdir", structure=compare_pos.structure)
     self.assertFalse(
         os.path.isfile(os.path.join(testdir, "childdir", "POSCAR")))
     myvc._vasp_poscar_setup()
     mypos = pymatgen.io.vaspio.Poscar.from_file(
         os.path.join(testdir, "childdir", "POSCAR"))
     self.assertEqual(mypos.structure, compare_pos.structure)
Esempio n. 3
0
 def test_add_selective_dynamics(self):
     mystruc = pymatgen.io.vaspio.Poscar.from_file(os.path.join(testdir, "structure", "POSCAR_Al")).structure
     myvc = VaspChecker(name="childdir", structure=mystruc)
     myvc._vasp_poscar_setup()
     sdarr = np.zeros([4, 3], bool)
     sdarr[0][0] = True
     sdarr[1][1] = True
     sdarr[2][2] = True
     sdarr[3][0] = True
     sdarr[3][1] = True
     myvc.add_selective_dynamics_to_structure_file(sdarr)
     after_pos = pymatgen.io.vaspio.Poscar.from_file(os.path.join(testdir, "childdir", "POSCAR"))
     compare_pos = pymatgen.io.vaspio.Poscar.from_file(os.path.join(testdir, "structure", "POSCAR_Al_sd"))
     self.assertEqual(after_pos.structure, compare_pos.structure)
     self.assertEqual(after_pos.selective_dynamics, compare_pos.selective_dynamics)
Esempio n. 4
0
 def test_vasp_incar_setup(self):
     my_structure = pymatgen.io.vaspio.Poscar.from_file("structure/POSCAR_LNO").structure
     kdict = dict()
     kdict["mast_xc"] = "pw91"
     kdict["mast_pp_setup"] = {"La": "La", "Ni": "Ni_pv", "O": "O_s"}
     kdict["IBRION"] = 3
     myvc = VaspChecker(name="childdir", program_keys=kdict, structure=my_structure)
     mypos = myvc._vasp_poscar_setup()
     mypot = myvc._vasp_potcar_setup(mypos)
     myvc._vasp_incar_setup(mypot, mypos)
     myincar = pymatgen.io.vaspio.Incar.from_file(os.path.join(testdir, "childdir", "INCAR"))
     incar_compare = pymatgen.io.vaspio.Incar.from_file(os.path.join(testdir, "files", "INCAR_notags"))
     self.assertEqual(myincar, incar_compare)
     #
     kdict["ENCUT"] = 100
     kdict["mast_multiplyencut"] = 1.1
     myvc = VaspChecker(name="childdir", program_keys=kdict, structure=my_structure)
     myvc._vasp_incar_setup(mypot, mypos)
     myincar = pymatgen.io.vaspio.Incar.from_file(os.path.join(testdir, "childdir", "INCAR"))
     incar_compare = pymatgen.io.vaspio.Incar.from_file(os.path.join(testdir, "files", "INCAR_encut"))
     self.assertEqual(myincar, incar_compare)
     #
     kdict.pop("ENCUT")
     myvc = VaspChecker(name="childdir", program_keys=kdict, structure=my_structure)
     myvc._vasp_incar_setup(mypot, mypos)
     myincar = pymatgen.io.vaspio.Incar.from_file(os.path.join(testdir, "childdir", "INCAR"))
     incar_compare = pymatgen.io.vaspio.Incar.from_file(os.path.join(testdir, "files", "INCAR_multiply_110"))
     self.assertEqual(myincar, incar_compare)
     #
     kdict.pop("mast_multiplyencut")
     kdict["mast_charge"] = -2
     myvc = VaspChecker(name="childdir", program_keys=kdict, structure=my_structure)
     myvc._vasp_incar_setup(mypot, mypos)
     myincar = pymatgen.io.vaspio.Incar.from_file(os.path.join(testdir, "childdir", "INCAR"))
     incar_compare = pymatgen.io.vaspio.Incar.from_file(os.path.join(testdir, "files", "INCAR_charge_neg"))
     self.assertEqual(myincar, incar_compare)
     #
     kdict["mast_charge"] = 2
     myvc = VaspChecker(name="childdir", program_keys=kdict, structure=my_structure)
     myvc._vasp_incar_setup(mypot, mypos)
     myincar = pymatgen.io.vaspio.Incar.from_file(os.path.join(testdir, "childdir", "INCAR"))
     incar_compare = pymatgen.io.vaspio.Incar.from_file(os.path.join(testdir, "files", "INCAR_charge_pos"))
     self.assertEqual(myincar, incar_compare)
     #
     kdict.pop("mast_charge")
     kdict["mast_setmagmom"] = "3 5 2"
     myvc = VaspChecker(name="childdir", program_keys=kdict, structure=my_structure)
     myvc._vasp_incar_setup(mypot, mypos)
     myincar = pymatgen.io.vaspio.Incar.from_file(os.path.join(testdir, "childdir", "INCAR"))
     incar_compare = pymatgen.io.vaspio.Incar.from_file(os.path.join(testdir, "files", "INCAR_setmagmom"))
     self.assertEqual(myincar, incar_compare)
     #
     kdict[
         "mast_setmagmom"
     ] = "-1 -2 3 1 2 3 1 2 7 8 7 8 7 8 7 8 5 4 3 2 1 1 2 3 4 5 -5 -4 -3 -2 -1 1 2 3 4 5 4 4 4 -4"
     myvc = VaspChecker(name="childdir", program_keys=kdict, structure=my_structure)
     myvc._vasp_incar_setup(mypot, mypos)
     myincar = pymatgen.io.vaspio.Incar.from_file(os.path.join(testdir, "childdir", "INCAR"))
     incar_compare = pymatgen.io.vaspio.Incar.from_file(os.path.join(testdir, "files", "INCAR_setmagmom_indiv"))
     self.assertEqual(myincar, incar_compare)
Esempio n. 5
0
 def test_vasp_poscar_setup_mast_coordinates(self):
     kdict = dict()
     kdict["mast_coordinates"] = ["structure/POSCAR_coordinates"]  # note that the input is a list of strings
     myvc = VaspChecker(name="childdir", program_keys=kdict)
     perf_pos = pymatgen.io.vaspio.Poscar.from_file(os.path.join(testdir, "structure", "POSCAR_perfect"))
     perf_pos.write_file(os.path.join(testdir, "childdir", "POSCAR"))
     coord_pos = pymatgen.io.vaspio.Poscar.from_file(os.path.join(testdir, "structure", "POSCAR_coordinates"))
     grafted_pos = pymatgen.io.vaspio.Poscar.from_file(os.path.join(testdir, "structure", "POSCAR_grafted"))
     mypos = myvc._vasp_poscar_setup()
     self.assertEqual(mypos.structure, grafted_pos.structure)
Esempio n. 6
0
 def test_add_selective_dynamics(self):
     mystruc = pymatgen.io.vaspio.Poscar.from_file(
         os.path.join(testdir, "structure", "POSCAR_Al")).structure
     myvc = VaspChecker(name="childdir", structure=mystruc)
     myvc._vasp_poscar_setup()
     sdarr = np.zeros([4, 3], bool)
     sdarr[0][0] = True
     sdarr[1][1] = True
     sdarr[2][2] = True
     sdarr[3][0] = True
     sdarr[3][1] = True
     myvc.add_selective_dynamics_to_structure_file(sdarr)
     after_pos = pymatgen.io.vaspio.Poscar.from_file(
         os.path.join(testdir, "childdir", "POSCAR"))
     compare_pos = pymatgen.io.vaspio.Poscar.from_file(
         os.path.join(testdir, "structure", "POSCAR_Al_sd"))
     self.assertEqual(after_pos.structure, compare_pos.structure)
     self.assertEqual(after_pos.selective_dynamics,
                      compare_pos.selective_dynamics)
Esempio n. 7
0
 def test_vasp_poscar_setup_mast_coordinates(self):
     kdict = dict()
     kdict['mast_coordinates'] = [
         "structure/POSCAR_coordinates"
     ]  #note that the input is a list of strings
     myvc = VaspChecker(name="childdir", program_keys=kdict)
     perf_pos = pymatgen.io.vaspio.Poscar.from_file(
         os.path.join(testdir, "structure", "POSCAR_perfect"))
     perf_pos.write_file(os.path.join(testdir, "childdir", "POSCAR"))
     coord_pos = pymatgen.io.vaspio.Poscar.from_file(
         os.path.join(testdir, "structure", "POSCAR_coordinates"))
     grafted_pos = pymatgen.io.vaspio.Poscar.from_file(
         os.path.join(testdir, "structure", "POSCAR_grafted"))
     mypos = myvc._vasp_poscar_setup()
     self.assertEqual(mypos.structure, grafted_pos.structure)
Esempio n. 8
0
 def test_vasp_incar_setup(self):
     my_structure = pymatgen.io.vaspio.Poscar.from_file(
         "structure/POSCAR_LNO").structure
     kdict = dict()
     kdict['mast_xc'] = "pw91"
     kdict['mast_pp_setup'] = {'La': 'La', 'Ni': 'Ni_pv', 'O': 'O_s'}
     kdict['IBRION'] = 3
     myvc = VaspChecker(name="childdir",
                        program_keys=kdict,
                        structure=my_structure)
     mypos = myvc._vasp_poscar_setup()
     mypot = myvc._vasp_potcar_setup(mypos)
     myvc._vasp_incar_setup(mypot, mypos)
     myincar = pymatgen.io.vaspio.Incar.from_file(
         os.path.join(testdir, "childdir", "INCAR"))
     incar_compare = pymatgen.io.vaspio.Incar.from_file(
         os.path.join(testdir, "files", "INCAR_notags"))
     self.assertEqual(myincar, incar_compare)
     #
     kdict['ENCUT'] = 100
     kdict['mast_multiplyencut'] = 1.1
     myvc = VaspChecker(name="childdir",
                        program_keys=kdict,
                        structure=my_structure)
     myvc._vasp_incar_setup(mypot, mypos)
     myincar = pymatgen.io.vaspio.Incar.from_file(
         os.path.join(testdir, "childdir", "INCAR"))
     incar_compare = pymatgen.io.vaspio.Incar.from_file(
         os.path.join(testdir, "files", "INCAR_encut"))
     self.assertEqual(myincar, incar_compare)
     #
     kdict.pop("ENCUT")
     myvc = VaspChecker(name="childdir",
                        program_keys=kdict,
                        structure=my_structure)
     myvc._vasp_incar_setup(mypot, mypos)
     myincar = pymatgen.io.vaspio.Incar.from_file(
         os.path.join(testdir, "childdir", "INCAR"))
     incar_compare = pymatgen.io.vaspio.Incar.from_file(
         os.path.join(testdir, "files", "INCAR_multiply_110"))
     self.assertEqual(myincar, incar_compare)
     #
     kdict.pop("mast_multiplyencut")
     kdict["mast_charge"] = -2
     myvc = VaspChecker(name="childdir",
                        program_keys=kdict,
                        structure=my_structure)
     myvc._vasp_incar_setup(mypot, mypos)
     myincar = pymatgen.io.vaspio.Incar.from_file(
         os.path.join(testdir, "childdir", "INCAR"))
     incar_compare = pymatgen.io.vaspio.Incar.from_file(
         os.path.join(testdir, "files", "INCAR_charge_neg"))
     self.assertEqual(myincar, incar_compare)
     #
     kdict["mast_charge"] = 2
     myvc = VaspChecker(name="childdir",
                        program_keys=kdict,
                        structure=my_structure)
     myvc._vasp_incar_setup(mypot, mypos)
     myincar = pymatgen.io.vaspio.Incar.from_file(
         os.path.join(testdir, "childdir", "INCAR"))
     incar_compare = pymatgen.io.vaspio.Incar.from_file(
         os.path.join(testdir, "files", "INCAR_charge_pos"))
     self.assertEqual(myincar, incar_compare)
     #
     kdict.pop("mast_charge")
     kdict["mast_setmagmom"] = "3 5 2"
     myvc = VaspChecker(name="childdir",
                        program_keys=kdict,
                        structure=my_structure)
     myvc._vasp_incar_setup(mypot, mypos)
     myincar = pymatgen.io.vaspio.Incar.from_file(
         os.path.join(testdir, "childdir", "INCAR"))
     incar_compare = pymatgen.io.vaspio.Incar.from_file(
         os.path.join(testdir, "files", "INCAR_setmagmom"))
     self.assertEqual(myincar, incar_compare)
     #
     kdict[
         "mast_setmagmom"] = "-1 -2 3 1 2 3 1 2 7 8 7 8 7 8 7 8 5 4 3 2 1 1 2 3 4 5 -5 -4 -3 -2 -1 1 2 3 4 5 4 4 4 -4"
     myvc = VaspChecker(name="childdir",
                        program_keys=kdict,
                        structure=my_structure)
     myvc._vasp_incar_setup(mypot, mypos)
     myincar = pymatgen.io.vaspio.Incar.from_file(
         os.path.join(testdir, "childdir", "INCAR"))
     incar_compare = pymatgen.io.vaspio.Incar.from_file(
         os.path.join(testdir, "files", "INCAR_setmagmom_indiv"))
     self.assertEqual(myincar, incar_compare)