Manual specification of DH-functionals

Hello,

I would like to ask if QChem supports the manual specification of double hybrid functionals?
Specifically, wB97x-2(LP) and wB97M(2)?
If not, is there some trick to allow the user to run these functionals using a user defined HF percent?

Thanks in advance,
Nurit.

The use of SSS_FACTOR in $rem to obtain the wB97X-2(LP) functional appears to be described in the manual, and the following sample job is provided with the code that suggests that wB97M(2) is available by keyword:

$molecule
0 1
H 0.000000000 0.802679820 1.695293290
F 0.000000000 -0.045966660 1.340348180
$end

$rem
jobtype sp
method wB97M(2)
n_frozen_core fc
basis def2-QZVPPD
aux_basis_corr rimp2-def2-QZVPPD
xc_grid 000099000590
nl_grid 1
incdft 0
incfock 0
scf_convergence 11
thresh 14
symmetry false
sym_ignore true
$end

Similarly, the following sample job is included for the wB97X-2(LP) functional:

$molecule
0 1
H
Li H 1.6
$end

$rem
jobtype opt
exchange omegaB97X-2(LP)
correlation mp2
basis cc-pvdz
$end

Thank you for the reply, but I see I did not make myself clear.
I need to implement similar functionals to these two, but with different Hartree Fock percents.
This is why I cannot invoke the functionals by METHOD, but I must manually specify all their components ( :woman_facepalming:).
Is there a way to do that?

Please refer to the answer in this thread: Manual specification of double hybrids

Thanks Evgeny, but I still don’t manage to manually implement wB97M(2). One of the components there is the VV10 correlation, which should be calculated non self consistently using orbitals generated with wB97m-V (Cookie Absent), and I don’t manage to get that component right.

The difficulty is that wB97M(2) defines the molecular orbitals and Fock matrix with one density functional and SCF energy with another. Reproducing it by exposing all the parameters is a little painful, but possible. It requires running two chained calculations and a bit of post-processing by hand. Here is the input:

$molecule
0 1
He
He 1 1.0
$end

$rem
exchange = gen
correlation = rimp2
basis = vdz
aux_basis = rimp2-vdz
lrc_dft = 1
hfk_sr_coef =  15000000
hfk_lr_coef = 100000000
omega = 300
dh = 1
scs = 3
sss_factor = 340960
sos_factor = 340960
nl_correlation = vv10
nl_vv_b = 600
nl_vv_c = 100
nl_vv_scale = 100000
! Uncomment these settings to use rVV10 instead of VV10
!use_rvv10 = 1
!nl_vv_b = 620
!nl_vv_c = 100
!nl_vv_scale = 100000
$end

$xc_functional
k 0.15
x wb97mv 1.0
c wb97mv 1.0
$end

@@@

$molecule
READ
$end

$rem
exchange = gen
basis = vdz
lrc_dft = 1
hfk_sr_coef =  62194000
hfk_lr_coef = 100000000
omega = 300
nl_correlation = vv10
nl_vv_b = 1000
nl_vv_c = 100
nl_vv_scale = 65904
scf_guess = read
scf_max_cycles = 0
$end

$xc_functional
k 0.62194
x wb97m2 1.0
c wb97m2 1.0
$end

The first job will produce

 SCF   energy in the final basis set =       -5.6280140740
 Total energy in the final basis set =       -5.6280140740
. . .
 Doing a Spin Component Scaled (SCS)-MP2 calculation

 Energies are scaled by
 Same     Spin Scaling factor = 0.340960
 Opposite Spin Scaling factor = 0.340960

 Components of the RIMP2 correlation energy:
        aaaa    correlation energy =        -0.0000080287 a.u.
        abab    correlation energy =        -0.0088227548 a.u.
        bbbb    correlation energy =        -0.0000080287 a.u.
        non-Brillouin singles      =        -0.0000000000 a.u.
        total same-spin energy     =        -0.0000160573 a.u.
        total opposite-spin energy =        -0.0088227548 a.u.

 Total  RIMP2   correlation energy =        -0.0088388121 a.u.
        RIMP2         total energy =        -5.6368528860 a.u.

We will only be interested in the total RIMP2 correlation energy: -0.0088388121

The second job will produce

 ---------------------------------------
  Cycle       Energy         DIIS Error
 ---------------------------------------
    1      -5.6180455678      2.86E-03 Convergence criterion met
 ---------------------------------------
 SCF time:  CPU 0.14 s  wall 0.14 s
 SCF   energy in the final basis set = -5.61804557
 Total energy in the final basis set = -5.61804557

Here we are interested in the final SCF energy: -5.6180455678.
Total wB97M(2) energy is then -5.6180455678 + (-0.0088388121) = -5.6268843799

Compare this with the output produced by a streamlined job

$molecule
0 1
He
He 1 1.0
$end

$rem
method = wb97m(2)
basis = vdz
aux_basis_corr = rimp2-vdz
$end
 Nonlocal correlation =     0.0056725632
    7      -5.6280140742      5.50E-07 Convergence criterion met
 ---------------------------------------
 wB97M-V orbitals are now ready for the wB97M(2) calculation.
 wB97M(2) energy = Exch (0.62194 SRHF + 1.0 LRHF + wB97M(2)_EXCH) +
               Corr (wB97M(2)_CORR + 0.34096 MP2 + 0.65904 VV10(b=10))
 SCF time:  CPU 1.08 s  wall 1.09 s
 SCF   energy in the final basis set = -5.61804601
 Total energy in the final basis set = -5.61804601
. . .
 Doing a Spin Component Scaled (SCS)-MP2 calculation

 Energies are scaled by
 Same     Spin Scaling factor = 0.340960
 Opposite Spin Scaling factor = 0.340960

 Components of the RIMP2 correlation energy:
        aaaa    correlation energy =        -0.0000080287 a.u.
        abab    correlation energy =        -0.0088227574 a.u.
        bbbb    correlation energy =        -0.0000080287 a.u.
        non-Brillouin singles      =        -0.0000000000 a.u.
        total same-spin energy     =        -0.0000160573 a.u.
        total opposite-spin energy =        -0.0088227574 a.u.

 Total  RIMP2   correlation energy =        -0.0088388147 a.u.
        RIMP2         total energy =        -5.6268848268 a.u.

The final result is the same: -5.6268848268

1 Like

I think the xc_functional section of the second job is missing here.
Am I right assuming it to be:

$xc_functional
k 0.62194
x wb97m(2) 1.0
c wb97mv(2) 1.0
$end

?

Yes, a copy/paste error. I corrected the input.

Many thanks, but I still have some tiny issue with it. I’m sending a more specific question and relevant output files to the support email.