MolSSI / QCEngine

Quantum chemistry program executor and IO standardizer (QCSchema).
https://molssi.github.io/QCEngine/
BSD 3-Clause "New" or "Revised" License
163 stars 78 forks source link

How to correctly do geometry optimization? #357

Closed kianpu34593 closed 2 years ago

kianpu34593 commented 2 years ago

Describe the bug

I'm new to QC Engine and trying to use QC Engine to optimize geometry.

To Reproduce

input_spec = qcel.models.procedures.QCInputSpecification(
    driver="gradient",
    model={"method": "b3lyp", "basis": basis},
)

opt_input = qcel.models.OptimizationInput(
    initial_molecule=mol,
    input_specification=input_spec,
    protocols={"trajectory": "all"},
    keywords={"program": "psi4"}
)
geo_ret = qcng.compute_procedure(opt_input, 'geometric')

Expected behavior

At first, it was because I didn't install geometric package of psi4. However, after I install conda install -c psi4 geometric. I get the following error.

Additional context

Here is the error message:

geomeTRIC run_json error:
Traceback (most recent call last):
  File "/home/jiankunp/softwares/miniconda3/envs/autoqc/lib/python3.8/site-packages/geometric/run_json.py", line 214, in geometric_run_json
    geometric.optimize.Optimize(coords, M, IC, engine, None, params)
  File "/home/jiankunp/softwares/miniconda3/envs/autoqc/lib/python3.8/site-packages/geometric/optimize.py", line 1331, in Optimize
    return optimizer.optimizeGeometry()
  File "/home/jiankunp/softwares/miniconda3/envs/autoqc/lib/python3.8/site-packages/geometric/optimize.py", line 1293, in optimizeGeometry
    self.calcEnergyForce()
  File "/home/jiankunp/softwares/miniconda3/envs/autoqc/lib/python3.8/site-packages/geometric/optimize.py", line 1002, in calcEnergyForce
    spcalc = self.engine.calc(self.X, self.dirname)
  File "/home/jiankunp/softwares/miniconda3/envs/autoqc/lib/python3.8/site-packages/geometric/engine.py", line 873, in calc
    return self.calc_new(coords, dirname)
  File "/home/jiankunp/softwares/miniconda3/envs/autoqc/lib/python3.8/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 Execution Error:
Traceback (most recent call last):
  File "/home/jiankunp/softwares/miniconda3/envs/autoqc/lib/python3.8/site-packages/qcengine/util.py", line 114, in compute_wrapper
    yield metadata
  File "/home/jiankunp/softwares/miniconda3/envs/autoqc/lib/python3.8/site-packages/qcengine/compute.py", line 91, in compute
    output_data = executor.compute(input_data, config)
  File "/home/jiankunp/softwares/miniconda3/envs/autoqc/lib/python3.8/site-packages/qcengine/programs/psi4.py", line 121, in compute
    pversion = parse_version(self.get_version())
  File "/home/jiankunp/softwares/miniconda3/envs/autoqc/lib/python3.8/site-packages/qcengine/programs/psi4.py", line 90, in get_version
    exc["proc"].wait(timeout=30)
  File "/home/jiankunp/softwares/miniconda3/envs/autoqc/lib/python3.8/subprocess.py", line 1083, in wait
    return self._wait(timeout=timeout)
  File "/home/jiankunp/softwares/miniconda3/envs/autoqc/lib/python3.8/subprocess.py", line 1798, in _wait
    raise TimeoutExpired(self.args, timeout)
subprocess.TimeoutExpired: Command '['/home/jiankunp/softwares/miniconda3/envs/autoqc/bin/psi4', '--version']' timed out after 30 seconds
loriab commented 2 years ago

I haven't tried to reproduce your error yet. But have you tried this environment https://github.com/MolSSI/QCEngine/blob/master/devtools/conda-envs/opt-disp.yaml and an input like this (sorry you have to supply your own molecule and assemble the OptimizationInput)? https://github.com/MolSSI/QCEngine/blob/fd5c04d1759468f1d4d3403177a5473bd8116df8/qcengine/tests/test_procedures.py#L15-L41

kianpu34593 commented 2 years ago

Thank you for the yaml file and the sample input file. The issue has been resolved.