diff --git a/src/response_solver.F b/src/response_solver.F index 81c2f71138..b52dfc8e2a 100644 --- a/src/response_solver.F +++ b/src/response_solver.F @@ -36,7 +36,6 @@ MODULE response_solver cp_fm_struct_release,& cp_fm_struct_type USE cp_fm_types, ONLY: cp_fm_create,& - cp_fm_get_info,& cp_fm_init_random,& cp_fm_release,& cp_fm_set_all,& @@ -179,14 +178,14 @@ CONTAINS CHARACTER(LEN=*), PARAMETER :: routineN = 'response_calculation' INTEGER :: handle, homo, ispin, nao, nao_aux, nmo, & - nspins, solver_method, unit_nr + nocc, nspins, solver_method, unit_nr LOGICAL :: should_stop REAL(KIND=dp) :: focc TYPE(admm_type), POINTER :: admm_env TYPE(cp_blacs_env_type), POINTER :: blacs_env TYPE(cp_fm_struct_type), POINTER :: fm_struct TYPE(cp_fm_type) :: sv - TYPE(cp_fm_type), ALLOCATABLE, DIMENSION(:) :: cpmos + TYPE(cp_fm_type), ALLOCATABLE, DIMENSION(:) :: cpmos, mo_occ TYPE(cp_fm_type), POINTER :: mo_coeff TYPE(cp_logger_type), POINTER :: logger TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: matrix_s, matrix_s_aux, rho_ao @@ -347,23 +346,31 @@ CONTAINS ! Sign is changed in linres_solver! ! Projector Q applied in linres_solver! CALL get_qs_env(qs_env, mos=mos) - ALLOCATE (cpmos(nspins)) + ALLOCATE (cpmos(nspins), mo_occ(nspins)) DO ispin = 1, nspins - CALL get_mo_set(mo_set=mos(ispin), mo_coeff=mo_coeff) - CALL cp_fm_get_info(mo_coeff, matrix_struct=fm_struct) + CALL get_mo_set(mo_set=mos(ispin), mo_coeff=mo_coeff, homo=nocc) + NULLIFY (fm_struct) + CALL cp_fm_struct_create(fm_struct, ncol_global=nocc, & + template_fmstruct=mo_coeff%matrix_struct) CALL cp_fm_create(cpmos(ispin), fm_struct) CALL cp_fm_set_all(cpmos(ispin), 0.0_dp) + CALL cp_fm_create(mo_occ(ispin), fm_struct) + CALL cp_fm_to_fm(mo_coeff, mo_occ(ispin), nocc) + CALL cp_fm_struct_release(fm_struct) END DO focc = 2.0_dp IF (nspins == 1) focc = 4.0_dp DO ispin = 1, nspins - CALL get_mo_set(mo_set=mos(ispin), mo_coeff=mo_coeff, nmo=nmo) - CALL cp_fm_set_all(cpmos(ispin), 0.0_dp) - CALL cp_dbcsr_sm_fm_multiply(ec_env%matrix_hz(ispin)%matrix, mo_coeff, & - cpmos(ispin), nmo, & + CALL get_mo_set(mo_set=mos(ispin), mo_coeff=mo_coeff, homo=nocc) + CALL cp_dbcsr_sm_fm_multiply(ec_env%matrix_hz(ispin)%matrix, mo_occ(ispin), & + cpmos(ispin), nocc, & alpha=focc, beta=0.0_dp) END DO + DO ispin = 1, nspins + CALL cp_fm_release(mo_occ(ispin)) + END DO + DEALLOCATE (mo_occ) CALL response_equation_new(qs_env, p_env, cpmos, unit_nr) diff --git a/tests/QS/regtest-debug-6/TEST_FILES b/tests/QS/regtest-debug-6/TEST_FILES index b13b8f839b..0484e5ede2 100644 --- a/tests/QS/regtest-debug-6/TEST_FILES +++ b/tests/QS/regtest-debug-6/TEST_FILES @@ -12,10 +12,14 @@ h2o_dip42.inp 0 h2o_dip43.inp 0 ch2o_dip44.inp 0 ch2o_dip45.inp 0 +ch2o_dip46.inp 0 +ch2o_dip47.inp 0 h2o_xc_dip40.inp 0 h2o_xc_dip41.inp 0 h2o_xc_dip42.inp 0 h2o_xc_dip43.inp 0 ch2o_xc_dip44.inp 0 ch2o_xc_dip45.inp 0 +ch2o_xc_dip46.inp 0 +ch2o_xc_dip47.inp 0 #EOF diff --git a/tests/QS/regtest-debug-6/ch2o_dip46.inp b/tests/QS/regtest-debug-6/ch2o_dip46.inp new file mode 100644 index 0000000000..b3af16713c --- /dev/null +++ b/tests/QS/regtest-debug-6/ch2o_dip46.inp @@ -0,0 +1,100 @@ +&FORCE_EVAL + METHOD Quickstep + &PROPERTIES + &TDDFPT + KERNEL FULL + NSTATES 1 + MAX_ITER 50 + CONVERGENCE [eV] 1.0e-7 + &END TDDFPT + &END PROPERTIES + &DFT + BASIS_SET_FILE_NAME BASIS_SET + POTENTIAL_FILE_NAME GTH_POTENTIALS + &MGRID + CUTOFF 250 + &END MGRID + &QS + METHOD GAPW + EPS_DEFAULT 1.E-14 + &END QS + &EFIELD + &END + &EXCITED_STATES T + STATE 1 + DEBUG_FORCES T + &END EXCITED_STATES + &SCF + SCF_GUESS ATOMIC + &OT + PRECONDITIONER FULL_SINGLE_INVERSE + MINIMIZER DIIS + STEPSIZE 0.1 + &END + &OUTER_SCF + MAX_SCF 20 + EPS_SCF 1.0E-7 + &END + MAX_SCF 20 + EPS_SCF 1.0E-7 + &END SCF + &XC + &XC_FUNCTIONAL PBE0 + &END XC_FUNCTIONAL + &END XC + &PRINT + &MOMENTS ON + PERIODIC .FALSE. + REFERENCE COM + &END + &END + &POISSON + PERIODIC NONE + POISSON_SOLVER MT + &END + &END DFT + &SUBSYS + &CELL + ABC [angstrom] 4.0 4.0 4.0 + PERIODIC NONE + &END + &COORD + O 0.000000 0.000000 0.895642 + C 0.000000 0.000000 -0.307326 + H 0.000000 0.947608 -0.895642 + H 0.000000 -0.947608 -0.895562 + &END COORD + &TOPOLOGY + &CENTER_COORDINATES + &END + &END + &KIND H + BASIS_SET DZVP-GTH-PADE + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND C + BASIS_SET DZVP-GTH-PADE + POTENTIAL GTH-PADE-q4 + &END KIND + &KIND O + BASIS_SET DZVP-GTH-PADE + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + PRINT_LEVEL LOW + PROJECT td_dipole + RUN_TYPE DEBUG +&END GLOBAL + +&DEBUG + DEBUG_FORCES .FALSE. + DEBUG_STRESS_TENSOR .FALSE. + DEBUG_DIPOLE .TRUE. + CHECK_DIPOLE_DIRS Z + DEBUG_POLARIZABILITY .FALSE. + DE 0.001 +&END + + diff --git a/tests/QS/regtest-debug-6/ch2o_dip47.inp b/tests/QS/regtest-debug-6/ch2o_dip47.inp new file mode 100644 index 0000000000..f505c7197a --- /dev/null +++ b/tests/QS/regtest-debug-6/ch2o_dip47.inp @@ -0,0 +1,101 @@ +&FORCE_EVAL + METHOD Quickstep + &PROPERTIES + &TDDFPT + KERNEL FULL + ADMM_KERNEL_CORRECTION_SYMMETRIC + NSTATES 1 + MAX_ITER 50 + CONVERGENCE [eV] 1.0e-7 + &END TDDFPT + &END PROPERTIES + &DFT + BASIS_SET_FILE_NAME BASIS_SET + BASIS_SET_FILE_NAME BASIS_ADMM + POTENTIAL_FILE_NAME GTH_POTENTIALS + &MGRID + CUTOFF 200 + &END MGRID + &QS + METHOD GAPW + &END QS + &AUXILIARY_DENSITY_MATRIX_METHOD + ADMM_PURIFICATION_METHOD NONE + EXCH_CORRECTION_FUNC NONE + EXCH_SCALING_MODEL NONE + METHOD BASIS_PROJECTION + &END + &EFIELD + &END + &EXCITED_STATES T + STATE 1 + &END EXCITED_STATES + &SCF + SCF_GUESS ATOMIC + &OT + PRECONDITIONER FULL_SINGLE_INVERSE + MINIMIZER DIIS + &END + &OUTER_SCF + MAX_SCF 10 + EPS_SCF 1.0E-6 + &END + MAX_SCF 10 + EPS_SCF 1.0E-6 + &END SCF + &XC + &XC_FUNCTIONAL PBE0 + &END XC_FUNCTIONAL + &END XC + &PRINT + &MOMENTS ON + PERIODIC .FALSE. + REFERENCE COM + &END + &END + &POISSON + PERIODIC NONE + POISSON_SOLVER MT + &END + &END DFT + &SUBSYS + &CELL + ABC [angstrom] 4.0 4.0 4.0 + PERIODIC NONE + &END + &COORD + O 0.000000 0.000000 -0.065587 + H 0.000000 -0.757136 0.520545 + H 0.000000 0.757136 0.520545 + &END COORD + &TOPOLOGY + &CENTER_COORDINATES + &END + &END + &KIND H + BASIS_SET DZVP-GTH-PADE + BASIS_SET AUX_FIT FIT3 + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-GTH-PADE + BASIS_SET AUX_FIT FIT3 + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + PRINT_LEVEL LOW + PROJECT td_dipole + RUN_TYPE DEBUG +&END GLOBAL + +&DEBUG + DEBUG_FORCES .FALSE. + DEBUG_STRESS_TENSOR .FALSE. + DEBUG_DIPOLE .TRUE. + CHECK_DIPOLE_DIRS Z + DEBUG_POLARIZABILITY .FALSE. + DE 0.001 +&END + diff --git a/tests/QS/regtest-debug-6/ch2o_xc_dip46.inp b/tests/QS/regtest-debug-6/ch2o_xc_dip46.inp new file mode 100644 index 0000000000..7ac1c96b23 --- /dev/null +++ b/tests/QS/regtest-debug-6/ch2o_xc_dip46.inp @@ -0,0 +1,100 @@ +&FORCE_EVAL + METHOD Quickstep + &PROPERTIES + &TDDFPT + KERNEL FULL + NSTATES 1 + MAX_ITER 50 + CONVERGENCE [eV] 1.0e-7 + &END TDDFPT + &END PROPERTIES + &DFT + BASIS_SET_FILE_NAME BASIS_SET + POTENTIAL_FILE_NAME GTH_POTENTIALS + &MGRID + CUTOFF 250 + &END MGRID + &QS + METHOD GAPW_XC + EPS_DEFAULT 1.E-14 + &END QS + &EFIELD + &END + &EXCITED_STATES T + STATE 1 + DEBUG_FORCES T + &END EXCITED_STATES + &SCF + SCF_GUESS ATOMIC + &OT + PRECONDITIONER FULL_SINGLE_INVERSE + MINIMIZER DIIS + STEPSIZE 0.1 + &END + &OUTER_SCF + MAX_SCF 20 + EPS_SCF 1.0E-7 + &END + MAX_SCF 20 + EPS_SCF 1.0E-7 + &END SCF + &XC + &XC_FUNCTIONAL PBE0 + &END XC_FUNCTIONAL + &END XC + &PRINT + &MOMENTS ON + PERIODIC .FALSE. + REFERENCE COM + &END + &END + &POISSON + PERIODIC NONE + POISSON_SOLVER MT + &END + &END DFT + &SUBSYS + &CELL + ABC [angstrom] 4.0 4.0 4.0 + PERIODIC NONE + &END + &COORD + O 0.000000 0.000000 0.895642 + C 0.000000 0.000000 -0.307326 + H 0.000000 0.947608 -0.895642 + H 0.000000 -0.947608 -0.895562 + &END COORD + &TOPOLOGY + &CENTER_COORDINATES + &END + &END + &KIND H + BASIS_SET DZVP-GTH-PADE + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND C + BASIS_SET DZVP-GTH-PADE + POTENTIAL GTH-PADE-q4 + &END KIND + &KIND O + BASIS_SET DZVP-GTH-PADE + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + PRINT_LEVEL LOW + PROJECT td_dipole + RUN_TYPE DEBUG +&END GLOBAL + +&DEBUG + DEBUG_FORCES .FALSE. + DEBUG_STRESS_TENSOR .FALSE. + DEBUG_DIPOLE .TRUE. + CHECK_DIPOLE_DIRS Z + DEBUG_POLARIZABILITY .FALSE. + DE 0.001 +&END + + diff --git a/tests/QS/regtest-debug-6/ch2o_xc_dip47.inp b/tests/QS/regtest-debug-6/ch2o_xc_dip47.inp new file mode 100644 index 0000000000..c01771b51b --- /dev/null +++ b/tests/QS/regtest-debug-6/ch2o_xc_dip47.inp @@ -0,0 +1,101 @@ +&FORCE_EVAL + METHOD Quickstep + &PROPERTIES + &TDDFPT + KERNEL FULL + ADMM_KERNEL_CORRECTION_SYMMETRIC + NSTATES 1 + MAX_ITER 50 + CONVERGENCE [eV] 1.0e-7 + &END TDDFPT + &END PROPERTIES + &DFT + BASIS_SET_FILE_NAME BASIS_SET + BASIS_SET_FILE_NAME BASIS_ADMM + POTENTIAL_FILE_NAME GTH_POTENTIALS + &MGRID + CUTOFF 200 + &END MGRID + &QS + METHOD GAPW_XC + &END QS + &AUXILIARY_DENSITY_MATRIX_METHOD + ADMM_PURIFICATION_METHOD NONE + EXCH_CORRECTION_FUNC NONE + EXCH_SCALING_MODEL NONE + METHOD BASIS_PROJECTION + &END + &EFIELD + &END + &EXCITED_STATES T + STATE 1 + &END EXCITED_STATES + &SCF + SCF_GUESS ATOMIC + &OT + PRECONDITIONER FULL_SINGLE_INVERSE + MINIMIZER DIIS + &END + &OUTER_SCF + MAX_SCF 10 + EPS_SCF 1.0E-6 + &END + MAX_SCF 10 + EPS_SCF 1.0E-6 + &END SCF + &XC + &XC_FUNCTIONAL PBE0 + &END XC_FUNCTIONAL + &END XC + &PRINT + &MOMENTS ON + PERIODIC .FALSE. + REFERENCE COM + &END + &END + &POISSON + PERIODIC NONE + POISSON_SOLVER MT + &END + &END DFT + &SUBSYS + &CELL + ABC [angstrom] 4.0 4.0 4.0 + PERIODIC NONE + &END + &COORD + O 0.000000 0.000000 -0.065587 + H 0.000000 -0.757136 0.520545 + H 0.000000 0.757136 0.520545 + &END COORD + &TOPOLOGY + &CENTER_COORDINATES + &END + &END + &KIND H + BASIS_SET DZVP-GTH-PADE + BASIS_SET AUX_FIT FIT3 + POTENTIAL GTH-PADE-q1 + &END KIND + &KIND O + BASIS_SET DZVP-GTH-PADE + BASIS_SET AUX_FIT FIT3 + POTENTIAL GTH-PADE-q6 + &END KIND + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + PRINT_LEVEL LOW + PROJECT td_dipole + RUN_TYPE DEBUG +&END GLOBAL + +&DEBUG + DEBUG_FORCES .FALSE. + DEBUG_STRESS_TENSOR .FALSE. + DEBUG_DIPOLE .TRUE. + CHECK_DIPOLE_DIRS Z + DEBUG_POLARIZABILITY .FALSE. + DE 0.001 +&END +