diff --git a/ipsuite/analysis/model/dynamics_checks.py b/ipsuite/analysis/model/dynamics_checks.py index 06c16bdb..5319025f 100644 --- a/ipsuite/analysis/model/dynamics_checks.py +++ b/ipsuite/analysis/model/dynamics_checks.py @@ -136,7 +136,8 @@ class ThresholdCheck(base.CheckBase): max_value: float, optional Maximum value of the property to check before the simulation is stopped minimum_window_size: int, optional - Minimum number of steps to average over before checking the standard deviation + Minimum number of steps to average over before checking the standard deviation. + Also minimum number of steps to run, before the simulation can be stopped. larger_only: bool, optional Only check the standard deviation of points that are larger than the mean. E.g. useful for uncertainties, where a lower uncertainty is not a problem. @@ -174,13 +175,12 @@ def check(self, atoms) -> bool: if self.larger_only: distance = np.abs(distance) - if self.max_value is not None and value > self.max_value: - # max value trigger is independent of the window size. - return True - if len(self.values) < self.minimum_window_size: return False + if self.max_value is not None and value > self.max_value: + return True + if self.max_std is not None and distance > self.max_std * std: self.status = ( f"StandardDeviationCheck for '{self.value}' triggered by" diff --git a/ipsuite/nodes.py b/ipsuite/nodes.py index a7dffa5e..08eb080d 100644 --- a/ipsuite/nodes.py +++ b/ipsuite/nodes.py @@ -74,6 +74,7 @@ class _Nodes: xTBSinglePoint = "ipsuite.calculators.xTBSinglePoint" LJSinglePoint = "ipsuite.calculators.LJSinglePoint" EMTSinglePoint = "ipsuite.calculators.EMTSinglePoint" + ApaxJaxMD = "ipsuite.calculators.ApaxJaxMD" LangevinThermostat = "ipsuite.calculators.LangevinThermostat" RescaleBoxModifier = "ipsuite.calculators.RescaleBoxModifier"