From e93c4f8e087ade9600a13fe778237871b104ef7c Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 10 Apr 2025 15:08:27 +0100 Subject: [PATCH] Fix for checkpint_frequency > runtime Also fixes issues with checkpoint_frequency=0 --- src/somd2/config/_config.py | 6 ++++++ src/somd2/runner/_runner.py | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/somd2/config/_config.py b/src/somd2/config/_config.py index 214e18ce..5d039404 100644 --- a/src/somd2/config/_config.py +++ b/src/somd2/config/_config.py @@ -1185,10 +1185,16 @@ def checkpoint_frequency(self, checkpoint_frequency): if ( t.value() < self._energy_frequency.value() and t.value() < self._frame_frequency.value() + and t.value() > 0 ): _logger.warning( "Checkpoint frequency is low. Should be greater min(energy_frequency, frame_frequency)" ) + if t.value() > self._runtime.value(): + _logger.debug( + "Checkpoint frequency < runtime, checkpointing will not occur before runtime is reached." + ) + t = _sr.u("0ps") self._checkpoint_frequency = t @property diff --git a/src/somd2/runner/_runner.py b/src/somd2/runner/_runner.py index 307459c8..13e59791 100644 --- a/src/somd2/runner/_runner.py +++ b/src/somd2/runner/_runner.py @@ -637,7 +637,7 @@ def generate_lam_vals(lambda_base, increment=0.001): else: try: dynamics.run( - self._config.checkpoint_frequency, + time, energy_frequency=self._config.energy_frequency, frame_frequency=self._config.frame_frequency, lambda_windows=lambda_array,