46 INTEGER :: bse_spin_config = 0, &
47 bse_diag_method = 0, &
51 num_print_exc_descr = 0, &
52 screening_method = 0, &
53 num_buffer_states = 0, &
55 num_guess_transitions = 0, &
56 max_subspace_factor = 0, &
57 matvec_block_columns = -1, &
59 convergence_criterion = 0, &
62 REAL(kind=
dp) :: eps_res = 0.0_dp, &
63 memory_per_proc_gb = -1.0_dp, &
64 eps_energy = 0.0_dp, &
66 screening_factor = 0.0_dp, &
67 bse_cutoff_occ = 0.0_dp, &
68 bse_cutoff_empty = 0.0_dp
69 LOGICAL :: do_bse = .false., &
70 bse_debug_print = .false., &
71 print_directional_exc_descr = .false., &
72 print_directional_crosscorrelation = .false., &
73 use_ks_energies = .false.
75 REAL(kind=
dp) :: bse_spectrum_freq_step_size = 0.0_dp, &
76 bse_spectrum_freq_start = 0.0_dp, &
77 bse_spectrum_freq_end = 0.0_dp
78 LOGICAL :: bse_print_spectrum = .false.
79 REAL(kind=
dp),
DIMENSION(:),
POINTER :: bse_eta_spectrum_list => null()
82 LOGICAL :: do_nto_analysis = .false., &
83 explicit_nto_list = .false.
84 REAL(kind=
dp) :: eps_nto_eigval = 0.0_dp, &
85 eps_nto_osc_str = 0.0_dp
86 INTEGER :: num_print_exc_ntos = 0
87 INTEGER,
DIMENSION(:),
POINTER :: bse_nto_state_list => null()
88 INTEGER,
DIMENSION(:),
ALLOCATABLE :: bse_nto_state_list_final
91 LOGICAL :: do_tda = .false., &
93 do_fulldiag = .false., &
95 INTEGER :: nspins = 0, &
102 INTEGER,
DIMENSION(:),
ALLOCATABLE :: homo_red, virt_red, homo_full, &
105 REAL(kind=
dp),
DIMENSION(:, :),
ALLOCATABLE :: eigenval_dft, eigenval_qp
107 TYPE(
cp_fm_type),
DIMENSION(:),
ALLOCATABLE :: fm_s_ia, fm_s_ij, fm_s_ab, &
108 fm_s_bar_ia, fm_s_bar_ij
112 TYPE(
dbcsr_p_type),
DIMENSION(:),
POINTER :: matrix_dipole_ao => null(), &
113 matrix_quadpole_ao => null()
114 REAL(kind=
dp),
DIMENSION(3) :: multipole_ref_point = 0.0_dp
116 INTEGER :: n_periodic_poisson = 0
146 IF (
ALLOCATED(bse_env%homo_red))
DEALLOCATE (bse_env%homo_red)
147 IF (
ALLOCATED(bse_env%virt_red))
DEALLOCATE (bse_env%virt_red)
148 IF (
ALLOCATED(bse_env%homo_full))
DEALLOCATE (bse_env%homo_full)
149 IF (
ALLOCATED(bse_env%gw_corr_lev_virt))
DEALLOCATE (bse_env%gw_corr_lev_virt)
150 IF (
ALLOCATED(bse_env%eigenval_dft))
DEALLOCATE (bse_env%eigenval_dft)
151 IF (
ALLOCATED(bse_env%eigenval_qp))
DEALLOCATE (bse_env%eigenval_qp)
152 IF (
ALLOCATED(bse_env%bse_nto_state_list_final))
DEALLOCATE (bse_env%bse_nto_state_list_final)
153 NULLIFY (bse_env%para_env, bse_env%subsys, bse_env%pw_env, bse_env%dft_control, bse_env%mos, &