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)) &
110 DEALLOCATE (ex_env%gw_eigen)
125 IF (
ASSOCIATED(ex_env))
THEN
127 NULLIFY (ex_env%matrix_ks)
129 NULLIFY (ex_env%matrix_pe)
131 NULLIFY (ex_env%matrix_hz)
133 NULLIFY (ex_env%matrix_pe_admm)
135 NULLIFY (ex_env%matrix_px1)
137 NULLIFY (ex_env%matrix_px1_admm)
139 NULLIFY (ex_env%matrix_px1_asymm)
141 NULLIFY (ex_env%matrix_px1_admm_asymm)
143 NULLIFY (ex_env%matrix_wx1)
157 IF (
ASSOCIATED(ex_env))
THEN
158 IF (
ASSOCIATED(ex_env%vh_rspace%pw_grid))
THEN
159 CALL ex_env%vh_rspace%release()
161 IF (
ASSOCIATED(ex_env%vxc_rspace))
THEN
162 DO iab = 1,
SIZE(ex_env%vxc_rspace)
163 CALL ex_env%vxc_rspace(iab)%release()
165 DEALLOCATE (ex_env%vxc_rspace)
166 NULLIFY (ex_env%vxc_rspace)
168 IF (
ASSOCIATED(ex_env%vtau_rspace))
THEN
169 DO iab = 1,
SIZE(ex_env%vtau_rspace)
170 CALL ex_env%vtau_rspace(iab)%release()
172 DEALLOCATE (ex_env%vtau_rspace)
173 NULLIFY (ex_env%vtau_rspace)
175 IF (
ASSOCIATED(ex_env%vadmm_rspace))
THEN
176 DO iab = 1,
SIZE(ex_env%vadmm_rspace)
177 CALL ex_env%vadmm_rspace(iab)%release()
179 DEALLOCATE (ex_env%vadmm_rspace)
180 NULLIFY (ex_env%vadmm_rspace)
182 IF (
ASSOCIATED(ex_env%vadmm_tau_rspace))
THEN
183 DO iab = 1,
SIZE(ex_env%vadmm_tau_rspace)
184 CALL ex_env%vadmm_tau_rspace(iab)%release()
186 DEALLOCATE (ex_env%vadmm_tau_rspace)
187 NULLIFY (ex_env%vadmm_tau_rspace)
189 IF (
ASSOCIATED(ex_env%local_rho_set))
THEN
191 NULLIFY (ex_env%local_rho_set)
193 IF (
ASSOCIATED(ex_env%local_rho_set_admm))
THEN
195 NULLIFY (ex_env%local_rho_set_admm)
212 LOGICAL,
INTENT(IN) :: excited_state
215 cpassert(.NOT.
ASSOCIATED(ex_env))
217 ex_env%evalue = 0.0_dp
218 NULLIFY (ex_env%evect)
219 NULLIFY (ex_env%cpmos)
220 NULLIFY (ex_env%bse_w_matrix_MO)
221 NULLIFY (ex_env%bse_a_matrix_MO)
222 IF (excited_state)
THEN
225 i_val=ex_env%xc_kernel_method)
227 l_val=ex_env%debug_forces)
229 r_val=ex_env%eps_delta_rho)
231 i_val=ex_env%diff_order)
236 ex_env%wfn_history%evalue = 0.0_dp
237 ex_env%wfn_history%state = ex_env%state
238 ex_env%wfn_history%xsval = 1.0_dp
239 ex_env%wfn_history%gsval = 1.0_dp
240 ex_env%wfn_history%gsmin = 1.0_dp
241 NULLIFY (ex_env%wfn_history%cpmos)
242 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.