Source code for pycif.plugins.minimizers.congrad.check
[docs]
def check_options(self, chi, **kwargs):
"""Validate CONGRAD parameters and fill missing ones with defaults.
Args:
self (Plugin): CONGRAD minimizer plugin instance. Reads/sets:
``zreduc`` (default 1e-15), ``pevbnd`` (default 0.01),
``kvadim``, ``kverbose`` (default 1), ``ldsolve`` (default True),
``maxiter`` (mandatory), ``knevecout``.
chi (np.ndarray): initial iterate; used only to read its dimension.
**kwargs: unused; accepted for interface consistency.
Returns:
Plugin: ``self`` with all resolved parameters written back.
Raises:
AttributeError: if ``maxiter`` is not defined on the plugin.
"""
# Required reduction in gradient norm
self.zreduc = getattr(self, "zreduc", 1e-15)
self.pevbnd = getattr(self, "pevbnd", 0.01)
self.kvadim = chi.size
self.kverbose = getattr(self, "kverbose", 1)
self.ldsolve = getattr(self, "ldsolve", True)
# Check for missing attributes
if not hasattr(self, "maxiter"):
raise AttributeError(
"maxiter is missing in the definition of the "
"minimizer. Please check your Yaml file"
)
else:
self.knevecout = self.maxiter
return self