leeping / geomeTRIC

Geometry optimization code that includes the TRIC coordinate system
https://geometric.readthedocs.io/
Other
154 stars 65 forks source link

Cryptic error messages when trying to constrain linear torsions #114

Closed trevorgokey closed 4 years ago

trevorgokey commented 4 years ago

QCArchive procedures, which uses torsiondrive/geomeTRIC internally, sometimes try to drive torsions on linear geometries, perhaps from the result of incorrect filtering of molecules. The errors that result from such calculations seem to occur deeper in the codebase than might be necessary. A way to detect these problem cases earlier, with a descriptive error message, would be of great value.

These are some of the errors that appear on various molecules. I will give an example QCArchive TorsionDrive ID for each case:

TorsionDrive 18045969

Error type: unknown
Error:
geomeTRIC run_json error:
Traceback (most recent call last):
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib/python3.7/site-packages/geometric/run_json.py", line 225, in geometric_run_json
    geometric.optimize.Optimize(coords, M, IC, engine, None, params)
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib/python3.7/site-packages/geometric/optimize.py", line 1331, in Optimize
    return optimizer.optimizeGeometry()
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib/python3.7/site-packages/geometric/optimize.py", line 1298, in optimizeGeometry
    self.calcEnergyForce()
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib/python3.7/site-packages/geometric/optimize.py", line 1002, in calcEnergyForce
    spcalc = self.engine.calc(self.X, self.dirname)
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib/python3.7/site-packages/geometric/engine.py", line 873, in calc
    return self.calc_new(coords, dirname)
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib/python3.7/site-packages/geometric/engine.py", line 865, in calc_new
    raise QCEngineAPIEngineError("QCEngineAPI computation did not execute correctly. Message: " + ret["error"]["error_message"])
geometric.errors.QCEngineAPIEngineError: QCEngineAPI computation did not execute correctly. Message: QCEngine Unknown Error: Traceback (most recent call last):
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib//python3.7/site-packages/psi4/driver/qcdb/intf_dftd3/runner.py", line 131, in run_dftd3_from_arrays
    dftd3_driver(jobrec)
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib//python3.7/site-packages/psi4/driver/qcdb/intf_dftd3/runner.py", line 183, in dftd3_driver
    dftd3_harvest(jobrec, dftd3rec)  # updates jobrec
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib//python3.7/site-packages/psi4/driver/qcdb/intf_dftd3/runner.py", line 301, in dftd3_harvest
    raise Dftd3Error('Unsuccessful run. Possibly -D variant not available in dftd3 version.')
psi4.driver.qcdb.exceptions.Dftd3Error: Unsuccessful run. Possibly -D variant not available in dftd3 version.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib//python3.7/site-packages/psi4/driver/json_wrapper.py", line 217, in run_json
    json_data = run_json_qcschema(copy.deepcopy(json_data), clean)
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib//python3.7/site-packages/psi4/driver/json_wrapper.py", line 312, in run_json_qcschema
    val, wfn = methods_dict_[json_data["driver"]](method, **kwargs)
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib//python3.7/site-packages/psi4/driver/driver.py", line 691, in gradient
    wfn = procedures['gradient'][lowername](lowername, molecule=molecule, **kwargs)
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib//python3.7/site-packages/psi4/driver/procrouting/proc.py", line 2070, in run_scf_gradient
    disp_grad = ref_wfn._disp_functor.compute_gradient(ref_wfn.molecule())
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib//python3.7/site-packages/psi4/driver/procrouting/empirical_dispersion.py", line 236, in compute_gradient
    verbose=1)
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib//python3.7/site-packages/psi4/driver/qcdb/intf_dftd3/runner.py", line 135, in run_dftd3_from_arrays
    raise RuntimeError(err) from err
RuntimeError: Unsuccessful run. Possibly -D variant not available in dftd3 version.

TorsionDrive 18886561

Error type: unknown
Error:
geomeTRIC run_json error:
Traceback (most recent call last):
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib/python3.7/site-packages/geometric/run_json.py", line 225, in geometric_run_json
    geometric.optimize.Optimize(coords, M, IC, engine, None, params)
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib/python3.7/site-packages/geometric/optimize.py", line 1331, in Optimize
    return optimizer.optimizeGeometry()
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib/python3.7/site-packages/geometric/optimize.py", line 1296, in optimizeGeometry
    self.step()
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib/python3.7/site-packages/geometric/optimize.py", line 1100, in step
    self.checkCoordinateSystem(recover=True, cartesian=LastForce)
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib/python3.7/site-packages/geometric/optimize.py", line 959, in checkCoordinateSystem
    raise ValueError("Cannot continue a constrained optimization; please implement constrained optimization in Cartesian coordinates")
ValueError: Cannot continue a constrained optimization; please implement constrained optimization in Cartesian coordinates

TorsionDrive 18886558

Error type: unknown
Error:
geomeTRIC run_json error:
Traceback (most recent call last):
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib/python3.7/site-packages/geometric/run_json.py", line 225, in geometric_run_json
    geometric.optimize.Optimize(coords, M, IC, engine, None, params)
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib/python3.7/site-packages/geometric/optimize.py", line 1331, in Optimize
    return optimizer.optimizeGeometry()
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib/python3.7/site-packages/geometric/optimize.py", line 1296, in optimizeGeometry
    self.step()
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib/python3.7/site-packages/geometric/optimize.py", line 1085, in step
    iopt = brent_wiki(froot.evaluate, 0.0, iopt, froot.target, cvg=0.1, verbose=params.verbose)
  File "/data/homezvol0/tgokey/.local/miniconda3/envs/qcf/lib/python3.7/site-packages/geometric/optimize.py", line 187, in brent_wiki
    raise RuntimeError('Not bracketed')
RuntimeError: Not bracketed

Versons:

geometric                 0.9.7.2                    py_0    conda-forge
psi4                      1.3.2+ecbda83    py37h06ff01c_1    psi4
qcelemental               0.14.0                     py_0    conda-forge
qcengine                  0.14.0                     py_0    conda-forge
qcfractal                 0.13.1                   py37_0    conda-forge
qcfractal-core            0.13.1                   py37_0    conda-forge

Please let me know if there is any additional information that would be helpful.

leeping commented 4 years ago

Thanks - fixed by #116 .