grimme-lab / xtb4stda

sTDA-xTB Hamiltonian for ground state
GNU Lesser General Public License v3.0
16 stars 10 forks source link

Implement new solvents/solvation models that have been implemented in xTB #11

Open shoubhikraj opened 2 years ago

shoubhikraj commented 2 years ago

Is your feature request related to a problem? Please describe. It seems to me that the xtb4stda development has almost stopped, even though the original xTB program has received multiple crucial new features such as ALPB solvent models, and many new solvents. This is problem for xTB-sTDA calculations, because those new features cannot be used.

It is also not clear whether xtb4stda can use other solvent models or other solvents and where the parameters could be found. The manual of stda does not mention solvation.

Describe the solution you'd like xtb4stda should implement new solvents, if not, we should be given some sort of guide on how to find and input parameters for new solvents. It should also implement ALPB model if possible.

Describe alternatives you've considered I am not sure if we can just bypass the xtb4stda and run xTB directly, because both programs calculate the ground state, the only feature of xtb4stda seems to be that it writes the output in a format that can be read by the stda program directly. If we can interface xTB with stda, then we can use the new solvent models. The manual is not clear on this.

Additional context I am also unsure if stda actually takes into account the solvent model that was used in the ground state. From what I understand about PCM-like models, there is an additional calculation step during the excitation energy calculation that considers the non-equilibrium effects of the solvent. The stda manual does not mention anything about this.

mdewergi commented 2 years ago

First, xtb4stda has not the same Hamiltonian with respect to xtb and uses a different basis set more fitted to excited state properties. Thus, these two methods are different.

Second, orbitals and their energies are computed with solvent effects. In stda, they are no extra solvent treatment such as non-equilibrium effects. This is something that we would like to implement in the future but it is not scheduled yet. Nevertheless, some solvent effects are accounted for because the ground state is computed in solvent.

Regarding the new solvent model in xtb and its implementation in xtb4stda, you need to ask xtb developers @awvwgk for this. This is indeed a feature that we would like to have but not dependent of us.

awvwgk commented 2 years ago

Implementing the ALPB solvation model here would require some updates to src/gbobc.f porting the P16 interaction kernel and the electrostatic shape terms back into those routines as well as some adjustment to dielectric function.

This is not impossible, however the implicit solvation module in xtb has evolved a bit, while the implementation here is kind of frozen in time (and fixed format Fortran). Just copying back the routines will therefore not suffice unfortunately and modernizing the solvation in xtb4stda is a larger task (took me multiple takes and the better part of a week to yank the solvation to the modern Fortran area).