diff --git a/atomate/vasp/fireworks/core.py b/atomate/vasp/fireworks/core.py index 14d066de3..132a31f0e 100644 --- a/atomate/vasp/fireworks/core.py +++ b/atomate/vasp/fireworks/core.py @@ -258,11 +258,16 @@ def __init__( WriteVaspFromIOSet(structure=structure, vasp_input_set=vasp_input_set) ) # Update the INCAR for the PBESol GGA preconditioning step - pre_opt_settings = {"_set": {"GGA": "Ps", "METAGGA": None, "EDIFFG": -0.05}} + metagga_type = vasp_input_set.incar.get("METAGGA", + vasp_input_set_params.get("METAGGA", "R2scan")) + pre_opt_settings = {"_set": {"GGA": "Ps", "EDIFFG": -0.05}, + "_unset": {"METAGGA": metagga_type}} # Disable vdW for the precondition step if vasp_input_set_params.get("vdw"): - pre_opt_settings.update({"_unset": {"LUSE_VDW": True, "BPARAM": 15.7}}) + pre_opt_settings.update({"_unset": {"LUSE_VDW": True, + "BPARAM": 15.7, + "METAGGA": metagga_type}}) t.append(ModifyIncar(incar_dictmod=pre_opt_settings)) diff --git a/atomate/vasp/test_files/PBESol_pre_opt_for_SCAN_Al/inputs/INCAR b/atomate/vasp/test_files/PBESol_pre_opt_for_SCAN_Al/inputs/INCAR index 4891997de..f0b5f5321 100644 --- a/atomate/vasp/test_files/PBESol_pre_opt_for_SCAN_Al/inputs/INCAR +++ b/atomate/vasp/test_files/PBESol_pre_opt_for_SCAN_Al/inputs/INCAR @@ -19,7 +19,6 @@ LREAL = Auto LVTOT = True LWAVE = False MAGMOM = 1*0.0 -METAGGA = None NELM = 200 NSW = 99 PREC = Accurate diff --git a/atomate/vasp/test_files/PBESol_pre_opt_for_SCAN_LiF/inputs/INCAR b/atomate/vasp/test_files/PBESol_pre_opt_for_SCAN_LiF/inputs/INCAR index 19f2eb5b2..8724bcafa 100644 --- a/atomate/vasp/test_files/PBESol_pre_opt_for_SCAN_LiF/inputs/INCAR +++ b/atomate/vasp/test_files/PBESol_pre_opt_for_SCAN_LiF/inputs/INCAR @@ -19,7 +19,6 @@ LREAL = Auto LVTOT = True LWAVE = False MAGMOM = 2*0.0 -METAGGA = None NELM = 200 NSW = 99 PREC = Accurate diff --git a/atomate/vasp/test_files/PBESol_pre_opt_for_SCAN_LiF_vdw/inputs/INCAR b/atomate/vasp/test_files/PBESol_pre_opt_for_SCAN_LiF_vdw/inputs/INCAR index 19f2eb5b2..8724bcafa 100644 --- a/atomate/vasp/test_files/PBESol_pre_opt_for_SCAN_LiF_vdw/inputs/INCAR +++ b/atomate/vasp/test_files/PBESol_pre_opt_for_SCAN_LiF_vdw/inputs/INCAR @@ -19,7 +19,6 @@ LREAL = Auto LVTOT = True LWAVE = False MAGMOM = 2*0.0 -METAGGA = None NELM = 200 NSW = 99 PREC = Accurate diff --git a/atomate/vasp/test_files/PBESol_pre_opt_for_SCAN_LiH/inputs/INCAR b/atomate/vasp/test_files/PBESol_pre_opt_for_SCAN_LiH/inputs/INCAR index 9123e1992..c12f95252 100644 --- a/atomate/vasp/test_files/PBESol_pre_opt_for_SCAN_LiH/inputs/INCAR +++ b/atomate/vasp/test_files/PBESol_pre_opt_for_SCAN_LiH/inputs/INCAR @@ -19,7 +19,6 @@ LREAL = Auto LVTOT = True LWAVE = False MAGMOM = 2*-0.0 -METAGGA = None NELM = 200 NSW = 99 PREC = Accurate diff --git a/atomate/vasp/workflows/tests/test_vasp_workflows.py b/atomate/vasp/workflows/tests/test_vasp_workflows.py index a22d934f1..d80ebd7e2 100644 --- a/atomate/vasp/workflows/tests/test_vasp_workflows.py +++ b/atomate/vasp/workflows/tests/test_vasp_workflows.py @@ -587,8 +587,6 @@ def test_SCAN_no_bandgap(self): self.assertEqual(incar[p], 0.22) elif p == "ICHARG" or p == "ISTART": self.assertEqual(incar[p], 1) - elif p == "METAGGA": - self.assertEqual(incar[p], "None") elif p == "GGA": self.assertEqual(incar[p], "Ps") elif p == "EDIFFG": @@ -644,8 +642,6 @@ def test_SCAN_small_bandgap(self): self.assertEqual(incar[p], 0.22) elif p == "ICHARG" or p == "ISTART": self.assertEqual(incar[p], 1) - elif p == "METAGGA": - self.assertEqual(incar[p], "None") elif p == "GGA": self.assertEqual(incar[p], "Ps") elif p == "EDIFFG": @@ -703,8 +699,6 @@ def test_SCAN_large_bandgap(self): self.assertEqual(incar[p], 0.22) elif p == "ICHARG" or p == "ISTART": self.assertEqual(incar[p], 1) - elif p == "METAGGA": - self.assertEqual(incar[p], "None") elif p == "GGA": self.assertEqual(incar[p], "Ps") elif p == "EDIFFG": @@ -780,8 +774,6 @@ def test_SCAN_with_vdw(self): self.assertEqual(incar[p], 0.22) elif p == "ICHARG": self.assertEqual(incar[p], 1) - elif p == "METAGGA": - self.assertEqual(incar[p], "None") elif p == "GGA": self.assertEqual(incar[p], "Ps") elif p == "EDIFFG":