"""Matched water calculations. The default needs only vibe-qc.

Set MOIST_REFERENCE=1 in the external-reference environment for the second run.
"""
import os
import vibeqc as vq


water = vq.Molecule([vq.Atom(8, (0, 0, 0)), vq.Atom(1, (0, 1.498, -1.159)),
                     vq.Atom(1, (0, -1.498, -1.159))], 0, 1)
if os.environ.get("MOIST_REFERENCE") == "1":
    import moist
    model = vq.MoistOptions(
        cavity=moist.ISwiG(parameters=moist.ISwiGParameters(nleb=26)),
        components=(moist.ModelComponentCPCM(78.39, parameters=moist.PCMParameters(solver="dense")),))
else:
    model = vq.MoistNativeOptions(cavity=vq.ISwiGCavity(26), components=(vq.NativePCM("cpcm", 78.39),))
result = vq.run_job(water, method="rhf", basis="sto-3g", density_fit=False,
                    solvation=vq.SolvationOptions(model.variant, model=model))
print(model.variant, result.energy, result.solvent_result.e_solv)
