QCElemental
QCElemental copied to clipboard
Adding Common Thermochemistry Functions
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?
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 useDatum
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?
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.
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 beforecompare_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.