Hessian/Frequency Support
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.
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:
- Implement a driver in the C-API in
xtbupstream (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) - Have a driver in the Python API implement the numerical differentiation
- 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).
Thanks for the quick reply! Let me know if I could assist with strategy 3.
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.