Skip to content

Commit

Permalink
Merge pull request #392 from ajsilveira/master
Browse files Browse the repository at this point in the history
SamplerStates accepts simtk.unit.Quantities as inputs
  • Loading branch information
ajsilveira authored Jan 18, 2019
2 parents 54e1064 + 88d3b77 commit 7f26742
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions openmmtools/states.py
Original file line number Diff line number Diff line change
Expand Up @@ -1754,7 +1754,7 @@ class SamplerState(object):
Position vectors for N particles (length units).
velocities : Nx3 simtk.unit.Quantity, optional
Velocity vectors for N particles (velocity units).
box_vectors : 3x3 simtk.unit.Quantity
box_vectors : 3x3 simtk.unit.Quantity
Current box vectors (length units).
Attributes
Expand Down Expand Up @@ -1834,7 +1834,13 @@ def __init__(self, positions, velocities=None, box_vectors=None):
self._collective_variables = None
self._kinetic_energy = None
self._potential_energy = None
self._initialize(copy.deepcopy(positions), copy.deepcopy(velocities), copy.deepcopy(box_vectors))
args = []
for input in [positions, velocities, box_vectors]:
if isinstance(input, unit.Quantity) and not isinstance(input._value, np.ndarray):
args.append(np.array(input/input.unit)*input.unit)
else:
args.append(copy.deepcopy(input))
self._initialize(*args)

@classmethod
def from_context(cls, context_state, ignore_collective_variables=False):
Expand Down

0 comments on commit 7f26742

Please sign in to comment.