Skip to content

Commit fd288e4

Browse files
change electronic smearing entropy step to only be for final electronic step within an ionic step
1 parent 4eb7a28 commit fd288e4

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

pymatgen/io/validation/check_incar.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -564,12 +564,10 @@ def update_smearing_params(self, bandgap_tol=1.0e-4) -> None:
564564
# which occurs when the entropy term in the energy is greater than 1 meV/atom.
565565
self.parameters["ELECTRONIC ENTROPY"] = -1e20
566566
for ionic_step in self._ionic_steps:
567-
electronic_steps = ionic_step["electronic_steps"]
568-
for elec_step in electronic_steps:
569-
if elec_step.get("eentropy", None):
570-
self.parameters["ELECTRONIC ENTROPY"] = max(
571-
self.parameters["ELECTRONIC ENTROPY"], abs(elec_step["eentropy"] / self.structure.num_sites)
572-
)
567+
if eentropy := ionic_step["electronic_steps"][-1].get("eentropy"):
568+
self.parameters["ELECTRONIC ENTROPY"] = max(
569+
self.parameters["ELECTRONIC ENTROPY"], abs(eentropy / self.structure.num_sites)
570+
)
573571

574572
convert_eV_to_meV = 1000
575573
self.parameters["ELECTRONIC ENTROPY"] = round(self.parameters["ELECTRONIC ENTROPY"] * convert_eV_to_meV, 3)

tests/test_validation.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,8 @@ def _update_kpoints_for_test(task_doc: TaskDoc, kpoints_updates: dict):
443443
kpoints = task_doc.calcs_reversed[0].input.kpoints.as_dict()
444444
elif isinstance(task_doc.calcs_reversed[0].input.kpoints, dict):
445445
kpoints = task_doc.calcs_reversed[0].input.kpoints.copy()
446+
if isinstance(kpoints_updates, Kpoints):
447+
kpoints_updates = kpoints_updates.as_dict()
446448
kpoints.update(kpoints_updates)
447449
task_doc.calcs_reversed[0].input.kpoints = Kpoints.from_dict(kpoints)
448450

0 commit comments

Comments
 (0)