diff --git a/src/cp_control_types.F b/src/cp_control_types.F index f097acb3ed..7b5bd0a19a 100644 --- a/src/cp_control_types.F +++ b/src/cp_control_types.F @@ -81,8 +81,11 @@ MODULE cp_control_types REAL(KIND=dp) :: hb_sr_para REAL(KIND=dp) :: eps_disp REAL(KIND=dp) :: epscn + REAL(KIND=dp) :: exp_pre + REAL(KIND=dp) :: scaling REAL(KIND=dp) :: rcdisp REAL(KIND=dp), DIMENSION(3) :: sd3 + REAL(KIND=dp), DIMENSION(4) :: sd3bj LOGICAL :: do_ewald CHARACTER(LEN=default_path_length) :: sk_file_path CHARACTER(LEN=default_path_length) :: sk_file_list diff --git a/src/cp_control_utils.F b/src/cp_control_utils.F index fa46493a92..9885a86bf2 100644 --- a/src/cp_control_utils.F +++ b/src/cp_control_utils.F @@ -1084,10 +1084,19 @@ CONTAINS r_val=qs_control%dftb_control%rcdisp) CALL section_vals_val_get(dftb_parameter, "COORDINATION_CUTOFF", & r_val=qs_control%dftb_control%epscn) + CALL section_vals_val_get(dftb_parameter, "D2_EXP_PRE", & + r_val=qs_control%dftb_control%exp_pre) + CALL section_vals_val_get(dftb_parameter, "D2_SCALING", & + r_val=qs_control%dftb_control%scaling) CALL section_vals_val_get(dftb_parameter, "D3_SCALING", r_vals=scal) qs_control%dftb_control%sd3(1) = scal(1) qs_control%dftb_control%sd3(2) = scal(2) qs_control%dftb_control%sd3(3) = scal(3) + CALL section_vals_val_get(dftb_parameter, "D3BJ_SCALING", r_vals=scal) + qs_control%dftb_control%sd3bj(1) = scal(1) + qs_control%dftb_control%sd3bj(2) = scal(2) + qs_control%dftb_control%sd3bj(3) = scal(3) + qs_control%dftb_control%sd3bj(4) = scal(4) CALL section_vals_val_get(dftb_parameter, "DISPERSION_PARAMETER_FILE", & c_val=qs_control%dftb_control%dispersion_parameter_file) diff --git a/src/input_constants.F b/src/input_constants.F index a083353dbf..71b6dbb0d9 100644 --- a/src/input_constants.F +++ b/src/input_constants.F @@ -1139,8 +1139,11 @@ MODULE input_constants do_cosma = 2 ! Dispersion DFTB - INTEGER, PARAMETER, PUBLIC :: dispersion_uff = 100, & - dispersion_d3 = 200 + INTEGER, PARAMETER, PUBLIC :: dispersion_none = 0, & + dispersion_uff = 100, & + dispersion_d3 = 200, & + dispersion_d3bj = 210, & + dispersion_d2 = 300 ! Transport section INTEGER, PARAMETER, PUBLIC :: transport_localscf = 1, & diff --git a/src/input_cp2k_tb.F b/src/input_cp2k_tb.F index e37427ba51..9010fda8fc 100644 --- a/src/input_cp2k_tb.F +++ b/src/input_cp2k_tb.F @@ -18,7 +18,9 @@ MODULE input_cp2k_tb Porezag1995,& Seifert1996,& Zhechkov2005 - USE input_constants, ONLY: dispersion_d3,& + USE input_constants, ONLY: dispersion_d2,& + dispersion_d3,& + dispersion_d3bj,& dispersion_uff,& slater USE input_cp2k_mm, ONLY: create_GENPOT_section @@ -254,11 +256,13 @@ CONTAINS CALL keyword_create(keyword, __LOCATION__, name="DISPERSION_TYPE", & description="Use dispersion correction of the specified type."// & " Dispersion correction has to be switched on in the DFTB section.", & - usage="DISPERSION_TYPE (UFF|D3)", & - enum_c_vals=s2a("UFF", "D3"), & - enum_i_vals=(/dispersion_uff, dispersion_d3/), & + usage="DISPERSION_TYPE (UFF|D3|D3(BJ)|D2)", & + enum_c_vals=s2a("UFF", "D3", "D3(BJ)", "D2"), & + enum_i_vals=(/dispersion_uff, dispersion_d3, dispersion_d3bj, dispersion_d2/), & enum_desc=s2a("Uses the UFF force field for a pair potential dispersion correction.", & - "Uses the Grimme D3 method (simplified) for a pair potential dispersion correction."), & + "Uses the Grimme D3 method (simplified) for a pair potential dispersion correction.", & + "Uses the Grimme D3 method (simplified) with Becke-Johnson attenuation.", & + "Uses the Grimme D2 method for pair potential dispersion correction."), & default_i_val=dispersion_uff) CALL section_add_keyword(section, keyword) CALL keyword_release(keyword) @@ -298,6 +302,25 @@ CONTAINS CALL section_add_keyword(section, keyword) CALL keyword_release(keyword) + CALL keyword_create(keyword, __LOCATION__, name="D3BJ_SCALING", & + description="Scaling parameters (s6,a1,s8,a2) for the D3(BJ) dispersion method,", & + usage="D3BJ_SCALING 1.0 1.0 1.0 1.0", n_var=4, & + default_r_vals=(/0.0_dp, 0.0_dp, 0.0_dp, 0.0_dp/)) + CALL section_add_keyword(section, keyword) + CALL keyword_release(keyword) + + CALL keyword_create(keyword, __LOCATION__, name="D2_SCALING", & + description="Scaling parameter for the D2 dispersion method,", & + usage="D2_SCALING 1.0", default_r_val=1.0_dp) + CALL section_add_keyword(section, keyword) + CALL keyword_release(keyword) + + CALL keyword_create(keyword, __LOCATION__, name="D2_EXP_PRE", & + description="Exp prefactor for damping for the D2 dispersion method,", & + usage="EXP_PRE 2.0", default_r_val=2.0_dp) + CALL section_add_keyword(section, keyword) + CALL keyword_release(keyword) + CALL keyword_create(keyword, __LOCATION__, name="HB_SR_PARAM", & description="Uses a modified version for the GAMMA within the SCC-DFTB scheme, "// & "specifically tuned for hydrogen bonds. Specify the exponent used in the exponential.", & diff --git a/src/qs_dftb_dispersion.F b/src/qs_dftb_dispersion.F index b42bfb10c0..af3fa67536 100644 --- a/src/qs_dftb_dispersion.F +++ b/src/qs_dftb_dispersion.F @@ -17,7 +17,9 @@ MODULE qs_dftb_dispersion USE cp_control_types, ONLY: dft_control_type,& dftb_control_type USE cp_para_types, ONLY: cp_para_env_type - USE input_constants, ONLY: dispersion_d3,& + USE input_constants, ONLY: dispersion_d2,& + dispersion_d3,& + dispersion_d3bj,& dispersion_uff USE kinds, ONLY: dp USE message_passing, ONLY: mp_sum @@ -81,7 +83,7 @@ CONTAINS SELECT CASE (dftb_control%dispersion_type) CASE (dispersion_uff) CALL calculate_dispersion_uff(qs_env, para_env, calculate_forces) - CASE (dispersion_d3) + CASE (dispersion_d3, dispersion_d3bj, dispersion_d2) CALL get_qs_env(qs_env=qs_env, dispersion_env=dispersion_env) CALL calculate_dispersion_pairpot(qs_env, dispersion_env, & energy%dispersion, calculate_forces) diff --git a/src/qs_dispersion_pairpot.F b/src/qs_dispersion_pairpot.F index c525427dc4..d63f3e8222 100644 --- a/src/qs_dispersion_pairpot.F +++ b/src/qs_dispersion_pairpot.F @@ -90,7 +90,8 @@ MODULE qs_dispersion_pairpot CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'qs_dispersion_pairpot' PUBLIC :: qs_dispersion_pairpot_init, calculate_dispersion_pairpot, & - qs_scaling_init, qs_scaling_dftd3, qs_scaling_dftd3bj + qs_scaling_init, qs_scaling_dftd3, qs_scaling_dftd3bj, & + qs_dispersion_setcn TYPE dcnum_type INTEGER :: neighbors @@ -350,6 +351,62 @@ CONTAINS END SUBROUTINE qs_dispersion_pairpot_init ! ************************************************************************************************** +!> \brief ... +!> \param atomic_kind_set ... +!> \param qs_kind_set ... +!> \param dispersion_env ... +!> \param para_env ... +! ************************************************************************************************** + SUBROUTINE qs_dispersion_setcn(atomic_kind_set, qs_kind_set, dispersion_env, para_env) + TYPE(atomic_kind_type), DIMENSION(:), POINTER :: atomic_kind_set + TYPE(qs_kind_type), DIMENSION(:), POINTER :: qs_kind_set + TYPE(qs_dispersion_type), POINTER :: dispersion_env + TYPE(cp_para_env_type), POINTER :: para_env + + CHARACTER(len=*), PARAMETER :: routineN = 'qs_dispersion_setcn' + + CHARACTER(LEN=default_string_length) :: filename + INTEGER :: i, ikind, max_elem, maxc, nkind + REAL(KIND=dp) :: dum + TYPE(qs_atom_dispersion_type), POINTER :: disp + + nkind = SIZE(atomic_kind_set) + IF (dispersion_env%type /= xc_vdw_fun_pairpot) THEN + DO ikind = 1, nkind + ALLOCATE (disp) + disp%type = dftd3_pp + disp%defined = .TRUE. + CALL set_qs_kind(qs_kind_set(ikind), dispersion=disp) + END DO + END IF + + max_elem = 94 + maxc = 5 + dispersion_env%max_elem = max_elem + dispersion_env%maxc = maxc + ALLOCATE (dispersion_env%maxci(max_elem)) + ALLOCATE (dispersion_env%c6ab(max_elem, max_elem, maxc, maxc, 3)) + ALLOCATE (dispersion_env%r0ab(max_elem, max_elem)) + ALLOCATE (dispersion_env%rcov(max_elem)) + ALLOCATE (dispersion_env%r2r4(max_elem)) + ALLOCATE (dispersion_env%cn(max_elem)) + ! get filename of parameter file + filename = dispersion_env%parameter_file_name + CALL dftd3_c6_param(dispersion_env%c6ab, dispersion_env%maxci, filename, para_env) + CALL setr0ab(dispersion_env%r0ab, dispersion_env%rcov, dispersion_env%r2r4) + ! the default coordination numbers + CALL setcn(dispersion_env%cn) + DO i = 1, max_elem + dum = 0.5_dp*dispersion_env%r2r4(i)*REAL(i, dp)**0.5_dp + dispersion_env%r2r4(i) = SQRT(dum) + END DO + dispersion_env%k1 = 16.0_dp + dispersion_env%k2 = 4._dp/3._dp + dispersion_env%k3 = -4._dp + dispersion_env%rcov = dispersion_env%k2*dispersion_env%rcov*bohr + dispersion_env%alp = 14._dp + + END SUBROUTINE qs_dispersion_setcn ! ************************************************************************************************** !> \brief ... diff --git a/src/qs_environment.F b/src/qs_environment.F index 551f1fd29e..7ded8fcb54 100644 --- a/src/qs_environment.F +++ b/src/qs_environment.F @@ -95,14 +95,14 @@ MODULE qs_environment USE hfx_types, ONLY: compare_hfx_sections,& hfx_create USE input_constants, ONLY: & - dispersion_d3, do_et_ddapc, do_method_am1, do_method_dftb, do_method_gapw, & - do_method_gapw_xc, do_method_gpw, do_method_lrigpw, do_method_mndo, do_method_mndod, & - do_method_ofgpw, do_method_pdg, do_method_pm3, do_method_pm6, do_method_pm6fm, & - do_method_pnnl, do_method_rigpw, do_method_rm1, do_method_xtb, do_qmmm_gauss, & - do_qmmm_swave, general_roks, kg_tnadd_embed_ri, rel_none, rel_trans_atom, & - vdw_pairpot_dftd3, vdw_pairpot_dftd3bj, wfi_aspc_nr, wfi_linear_ps_method_nr, & - wfi_linear_wf_method_nr, wfi_ps_method_nr, wfi_use_guess_method_nr, xc_vdw_fun_none, & - xc_vdw_fun_nonloc, xc_vdw_fun_pairpot + dispersion_d2, dispersion_d3, dispersion_d3bj, do_et_ddapc, do_method_am1, do_method_dftb, & + do_method_gapw, do_method_gapw_xc, do_method_gpw, do_method_lrigpw, do_method_mndo, & + do_method_mndod, do_method_ofgpw, do_method_pdg, do_method_pm3, do_method_pm6, & + do_method_pm6fm, do_method_pnnl, do_method_rigpw, do_method_rm1, do_method_xtb, & + do_qmmm_gauss, do_qmmm_swave, general_roks, kg_tnadd_embed_ri, rel_none, rel_trans_atom, & + vdw_pairpot_dftd2, vdw_pairpot_dftd3, vdw_pairpot_dftd3bj, wfi_aspc_nr, & + wfi_linear_ps_method_nr, wfi_linear_wf_method_nr, wfi_ps_method_nr, & + wfi_use_guess_method_nr, xc_vdw_fun_none, xc_vdw_fun_nonloc, xc_vdw_fun_pairpot USE input_section_types, ONLY: section_vals_get,& section_vals_get_subs_vals,& section_vals_type,& @@ -1242,6 +1242,30 @@ CONTAINS dispersion_env%nd3_exclude_pair = 0 dispersion_env%parameter_file_name = dftb_control%dispersion_parameter_file CALL qs_dispersion_pairpot_init(atomic_kind_set, qs_kind_set, dispersion_env, para_env=para_env) + ELSEIF (dftb_control%dispersion .AND. dftb_control%dispersion_type == dispersion_d3bj) THEN + dispersion_env%type = xc_vdw_fun_pairpot + dispersion_env%pp_type = vdw_pairpot_dftd3bj + dispersion_env%eps_cn = dftb_control%epscn + dispersion_env%s6 = dftb_control%sd3bj(1) + dispersion_env%a1 = dftb_control%sd3bj(2) + dispersion_env%s8 = dftb_control%sd3bj(3) + dispersion_env%a2 = dftb_control%sd3bj(4) + dispersion_env%domol = .FALSE. + dispersion_env%kgc8 = 0._dp + dispersion_env%rc_disp = dftb_control%rcdisp + dispersion_env%exp_pre = 0._dp + dispersion_env%scaling = 0._dp + dispersion_env%nd3_exclude_pair = 0 + dispersion_env%parameter_file_name = dftb_control%dispersion_parameter_file + CALL qs_dispersion_pairpot_init(atomic_kind_set, qs_kind_set, dispersion_env, para_env=para_env) + ELSEIF (dftb_control%dispersion .AND. dftb_control%dispersion_type == dispersion_d2) THEN + dispersion_env%type = xc_vdw_fun_pairpot + dispersion_env%pp_type = vdw_pairpot_dftd2 + dispersion_env%exp_pre = dftb_control%exp_pre + dispersion_env%scaling = dftb_control%scaling + dispersion_env%parameter_file_name = dftb_control%dispersion_parameter_file + dispersion_env%rc_disp = dftb_control%rcdisp + CALL qs_dispersion_pairpot_init(atomic_kind_set, qs_kind_set, dispersion_env, para_env=para_env) ELSE dispersion_env%type = xc_vdw_fun_none END IF diff --git a/src/qs_neighbor_lists.F b/src/qs_neighbor_lists.F index 4fdc34aa92..bb7b8b360d 100644 --- a/src/qs_neighbor_lists.F +++ b/src/qs_neighbor_lists.F @@ -833,7 +833,7 @@ CONTAINS CALL get_qs_env(qs_env=qs_env, dispersion_env=dispersion_env) sab_vdw => dispersion_env%sab_vdw sab_cn => dispersion_env%sab_cn - IF (dispersion_env%type == xc_vdw_fun_pairpot) THEN + IF (dispersion_env%type == xc_vdw_fun_pairpot .OR. xtb) THEN c_radius(:) = dispersion_env%rc_disp default_present = .TRUE. !include all atoms in vdW (even without basis) CALL pair_radius_setup(default_present, default_present, c_radius, c_radius, pair_radius) @@ -841,9 +841,10 @@ CONTAINS subcells=subcells, operator_type="PP", nlname="sab_vdw") dispersion_env%sab_vdw => sab_vdw - IF (dispersion_env%pp_type == vdw_pairpot_dftd3 .OR. & + IF (xtb .OR. dispersion_env%pp_type == vdw_pairpot_dftd3 .OR. & dispersion_env%pp_type == vdw_pairpot_dftd3bj) THEN ! Build the neighbor lists for coordination numbers as needed by the DFT-D3 method + ! This is also needed for the xTB Hamiltonian DO ikind = 1, nkind CALL get_atomic_kind(atomic_kind_set(ikind), z=zat) c_radius(ikind) = 4._dp*ptable(zat)%covalent_radius*bohr diff --git a/tests/DFTB/regtest-vdw/TEST_FILES b/tests/DFTB/regtest-vdw/TEST_FILES new file mode 100644 index 0000000000..bcd62242fa --- /dev/null +++ b/tests/DFTB/regtest-vdw/TEST_FILES @@ -0,0 +1,8 @@ +# runs are executed in the same order as in this file +# the second field tells which test should be run in order to compare with the last available output +# see regtest/TEST_FILES +tb_uff.inp 1 1.0E-14 -5.75463073188988 +tb_d3.inp 1 1.0E-14 -5.76288772623661 +tb_d3bj.inp 1 1.0E-14 -5.76508211988679 +tb_d2.inp 1 1.0E-14 -5.85163052938608 +#EOF diff --git a/tests/DFTB/regtest-vdw/tb_d2.inp b/tests/DFTB/regtest-vdw/tb_d2.inp new file mode 100644 index 0000000000..a73b618893 --- /dev/null +++ b/tests/DFTB/regtest-vdw/tb_d2.inp @@ -0,0 +1,53 @@ +#CPQA INCLUDE DFTB/scc/scc_parameter +#CPQA INCLUDE ../uff_table +#CPQA INCLUDE DFTB/scc/oo.spl +#CPQA INCLUDE DFTB/scc/oc.spl +#CPQA INCLUDE DFTB/scc/oh.spl +#CPQA INCLUDE DFTB/scc/co.spl +#CPQA INCLUDE DFTB/scc/cc.spl +#CPQA INCLUDE DFTB/scc/ch.spl +#CPQA INCLUDE DFTB/scc/ho.spl +#CPQA INCLUDE DFTB/scc/hc.spl +#CPQA INCLUDE DFTB/scc/hh.spl + +&FORCE_EVAL + &DFT + &QS + METHOD DFTB + &DFTB + SELF_CONSISTENT T + DISPERSION T + ORTHOGONAL_BASIS F + DO_EWALD F + &PARAMETER + PARAM_FILE_PATH DFTB/scc + PARAM_FILE_NAME scc_parameter + DISPERSION_TYPE D2 + D2_SCALING 1.10 + D2_EXP_PRE 2.50 + &END PARAMETER + &END DFTB + &END QS + &SCF + SCF_GUESS ATOMIC + MAX_SCF 20 + &END SCF + &END DFT + &SUBSYS + &CELL + ABC 20.0 20.0 20.0 + PERIODIC NONE + &END CELL + &COORD + O 0.051368 0.000000 0.000000 + C 1.278612 0.000000 0.000000 + H 1.870460 0.939607 0.000000 + H 1.870460 -0.939607 0.000000 + &END COORD + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + PROJECT test_vdw + RUN_TYPE GEO_OPT + PRINT_LEVEL LOW +&END GLOBAL diff --git a/tests/DFTB/regtest-vdw/tb_d3.inp b/tests/DFTB/regtest-vdw/tb_d3.inp new file mode 100644 index 0000000000..7264671889 --- /dev/null +++ b/tests/DFTB/regtest-vdw/tb_d3.inp @@ -0,0 +1,53 @@ +#CPQA INCLUDE DFTB/scc/scc_parameter +#CPQA INCLUDE ../uff_table +#CPQA INCLUDE DFTB/scc/oo.spl +#CPQA INCLUDE DFTB/scc/oc.spl +#CPQA INCLUDE DFTB/scc/oh.spl +#CPQA INCLUDE DFTB/scc/co.spl +#CPQA INCLUDE DFTB/scc/cc.spl +#CPQA INCLUDE DFTB/scc/ch.spl +#CPQA INCLUDE DFTB/scc/ho.spl +#CPQA INCLUDE DFTB/scc/hc.spl +#CPQA INCLUDE DFTB/scc/hh.spl + +&FORCE_EVAL + &DFT + &QS + METHOD DFTB + &DFTB + SELF_CONSISTENT T + DISPERSION T + ORTHOGONAL_BASIS F + DO_EWALD F + &PARAMETER + PARAM_FILE_PATH DFTB/scc + PARAM_FILE_NAME scc_parameter + DISPERSION_TYPE D3 + DISPERSION_PARAMETER_FILE dftd3.dat + D3_SCALING 1.0 1.5 1.5 + &END PARAMETER + &END DFTB + &END QS + &SCF + SCF_GUESS ATOMIC + MAX_SCF 20 + &END SCF + &END DFT + &SUBSYS + &CELL + ABC 20.0 20.0 20.0 + PERIODIC NONE + &END CELL + &COORD + O 0.051368 0.000000 0.000000 + C 1.278612 0.000000 0.000000 + H 1.870460 0.939607 0.000000 + H 1.870460 -0.939607 0.000000 + &END COORD + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + PROJECT test_vdw + RUN_TYPE GEO_OPT + PRINT_LEVEL LOW +&END GLOBAL diff --git a/tests/DFTB/regtest-vdw/tb_d3bj.inp b/tests/DFTB/regtest-vdw/tb_d3bj.inp new file mode 100644 index 0000000000..17636d8261 --- /dev/null +++ b/tests/DFTB/regtest-vdw/tb_d3bj.inp @@ -0,0 +1,53 @@ +#CPQA INCLUDE DFTB/scc/scc_parameter +#CPQA INCLUDE ../uff_table +#CPQA INCLUDE DFTB/scc/oo.spl +#CPQA INCLUDE DFTB/scc/oc.spl +#CPQA INCLUDE DFTB/scc/oh.spl +#CPQA INCLUDE DFTB/scc/co.spl +#CPQA INCLUDE DFTB/scc/cc.spl +#CPQA INCLUDE DFTB/scc/ch.spl +#CPQA INCLUDE DFTB/scc/ho.spl +#CPQA INCLUDE DFTB/scc/hc.spl +#CPQA INCLUDE DFTB/scc/hh.spl + +&FORCE_EVAL + &DFT + &QS + METHOD DFTB + &DFTB + SELF_CONSISTENT T + DISPERSION T + ORTHOGONAL_BASIS F + DO_EWALD F + &PARAMETER + PARAM_FILE_PATH DFTB/scc + PARAM_FILE_NAME scc_parameter + DISPERSION_TYPE D3(BJ) + DISPERSION_PARAMETER_FILE dftd3.dat + D3BJ_SCALING 1.0 0.4 1.5 4.0 + &END PARAMETER + &END DFTB + &END QS + &SCF + SCF_GUESS ATOMIC + MAX_SCF 20 + &END SCF + &END DFT + &SUBSYS + &CELL + ABC 20.0 20.0 20.0 + PERIODIC NONE + &END CELL + &COORD + O 0.051368 0.000000 0.000000 + C 1.278612 0.000000 0.000000 + H 1.870460 0.939607 0.000000 + H 1.870460 -0.939607 0.000000 + &END COORD + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + PROJECT test_vdw + RUN_TYPE GEO_OPT + PRINT_LEVEL LOW +&END GLOBAL diff --git a/tests/DFTB/regtest-vdw/tb_uff.inp b/tests/DFTB/regtest-vdw/tb_uff.inp new file mode 100644 index 0000000000..5a9aa3d1f6 --- /dev/null +++ b/tests/DFTB/regtest-vdw/tb_uff.inp @@ -0,0 +1,51 @@ +#CPQA INCLUDE DFTB/scc/scc_parameter +#CPQA INCLUDE ../uff_table +#CPQA INCLUDE DFTB/scc/oo.spl +#CPQA INCLUDE DFTB/scc/oc.spl +#CPQA INCLUDE DFTB/scc/oh.spl +#CPQA INCLUDE DFTB/scc/co.spl +#CPQA INCLUDE DFTB/scc/cc.spl +#CPQA INCLUDE DFTB/scc/ch.spl +#CPQA INCLUDE DFTB/scc/ho.spl +#CPQA INCLUDE DFTB/scc/hc.spl +#CPQA INCLUDE DFTB/scc/hh.spl + +&FORCE_EVAL + &DFT + &QS + METHOD DFTB + &DFTB + SELF_CONSISTENT T + DISPERSION T + ORTHOGONAL_BASIS F + DO_EWALD F + &PARAMETER + PARAM_FILE_PATH DFTB/scc + PARAM_FILE_NAME scc_parameter + UFF_FORCE_FIELD ../uff_table + &END PARAMETER + &END DFTB + &END QS + &SCF + SCF_GUESS ATOMIC + MAX_SCF 20 + &END SCF + &END DFT + &SUBSYS + &CELL + ABC 20.0 20.0 20.0 + PERIODIC NONE + &END CELL + &COORD + O 0.051368 0.000000 0.000000 + C 1.278612 0.000000 0.000000 + H 1.870460 0.939607 0.000000 + H 1.870460 -0.939607 0.000000 + &END COORD + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + PROJECT test_vdw + RUN_TYPE GEO_OPT + PRINT_LEVEL LOW +&END GLOBAL diff --git a/tests/TEST_DIRS b/tests/TEST_DIRS index 5752d448ab..32036baf62 100644 --- a/tests/TEST_DIRS +++ b/tests/TEST_DIRS @@ -332,3 +332,4 @@ Fist/regtest-plumed2 plumed2 Fist/regtest-quip quip Fist/regtest-16 QS/regtest-rtp-4 +DFTB/regtest-vdw