vibeqc.run_double_hybrid¶
- vibeqc.run_double_hybrid(mol, basis, functional_name, *, density_fit=True, aux_basis='', density_fit_mp2=True, aux_basis_mp2='', dispersion=None, rks_options=None, output=None)[source]¶
Generic double-hybrid dispatcher.
Resolves
functional_nameto aFunctional, runs a hybrid-DFT SCF step with that functional’s SCF piece, runs an MP2 correction on the converged KS orbitals with the functional’smp2_c_os/mp2_c_ssscaling, optionally adds a dispersion correction, and returns aDoubleHybridResultcarrying all pieces and the combined total energy.functional_namemust resolve to anis_double_hybridfunctional (currently"b2plyp","dsd-pbep86", or"pwpb95"); aValueErroris raised otherwise. The thin wrappersrun_b2plyp(),run_dsd_pbep86(), andrun_pwpb95()are the name-specific entry points most callers will use."pwpb95"resolves to a meta-GGA functional, so its SCF step runs through the τ-dependent Kohn-Sham path; the dispatcher handles that transparently.- Parameters:
mol (Molecule, BasisSet) – The molecular system. Must be closed-shell.
basis (Molecule, BasisSet) – The molecular system. Must be closed-shell.
functional_name (str) – Name of a double-hybrid functional registered in vibe-qc’s
Functionalresolver.density_fit (bool, default True) – Density-fit the RKS hybrid SCF step (J via RI-J, K via RI-K since double hybrids in this line all have α_HF > 0).
aux_basis (str, default "") – Aux basis for the SCF DF. Empty → auto-resolve a JKfit aux from the orbital basis name.
density_fit_mp2 (bool, default True) – Use RI-MP2 (recommended) for the post-SCF correction. False falls back to canonical MP2 — only useful for parity validation against canonical-MP2 reference codes.
aux_basis_mp2 (str, default "") – Aux basis for the MP2 DF. Empty → auto-resolve a per-zeta RIfit aux from the orbital basis name. Ignored when
density_fit_mp2=False.dispersion (str or None, default None) –
Optional dispersion correction folded into
DoubleHybridResult.e_total. Supported:None— un-dispersed XC + MP2 total (the published “no-D” energy)."d3bj"— Grimme-Antony-Ehrlich-Krieg 2010 D3 with Becke-Johnson damping, parameters for the functional read from the existingvibeqc.compute_d3bj()framework (prefers the optionaldftd3backend when installed, falls back to the vibe-qc native stub)."d4"— Caldeweyher-Bannwarth-Grimme 2019 D4 via the optionaldftd4package; seevibeqc.compute_d4().
The dispersion energy is stored on
DoubleHybridResult.dispersionas either aDispersionResult(D3-BJ) or aD4Result(D4); both expose.energyso consumers can treat them uniformly.rks_options (RKSOptions, optional) – Caller-provided options for the SCF step. The functional field is overridden with
functional_nameregardless; everything else is honoured. IfNone, a defaultRKSOptionsis used withdensity_fit/aux_basisapplied per the keyword arguments above.
- Return type: