diff --git a/src/emd/rt_delta_pulse.F b/src/emd/rt_delta_pulse.F index e3d961e80d7..17804ef2c15 100644 --- a/src/emd/rt_delta_pulse.F +++ b/src/emd/rt_delta_pulse.F @@ -63,6 +63,7 @@ MODULE rt_delta_pulse USE moments_utils, ONLY: get_reference_point USE parallel_gemm_api, ONLY: parallel_gemm USE particle_types, ONLY: particle_type + USE qs_dftb_matrices, ONLY: build_dftb_overlap USE qs_environment_types, ONLY: get_qs_env,& qs_environment_type USE qs_kind_types, ONLY: qs_kind_type @@ -72,7 +73,9 @@ MODULE rt_delta_pulse build_local_magmom_matrix,& build_local_moment_matrix USE qs_neighbor_list_types, ONLY: neighbor_list_set_p_type - USE rt_propagation_types, ONLY: rt_prop_type + USE rt_propagation_types, ONLY: get_rtp,& + rt_prop_create_mos,& + rt_prop_type #include "../base/base_uses.f90" IMPLICIT NONE @@ -81,12 +84,79 @@ MODULE rt_delta_pulse CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'rt_delta_pulse' - PUBLIC :: apply_delta_pulse_periodic, & - apply_delta_pulse, & - apply_delta_pulse_mag + PUBLIC :: apply_delta_pulse CONTAINS +! ************************************************************************************************** +!> \brief Interface to call the delta pulse depending on the type of calculation. +!> \param qs_env ... +!> \param rtp ... +!> \param rtp_control ... +!> \author Update: Guillaume Le Breton (2023.01) +! ************************************************************************************************** + + SUBROUTINE apply_delta_pulse(qs_env, rtp, rtp_control) + TYPE(qs_environment_type), POINTER :: qs_env + TYPE(rt_prop_type), POINTER :: rtp + TYPE(rtp_control_type), POINTER :: rtp_control + + LOGICAL :: my_apply_pulse, periodic_cell + TYPE(cell_type), POINTER :: cell + TYPE(cp_fm_type), DIMENSION(:), POINTER :: mos_new, mos_old + TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: matrix_s + TYPE(dft_control_type), POINTER :: dft_control + TYPE(mo_set_type), DIMENSION(:), POINTER :: mos + + CALL get_qs_env(qs_env, & + cell=cell, & + dft_control=dft_control, & + matrix_s=matrix_s) + periodic_cell = ANY(cell%perd > 0) + my_apply_pulse = .TRUE. + CALL get_qs_env(qs_env, mos=mos) + IF (rtp%linear_scaling) THEN + IF (.NOT. ASSOCIATED(mos)) THEN + CALL cp_warn(__LOCATION__, "Delta Pulse not implemented for Linear-Scaling based ground "// & + "state calculation. If you want to perform a Linear-Scaling RTP from a "// & + "Linear-Scaling GS calculation you can do the following: (i) LSCF froms "// & + "scratch, (ii) MO-based SCF (for 1 SCF loop for instance) with the LSCF "// & + "result as a restart and (iii) linear scaling RTP + delta kick (for 1 "// & + "SCF loop for instance).") + my_apply_pulse = .FALSE. + ELSE + ! create temporary mos_old and mos_new to use delta kick routine designed for MOs-based RTP + CALL rt_prop_create_mos(rtp, mos, qs_env%mpools, dft_control, & + init_mos_old=.TRUE., init_mos_new=.TRUE., & + init_mos_next=.FALSE., init_mos_admn=.FALSE.) + END IF + END IF + + IF (my_apply_pulse) THEN + CALL get_rtp(rtp=rtp, mos_old=mos_old, mos_new=mos_new) + IF (rtp_control%apply_delta_pulse) THEN + IF (dft_control%qs_control%dftb) & + CALL build_dftb_overlap(qs_env, 1, matrix_s) + IF (rtp_control%periodic) THEN + CALL apply_delta_pulse_electric_periodic(qs_env, mos_old, mos_new) + ELSE + IF (periodic_cell) THEN + CPWARN("This application of the delta pulse is not compatible with PBC!") + END IF + CALL apply_delta_pulse_electric(qs_env, mos_old, mos_new) + END IF + ELSE IF (rtp_control%apply_delta_pulse_mag) THEN + IF (periodic_cell) THEN + CPWARN("This application of the delta pulse is not compatible with PBC!") + END IF + CALL apply_delta_pulse_mag(qs_env, mos_old, mos_new) + ELSE + CPABORT("Code error: this case should not happen!") + END IF + END IF + + END SUBROUTINE apply_delta_pulse + ! ************************************************************************************************** !> \brief uses perturbation theory to get the proper initial conditions !> The len_rep option is NOT compatible with periodic boundary conditions! @@ -96,11 +166,11 @@ MODULE rt_delta_pulse !> \author Joost & Martin (2011) ! ************************************************************************************************** - SUBROUTINE apply_delta_pulse_periodic(qs_env, mos_old, mos_new) + SUBROUTINE apply_delta_pulse_electric_periodic(qs_env, mos_old, mos_new) TYPE(qs_environment_type), POINTER :: qs_env TYPE(cp_fm_type), DIMENSION(:), POINTER :: mos_old, mos_new - CHARACTER(len=*), PARAMETER :: routineN = 'apply_delta_pulse_periodic' + CHARACTER(len=*), PARAMETER :: routineN = 'apply_delta_pulse_electric_periodic' INTEGER :: handle, icol, idir, irow, ispin, nao, & ncol_local, nmo, nrow_local, nvirt, & @@ -302,7 +372,7 @@ SUBROUTINE apply_delta_pulse_periodic(qs_env, mos_old, mos_new) CALL timestop(handle) - END SUBROUTINE apply_delta_pulse_periodic + END SUBROUTINE apply_delta_pulse_electric_periodic ! ************************************************************************************************** !> \brief applies exp(ikr) to the wavefunction.... stored in mos_old... @@ -312,11 +382,11 @@ END SUBROUTINE apply_delta_pulse_periodic !> \author Joost & Martin (2011) ! ************************************************************************************************** - SUBROUTINE apply_delta_pulse(qs_env, mos_old, mos_new) + SUBROUTINE apply_delta_pulse_electric(qs_env, mos_old, mos_new) TYPE(qs_environment_type), POINTER :: qs_env TYPE(cp_fm_type), DIMENSION(:), POINTER :: mos_old, mos_new - CHARACTER(len=*), PARAMETER :: routineN = 'apply_delta_pulse' + CHARACTER(len=*), PARAMETER :: routineN = 'apply_delta_pulse_electric' INTEGER :: handle, i, nao, nmo REAL(KIND=dp), DIMENSION(3) :: kvec @@ -382,7 +452,7 @@ SUBROUTINE apply_delta_pulse(qs_env, mos_old, mos_new) CALL timestop(handle) - END SUBROUTINE apply_delta_pulse + END SUBROUTINE apply_delta_pulse_electric ! ************************************************************************************************** !> \brief apply magnetic delta pulse to linear order diff --git a/src/emd/rt_propagation_utils.F b/src/emd/rt_propagation_utils.F index a866ab41d6e..4091e9e04eb 100644 --- a/src/emd/rt_propagation_utils.F +++ b/src/emd/rt_propagation_utils.F @@ -266,6 +266,7 @@ SUBROUTINE get_restart_wfn(qs_env) unit_nr REAL(KIND=dp) :: alpha, cs_pos TYPE(atomic_kind_type), DIMENSION(:), POINTER :: atomic_kind_set + TYPE(cp_fm_type) :: mos_occ TYPE(cp_fm_type), DIMENSION(:), POINTER :: mos_new, mos_old TYPE(cp_logger_type), POINTER :: logger TYPE(cp_para_env_type), POINTER :: para_env @@ -315,15 +316,29 @@ SUBROUTINE get_restart_wfn(qs_env) re = 2*ispin - 1 im = 2*ispin CALL cp_fm_get_info(mo_array(ispin)%mo_coeff, ncol_global=ncol) - alpha = 1.0_dp - IF (SIZE(mo_array) == 1) alpha = 2*alpha - CALL cp_dbcsr_plus_fm_fm_t( & - sparse_matrix=rho_old(re)%matrix, & - matrix_v=mo_array(ispin)%mo_coeff, matrix_g=mo_array(ispin)%mo_coeff, ncol=ncol, & - keep_sparsity=.FALSE., alpha=alpha) - END DO - DO i = 1, nspin - CALL dbcsr_copy(rho_new(i)%matrix, rho_old(i)%matrix) + CALL cp_fm_create(mos_occ, & + matrix_struct=mo_array(ispin)%mo_coeff%matrix_struct, & + name="mos_occ") + CALL cp_fm_to_fm(mo_array(ispin)%mo_coeff, mos_occ) + IF (mo_array(ispin)%uniform_occupation) THEN + alpha = 3.0_dp - REAL(nspin, dp) + CALL cp_fm_column_scale(mos_occ, mo_array(ispin)%occupation_numbers/alpha) + CALL cp_dbcsr_plus_fm_fm_t(sparse_matrix=rho_old(re)%matrix, & + matrix_v=mos_occ, & + ncol=ncol, & + alpha=alpha, keep_sparsity=.FALSE.) + ELSE + alpha = 1.0_dp + CALL cp_fm_column_scale(mos_occ, mo_array(ispin)%occupation_numbers/alpha) + CALL cp_dbcsr_plus_fm_fm_t(sparse_matrix=rho_old(re)%matrix, & + matrix_v=mo_array(ispin)%mo_coeff, & + matrix_g=mos_occ, & + ncol=ncol, & + alpha=alpha, keep_sparsity=.FALSE.) + END IF + CALL dbcsr_filter(rho_old(re)%matrix, rtp%filter_eps) + CALL dbcsr_copy(rho_new(re)%matrix, rho_old(re)%matrix) + CALL cp_fm_release(mos_occ) END DO CALL calc_update_rho_sparse(qs_env) ELSE diff --git a/src/emd/rt_propagator_init.F b/src/emd/rt_propagator_init.F index f5e5753a130..543ad6749a4 100644 --- a/src/emd/rt_propagator_init.F +++ b/src/emd/rt_propagator_init.F @@ -54,6 +54,7 @@ MODULE rt_propagator_init put_data_to_history,& s_matrices_create USE rt_propagation_types, ONLY: get_rtp,& + rt_prop_release_mos,& rt_prop_type #include "../base/base_uses.f90" @@ -406,54 +407,131 @@ END SUBROUTINE backtransform_matrix ! ************************************************************************************************** !> \brief Computes the density matrix from the mos +!> Update: Initialized the density matrix from complex mos (for +!> instance after delta kick) !> \param rtp ... !> \param mos ... +!> \param mos_old ... !> \author Samuel Andermatt (08.15) +!> \author Guillaume Le Breton (01.23) ! ************************************************************************************************** - SUBROUTINE rt_initialize_rho_from_mos(rtp, mos) + SUBROUTINE rt_initialize_rho_from_mos(rtp, mos, mos_old) TYPE(rt_prop_type), POINTER :: rtp TYPE(mo_set_type), DIMENSION(:), POINTER :: mos + TYPE(cp_fm_type), DIMENSION(:), OPTIONAL, POINTER :: mos_old - INTEGER :: ispin, ncol, re + INTEGER :: im, ispin, ncol, re REAL(KIND=dp) :: alpha - TYPE(cp_fm_type) :: mos_occ + TYPE(cp_fm_type) :: mos_occ, mos_occ_im TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: rho_new, rho_old CALL get_rtp(rtp=rtp, rho_old=rho_old, rho_new=rho_new) - DO ispin = 1, SIZE(mos) - re = 2*ispin - 1 - CALL dbcsr_set(rho_old(re)%matrix, 0.0_dp) - CALL cp_fm_get_info(mos(ispin)%mo_coeff, ncol_global=ncol) - - CALL cp_fm_create(mos_occ, & - matrix_struct=mos(ispin)%mo_coeff%matrix_struct, & - name="mos_occ") - CALL cp_fm_to_fm(mos(ispin)%mo_coeff, mos_occ) - IF (mos(ispin)%uniform_occupation) THEN - alpha = 3.0_dp - REAL(SIZE(mos), dp) - CALL cp_fm_column_scale(mos_occ, mos(ispin)%occupation_numbers/alpha) - CALL cp_dbcsr_plus_fm_fm_t(sparse_matrix=rho_old(re)%matrix, & - matrix_v=mos_occ, & - ncol=ncol, & - alpha=alpha, keep_sparsity=.FALSE.) - ELSE - alpha = 1.0_dp + IF (PRESENT(mos_old)) THEN + ! Used the mos from delta kick. Initialize both real and im part + DO ispin = 1, SIZE(mos_old)/2 + re = 2*ispin - 1; im = 2*ispin + CALL dbcsr_set(rho_old(re)%matrix, 0.0_dp) + CALL cp_fm_get_info(mos(ispin)%mo_coeff, ncol_global=ncol) + CALL cp_fm_create(mos_occ, & + matrix_struct=mos(ispin)%mo_coeff%matrix_struct, & + name="mos_occ") + !Real part of rho + CALL cp_fm_to_fm(mos_old(re), mos_occ) + IF (mos(ispin)%uniform_occupation) THEN + alpha = 3.0_dp - REAL(SIZE(mos_old)/2, dp) + CALL cp_fm_column_scale(mos_occ, mos(ispin)%occupation_numbers/alpha) + CALL cp_dbcsr_plus_fm_fm_t(sparse_matrix=rho_old(re)%matrix, & + matrix_v=mos_occ, & + ncol=ncol, & + alpha=alpha, keep_sparsity=.FALSE.) + ELSE + alpha = 1.0_dp + CALL cp_fm_column_scale(mos_occ, mos(ispin)%occupation_numbers/alpha) + CALL cp_dbcsr_plus_fm_fm_t(sparse_matrix=rho_old(re)%matrix, & + matrix_v=mos_old(re), & + matrix_g=mos_occ, & + ncol=ncol, & + alpha=alpha, keep_sparsity=.FALSE.) + END IF + + ! Add complex part of MOs, i*i=-1 + CALL cp_fm_to_fm(mos_old(im), mos_occ) + IF (mos(ispin)%uniform_occupation) THEN + alpha = 3.0_dp - REAL(SIZE(mos_old)/2, dp) + CALL cp_fm_column_scale(mos_occ, mos(ispin)%occupation_numbers/alpha) + CALL cp_dbcsr_plus_fm_fm_t(sparse_matrix=rho_old(re)%matrix, & + matrix_v=mos_occ, & + ncol=ncol, & + alpha=alpha, keep_sparsity=.FALSE.) + ELSE + alpha = 1.0_dp + CALL cp_fm_column_scale(mos_occ, mos(ispin)%occupation_numbers/alpha) + CALL cp_dbcsr_plus_fm_fm_t(sparse_matrix=rho_old(re)%matrix, & + matrix_v=mos_old(im), & + matrix_g=mos_occ, & + ncol=ncol, & + alpha=alpha, keep_sparsity=.FALSE.) + END IF + CALL dbcsr_filter(rho_old(re)%matrix, rtp%filter_eps) + CALL dbcsr_copy(rho_new(re)%matrix, rho_old(re)%matrix) + + ! Imaginary part of rho + CALL cp_fm_create(mos_occ_im, & + matrix_struct=mos(ispin)%mo_coeff%matrix_struct, & + name="mos_occ_im") + alpha = 3.0_dp - REAL(SIZE(mos_old)/2, dp) + CALL cp_fm_to_fm(mos_old(re), mos_occ) CALL cp_fm_column_scale(mos_occ, mos(ispin)%occupation_numbers/alpha) - CALL cp_dbcsr_plus_fm_fm_t(sparse_matrix=rho_old(re)%matrix, & - matrix_v=mos(ispin)%mo_coeff, & + CALL cp_fm_to_fm(mos_old(im), mos_occ_im) + CALL cp_fm_column_scale(mos_occ_im, mos(ispin)%occupation_numbers/alpha) + CALL cp_dbcsr_plus_fm_fm_t(sparse_matrix=rho_old(im)%matrix, & + matrix_v=mos_occ_im, & matrix_g=mos_occ, & ncol=ncol, & - alpha=alpha, keep_sparsity=.FALSE.) - END IF + alpha=2.0_dp*alpha, & + symmetry_mode=-1, keep_sparsity=.FALSE.) - CALL dbcsr_filter(rho_old(re)%matrix, rtp%filter_eps) - CALL dbcsr_copy(rho_new(re)%matrix, rho_old(re)%matrix) - CALL cp_fm_release(mos_occ) - - END DO + CALL dbcsr_filter(rho_old(im)%matrix, rtp%filter_eps) + CALL dbcsr_copy(rho_new(im)%matrix, rho_old(im)%matrix) + CALL cp_fm_release(mos_occ_im) + CALL cp_fm_release(mos_occ) + END DO + ! Release the mos used to apply the delta kick, no longer required + CALL rt_prop_release_mos(rtp) + ELSE + DO ispin = 1, SIZE(mos) + re = 2*ispin - 1 + CALL dbcsr_set(rho_old(re)%matrix, 0.0_dp) + CALL cp_fm_get_info(mos(ispin)%mo_coeff, ncol_global=ncol) + + CALL cp_fm_create(mos_occ, & + matrix_struct=mos(ispin)%mo_coeff%matrix_struct, & + name="mos_occ") + CALL cp_fm_to_fm(mos(ispin)%mo_coeff, mos_occ) + IF (mos(ispin)%uniform_occupation) THEN + alpha = 3.0_dp - REAL(SIZE(mos), dp) + CALL cp_fm_column_scale(mos_occ, mos(ispin)%occupation_numbers/alpha) + CALL cp_dbcsr_plus_fm_fm_t(sparse_matrix=rho_old(re)%matrix, & + matrix_v=mos_occ, & + ncol=ncol, & + alpha=alpha, keep_sparsity=.FALSE.) + ELSE + alpha = 1.0_dp + CALL cp_fm_column_scale(mos_occ, mos(ispin)%occupation_numbers/alpha) + CALL cp_dbcsr_plus_fm_fm_t(sparse_matrix=rho_old(re)%matrix, & + matrix_v=mos(ispin)%mo_coeff, & + matrix_g=mos_occ, & + ncol=ncol, & + alpha=alpha, keep_sparsity=.FALSE.) + END IF + CALL dbcsr_filter(rho_old(re)%matrix, rtp%filter_eps) + CALL dbcsr_copy(rho_new(re)%matrix, rho_old(re)%matrix) + CALL cp_fm_release(mos_occ) + END DO + END IF END SUBROUTINE rt_initialize_rho_from_mos diff --git a/src/input_cp2k_dft.F b/src/input_cp2k_dft.F index b89bdb49c49..e5255aeac90 100644 --- a/src/input_cp2k_dft.F +++ b/src/input_cp2k_dft.F @@ -8285,7 +8285,10 @@ SUBROUTINE create_rtp_section(section) CALL keyword_release(keyword) CALL keyword_create(keyword, __LOCATION__, name="INITIAL_WFN", & - description="Controls the initial WFN used for propagation.", & + description="Controls the initial WFN used for propagation. "// & + "Note that some energy contributions may not be "// & + "initialized in the restart cases, for instance "// & + "electronic entropy energy in the case of smearing.", & usage="INITIAL_WFN SCF_WFN", default_i_val=use_scf_wfn, & enum_c_vals=s2a("SCF_WFN", "RESTART_WFN", "RT_RESTART"), & enum_i_vals=(/use_scf_wfn, use_restart_wfn, use_rt_restart/), & @@ -8299,7 +8302,7 @@ SUBROUTINE create_rtp_section(section) CALL keyword_create(keyword, __LOCATION__, name="APPLY_DELTA_PULSE", & description="Applies a delta kick to the initial wfn (only RTP for now - the EMD "// & - " case is not yet implemented).", & + " case is not yet implemented). Only work for INITIAL_WFN=SCF_WFN", & usage="APPLY_DELTA_PULSE", & default_l_val=.FALSE., lone_keyword_l_val=.TRUE.) CALL section_add_keyword(section, keyword) @@ -8307,7 +8310,7 @@ SUBROUTINE create_rtp_section(section) CALL keyword_create(keyword, __LOCATION__, name="APPLY_DELTA_PULSE_MAG", & description="Applies a magnetic delta kick to the initial wfn (only RTP for now - the EMD "// & - " case is not yet implemented).", & + " case is not yet implemented). Only work for INITIAL_WFN=SCF_WFN", & usage="APPLY_DELTA_PULSE_MAG", & default_l_val=.FALSE., lone_keyword_l_val=.TRUE.) CALL section_add_keyword(section, keyword) diff --git a/src/motion/rt_propagation.F b/src/motion/rt_propagation.F index 3d99e7fc7ff..f47857d993f 100644 --- a/src/motion/rt_propagation.F +++ b/src/motion/rt_propagation.F @@ -13,7 +13,6 @@ MODULE rt_propagation USE bibliography, ONLY: Andermatt2016,& cite_reference - USE cell_types, ONLY: cell_type USE cp_blacs_env, ONLY: cp_blacs_env_type USE cp_control_types, ONLY: dft_control_type,& rtp_control_type @@ -54,7 +53,6 @@ MODULE rt_propagation USE md_environment_types, ONLY: md_environment_type USE pw_env_types, ONLY: pw_env_type USE qs_core_hamiltonian, ONLY: qs_matrix_h_allocate_imag_from_real - USE qs_dftb_matrices, ONLY: build_dftb_overlap USE qs_energy_init, ONLY: qs_energies_init USE qs_energy_types, ONLY: qs_energy_type USE qs_environment_types, ONLY: get_qs_env,& @@ -74,9 +72,7 @@ MODULE rt_propagation USE qs_rho_methods, ONLY: allocate_rho_ao_imag_from_real USE qs_rho_types, ONLY: qs_rho_set,& qs_rho_type - USE rt_delta_pulse, ONLY: apply_delta_pulse,& - apply_delta_pulse_mag,& - apply_delta_pulse_periodic + USE rt_delta_pulse, ONLY: apply_delta_pulse USE rt_hfx_utils, ONLY: rtp_hfx_rebuild USE rt_propagation_methods, ONLY: propagation_step USE rt_propagation_output, ONLY: rt_prop_output @@ -207,69 +203,57 @@ SUBROUTINE init_propagation_run(qs_env) INTEGER :: i, ispin, re INTEGER, DIMENSION(2) :: nelectron_spin - LOGICAL :: periodic_cell - TYPE(cell_type), POINTER :: cell TYPE(cp_fm_type), DIMENSION(:), POINTER :: mos_new, mos_old - TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: matrix_ks, matrix_s, rho_new, rho_old + TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: matrix_ks, rho_new, rho_old TYPE(dft_control_type), POINTER :: dft_control TYPE(mo_set_type), DIMENSION(:), POINTER :: mos TYPE(rt_prop_type), POINTER :: rtp TYPE(rtp_control_type), POINTER :: rtp_control - NULLIFY (matrix_s, dft_control, cell, rtp, rtp_control) + NULLIFY (dft_control, rtp, rtp_control) CALL cite_reference(Andermatt2016) CALL get_qs_env(qs_env, & - cell=cell, & rtp=rtp, & - matrix_s=matrix_s, & dft_control=dft_control) rtp_control => dft_control%rtp_control - periodic_cell = ANY(cell%perd > 0) - - IF (.NOT. rtp%linear_scaling) THEN - CALL get_qs_env(qs_env, mos=mos) - CALL get_rtp(rtp=rtp, mos_old=mos_old, mos_new=mos_new) - IF (rtp_control%initial_wfn == use_scf_wfn) THEN - IF (rtp_control%apply_delta_pulse) THEN - IF (dft_control%qs_control%dftb) & - CALL build_dftb_overlap(qs_env, 1, matrix_s) - IF (rtp_control%periodic) THEN - CALL apply_delta_pulse_periodic(qs_env, mos_old, mos_new) - ELSE - IF (periodic_cell) THEN - CPWARN("This application of the delta pulse is not compatible with PBC!") - END IF - CALL apply_delta_pulse(qs_env, mos_old, mos_new) - END IF - ELSE IF (rtp_control%apply_delta_pulse_mag) THEN - IF (periodic_cell) THEN - CPWARN("This application of the delta pulse is not compatible with PBC!") - END IF - CALL apply_delta_pulse_mag(qs_env, mos_old, mos_new) - ELSE + IF (rtp_control%initial_wfn == use_scf_wfn) THEN + IF (rtp_control%apply_delta_pulse .OR. rtp_control%apply_delta_pulse_mag) THEN + CALL apply_delta_pulse(qs_env, rtp, rtp_control) + ELSE + IF (.NOT. rtp%linear_scaling) THEN + CALL get_rtp(rtp=rtp, mos_old=mos_old) + CALL get_qs_env(qs_env, mos=mos) DO i = 1, SIZE(mos) CALL cp_fm_to_fm(mos(i)%mo_coeff, mos_old(2*i - 1)) CALL cp_fm_set_all(mos_old(2*i), zero, zero) END DO END IF END IF + END IF + IF (.NOT. rtp%linear_scaling) THEN + CALL get_rtp(rtp=rtp, mos_old=mos_old, mos_new=mos_new) DO i = 1, SIZE(mos_old) CALL cp_fm_to_fm(mos_old(i), mos_new(i)) END DO CALL calc_update_rho(qs_env) ELSE - IF (qs_env%rtp%linear_scaling .AND. rtp_control%initial_wfn == use_scf_wfn) THEN + IF (rtp_control%initial_wfn == use_scf_wfn) THEN CALL get_qs_env(qs_env, & matrix_ks=matrix_ks, & mos=mos, & nelectron_spin=nelectron_spin) IF (ASSOCIATED(mos)) THEN !The wavefunction was minimized by an mo based algorith. P is therefore calculated from the mos - CALL rt_initialize_rho_from_mos(rtp, mos) + IF (ASSOCIATED(rtp%mos) .AND. ASSOCIATED(rtp%mos%old)) THEN + ! Delta kick was applied and the results is in rtp%mos%old + CALL rt_initialize_rho_from_mos(rtp, mos, mos_old=rtp%mos%old) + ELSE + CALL rt_initialize_rho_from_mos(rtp, mos) + END IF ELSE !The wavefunction was minimized using a linear scaling method. The density matrix is therefore taken from the ls_scf_env. CALL get_rtp(rtp=rtp, rho_old=rho_old, rho_new=rho_new) diff --git a/src/qs_density_matrices.F b/src/qs_density_matrices.F index 5ded4d9d3c8..3bb025a145b 100644 --- a/src/qs_density_matrices.F +++ b/src/qs_density_matrices.F @@ -106,7 +106,6 @@ SUBROUTINE calculate_dm_sparse(mo_set, density_matrix, use_dbcsr, retain_sparsit CALL dbcsr_set(density_matrix, 0.0_dp) IF (.NOT. mo_set%uniform_occupation) THEN ! not all orbitals 1..homo are equally occupied - IF (my_use_dbcsr) THEN CALL dbcsr_copy(dbcsr_tmp, mo_set%mo_coeff_b) CALL dbcsr_scale_by_vector(dbcsr_tmp, mo_set%occupation_numbers(1:mo_set%homo), & diff --git a/src/qs_mo_io.F b/src/qs_mo_io.F index e5ad43d61d4..11409be6de6 100644 --- a/src/qs_mo_io.F +++ b/src/qs_mo_io.F @@ -391,7 +391,6 @@ SUBROUTINE write_mo_set_low(mo_array, qs_kind_set, particle_set, ires, rt_mos) ! use the scalapack block size as a default for buffering columns CALL cp_fm_get_info(mo_array(1)%mo_coeff, ncol_block=max_block) - DO ispin = 1, nspin nmo = mo_array(ispin)%nmo IF ((ires > 0) .AND. (nmo > 0)) THEN @@ -400,6 +399,7 @@ SUBROUTINE write_mo_set_low(mo_array, qs_kind_set, particle_set, ires, rt_mos) mo_array(ispin)%lfomo, & mo_array(ispin)%nelectron WRITE (ires) mo_array(ispin)%eigenvalues(1:nmo), & + mo_array(ispin)%uniform_occupation, & mo_array(ispin)%occupation_numbers(1:nmo) END IF IF (PRESENT(rt_mos)) THEN @@ -678,7 +678,8 @@ SUBROUTINE read_mos_restart_low(mos, para_env, qs_kind_set, particle_set, natom, INTEGER, DIMENSION(:), POINTER :: nset_info, nshell INTEGER, DIMENSION(:, :), POINTER :: l, nshell_info INTEGER, DIMENSION(:, :, :), POINTER :: nso_info, offset_info - LOGICAL :: minbas, natom_match, use_this + LOGICAL :: minbas, natom_match, uniform_occ_read, & + use_this REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: eig_read, occ_read REAL(KIND=dp), DIMENSION(:, :), POINTER :: vecbuffer, vecbuffer_read TYPE(cp_logger_type), POINTER :: logger @@ -791,8 +792,9 @@ SUBROUTINE read_mos_restart_low(mos, para_env, qs_kind_set, particle_set, natom, "The number of MOs on the restart unit is greater than the number of "// & "the allocated MOs. The read MO set will be truncated!") - READ (rst_unit) eig_read(1:nmo_read), occ_read(1:nmo_read) + READ (rst_unit) eig_read(1:nmo_read), uniform_occ_read, occ_read(1:nmo_read) mos(ispin)%eigenvalues(1:nmo) = eig_read(1:nmo) + mos(ispin)%uniform_occupation = uniform_occ_read mos(ispin)%occupation_numbers(1:nmo) = occ_read(1:nmo) DEALLOCATE (eig_read, occ_read) @@ -817,6 +819,7 @@ SUBROUTINE read_mos_restart_low(mos, para_env, qs_kind_set, particle_set, natom, CALL mp_bcast(mos(ispin)%lfomo, source, group) CALL mp_bcast(mos(ispin)%nelectron, source, group) CALL mp_bcast(mos(ispin)%eigenvalues, source, group) + CALL mp_bcast(mos(ispin)%uniform_occupation, source, group) CALL mp_bcast(mos(ispin)%occupation_numbers, source, group) IF (PRESENT(rt_mos)) THEN DO imat = 2*ispin - 1, 2*ispin diff --git a/src/rt_propagation_types.F b/src/rt_propagation_types.F index c19da50968a..6d3389b6628 100644 --- a/src/rt_propagation_types.F +++ b/src/rt_propagation_types.F @@ -122,8 +122,10 @@ MODULE rt_propagation_types ! *** Public subroutines *** PUBLIC :: rt_prop_create, & + rt_prop_create_mos, & get_rtp, & rt_prop_release, & + rt_prop_release_mos, & rtp_history_create CONTAINS @@ -147,9 +149,7 @@ SUBROUTINE rt_prop_create(rtp, mos, mpools, dft_control, template, linear_scalin LOGICAL, INTENT(IN) :: linear_scaling TYPE(mo_set_type), DIMENSION(:), OPTIONAL, POINTER :: mos_aux - INTEGER :: i, j, nao, nrow_block, nspin - TYPE(cp_fm_pool_p_type), DIMENSION(:), POINTER :: ao_mo_fm_pools - TYPE(cp_fm_struct_type), POINTER :: ao_mo_fmstruct + INTEGER :: i, nspin TYPE(rtp_control_type), POINTER :: rtp_control CALL cite_reference(Kunert2003) @@ -180,47 +180,11 @@ SUBROUTINE rt_prop_create(rtp, mos, mpools, dft_control, template, linear_scalin CALL dbcsr_create(rtp%rho%new(i)%matrix, template=template, matrix_type="N") END DO ELSE - CALL mpools_get(mpools, ao_mo_fm_pools=ao_mo_fm_pools) - - ao_mo_fmstruct => fm_pool_get_el_struct(ao_mo_fm_pools(1)%pool) - CALL cp_fm_struct_get(ao_mo_fmstruct, nrow_block=nrow_block) - CALL get_mo_set(mos(1), nao=nao) - - CALL cp_fm_struct_create(fmstruct=rtp%ao_ao_fmstruct, & - nrow_block=nrow_block, ncol_block=nrow_block, & - nrow_global=nao, ncol_global=nao, & - template_fmstruct=ao_mo_fmstruct) - ALLOCATE (rtp%mos) - ALLOCATE (rtp%mos%old(2*nspin)) - ALLOCATE (rtp%mos%new(2*nspin)) - ALLOCATE (rtp%mos%next(2*nspin)) - NULLIFY (rtp%mos%admm) - IF (dft_control%do_admm) THEN - IF (PRESENT(mos_aux)) THEN - CPASSERT(ASSOCIATED(mos_aux)) - ELSE - CPABORT("The optional argument mos_aux is missing which is required with ADMM") - END IF - ALLOCATE (rtp%mos%admm(2*nspin)) + IF (PRESENT(mos_aux)) THEN + CALL rt_prop_create_mos(rtp, mos, mpools, dft_control, mos_aux) + ELSE + CALL rt_prop_create_mos(rtp, mos, mpools, dft_control) END IF - DO i = 1, nspin - DO j = 1, 2 - CALL cp_fm_create(rtp%mos%old(2*(i - 1) + j), & - matrix_struct=mos(i)%mo_coeff%matrix_struct, & - name="mos_old"//TRIM(ADJUSTL(cp_to_string(2*(i - 1) + j)))) - CALL cp_fm_create(rtp%mos%new(2*(i - 1) + j), & - matrix_struct=mos(i)%mo_coeff%matrix_struct, & - name="mos_new"//TRIM(ADJUSTL(cp_to_string(2*(i - 1) + j)))) - CALL cp_fm_create(rtp%mos%next(2*(i - 1) + j), & - matrix_struct=mos(i)%mo_coeff%matrix_struct, & - name="mos_next"//TRIM(ADJUSTL(cp_to_string(2*(i - 1) + j)))) - IF (dft_control%do_admm) THEN - CALL cp_fm_create(rtp%mos%admm(2*(i - 1) + j), & - matrix_struct=mos_aux(i)%mo_coeff%matrix_struct, & - name="mos_admm"//TRIM(ADJUSTL(cp_to_string(2*(i - 1) + j)))) - END IF - END DO - END DO END IF NULLIFY (rtp%exp_H_old) @@ -288,6 +252,102 @@ SUBROUTINE rt_prop_create(rtp, mos, mpools, dft_control, template, linear_scalin END SUBROUTINE rt_prop_create +! ************************************************************************************************** +!> \brief Initialize the mos for rtp +!> \param rtp ... +!> \param mos ... +!> \param mpools ... +!> \param dft_control ... +!> \param mos_aux ... +!> \param init_mos_old ... +!> \param init_mos_new ... +!> \param init_mos_next ... +!> \param init_mos_admn ... +! ************************************************************************************************** + SUBROUTINE rt_prop_create_mos(rtp, mos, mpools, dft_control, mos_aux, init_mos_old, & + init_mos_new, init_mos_next, init_mos_admn) + TYPE(rt_prop_type), POINTER :: rtp + TYPE(mo_set_type), DIMENSION(:), INTENT(IN) :: mos + TYPE(qs_matrix_pools_type), POINTER :: mpools + TYPE(dft_control_type), POINTER :: dft_control + TYPE(mo_set_type), DIMENSION(:), OPTIONAL, POINTER :: mos_aux + LOGICAL, OPTIONAL :: init_mos_old, init_mos_new, & + init_mos_next, init_mos_admn + + INTEGER :: i, j, nao, nrow_block, nspin + LOGICAL :: my_mos_admn, my_mos_new, my_mos_next, & + my_mos_old + TYPE(cp_fm_pool_p_type), DIMENSION(:), POINTER :: ao_mo_fm_pools + TYPE(cp_fm_struct_type), POINTER :: ao_mo_fmstruct + + IF (PRESENT(init_mos_old)) THEN + my_mos_old = init_mos_old + ELSE + my_mos_old = .TRUE. + END IF + + IF (PRESENT(init_mos_new)) THEN + my_mos_new = init_mos_new + ELSE + my_mos_new = .TRUE. + END IF + + IF (PRESENT(init_mos_next)) THEN + my_mos_next = init_mos_next + ELSE + my_mos_next = .TRUE. + END IF + + IF (PRESENT(init_mos_admn)) THEN + my_mos_admn = init_mos_admn + ELSE + my_mos_admn = .TRUE. + END IF + + nspin = dft_control%nspins + CALL mpools_get(mpools, ao_mo_fm_pools=ao_mo_fm_pools) + ao_mo_fmstruct => fm_pool_get_el_struct(ao_mo_fm_pools(1)%pool) + CALL cp_fm_struct_get(ao_mo_fmstruct, nrow_block=nrow_block) + CALL get_mo_set(mos(1), nao=nao) + + CALL cp_fm_struct_create(fmstruct=rtp%ao_ao_fmstruct, & + nrow_block=nrow_block, ncol_block=nrow_block, & + nrow_global=nao, ncol_global=nao, & + template_fmstruct=ao_mo_fmstruct) + IF (.NOT. (ASSOCIATED(rtp%mos))) ALLOCATE (rtp%mos) + IF (my_mos_old) ALLOCATE (rtp%mos%old(2*nspin)) + IF (my_mos_new) ALLOCATE (rtp%mos%new(2*nspin)) + IF (my_mos_next) ALLOCATE (rtp%mos%next(2*nspin)) + NULLIFY (rtp%mos%admm) + IF ((dft_control%do_admm) .AND. my_mos_admn) THEN + IF (PRESENT(mos_aux)) THEN + CPASSERT(ASSOCIATED(mos_aux)) + ELSE + CPABORT("The optional argument mos_aux is missing which is required with ADMM") + END IF + ALLOCATE (rtp%mos%admm(2*nspin)) + END IF + DO i = 1, nspin + DO j = 1, 2 + IF (my_mos_old) CALL cp_fm_create(rtp%mos%old(2*(i - 1) + j), & + matrix_struct=mos(i)%mo_coeff%matrix_struct, & + name="mos_old"//TRIM(ADJUSTL(cp_to_string(2*(i - 1) + j)))) + IF (my_mos_new) CALL cp_fm_create(rtp%mos%new(2*(i - 1) + j), & + matrix_struct=mos(i)%mo_coeff%matrix_struct, & + name="mos_new"//TRIM(ADJUSTL(cp_to_string(2*(i - 1) + j)))) + IF (my_mos_next) CALL cp_fm_create(rtp%mos%next(2*(i - 1) + j), & + matrix_struct=mos(i)%mo_coeff%matrix_struct, & + name="mos_next"//TRIM(ADJUSTL(cp_to_string(2*(i - 1) + j)))) + IF ((dft_control%do_admm) .AND. my_mos_admn) THEN + CALL cp_fm_create(rtp%mos%admm(2*(i - 1) + j), & + matrix_struct=mos_aux(i)%mo_coeff%matrix_struct, & + name="mos_admm"//TRIM(ADJUSTL(cp_to_string(2*(i - 1) + j)))) + END IF + END DO + END DO + + END SUBROUTINE rt_prop_create_mos + ! ************************************************************************************************** !> \brief ... !> \param rtp ... @@ -389,17 +449,9 @@ SUBROUTINE rt_prop_release(rtp) CALL dbcsr_deallocate_matrix_set(rtp%rho%new) DEALLOCATE (rtp%rho) END IF - IF (ASSOCIATED(rtp%mos)) THEN - IF (ASSOCIATED(rtp%mos%old)) & - CALL cp_fm_vect_dealloc(rtp%mos%old) - IF (ASSOCIATED(rtp%mos%new)) & - CALL cp_fm_vect_dealloc(rtp%mos%new) - IF (ASSOCIATED(rtp%mos%next)) & - CALL cp_fm_vect_dealloc(rtp%mos%next) - IF (ASSOCIATED(rtp%mos%admm)) & - CALL cp_fm_vect_dealloc(rtp%mos%admm) - DEALLOCATE (rtp%mos) - END IF + + CALL rt_prop_release_mos(rtp) + CALL dbcsr_deallocate_matrix(rtp%S_inv) CALL dbcsr_deallocate_matrix(rtp%S_half) CALL dbcsr_deallocate_matrix(rtp%S_minus_half) @@ -416,10 +468,30 @@ SUBROUTINE rt_prop_release(rtp) IF (ASSOCIATED(rtp%history)) & CALL rtp_history_release(rtp) DEALLOCATE (rtp%orders) - IF (.NOT. rtp%linear_scaling) CALL cp_fm_struct_release(rtp%ao_ao_fmstruct) END SUBROUTINE rt_prop_release ! ************************************************************************************************** +!> \brief Deallocated the mos for rtp... +!> \param rtp ... +! ************************************************************************************************** + SUBROUTINE rt_prop_release_mos(rtp) + TYPE(rt_prop_type), INTENT(inout) :: rtp + + IF (ASSOCIATED(rtp%mos)) THEN + IF (ASSOCIATED(rtp%mos%old)) & + CALL cp_fm_vect_dealloc(rtp%mos%old) + IF (ASSOCIATED(rtp%mos%new)) & + CALL cp_fm_vect_dealloc(rtp%mos%new) + IF (ASSOCIATED(rtp%mos%next)) & + CALL cp_fm_vect_dealloc(rtp%mos%next) + IF (ASSOCIATED(rtp%mos%admm)) & + CALL cp_fm_vect_dealloc(rtp%mos%admm) + CALL cp_fm_struct_release(rtp%ao_ao_fmstruct) + DEALLOCATE (rtp%mos) + END IF + + END SUBROUTINE rt_prop_release_mos +! ************************************************************************************************** !> \brief ... !> \param rtp ... !> \param aspc_order ... diff --git a/tests/QS/regtest-rtp-5/H2O-charged-dens-pulse-1.inp b/tests/QS/regtest-rtp-5/H2O-charged-dens-pulse-1.inp new file mode 100644 index 00000000000..315202acc10 --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-charged-dens-pulse-1.inp @@ -0,0 +1,70 @@ +&GLOBAL + PROJECT H2O_dens_charged + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + UKS + CHARGE +1 + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 20 + SCF_GUESS ATOMIC + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + PERIODIC .FALSE. + COM_NL .FALSE. + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-9 + PROPAGATOR ETRS + INITIAL_WFN SCF_WFN ! RT_RESTART + &END + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC NONE + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/H2O-charged-dens-pulse-2.inp b/tests/QS/regtest-rtp-5/H2O-charged-dens-pulse-2.inp new file mode 100644 index 00000000000..9fa336c5e5a --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-charged-dens-pulse-2.inp @@ -0,0 +1,70 @@ +&GLOBAL + PROJECT H2O_mo + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + UKS + CHARGE +1 + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 20 + SCF_GUESS ATOMIC + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + PERIODIC .TRUE. + COM_NL .FALSE. + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-9 + PROPAGATOR ETRS + INITIAL_WFN SCF_WFN ! RT_RESTART + &END + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC NONE + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/H2O-charged-dens-pulse-3.inp b/tests/QS/regtest-rtp-5/H2O-charged-dens-pulse-3.inp new file mode 100644 index 00000000000..fd956ee4a02 --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-charged-dens-pulse-3.inp @@ -0,0 +1,70 @@ +&GLOBAL + PROJECT H2O_mo + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + UKS + CHARGE +1 + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 20 + SCF_GUESS ATOMIC + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + PERIODIC .TRUE. + COM_NL .TRUE. + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-9 + PROPAGATOR ETRS + INITIAL_WFN SCF_WFN ! RT_RESTART + &END + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC NONE + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/H2O-charged-dens-pulse-4.inp b/tests/QS/regtest-rtp-5/H2O-charged-dens-pulse-4.inp new file mode 100644 index 00000000000..fc0f5002d3b --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-charged-dens-pulse-4.inp @@ -0,0 +1,70 @@ +&GLOBAL + PROJECT H2O_mo + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + UKS + CHARGE +1 + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 20 + SCF_GUESS ATOMIC + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE_MAG + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + PERIODIC .FALSE. + COM_NL .FALSE. + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-9 + PROPAGATOR ETRS + INITIAL_WFN SCF_WFN ! RT_RESTART + &END + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC NONE + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/H2O-charged-dens-pulse-5.inp b/tests/QS/regtest-rtp-5/H2O-charged-dens-pulse-5.inp new file mode 100644 index 00000000000..f5fe510114c --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-charged-dens-pulse-5.inp @@ -0,0 +1,71 @@ +&GLOBAL + PROJECT H2O_mo + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + UKS + CHARGE +1 + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 20 + SCF_GUESS ATOMIC + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + PERIODIC .TRUE. + COM_NL .TRUE. + LEN_REP .TRUE. + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-9 + PROPAGATOR ETRS + INITIAL_WFN SCF_WFN ! RT_RESTART + &END + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC NONE + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/H2O-charged-dens-restart.inp b/tests/QS/regtest-rtp-5/H2O-charged-dens-restart.inp new file mode 100644 index 00000000000..d67076ab536 --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-charged-dens-restart.inp @@ -0,0 +1,69 @@ +&GLOBAL + PROJECT H2O_dens_charged + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + UKS + CHARGE +1 + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + RESTART_FILE_NAME H2O_dens_charged-RESTART.wfn + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 20 + SCF_GUESS ATOMIC + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-9 + PROPAGATOR ETRS + INITIAL_WFN RESTART_WFN ! RT_RESTART + &END + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC NONE + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/H2O-dens-pulse-1.inp b/tests/QS/regtest-rtp-5/H2O-dens-pulse-1.inp new file mode 100644 index 00000000000..ce4f63dac36 --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-dens-pulse-1.inp @@ -0,0 +1,68 @@ +&GLOBAL + PROJECT H2O_dens + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 20 + SCF_GUESS ATOMIC + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + PERIODIC .FALSE. + COM_NL .FALSE. + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-9 + PROPAGATOR ETRS + INITIAL_WFN SCF_WFN ! RT_RESTART + &END + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC NONE + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/H2O-dens-pulse-2.inp b/tests/QS/regtest-rtp-5/H2O-dens-pulse-2.inp new file mode 100644 index 00000000000..e71b1ee21fe --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-dens-pulse-2.inp @@ -0,0 +1,68 @@ +&GLOBAL + PROJECT H2O_mo + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 20 + SCF_GUESS ATOMIC + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + PERIODIC .TRUE. + COM_NL .FALSE. + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-9 + PROPAGATOR ETRS + INITIAL_WFN SCF_WFN ! RT_RESTART + &END + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC NONE + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/H2O-dens-pulse-3.inp b/tests/QS/regtest-rtp-5/H2O-dens-pulse-3.inp new file mode 100644 index 00000000000..540079a07e2 --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-dens-pulse-3.inp @@ -0,0 +1,68 @@ +&GLOBAL + PROJECT H2O_mo + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 20 + SCF_GUESS ATOMIC + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + PERIODIC .TRUE. + COM_NL .TRUE. + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-9 + PROPAGATOR ETRS + INITIAL_WFN SCF_WFN ! RT_RESTART + &END + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC NONE + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/H2O-dens-pulse-4.inp b/tests/QS/regtest-rtp-5/H2O-dens-pulse-4.inp new file mode 100644 index 00000000000..70c336a895b --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-dens-pulse-4.inp @@ -0,0 +1,68 @@ +&GLOBAL + PROJECT H2O_mo + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 20 + SCF_GUESS ATOMIC + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE_MAG + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + PERIODIC .FALSE. + COM_NL .FALSE. + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-9 + PROPAGATOR ETRS + INITIAL_WFN SCF_WFN ! RT_RESTART + &END + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC NONE + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/H2O-dens-pulse-5.inp b/tests/QS/regtest-rtp-5/H2O-dens-pulse-5.inp new file mode 100644 index 00000000000..aad6ac90c2a --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-dens-pulse-5.inp @@ -0,0 +1,69 @@ +&GLOBAL + PROJECT H2O_mo + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 20 + SCF_GUESS ATOMIC + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + PERIODIC .TRUE. + COM_NL .TRUE. + LEN_REP .TRUE. + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-9 + PROPAGATOR ETRS + INITIAL_WFN SCF_WFN ! RT_RESTART + &END + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC NONE + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/H2O-dens-restart.inp b/tests/QS/regtest-rtp-5/H2O-dens-restart.inp new file mode 100644 index 00000000000..9bf77d7a85a --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-dens-restart.inp @@ -0,0 +1,69 @@ +&GLOBAL + PROJECT H2O_dens + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + RESTART_FILE_NAME H2O_dens-RESTART.wfn + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 20 + SCF_GUESS ATOMIC + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + PERIODIC .FALSE. + COM_NL .FALSE. + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-9 + PROPAGATOR ETRS + INITIAL_WFN RESTART_WFN ! RT_RESTART + &END + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC NONE + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/H2O-mom-dens-pulse-1.inp b/tests/QS/regtest-rtp-5/H2O-mom-dens-pulse-1.inp new file mode 100644 index 00000000000..ae05b47b695 --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-mom-dens-pulse-1.inp @@ -0,0 +1,84 @@ +&GLOBAL + PROJECT H2O_mo + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + UKS + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 100 + EPS_SCF 1.0e-12 + SCF_GUESS ATOMIC + ADDED_MOS 2 + &MOM + START_ITER 40 + DEOCC_ALPHA 4 + OCC_ALPHA 6 + MOM_TYPE MOM + &END MOM + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + PERIODIC .FALSE. + COM_NL .FALSE. + MAX_ITER 200 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-12 + PROPAGATOR ETRS + INITIAL_WFN SCF_WFN ! RT_RESTART + &END + &PRINT + &MO + COEFFICIENTS .TRUE. + OCCUPATION_NUMBERS .TRUE. + MO_INDEX_RANGE 1 6 + &END MO + &END PRINT + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC NONE + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/H2O-periodic-dens-pulse-1.inp b/tests/QS/regtest-rtp-5/H2O-periodic-dens-pulse-1.inp new file mode 100644 index 00000000000..f997f463011 --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-periodic-dens-pulse-1.inp @@ -0,0 +1,68 @@ +&GLOBAL + PROJECT H2O_dens_periodic + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 20 + SCF_GUESS ATOMIC + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + PERIODIC .TRUE. + COM_NL .FALSE. + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-9 + PROPAGATOR ETRS + INITIAL_WFN SCF_WFN ! RT_RESTART + &END + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC XYZ + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/H2O-periodic-dens-pulse-2.inp b/tests/QS/regtest-rtp-5/H2O-periodic-dens-pulse-2.inp new file mode 100644 index 00000000000..b2eb2d0f509 --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-periodic-dens-pulse-2.inp @@ -0,0 +1,69 @@ +&GLOBAL + PROJECT H2O_mo + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 20 + SCF_GUESS ATOMIC + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + PERIODIC .TRUE. + LEN_REP .TRUE. + COM_NL .FALSE. + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-9 + PROPAGATOR ETRS + INITIAL_WFN SCF_WFN ! RT_RESTART + &END + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC XYZ + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/H2O-periodic-dens-restart.inp b/tests/QS/regtest-rtp-5/H2O-periodic-dens-restart.inp new file mode 100644 index 00000000000..6086a2deda0 --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-periodic-dens-restart.inp @@ -0,0 +1,67 @@ +&GLOBAL + PROJECT H2O_dens_periodic + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + RESTART_FILE_NAME H2O_dens_periodic-RESTART.wfn + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 20 + SCF_GUESS ATOMIC + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-9 + PROPAGATOR ETRS + INITIAL_WFN RESTART_WFN ! RT_RESTART + &END + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC XYZ + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/H2O-uks-dens-pulse-1.inp b/tests/QS/regtest-rtp-5/H2O-uks-dens-pulse-1.inp new file mode 100644 index 00000000000..0475cd218a7 --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-uks-dens-pulse-1.inp @@ -0,0 +1,69 @@ +&GLOBAL + PROJECT H2O_dens_uks + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + UKS + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 20 + SCF_GUESS ATOMIC + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + PERIODIC .FALSE. + COM_NL .FALSE. + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-9 + PROPAGATOR ETRS + INITIAL_WFN SCF_WFN ! RT_RESTART + &END + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC NONE + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/H2O-uks-dens-pulse-2.inp b/tests/QS/regtest-rtp-5/H2O-uks-dens-pulse-2.inp new file mode 100644 index 00000000000..388f230a83a --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-uks-dens-pulse-2.inp @@ -0,0 +1,69 @@ +&GLOBAL + PROJECT H2O_mo + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + UKS + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 20 + SCF_GUESS ATOMIC + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + PERIODIC .TRUE. + COM_NL .FALSE. + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-9 + PROPAGATOR ETRS + INITIAL_WFN SCF_WFN ! RT_RESTART + &END + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC NONE + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/H2O-uks-dens-pulse-3.inp b/tests/QS/regtest-rtp-5/H2O-uks-dens-pulse-3.inp new file mode 100644 index 00000000000..570bab09fa2 --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-uks-dens-pulse-3.inp @@ -0,0 +1,69 @@ +&GLOBAL + PROJECT H2O_mo + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + UKS + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 20 + SCF_GUESS ATOMIC + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + PERIODIC .TRUE. + COM_NL .TRUE. + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-9 + PROPAGATOR ETRS + INITIAL_WFN SCF_WFN ! RT_RESTART + &END + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC NONE + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/H2O-uks-dens-pulse-4.inp b/tests/QS/regtest-rtp-5/H2O-uks-dens-pulse-4.inp new file mode 100644 index 00000000000..af00cd3585d --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-uks-dens-pulse-4.inp @@ -0,0 +1,69 @@ +&GLOBAL + PROJECT H2O_mo + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + UKS + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 20 + SCF_GUESS ATOMIC + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE_MAG + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + PERIODIC .FALSE. + COM_NL .FALSE. + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-9 + PROPAGATOR ETRS + INITIAL_WFN SCF_WFN ! RT_RESTART + &END + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC NONE + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/H2O-uks-dens-pulse-5.inp b/tests/QS/regtest-rtp-5/H2O-uks-dens-pulse-5.inp new file mode 100644 index 00000000000..3cb7cf84b98 --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-uks-dens-pulse-5.inp @@ -0,0 +1,70 @@ +&GLOBAL + PROJECT H2O_mo + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + UKS + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 20 + SCF_GUESS ATOMIC + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + PERIODIC .TRUE. + COM_NL .TRUE. + LEN_REP .TRUE. + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-9 + PROPAGATOR ETRS + INITIAL_WFN SCF_WFN ! RT_RESTART + &END + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC NONE + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/H2O-uks-dens-restart.inp b/tests/QS/regtest-rtp-5/H2O-uks-dens-restart.inp new file mode 100644 index 00000000000..d5838f53fde --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-uks-dens-restart.inp @@ -0,0 +1,68 @@ +&GLOBAL + PROJECT H2O_dens_uks + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + UKS + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + RESTART_FILE_NAME H2O_dens_uks-RESTART.wfn + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 20 + SCF_GUESS ATOMIC + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-9 + PROPAGATOR ETRS + INITIAL_WFN RESTART_WFN ! RT_RESTART + &END + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC NONE + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/H2O-wfn-mix-dens-pulse-1.inp b/tests/QS/regtest-rtp-5/H2O-wfn-mix-dens-pulse-1.inp new file mode 100644 index 00000000000..f7a0ec82976 --- /dev/null +++ b/tests/QS/regtest-rtp-5/H2O-wfn-mix-dens-pulse-1.inp @@ -0,0 +1,95 @@ +&GLOBAL + PROJECT H2O_mo + RUN_TYPE RT_PROPAGATION + PRINT_LEVEL LOW +&END GLOBAL +&FORCE_EVAL + METHOD Quickstep + &DFT + UKS + BASIS_SET_FILE_NAME BASIS_MOLOPT + POTENTIAL_FILE_NAME POTENTIAL + &MGRID + CUTOFF 200 + &END MGRID + &QS + &END QS + &SCF + MAX_SCF 1000 + EPS_SCF 1.0e-9 + EPS_LUMO 1.0e-9 + SCF_GUESS ATOMIC + &OT + &END OT + &END SCF + &XC + &XC_FUNCTIONAL PADE + &END XC_FUNCTIONAL + &END XC + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + PERIODIC .FALSE. + COM_NL .FALSE. + MAX_ITER 200 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + EXP_ACCURACY 1.0E-9 + EPS_ITER 1.0E-12 + PROPAGATOR ETRS + INITIAL_WFN SCF_WFN ! RT_RESTART + &END + &PRINT + &WFN_MIX + OVERWRITE_MOS .TRUE. + &UPDATE + ORIG_IS_VIRTUAL .TRUE. + ORIG_MO_INDEX 1 + ORIG_SPIN_INDEX ALPHA + ORIG_SCALE 0.999999 + RESULT_MO_INDEX 1 + RESULT_SPIN_INDEX ALPHA + RESULT_SCALE 0.0000001 + &END UPDATE + &END WFN_MIX + !&MO + ! COEFFICIENTS .TRUE. + ! OCCUPATION_NUMBERS .TRUE. + ! MO_INDEX_RANGE 1 5 + !&END MO + &MO_CUBES + NLUMO 1 + &END MO_CUBES + &END PRINT + &END DFT + &SUBSYS + &CELL + ABC 7 7 7 + PERIODIC NONE + &END CELL + &COORD + O 0.000000 0.000000 -0.065587 H2O + H 0.000000 -0.757136 0.520545 H2O + H 0.000000 0.757136 0.520545 H2O + &END COORD + &KIND H + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-MOLOPT-GTH + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.1 + &END +&END MOTION +!&EXT_RESTART +! RESTART_FILE_NAME H2O_rtp-1.restart +!&END + diff --git a/tests/QS/regtest-rtp-5/TEST_FILES b/tests/QS/regtest-rtp-5/TEST_FILES new file mode 100644 index 00000000000..c892ea03f48 --- /dev/null +++ b/tests/QS/regtest-rtp-5/TEST_FILES @@ -0,0 +1,45 @@ +# 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 +# +# Description: +# Delta pulse using density propagation method +# Note: For all of these tests setting DENSITY_PROPAGATION to .TRUE. should return the same results (if not decrease the treshold for RTP propagation or start to worry). +# +# 'simple molecule': Testing the different possibility to apply delta pulses +H2O-dens-pulse-1.inp 1 1e-13 -17.16754063268224 +H2O-dens-pulse-2.inp 1 1e-13 -17.17094395584866 +H2O-dens-pulse-3.inp 1 1e-13 -17.17097876693722 +H2O-dens-pulse-4.inp 1 1e-13 -17.17778821654724 +H2O-dens-pulse-5.inp 1 1e-13 -17.16699564870017 +# 'simple molecule': same test as previously, testing with UKS on +H2O-uks-dens-pulse-1.inp 1 1e-13 -17.16754063266203 +H2O-uks-dens-pulse-2.inp 1 1e-13 -17.17094396832539 +H2O-uks-dens-pulse-3.inp 1 1e-13 -17.17097877203030 +H2O-uks-dens-pulse-4.inp 1 1e-13 -17.17778822190720 +H2O-uks-dens-pulse-5.inp 1 1e-13 -17.16699568143762 +# 'simple molecule': same test as previously, charge +1 +H2O-charged-dens-pulse-1.inp 1 1e-13 -16.80277136764719 +H2O-charged-dens-pulse-2.inp 1 1e-13 -16.80344505896810 +H2O-charged-dens-pulse-3.inp 1 1e-13 -16.80402085317819 +H2O-charged-dens-pulse-4.inp 1 1e-13 -16.81031776489433 +H2O-charged-dens-pulse-5.inp 1 1e-13 -16.80215384578111 +# 'simple molecule': use wfn-mixing and MOM method to prepare a new initial state. Provide the same results as MO-based for strict treshold. +H2O-wfn-mix-dens-pulse-1.inp 1 1e-13 -16.80397942635466 +H2O-mom-dens-pulse-1.inp 1 1e-13 -16.77310344331094 +# Periodic system: try with molecule in PBC and smearing +H2O-periodic-dens-pulse-1.inp 1 1e-13 -17.17071488628162 +H2O-periodic-dens-pulse-2.inp 1 1e-13 -17.16724674275025 +si8-smearing-rtp-dens.inp 1 1e-11 -32.43821020054308 +si8-smearing-rtp-dens-pulse-1.inp 1 1e-11 -31.00911057449711 +# Restart using densitry propagation method from GS calculation. +# Note: A delta kick is required in the input but should not impact the calculation (delta kick + restart from wfn not implemented yet). +H2O-dens-restart.inp 1 1e-13 -17.17842704651846 +H2O-uks-dens-restart.inp 1 1e-13 -17.17842704651734 +H2O-charged-dens-restart.inp 1 1e-13 -16.81087707009416 +H2O-periodic-dens-restart.inp 1 1e-13 -17.17819965973394 +# Note: the total energy of si8-smearing-rtp-dens-restart.inp is different from si8-smearing-rtp-dens.inp because of the electronic entropy energy. Using restart, currently, the electronic entropy term is missing. +si8-smearing-rtp-dens-restart.inp 1 1e-11 -32.34109362687411 +#EOF diff --git a/tests/QS/regtest-rtp-5/si8-smearing-rtp-dens-pulse-1.inp b/tests/QS/regtest-rtp-5/si8-smearing-rtp-dens-pulse-1.inp new file mode 100644 index 00000000000..6d075eed389 --- /dev/null +++ b/tests/QS/regtest-rtp-5/si8-smearing-rtp-dens-pulse-1.inp @@ -0,0 +1,97 @@ +&GLOBAL + PROJECT si8-smearing-rtp-mo + PRINT_LEVEL MEDIUM + RUN_TYPE RT_PROPAGATION +&END GLOBAL +&FORCE_EVAL + METHOD QS + &PRINT + &FORCES ON + &END + &END + + &DFT + LSD + BASIS_SET_FILE_NAME GTH_BASIS_SETS + POTENTIAL_FILE_NAME GTH_POTENTIALS + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + PERIODIC .TRUE. + LEN_REP .FALSE. + COM_NL .FALSE. + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + MCWEENY_MAX_ITER 0 + EXP_ACCURACY 5.0E-7 + EPS_ITER 5.0E-7 + PROPAGATOR ETRS + INITIAL_WFN SCF_WFN + &END + &MGRID + NGRIDS 4 + CUTOFF 40 + &END MGRID + &QS + METHOD GPW + EXTRAPOLATION PS + EXTRAPOLATION_ORDER 2 + &END QS + &SCF + SCF_GUESS MOPAC + MAX_SCF 5 + EPS_SCF 1.0e-7 + EPS_DIIS 1.0e-7 + &OUTER_SCF OFF + EPS_SCF 1.0E-6 + MAX_SCF 1 + &END + &OT OFF + PRECONDITIONER FULL_ALL + ENERGY_GAP 0.001 + &END OT + &SMEAR + METHOD FERMI_DIRAC + ELECTRONIC_TEMPERATURE 5000. + &END + &MIXING + METHOD PULAY_MIXING + ALPHA 0.4 + BETA 1.0 + NPULAY 5 + PULAY_ALPHA 0.0 + &END + CHOLESKY OFF + ADDED_MOS 20 20 + &END SCF + &XC + &XC_FUNCTIONAL PBE + &END XC_FUNCTIONAL + &END XC + &END DFT + &SUBSYS + &CELL + A 5.42858871335 1.0 0.0 + B 0.0 5.42858871335 0.0 + C 0.00 0.00 5.42858871335 + &END CELL + &KIND Si + BASIS_SET DZVP-GTH + POTENTIAL GTH-PBE-q4 + &END + &TOPOLOGY + COORD_FILE_NAME ../sample_xyz/SI_8.xyz + COORDINATE XYZ + CONNECTIVITY OFF + &END TOPOLOGY + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.05 + &END +&END MOTION + diff --git a/tests/QS/regtest-rtp-5/si8-smearing-rtp-dens-restart.inp b/tests/QS/regtest-rtp-5/si8-smearing-rtp-dens-restart.inp new file mode 100644 index 00000000000..7b75a2fb418 --- /dev/null +++ b/tests/QS/regtest-rtp-5/si8-smearing-rtp-dens-restart.inp @@ -0,0 +1,95 @@ +&GLOBAL + PROJECT si8_smearing_dens + PRINT_LEVEL MEDIUM + RUN_TYPE RT_PROPAGATION +&END GLOBAL +&FORCE_EVAL + METHOD QS + &PRINT + &FORCES ON + &END + &END + &DFT + LSD + BASIS_SET_FILE_NAME GTH_BASIS_SETS + POTENTIAL_FILE_NAME GTH_POTENTIALS + RESTART_FILE_NAME si8_smearing_dens-RESTART.wfn + &REAL_TIME_PROPAGATION + APPLY_DELTA_PULSE + DELTA_PULSE_DIRECTION 1 0 0 + DELTA_PULSE_SCALE 0.1 + PERIODIC .TRUE. + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + MCWEENY_MAX_ITER 0 + EXP_ACCURACY 5.0E-7 + EPS_ITER 5.0E-7 + PROPAGATOR ETRS + INITIAL_WFN RESTART_WFN + &END + &MGRID + NGRIDS 4 + CUTOFF 40 + &END MGRID + &QS + METHOD GPW + EXTRAPOLATION PS + EXTRAPOLATION_ORDER 2 + &END QS + &SCF + SCF_GUESS MOPAC + MAX_SCF 5 + EPS_SCF 1.0e-7 + EPS_DIIS 1.0e-7 + &OUTER_SCF OFF + EPS_SCF 1.0E-6 + MAX_SCF 1 + &END + &OT OFF + PRECONDITIONER FULL_ALL + ENERGY_GAP 0.001 + &END OT + &SMEAR + METHOD FERMI_DIRAC + ELECTRONIC_TEMPERATURE 5000. + &END + &MIXING + METHOD PULAY_MIXING + ALPHA 0.4 + BETA 1.0 + NPULAY 5 + PULAY_ALPHA 0.0 + &END + CHOLESKY OFF + ADDED_MOS 20 20 + &END SCF + &XC + &XC_FUNCTIONAL PBE + &END XC_FUNCTIONAL + &END XC + &END DFT + &SUBSYS + &CELL + A 5.42858871335 1.0 0.0 + B 0.0 5.42858871335 0.0 + C 0.00 0.00 5.42858871335 + &END CELL + &KIND Si + BASIS_SET DZVP-GTH + POTENTIAL GTH-PBE-q4 + &END + &TOPOLOGY + COORD_FILE_NAME ../sample_xyz/SI_8.xyz + COORDINATE XYZ + CONNECTIVITY OFF + &END TOPOLOGY + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.05 + &END +&END MOTION + diff --git a/tests/QS/regtest-rtp-5/si8-smearing-rtp-dens.inp b/tests/QS/regtest-rtp-5/si8-smearing-rtp-dens.inp new file mode 100644 index 00000000000..b8f038cddfb --- /dev/null +++ b/tests/QS/regtest-rtp-5/si8-smearing-rtp-dens.inp @@ -0,0 +1,90 @@ +&GLOBAL + PROJECT si8_smearing_dens + PRINT_LEVEL MEDIUM + RUN_TYPE RT_PROPAGATION +&END GLOBAL +&FORCE_EVAL + METHOD QS + &PRINT + &FORCES ON + &END + &END + &DFT + LSD + BASIS_SET_FILE_NAME GTH_BASIS_SETS + POTENTIAL_FILE_NAME GTH_POTENTIALS + &REAL_TIME_PROPAGATION + MAX_ITER 50 + MAT_EXP TAYLOR + DENSITY_PROPAGATION .TRUE. + MCWEENY_MAX_ITER 0 + EXP_ACCURACY 5.0E-7 + EPS_ITER 5.0E-7 + PROPAGATOR ETRS + INITIAL_WFN SCF_WFN + &END + &MGRID + NGRIDS 4 + CUTOFF 40 + &END MGRID + &QS + METHOD GPW + EXTRAPOLATION PS + EXTRAPOLATION_ORDER 2 + &END QS + &SCF + SCF_GUESS MOPAC + MAX_SCF 5 + EPS_SCF 1.0e-7 + EPS_DIIS 1.0e-7 + &OUTER_SCF OFF + EPS_SCF 1.0E-6 + MAX_SCF 1 + &END + &OT OFF + PRECONDITIONER FULL_ALL + ENERGY_GAP 0.001 + &END OT + &SMEAR + METHOD FERMI_DIRAC + ELECTRONIC_TEMPERATURE 5000. + &END + &MIXING + METHOD PULAY_MIXING + ALPHA 0.4 + BETA 1.0 + NPULAY 5 + PULAY_ALPHA 0.0 + &END + CHOLESKY OFF + ADDED_MOS 20 20 + &END SCF + &XC + &XC_FUNCTIONAL PBE + &END XC_FUNCTIONAL + &END XC + &END DFT + &SUBSYS + &CELL + A 5.42858871335 1.0 0.0 + B 0.0 5.42858871335 0.0 + C 0.00 0.00 5.42858871335 + &END CELL + &KIND Si + BASIS_SET DZVP-GTH + POTENTIAL GTH-PBE-q4 + &END + &TOPOLOGY + COORD_FILE_NAME ../sample_xyz/SI_8.xyz + COORDINATE XYZ + CONNECTIVITY OFF + &END TOPOLOGY + &END SUBSYS +&END FORCE_EVAL +&MOTION + &MD + STEPS 2 + TIMESTEP [au_t] 0.05 + &END +&END MOTION + diff --git a/tests/TEST_DIRS b/tests/TEST_DIRS index d41b019392e..1920a7ab0d8 100644 --- a/tests/TEST_DIRS +++ b/tests/TEST_DIRS @@ -335,4 +335,5 @@ Fist/regtest-quip quip Fist/regtest-nequip libtorch Fist/regtest-16 QS/regtest-rtp-4 +QS/regtest-rtp-5 DFTB/regtest-vdw