COSMO¶
The COSMO (COnductor-like Screening MOdel) scheme [81] is a method for modeling the interaction of a molecule with a solvent. The solvent is approximated as a continuous medium (implicit solvation), and the interaction between the molecule and solvent corresponds to a modification of the one-body interaction. In InQuanto, the PySCF implementation of ddCOSMO (domain-decomposition COSMO) is utilized. In this scheme, the mean-field SCF problem is solved with a modified Hamiltonian
Where \(\hat{V}_{\text{ddCOSMO}}\) is a functional of the electronic density. This allows the orbitals to respond to the implicit solvation during the SCF procedure. However, \(E_{\text{SCF}}\) would not correspond to the total energy according to the ddCOSMO model. For this, a contribution \(E_{\text{ddCOSMO}}\) calculated from a classical dielectric problem is needed, in which the molecule is contained in a cavity defined by overlapping spheres centered on its atoms, and outside the cavity there is a continuous medium with dielectric constant fixed to that of the solvent
where \(f(\epsilon_s)\) is an empirical function of the solvent dielectric constant \(\epsilon_s\), \(\rho(\mathbf{r})\) is the electronic density, \(W(\mathbf{r})\) is a surface potential obtained from spherical harmonics, and the integral is over the surface defined by the cavity. For more details see [82].
Since \(E_{\text{ddCOSMO}}\) is treated as a classical constant term in the expectation value of the energy, the
quantity \(\langle \Psi|\hat{H}| \Psi \rangle + E_{\text{ddCOSMO}}\) would not contain the response of orbitals to
the solvent environment. Hence, the following expression for the total energy is adopted in PySCF and used in
the inquanto-pyscf extension:
where \(D\) is the one-body reduced density matrix. Hence, the SCF problem is solved in the presence of the solvent potential which affects the orbitals, but this contribution is subtracted out and the classical COSMO energy \(E_{\text{ddCOSMO}}\) is added back in, so that the energy corresponds to the ddCOSMO model while the orbitals are also consistent with the background solvent potential.
The following example shows the instantiation of the ChemistryDriverPySCFMolecularRHFQMMMCOSMO
PySCF driver class for COSMO solvation:
from inquanto.extensions.pyscf import ChemistryDriverPySCFMolecularRHFQMMMCOSMO
# instantiation of driver with COSMO solvent
driver_cosmo = ChemistryDriverPySCFMolecularRHFQMMMCOSMO(
zmatrix="""
H
H 1 0.7122
""",
basis="sto3g",
do_cosmo = True
)
h, fsp, fst = driver_cosmo.get_system()
mf_solvent_e_tot = driver_cosmo.mf_energy
The Hamiltonian h returned by get_system()
contains the modified one-body term, and construction of the quantum problem can proceed as usual. The energy
mf_solvent_e_tot corresponds to the mean field energy with the COSMO corrections as specified in (132).
It is also possible to combine COSMO with other embedding schemes in InQuanto by setting do_cosmo=True in the driver as above.