Open
Description
Describe the bug
When periodically deleting the frames contained in a system (as is done in SOMD2 when checkpointing), any trajectories contained in a system after calling mols.delete_all_frames()
will only contain a single frame. This issue also seems to cause a segmentation fault, but only around 50% of the time.
To Reproduce
Run the following script:
import sire as sr
mols = sr.load_test_files("ala.top", "ala.crd")
mols = mols.minimisation().run().commit()
d = mols.dynamics(timestep="4fs", temperature="25oC")
for i in range(3):
d.run("1ps", frame_frequency="0.2ps")
mols = d.commit()
print(f"mols currently has {mols.num_frames()} frames")
mols.delete_all_frames()
the output will be the following:
mols currently has 5 frames
mols currently has 1 frames
mols currently has 1 frames
FATAL: exception not rethrown
Aborted (core dumped)
Expected behavior
The output should be
mols currently has 5 frames
mols currently has 5 frames
mols currently has 5 frames
(please complete the following information):
- OS: Ubuntu 22.04.4 LTS
- Version of Python: 3.12.4
- Version of sire: 2024.3.0.dev
- I confirm that I have checked this bug still exists in the latest released version of sire: yes
Additional context
Note that everything works as expected if mols.delete_all_frames()
is not called:
mols currently has 5 frames
mols currently has 10 frames
mols currently has 15 frames