diff --git a/pycdt/utils/tests/test_vasp.py b/pycdt/utils/tests/test_vasp.py index 9f23d31..04a4cc1 100644 --- a/pycdt/utils/tests/test_vasp.py +++ b/pycdt/utils/tests/test_vasp.py @@ -18,6 +18,7 @@ from monty.tempfile import ScratchDir from monty.serialization import loadfn from pymatgen.io.vasp.inputs import Incar, Kpoints, Poscar +from pymatgen.core.structure import Structure from pycdt.utils.vasp import make_vasp_defect_files, \ make_vasp_dielectric_files @@ -98,13 +99,36 @@ def test_hse_settings(self): self.assertTrue(0) - class VaspDielectricFilesTest(unittest.TestCase): def setUp(self): - pass + self.structure = Structure.from_file(os.path.join(file_loc, + 'POSCAR_Cr2O3')) + self.user_settings = loadfn(os.path.join(file_loc, + 'test_vasp_settings.yaml')) + self.path = 'dielectric' + self.dielectric_min = {'LVHAR': True, 'ISYM': 0, 'LPEAD': True, + 'LEPSILON': True, 'ISPIN': 2, 'IBRION': 8} + self.keys = ['EDIFF'] - def test0(self): - self.assertTrue(0) + def test_dielectric_files(self): + with ScratchDir('.'): + make_vasp_dielectric_files(self.structure, self.path) + incar = Incar.from_file(os.path.join(self.path, "INCAR")) + print incar + self.assertTrue( + self.dielectric_min.viewitems() <= incar.items()) + self.assertTrue(set(self.keys).issubset(incar)) + + def test_user_modified_dielectric_files(self): + with ScratchDir('.'): + make_vasp_dielectric_files(self.structure, self.path, + user_settings=self.user_settings) + incar = Incar.from_file(os.path.join(self.path, "INCAR")) + self.assertTrue( + self.dielectric_min.viewitems() <= incar.items()) + self.assertTrue(set(self.keys).issubset(incar)) + self.assertEqual(incar['EDIFF'], 5e-7) + self.assertEqual(incar['ENCUT'], 620) if __name__ == '__main__': unittest.main() diff --git a/pycdt/utils/vasp.py b/pycdt/utils/vasp.py index f5e6d69..8a1e359 100644 --- a/pycdt/utils/vasp.py +++ b/pycdt/utils/vasp.py @@ -71,7 +71,8 @@ class DielectricSet(MPStaticSet): def __init__(self, structure, **kwargs): user_incar_settings = kwargs.get('user_incar_settings', {}) - dielectric_settings = CONFIG['dielectric'].update(user_incar_settings) + dielectric_settings = CONFIG['dielectric'] + dielectric_settings.update(user_incar_settings) kwargs['user_incar_settings'] = dielectric_settings super(self.__class__, self).__init__(structure, lepsilon=True, **kwargs) diff --git a/test_files/test_vasp_settings.yaml b/test_files/test_vasp_settings.yaml index 4f5a8b1..c097aa6 100644 --- a/test_files/test_vasp_settings.yaml +++ b/test_files/test_vasp_settings.yaml @@ -7,4 +7,4 @@ INCAR: bulk: EDIFF: 1e-4 dielectric: - EDIFF: 1e-6 + EDIFF: 5e-7