class VaspInputTest(PymatgenTest): def setUp(self): filepath = self.TEST_FILES_DIR / "INCAR" incar = Incar.from_file(filepath) filepath = self.TEST_FILES_DIR / "POSCAR" poscar = Poscar.from_file(filepath, check_for_POTCAR=False) if "PMG_VASP_PSP_DIR" not in os.environ: os.environ["PMG_VASP_PSP_DIR"] = str(self.TEST_FILES_DIR) filepath = self.TEST_FILES_DIR / "POTCAR" potcar = Potcar.from_file(filepath) filepath = self.TEST_FILES_DIR / "KPOINTS.auto" kpoints = Kpoints.from_file(filepath) self.vinput = VaspInput(incar, kpoints, poscar, potcar) def test_to_from_dict(self): d = self.vinput.as_dict() vinput = VaspInput.from_dict(d) comp = vinput["POSCAR"].structure.composition self.assertEqual(comp, Composition("Fe4P4O16")) def test_write(self): tmp_dir = Path("VaspInput.testing") self.vinput.write_input(tmp_dir) filepath = tmp_dir / "INCAR" incar = Incar.from_file(filepath) self.assertEqual(incar["NSW"], 99) for name in ("INCAR", "POSCAR", "POTCAR", "KPOINTS"): (tmp_dir / name).unlink() tmp_dir.rmdir() def test_run_vasp(self): # To add some test. with ScratchDir(".") as d: self.vinput.run_vasp(d, vasp_cmd=["cat", "INCAR"]) with open(os.path.join(d, "vasp.out"), "r") as f: output = f.read() self.assertEqual(output.split("\n")[0], "ALGO = Damped") def test_from_directory(self): vi = VaspInput.from_directory( self.TEST_FILES_DIR, optional_files={"CONTCAR.Li2O": Poscar} ) self.assertEqual(vi["INCAR"]["ALGO"], "Damped") self.assertIn("CONTCAR.Li2O", vi) d = vi.as_dict() vinput = VaspInput.from_dict(d) self.assertIn("CONTCAR.Li2O", vinput)
class VaspInputTest(PymatgenTest): def setUp(self): filepath = self.TEST_FILES_DIR / 'INCAR' incar = Incar.from_file(filepath) filepath = self.TEST_FILES_DIR / 'POSCAR' poscar = Poscar.from_file(filepath,check_for_POTCAR=False) if "PMG_VASP_PSP_DIR" not in os.environ: os.environ["PMG_VASP_PSP_DIR"] = str(self.TEST_FILES_DIR) filepath = self.TEST_FILES_DIR / 'POTCAR' potcar = Potcar.from_file(filepath) filepath = self.TEST_FILES_DIR / 'KPOINTS.auto' kpoints = Kpoints.from_file(filepath) self.vinput = VaspInput(incar, kpoints, poscar, potcar) def test_to_from_dict(self): d = self.vinput.as_dict() vinput = VaspInput.from_dict(d) comp = vinput["POSCAR"].structure.composition self.assertEqual(comp, Composition("Fe4P4O16")) def test_write(self): tmp_dir = Path("VaspInput.testing") self.vinput.write_input(tmp_dir) filepath = tmp_dir / "INCAR" incar = Incar.from_file(filepath) self.assertEqual(incar["NSW"], 99) for name in ("INCAR", "POSCAR", "POTCAR", "KPOINTS"): (tmp_dir / name).unlink() tmp_dir.rmdir() def test_run_vasp(self): # To add some test. with ScratchDir(".") as d: self.vinput.run_vasp(d, vasp_cmd=["cat", "INCAR"]) with open(os.path.join(d, "vasp.out"), "r") as f: output = f.read() self.assertEqual(output.split("\n")[0], "ALGO = Damped") def test_from_directory(self): vi = VaspInput.from_directory(self.TEST_FILES_DIR, optional_files={"CONTCAR.Li2O": Poscar}) self.assertEqual(vi["INCAR"]["ALGO"], "Damped") self.assertIn("CONTCAR.Li2O", vi) d = vi.as_dict() vinput = VaspInput.from_dict(d) self.assertIn("CONTCAR.Li2O", vinput)
class VaspInputTest(unittest.TestCase): def setUp(self): filepath = os.path.join(test_dir, 'INCAR') incar = Incar.from_file(filepath) filepath = os.path.join(test_dir, 'POSCAR') poscar = Poscar.from_file(filepath) if "VASP_PSP_DIR" not in os.environ: test_potcar_dir = os.path.abspath( os.path.join(os.path.dirname(__file__), "..", "..", "..", "..", "test_files")) os.environ["VASP_PSP_DIR"] = test_potcar_dir filepath = os.path.join(test_dir, 'POTCAR') potcar = Potcar.from_file(filepath) filepath = os.path.join(test_dir, 'KPOINTS.auto') kpoints = Kpoints.from_file(filepath) self.vinput = VaspInput(incar, kpoints, poscar, potcar) def test_to_from_dict(self): d = self.vinput.as_dict() vinput = VaspInput.from_dict(d) comp = vinput["POSCAR"].structure.composition self.assertEqual(comp, Composition("Fe4P4O16")) def test_write(self): tmp_dir = "VaspInput.testing" self.vinput.write_input(tmp_dir) filepath = os.path.join(tmp_dir, "INCAR") incar = Incar.from_file(filepath) self.assertEqual(incar["NSW"], 99) for name in ("INCAR", "POSCAR", "POTCAR", "KPOINTS"): os.remove(os.path.join(tmp_dir, name)) os.rmdir(tmp_dir) def test_from_directory(self): vi = VaspInput.from_directory(test_dir, optional_files={"CONTCAR.Li2O": Poscar}) self.assertEqual(vi["INCAR"]["ALGO"], "Damped") self.assertIn("CONTCAR.Li2O", vi) d = vi.as_dict() vinput = VaspInput.from_dict(d) self.assertIn("CONTCAR.Li2O", vinput)