26#include "./base/base_uses.f90"
32 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'exstates_types'
42 REAL(kind=
dp) :: evalue = 0.0_dp
43 TYPE(
cp_fm_type),
POINTER,
DIMENSION(:) :: evect => null()
44 TYPE(
cp_fm_type),
POINTER,
DIMENSION(:) :: cpmos => null()
45 REAL(kind=
dp) :: xsval = 0.0_dp, gsval = 0.0_dp, gsmin = 0.0_dp
56 REAL(kind=
dp) :: evalue = 0.0_dp
57 INTEGER :: xc_kernel_method = -1
58 REAL(kind=
dp) :: eps_delta_rho = 1.e-02_dp
59 INTEGER :: diff_order = -1
60 LOGICAL :: debug_forces = .false.
61 TYPE(
cp_fm_type),
POINTER,
DIMENSION(:) :: evect => null()
62 TYPE(
cp_fm_type),
POINTER,
DIMENSION(:) :: cpmos => null()
65 TYPE(
dbcsr_p_type),
DIMENSION(:),
POINTER :: matrix_pe_admm => null()
67 TYPE(
dbcsr_p_type),
DIMENSION(:),
POINTER :: matrix_px1_admm => null()
68 TYPE(
dbcsr_p_type),
DIMENSION(:),
POINTER :: matrix_px1_asymm => null()
69 TYPE(
dbcsr_p_type),
DIMENSION(:),
POINTER :: matrix_px1_admm_asymm => null()
79 TYPE(
cp_fm_type),
POINTER,
DIMENSION(:, :) :: bse_w_matrix_mo => null()
80 TYPE(
cp_fm_type),
POINTER,
DIMENSION(:, :) :: bse_a_matrix_mo => null()
81 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:) :: gw_eigen
94 IF (
ASSOCIATED(ex_env))
THEN
109 IF (
ALLOCATED(ex_env%gw_eigen))
THEN
110 DEALLOCATE (ex_env%gw_eigen)
126 IF (
ASSOCIATED(ex_env))
THEN
128 NULLIFY (ex_env%matrix_ks)
130 NULLIFY (ex_env%matrix_pe)
132 NULLIFY (ex_env%matrix_hz)
134 NULLIFY (ex_env%matrix_pe_admm)
136 NULLIFY (ex_env%matrix_px1)
138 NULLIFY (ex_env%matrix_px1_admm)
140 NULLIFY (ex_env%matrix_px1_asymm)
142 NULLIFY (ex_env%matrix_px1_admm_asymm)
144 NULLIFY (ex_env%matrix_wx1)
158 IF (
ASSOCIATED(ex_env))
THEN
159 IF (
ASSOCIATED(ex_env%vh_rspace%pw_grid))
THEN
160 CALL ex_env%vh_rspace%release()
162 IF (
ASSOCIATED(ex_env%vxc_rspace))
THEN
163 DO iab = 1,
SIZE(ex_env%vxc_rspace)
164 CALL ex_env%vxc_rspace(iab)%release()
166 DEALLOCATE (ex_env%vxc_rspace)
167 NULLIFY (ex_env%vxc_rspace)
169 IF (
ASSOCIATED(ex_env%vtau_rspace))
THEN
170 DO iab = 1,
SIZE(ex_env%vtau_rspace)
171 CALL ex_env%vtau_rspace(iab)%release()
173 DEALLOCATE (ex_env%vtau_rspace)
174 NULLIFY (ex_env%vtau_rspace)
176 IF (
ASSOCIATED(ex_env%vadmm_rspace))
THEN
177 DO iab = 1,
SIZE(ex_env%vadmm_rspace)
178 CALL ex_env%vadmm_rspace(iab)%release()
180 DEALLOCATE (ex_env%vadmm_rspace)
181 NULLIFY (ex_env%vadmm_rspace)
183 IF (
ASSOCIATED(ex_env%vadmm_tau_rspace))
THEN
184 DO iab = 1,
SIZE(ex_env%vadmm_tau_rspace)
185 CALL ex_env%vadmm_tau_rspace(iab)%release()
187 DEALLOCATE (ex_env%vadmm_tau_rspace)
188 NULLIFY (ex_env%vadmm_tau_rspace)
190 IF (
ASSOCIATED(ex_env%local_rho_set))
THEN
192 NULLIFY (ex_env%local_rho_set)
194 IF (
ASSOCIATED(ex_env%local_rho_set_admm))
THEN
196 NULLIFY (ex_env%local_rho_set_admm)
213 LOGICAL,
INTENT(IN) :: excited_state
216 cpassert(.NOT.
ASSOCIATED(ex_env))
218 ex_env%evalue = 0.0_dp
219 NULLIFY (ex_env%evect)
220 NULLIFY (ex_env%cpmos)
221 NULLIFY (ex_env%bse_w_matrix_MO)
222 NULLIFY (ex_env%bse_a_matrix_MO)
223 IF (excited_state)
THEN
226 i_val=ex_env%xc_kernel_method)
228 l_val=ex_env%debug_forces)
230 r_val=ex_env%eps_delta_rho)
232 i_val=ex_env%diff_order)
237 ex_env%wfn_history%evalue = 0.0_dp
238 ex_env%wfn_history%state = ex_env%state
239 ex_env%wfn_history%xsval = 1.0_dp
240 ex_env%wfn_history%gsval = 1.0_dp
241 ex_env%wfn_history%gsmin = 1.0_dp
242 NULLIFY (ex_env%wfn_history%cpmos)
243 NULLIFY (ex_env%wfn_history%evect)
DBCSR operations in CP2K.
represent a full matrix distributed on many processors
Types for excited states potential energies.
subroutine, public exstate_create(ex_env, excited_state, dft_section)
Allocates and intitializes exstate_env.
subroutine, public exstate_release(ex_env)
...
subroutine, public exstate_matrix_release(ex_env)
...
subroutine, public exstate_potential_release(ex_env)
...
Defines the basic variable types.
integer, parameter, public dp
subroutine, public local_rho_set_release(local_rho_set)
...
Contains information on the excited states energy.