Skip to content

[BUG] No OpenMM box vectors set when system has no periodic space #367

@lohedges

Description

@lohedges

Currently the Sire-to-OpenMM code only sets default box vectors in the OpenMM system if the Sire system contains a periodic space. If not, then no box vectors are set. However, this doesn't mean that OpenMM doesn't use a periodic system, since it always uses a default 20A cubic box if no box vectors are set, e.g.:

In [1]: import sire as sr

In [2]: mols = sr.load_test_files("ala.crd", "ala.top")

In [3]: mols.remove_shared_property("space")

In [4]: d = mols[0].dynamics(cutoff="12 A")

In [5]: d.context().getState().getPeriodicBoxVectors()
Out[5]: Quantity(value=[Vec3(x=2.0, y=0.0, z=0.0), Vec3(x=0.0, y=2.0, z=0.0), Vec3(x=0.0, y=0.0, z=2.0)], unit=nanometer)

This box might be completely inappropriate depending on the input system, e.g. if the molecule is too large, which would lead to self-interactions across the periodic boundary. When no periodic space is present, we should probably set sensible defaults based on the AABox of the system plus a buffer to account for the specified cut-off distance.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions