diff --git a/src/lammpsio/_compatibility.py b/src/lammpsio/_compatibility.py index 6a9fc01..490e1b5 100644 --- a/src/lammpsio/_compatibility.py +++ b/src/lammpsio/_compatibility.py @@ -18,6 +18,13 @@ gsd_frame_class = gsd.hoomd.Frame else: gsd_frame_class = gsd.hoomd.Snapshot + + # GSD >= 5.0 validate() does not modify contents in place by default + if gsd_version >= packaging.version.Version("5.0.0"): + gsd_validate_inplace = True + else: + gsd_validate_inplace = False + except ModuleNotFoundError: gsd_version = None diff --git a/src/lammpsio/snapshot.py b/src/lammpsio/snapshot.py index 562a1e3..c1020ff 100644 --- a/src/lammpsio/snapshot.py +++ b/src/lammpsio/snapshot.py @@ -121,7 +121,10 @@ def from_hoomd_gsd( """ # ensures frame is well formed and that we have NumPy arrays - frame.validate() + if _compatibility.gsd_validate_inplace: + frame.validate(inplace=True) + else: + frame.validate() # process HOOMD box to LAMMPS box box = numpy.array(frame.configuration.box, copy=True)