QCElemental icon indicating copy to clipboard operation
QCElemental copied to clipboard

Adding Common Thermochemistry Functions

Open WardLT opened this issue 4 years ago • 3 comments

Is your feature request related to a problem? Please describe. I am taking the results of QCEngine calculations and using them to compute thermodynamic properties. Would QCElemental be a good home for them?

Describe the solution you'd like Ability to take a QCEngine AtomicResult and compute thermodynamic properties.

Describe alternatives you've considered I have implemented some in another project

Additional context Has someone else already done this?

WardLT avatar Aug 12 '20 18:08 WardLT

I completely agree something like this should go somewhere in QCArchive.

  • the data layout for storing vib results and thermochem info should go here in qcel, to be mirrored in qcsk. some early discussion https://github.com/MolSSI/QCSchema/pull/50
  • the analysis upon a completed Hessian I've been thinking should live as a procedure in QCEngine. Though maybe the guts have a case to be here since no "compute" required.
  • I've got similar functionality going at https://github.com/psi4/psi4/blob/master/psi4/driver/qcdb/vib.py . It was pre-qcschema, so still needs modifying to act on AtomicResult and to store in atomic units and use Datum to give expected (e.g., cm^-1) units.
  • The vib.py also has a lingering psi4 salc dependence for classifying normal modes that it just hasn't been a priority to disentangle. https://github.com/MolSSI/QCElemental/issues/193

Clearly I've been in the "have plans" stage on this for years without much beyond psi4 to show for it. Perhaps we can combine forces?

loriab avatar Aug 12 '20 19:08 loriab

Sure! I would be glad to make use of your far-superior code for computing vibrational properties. I just finished plugging a hole in another project with a simpler version of the code you have here (e.g., I don't disabiguate "rotational" vs "vibrational" modes).

Could you assign this to me? I am back to working on my quantum chem project again, and should have some cycles to contribute this feature.

WardLT avatar Aug 12 '20 20:08 WardLT

Sounds great, thanks! Dissect and rebuild vib.py as you like. And if you want to have a meeting and hash out a plan, lmk.

  • Please particularly ping me on any why-this-design oddities because the code predates some better tools. (In particular, compare_vibinfos was before compare_recursive and gets a low pass on its attempt to handle degenerate normal coordinates.)
  • No concern about maintaining that particular interface b/c psi will just hop over to the qca one when ready.
  • There is some testing of that file at https://github.com/psi4/psi4/blob/master/tests/pytests/test_vibanalysis.py , where purely analysis testing could be extracted.
  • I'd just skip over symmetry for now, as qcng's current mandate is no-symmetry.
  • Some preliminary qcel work is that pint probably doesn't know about common spectroscopy units to convert them through Datum

It's splendid if you have some cycles to work on this. Let me know how I can help.

loriab avatar Aug 13 '20 17:08 loriab