MolSSI / QCEngine

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

[SUGGESTION] Add a TorsionDrive procedure #306

Closed SimonBoothroyd closed 3 years ago

SimonBoothroyd commented 3 years ago

Is your feature request related to a problem? Please describe.

It would be useful to be able to run torsion drives using TorsionDrive via QCEngine directly rather than needing to spin-up a snowflake instance. Use cases include:

Describe the solution you'd like

It would be useful to have a new TorsionDriveProcedure (referring to TorsionDrive the program, not torsion drive the process) that can be called via compute_procedure(input_data, procedure="torsiondrive"), and that under the hood calls out to the main optimisation procedures (e.g. geometric) via nested calls to compute_procedure.

I have a proof of concept implementation working in PR #305 if people have any thoughts on this. (cc @dotsdl @bennybp @loriab)

Describe alternatives you've considered

Add this functionality to a separate package, however QCEngine would seem to be a better home for it.

Additional context

Implementing this feature would likely benefit from the discussion in https://github.com/MolSSI/QCElemental/issues/264 as one could more easily define an optimisation specification for a torsion drive input without needing to a priori provide a molecule instance.