xtb-python icon indicating copy to clipboard operation
xtb-python copied to clipboard

Hessian/Frequency Support

Open WardLT opened this issue 5 years ago • 3 comments

I am looking to compute atomization enthalpies with through QCEngine and found it is not yet supported.

What's the route forward to adding support for Hessian calculations? I am not too familiar with XTB, but could help if given direction/advice.

WardLT avatar Jul 27 '20 20:07 WardLT

Hessians would only be available by numerical differentiation so far. Up to now I'm not sure where I want to implement this exactly, there are three viable options on the table here:

  1. Implement a driver in the C-API in xtb upstream (there is an implementation for the standalone already, but we don't want to use it in the API due to possible side-effects and IO)
  2. Have a driver in the Python API implement the numerical differentiation
  3. Rely on the framework to figure it out (e.g. ASE is providing quite efficient and parallel implementations itself)

Currently, I'm following strategy 3 for this purpose, but this might be suboptimal together with QCEngine (as there is no differentiation procedure and the xtb harness cannot restart).

awvwgk avatar Jul 27 '20 20:07 awvwgk

Thanks for the quick reply! Let me know if I could assist with strategy 3.

WardLT avatar Jul 27 '20 22:07 WardLT

I opened an issue at QCEngine regarding the numerical differentiation.

The other thing probably needed for xtb in QCEngine would be a restart functionality in xtb.qcschema.harness.run_qcschema, in the ASE calculator I can simply store the void* API objects and reuse them later, but I guess this won't be possible with QCEngine.

awvwgk avatar Jul 28 '20 06:07 awvwgk