MolSSI / QCElemental

Periodic table, physical constants, and molecule parsing for quantum chemistry.
https://molssi.github.io/QCElemental/
BSD 3-Clause "New" or "Revised" License
144 stars 70 forks source link

Solvation Specification #362

Open wavefunction91 opened 21 hours ago

wavefunction91 commented 21 hours ago

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

QCSchema (and friends) do not currently expose the ability to (transparently) specify solvation settings. This is a highly desirable feature for the community.

Describe the solution you'd like

It would be desirable to extend the schema to include a solvent data structure to allow for IO specification of solvation settings. Where this lives is not immediately obvious to me - I could see it extending either the molecule schema (to the extent that molecule defines the physical system) or the model schema (to the extent to which one is modifying the model physics - ala method and basis). Wherever this should live, the following items should be made variable

Key Name Description Field Type
name Solvent specification (water, benzene, etc) string
model Solvent model type (PCM, LPB, COSMO-[RS]) string
epsilon Dielectric constant float

Describe alternatives you've considered

It is generally the case that one can specify solvent settings in a program-specific keyword setting, but this is not a satisfying solution for interoperability between codes nor for archiving of data.

loriab commented 19 hours ago

On the Molecule vs. AtomicInput.specification.model choice, I think solvation falls on model. For Molecule, besides identifiers, we've been roughly keeping it limited to things having to do with the atom center coordinates.

EDIT: Also, float or string for epsilon?

wavefunction91 commented 15 hours ago

Also, float or string for epsilon?

Good catch