Exemple #1
0
    def test_brmix(self):
        h = VaspErrorHandler("vasp.brmix")
        self.assertEqual(h.check(), True)

        # The first (no good OUTCAR) correction, check IMIX
        d = h.correct()
        self.assertEqual(d["errors"], ['brmix'])
        vi = VaspInput.from_directory(".")
        self.assertEqual(vi["INCAR"]["IMIX"], 1)
        self.assertTrue(os.path.exists("CHGCAR"))

        # The next correction check Gamma and evenize
        h.correct()
        vi = VaspInput.from_directory(".")
        self.assertFalse("IMIX" in vi["INCAR"])
        self.assertTrue(os.path.exists("CHGCAR"))
        if vi["KPOINTS"].style == Kpoints.supported_modes.Gamma and vi["KPOINTS"].num_kpts < 1:
            all_kpts_even = all([
                bool(n % 2 == 0) for n in vi["KPOINTS"].kpts[0]
            ])
            self.assertFalse(all_kpts_even)

        # The next correction check ISYM and no CHGCAR
        h.correct()
        vi = VaspInput.from_directory(".")
        self.assertEqual(vi["INCAR"]["ISYM"], 0)
        self.assertFalse(os.path.exists("CHGCAR"))

        shutil.copy("INCAR.nelect", "INCAR")
        h = VaspErrorHandler("vasp.brmix")
        self.assertEqual(h.check(), False)
        d = h.correct()
        self.assertEqual(d["errors"], [])
Exemple #2
0
    def test_static_run_correction(self):
        shutil.copy("OSZICAR.empty", "OSZICAR")
        s1 = Structure.from_file("POSCAR")
        incar = Incar.from_file("INCAR")

        # Test for NSW 0
        incar.update({"NSW": 0})
        incar.write_file("INCAR")
        h = VaspErrorHandler("vasp.out")
        self.assertEqual(h.check(), True)
        d = h.correct()
        self.assertEqual(d['errors'], ['zpotrf'])
        s2 = Structure.from_file("POSCAR")
        self.assertAlmostEqual(s2.volume, s1.volume, 3)
        self.assertEqual(Incar.from_file("INCAR")["ISYM"], 0)

        # Test for ISIF 0-2
        incar.update({"NSW":99, "ISIF":2})
        incar.write_file("INCAR")
        h = VaspErrorHandler("vasp.out")
        self.assertEqual(h.check(), True)
        d = h.correct()
        self.assertEqual(d['errors'], ['zpotrf'])
        s2 = Structure.from_file("POSCAR")
        self.assertAlmostEqual(s2.volume, s1.volume, 3)
        self.assertEqual(Incar.from_file("INCAR")["ISYM"], 0)
Exemple #3
0
 def test_dentet(self):
     h = VaspErrorHandler("vasp.dentet")
     h.check()
     d = h.correct()
     self.assertEqual(d["errors"], ['dentet'])
     self.assertEqual(d["actions"],
                      [{'action': {'_set': {'ISMEAR': 0}},
                        'dict': 'INCAR'}])
 def test_too_few_bands(self):
     os.chdir(os.path.join(test_dir, "too_few_bands"))
     shutil.copy("INCAR", "INCAR.orig")
     h = VaspErrorHandler("vasp.too_few_bands")
     h.check()
     d = h.correct()
     self.assertEqual(d["errors"], ['too_few_bands'])
     self.assertEqual(d["actions"],
                      [{'action': {'_set': {'NBANDS': 501}},
                        'dict': 'INCAR'}])
     os.remove("error.1.tar.gz")
     shutil.move("INCAR.orig", "INCAR")
    def test_brmix(self):
        h = VaspErrorHandler("vasp.brmix")
        self.assertEqual(h.check(), True)
        d = h.correct()
        self.assertEqual(d["errors"], ['brmix'])
        self.assertFalse(os.path.exists("CHGCAR"))

        shutil.copy("INCAR.nelect", "INCAR")
        h = VaspErrorHandler("vasp.brmix")
        self.assertEqual(h.check(), False)
        d = h.correct()
        self.assertEqual(d["errors"], [])
Exemple #6
0
 def test_rot_matrix(self):
     if "PMG_VASP_PSP_DIR" not in os.environ:
         os.environ["PMG_VASP_PSP_DIR"] = test_dir
     subdir = os.path.join(test_dir, "poscar_error")
     os.chdir(subdir)
     shutil.copy("KPOINTS", "KPOINTS.orig")
     h = VaspErrorHandler()
     h.check()
     d = h.correct()
     self.assertEqual(d["errors"], ["rot_matrix"])
     os.remove(os.path.join(subdir, "error.1.tar.gz"))
     shutil.copy("KPOINTS.orig", "KPOINTS")
     os.remove("KPOINTS.orig")
Exemple #7
0
 def test_nicht_konv(self):
     h = VaspErrorHandler("vasp.nicht_konvergent")
     h.natoms_large_cell = 5
     self.assertEqual(h.check(), True)
     self.assertEqual(h.correct()["errors"], ["nicht_konv"])
     i = Incar.from_file("INCAR")
     self.assertEqual(i["LREAL"], True)
Exemple #8
0
    def test_subspace(self):
        h = VaspErrorHandler("vasp.subspace")
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ['subspacematrix'])
        self.assertEqual(d["actions"],
                         [{'action': {'_set': {'LREAL': False}},
                           'dict': 'INCAR'}])

        # 2nd error should set PREC to accurate.
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ['subspacematrix'])
        self.assertEqual(d["actions"],
                         [{'action': {'_set': {'PREC': 'Accurate'}},
                           'dict': 'INCAR'}])
    def test_aliasing(self):
        os.chdir(os.path.join(test_dir, "aliasing"))
        shutil.copy("INCAR", "INCAR.orig")
        h = VaspErrorHandler("vasp.aliasing")
        h.check()
        d = h.correct()
        shutil.move("INCAR.orig", "INCAR")
        clean_dir()
        os.chdir(test_dir)

        self.assertEqual(d["errors"], ['aliasing'])
        self.assertEqual(d["actions"],
                         [{'action': {'_set': {'NGX': 34}},
                           'dict': 'INCAR'}, {"file": "CHGCAR",
                            "action": {"_file_delete": {'mode': "actual"}}},
                          {"file": "WAVECAR",
                            "action": {"_file_delete": {'mode': "actual"}}}])
Exemple #10
0
 def test_first_step(self):
     shutil.copy("OSZICAR.empty", "OSZICAR")
     s1 = Structure.from_file("POSCAR")
     h = VaspErrorHandler("vasp.out")
     self.assertEqual(h.check(), True)
     d = h.correct()
     self.assertEqual(d['errors'], ['zpotrf'])
     s2 = Structure.from_file("POSCAR")
     self.assertAlmostEqual(s2.volume, s1.volume * 1.2 ** 3, 3)
Exemple #11
0
 def test_rhosyg(self):
     h = VaspErrorHandler("vasp.rhosyg")
     self.assertEqual(h.check(), True)
     self.assertEqual(h.correct()["errors"], ["rhosyg"])
     i = Incar.from_file("INCAR")
     self.assertEqual(i["SYMPREC"], 1e-4)
     self.assertEqual(h.correct()["errors"], ["rhosyg"])
     i = Incar.from_file("INCAR")
     self.assertEqual(i["ISYM"], 0)
Exemple #12
0
 def test_eddrmm(self):
     h = VaspErrorHandler("vasp.eddrmm")
     self.assertEqual(h.check(), True)
     self.assertEqual(h.correct()["errors"], ["eddrmm"])
     i = Incar.from_file("INCAR")
     self.assertEqual(i["ALGO"], "Normal")
     self.assertEqual(h.correct()["errors"], ["eddrmm"])
     i = Incar.from_file("INCAR")
     self.assertEqual(i["POTIM"], 0.25)
Exemple #13
0
 def test_too_few_bands(self):
     os.chdir(os.path.join(test_dir, "too_few_bands"))
     shutil.copy("INCAR", "INCAR.orig")
     h = VaspErrorHandler("vasp.too_few_bands")
     h.check()
     d = h.correct()
     self.assertEqual(d["errors"], ['too_few_bands'])
     self.assertEqual(d["actions"], [{
         'action': {
             '_set': {
                 'NBANDS': 501
             }
         },
         'dict': 'INCAR'
     }])
     clean_dir()
     shutil.move("INCAR.orig", "INCAR")
     os.chdir(test_dir)
Exemple #14
0
 def test_rhosyg(self):
     h = VaspErrorHandler("vasp.rhosyg")
     self.assertEqual(h.check(), True)
     self.assertEqual(h.correct()["errors"], ["rhosyg"])
     i = Incar.from_file("INCAR")
     self.assertEqual(i["SYMPREC"], 1e-4)
     self.assertEqual(h.correct()["errors"], ["rhosyg"])
     i = Incar.from_file("INCAR")
     self.assertEqual(i["ISYM"], 0)
Exemple #15
0
 def test_eddrmm(self):
     h = VaspErrorHandler("vasp.eddrmm")
     self.assertEqual(h.check(), True)
     self.assertEqual(h.correct()["errors"], ["eddrmm"])
     i = Incar.from_file("INCAR")
     self.assertEqual(i["ALGO"], "Normal")
     self.assertEqual(h.correct()["errors"], ["eddrmm"])
     i = Incar.from_file("INCAR")
     self.assertEqual(i["POTIM"], 0.25)
Exemple #16
0
 def test_first_step(self):
     shutil.copy("OSZICAR.empty", "OSZICAR")
     s1 = Structure.from_file("POSCAR")
     h = VaspErrorHandler("vasp.out")
     self.assertEqual(h.check(), True)
     d = h.correct()
     self.assertEqual(d['errors'], ['zpotrf'])
     s2 = Structure.from_file("POSCAR")
     self.assertAlmostEqual(s2.volume, s1.volume * 1.2**3, 3)
Exemple #17
0
 def test_potim_correction(self):
     shutil.copy("OSZICAR.one_step", "OSZICAR")
     s1 = Structure.from_file("POSCAR")
     h = VaspErrorHandler("vasp.out")
     self.assertEqual(h.check(), True)
     d = h.correct()
     self.assertEqual(d['errors'], ['zpotrf'])
     s2 = Structure.from_file("POSCAR")
     self.assertAlmostEqual(s2.volume, s1.volume, 3)
     self.assertAlmostEqual(Incar.from_file("INCAR")['POTIM'], 0.25)
Exemple #18
0
 def test_potim_correction(self):
     shutil.copy("OSZICAR.one_step", "OSZICAR")
     s1 = Structure.from_file("POSCAR")
     h = VaspErrorHandler("vasp.out")
     self.assertEqual(h.check(), True)
     d = h.correct()
     self.assertEqual(d['errors'], ['zpotrf'])
     s2 = Structure.from_file("POSCAR")
     self.assertAlmostEqual(s2.volume, s1.volume, 3)
     self.assertAlmostEqual(Incar.from_file("INCAR")['POTIM'], 0.25)
Exemple #19
0
    def test_check_correct(self):
        h = VaspErrorHandler("vasp.teterror")
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ['tet'])
        self.assertEqual(d["actions"],
                         [{'action': {'_set': {'ISMEAR': 0}},
                           'dict': 'INCAR'}])
        h = VaspErrorHandler("vasp.sgrcon")
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ['rot_matrix'])
        self.assertEqual(set([a["dict"] for a in d["actions"]]),
                         {"KPOINTS"})

        h = VaspErrorHandler("vasp.real_optlay")
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ['real_optlay'])
        self.assertEqual(d["actions"],
                         [{'action': {'_set': {'LREAL': False}},
                           'dict': 'INCAR'}])

        subdir = os.path.join(test_dir, "large_cell_real_optlay")
        os.chdir(subdir)
        shutil.copy("INCAR", "INCAR.orig")
        h = VaspErrorHandler()
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ['real_optlay'])
        vi = VaspInput.from_directory(".")
        self.assertEqual(vi["INCAR"]["LREAL"], True)
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ['real_optlay'])
        vi = VaspInput.from_directory(".")
        self.assertEqual(vi["INCAR"]["LREAL"], False)
        shutil.copy("INCAR.orig", "INCAR")
        os.remove("INCAR.orig")
        os.remove("error.1.tar.gz")
        os.remove("error.2.tar.gz")
        os.chdir(test_dir)
Exemple #20
0
    def test_check_correct(self):
        h = VaspErrorHandler("vasp.teterror")
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ['tet'])
        self.assertEqual(d["actions"],
                         [{'action': {'_set': {'ISMEAR': 0}},
                           'dict': 'INCAR'}])
        h = VaspErrorHandler("vasp.sgrcon")
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ['rot_matrix'])
        self.assertEqual(set([a["dict"] for a in d["actions"]]),
                         {"KPOINTS"})

        h = VaspErrorHandler("vasp.real_optlay")
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ['real_optlay'])
        self.assertEqual(d["actions"],
                         [{'action': {'_set': {'LREAL': False}},
                           'dict': 'INCAR'}])

        subdir = os.path.join(test_dir, "large_cell_real_optlay")
        os.chdir(subdir)
        shutil.copy("INCAR", "INCAR.orig")
        h = VaspErrorHandler()
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ['real_optlay'])
        vi = VaspInput.from_directory(".")
        self.assertEqual(vi["INCAR"]["LREAL"], True)
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ['real_optlay'])
        vi = VaspInput.from_directory(".")
        self.assertEqual(vi["INCAR"]["LREAL"], False)
        shutil.copy("INCAR.orig", "INCAR")
        os.remove("INCAR.orig")
        os.remove("error.1.tar.gz")
        os.remove("error.2.tar.gz")
        os.chdir(test_dir)
Exemple #21
0
    def test_check_correct(self):
        h = VaspErrorHandler("vasp.teterror")
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ['tet'])
        self.assertEqual(d["actions"], [{
            'action': {
                '_set': {
                    'ISMEAR': 0
                }
            },
            'dict': 'INCAR'
        }])
        h = VaspErrorHandler("vasp.sgrcon")
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ['rot_matrix'])
        self.assertEqual(set([a["dict"] for a in d["actions"]]), {"KPOINTS"})

        h = VaspErrorHandler("vasp.real_optlay")
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ['real_optlay'])
        self.assertEqual(d["actions"], [{
            'action': {
                '_set': {
                    'LREAL': False
                }
            },
            'dict': 'INCAR'
        }])
Exemple #22
0
    def test_brmix(self):
        h = VaspErrorHandler("vasp.brmix")
        self.assertEqual(h.check(), True)
        d = h.correct()
        self.assertEqual(d["errors"], ['brmix'])

        vi = VaspInput.from_directory(".")
        chgcar_exists = os.path.exists("CHGCAR")
        if h.error_count['brmix'] > 1:
            self.assertFalse(chgcar_exists)
        else:
            self.assertTrue(chgcar_exists)
            if vi["KPOINTS"].style == Kpoints.supported_modes.Gamma and vi["KPOINTS"].num_kpts < 1:
                all_kpts_even = all([
                    bool(n % 2 == 0) for n in vi["KPOINTS"].kpts[0]
                ])
                self.assertFalse(all_kpts_even)

        shutil.copy("INCAR.nelect", "INCAR")
        h = VaspErrorHandler("vasp.brmix")
        self.assertEqual(h.check(), False)
        d = h.correct()
        self.assertEqual(d["errors"], [])
Exemple #23
0
    def test_brmix(self):
        h = VaspErrorHandler("vasp.brmix")
        self.assertEqual(h.check(), True)
        d = h.correct()
        self.assertEqual(d["errors"], ['brmix'])

        vi = VaspInput.from_directory(".")
        chgcar_exists = os.path.exists("CHGCAR")
        if h.error_count['brmix'] > 1:
            self.assertFalse(chgcar_exists)
        else:
            self.assertTrue(chgcar_exists)
            if vi["KPOINTS"].style == Kpoints.supported_modes.Gamma and vi[
                    "KPOINTS"].num_kpts < 1:
                all_kpts_even = all(
                    [bool(n % 2 == 0) for n in vi["KPOINTS"].kpts[0]])
                self.assertFalse(all_kpts_even)

        shutil.copy("INCAR.nelect", "INCAR")
        h = VaspErrorHandler("vasp.brmix")
        self.assertEqual(h.check(), False)
        d = h.correct()
        self.assertEqual(d["errors"], [])
Exemple #24
0
    def test_gradient_not_orthogonal(self):
        h = VaspErrorHandler("vasp.gradient_not_orthogonal")
        self.assertEqual(h.check(), True)
        self.assertIn("grad_not_orth", h.correct()["errors"])
        i = Incar.from_file("INCAR")
        self.assertEqual(i["ALGO"], "Fast")

        shutil.copy("INCAR.gga_all", "INCAR")
        i = Incar.from_file("INCAR")
        self.assertEqual(i["ALGO"], "All")
        h = VaspErrorHandler("vasp.gradient_not_orthogonal")
        self.assertEqual(h.check(), True)
        self.assertIn("grad_not_orth", h.correct()["errors"])
        i = Incar.from_file("INCAR")
        self.assertEqual(i["ALGO"], "Normal")

        shutil.copy("INCAR.hybrid_normal", "INCAR")
        i = Incar.from_file("INCAR")
        self.assertEqual(i["ALGO"], "Normal")
        h = VaspErrorHandler("vasp.gradient_not_orthogonal")
        self.assertEqual(h.check(), True)
        self.assertIn("grad_not_orth", h.correct()["errors"])
        i = Incar.from_file("INCAR")
        self.assertEqual(i["ALGO"], "Normal")

        shutil.copy("INCAR.hybrid_all", "INCAR")
        i = Incar.from_file("INCAR")
        self.assertEqual(i["ALGO"], "All")
        h = VaspErrorHandler("vasp.gradient_not_orthogonal")
        self.assertEqual(h.check(), True)
        self.assertIn("grad_not_orth", h.correct()["errors"])
        i = Incar.from_file("INCAR")
        self.assertEqual(i["ALGO"], "All")

        shutil.copy("INCAR.metagga_all", "INCAR")
        i = Incar.from_file("INCAR")
        self.assertEqual(i["ALGO"], "All")
        h = VaspErrorHandler("vasp.gradient_not_orthogonal")
        self.assertEqual(h.check(), True)
        self.assertIn("grad_not_orth", h.correct()["errors"])
        i = Incar.from_file("INCAR")
        self.assertEqual(i["ALGO"], "All")

        shutil.copy("INCAR.metagga_fast", "INCAR")
        i = Incar.from_file("INCAR")
        self.assertEqual(i["ALGO"], "Fast")
        h = VaspErrorHandler("vasp.gradient_not_orthogonal")
        self.assertEqual(h.check(), True)
        self.assertIn("grad_not_orth", h.correct()["errors"])
        i = Incar.from_file("INCAR")
        self.assertEqual(i["ALGO"], "Fast")
Exemple #25
0
    def test_check_correct(self):
        h = VaspErrorHandler("vasp.teterror")
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ["tet"])
        self.assertEqual(
            d["actions"],
            [{
                "action": {
                    "_set": {
                        "ISMEAR": 0,
                        "SIGMA": 0.05
                    }
                },
                "dict": "INCAR"
            }],
        )

        h = VaspErrorHandler("vasp.teterror",
                             errors_subset_to_catch=["eddrmm"])
        self.assertFalse(h.check())

        h = VaspErrorHandler("vasp.sgrcon")
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ["rot_matrix"])
        self.assertEqual({a["dict"] for a in d["actions"]}, {"KPOINTS"})

        h = VaspErrorHandler("vasp.real_optlay")
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ["real_optlay"])
        self.assertEqual(d["actions"], [{
            "action": {
                "_set": {
                    "LREAL": False
                }
            },
            "dict": "INCAR"
        }])
    def test_check_correct(self):
        h = VaspErrorHandler("vasp.teterror")
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ['tet'])
        self.assertEqual(d["actions"],
                         [{'action': {'_set': {'ISMEAR': 0}},
                           'dict': 'INCAR'}])
        h = VaspErrorHandler("vasp.classrotmat")
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ['rot_matrix'])
        self.assertEqual(set([a["dict"] for a in d["actions"]]),
                         set(["POSCAR", "INCAR"]))

        h = VaspErrorHandler("vasp.real_optlay")
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ['real_optlay'])
        self.assertEqual(d["actions"],
                         [{'action': {'_set': {'LREAL': False}},
                           'dict': 'INCAR'}])
Exemple #27
0
    def test_brions(self):
        shutil.copy("INCAR.ibrion", "INCAR")
        h = VaspErrorHandler("vasp.brions")
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ["brions"])
        i = Incar.from_file("INCAR")
        self.assertEqual(i["IBRION"], 1)
        self.assertAlmostEqual(i["POTIM"], 1.5)

        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ["brions"])
        i = Incar.from_file("INCAR")
        self.assertEqual(i["IBRION"], 2)
        self.assertAlmostEqual(i["POTIM"], 1.4)

        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ["brions"])
        i = Incar.from_file("INCAR")
        self.assertEqual(i["IBRION"], 2)
        self.assertAlmostEqual(i["POTIM"], 1.5)
Exemple #28
0
 def test_point_group(self):
     h = VaspErrorHandler("vasp.point_group")
     self.assertEqual(h.check(), True)
     self.assertEqual(h.correct()["errors"], ["point_group"])
     i = Incar.from_file("INCAR")
     self.assertEqual(i["ISYM"], 0)
Exemple #29
0
    def test_zbrent(self):
        h = VaspErrorHandler("vasp.zbrent")
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ["zbrent"])
        i = Incar.from_file("INCAR")
        self.assertEqual(i["IBRION"], 1)

        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ["zbrent"])
        i = Incar.from_file("INCAR")
        self.assertEqual(i["EDIFF"], 1e-6)
        self.assertEqual(i["NELMIN"], 6)

        shutil.copy("INCAR.orig", "INCAR")
        h = VaspErrorHandler("vasp.zbrent")
        h.vtst_fixes = True
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ["zbrent"])
        i = Incar.from_file("INCAR")
        self.assertEqual(i["IBRION"], 1)
        self.assertEqual(i["EDIFF"], 0.0004)

        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ["zbrent"])
        i = Incar.from_file("INCAR")
        self.assertEqual(i["EDIFF"], 1e-6)
        self.assertEqual(i["NELMIN"], 6)
        self.assertEqual(i["IBRION"], 3)
        self.assertEqual(i["IOPT"], 7)
        self.assertEqual(i["POTIM"], 0)

        shutil.copy("INCAR.ediff", "INCAR")
        h = VaspErrorHandler("vasp.zbrent")
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ["zbrent"])
        i = Incar.from_file("INCAR")
        self.assertEqual(i["IBRION"], 1)
        self.assertEqual(i["EDIFF"], 1e-6)

        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ["zbrent"])
        i = Incar.from_file("INCAR")
        self.assertEqual(i["EDIFF"], 1e-7)
        self.assertEqual(i["NELMIN"], 6)
Exemple #30
0
 def test_posmap(self):
     h = VaspErrorHandler("vasp.posmap")
     self.assertEqual(h.check(), True)
     self.assertEqual(h.correct()["errors"], ["posmap"])
     i = Incar.from_file("INCAR")
     self.assertEqual(i["SYMPREC"], 1e-6)
Exemple #31
0
 def test_edddav(self):
     h = VaspErrorHandler("vasp.edddav")
     self.assertEqual(h.check(), True)
     self.assertEqual(h.correct()["errors"], ["edddav"])
     self.assertFalse(os.path.exists("CHGCAR"))
Exemple #32
0
 def test_gradient_not_orthogonal(self):
     h = VaspErrorHandler("vasp.gradient_not_orthogonal")
     self.assertEqual(h.check(), True)
     self.assertEqual(h.correct()["errors"], ["grad_not_orth"])
     i = Incar.from_file("INCAR")
     self.assertEqual(i["ISMEAR"], 0)
Exemple #33
0
 def test_nicht_konv(self):
     h = VaspErrorHandler("vasp.nicht_konvergent")
     self.assertEqual(h.check(), True)
     self.assertEqual(h.correct()["errors"], ["nicht_konv"])
     i = Incar.from_file("INCAR")
     self.assertEqual(i["LREAL"], False)
Exemple #34
0
 def test_posmap(self):
     h = VaspErrorHandler("vasp.posmap")
     self.assertEqual(h.check(), True)
     self.assertEqual(h.correct()["errors"], ["posmap"])
     i = Incar.from_file("INCAR")
     self.assertEqual(i["SYMPREC"], 1e-6)
Exemple #35
0
 def test_algo_tet(self):
     h = VaspErrorHandler("vasp.algo_tet")
     self.assertEqual(h.check(), True)
     self.assertIn("algo_tet", h.correct()["errors"])
     i = Incar.from_file("INCAR")
     self.assertEqual(i["ISMEAR"], 0)
Exemple #36
0
 def test_pssyevx(self):
     h = VaspErrorHandler("vasp.pssyevx")
     self.assertEqual(h.check(), True)
     self.assertEqual(h.correct()["errors"], ["pssyevx"])
     i = Incar.from_file("INCAR")
     self.assertEqual(i["ALGO"], "Normal")
Exemple #37
0
 def test_symprec_noise(self):
     h = VaspErrorHandler("vasp.symprec_noise")
     self.assertEqual(h.check(), True)
     self.assertEqual(h.correct()["errors"], ["symprec_noise"])
     i = Incar.from_file("INCAR")
     self.assertEqual(i["SYMPREC"], 1e-6)
Exemple #38
0
 def test_pssyevx(self):
     h = VaspErrorHandler("vasp.pssyevx")
     self.assertEqual(h.check(), True)
     self.assertEqual(h.correct()["errors"], ["pssyevx"])
     i = Incar.from_file("INCAR")
     self.assertEqual(i["ALGO"], "Normal")
Exemple #39
0
 def test_edddav(self):
     h = VaspErrorHandler("vasp.edddav")
     self.assertEqual(h.check(), True)
     self.assertEqual(h.correct()["errors"], ["edddav"])
     self.assertFalse(os.path.exists("CHGCAR"))
Exemple #40
0
    def test_check_correct(self):
        h = VaspErrorHandler("vasp.teterror")
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ["tet"])
        self.assertEqual(
            d["actions"],
            [{
                "action": {
                    "_set": {
                        "ISMEAR": 0,
                        "SIGMA": 0.05
                    }
                },
                "dict": "INCAR"
            }],
        )

        h = VaspErrorHandler("vasp.teterror",
                             errors_subset_to_catch=["eddrmm"])
        self.assertFalse(h.check())

        h = VaspErrorHandler("vasp.sgrcon")
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ["rot_matrix"])
        self.assertEqual(set([a["dict"] for a in d["actions"]]), {"KPOINTS"})

        h = VaspErrorHandler("vasp.real_optlay")
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ["real_optlay"])
        self.assertEqual(d["actions"], [{
            "action": {
                "_set": {
                    "LREAL": False
                }
            },
            "dict": "INCAR"
        }])

        subdir = os.path.join(test_dir, "large_cell_real_optlay")
        os.chdir(subdir)
        shutil.copy("INCAR", "INCAR.orig")
        h = VaspErrorHandler()
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ["real_optlay"])
        vi = VaspInput.from_directory(".")
        self.assertEqual(vi["INCAR"]["LREAL"], True)
        h.check()
        d = h.correct()
        self.assertEqual(d["errors"], ["real_optlay"])
        vi = VaspInput.from_directory(".")
        self.assertEqual(vi["INCAR"]["LREAL"], False)
        shutil.copy("INCAR.orig", "INCAR")
        os.remove("INCAR.orig")
        os.remove("error.1.tar.gz")
        os.remove("error.2.tar.gz")
        os.chdir(test_dir)
Exemple #41
0
 def test_rot_matrix_vasp6(self):
     h = VaspErrorHandler("vasp6.sgrcon")
     self.assertEqual(h.check(), True)
     self.assertEqual(h.correct()["errors"], ["rot_matrix"])
Exemple #42
0
 def test_point_group(self):
     h = VaspErrorHandler("vasp.point_group")
     self.assertEqual(h.check(), True)
     self.assertEqual(h.correct()["errors"], ["point_group"])
     i = Incar.from_file("INCAR")
     self.assertEqual(i["ISYM"], 0)
Exemple #43
0
 def test_gradient_not_orthogonal(self):
     h = VaspErrorHandler("vasp.gradient_not_orthogonal")
     self.assertEqual(h.check(), True)
     self.assertEqual(h.correct()["errors"], ["grad_not_orth"])
     i = Incar.from_file("INCAR")
     self.assertEqual(i["ISMEAR"], 0)
Exemple #44
0
                 'garden/dev', 'garden')
             try:
                 os.chdir(launch_dir)
             except:
                 print '    |===> could not find launch directory in usual locations'
                 lpdb.rerun_fw(fw['fw_id'])
                 print '    |===> marked for RERUN'
                 counter['LOCATION_NOT_FOUND'] += 1
                 continue
     print '    |===>', launch_dir
     vaspout = os.path.join(launch_dir, "vasp.out")
     if not os.path.exists(vaspout):
         vaspout = os.path.join(launch_dir, "vasp.out.gz")
     try:
         h = VaspErrorHandler(vaspout)
         h.check()
         d = h.correct()
     except:
         counter['GGA_static_Handler_Error'] += 1
     if d['errors']:
         for err in d['errors']:
             counter['GGA_static_' + err] += 1
         if 'brmix' in d['errors']:
             #lpdb.rerun_fw(fw['fw_id'])
             print '    |===> BRMIX error -> marked for RERUN with alternative strategy'
     else:
         print '    |===> no vasp error indicated -> TODO'
         counter['GGA_STATIC_NO_VASP_ERROR'] += 1
     os.chdir(cwd)
 else:
     workflow = lpdb.workflows.find_one(
             launch_dir = launch_dir.replace('garden/dev', 'garden')
             try:
                 os.chdir(launch_dir)
             except:
                 print '    |===> could not find launch directory in usual locations'
                 lpdb.rerun_fw(fw['fw_id'])
                 print '    |===> marked for RERUN'
                 counter['LOCATION_NOT_FOUND'] += 1
                 continue
     print '    |===>', launch_dir
     vaspout = os.path.join(launch_dir, "vasp.out")
     if not os.path.exists(vaspout):
         vaspout = os.path.join(launch_dir, "vasp.out.gz")
     try:
         h = VaspErrorHandler(vaspout)
         h.check()
         d = h.correct()
     except:
         counter['GGA_static_Handler_Error'] += 1
     if d['errors']:
         for err in d['errors']:
             counter['GGA_static_' + err] += 1
         if 'brmix' in d['errors']:
             #lpdb.rerun_fw(fw['fw_id'])
             print '    |===> BRMIX error -> marked for RERUN with alternative strategy'
     else:
         print '    |===> no vasp error indicated -> TODO'
         counter['GGA_STATIC_NO_VASP_ERROR'] += 1
     os.chdir(cwd)
 else:
     workflow = lpdb.workflows.find_one(