mirror of
https://github.com/cp2k/cp2k.git
synced 2026-07-28 22:25:32 -04:00
Refactoring of vdW pairpotential code. (#3671)
This commit is contained in:
parent
c0268dfdea
commit
e8dbeb2e75
7 changed files with 3528 additions and 3265 deletions
|
|
@ -531,10 +531,13 @@ list(
|
|||
qs_diis.F
|
||||
qs_diis_types.F
|
||||
qs_dispersion_nonloc.F
|
||||
qs_dispersion_d2.F
|
||||
qs_dispersion_d3.F
|
||||
qs_dispersion_d4.F
|
||||
qs_dispersion_pairpot.F
|
||||
qs_dispersion_types.F
|
||||
qs_dispersion_utils.F
|
||||
qs_dispersion_cnum.F
|
||||
qs_dos.F
|
||||
qs_efield_berry.F
|
||||
qs_efield_local.F
|
||||
|
|
|
|||
1206
src/qs_dispersion_cnum.F
Normal file
1206
src/qs_dispersion_cnum.F
Normal file
File diff suppressed because it is too large
Load diff
258
src/qs_dispersion_d2.F
Normal file
258
src/qs_dispersion_d2.F
Normal file
|
|
@ -0,0 +1,258 @@
|
|||
!--------------------------------------------------------------------------------------------------!
|
||||
! CP2K: A general program to perform molecular dynamics simulations !
|
||||
! Copyright 2000-2024 CP2K developers group <https://cp2k.org> !
|
||||
! !
|
||||
! SPDX-License-Identifier: GPL-2.0-or-later !
|
||||
!--------------------------------------------------------------------------------------------------!
|
||||
|
||||
! **************************************************************************************************
|
||||
!> \brief Calculation of D2 dispersion
|
||||
!> \author JGH
|
||||
! **************************************************************************************************
|
||||
MODULE qs_dispersion_d2
|
||||
|
||||
USE atomic_kind_types, ONLY: atomic_kind_type,&
|
||||
get_atomic_kind,&
|
||||
get_atomic_kind_set
|
||||
USE atprop_types, ONLY: atprop_array_init,&
|
||||
atprop_type
|
||||
USE cell_types, ONLY: cell_type
|
||||
USE kinds, ONLY: dp
|
||||
USE physcon, ONLY: bohr,&
|
||||
kjmol
|
||||
USE qs_dispersion_types, ONLY: qs_atom_dispersion_type,&
|
||||
qs_dispersion_type
|
||||
USE qs_environment_types, ONLY: get_qs_env,&
|
||||
qs_environment_type
|
||||
USE qs_force_types, ONLY: qs_force_type
|
||||
USE qs_kind_types, ONLY: get_qs_kind,&
|
||||
qs_kind_type
|
||||
USE qs_neighbor_list_types, ONLY: get_iterator_info,&
|
||||
neighbor_list_iterate,&
|
||||
neighbor_list_iterator_create,&
|
||||
neighbor_list_iterator_p_type,&
|
||||
neighbor_list_iterator_release,&
|
||||
neighbor_list_set_p_type
|
||||
USE virial_methods, ONLY: virial_pair_force
|
||||
USE virial_types, ONLY: virial_type
|
||||
#include "./base/base_uses.f90"
|
||||
|
||||
IMPLICIT NONE
|
||||
|
||||
PRIVATE
|
||||
|
||||
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'qs_dispersion_d2'
|
||||
|
||||
PUBLIC :: calculate_dispersion_d2_pairpot, dftd2_param
|
||||
|
||||
! **************************************************************************************************
|
||||
|
||||
CONTAINS
|
||||
|
||||
! **************************************************************************************************
|
||||
!> \brief ...
|
||||
!> \param qs_env ...
|
||||
!> \param dispersion_env ...
|
||||
!> \param evdw ...
|
||||
!> \param calculate_forces ...
|
||||
!> \param atevdw ...
|
||||
! **************************************************************************************************
|
||||
SUBROUTINE calculate_dispersion_d2_pairpot(qs_env, dispersion_env, evdw, calculate_forces, atevdw)
|
||||
|
||||
TYPE(qs_environment_type), POINTER :: qs_env
|
||||
TYPE(qs_dispersion_type), POINTER :: dispersion_env
|
||||
REAL(KIND=dp), INTENT(OUT) :: evdw
|
||||
LOGICAL, INTENT(IN) :: calculate_forces
|
||||
REAL(KIND=dp), DIMENSION(:), OPTIONAL :: atevdw
|
||||
|
||||
CHARACTER(LEN=*), PARAMETER :: routineN = 'calculate_dispersion_d2_pairpot'
|
||||
|
||||
INTEGER :: atom_a, atom_b, handle, iatom, ikind, &
|
||||
jatom, jkind, mepos, natom, nkind, &
|
||||
num_pe, za, zb
|
||||
INTEGER, ALLOCATABLE, DIMENSION(:) :: atom_of_kind, atomnumber, kind_of
|
||||
LOGICAL :: atenergy, atex, atstress, floating_a, &
|
||||
ghost_a, use_virial
|
||||
LOGICAL, ALLOCATABLE, DIMENSION(:) :: dodisp, floating, ghost
|
||||
REAL(KIND=dp) :: c6, dd, devdw, dfdmp, dr, er, fac, fdmp, &
|
||||
rcc, rcut, s6, xp
|
||||
REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: c6d2, radd2
|
||||
REAL(KIND=dp), DIMENSION(3) :: fdij, rij
|
||||
REAL(KIND=dp), DIMENSION(3, 3) :: pv_virial_thread
|
||||
REAL(KIND=dp), DIMENSION(:), POINTER :: atener
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: atstr
|
||||
TYPE(atomic_kind_type), DIMENSION(:), POINTER :: atomic_kind_set
|
||||
TYPE(atprop_type), POINTER :: atprop
|
||||
TYPE(cell_type), POINTER :: cell
|
||||
TYPE(neighbor_list_iterator_p_type), &
|
||||
DIMENSION(:), POINTER :: nl_iterator
|
||||
TYPE(neighbor_list_set_p_type), DIMENSION(:), &
|
||||
POINTER :: sab_vdw
|
||||
TYPE(qs_atom_dispersion_type), POINTER :: disp_a
|
||||
TYPE(qs_force_type), DIMENSION(:), POINTER :: force
|
||||
TYPE(qs_kind_type), DIMENSION(:), POINTER :: qs_kind_set
|
||||
TYPE(virial_type), POINTER :: virial
|
||||
|
||||
CALL timeset(routineN, handle)
|
||||
|
||||
evdw = 0._dp
|
||||
|
||||
NULLIFY (atomic_kind_set, qs_kind_set, sab_vdw)
|
||||
|
||||
CALL get_qs_env(qs_env=qs_env, nkind=nkind, natom=natom, atomic_kind_set=atomic_kind_set, &
|
||||
qs_kind_set=qs_kind_set, cell=cell, virial=virial, atprop=atprop)
|
||||
|
||||
! atomic energy and stress arrays
|
||||
atenergy = atprop%energy
|
||||
IF (atenergy) THEN
|
||||
CALL atprop_array_init(atprop%atevdw, natom)
|
||||
atener => atprop%atevdw
|
||||
END IF
|
||||
atstress = atprop%stress
|
||||
atstr => atprop%atstress
|
||||
! external atomic energy
|
||||
atex = .FALSE.
|
||||
IF (PRESENT(atevdw)) THEN
|
||||
atex = .TRUE.
|
||||
END IF
|
||||
|
||||
NULLIFY (force)
|
||||
CALL get_qs_env(qs_env=qs_env, force=force)
|
||||
CALL get_atomic_kind_set(atomic_kind_set, atom_of_kind=atom_of_kind, kind_of=kind_of)
|
||||
use_virial = virial%pv_availability .AND. (.NOT. virial%pv_numer)
|
||||
pv_virial_thread(:, :) = 0._dp
|
||||
|
||||
ALLOCATE (dodisp(nkind), ghost(nkind), floating(nkind), atomnumber(nkind), c6d2(nkind), radd2(nkind))
|
||||
DO ikind = 1, nkind
|
||||
CALL get_atomic_kind(atomic_kind_set(ikind), z=za)
|
||||
CALL get_qs_kind(qs_kind_set(ikind), dispersion=disp_a, ghost=ghost_a, floating=floating_a)
|
||||
dodisp(ikind) = disp_a%defined
|
||||
ghost(ikind) = ghost_a
|
||||
floating(ikind) = floating_a
|
||||
atomnumber(ikind) = za
|
||||
c6d2(ikind) = disp_a%c6
|
||||
radd2(ikind) = disp_a%vdw_radii
|
||||
END DO
|
||||
|
||||
rcut = 2._dp*dispersion_env%rc_disp
|
||||
s6 = dispersion_env%scaling
|
||||
dd = dispersion_env%exp_pre
|
||||
|
||||
sab_vdw => dispersion_env%sab_vdw
|
||||
num_pe = 1
|
||||
CALL neighbor_list_iterator_create(nl_iterator, sab_vdw, nthread=num_pe)
|
||||
|
||||
mepos = 0
|
||||
DO WHILE (neighbor_list_iterate(nl_iterator, mepos=mepos) == 0)
|
||||
CALL get_iterator_info(nl_iterator, mepos=mepos, ikind=ikind, jkind=jkind, iatom=iatom, jatom=jatom, r=rij)
|
||||
|
||||
IF (ghost(ikind) .OR. ghost(jkind) .OR. floating(ikind) .OR. floating(jkind)) CYCLE
|
||||
|
||||
IF (.NOT. (dodisp(ikind) .AND. dodisp(jkind))) CYCLE
|
||||
|
||||
za = atomnumber(ikind)
|
||||
zb = atomnumber(jkind)
|
||||
! vdW potential
|
||||
dr = SQRT(SUM(rij(:)**2))
|
||||
IF (dr <= rcut) THEN
|
||||
fac = 1._dp
|
||||
IF (iatom == jatom) fac = 0.5_dp
|
||||
IF (dr > 0.001_dp) THEN
|
||||
c6 = SQRT(c6d2(ikind)*c6d2(jkind))
|
||||
rcc = radd2(ikind) + radd2(jkind)
|
||||
er = EXP(-dd*(dr/rcc - 1._dp))
|
||||
fdmp = 1._dp/(1._dp + er)
|
||||
xp = s6*c6/dr**6
|
||||
evdw = evdw - xp*fdmp*fac
|
||||
IF (calculate_forces) THEN
|
||||
dfdmp = dd/rcc*er*fdmp*fdmp
|
||||
devdw = -xp*(-6._dp*fdmp/dr + dfdmp)
|
||||
fdij(:) = devdw*rij(:)/dr*fac
|
||||
atom_a = atom_of_kind(iatom)
|
||||
atom_b = atom_of_kind(jatom)
|
||||
force(ikind)%dispersion(:, atom_a) = force(ikind)%dispersion(:, atom_a) - fdij(:)
|
||||
force(jkind)%dispersion(:, atom_b) = force(jkind)%dispersion(:, atom_b) + fdij(:)
|
||||
IF (use_virial) THEN
|
||||
CALL virial_pair_force(pv_virial_thread, -1._dp, fdij, rij)
|
||||
END IF
|
||||
IF (atstress) THEN
|
||||
CALL virial_pair_force(atstr(:, :, iatom), -0.5_dp, fdij, rij)
|
||||
CALL virial_pair_force(atstr(:, :, jatom), -0.5_dp, fdij, rij)
|
||||
END IF
|
||||
END IF
|
||||
IF (atenergy) THEN
|
||||
atener(iatom) = atener(iatom) - 0.5_dp*xp*fdmp*fac
|
||||
atener(jatom) = atener(jatom) - 0.5_dp*xp*fdmp*fac
|
||||
END IF
|
||||
IF (atex) THEN
|
||||
atevdw(iatom) = atevdw(iatom) - 0.5_dp*xp*fdmp*fac
|
||||
atevdw(jatom) = atevdw(jatom) - 0.5_dp*xp*fdmp*fac
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
|
||||
END DO
|
||||
|
||||
virial%pv_virial = virial%pv_virial + pv_virial_thread
|
||||
|
||||
CALL neighbor_list_iterator_release(nl_iterator)
|
||||
|
||||
DEALLOCATE (dodisp, ghost, floating, atomnumber, radd2, c6d2)
|
||||
|
||||
CALL timestop(handle)
|
||||
|
||||
END SUBROUTINE calculate_dispersion_d2_pairpot
|
||||
|
||||
! **************************************************************************************************
|
||||
!> \brief ...
|
||||
!> \param z ...
|
||||
!> \param c6 ...
|
||||
!> \param r ...
|
||||
!> \param found ...
|
||||
! **************************************************************************************************
|
||||
SUBROUTINE dftd2_param(z, c6, r, found)
|
||||
|
||||
INTEGER, INTENT(in) :: z
|
||||
REAL(KIND=dp), INTENT(inout) :: c6, r
|
||||
LOGICAL, INTENT(inout) :: found
|
||||
|
||||
REAL(KIND=dp), DIMENSION(54), PARAMETER :: c6val = (/0.14_dp, 0.08_dp, 1.61_dp, 1.61_dp, &
|
||||
3.13_dp, 1.75_dp, 1.23_dp, 0.70_dp, 0.75_dp, 0.63_dp, 5.71_dp, 5.71_dp, 10.79_dp, 9.23_dp,&
|
||||
7.84_dp, 5.57_dp, 5.07_dp, 4.61_dp, 10.80_dp, 10.80_dp, 10.80_dp, 10.80_dp, 10.80_dp, &
|
||||
10.80_dp, 10.80_dp, 10.80_dp, 10.80_dp, 10.80_dp, 10.80_dp, 10.80_dp, 16.99_dp, 17.10_dp, &
|
||||
16.37_dp, 12.64_dp, 12.47_dp, 12.01_dp, 24.67_dp, 24.67_dp, 24.67_dp, 24.67_dp, 24.67_dp, &
|
||||
24.67_dp, 24.67_dp, 24.67_dp, 24.67_dp, 24.67_dp, 24.67_dp, 24.67_dp, 37.32_dp, 38.71_dp, &
|
||||
38.44_dp, 31.74_dp, 31.50_dp, 29.99_dp/)
|
||||
REAL(KIND=dp), DIMENSION(54), PARAMETER :: rval = (/1.001_dp, 1.012_dp, 0.825_dp, 1.408_dp, &
|
||||
1.485_dp, 1.452_dp, 1.397_dp, 1.342_dp, 1.287_dp, 1.243_dp, 1.144_dp, 1.364_dp, 1.639_dp, &
|
||||
1.716_dp, 1.705_dp, 1.683_dp, 1.639_dp, 1.595_dp, 1.485_dp, 1.474_dp, 1.562_dp, 1.562_dp, &
|
||||
1.562_dp, 1.562_dp, 1.562_dp, 1.562_dp, 1.562_dp, 1.562_dp, 1.562_dp, 1.562_dp, 1.650_dp, &
|
||||
1.727_dp, 1.760_dp, 1.771_dp, 1.749_dp, 1.727_dp, 1.628_dp, 1.606_dp, 1.639_dp, 1.639_dp, &
|
||||
1.639_dp, 1.639_dp, 1.639_dp, 1.639_dp, 1.639_dp, 1.639_dp, 1.639_dp, 1.639_dp, 1.672_dp, &
|
||||
1.804_dp, 1.881_dp, 1.892_dp, 1.892_dp, 1.881_dp/)
|
||||
|
||||
!
|
||||
! GRIMME DISPERSION PARAMETERS
|
||||
! Stefan Grimme, Semiempirical GGA-Type Density Functional Constructed
|
||||
! with a Long-Range Dispersion Correction, J. Comp. Chem. 27: 1787-1799 (2006)
|
||||
! doi:10.1002/jcc.20495
|
||||
!
|
||||
! Conversion factor [Jnm^6mol^-1] -> [a.u.] : 17.34527758021901
|
||||
! Conversion factor [A] -> [a.u.] : 1.889726132885643
|
||||
!
|
||||
! C6 values in [Jnm^6/mol]
|
||||
! vdW radii [A]
|
||||
|
||||
IF (z > 0 .AND. z <= 54) THEN
|
||||
found = .TRUE.
|
||||
c6 = c6val(z)*1000._dp*bohr**6/kjmol
|
||||
r = rval(z)*bohr
|
||||
ELSE
|
||||
found = .FALSE.
|
||||
END IF
|
||||
|
||||
END SUBROUTINE dftd2_param
|
||||
|
||||
! **************************************************************************************************
|
||||
|
||||
END MODULE qs_dispersion_d2
|
||||
1126
src/qs_dispersion_d3.F
Normal file
1126
src/qs_dispersion_d3.F
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -23,18 +23,17 @@ MODULE qs_dispersion_utils
|
|||
USE input_section_types, ONLY: section_vals_get_subs_vals,&
|
||||
section_vals_type,&
|
||||
section_vals_val_get
|
||||
USE kinds, ONLY: dp
|
||||
USE kinds, ONLY: default_string_length,&
|
||||
dp
|
||||
USE physcon, ONLY: bohr,&
|
||||
kjmol
|
||||
USE qs_dispersion_pairpot, ONLY: qs_scaling_dftd3,&
|
||||
qs_scaling_dftd3bj,&
|
||||
qs_scaling_init
|
||||
USE qs_dispersion_types, ONLY: qs_atom_dispersion_type,&
|
||||
qs_dispersion_type
|
||||
USE qs_environment_types, ONLY: get_qs_env,&
|
||||
qs_environment_type
|
||||
USE qs_kind_types, ONLY: get_qs_kind,&
|
||||
qs_kind_type
|
||||
USE string_utilities, ONLY: uppercase
|
||||
#include "./base/base_uses.f90"
|
||||
|
||||
IMPLICIT NONE
|
||||
|
|
@ -93,7 +92,7 @@ CONTAINS
|
|||
IF (.NOT. explicit) THEN
|
||||
CALL section_vals_val_get(pp_section, "REFERENCE_FUNCTIONAL", explicit=exfun)
|
||||
CPASSERT(exfun)
|
||||
CALL qs_scaling_init(dispersion_env%scaling, vdw_section)
|
||||
CALL qs_scaling_dftd2(dispersion_env%scaling, vdw_section)
|
||||
ELSE
|
||||
CALL section_vals_val_get(pp_section, "SCALING", r_val=dispersion_env%scaling)
|
||||
END IF
|
||||
|
|
@ -184,8 +183,6 @@ CONTAINS
|
|||
END IF
|
||||
END SUBROUTINE qs_dispersion_env_set
|
||||
|
||||
! **************************************************************************************************
|
||||
|
||||
! **************************************************************************************************
|
||||
!> \brief ...
|
||||
!> \param qs_env ...
|
||||
|
|
@ -322,6 +319,833 @@ CONTAINS
|
|||
|
||||
END SUBROUTINE qs_write_dispersion
|
||||
|
||||
! **************************************************************************************************
|
||||
!> \brief ...
|
||||
!> \param scaling ...
|
||||
!> \param vdw_section ...
|
||||
! **************************************************************************************************
|
||||
SUBROUTINE qs_scaling_dftd2(scaling, vdw_section)
|
||||
REAL(KIND=dp), INTENT(inout) :: scaling
|
||||
TYPE(section_vals_type), POINTER :: vdw_section
|
||||
|
||||
CHARACTER(LEN=default_string_length) :: functional
|
||||
|
||||
CALL section_vals_val_get(vdw_section, "PAIR_POTENTIAL%REFERENCE_FUNCTIONAL", c_val=functional)
|
||||
|
||||
SELECT CASE (TRIM(functional))
|
||||
CASE DEFAULT
|
||||
! unknown functional
|
||||
CPABORT("No DFT-D2 s6 value available for this functional:"//TRIM(functional))
|
||||
CASE ("BLYP")
|
||||
scaling = 1.20_dp
|
||||
CASE ("B3LYP")
|
||||
scaling = 1.05_dp
|
||||
CASE ("TPSS")
|
||||
scaling = 1.00_dp
|
||||
CASE ("PBE")
|
||||
scaling = 0.75_dp
|
||||
CASE ("PBE0")
|
||||
scaling = 0.6_dp
|
||||
CASE ("B2PLYP")
|
||||
scaling = 0.55_dp
|
||||
CASE ("BP86")
|
||||
scaling = 1.05_dp
|
||||
CASE ("B97")
|
||||
scaling = 1.25_dp
|
||||
END SELECT
|
||||
|
||||
END SUBROUTINE qs_scaling_dftd2
|
||||
|
||||
! **************************************************************************************************
|
||||
!> \brief ...
|
||||
!> \param s6 ...
|
||||
!> \param sr6 ...
|
||||
!> \param s8 ...
|
||||
!> \param vdw_section ...
|
||||
! **************************************************************************************************
|
||||
SUBROUTINE qs_scaling_dftd3(s6, sr6, s8, vdw_section)
|
||||
|
||||
REAL(KIND=dp), INTENT(inout) :: s6, sr6, s8
|
||||
TYPE(section_vals_type), POINTER :: vdw_section
|
||||
|
||||
CHARACTER(LEN=default_string_length) :: functional
|
||||
|
||||
CALL section_vals_val_get(vdw_section, "PAIR_POTENTIAL%REFERENCE_FUNCTIONAL", c_val=functional)
|
||||
CALL uppercase(functional)
|
||||
! values for different functionals from:
|
||||
! https://www.chemie.uni-bonn.de/grimme/de/software/dft-d3
|
||||
! L. Goerigk et al. PCCP 2017, 32147-32744, SI
|
||||
SELECT CASE (TRIM(functional))
|
||||
CASE DEFAULT
|
||||
! unknown functional
|
||||
CPABORT("No DFT-D3 values available for this functional:"//TRIM(functional))
|
||||
CASE ("B1B95")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.613_dp
|
||||
s8 = 1.868_dp
|
||||
CASE ("B2GPPLYP")
|
||||
! L. Goerigk and S. Grimme
|
||||
! J. Chem. Theory Comput. 2011, 7, 291-309; doi:10.1021/ct100466k
|
||||
s6 = 0.56_dp
|
||||
sr6 = 1.586_dp
|
||||
s8 = 0.760_dp
|
||||
CASE ("B2PLYP")
|
||||
! L. Goerigk and S. Grimme
|
||||
! J. Chem. Theory Comput. 2011, 7, 291-309; doi:10.1021/ct100466k
|
||||
s6 = 0.64_dp
|
||||
sr6 = 1.427_dp
|
||||
s8 = 1.022_dp
|
||||
CASE ("DSD-BLYP")
|
||||
! L. Goerigk and S. Grimme
|
||||
! J. Chem. Theory Comput. 2011, 7, 291-309; doi:10.1021/ct100466k
|
||||
s6 = 0.50_dp
|
||||
sr6 = 1.569_dp
|
||||
s8 = 0.705_dp
|
||||
CASE ("B3LYP")
|
||||
! S. Grimme, J. Antony, S. Ehrlich, and H. Krieg
|
||||
! J. Chem. Phys. 132,154104 (2010); doi:10.1063/1.3382344
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.261_dp
|
||||
s8 = 1.703_dp
|
||||
CASE ("B97-D")
|
||||
! S. Grimme, J. Antony, S. Ehrlich, and H. Krieg
|
||||
! J. Chem. Phys. 132,154104 (2010); doi:10.1063/1.3382344
|
||||
s6 = 1.000_dp
|
||||
sr6 = 0.892_dp
|
||||
s8 = 0.909_dp
|
||||
CASE ("BHLYP")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.370_dp
|
||||
s8 = 1.442_dp
|
||||
CASE ("BLYP")
|
||||
! S. Grimme, J. Antony, S. Ehrlich, and H. Krieg
|
||||
! J. Chem. Phys. 132,154104 (2010); doi:10.1063/1.3382344
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.094_dp
|
||||
s8 = 1.682_dp
|
||||
CASE ("BP86")
|
||||
! S. Grimme, J. Antony, S. Ehrlich, and H. Krieg
|
||||
! J. Chem. Phys. 132,154104 (2010); doi:10.1063/1.3382344
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.139_dp
|
||||
s8 = 1.683_dp
|
||||
CASE ("BPBE")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.087_dp
|
||||
s8 = 2.033_dp
|
||||
CASE ("MPWLYP")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.239_dp
|
||||
s8 = 1.098_dp
|
||||
CASE ("PBE")
|
||||
! S. Grimme, J. Antony, S. Ehrlich, and H. Krieg
|
||||
! J. Chem. Phys. 132,154104 (2010); doi:10.1063/1.3382344
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.217_dp
|
||||
s8 = 0.722_dp
|
||||
CASE ("PBEHPBE")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.5703_dp
|
||||
s8 = 1.4010_dp
|
||||
CASE ("PBE0")
|
||||
! S. Grimme, J. Antony, S. Ehrlich, and H. Krieg
|
||||
! J. Chem. Phys. 132,154104 (2010); doi:10.1063/1.3382344
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.287_dp
|
||||
s8 = 0.928_dp
|
||||
CASE ("PW6B95")
|
||||
! S. Grimme, J. Antony, S. Ehrlich, and H. Krieg
|
||||
! J. Chem. Phys. 132,154104 (2010); doi:10.1063/1.3382344
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.532_dp
|
||||
s8 = 0.862_dp
|
||||
CASE ("PWB6K")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.660_dp
|
||||
s8 = 0.550_dp
|
||||
CASE ("REVPBE")
|
||||
! S. Grimme, J. Antony, S. Ehrlich, and H. Krieg
|
||||
! J. Chem. Phys. 132,154104 (2010); doi:10.1063/1.3382344
|
||||
s6 = 1.000_dp
|
||||
sr6 = 0.923_dp
|
||||
s8 = 1.010_dp
|
||||
CASE ("RPBE")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 0.872_dp
|
||||
s8 = 0.514_dp
|
||||
CASE ("TPSS")
|
||||
! S. Grimme, J. Antony, S. Ehrlich, and H. Krieg
|
||||
! J. Chem. Phys. 132,154104 (2010); doi:10.1063/1.3382344
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.166_dp
|
||||
s8 = 1.105_dp
|
||||
CASE ("TPSS0")
|
||||
! S. Grimme, J. Antony, S. Ehrlich, and H. Krieg
|
||||
! J. Chem. Phys. 132,154104 (2010); doi:10.1063/1.3382344
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.252_dp
|
||||
s8 = 1.242_dp
|
||||
CASE ("TPSSH")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.223_dp
|
||||
s8 = 1.219_dp
|
||||
CASE ("B1LYP")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.3725_dp
|
||||
s8 = 1.9467_dp
|
||||
CASE ("B1P86")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.1815_dp
|
||||
s8 = 1.1209_dp
|
||||
CASE ("B3P86")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.1897_dp
|
||||
s8 = 1.1961_dp
|
||||
CASE ("B3PW91")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.176_dp
|
||||
s8 = 1.775_dp
|
||||
CASE ("BMK")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.931_dp
|
||||
s8 = 2.168_dp
|
||||
CASE ("CAMB3LYP")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.378_dp
|
||||
s8 = 1.217_dp
|
||||
CASE ("LCWPBE")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.355_dp
|
||||
s8 = 1.279_dp
|
||||
CASE ("M052X")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.417_dp
|
||||
s8 = 0.000_dp
|
||||
CASE ("M05")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.373_dp
|
||||
s8 = 0.595_dp
|
||||
CASE ("M062X")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.619_dp
|
||||
s8 = 0.000_dp
|
||||
CASE ("M06HF")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.446_dp
|
||||
s8 = 0.000_dp
|
||||
CASE ("M06L")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.581_dp
|
||||
s8 = 0.000_dp
|
||||
CASE ("M06N")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.325_dp
|
||||
s8 = 0.000_dp
|
||||
CASE ("HCTH120")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.221_dp
|
||||
s8 = 1.206_dp
|
||||
CASE ("HCTH407")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 4.0426_dp
|
||||
s8 = 2.7694_dp
|
||||
CASE ("MPW2PLYP")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.5527_dp
|
||||
s8 = 0.7529_dp
|
||||
CASE ("PKZB")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 0.6327_dp
|
||||
s8 = 0.000_dp
|
||||
CASE ("PTPSS")
|
||||
s6 = 0.750_dp
|
||||
sr6 = 1.541_dp
|
||||
s8 = 0.879_dp
|
||||
CASE ("PWPB95")
|
||||
s6 = 0.820_dp
|
||||
sr6 = 1.557_dp
|
||||
s8 = 0.705_dp
|
||||
CASE ("OLYP")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 0.806_dp
|
||||
s8 = 1.764_dp
|
||||
CASE ("OPBE")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 0.837_dp
|
||||
s8 = 2.055_dp
|
||||
CASE ("OTPSS")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.128_dp
|
||||
s8 = 1.494_dp
|
||||
CASE ("PBE1KCIS")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 3.6355_dp
|
||||
s8 = 1.7934_dp
|
||||
CASE ("PBE38")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.333_dp
|
||||
s8 = 0.998_dp
|
||||
CASE ("PBEH1PBE")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.3719_dp
|
||||
s8 = 1.0430_dp
|
||||
CASE ("PBESOL")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.345_dp
|
||||
s8 = 0.612_dp
|
||||
CASE ("REVSSB")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.221_dp
|
||||
s8 = 0.560_dp
|
||||
CASE ("REVTPSS")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.3491_dp
|
||||
s8 = 1.3666_dp
|
||||
CASE ("SSB")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.215_dp
|
||||
s8 = 0.663_dp
|
||||
CASE ("B97-1")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 3.7924_dp
|
||||
s8 = 1.6418_dp
|
||||
CASE ("B97-2")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.7066_dp
|
||||
s8 = 2.4661_dp
|
||||
CASE ("B98")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 2.6895_dp
|
||||
s8 = 1.9078_dp
|
||||
CASE ("BOP")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 0.929_dp
|
||||
s8 = 1.975_dp
|
||||
CASE ("HISS")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.3338_dp
|
||||
s8 = 0.7615_dp
|
||||
CASE ("HSE03")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.3944_dp
|
||||
s8 = 1.0156_dp
|
||||
CASE ("HSE06")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.129_dp
|
||||
s8 = 0.109_dp
|
||||
CASE ("M08HX")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.6247_dp
|
||||
s8 = 0.000_dp
|
||||
CASE ("MN15L")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 3.3388_dp
|
||||
s8 = 0.000_dp
|
||||
CASE ("MPWPW91")
|
||||
s6 = 1.0000_dp
|
||||
sr6 = 1.3725_dp
|
||||
s8 = 1.9467_dp
|
||||
CASE ("MPW1B95")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.605_dp
|
||||
s8 = 1.118_dp
|
||||
CASE ("MPW1KCIS")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.7231_dp
|
||||
s8 = 2.2917_dp
|
||||
CASE ("MPW1LYP")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 2.0512_dp
|
||||
s8 = 1.9529_dp
|
||||
CASE ("MPW1PW91")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.2892_dp
|
||||
s8 = 1.4758_dp
|
||||
CASE ("MPWB1K")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.671_dp
|
||||
s8 = 1.061_dp
|
||||
CASE ("MPWKCIS1K")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.4853_dp
|
||||
s8 = 1.7553_dp
|
||||
CASE ("O3LYP")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.4060_dp
|
||||
s8 = 1.8058_dp
|
||||
CASE ("PW1PW")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.4968_dp
|
||||
s8 = 1.1786_dp
|
||||
CASE ("PW91P86")
|
||||
s6 = 1.0000_dp
|
||||
sr6 = 2.1040_dp
|
||||
s8 = 0.8747_dp
|
||||
CASE ("REVPBE0")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 0.949_dp
|
||||
s8 = 0.792_dp
|
||||
CASE ("REVPBE38")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.021_dp
|
||||
s8 = 0.862_dp
|
||||
CASE ("REVTPSSh")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.3224_dp
|
||||
s8 = 1.2504_dp
|
||||
CASE ("REVTPSS0")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.2881_dp
|
||||
s8 = 1.0649_dp
|
||||
CASE ("TPSS1KCIS")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.7729_dp
|
||||
s8 = 2.0902_dp
|
||||
CASE ("THCTHHYB")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.5001_dp
|
||||
s8 = 1.6302_dp
|
||||
CASE ("RPW86PBE")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.224_dp
|
||||
s8 = 0.901_dp
|
||||
CASE ("SCAN")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.324_dp
|
||||
s8 = 0.000_dp
|
||||
CASE ("THCTH")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 0.932_dp
|
||||
s8 = 0.5662_dp
|
||||
CASE ("XLYP")
|
||||
s6 = 1.0000_dp
|
||||
sr6 = 0.9384_dp
|
||||
s8 = 0.7447_dp
|
||||
CASE ("X3LYP")
|
||||
s6 = 1.000_dp
|
||||
sr6 = 1.0000_dp
|
||||
s8 = 0.2990_dp
|
||||
END SELECT
|
||||
|
||||
END SUBROUTINE qs_scaling_dftd3
|
||||
|
||||
! **************************************************************************************************
|
||||
!> \brief ...
|
||||
!> \param s6 ...
|
||||
!> \param a1 ...
|
||||
!> \param s8 ...
|
||||
!> \param a2 ...
|
||||
!> \param vdw_section ...
|
||||
! **************************************************************************************************
|
||||
SUBROUTINE qs_scaling_dftd3bj(s6, a1, s8, a2, vdw_section)
|
||||
REAL(KIND=dp), INTENT(inout) :: s6, a1, s8, a2
|
||||
TYPE(section_vals_type), POINTER :: vdw_section
|
||||
|
||||
CHARACTER(LEN=default_string_length) :: functional
|
||||
|
||||
CALL section_vals_val_get(vdw_section, "PAIR_POTENTIAL%REFERENCE_FUNCTIONAL", c_val=functional)
|
||||
|
||||
! values for different functionals from:
|
||||
! http://www.thch.uni-bonn.de/tc/downloads/DFT-D3/functionalsbj.html
|
||||
! L. Goerigk et al. PCCP 2017, 32147-32744, SI
|
||||
SELECT CASE (TRIM(functional))
|
||||
CASE DEFAULT
|
||||
! unknown functional
|
||||
CPABORT("No DFT-D3(BJ) values available for this functional:"//TRIM(functional))
|
||||
CASE ("B1B95")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.2092_dp
|
||||
s8 = 1.4507_dp
|
||||
a2 = 5.5545_dp
|
||||
CASE ("B2GPPLYP")
|
||||
s6 = 0.5600_dp
|
||||
a1 = 0.0000_dp
|
||||
s8 = 0.2597_dp
|
||||
a2 = 6.3332_dp
|
||||
CASE ("B3PW91")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.4312_dp
|
||||
s8 = 2.8524_dp
|
||||
a2 = 4.4693_dp
|
||||
CASE ("BHLYP")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.2793_dp
|
||||
s8 = 1.0354_dp
|
||||
a2 = 4.9615_dp
|
||||
CASE ("BMK")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.1940_dp
|
||||
s8 = 2.0860_dp
|
||||
a2 = 5.9197_dp
|
||||
CASE ("BOP")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.4870_dp
|
||||
s8 = 3.2950_dp
|
||||
a2 = 3.5043_dp
|
||||
CASE ("BPBE")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.4567_dp
|
||||
s8 = 4.0728_dp
|
||||
a2 = 4.3908_dp
|
||||
CASE ("B97-3c")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.3700_dp
|
||||
s8 = 1.5000_dp
|
||||
a2 = 4.1000_dp
|
||||
CASE ("CAMB3LYP")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.3708_dp
|
||||
s8 = 2.0674_dp
|
||||
a2 = 5.4743_dp
|
||||
CASE ("DSDBLYP")
|
||||
s6 = 0.5000_dp
|
||||
a1 = 0.0000_dp
|
||||
s8 = 0.2130_dp
|
||||
a2 = 6.0519_dp
|
||||
CASE ("DSDPBEP86")
|
||||
s6 = 0.4180_dp
|
||||
a1 = 0.0000_dp
|
||||
s8 = 0.0000_dp
|
||||
a2 = 5.6500_dp
|
||||
CASE ("DSDPBEB95")
|
||||
s6 = 0.6100_dp
|
||||
a1 = 0.0000_dp
|
||||
s8 = 0.0000_dp
|
||||
a2 = 6.2000_dp
|
||||
CASE ("LCWPBE")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.3919_dp
|
||||
s8 = 1.8541_dp
|
||||
a2 = 5.0897_dp
|
||||
CASE ("LCWhPBE")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.2746_dp
|
||||
s8 = 1.1908_dp
|
||||
a2 = 5.3157_dp
|
||||
CASE ("MPW1B95")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.1955_dp
|
||||
s8 = 1.0508_dp
|
||||
a2 = 6.4177_dp
|
||||
CASE ("MPW2PLYP")
|
||||
s6 = 0.6600_dp
|
||||
a1 = 0.4105_dp
|
||||
s8 = 0.6223_dp
|
||||
a2 = 5.0136_dp
|
||||
CASE ("MPWB1K")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.1474_dp
|
||||
s8 = 0.9499_dp
|
||||
a2 = 6.6223_dp
|
||||
CASE ("MPWLYP")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.4831_dp
|
||||
s8 = 2.0077_dp
|
||||
a2 = 4.5323_dp
|
||||
CASE ("OLYP")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.5299_dp
|
||||
s8 = 2.6205_dp
|
||||
a2 = 2.8065_dp
|
||||
CASE ("OPBE")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.5512_dp
|
||||
s8 = 3.3816_dp
|
||||
a2 = 2.9444_dp
|
||||
CASE ("OTPSS")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.4634_dp
|
||||
s8 = 2.7495_dp
|
||||
a2 = 4.3153_dp
|
||||
CASE ("PBE38")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.3995_dp
|
||||
s8 = 1.4623_dp
|
||||
a2 = 5.1405_dp
|
||||
CASE ("PBEsol")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.4466_dp
|
||||
s8 = 2.9491_dp
|
||||
a2 = 6.1742_dp
|
||||
CASE ("PTPSS")
|
||||
s6 = 0.7500_dp
|
||||
a1 = 0.0000_dp
|
||||
s8 = 0.2804_dp
|
||||
a2 = 6.5745_dp
|
||||
CASE ("PWB6K")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.1805_dp
|
||||
s8 = 0.9383_dp
|
||||
a2 = 7.7627_dp
|
||||
CASE ("revSSB")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.4720_dp
|
||||
s8 = 0.4389_dp
|
||||
a2 = 4.0986_dp
|
||||
CASE ("SSB")
|
||||
s6 = 1.0000_dp
|
||||
a1 = -0.0952_dp
|
||||
s8 = -0.1744_dp
|
||||
a2 = 5.2170_dp
|
||||
CASE ("TPSSh")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.4529_dp
|
||||
s8 = 2.2382_dp
|
||||
a2 = 4.6550_dp
|
||||
CASE ("HCTH120")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.3563_dp
|
||||
s8 = 1.0821_dp
|
||||
a2 = 4.3359_dp
|
||||
CASE ("B2PLYP")
|
||||
s6 = 0.6400_dp
|
||||
a1 = 0.3065_dp
|
||||
s8 = 0.9147_dp
|
||||
a2 = 5.0570_dp
|
||||
CASE ("B1LYP")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.1986_dp
|
||||
s8 = 2.1167_dp
|
||||
a2 = 5.3875_dp
|
||||
CASE ("B1P86")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.4724_dp
|
||||
s8 = 3.5681_dp
|
||||
a2 = 4.9858_dp
|
||||
CASE ("B3LYP")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.3981_dp
|
||||
s8 = 1.9889_dp
|
||||
a2 = 4.4211_dp
|
||||
CASE ("B3P86")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.4601_dp
|
||||
s8 = 3.3211_dp
|
||||
a2 = 4.9294_dp
|
||||
CASE ("B97-1")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.0000_dp
|
||||
s8 = 0.4814_dp
|
||||
a2 = 6.2279_dp
|
||||
CASE ("B97-2")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.0000_dp
|
||||
s8 = 0.9448_dp
|
||||
a2 = 5.4603_dp
|
||||
CASE ("B97-D")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.5545_dp
|
||||
s8 = 2.2609_dp
|
||||
a2 = 3.2297_dp
|
||||
CASE ("B98")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.0000_dp
|
||||
s8 = 0.7086_dp
|
||||
a2 = 6.0672_dp
|
||||
CASE ("BLYP")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.4298_dp
|
||||
s8 = 2.6996_dp
|
||||
a2 = 4.2359_dp
|
||||
CASE ("BP86")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.3946_dp
|
||||
s8 = 3.2822_dp
|
||||
a2 = 4.8516_dp
|
||||
CASE ("DSD-BLYP")
|
||||
s6 = 0.5000_dp
|
||||
a1 = 0.0000_dp
|
||||
s8 = 0.2130_dp
|
||||
a2 = 6.0519_dp
|
||||
CASE ("HCTH407")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.0000_dp
|
||||
s8 = 0.6490_dp
|
||||
a2 = 4.8162_dp
|
||||
CASE ("HISS")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.0000_dp
|
||||
s8 = 1.6112_dp
|
||||
a2 = 7.3539_dp
|
||||
CASE ("HSE03")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.0000_dp
|
||||
s8 = 1.1243_dp
|
||||
a2 = 6.8889_dp
|
||||
CASE ("HSE06")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.3830_dp
|
||||
s8 = 2.3100_dp
|
||||
a2 = 5.6850_dp
|
||||
CASE ("M11")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.0000_dp
|
||||
s8 = 2.8112_dp
|
||||
a2 = 10.1389_dp
|
||||
CASE ("MN12SX")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.0983_dp
|
||||
s8 = 1.1674_dp
|
||||
a2 = 8.0259_dp
|
||||
CASE ("MN15")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 2.0971_dp
|
||||
s8 = 0.7862_dp
|
||||
a2 = 7.5923_dp
|
||||
CASE ("mPWPW91")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.3168_dp
|
||||
s8 = 1.7974_dp
|
||||
a2 = 4.7732_dp
|
||||
CASE ("MPW1PW91")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.3342_dp
|
||||
s8 = 1.8744_dp
|
||||
a2 = 4.9819_dp
|
||||
CASE ("MPW1KCIS")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.0576_dp
|
||||
s8 = 1.0893_dp
|
||||
a2 = 5.5314_dp
|
||||
CASE ("MPWKCIS1K")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.0855_dp
|
||||
s8 = 1.2875_dp
|
||||
a2 = 5.8961_dp
|
||||
CASE ("N12SX")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.3283_dp
|
||||
s8 = 2.4900_dp
|
||||
a2 = 5.7898_dp
|
||||
CASE ("O3LYP")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.0963_dp
|
||||
s8 = 1.8171_dp
|
||||
a2 = 5.9940_dp
|
||||
CASE ("PBE0")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.4145_dp
|
||||
s8 = 1.2177_dp
|
||||
a2 = 4.8593_dp
|
||||
CASE ("PBE")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.4289_dp
|
||||
s8 = 0.7875_dp
|
||||
a2 = 4.4407_dp
|
||||
CASE ("PBEhPBE")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.0000_dp
|
||||
s8 = 1.1152_dp
|
||||
a2 = 6.7184_dp
|
||||
CASE ("PBEh1PBE")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.0000_dp
|
||||
s8 = 1.4877_dp
|
||||
a2 = 7.0385_dp
|
||||
CASE ("PBE1KCIS")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.0000_dp
|
||||
s8 = 0.7688_dp
|
||||
a2 = 6.2794_dp
|
||||
CASE ("PW6B95")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.2076_dp
|
||||
s8 = 0.7257_dp
|
||||
a2 = 6.3750_dp
|
||||
CASE ("PWPB95")
|
||||
s6 = 0.8200_dp
|
||||
a1 = 0.0000_dp
|
||||
s8 = 0.2904_dp
|
||||
a2 = 7.3141_dp
|
||||
CASE ("revPBE0")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.4679_dp
|
||||
s8 = 1.7588_dp
|
||||
a2 = 3.7619_dp
|
||||
CASE ("revPBE38")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.4309_dp
|
||||
s8 = 1.4760_dp
|
||||
a2 = 3.9446_dp
|
||||
CASE ("revPBE")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.5238_dp
|
||||
s8 = 2.3550_dp
|
||||
a2 = 3.5016_dp
|
||||
CASE ("revTPSS")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.4426_dp
|
||||
s8 = 1.4023_dp
|
||||
a2 = 4.4723_dp
|
||||
CASE ("revTPSS0")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.2218_dp
|
||||
s8 = 1.6151_dp
|
||||
a2 = 5.7985_dp
|
||||
CASE ("revTPSSh")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.2660_dp
|
||||
s8 = 1.4076_dp
|
||||
a2 = 5.3761_dp
|
||||
CASE ("RPBE")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.1820_dp
|
||||
s8 = 0.8318_dp
|
||||
a2 = 4.0094_dp
|
||||
CASE ("RPW86PBE")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.4613_dp
|
||||
s8 = 1.3845_dp
|
||||
a2 = 4.5062_dp
|
||||
CASE ("SCAN")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.538_dp
|
||||
s8 = 0.0000_dp
|
||||
a2 = 5.420_dp
|
||||
CASE ("SOGGA11X")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.1330_dp
|
||||
s8 = 1.1426_dp
|
||||
a2 = 5.7381_dp
|
||||
CASE ("TPSS0")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.3768_dp
|
||||
s8 = 1.2576_dp
|
||||
a2 = 4.5865_dp
|
||||
CASE ("TPSS1KCIS")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.0000_dp
|
||||
s8 = 1.0542_dp
|
||||
a2 = 6.0201_dp
|
||||
CASE ("TPSS")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.4535_dp
|
||||
s8 = 1.9435_dp
|
||||
a2 = 4.4752_dp
|
||||
CASE ("tHCTH")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.0000_dp
|
||||
s8 = 1.2626_dp
|
||||
a2 = 5.6162_dp
|
||||
CASE ("tHCTHhyb")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.0000_dp
|
||||
s8 = 0.9585_dp
|
||||
a2 = 6.2303_dp
|
||||
CASE ("XLYP")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.0809_dp
|
||||
s8 = 1.5669_dp
|
||||
a2 = 5.3166_dp
|
||||
CASE ("X3LYP")
|
||||
s6 = 1.0000_dp
|
||||
a1 = 0.2022_dp
|
||||
s8 = 1.5744_dp
|
||||
a2 = 5.4184_dp
|
||||
END SELECT
|
||||
|
||||
END SUBROUTINE qs_scaling_dftd3bj
|
||||
|
||||
! **************************************************************************************************
|
||||
|
||||
END MODULE qs_dispersion_utils
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ MODULE xtb_matrices
|
|||
USE particle_types, ONLY: particle_type
|
||||
USE qs_charge_mixing, ONLY: charge_mixing
|
||||
USE qs_condnum, ONLY: overlap_condnum
|
||||
USE qs_dispersion_pairpot, ONLY: d3_cnumber,&
|
||||
USE qs_dispersion_cnum, ONLY: d3_cnumber,&
|
||||
dcnum_distribute,&
|
||||
dcnum_type
|
||||
USE qs_dispersion_types, ONLY: qs_dispersion_type
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue