You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
3 test cases fail when pint=0.22. I noticed when solving the devtools/conda-envs/openmm.yaml w/o a python specified, so got py311. An error trace below.
qcengine/tests/test_procedures.py::test_geometric_generic[openmm-model5-bench5] FAILED [ 61%]
qcengine/tests/test_procedures.py::test_geometric_generic[openmm-model6-bench6] FAILED [ 65%]
qcengine/tests/test_procedures.py::test_geometric_generic[openmm-model7-bench7] FAILED [ 69%]
qcengine/tests/test_procedures.py::test_geometric_generic[qcore-model8-bench8] SKIPPED (Not detecting module qcore. Install package if necessary to enable tests.) [ 73%]
qcengine/tests/test_procedures.py::test_nwchem_relax[0] SKIPPED (Not detecting module nwchem. Install package if necessary to enable tests.) [ 76%]
qcengine/tests/test_procedures.py::test_nwchem_relax[1] SKIPPED (Not detecting module nwchem. Install package if necessary to enable tests.) [ 80%]
qcengine/tests/test_procedures.py::test_nwchem_restart SKIPPED (Not detecting module nwchem. Install package if necessary to enable tests.) [ 84%]
qcengine/tests/test_procedures.py::test_torsiondrive_generic FAILED [ 88%]
qcengine/tests/test_procedures.py::test_optimization_mrchem[geometric] SKIPPED (Not detecting module mrchem. Install package if necessary to enable tests.) [ 92%]
qcengine/tests/test_procedures.py::test_optimization_mrchem[optking] SKIPPED (Not detecting module mrchem. Install package if necessary to enable tests.) [ 96%]
qcengine/tests/test_procedures.py::test_optimization_mrchem[berny] SKIPPED (Not detecting module mrchem. Install package if necessary to enable tests.) [100%]
================================================================================================== FAILURES ===================================================================================================
________________________________________________________________________________ test_geometric_generic[openmm-model5-bench5] _________________________________________________________________________________
input_data = {'initial_molecule': Molecule(name='H2O', formula='H2O', hash='d91fd62'), 'input_specification': {'driver': 'gradient'...'basis': 'smirnoff', 'method': 'openff-1.0.0'}}, 'keywords': {'coordsys': 'tric', 'maxiter': 100, 'program': 'openmm'}}
program = 'openmm', model = {'basis': 'smirnoff', 'method': 'openff-1.0.0'}, bench = [1.8344994291796748, 3.010099477501204, 110.25177977849998]
@using("geometric")
@pytest.mark.parametrize(
"program, model, bench",
[
pytest.param(
"rdkit", {"method": "UFF"}, [1.87130923886072, 2.959448636243545, 104.5099642579023], marks=using("rdkit")
),
pytest.param(
"rdkit",
{"method": "mmff94"},
[1.8310842343589573, 2.884612338953529, 103.93822919865106],
marks=using("rdkit"),
),
pytest.param(
"rdkit",
{"method": "MMFF94s"},
[1.8310842343589573, 2.884612338953529, 103.93822919865106],
marks=using("rdkit"),
),
pytest.param(
"torchani",
{"method": "ANI1x"},
[1.82581873750194, 2.866376526793269, 103.4332610730292],
marks=using("torchani"),
),
pytest.param(
"mopac",
{"method": "PM6"},
[1.793052302291527, 2.893333237502448, 107.57254391453196],
marks=using("mopac"),
),
pytest.param(
"openmm",
{"method": "openff-1.0.0", "basis": "smirnoff"},
[1.8344994291796748, 3.010099477501204, 110.25177977849998],
marks=using("openmm"),
),
pytest.param(
"openmm",
{"method": "openff_unconstrained-1.0.0", "basis": "smirnoff"},
[1.8344994291195869, 3.0100994772976124, 110.25259556886984],
marks=using("openmm"),
),
pytest.param(
"openmm",
{"method": "smirnoff99Frosst-1.1.0", "basis": "smirnoff"},
[1.814137087600702, 3.025566213038376, 112.9999999990053],
marks=using("openmm"),
),
pytest.param(
"qcore",
{"method": "GFN1"},
[1.8104763949897031, 2.9132449420655213, 107.13403040879244],
marks=using("qcore"),
),
],
)
def test_geometric_generic(input_data, program, model, bench):
input_data["initial_molecule"] = qcng.get_molecule("water")
input_data["input_specification"]["model"] = model
input_data["keywords"]["program"] = program
input_data["input_specification"]["extras"] = {"_secret_tags": {"mysecret_tag": "data1"}}
> ret = qcng.compute_procedure(input_data, "geometric", raise_error=True)
qcengine/tests/test_procedures.py:251:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
qcengine/compute.py:181: in compute_procedure
return handle_output_metadata(output_data, metadata, raise_error=raise_error, return_dict=return_dict)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
output_data = {'energies': [None], 'error': {'error_message': 'geomeTRIC run_json error:\nTraceback (most recent call last):\n File...7012782744263]]) has attribute \'to_openmm\'\n\n', 'error_type': 'unknown'}, 'extras': {}, 'final_molecule': None, ...}
metadata = {'retries': 0, 'stderr': None, 'stdout': None, 'success': True, ...}, raise_error = True, return_dict = False
def handle_output_metadata(
output_data: Union[Dict[str, Any], "AtomicResult", "OptimizationResult", "FailedOperation"],
metadata: Dict[str, Any],
raise_error: bool = False,
return_dict: bool = True,
) -> Union[Dict[str, Any], "AtomicResult", "OptimizationResult", "FailedOperation"]:
"""
Fuses general metadata and output together.
Parameters:
output_data: The original output object to be fused with metadata
metadata: Metadata produced by the compute_wrapper context manager
raise_error: Raise an exception if errors exist (True) or return FailedOperation (False)
return_dict: Return dictionary or object representation of data
Returns
-------
result : AtomicResult, OptimizationResult, FailedOperation, or dict representation of any one.
Output type depends on return_dict or a dict if an error was generated in model construction
"""
if isinstance(output_data, dict):
output_fusion = output_data # Error handling
else:
output_fusion = output_data.dict()
# Do not override if computer generates
output_fusion["stdout"] = output_fusion.get("stdout", None) or metadata["stdout"]
output_fusion["stderr"] = output_fusion.get("stderr", None) or metadata["stderr"]
if metadata["success"] is not True:
output_fusion["success"] = False
output_fusion["error"] = {"error_type": metadata["error_type"], "error_message": metadata["error_message"]}
# Raise an error if one exists and a user requested a raise
if raise_error and (output_fusion["success"] is not True):
msg = "stdout:\n{}".format(output_fusion["stdout"])
msg += "\nstderr:\n{}".format(output_fusion["stderr"])
LOGGER.info(msg)
> raise ValueError(output_fusion["error"]["error_message"])
E ValueError: geomeTRIC run_json error:
E Traceback (most recent call last):
E File "/psi/toolchainconda/envs/openmm/lib/python3.11/site-packages/geometric/run_json.py", line 258, in geometric_run_json
E geometric.optimize.Optimize(coords, M, IC, engine, dirname, params)
E File "/psi/toolchainconda/envs/openmm/lib/python3.11/site-packages/geometric/optimize.py", line 779, in Optimize
E return optimizer.optimizeGeometry()
E ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E File "/psi/toolchainconda/envs/openmm/lib/python3.11/site-packages/geometric/optimize.py", line 692, in optimizeGeometry
E self.calcEnergyForce()
E File "/psi/toolchainconda/envs/openmm/lib/python3.11/site-packages/geometric/optimize.py", line 283, in calcEnergyForce
E spcalc = self.engine.calc(self.X, self.dirname, read_data=(self.Iteration==0))
E ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E File "/psi/toolchainconda/envs/openmm/lib/python3.11/site-packages/geometric/engine.py", line 1470, in calc
E return self.calc_new(coords, dirname)
E ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E File "/psi/toolchainconda/envs/openmm/lib/python3.11/site-packages/geometric/engine.py", line 1461, in calc_new
E raise QCEngineAPIEngineError("QCEngineAPI computation did not execute correctly. Message: " + ret["error"]["error_message"])
E geometric.errors.QCEngineAPIEngineError: QCEngineAPI computation did not execute correctly. Message: QCEngine Execution Error:
E Traceback (most recent call last):
E File "/psi/gits/QCEngine/qcengine/programs/openmm.py", line 301, in compute
E context.setPositions(off_mol.conformers[0])
E File "/psi/toolchainconda/envs/openmm/lib/python3.11/site-packages/openmm/openmm.py", line 3479, in setPositions
E return _openmm.Context_setPositions(self, positions)
E ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E ValueError: in method Context_setPositions, argument 2 could not be converted to type std::vector< Vec3,std::allocator< Vec3 > > const &
E
E During handling of the above exception, another exception occurred:
E
E Traceback (most recent call last):
E File "/psi/toolchainconda/envs/openmm/lib/python3.11/site-packages/pint/facets/numpy/quantity.py", line 229, in __getattr__
E return getattr(self._magnitude, item)
E ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E AttributeError: 'numpy.ndarray' object has no attribute 'to_openmm'
E
E During handling of the above exception, another exception occurred:
E
E Traceback (most recent call last):
E File "/psi/gits/QCEngine/qcengine/util.py", line 117, in compute_wrapper
E yield metadata
E File "/psi/gits/QCEngine/qcengine/compute.py", line 108, in compute
E output_data = executor.compute(input_data, config)
E ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E File "/psi/gits/QCEngine/qcengine/programs/openmm.py", line 303, in compute
E context.setPositions(off_mol.conformers[0].to_openmm())
E ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E File "/psi/toolchainconda/envs/openmm/lib/python3.11/site-packages/pint/facets/numpy/quantity.py", line 231, in __getattr__
E raise AttributeError(
E AttributeError: Neither Quantity object nor its magnitude ([[ 0. 0. -0.068516245955287 ]
E [ 0. -0.790689888799627 0.5437012782744263]
E [ 0. 0.790689888799627 0.5437012782744263]]) has attribute 'to_openmm'
qcengine/util.py:186: ValueError
Describe the bug
To Reproduce
3 test cases fail when pint=0.22. I noticed when solving the devtools/conda-envs/openmm.yaml w/o a python specified, so got py311. An error trace below.
Not sure who to ping. Maybe @dotsdl
The text was updated successfully, but these errors were encountered: