From 3f0e7fada9eecae58cdce0989df39f6efd1ee123 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrg=20Hutter?= Date: Fri, 31 Aug 2018 13:29:26 +0000 Subject: [PATCH] Extrapolation methods for k-points: USE_GUESS, LINEAR_P, USE_PREV_P, USE_PREV_RHO_R; 4 new regtests svn-origin-rev: 18594 --- src/input_cp2k_dft.F | 14 ++-- src/qs_wf_history_methods.F | 91 +++++++++++++++----------- src/qs_wf_history_types.F | 10 +-- tests/QS/regtest-kp-3/TEST_FILES | 10 +++ tests/QS/regtest-kp-3/TEST_FILES_RESET | 8 +++ tests/QS/regtest-kp-3/cc1.inp | 71 ++++++++++++++++++++ tests/QS/regtest-kp-3/cc2.inp | 71 ++++++++++++++++++++ tests/QS/regtest-kp-3/cc3.inp | 71 ++++++++++++++++++++ tests/QS/regtest-kp-3/cc4.inp | 71 ++++++++++++++++++++ tests/TEST_DIRS | 3 + 10 files changed, 369 insertions(+), 51 deletions(-) create mode 100644 tests/QS/regtest-kp-3/TEST_FILES create mode 100644 tests/QS/regtest-kp-3/TEST_FILES_RESET create mode 100644 tests/QS/regtest-kp-3/cc1.inp create mode 100644 tests/QS/regtest-kp-3/cc2.inp create mode 100644 tests/QS/regtest-kp-3/cc3.inp create mode 100644 tests/QS/regtest-kp-3/cc4.inp diff --git a/src/input_cp2k_dft.F b/src/input_cp2k_dft.F index bd564dd777..874316b7ba 100644 --- a/src/input_cp2k_dft.F +++ b/src/input_cp2k_dft.F @@ -3039,7 +3039,8 @@ CONTAINS CALL keyword_create( & keyword, name="EXTRAPOLATION", & variants=s2a("INTERPOLATION", "WF_INTERPOLATION"), & - description="Extrapolation strategy for the wavefunction during e.g. MD."// & + description="Extrapolation strategy for the wavefunction during e.g. MD. "// & + "Not all options are available for all simulation methods. "// & "PS and ASPC are recommended, see also EXTRAPOLATION_ORDER.", & citations=(/Kolafa2004, VandeVondele2005a/), & usage="EXTRAPOLATION PS", & @@ -3049,13 +3050,14 @@ CONTAINS "Use the method specified with SCF_GUESS, i.e. no extrapolation", & "Use the previous density matrix", & "Use the previous density in real space", & - "Linear extrapolation of the wavefunction", & + "Linear extrapolation of the wavefunction (not available for K-points)", & "Linear extrapolation of the density matrix", & - "Linear extrapolation of the density matrix times the overlap matrix", & - "Use the previous wavefunction", & - "Higher order extrapolation of the density matrix times the overlap matrix", & + "Linear extrapolation of the density matrix times the overlap matrix (not available for K-points)", & + "Use the previous wavefunction (not available for K-points)", & + "Higher order extrapolation of the density matrix times the overlap matrix (not available for K-points)", & "Frozen ...", & - "Always stable predictor corrector, similar to PS, but going for MD stability instead of intial guess accuracy."), & + "Always stable predictor corrector, similar to PS, but going for MD stability instead of intial guess accuracy. "// & + "(not available for K-points)"), & enum_i_vals=(/ & wfi_use_guess_method_nr, & wfi_use_prev_p_method_nr, & diff --git a/src/qs_wf_history_methods.F b/src/qs_wf_history_methods.F index 8e879f56b7..a6fd4aaf32 100644 --- a/src/qs_wf_history_methods.F +++ b/src/qs_wf_history_methods.F @@ -484,8 +484,8 @@ CONTAINS routineP = moduleN//':'//routineN INTEGER :: actual_extrapolation_method_nr, handle, & - i, img, ispin, k, n, nmo, nvec, & - output_unit, print_level + i, img, io_unit, ispin, k, n, nmo, & + nvec, print_level LOGICAL :: do_kpoints, my_orthogonal_wf, use_overlap REAL(KIND=dp) :: alpha, t0, t1, t2 TYPE(cp_fm_pool_p_type), DIMENSION(:), POINTER :: ao_mo_fm_pools @@ -506,8 +506,8 @@ CONTAINS CALL timeset(routineN, handle) logger => cp_get_default_logger() print_level = logger%iter_info%print_level - output_unit = cp_print_key_unit_nr(logger, qs_env%input, "DFT%SCF%PRINT%PROGRAM_RUN_INFO", & - extension=".scfLog") + io_unit = cp_print_key_unit_nr(logger, qs_env%input, "DFT%SCF%PRINT%PROGRAM_RUN_INFO", & + extension=".scfLog") CPASSERT(ASSOCIATED(wf_history)) CPASSERT(wf_history%ref_count > 0) @@ -548,7 +548,7 @@ CONTAINS SELECT CASE (actual_extrapolation_method_nr) CASE (wfi_frozen_method_nr) CPASSERT(.NOT. do_kpoints) - t0_state => wfi_get_snapshot(wf_history, index=1) + t0_state => wfi_get_snapshot(wf_history, wf_index=1) CPASSERT(ASSOCIATED(t0_state%rho_frozen)) nvec = MIN(wf_history%memory_depth, wf_history%snapshot_count) @@ -568,7 +568,7 @@ CONTAINS my_orthogonal_wf = .FALSE. CASE (wfi_use_prev_rho_r_method_nr) - t0_state => wfi_get_snapshot(wf_history, index=1) + t0_state => wfi_get_snapshot(wf_history, wf_index=1) nvec = MIN(wf_history%memory_depth, wf_history%snapshot_count) CALL wfi_set_history_variables(qs_env=qs_env, nvec=nvec) IF (do_kpoints) THEN @@ -576,9 +576,13 @@ CONTAINS CALL qs_rho_get(rho, rho_ao_kp=rho_ao_kp) DO ispin = 1, SIZE(t0_state%rho_ao_kp, 1) DO img = 1, SIZE(t0_state%rho_ao_kp, 2) - CALL dbcsr_copy(rho_ao_kp(ispin, img)%matrix, & - t0_state%rho_ao_kp(ispin, img)%matrix, & - keep_sparsity=.TRUE.) + IF (img > SIZE(rho_ao_kp, 2)) THEN + CPWARN("Change in cell neighborlist: might affect quality of initial guess") + ELSE + CALL dbcsr_copy(rho_ao_kp(ispin, img)%matrix, & + t0_state%rho_ao_kp(ispin, img)%matrix, & + keep_sparsity=.TRUE.) + END IF END DO END DO ELSE @@ -613,8 +617,7 @@ CONTAINS CALL qs_ks_did_change(qs_env%ks_env, rho_changed=.TRUE.) CASE (wfi_use_prev_p_method_nr) - CPASSERT(.NOT. do_kpoints) - t0_state => wfi_get_snapshot(wf_history, index=1) + t0_state => wfi_get_snapshot(wf_history, wf_index=1) nvec = MIN(wf_history%memory_depth, wf_history%snapshot_count) CALL wfi_set_history_variables(qs_env=qs_env, nvec=nvec) IF (do_kpoints) THEN @@ -622,9 +625,13 @@ CONTAINS CALL qs_rho_get(rho, rho_ao_kp=rho_ao_kp) DO ispin = 1, SIZE(t0_state%rho_ao_kp, 1) DO img = 1, SIZE(t0_state%rho_ao_kp, 2) - CALL dbcsr_copy(rho_ao_kp(ispin, img)%matrix, & - t0_state%rho_ao_kp(ispin, img)%matrix, & - keep_sparsity=.TRUE.) + IF (img > SIZE(rho_ao_kp, 2)) THEN + CPWARN("Change in cell neighborlist: might affect quality of initial guess") + ELSE + CALL dbcsr_copy(rho_ao_kp(ispin, img)%matrix, & + t0_state%rho_ao_kp(ispin, img)%matrix, & + keep_sparsity=.TRUE.) + END IF END DO END DO ELSE @@ -651,8 +658,8 @@ CONTAINS CALL wfi_set_history_variables(qs_env=qs_env, nvec=nvec) CASE (wfi_linear_wf_method_nr) CPASSERT(.NOT. do_kpoints) - t0_state => wfi_get_snapshot(wf_history, index=2) - t1_state => wfi_get_snapshot(wf_history, index=1) + t0_state => wfi_get_snapshot(wf_history, wf_index=2) + t1_state => wfi_get_snapshot(wf_history, wf_index=1) CPASSERT(ASSOCIATED(t0_state)) CPASSERT(ASSOCIATED(t1_state)) CPASSERT(ASSOCIATED(t0_state%wf)) @@ -687,8 +694,8 @@ CONTAINS CALL qs_ks_did_change(qs_env%ks_env, & rho_changed=.TRUE.) CASE (wfi_linear_p_method_nr) - t0_state => wfi_get_snapshot(wf_history, index=2) - t1_state => wfi_get_snapshot(wf_history, index=1) + t0_state => wfi_get_snapshot(wf_history, wf_index=2) + t1_state => wfi_get_snapshot(wf_history, wf_index=1) CPASSERT(ASSOCIATED(t0_state)) CPASSERT(ASSOCIATED(t1_state)) IF (do_kpoints) THEN @@ -708,10 +715,15 @@ CONTAINS CALL qs_rho_get(rho, rho_ao_kp=rho_ao_kp) DO ispin = 1, SIZE(rho_ao_kp, 1) DO img = 1, SIZE(rho_ao_kp, 2) - CALL dbcsr_add(rho_ao_kp(ispin, img)%matrix, t1_state%rho_ao_kp(ispin, img)%matrix, & - alpha_scalar=0.0_dp, beta_scalar=(t2-t0)/(t1-t0)) ! this copy should be unnecessary - CALL dbcsr_add(rho_ao_kp(ispin, img)%matrix, t0_state%rho_ao_kp(ispin, img)%matrix, & - alpha_scalar=1.0_dp, beta_scalar=(t1-t2)/(t1-t0)) + IF (img > SIZE(t0_state%rho_ao_kp, 2) .OR. & + img > SIZE(t1_state%rho_ao_kp, 2)) THEN + CPWARN("Change in cell neighborlist: might affect quality of initial guess") + ELSE + CALL dbcsr_add(rho_ao_kp(ispin, img)%matrix, t1_state%rho_ao_kp(ispin, img)%matrix, & + alpha_scalar=0.0_dp, beta_scalar=(t2-t0)/(t1-t0)) ! this copy should be unnecessary + CALL dbcsr_add(rho_ao_kp(ispin, img)%matrix, t0_state%rho_ao_kp(ispin, img)%matrix, & + alpha_scalar=1.0_dp, beta_scalar=(t1-t2)/(t1-t0)) + END IF END DO END DO ELSE @@ -725,13 +737,12 @@ CONTAINS END IF CALL qs_rho_update_rho(rho, qs_env=qs_env) CALL qs_ks_did_change(qs_env%ks_env, rho_changed=.TRUE.) - + CASE (wfi_linear_ps_method_nr) ! wf not calculated, extract with PSC renormalized? ! use wf_linear? - CASE (wfi_linear_ps_method_nr) CPASSERT(.NOT. do_kpoints) - t0_state => wfi_get_snapshot(wf_history, index=2) - t1_state => wfi_get_snapshot(wf_history, index=1) + t0_state => wfi_get_snapshot(wf_history, wf_index=2) + t1_state => wfi_get_snapshot(wf_history, wf_index=1) CPASSERT(ASSOCIATED(t0_state)) CPASSERT(ASSOCIATED(t1_state)) CPASSERT(ASSOCIATED(t0_state%wf)) @@ -817,13 +828,13 @@ CONTAINS CALL cp_fm_create(csc, matrix_struct_new) CALL cp_fm_struct_release(matrix_struct_new) ! first the most recent - t1_state => wfi_get_snapshot(wf_history, index=1) + t1_state => wfi_get_snapshot(wf_history, wf_index=1) CALL cp_fm_to_fm(t1_state%wf(ispin)%matrix, mo_coeff) alpha = nvec CALL cp_fm_scale(alpha, mo_coeff) CALL qs_rho_get(rho, rho_ao=rho_ao) DO i = 2, nvec - t0_state => wfi_get_snapshot(wf_history, index=i) + t0_state => wfi_get_snapshot(wf_history, wf_index=i) IF (use_overlap) THEN CALL cp_dbcsr_sm_fm_multiply(t0_state%overlap, t1_state%wf(ispin)%matrix, fm_tmp, k) CALL cp_gemm('T', 'N', k, k, n, 1.0_dp, t0_state%wf(ispin)%matrix, fm_tmp, 0.0_dp, csc) @@ -885,11 +896,11 @@ CONTAINS CALL cp_fm_struct_release(matrix_struct_new) ! first the most recent t1_state => wfi_get_snapshot(wf_history, & - index=1) + wf_index=1) CALL cp_fm_to_fm(t1_state%wf(ispin)%matrix, mo_coeff) alpha = REAL(4*nvec-2, KIND=dp)/REAL(nvec+1, KIND=dp) - IF ((output_unit > 0) .AND. (print_level > low_print_level)) THEN - WRITE (UNIT=output_unit, FMT="(/,T2,A,/,/,T3,A,I0,/,/,T3,A2,I0,A4,F10.6)") & + IF ((io_unit > 0) .AND. (print_level > low_print_level)) THEN + WRITE (UNIT=io_unit, FMT="(/,T2,A,/,/,T3,A,I0,/,/,T3,A2,I0,A4,F10.6)") & "Parameters for the always stable predictor-corrector (ASPC) method:", & "ASPC order: ", MAX(nvec-2, 0), & "B(", 1, ") = ", alpha @@ -897,7 +908,7 @@ CONTAINS CALL cp_fm_scale(alpha, mo_coeff) DO i = 2, nvec - t0_state => wfi_get_snapshot(wf_history, index=i) + t0_state => wfi_get_snapshot(wf_history, wf_index=i) IF (use_overlap) THEN CALL cp_dbcsr_sm_fm_multiply(t0_state%overlap, t1_state%wf(ispin)%matrix, fm_tmp, k) CALL cp_gemm('T', 'N', k, k, n, 1.0_dp, t0_state%wf(ispin)%matrix, fm_tmp, 0.0_dp, csc) @@ -908,8 +919,8 @@ CONTAINS CALL cp_gemm('N', 'N', n, k, k, 1.0_dp, t0_state%wf(ispin)%matrix, csc, 0.0_dp, fm_tmp) alpha = (-1.0_dp)**(i+1)*REAL(i, KIND=dp)* & binomial(2*nvec, nvec-i)/binomial(2*nvec-2, nvec-1) - IF ((output_unit > 0) .AND. (print_level > low_print_level)) THEN - WRITE (UNIT=output_unit, FMT="(T3,A2,I0,A4,F10.6)") & + IF ((io_unit > 0) .AND. (print_level > low_print_level)) THEN + WRITE (UNIT=io_unit, FMT="(T3,A2,I0,A4,F10.6)") & "B(", i, ") = ", alpha END IF CALL cp_fm_scale_and_add(1.0_dp, mo_coeff, alpha, fm_tmp) @@ -931,7 +942,7 @@ CONTAINS TRIM(ADJUSTL(cp_to_string(wf_history%interpolation_method_nr)))) END SELECT IF (PRESENT(orthogonal_wf)) orthogonal_wf = my_orthogonal_wf - CALL cp_print_key_finished_output(output_unit, logger, qs_env%input, & + CALL cp_print_key_finished_output(io_unit, logger, qs_env%input, & "DFT%SCF%PRINT%PROGRAM_RUN_INFO") CALL timestop(handle) END SUBROUTINE wfi_extrapolate @@ -1092,7 +1103,7 @@ CONTAINS CHARACTER(len=*), PARAMETER :: routineN = 'wfi_purge_history', & routineP = moduleN//':'//routineN - INTEGER :: handle, output_unit, print_level + INTEGER :: handle, io_unit, print_level TYPE(cp_logger_type), POINTER :: logger TYPE(dft_control_type), POINTER :: dft_control TYPE(qs_wf_history_type), POINTER :: wf_history @@ -1102,8 +1113,8 @@ CONTAINS CALL timeset(routineN, handle) logger => cp_get_default_logger() print_level = logger%iter_info%print_level - output_unit = cp_print_key_unit_nr(logger, qs_env%input, "DFT%SCF%PRINT%PROGRAM_RUN_INFO", & - extension=".scfLog") + io_unit = cp_print_key_unit_nr(logger, qs_env%input, "DFT%SCF%PRINT%PROGRAM_RUN_INFO", & + extension=".scfLog") CPASSERT(ASSOCIATED(qs_env)) CPASSERT(qs_env%ref_count > 0) @@ -1120,8 +1131,8 @@ CONTAINS wfi_linear_ps_method_nr, wfi_ps_method_nr, & wfi_aspc_nr) IF (qs_env%wf_history%snapshot_count .GE. 2) THEN - IF (debug_this_module .AND. output_unit > 0) & - WRITE (output_unit, FMT="(T2,A)") "QS| Purging WFN history" + IF (debug_this_module .AND. io_unit > 0) & + WRITE (io_unit, FMT="(T2,A)") "QS| Purging WFN history" CALL wfi_create(wf_history, interpolation_method_nr= & dft_control%qs_control%wf_interpolation_method_nr, & extrapolation_order=dft_control%qs_control%wf_extrapolation_order, & diff --git a/src/qs_wf_history_types.F b/src/qs_wf_history_types.F index 5fe3329ff8..54b2dbe093 100644 --- a/src/qs_wf_history_types.F +++ b/src/qs_wf_history_types.F @@ -211,15 +211,15 @@ CONTAINS ! ************************************************************************************************** !> \brief returns a snapshot, the first being the latest snapshot !> \param wf_history the plage where to get the snapshot -!> \param index the index of the snapshot you want +!> \param wf_index the index of the snapshot you want !> \return ... !> \par History !> 12.2002 created [fawzi] !> \author fawzi ! ************************************************************************************************** - FUNCTION wfi_get_snapshot(wf_history, index) RESULT(res) + FUNCTION wfi_get_snapshot(wf_history, wf_index) RESULT(res) TYPE(qs_wf_history_type), POINTER :: wf_history - INTEGER, INTENT(in) :: index + INTEGER, INTENT(in) :: wf_index TYPE(qs_wf_snapshot_type), POINTER :: res CHARACTER(len=*), PARAMETER :: routineN = 'wfi_get_snapshot', & @@ -229,11 +229,11 @@ CONTAINS CPASSERT(ASSOCIATED(wf_history)) CPASSERT(ASSOCIATED(wf_history%past_states)) - IF (index > wf_history%memory_depth .OR. index > wf_history%snapshot_count) THEN + IF (wf_index > wf_history%memory_depth .OR. wf_index > wf_history%snapshot_count) THEN CPABORT("") END IF res => wf_history%past_states( & - MODULO(wf_history%snapshot_count+1-index, & + MODULO(wf_history%snapshot_count+1-wf_index, & wf_history%memory_depth)+1)%snapshot END FUNCTION wfi_get_snapshot diff --git a/tests/QS/regtest-kp-3/TEST_FILES b/tests/QS/regtest-kp-3/TEST_FILES new file mode 100644 index 0000000000..16557902eb --- /dev/null +++ b/tests/QS/regtest-kp-3/TEST_FILES @@ -0,0 +1,10 @@ +# 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 +# e.g. 0 means do not compare anything, running is enough +# 1 compares the last total energy in the file +# for details see cp2k/tools/do_regtest +cc1.inp 1 1.0E-12 -45.38964266770495 +cc2.inp 1 1.0E-12 -45.38978381221627 +cc3.inp 1 1.0E-12 -45.38973581135713 +cc4.inp 1 1.0E-12 -45.38975726647867 +#EOF diff --git a/tests/QS/regtest-kp-3/TEST_FILES_RESET b/tests/QS/regtest-kp-3/TEST_FILES_RESET new file mode 100644 index 0000000000..6a9bfa7621 --- /dev/null +++ b/tests/QS/regtest-kp-3/TEST_FILES_RESET @@ -0,0 +1,8 @@ +# disable FULL_GRID +Ar_1.inp +Al_1_4.inp +H_sym.inp +# +Al_1_4.inp +# +Al_1_4.inp diff --git a/tests/QS/regtest-kp-3/cc1.inp b/tests/QS/regtest-kp-3/cc1.inp new file mode 100644 index 0000000000..042db5283f --- /dev/null +++ b/tests/QS/regtest-kp-3/cc1.inp @@ -0,0 +1,71 @@ +&FORCE_EVAL + &DFT + BASIS_SET_FILE_NAME GTH_BASIS_SETS + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 120 + REL_CUTOFF 30 + &END MGRID + &QS + METHOD GPW + EPS_DEFAULT 1.0E-14 + EXTRAPOLATION USE_GUESS + &END QS + &SCF + EPS_SCF 1.0E-4 + SCF_GUESS ATOMIC + MAX_SCF 20 + &MIXING + METHOD BROYDEN_MIXING + ALPHA 0.50 + &END + CHOLESKY OFF + EPS_EIGVAL 1.e-5 + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &KPOINTS + SCHEME MONKHORST-PACK 2 2 2 + SYMMETRY ON + WAVEFUNCTIONS COMPLEX + EPS_GEO 1.e-8 + FULL_GRID ON + VERBOSE F + PARALLEL_GROUP_SIZE 0 + &END KPOINTS + &END DFT + &SUBSYS + &CELL + ABC 3.56683 3.56683 3.56683 + &END CELL + &COORD + SCALED + C 0.100000 0.000000 0.000000 + C 0.500000 0.500000 0.000000 + C 0.500000 0.000000 0.500000 + C 0.000000 0.500000 0.500000 + C 0.250000 0.250000 0.250000 + C 0.250000 0.750000 0.750000 + C 0.750000 0.250000 0.750000 + C 0.750000 0.750000 0.250000 + &END COORD + &KIND C + BASIS_SET SZV-GTH + POTENTIAL GTH-PADE-q4 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + PROJECT C + RUN_TYPE GEO_OPT + PRINT_LEVEL LOW +&END GLOBAL +&MOTION + &GEO_OPT + OPTIMIZER LBFGS + MAX_ITER 2 + &END +&END + diff --git a/tests/QS/regtest-kp-3/cc2.inp b/tests/QS/regtest-kp-3/cc2.inp new file mode 100644 index 0000000000..393049dbac --- /dev/null +++ b/tests/QS/regtest-kp-3/cc2.inp @@ -0,0 +1,71 @@ +&FORCE_EVAL + &DFT + BASIS_SET_FILE_NAME GTH_BASIS_SETS + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 120 + REL_CUTOFF 30 + &END MGRID + &QS + METHOD GPW + EPS_DEFAULT 1.0E-14 + EXTRAPOLATION LINEAR_P + &END QS + &SCF + EPS_SCF 1.0E-4 + SCF_GUESS ATOMIC + MAX_SCF 20 + &MIXING + METHOD BROYDEN_MIXING + ALPHA 0.50 + &END + CHOLESKY OFF + EPS_EIGVAL 1.e-5 + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &KPOINTS + SCHEME MONKHORST-PACK 2 2 2 + SYMMETRY ON + WAVEFUNCTIONS COMPLEX + EPS_GEO 1.e-8 + FULL_GRID ON + VERBOSE F + PARALLEL_GROUP_SIZE 0 + &END KPOINTS + &END DFT + &SUBSYS + &CELL + ABC 3.56683 3.56683 3.56683 + &END CELL + &COORD + SCALED + C 0.100000 0.000000 0.000000 + C 0.500000 0.500000 0.000000 + C 0.500000 0.000000 0.500000 + C 0.000000 0.500000 0.500000 + C 0.250000 0.250000 0.250000 + C 0.250000 0.750000 0.750000 + C 0.750000 0.250000 0.750000 + C 0.750000 0.750000 0.250000 + &END COORD + &KIND C + BASIS_SET SZV-GTH + POTENTIAL GTH-PADE-q4 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + PROJECT C + RUN_TYPE GEO_OPT + PRINT_LEVEL LOW +&END GLOBAL +&MOTION + &GEO_OPT + OPTIMIZER LBFGS + MAX_ITER 2 + &END +&END + diff --git a/tests/QS/regtest-kp-3/cc3.inp b/tests/QS/regtest-kp-3/cc3.inp new file mode 100644 index 0000000000..4d0b4aac9c --- /dev/null +++ b/tests/QS/regtest-kp-3/cc3.inp @@ -0,0 +1,71 @@ +&FORCE_EVAL + &DFT + BASIS_SET_FILE_NAME GTH_BASIS_SETS + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 120 + REL_CUTOFF 30 + &END MGRID + &QS + METHOD GPW + EPS_DEFAULT 1.0E-14 + EXTRAPOLATION USE_PREV_P + &END QS + &SCF + EPS_SCF 1.0E-4 + SCF_GUESS ATOMIC + MAX_SCF 20 + &MIXING + METHOD BROYDEN_MIXING + ALPHA 0.50 + &END + CHOLESKY OFF + EPS_EIGVAL 1.e-5 + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &KPOINTS + SCHEME MONKHORST-PACK 2 2 2 + SYMMETRY ON + WAVEFUNCTIONS COMPLEX + EPS_GEO 1.e-8 + FULL_GRID ON + VERBOSE F + PARALLEL_GROUP_SIZE 0 + &END KPOINTS + &END DFT + &SUBSYS + &CELL + ABC 3.56683 3.56683 3.56683 + &END CELL + &COORD + SCALED + C 0.100000 0.000000 0.000000 + C 0.500000 0.500000 0.000000 + C 0.500000 0.000000 0.500000 + C 0.000000 0.500000 0.500000 + C 0.250000 0.250000 0.250000 + C 0.250000 0.750000 0.750000 + C 0.750000 0.250000 0.750000 + C 0.750000 0.750000 0.250000 + &END COORD + &KIND C + BASIS_SET SZV-GTH + POTENTIAL GTH-PADE-q4 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + PROJECT C + RUN_TYPE GEO_OPT + PRINT_LEVEL LOW +&END GLOBAL +&MOTION + &GEO_OPT + OPTIMIZER LBFGS + MAX_ITER 2 + &END +&END + diff --git a/tests/QS/regtest-kp-3/cc4.inp b/tests/QS/regtest-kp-3/cc4.inp new file mode 100644 index 0000000000..f39d19c2a7 --- /dev/null +++ b/tests/QS/regtest-kp-3/cc4.inp @@ -0,0 +1,71 @@ +&FORCE_EVAL + &DFT + BASIS_SET_FILE_NAME GTH_BASIS_SETS + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 120 + REL_CUTOFF 30 + &END MGRID + &QS + METHOD GPW + EPS_DEFAULT 1.0E-14 + EXTRAPOLATION USE_PREV_RHO_R + &END QS + &SCF + EPS_SCF 1.0E-4 + SCF_GUESS ATOMIC + MAX_SCF 20 + &MIXING + METHOD BROYDEN_MIXING + ALPHA 0.50 + &END + CHOLESKY OFF + EPS_EIGVAL 1.e-5 + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &KPOINTS + SCHEME MONKHORST-PACK 2 2 2 + SYMMETRY ON + WAVEFUNCTIONS COMPLEX + EPS_GEO 1.e-8 + FULL_GRID ON + VERBOSE F + PARALLEL_GROUP_SIZE 0 + &END KPOINTS + &END DFT + &SUBSYS + &CELL + ABC 3.56683 3.56683 3.56683 + &END CELL + &COORD + SCALED + C 0.100000 0.000000 0.000000 + C 0.500000 0.500000 0.000000 + C 0.500000 0.000000 0.500000 + C 0.000000 0.500000 0.500000 + C 0.250000 0.250000 0.250000 + C 0.250000 0.750000 0.750000 + C 0.750000 0.250000 0.750000 + C 0.750000 0.750000 0.250000 + &END COORD + &KIND C + BASIS_SET SZV-GTH + POTENTIAL GTH-PADE-q4 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + PROJECT C + RUN_TYPE GEO_OPT + PRINT_LEVEL LOW +&END GLOBAL +&MOTION + &GEO_OPT + OPTIMIZER LBFGS + MAX_ITER 2 + &END +&END + diff --git a/tests/TEST_DIRS b/tests/TEST_DIRS index e2e3bd23bd..9b8d6c0596 100644 --- a/tests/TEST_DIRS +++ b/tests/TEST_DIRS @@ -3,6 +3,7 @@ # Directories have been reordered according the execution time needed for a gfortran pdbg run using 2 MPI tasks # in case a new directory is added just add it at the top of the list.. # the order will be regularly checked and modified... +QS/regtest-almo-strong QS/regtest-elpa-2 elpa QS/regtest-cdft-5 Pimd @@ -28,6 +29,7 @@ QS/regtest-rel QS/regtest-admm-qps libint QS/regtest-sccs-1 QS/regtest-kp-1 +QS/regtest-kp-3 QS/regtest-slab ATOM/regtest-pseudo DFTB/regtest-scc @@ -230,3 +232,4 @@ QS/regtest-fftw fftw3 Fist/regtest-quip quip ATOM/regtest-libxc libxc Fist/regtest-plumed2 plumed2 +QS/regtest-sto