Skip to content

Commit fe108ca

Browse files
authored
update docstrings in check_incar.py
1 parent c71c17a commit fe108ca

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

pymatgen/io/validation/check_incar.py

+17-1
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,12 @@ def __init__(
103103
task_type,
104104
fft_grid_tolerance: float,
105105
) -> None:
106+
"""
107+
Based on details of the inputted calculation, creates a set of valid inputs that
108+
must be matched (or better). Also parses some of the inputted calc parameters for easier comparison.
106109
# MK: unclear. I think a thorough docstring describing how this class init
107110
# operates, in chronological order, would be best.
111+
"""
108112
self.parameters = copy.deepcopy(parameters)
109113
self.defaults = copy.deepcopy(defaults)
110114
self.input_set = input_set
@@ -152,14 +156,15 @@ def __init__(
152156
self.defaults[key][attr] = self.defaults[key].get(attr, self._default_defaults[attr])
153157

154158
def add_defaults_to_parameters(self, valid_values_source: dict | None = None) -> None:
155-
# update parameters with initial defaults
159+
"""update parameters with initial defaults"""
156160
valid_values_source = valid_values_source or self.valid_values
157161

158162
for key in self.defaults:
159163
self.parameters[key] = self.parameters.get(key, self.defaults[key]["value"])
160164
self.valid_values[key] = valid_values_source.get(key, self.defaults[key]["value"])
161165

162166
def update_u_params(self) -> None:
167+
"""update GGA+U params"""
163168
if not self.parameters["LDAU"]:
164169
return
165170

@@ -177,6 +182,7 @@ def update_u_params(self) -> None:
177182
self.defaults[key]["operation"] = "=="
178183

179184
def update_symmetry_params(self) -> None:
185+
"""update symmetry-related parameters"""
180186
# ISYM.
181187
if self.parameters["LHFCALC"]:
182188
self.defaults["ISYM"]["value"] = 3
@@ -203,6 +209,7 @@ def update_symmetry_params(self) -> None:
203209
)
204210

205211
def update_startup_params(self) -> None:
212+
"""update VASP initialization params"""
206213
self.valid_values["ISTART"] = [0, 1, 2]
207214

208215
# ICHARG.
@@ -214,6 +221,7 @@ def update_startup_params(self) -> None:
214221
self.defaults["ICHARG"]["operation"] = "=="
215222

216223
def update_precision_params(self) -> None:
224+
"""update VASP parameters related to precision"""
217225
# LREAL.
218226
# Do NOT use the value for LREAL from the `Vasprun.parameters` object, as VASP changes these values
219227
# relative to the INCAR. Rather, check the LREAL value in the `Vasprun.incar` object.
@@ -255,6 +263,7 @@ def update_precision_params(self) -> None:
255263
}
256264

257265
def update_misc_params(self) -> None:
266+
"""Update miscellaneous params that do not fall into another category"""
258267
# EFERMI. Only available for VASP >= 6.4. Should not be set to a numerical
259268
# value, as this may change the number of electrons.
260269
# self.vasp_version = (major, minor, patch)
@@ -318,6 +327,7 @@ def update_misc_params(self) -> None:
318327
)
319328

320329
def update_hybrid_functional_params(self) -> None:
330+
"""update params related to hybrid functionals"""
321331
self.valid_values["LHFCALC"] = self.input_set.incar.get("LHFCALC", self.defaults["LHFCALC"]["value"])
322332

323333
if self.valid_values["LHFCALC"]:
@@ -339,6 +349,7 @@ def update_hybrid_functional_params(self) -> None:
339349
)
340350

341351
def update_fft_params(self) -> None:
352+
"""update parameters related to the FFT grid."""
342353
# NGX/Y/Z and NGXF/YF/ZF. Not checked if not in INCAR file (as this means the VASP default was used).
343354
if any(i for i in ["NGX", "NGY", "NGZ", "NGXF", "NGYF", "NGZF"] if i in self.incar.keys()):
344355
self.valid_values["ENMAX"] = max(
@@ -410,6 +421,7 @@ def update_lmaxmix_and_lmaxtau(self) -> None:
410421
self.defaults[key]["operation"] = "=="
411422

412423
def update_smearing(self, bandgap_tol=1.0e-4) -> None:
424+
"""update parameters related to smearing. This is based on the final bandgap obtained in the calc."""
413425
bandgap = self.task_doc.output.bandgap
414426

415427
smearing_comment = f"This is flagged as incorrect because this calculation had a bandgap of {round(bandgap,3)}"
@@ -503,6 +515,7 @@ def _get_default_nbands(self):
503515
return int(default_nbands)
504516

505517
def update_electronic_params(self):
518+
"""update electronic params"""
506519
# ENINI. Only check for IALGO = 48 / ALGO = VeryFast, as this is the only algo that uses this tag.
507520
if self.parameters["IALGO"] == 48:
508521
self.valid_values["ENINI"] = self.valid_values["ENMAX"]
@@ -560,6 +573,7 @@ def update_electronic_params(self):
560573
self.parameters["NBANDS"] = [self.parameters["NBANDS"] for _ in range(2)]
561574

562575
def update_ionic_params(self):
576+
"""update params related to ionic relaxation"""
563577
# IBRION.
564578
self.valid_values["IBRION"] = [-1, 1, 2]
565579
if self.input_set.incar.get("IBRION"):
@@ -640,9 +654,11 @@ class BasicValidator:
640654
operations: tuple[str, ...] = ("==", ">", ">=", "<", "<=", "in", "approx", "auto fail")
641655

642656
def __init__(self, global_tolerance=1.0e-4) -> None:
657+
""" """
643658
self.tolerance = global_tolerance
644659

645660
def _comparator(self, x: Any, operation: str, y: Any, **kwargs) -> bool:
661+
"""compares different values using one out of a set of supported operations"""
646662
if operation == "auto fail":
647663
c = False
648664
elif operation == "==":

0 commit comments

Comments
 (0)