Unverified Commit e370c346 authored by Peter Eastman's avatar Peter Eastman Committed by GitHub
Browse files

Improved performance of writeModel() (#4679)

parent bcc3442e
...@@ -122,6 +122,7 @@ class DCDFile(object): ...@@ -122,6 +122,7 @@ class DCDFile(object):
if is_quantity(positions): if is_quantity(positions):
positions = positions.value_in_unit(nanometers) positions = positions.value_in_unit(nanometers)
import numpy as np import numpy as np
positions = np.asarray(positions)
if np.isnan(positions).any(): if np.isnan(positions).any():
raise ValueError('Particle position is NaN. For more information, see https://github.com/openmm/openmm/wiki/Frequently-Asked-Questions#nan') raise ValueError('Particle position is NaN. For more information, see https://github.com/openmm/openmm/wiki/Frequently-Asked-Questions#nan')
if np.isinf(positions).any(): if np.isinf(positions).any():
......
...@@ -344,6 +344,7 @@ class PDBFile(object): ...@@ -344,6 +344,7 @@ class PDBFile(object):
if is_quantity(positions): if is_quantity(positions):
positions = positions.value_in_unit(angstroms) positions = positions.value_in_unit(angstroms)
import numpy as np import numpy as np
positions = np.asarray(positions)
if np.isnan(positions).any(): if np.isnan(positions).any():
raise ValueError('Particle position is NaN. For more information, see https://github.com/openmm/openmm/wiki/Frequently-Asked-Questions#nan') raise ValueError('Particle position is NaN. For more information, see https://github.com/openmm/openmm/wiki/Frequently-Asked-Questions#nan')
if np.isinf(positions).any(): if np.isinf(positions).any():
......
...@@ -419,6 +419,7 @@ class PDBxFile(object): ...@@ -419,6 +419,7 @@ class PDBxFile(object):
if is_quantity(positions): if is_quantity(positions):
positions = positions.value_in_unit(angstroms) positions = positions.value_in_unit(angstroms)
import numpy as np import numpy as np
positions = np.asarray(positions)
if np.isnan(positions).any(): if np.isnan(positions).any():
raise ValueError('Particle position is NaN. For more information, see https://github.com/openmm/openmm/wiki/Frequently-Asked-Questions#nan') raise ValueError('Particle position is NaN. For more information, see https://github.com/openmm/openmm/wiki/Frequently-Asked-Questions#nan')
if np.isinf(positions).any(): if np.isinf(positions).any():
......
...@@ -91,6 +91,7 @@ class XTCFile(object): ...@@ -91,6 +91,7 @@ class XTCFile(object):
if is_quantity(positions): if is_quantity(positions):
positions = positions.value_in_unit(nanometers) positions = positions.value_in_unit(nanometers)
import numpy as np import numpy as np
positions = np.asarray(positions)
if np.isnan(positions).any(): if np.isnan(positions).any():
raise ValueError( raise ValueError(
"Particle position is NaN. For more information, see https://github.com/openmm/openmm/wiki/Frequently-Asked-Questions#nan" "Particle position is NaN. For more information, see https://github.com/openmm/openmm/wiki/Frequently-Asked-Questions#nan"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment