1!--------------------------------------------------------------------------------------------------! 2! CP2K: A general program to perform molecular dynamics simulations ! 3! Copyright (C) 2000 - 2019 CP2K developers group ! 4!--------------------------------------------------------------------------------------------------! 5 6MODULE se_fock_matrix_dbg 7 USE dbcsr_api, ONLY: dbcsr_dot,& 8 dbcsr_p_type,& 9 dbcsr_set 10 USE kinds, ONLY: dp 11 USE qs_energy_types, ONLY: init_qs_energy,& 12 qs_energy_type 13 USE qs_environment_types, ONLY: qs_environment_type 14 USE se_fock_matrix_coulomb, ONLY: build_fock_matrix_coulomb_lr 15 USE semi_empirical_store_int_types, ONLY: semi_empirical_si_type 16#include "./base/base_uses.f90" 17 18 IMPLICIT NONE 19 PRIVATE 20 21 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'se_fock_matrix_dbg' 22 LOGICAL, PARAMETER, PRIVATE :: debug_this_module = .FALSE. 23 24 PUBLIC :: dbg_energy_coulomb_lr 25 26CONTAINS 27 28! ************************************************************************************************** 29!> \brief Debug routine for long-range energy (debug value of EWALD vs VALUE KS) 30!> \param energy ... 31!> \param ks_matrix ... 32!> \param nspins ... 33!> \param qs_env ... 34!> \param matrix_p ... 35!> \param calculate_forces ... 36!> \param store_int_env ... 37!> \author Teodoro Laino [tlaino] - 04.2009 38! ************************************************************************************************** 39 SUBROUTINE dbg_energy_coulomb_lr(energy, ks_matrix, nspins, qs_env, matrix_p, & 40 calculate_forces, store_int_env) 41 TYPE(qs_energy_type), POINTER :: energy 42 TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: ks_matrix 43 INTEGER, INTENT(IN) :: nspins 44 TYPE(qs_environment_type), POINTER :: qs_env 45 TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: matrix_p 46 LOGICAL, INTENT(IN) :: calculate_forces 47 TYPE(semi_empirical_si_type), POINTER :: store_int_env 48 49 CHARACTER(len=*), PARAMETER :: routineN = 'dbg_energy_coulomb_lr', & 50 routineP = moduleN//':'//routineN 51 52 INTEGER :: ispin 53 REAL(KIND=dp) :: ecoul 54 55! Zero structures only for debugging purpose 56 57 CALL init_qs_energy(energy) 58 DO ispin = 1, nspins 59 CALL dbcsr_set(ks_matrix(ispin)%matrix, 0.0_dp) 60 END DO 61 62 ! Evaluate Coulomb Long-Range 63 CALL build_fock_matrix_coulomb_lr(qs_env, ks_matrix, matrix_p, energy, calculate_forces, & 64 store_int_env) 65 66 ! Compute the Hartree energy 67 DO ispin = 1, nspins 68 CALL dbcsr_dot(ks_matrix(ispin)%matrix, matrix_p(ispin)%matrix, ecoul) 69 energy%hartree = energy%hartree + ecoul 70 71 WRITE (*, *) ispin, "ECOUL ", ecoul 72 END DO 73 WRITE (*, *) "ENUC in DBG:", energy%core_overlap 74 75 ! Debug statements 76 WRITE (*, *) "TOTAL ENE", 0.5_dp*energy%hartree + energy%core_overlap 77 CPABORT("Debug energy for Coulomb Long-Range") 78 79 END SUBROUTINE dbg_energy_coulomb_lr 80 81END MODULE se_fock_matrix_dbg 82