Select and compare solvation engines¶
This tutorial introduces the common selector. Use one fixed molecular geometry and electronic protocol when comparing continuum implementations. These examples are workflows, not published benchmark results.
import vibeqc as vq
mol = vq.Molecule([
vq.Atom(8, (0.0, 0.0, 0.0)),
vq.Atom(1, (0.0, 1.498, -1.159)),
vq.Atom(1, (0.0, -1.498, -1.159)),
], 0, 1) # coordinates in bohr
for backend in ("cosmo", "moist"):
result = vq.run_job(mol, method="rhf", basis="def2-svp",
solvation=vq.SolvationOptions(backend, "water"),
output="water_" + backend)
sol = result.solvent_result
print(backend, sol.energy, sol.e_solv, sol.energy-sol.e_gas)
The three numbers are the total electronic energy, environment contribution
and total electronic shift from the gas-phase reference, all in Hartree.
The backend defaults select different cavity/model conventions. Agreement
is not expected merely because both use the word water. For a meaningful
numerical comparison, match dielectric, radii, cavity, Gaussian/point kernel,
geometry and method, then converge each discretization independently.
The .out names the actual components and the runtime version.
COSMO-RS is selected with the same interface, but its observable and parameterization are different:
result = vq.run_job(mol, method="rks", functional="bpw91", basis="def2-tzvp",
solvation=vq.SolvationOptions("cosmo-rs", "water"), output="water_cosmors")
thermodynamics = result.cosmors
Inspect the COSMO-RS output block for the free energy, temperature, standard states and solvent-surface provenance. The parameterization is transferred from its fitted protocol and remains experimental. Do not subtract a continuum polarization energy from this free energy and call the difference an implementation error. Start from the same observable and add justified nonelectrostatic and standard-state contributions before comparing to experiment.
The executable backend example is
examples/molecular/solvation/input-unified.py. For post-SCF calculations,
the manual explains the explicit
frozen-reference approximation and its supported methods.