(git:97501a3)
Loading...
Searching...
No Matches
qs_environment_types.F
Go to the documentation of this file.
1!--------------------------------------------------------------------------------------------------!
2! CP2K: A general program to perform molecular dynamics simulations !
3! Copyright 2000-2025 CP2K developers group <https://cp2k.org> !
4! !
5! SPDX-License-Identifier: GPL-2.0-or-later !
6!--------------------------------------------------------------------------------------------------!
7
8! **************************************************************************************************
9!> \par History
10!> - mo_set_p_type added to qs_env (23.04.02,MK)
11!> - qs_force_type added to qs_env (05.06.02,MK)
12!> \author MK (23.01.2002)
13! **************************************************************************************************
15 USE admm_types, ONLY: admm_env_release,&
20 USE atprop_types, ONLY: atprop_type
21 USE cell_types, ONLY: cell_release,&
33 USE cp_fm_types, ONLY: cp_fm_release,&
41 USE ec_env_types, ONLY: ec_env_release,&
60 USE hfx_types, ONLY: hfx_release,&
69 USE kinds, ONLY: dp
70 USE kpoint_types, ONLY: kpoint_type
78 USE mp2_types, ONLY: mp2_env_release,&
85 USE pw_env_types, ONLY: pw_env_type
86 USE pw_types, ONLY: pw_c1d_gs_type,&
99 USE qs_gcp_types, ONLY: qs_gcp_release,&
103 USE qs_kind_types, ONLY: qs_kind_type
106 USE qs_ks_types, ONLY: get_ks_env,&
119 rhoz_type,&
124 USE qs_mo_types, ONLY: deallocate_mo_set,&
131 USE qs_rho0_types, ONLY: rho0_atom_type,&
134 USE qs_rho_types, ONLY: qs_rho_p_type,&
137 USE qs_scf_types, ONLY: qs_scf_env_type,&
139 USE qs_subsys_types, ONLY: qs_subsys_set,&
161 USE virial_types, ONLY: virial_type
163 USE xas_env_types, ONLY: xas_env_release,&
165#include "./base/base_uses.f90"
166
167 IMPLICIT NONE
168
169 PRIVATE
170
171 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'qs_environment_types'
172
173! *** Public data types ***
174
175 PUBLIC :: qs_environment_type
176
177! *** Public subroutines ***
178
179 PUBLIC :: get_qs_env, &
184
185! **************************************************************************************************
186!> \param local_rho_set contains the atomic, compensations and core densities
187!> and the local parts of the xc terms
188!> \param hartree_local contains the 1, 2 and 3 centers coulomb terms
189!> \param requires_mo_derivs logical, true if dE/dC is required (e.g. OT)
190!> \param has_unit_metric logical, true if the S matrix is considered unity for the SCF
191!> \param mo_derivs the actual derivatives of the total energy wrt to MO coeffs (divided by 2*f_i)
192!> \param xas_env temporary information for xas calculation
193!> \param dftb_potential pair potentials for use with DFTB
194!> \param dispersion_env environment for use with QS dispersion
195!>
196!> compatibility get (things that you should get from the subsys):
197!> \param atomic_kind_set array with infos about the species (atomic_kinds)
198!> present in the system
199!> \param particle_set info on the atoms you simulate, pos,...
200!> \param local_particles which particles ar local to this processor
201!> new:
202!> \param local_molecules which molecules are local to this processor
203!> \param molecule_kind_set description of the molecule kinds
204!> \param molecule_set all the molecule description
205!> \param rtp all data needed for real time propagation
206!> \param x contains data used in Hartree-Fock-Exchange calculations
207!> \param task_list the list of tasks used in collocate and integrate
208!> \param task_list_soft the list of tasks used in collocate and integrate in case of soft basis functions
209!> \param mo_loc_history if a history of localized wfn is kept, they are stored here.
210!> \param molecular_scf_guess_env contains inforamation about and results of claculations
211!> on separate molecules
212!> \par History
213!> 11.2002 added doc and attribute description [fawzi]
214!> 08.2004 renamed some of the very short names (s,c,k,h) for easier grepping
215!> 06.2018 polar_env added (MK)
216!> \author Matthias Krack & fawzi
217! **************************************************************************************************
218
220 LOGICAL :: qmmm = .false., qmmm_periodic = .false.
221 LOGICAL :: requires_mo_derivs = .false.
222 LOGICAL :: requires_matrix_vxc = .false.
223 LOGICAL :: has_unit_metric = .false.
224 LOGICAL :: run_rtp = .false.
225 LOGICAL :: linres_run = .false.
226 LOGICAL :: calc_image_preconditioner = .false.
227 LOGICAL :: do_transport = .false.
228 LOGICAL :: single_point_run = .false.
229 LOGICAL :: given_embed_pot = .false.
230 LOGICAL :: energy_correction = .false.
231 LOGICAL :: harris_method = .false.
232 LOGICAL :: do_rixs = .false.
233 REAL(kind=dp) :: sim_time = -1.0_dp
234 REAL(kind=dp) :: start_time = -1.0_dp, target_time = -1.0_dp
235 REAL(kind=dp), DIMENSION(:, :), POINTER :: image_matrix => null()
236 REAL(kind=dp), DIMENSION(:), POINTER :: image_coeff => null()
237 INTEGER, DIMENSION(:), POINTER :: ipiv => null()
238 INTEGER :: sim_step = -1
239 TYPE(ls_scf_env_type), POINTER :: ls_scf_env => null()
240 TYPE(almo_scf_env_type), POINTER :: almo_scf_env => null()
241 TYPE(transport_env_type), POINTER :: transport_env => null()
242 TYPE(cell_type), POINTER :: super_cell => null()
243 TYPE(mo_set_type), DIMENSION(:), POINTER :: mos => null()
244 TYPE(cp_fm_type), DIMENSION(:), POINTER :: mo_loc_history => null()
245 TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: mo_derivs => null()
246 TYPE(scf_control_type), POINTER :: scf_control => null()
247 TYPE(rel_control_type), POINTER :: rel_control => null()
248 ! ZMP adding variables
249 TYPE(qs_rho_type), POINTER :: rho_external => null()
250 TYPE(pw_r3d_rs_type), POINTER :: external_vxc => null()
251 TYPE(pw_r3d_rs_type), POINTER :: mask => null()
252 TYPE(qs_charges_type), POINTER :: qs_charges => null()
253 TYPE(qs_ks_env_type), POINTER :: ks_env => null()
254 TYPE(qs_ks_qmmm_env_type), POINTER :: ks_qmmm_env => null()
255 TYPE(qmmm_env_qm_type), POINTER :: qmmm_env_qm => null()
256 TYPE(qs_wf_history_type), POINTER :: wf_history => null()
257 TYPE(qs_scf_env_type), POINTER :: scf_env => null()
258 TYPE(qs_matrix_pools_type), POINTER :: mpools => null()
259 TYPE(oce_matrix_type), POINTER :: oce => null()
260 TYPE(local_rho_type), POINTER :: local_rho_set => null()
261 TYPE(hartree_local_type), POINTER :: hartree_local => null()
262 TYPE(section_vals_type), POINTER :: input => null()
263 TYPE(linres_control_type), POINTER :: linres_control => null()
264 TYPE(xas_environment_type), POINTER :: xas_env => null()
265 TYPE(cp_ddapc_type), POINTER :: cp_ddapc_env => null()
266 TYPE(cp_ddapc_ewald_type), POINTER :: cp_ddapc_ewald => null()
267 REAL(kind=dp), DIMENSION(:, :), POINTER :: outer_scf_history => null()
268 INTEGER :: outer_scf_ihistory = -1
269 REAL(kind=dp), DIMENSION(:, :), POINTER :: gradient_history => null(), &
270 variable_history => null()
271 TYPE(hfx_type), DIMENSION(:, :), POINTER :: x_data => null()
272 TYPE(et_coupling_type), POINTER :: et_coupling => null()
273 TYPE(qs_dftb_pairpot_type), DIMENSION(:, :), POINTER :: dftb_potential => null()
274 TYPE(admm_type), POINTER :: admm_env => null()
275 TYPE(active_space_type), POINTER :: active_space => null()
276 ! LRI
277 TYPE(lri_environment_type), POINTER :: lri_env => null()
278 TYPE(lri_density_type), POINTER :: lri_density => null()
279 ! Harris model
280 TYPE(harris_type), POINTER :: harris_env => null()
281 ! Energy correction
282 TYPE(energy_correction_type), POINTER :: ec_env => null()
283 ! Excited States
284 LOGICAL :: excited_state = .false.
285 TYPE(excited_energy_type), POINTER :: exstate_env => null()
286 ! Empirical dispersion
287 TYPE(qs_dispersion_type), POINTER :: dispersion_env => null()
288 ! Empirical geometrical BSSE correction
289 TYPE(qs_gcp_type), POINTER :: gcp_env => null()
290 ! Semi-empirical and DFTB types
291 TYPE(ewald_environment_type), POINTER :: ewald_env => null()
292 TYPE(ewald_pw_type), POINTER :: ewald_pw => null()
293 ! Semi-empirical types
294 TYPE(se_taper_type), POINTER :: se_taper => null()
295 TYPE(semi_empirical_si_type), POINTER :: se_store_int_env => null()
296 TYPE(nddo_mpole_type), POINTER :: se_nddo_mpole => null()
297 TYPE(fist_nonbond_env_type), POINTER :: se_nonbond_env => null()
298 TYPE(rt_prop_type), POINTER :: rtp => null()
299 TYPE(efield_berry_type), POINTER :: efield => null()
300 ! a history for the broyden ot
301 REAL(kind=dp) :: broyden_adaptive_sigma = -1.0_dp
302 TYPE(mp2_type), POINTER :: mp2_env => null()
303 TYPE(post_scf_bandstructure_type), POINTER :: bs_env => null()
304 TYPE(kg_environment_type), POINTER :: kg_env => null()
305 TYPE(wannier_centres_type), POINTER, DIMENSION(:) :: wanniercentres => null()
306 TYPE(molecular_scf_guess_env_type), POINTER :: molecular_scf_guess_env => null()
307 ! Subsystem densities
308 TYPE(qs_rho_p_type), DIMENSION(:), POINTER :: subsys_dens => null()
309 ! Embedding potential
310 TYPE(pw_r3d_rs_type), POINTER :: embed_pot => null()
311 TYPE(pw_r3d_rs_type), POINTER :: spin_embed_pot => null()
312 ! Polarizability tensor
313 TYPE(polar_env_type), POINTER :: polar_env => null()
314 ! EEQ charges
315 REAL(kind=dp), DIMENSION(:), POINTER :: eeq => null()
316 ! Resp charges
317 REAL(kind=dp), DIMENSION(:), POINTER :: rhs => null()
318 REAL(kind=dp) :: total_zeff_corr = -1.0_dp, surface_dipole_moment = -1.0_dp
319 LOGICAL :: surface_dipole_switch_off = .false.
320 TYPE(mo_set_type), DIMENSION(:), POINTER :: mos_last_converged => null()
321 ! tblite
322 TYPE(tblite_type), POINTER :: tb_tblite => null()
323 END TYPE qs_environment_type
324
325CONTAINS
326
327! **************************************************************************************************
328!> \brief Get the QUICKSTEP environment.
329!> \param qs_env ...
330!> \param atomic_kind_set ...
331!> \param qs_kind_set ...
332!> \param cell ...
333!> \param super_cell ...
334!> \param cell_ref ...
335!> \param use_ref_cell ...
336!> \param kpoints ...
337!> \param dft_control ...
338!> \param mos ...
339!> \param sab_orb ...
340!> \param sab_all ...
341!> \param qmmm ...
342!> \param qmmm_periodic ...
343!> \param sac_ae ...
344!> \param sac_ppl ...
345!> \param sac_lri ...
346!> \param sap_ppnl ...
347!> \param sab_vdw ...
348!> \param sab_scp ...
349!> \param sap_oce ...
350!> \param sab_lrc ...
351!> \param sab_se ...
352!> \param sab_xtbe ...
353!> \param sab_tbe ...
354!> \param sab_core ...
355!> \param sab_xb ...
356!> \param sab_xtb_pp ...
357!> \param sab_xtb_nonbond ...
358!> \param sab_almo ...
359!> \param sab_kp ...
360!> \param sab_kp_nosym ...
361!> \param particle_set ...
362!> \param energy ...
363!> \param force ...
364!> \param matrix_h ...
365!> \param matrix_h_im ...
366!> \param matrix_ks ...
367!> \param matrix_ks_im ...
368!> \param matrix_vxc ...
369!> \param run_rtp ...
370!> \param rtp ...
371!> \param matrix_h_kp ...
372!> \param matrix_h_im_kp ...
373!> \param matrix_ks_kp ...
374!> \param matrix_ks_im_kp ...
375!> \param matrix_vxc_kp ...
376!> \param kinetic_kp ...
377!> \param matrix_s_kp ...
378!> \param matrix_w_kp ...
379!> \param matrix_s_RI_aux_kp ...
380!> \param matrix_s ...
381!> \param matrix_s_RI_aux ...
382!> \param matrix_w ...
383!> \param matrix_p_mp2 ...
384!> \param matrix_p_mp2_admm ...
385!> \param rho ...
386!> \param rho_xc ...
387!> \param pw_env ...
388!> \param ewald_env ...
389!> \param ewald_pw ...
390!> \param active_space ...
391!> \param mpools ...
392!> \param input ...
393!> \param para_env ...
394!> \param blacs_env ...
395!> \param scf_control ...
396!> \param rel_control ...
397!> \param kinetic ...
398!> \param qs_charges ...
399!> \param vppl ...
400!> \param rho_core ...
401!> \param rho_nlcc ...
402!> \param rho_nlcc_g ...
403!> \param ks_env ...
404!> \param ks_qmmm_env ...
405!> \param wf_history ...
406!> \param scf_env ...
407!> \param local_particles ...
408!> \param local_molecules ...
409!> \param distribution_2d ...
410!> \param dbcsr_dist ...
411!> \param molecule_kind_set ...
412!> \param molecule_set ...
413!> \param subsys ...
414!> \param cp_subsys ...
415!> \param oce ...
416!> \param local_rho_set ...
417!> \param rho_atom_set ...
418!> \param task_list ...
419!> \param task_list_soft ...
420!> \param rho0_atom_set ...
421!> \param rho0_mpole ...
422!> \param rhoz_set ...
423!> \param ecoul_1c ...
424!> \param rho0_s_rs ...
425!> \param rho0_s_gs ...
426!> \param do_kpoints ...
427!> \param has_unit_metric ...
428!> \param requires_mo_derivs ...
429!> \param mo_derivs ...
430!> \param mo_loc_history ...
431!> \param nkind ...
432!> \param natom ...
433!> \param nelectron_total ...
434!> \param nelectron_spin ...
435!> \param efield ...
436!> \param neighbor_list_id ...
437!> \param linres_control ...
438!> \param xas_env ...
439!> \param virial ...
440!> \param cp_ddapc_env ...
441!> \param cp_ddapc_ewald ...
442!> \param outer_scf_history ...
443!> \param outer_scf_ihistory ...
444!> \param x_data ...
445!> \param et_coupling ...
446!> \param dftb_potential ...
447!> \param results ...
448!> \param se_taper ...
449!> \param se_store_int_env ...
450!> \param se_nddo_mpole ...
451!> \param se_nonbond_env ...
452!> \param admm_env ...
453!> \param lri_env ...
454!> \param lri_density ...
455!> \param exstate_env ...
456!> \param ec_env ...
457!> \param harris_env ...
458!> \param dispersion_env ...
459!> \param gcp_env ...
460!> \param vee ...
461!> \param rho_external ...
462!> \param external_vxc ...
463!> \param mask ...
464!> \param mp2_env ...
465!> \param bs_env ...
466!> \param kg_env ...
467!> \param WannierCentres ...
468!> \param atprop ...
469!> \param ls_scf_env ...
470!> \param do_transport ...
471!> \param transport_env ...
472!> \param v_hartree_rspace ...
473!> \param s_mstruct_changed ...
474!> \param rho_changed ...
475!> \param potential_changed ...
476!> \param forces_up_to_date ...
477!> \param mscfg_env ...
478!> \param almo_scf_env ...
479!> \param gradient_history ...
480!> \param variable_history ...
481!> \param embed_pot ...
482!> \param spin_embed_pot ...
483!> \param polar_env ...
484!> \param mos_last_converged ... [SGh]
485!> \param eeq ...
486!> \param rhs ...
487!> \param do_rixs ...
488!> \param tb_tblite ...
489!> \date 23.01.2002
490!> \author MK
491!> \version 1.0
492! **************************************************************************************************
493 SUBROUTINE get_qs_env(qs_env, atomic_kind_set, qs_kind_set, cell, super_cell, cell_ref, use_ref_cell, kpoints, &
494 dft_control, mos, sab_orb, sab_all, qmmm, qmmm_periodic, sac_ae, sac_ppl, sac_lri, &
495 sap_ppnl, sab_vdw, sab_scp, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, &
496 sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_almo, &
497 sab_kp, sab_kp_nosym, particle_set, energy, force, &
498 matrix_h, matrix_h_im, matrix_ks, matrix_ks_im, matrix_vxc, run_rtp, rtp, &
499 matrix_h_kp, matrix_h_im_kp, matrix_ks_kp, matrix_ks_im_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, &
500 matrix_w_kp, matrix_s_RI_aux_kp, matrix_s, matrix_s_RI_aux, matrix_w, &
501 matrix_p_mp2, matrix_p_mp2_admm, rho, &
502 rho_xc, pw_env, ewald_env, ewald_pw, active_space, &
503 mpools, input, para_env, blacs_env, scf_control, rel_control, kinetic, qs_charges, &
504 vppl, rho_core, rho_nlcc, rho_nlcc_g, ks_env, ks_qmmm_env, wf_history, scf_env, local_particles, &
505 local_molecules, distribution_2d, dbcsr_dist, molecule_kind_set, &
506 molecule_set, subsys, cp_subsys, oce, local_rho_set, rho_atom_set, &
507 task_list, task_list_soft, &
508 rho0_atom_set, rho0_mpole, rhoz_set, ecoul_1c, &
509 rho0_s_rs, rho0_s_gs, do_kpoints, has_unit_metric, requires_mo_derivs, mo_derivs, &
510 mo_loc_history, nkind, natom, nelectron_total, nelectron_spin, efield, &
511 neighbor_list_id, linres_control, xas_env, virial, cp_ddapc_env, cp_ddapc_ewald, &
512 outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, results, &
513 se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, &
514 lri_env, lri_density, exstate_env, ec_env, harris_env, dispersion_env, gcp_env, vee, &
515 rho_external, external_vxc, mask, mp2_env, bs_env, kg_env, &
516 WannierCentres, atprop, ls_scf_env, do_transport, transport_env, v_hartree_rspace, &
517 s_mstruct_changed, rho_changed, potential_changed, forces_up_to_date, mscfg_env, almo_scf_env, &
518 gradient_history, variable_history, embed_pot, spin_embed_pot, polar_env, mos_last_converged, &
519 eeq, rhs, do_rixs, tb_tblite)
520
521 TYPE(qs_environment_type), INTENT(IN) :: qs_env
522 TYPE(atomic_kind_type), DIMENSION(:), OPTIONAL, &
523 POINTER :: atomic_kind_set
524 TYPE(qs_kind_type), DIMENSION(:), OPTIONAL, &
525 POINTER :: qs_kind_set
526 TYPE(cell_type), OPTIONAL, POINTER :: cell, super_cell, cell_ref
527 LOGICAL, OPTIONAL :: use_ref_cell
528 TYPE(kpoint_type), OPTIONAL, POINTER :: kpoints
529 TYPE(dft_control_type), OPTIONAL, POINTER :: dft_control
530 TYPE(mo_set_type), DIMENSION(:), OPTIONAL, POINTER :: mos
531 TYPE(neighbor_list_set_p_type), DIMENSION(:), &
532 OPTIONAL, POINTER :: sab_orb, sab_all
533 LOGICAL, OPTIONAL :: qmmm, qmmm_periodic
534 TYPE(neighbor_list_set_p_type), DIMENSION(:), OPTIONAL, POINTER :: sac_ae, sac_ppl, sac_lri, &
535 sap_ppnl, sab_vdw, sab_scp, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, &
536 sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_almo, sab_kp, sab_kp_nosym
537 TYPE(particle_type), DIMENSION(:), OPTIONAL, &
538 POINTER :: particle_set
539 TYPE(qs_energy_type), OPTIONAL, POINTER :: energy
540 TYPE(qs_force_type), DIMENSION(:), OPTIONAL, &
541 POINTER :: force
542 TYPE(dbcsr_p_type), DIMENSION(:), OPTIONAL, &
543 POINTER :: matrix_h, matrix_h_im, matrix_ks, &
544 matrix_ks_im, matrix_vxc
545 LOGICAL, OPTIONAL :: run_rtp
546 TYPE(rt_prop_type), OPTIONAL, POINTER :: rtp
547 TYPE(dbcsr_p_type), DIMENSION(:, :), OPTIONAL, POINTER :: matrix_h_kp, matrix_h_im_kp, &
548 matrix_ks_kp, matrix_ks_im_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, &
549 matrix_s_ri_aux_kp
550 TYPE(dbcsr_p_type), DIMENSION(:), OPTIONAL, &
551 POINTER :: matrix_s, matrix_s_ri_aux, matrix_w, &
552 matrix_p_mp2, matrix_p_mp2_admm
553 TYPE(qs_rho_type), OPTIONAL, POINTER :: rho, rho_xc
554 TYPE(pw_env_type), OPTIONAL, POINTER :: pw_env
555 TYPE(ewald_environment_type), OPTIONAL, POINTER :: ewald_env
556 TYPE(ewald_pw_type), OPTIONAL, POINTER :: ewald_pw
557 TYPE(active_space_type), OPTIONAL, POINTER :: active_space
558 TYPE(qs_matrix_pools_type), OPTIONAL, POINTER :: mpools
559 TYPE(section_vals_type), OPTIONAL, POINTER :: input
560 TYPE(mp_para_env_type), OPTIONAL, POINTER :: para_env
561 TYPE(cp_blacs_env_type), OPTIONAL, POINTER :: blacs_env
562 TYPE(scf_control_type), OPTIONAL, POINTER :: scf_control
563 TYPE(rel_control_type), OPTIONAL, POINTER :: rel_control
564 TYPE(dbcsr_p_type), DIMENSION(:), OPTIONAL, &
565 POINTER :: kinetic
566 TYPE(qs_charges_type), OPTIONAL, POINTER :: qs_charges
567 TYPE(pw_r3d_rs_type), OPTIONAL, POINTER :: vppl
568 TYPE(pw_c1d_gs_type), OPTIONAL, POINTER :: rho_core
569 TYPE(pw_r3d_rs_type), OPTIONAL, POINTER :: rho_nlcc
570 TYPE(pw_c1d_gs_type), OPTIONAL, POINTER :: rho_nlcc_g
571 TYPE(qs_ks_env_type), OPTIONAL, POINTER :: ks_env
572 TYPE(qs_ks_qmmm_env_type), OPTIONAL, POINTER :: ks_qmmm_env
573 TYPE(qs_wf_history_type), OPTIONAL, POINTER :: wf_history
574 TYPE(qs_scf_env_type), OPTIONAL, POINTER :: scf_env
575 TYPE(distribution_1d_type), OPTIONAL, POINTER :: local_particles, local_molecules
576 TYPE(distribution_2d_type), OPTIONAL, POINTER :: distribution_2d
577 TYPE(dbcsr_distribution_type), OPTIONAL, POINTER :: dbcsr_dist
578 TYPE(molecule_kind_type), DIMENSION(:), OPTIONAL, &
579 POINTER :: molecule_kind_set
580 TYPE(molecule_type), DIMENSION(:), OPTIONAL, &
581 POINTER :: molecule_set
582 TYPE(qs_subsys_type), OPTIONAL, POINTER :: subsys
583 TYPE(cp_subsys_type), OPTIONAL, POINTER :: cp_subsys
584 TYPE(oce_matrix_type), OPTIONAL, POINTER :: oce
585 TYPE(local_rho_type), OPTIONAL, POINTER :: local_rho_set
586 TYPE(rho_atom_type), DIMENSION(:), OPTIONAL, &
587 POINTER :: rho_atom_set
588 TYPE(task_list_type), OPTIONAL, POINTER :: task_list, task_list_soft
589 TYPE(rho0_atom_type), DIMENSION(:), OPTIONAL, &
590 POINTER :: rho0_atom_set
591 TYPE(rho0_mpole_type), OPTIONAL, POINTER :: rho0_mpole
592 TYPE(rhoz_type), DIMENSION(:), OPTIONAL, POINTER :: rhoz_set
593 TYPE(ecoul_1center_type), DIMENSION(:), OPTIONAL, &
594 POINTER :: ecoul_1c
595 TYPE(pw_r3d_rs_type), OPTIONAL, POINTER :: rho0_s_rs
596 TYPE(pw_c1d_gs_type), OPTIONAL, POINTER :: rho0_s_gs
597 LOGICAL, OPTIONAL :: do_kpoints, has_unit_metric, &
598 requires_mo_derivs
599 TYPE(dbcsr_p_type), DIMENSION(:), OPTIONAL, &
600 POINTER :: mo_derivs
601 TYPE(cp_fm_type), DIMENSION(:), OPTIONAL, POINTER :: mo_loc_history
602 INTEGER, OPTIONAL :: nkind, natom, nelectron_total
603 INTEGER, DIMENSION(2), OPTIONAL :: nelectron_spin
604 TYPE(efield_berry_type), OPTIONAL, POINTER :: efield
605 INTEGER, OPTIONAL :: neighbor_list_id
606 TYPE(linres_control_type), OPTIONAL, POINTER :: linres_control
607 TYPE(xas_environment_type), OPTIONAL, POINTER :: xas_env
608 TYPE(virial_type), OPTIONAL, POINTER :: virial
609 TYPE(cp_ddapc_type), OPTIONAL, POINTER :: cp_ddapc_env
610 TYPE(cp_ddapc_ewald_type), OPTIONAL, POINTER :: cp_ddapc_ewald
611 REAL(kind=dp), DIMENSION(:, :), OPTIONAL, POINTER :: outer_scf_history
612 INTEGER, INTENT(out), OPTIONAL :: outer_scf_ihistory
613 TYPE(hfx_type), DIMENSION(:, :), OPTIONAL, POINTER :: x_data
614 TYPE(et_coupling_type), OPTIONAL, POINTER :: et_coupling
615 TYPE(qs_dftb_pairpot_type), DIMENSION(:, :), &
616 OPTIONAL, POINTER :: dftb_potential
617 TYPE(cp_result_type), OPTIONAL, POINTER :: results
618 TYPE(se_taper_type), OPTIONAL, POINTER :: se_taper
619 TYPE(semi_empirical_si_type), OPTIONAL, POINTER :: se_store_int_env
620 TYPE(nddo_mpole_type), OPTIONAL, POINTER :: se_nddo_mpole
621 TYPE(fist_nonbond_env_type), OPTIONAL, POINTER :: se_nonbond_env
622 TYPE(admm_type), OPTIONAL, POINTER :: admm_env
623 TYPE(lri_environment_type), OPTIONAL, POINTER :: lri_env
624 TYPE(lri_density_type), OPTIONAL, POINTER :: lri_density
625 TYPE(excited_energy_type), OPTIONAL, POINTER :: exstate_env
626 TYPE(energy_correction_type), OPTIONAL, POINTER :: ec_env
627 TYPE(harris_type), OPTIONAL, POINTER :: harris_env
628 TYPE(qs_dispersion_type), OPTIONAL, POINTER :: dispersion_env
629 TYPE(qs_gcp_type), OPTIONAL, POINTER :: gcp_env
630 TYPE(pw_r3d_rs_type), OPTIONAL, POINTER :: vee
631 TYPE(qs_rho_type), OPTIONAL, POINTER :: rho_external
632 TYPE(pw_r3d_rs_type), OPTIONAL, POINTER :: external_vxc, mask
633 TYPE(mp2_type), OPTIONAL, POINTER :: mp2_env
634 TYPE(post_scf_bandstructure_type), OPTIONAL, &
635 POINTER :: bs_env
636 TYPE(kg_environment_type), OPTIONAL, POINTER :: kg_env
637 TYPE(wannier_centres_type), DIMENSION(:), &
638 OPTIONAL, POINTER :: wanniercentres
639 TYPE(atprop_type), OPTIONAL, POINTER :: atprop
640 TYPE(ls_scf_env_type), OPTIONAL, POINTER :: ls_scf_env
641 LOGICAL, OPTIONAL :: do_transport
642 TYPE(transport_env_type), OPTIONAL, POINTER :: transport_env
643 TYPE(pw_r3d_rs_type), OPTIONAL, POINTER :: v_hartree_rspace
644 LOGICAL, OPTIONAL :: s_mstruct_changed, rho_changed, &
645 potential_changed, forces_up_to_date
646 TYPE(molecular_scf_guess_env_type), OPTIONAL, &
647 POINTER :: mscfg_env
648 TYPE(almo_scf_env_type), OPTIONAL, POINTER :: almo_scf_env
649 REAL(kind=dp), DIMENSION(:, :), OPTIONAL, POINTER :: gradient_history, variable_history
650 TYPE(pw_r3d_rs_type), OPTIONAL, POINTER :: embed_pot, spin_embed_pot
651 TYPE(polar_env_type), OPTIONAL, POINTER :: polar_env
652 TYPE(mo_set_type), DIMENSION(:), OPTIONAL, POINTER :: mos_last_converged
653 REAL(kind=dp), DIMENSION(:), OPTIONAL, POINTER :: eeq, rhs
654 LOGICAL, OPTIONAL :: do_rixs
655 TYPE(tblite_type), OPTIONAL, POINTER :: tb_tblite
656
657 TYPE(rho0_mpole_type), POINTER :: rho0_m
658
659 NULLIFY (rho0_m)
660 cpassert(ASSOCIATED(qs_env%ks_env))
661
662 IF (PRESENT(outer_scf_history)) outer_scf_history => qs_env%outer_scf_history
663 IF (PRESENT(outer_scf_ihistory)) outer_scf_ihistory = qs_env%outer_scf_ihistory
664 IF (PRESENT(gradient_history)) gradient_history => qs_env%gradient_history
665 IF (PRESENT(variable_history)) variable_history => qs_env%variable_history
666 IF (PRESENT(mp2_env)) mp2_env => qs_env%mp2_env
667 IF (PRESENT(bs_env)) bs_env => qs_env%bs_env
668 IF (PRESENT(kg_env)) kg_env => qs_env%kg_env
669 IF (PRESENT(super_cell)) super_cell => qs_env%super_cell
670 IF (PRESENT(qmmm)) qmmm = qs_env%qmmm
671 IF (PRESENT(qmmm_periodic)) qmmm_periodic = qs_env%qmmm_periodic
672 IF (PRESENT(mos)) mos => qs_env%mos
673 IF (PRESENT(mos_last_converged)) mos_last_converged => qs_env%mos_last_converged
674 IF (PRESENT(ewald_env)) ewald_env => qs_env%ewald_env
675 IF (PRESENT(ewald_pw)) ewald_pw => qs_env%ewald_pw
676 IF (PRESENT(mpools)) mpools => qs_env%mpools
677 IF (PRESENT(scf_control)) scf_control => qs_env%scf_control
678 IF (PRESENT(rel_control)) rel_control => qs_env%rel_control
679 ! ZMP pointing vectors
680 IF (PRESENT(rho_external)) rho_external => qs_env%rho_external
681 IF (PRESENT(external_vxc)) external_vxc => qs_env%external_vxc
682 IF (PRESENT(mask)) mask => qs_env%mask
683 IF (PRESENT(qs_charges)) qs_charges => qs_env%qs_charges
684 IF (PRESENT(ks_env)) ks_env => qs_env%ks_env
685 IF (PRESENT(ks_qmmm_env)) ks_qmmm_env => qs_env%ks_qmmm_env
686 IF (PRESENT(wf_history)) wf_history => qs_env%wf_history
687 IF (PRESENT(scf_env)) scf_env => qs_env%scf_env
688 IF (PRESENT(oce)) oce => qs_env%oce
689 IF (PRESENT(requires_mo_derivs)) requires_mo_derivs = qs_env%requires_mo_derivs
690 IF (PRESENT(has_unit_metric)) has_unit_metric = qs_env%has_unit_metric
691 IF (PRESENT(mo_derivs)) mo_derivs => qs_env%mo_derivs
692 IF (PRESENT(mo_loc_history)) mo_loc_history => qs_env%mo_loc_history
693 IF (PRESENT(linres_control)) linres_control => qs_env%linres_control
694 IF (PRESENT(se_taper)) se_taper => qs_env%se_taper
695 IF (PRESENT(se_store_int_env)) se_store_int_env => qs_env%se_store_int_env
696 IF (PRESENT(se_nddo_mpole)) se_nddo_mpole => qs_env%se_nddo_mpole
697 IF (PRESENT(se_nonbond_env)) se_nonbond_env => qs_env%se_nonbond_env
698 IF (PRESENT(lri_env)) lri_env => qs_env%lri_env
699 IF (PRESENT(lri_density)) lri_density => qs_env%lri_density
700 IF (PRESENT(harris_env)) harris_env => qs_env%harris_env
701 IF (PRESENT(ec_env)) ec_env => qs_env%ec_env
702 IF (PRESENT(exstate_env)) exstate_env => qs_env%exstate_env
703 IF (PRESENT(dispersion_env)) dispersion_env => qs_env%dispersion_env
704 IF (PRESENT(gcp_env)) gcp_env => qs_env%gcp_env
705 IF (PRESENT(run_rtp)) run_rtp = qs_env%run_rtp
706 IF (PRESENT(rtp)) rtp => qs_env%rtp
707 IF (PRESENT(ls_scf_env)) ls_scf_env => qs_env%ls_scf_env
708 IF (PRESENT(almo_scf_env)) almo_scf_env => qs_env%almo_scf_env
709 IF (PRESENT(do_transport)) do_transport = qs_env%do_transport
710 IF (PRESENT(transport_env)) transport_env => qs_env%transport_env
711 IF (PRESENT(mscfg_env)) mscfg_env => qs_env%molecular_scf_guess_env
712 IF (PRESENT(active_space)) active_space => qs_env%active_space
713 IF (PRESENT(admm_env)) admm_env => qs_env%admm_env
714 IF (PRESENT(do_rixs)) do_rixs = qs_env%do_rixs
715
716 ! Embedding potential
717 IF (PRESENT(embed_pot)) embed_pot => qs_env%embed_pot
718 IF (PRESENT(spin_embed_pot)) spin_embed_pot => qs_env%spin_embed_pot
719
720 ! Polarisability tensor
721 IF (PRESENT(polar_env)) polar_env => qs_env%polar_env
722
723 ! EEQ charges
724 IF (PRESENT(eeq)) eeq => qs_env%eeq
725
726 ! Resp charges
727 IF (PRESENT(rhs)) rhs => qs_env%rhs
728
729 IF (PRESENT(local_rho_set)) &
730 local_rho_set => qs_env%local_rho_set
731 IF (PRESENT(rho_atom_set)) &
732 CALL get_local_rho(qs_env%local_rho_set, rho_atom_set=rho_atom_set)
733 IF (PRESENT(rho0_atom_set)) &
734 CALL get_local_rho(qs_env%local_rho_set, rho0_atom_set=rho0_atom_set)
735 IF (PRESENT(rho0_mpole)) &
736 CALL get_local_rho(qs_env%local_rho_set, rho0_mpole=rho0_mpole)
737 IF (PRESENT(rhoz_set)) &
738 CALL get_local_rho(qs_env%local_rho_set, rhoz_set=rhoz_set)
739 IF (PRESENT(ecoul_1c)) &
740 CALL get_hartree_local(qs_env%hartree_local, ecoul_1c=ecoul_1c)
741 IF (PRESENT(rho0_s_rs)) THEN
742 CALL get_local_rho(qs_env%local_rho_set, rho0_mpole=rho0_m)
743 IF (ASSOCIATED(rho0_m)) THEN
744 rho0_s_rs => rho0_m%rho0_s_rs
745 END IF
746 END IF
747 IF (PRESENT(rho0_s_gs)) THEN
748 CALL get_local_rho(qs_env%local_rho_set, rho0_mpole=rho0_m)
749 IF (ASSOCIATED(rho0_m)) THEN
750 rho0_s_gs => rho0_m%rho0_s_gs
751 END IF
752 END IF
753
754 IF (PRESENT(xas_env)) xas_env => qs_env%xas_env
755 IF (PRESENT(input)) input => qs_env%input
756 IF (PRESENT(cp_ddapc_env)) cp_ddapc_env => qs_env%cp_ddapc_env
757 IF (PRESENT(cp_ddapc_ewald)) cp_ddapc_ewald => qs_env%cp_ddapc_ewald
758 IF (PRESENT(x_data)) x_data => qs_env%x_data
759 IF (PRESENT(et_coupling)) et_coupling => qs_env%et_coupling
760 IF (PRESENT(dftb_potential)) dftb_potential => qs_env%dftb_potential
761 IF (PRESENT(efield)) efield => qs_env%efield
762 IF (PRESENT(wanniercentres)) wanniercentres => qs_env%WannierCentres
763
764 CALL get_ks_env(qs_env%ks_env, &
765 v_hartree_rspace=v_hartree_rspace, &
766 s_mstruct_changed=s_mstruct_changed, &
767 rho_changed=rho_changed, &
768 potential_changed=potential_changed, &
769 forces_up_to_date=forces_up_to_date, &
770 matrix_h=matrix_h, &
771 matrix_h_im=matrix_h_im, &
772 matrix_ks=matrix_ks, &
773 matrix_ks_im=matrix_ks_im, &
774 matrix_vxc=matrix_vxc, &
775 kinetic=kinetic, &
776 matrix_s=matrix_s, &
777 matrix_s_ri_aux=matrix_s_ri_aux, &
778 matrix_ks_im_kp=matrix_ks_im_kp, &
779 matrix_w=matrix_w, &
780 matrix_p_mp2=matrix_p_mp2, &
781 matrix_p_mp2_admm=matrix_p_mp2_admm, &
782 matrix_h_kp=matrix_h_kp, &
783 matrix_h_im_kp=matrix_h_im_kp, &
784 matrix_ks_kp=matrix_ks_kp, &
785 matrix_vxc_kp=matrix_vxc_kp, &
786 kinetic_kp=kinetic_kp, &
787 matrix_s_kp=matrix_s_kp, &
788 matrix_w_kp=matrix_w_kp, &
789 matrix_s_ri_aux_kp=matrix_s_ri_aux_kp, &
790 rho=rho, &
791 rho_xc=rho_xc, &
792 rho_core=rho_core, &
793 rho_nlcc=rho_nlcc, &
794 rho_nlcc_g=rho_nlcc_g, &
795 vppl=vppl, &
796 vee=vee, &
797 neighbor_list_id=neighbor_list_id, &
798 sab_orb=sab_orb, &
799 sab_all=sab_all, &
800 sab_scp=sab_scp, &
801 sab_vdw=sab_vdw, &
802 sac_ae=sac_ae, &
803 sac_ppl=sac_ppl, &
804 sac_lri=sac_lri, &
805 sap_ppnl=sap_ppnl, &
806 sap_oce=sap_oce, &
807 sab_se=sab_se, &
808 sab_lrc=sab_lrc, &
809 sab_tbe=sab_tbe, &
810 sab_xtbe=sab_xtbe, &
811 sab_core=sab_core, &
812 sab_xb=sab_xb, &
813 sab_xtb_pp=sab_xtb_pp, &
814 sab_xtb_nonbond=sab_xtb_nonbond, &
815 sab_almo=sab_almo, &
816 sab_kp=sab_kp, &
817 sab_kp_nosym=sab_kp_nosym, &
818 task_list=task_list, &
819 task_list_soft=task_list_soft, &
820 kpoints=kpoints, &
821 do_kpoints=do_kpoints, &
822 local_molecules=local_molecules, &
823 local_particles=local_particles, &
824 atprop=atprop, &
825 virial=virial, &
826 results=results, &
827 cell=cell, &
828 cell_ref=cell_ref, &
829 use_ref_cell=use_ref_cell, &
830 energy=energy, &
831 force=force, &
832 qs_kind_set=qs_kind_set, &
833 subsys=subsys, &
834 cp_subsys=cp_subsys, &
835 atomic_kind_set=atomic_kind_set, &
836 particle_set=particle_set, &
837 molecule_kind_set=molecule_kind_set, &
838 molecule_set=molecule_set, &
839 natom=natom, &
840 nkind=nkind, &
841 dft_control=dft_control, &
842 dbcsr_dist=dbcsr_dist, &
843 distribution_2d=distribution_2d, &
844 pw_env=pw_env, &
845 para_env=para_env, &
846 blacs_env=blacs_env, &
847 nelectron_total=nelectron_total, &
848 nelectron_spin=nelectron_spin)
849
850 IF (PRESENT(tb_tblite)) tb_tblite => qs_env%tb_tblite
851
852 END SUBROUTINE get_qs_env
853
854! **************************************************************************************************
855!> \brief Initialise the QUICKSTEP environment.
856!> \param qs_env ...
857!> \param globenv ...
858!> \date 25.01.2002
859!> \author MK
860!> \version 1.0
861! **************************************************************************************************
862 SUBROUTINE init_qs_env(qs_env, globenv)
863
864 TYPE(qs_environment_type), INTENT(INOUT) :: qs_env
865 TYPE(global_environment_type), OPTIONAL, POINTER :: globenv
866
867 NULLIFY (qs_env%ls_scf_env)
868 NULLIFY (qs_env%almo_scf_env)
869 NULLIFY (qs_env%transport_env)
870 NULLIFY (qs_env%image_matrix)
871 NULLIFY (qs_env%ipiv)
872 NULLIFY (qs_env%image_coeff)
873 NULLIFY (qs_env%super_cell)
874 NULLIFY (qs_env%mos)
875 NULLIFY (qs_env%mos_last_converged)
876 NULLIFY (qs_env%mpools)
877 NULLIFY (qs_env%ewald_env)
878 NULLIFY (qs_env%ewald_pw)
879 NULLIFY (qs_env%scf_control)
880 NULLIFY (qs_env%rel_control)
881 NULLIFY (qs_env%qs_charges)
882 ! ZMP initializing arrays
883 NULLIFY (qs_env%rho_external)
884 NULLIFY (qs_env%external_vxc)
885 NULLIFY (qs_env%mask)
886 ! Embedding potential
887 NULLIFY (qs_env%embed_pot)
888 NULLIFY (qs_env%spin_embed_pot)
889
890 ! Polarisability tensor
891 NULLIFY (qs_env%polar_env)
892
893 NULLIFY (qs_env%ks_env)
894 NULLIFY (qs_env%ks_qmmm_env)
895 NULLIFY (qs_env%wf_history)
896 NULLIFY (qs_env%scf_env)
897 NULLIFY (qs_env%oce)
898 NULLIFY (qs_env%local_rho_set)
899 NULLIFY (qs_env%hartree_local)
900 NULLIFY (qs_env%input)
901 NULLIFY (qs_env%linres_control)
902 NULLIFY (qs_env%xas_env)
903 NULLIFY (qs_env%cp_ddapc_env)
904 NULLIFY (qs_env%cp_ddapc_ewald)
905 NULLIFY (qs_env%outer_scf_history)
906 NULLIFY (qs_env%gradient_history)
907 NULLIFY (qs_env%variable_history)
908 NULLIFY (qs_env%x_data)
909 NULLIFY (qs_env%et_coupling)
910 NULLIFY (qs_env%dftb_potential)
911 NULLIFY (qs_env%active_space)
912
913 NULLIFY (qs_env%se_taper)
914 NULLIFY (qs_env%se_store_int_env)
915 NULLIFY (qs_env%se_nddo_mpole)
916 NULLIFY (qs_env%se_nonbond_env)
917 NULLIFY (qs_env%admm_env)
918 NULLIFY (qs_env%efield)
919 NULLIFY (qs_env%lri_env)
920 NULLIFY (qs_env%harris_env)
921 NULLIFY (qs_env%ec_env)
922 NULLIFY (qs_env%exstate_env)
923 NULLIFY (qs_env%lri_density)
924 NULLIFY (qs_env%gcp_env)
925 NULLIFY (qs_env%rtp)
926 NULLIFY (qs_env%mp2_env)
927 NULLIFY (qs_env%bs_env)
928 NULLIFY (qs_env%kg_env)
929 NULLIFY (qs_env%WannierCentres)
930
931 qs_env%outer_scf_ihistory = 0
932 qs_env%broyden_adaptive_sigma = -1.0_dp
933
934 CALL local_rho_set_create(qs_env%local_rho_set)
935 CALL hartree_local_create(qs_env%hartree_local)
936 qs_env%run_rtp = .false.
937 qs_env%linres_run = .false.
938 qs_env%single_point_run = .false.
939 qs_env%qmmm = .false.
940 qs_env%qmmm_periodic = .false.
941 qs_env%requires_mo_derivs = .false.
942 qs_env%requires_matrix_vxc = .false.
943 qs_env%has_unit_metric = .false.
944 qs_env%calc_image_preconditioner = .true.
945 qs_env%do_transport = .false.
946 qs_env%given_embed_pot = .false.
947 qs_env%do_rixs = .false.
948 IF (PRESENT(globenv)) THEN
949 qs_env%target_time = globenv%cp2k_target_time
950 qs_env%start_time = globenv%cp2k_start_time
951 qs_env%single_point_run = (globenv%run_type_id == energy_run .OR. &
952 globenv%run_type_id == energy_force_run)
953 ELSE
954 qs_env%target_time = 0.0_dp
955 qs_env%start_time = 0.0_dp
956 END IF
957
958 qs_env%sim_time = 0._dp
959 qs_env%sim_step = 0
960
961 qs_env%total_zeff_corr = 0.0_dp
962 qs_env%surface_dipole_moment = 0.0_dp
963 qs_env%surface_dipole_switch_off = .false.
964
965 ! Zero all variables containing results
966 NULLIFY (qs_env%mo_derivs)
967 NULLIFY (qs_env%mo_loc_history)
968
969 IF (.NOT. ASSOCIATED(qs_env%molecular_scf_guess_env)) ALLOCATE (qs_env%molecular_scf_guess_env)
970
971 NULLIFY (qs_env%tb_tblite)
972
973 END SUBROUTINE init_qs_env
974
975! **************************************************************************************************
976!> \brief Set the QUICKSTEP environment.
977!> \param qs_env ...
978!> \param super_cell ...
979!> \param mos ...
980!> \param qmmm ...
981!> \param qmmm_periodic ...
982!> \param ewald_env ...
983!> \param ewald_pw ...
984!> \param mpools ...
985!> \param rho_external ...
986!> \param external_vxc ...
987!> \param mask ...
988!> \param scf_control ...
989!> \param rel_control ...
990!> \param qs_charges ...
991!> \param ks_env ...
992!> \param ks_qmmm_env ...
993!> \param wf_history ...
994!> \param scf_env ...
995!> \param active_space ...
996!> \param input ...
997!> \param oce ...
998!> \param rho_atom_set ...
999!> \param rho0_atom_set ...
1000!> \param rho0_mpole ...
1001!> \param run_rtp ...
1002!> \param rtp ...
1003!> \param rhoz_set ...
1004!> \param rhoz_tot ...
1005!> \param ecoul_1c ...
1006!> \param has_unit_metric ...
1007!> \param requires_mo_derivs ...
1008!> \param mo_derivs ...
1009!> \param mo_loc_history ...
1010!> \param efield ...
1011!> \param linres_control ...
1012!> \param xas_env ...
1013!> \param cp_ddapc_env ...
1014!> \param cp_ddapc_ewald ...
1015!> \param outer_scf_history ...
1016!> \param outer_scf_ihistory ...
1017!> \param x_data ...
1018!> \param et_coupling ...
1019!> \param dftb_potential ...
1020!> \param se_taper ...
1021!> \param se_store_int_env ...
1022!> \param se_nddo_mpole ...
1023!> \param se_nonbond_env ...
1024!> \param admm_env ...
1025!> \param ls_scf_env ...
1026!> \param do_transport ...
1027!> \param transport_env ...
1028!> \param lri_env ...
1029!> \param lri_density ...
1030!> \param exstate_env ...
1031!> \param ec_env ...
1032!> \param dispersion_env ...
1033!> \param harris_env ...
1034!> \param gcp_env ...
1035!> \param mp2_env ...
1036!> \param bs_env ...
1037!> \param kg_env ...
1038!> \param force ...
1039!> \param kpoints ...
1040!> \param WannierCentres ...
1041!> \param almo_scf_env ...
1042!> \param gradient_history ...
1043!> \param variable_history ...
1044!> \param embed_pot ...
1045!> \param spin_embed_pot ...
1046!> \param polar_env ...
1047!> \param mos_last_converged ... [SGh]
1048!> \param eeq ...
1049!> \param rhs ...
1050!> \param do_rixs ...
1051!> \param tb_tblite ...
1052!> \date 23.01.2002
1053!> \author MK
1054!> \version 1.0
1055! **************************************************************************************************
1056 SUBROUTINE set_qs_env(qs_env, super_cell, &
1057 mos, qmmm, qmmm_periodic, &
1058 ewald_env, ewald_pw, mpools, &
1059 rho_external, external_vxc, mask, &
1060 scf_control, rel_control, qs_charges, ks_env, &
1061 ks_qmmm_env, wf_history, scf_env, active_space, &
1062 input, oce, rho_atom_set, rho0_atom_set, rho0_mpole, run_rtp, rtp, &
1063 rhoz_set, rhoz_tot, ecoul_1c, has_unit_metric, requires_mo_derivs, mo_derivs, &
1064 mo_loc_history, efield, &
1065 linres_control, xas_env, cp_ddapc_env, cp_ddapc_ewald, &
1066 outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, &
1067 se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, ls_scf_env, &
1068 do_transport, transport_env, lri_env, lri_density, exstate_env, ec_env, dispersion_env, &
1069 harris_env, gcp_env, mp2_env, bs_env, kg_env, force, &
1070 kpoints, WannierCentres, almo_scf_env, gradient_history, variable_history, embed_pot, &
1071 spin_embed_pot, polar_env, mos_last_converged, eeq, rhs, do_rixs, tb_tblite)
1072
1073 TYPE(qs_environment_type), INTENT(INOUT) :: qs_env
1074 TYPE(cell_type), OPTIONAL, POINTER :: super_cell
1075 TYPE(mo_set_type), DIMENSION(:), OPTIONAL, POINTER :: mos
1076 LOGICAL, OPTIONAL :: qmmm, qmmm_periodic
1077 TYPE(ewald_environment_type), OPTIONAL, POINTER :: ewald_env
1078 TYPE(ewald_pw_type), OPTIONAL, POINTER :: ewald_pw
1079 TYPE(qs_matrix_pools_type), OPTIONAL, POINTER :: mpools
1080 TYPE(qs_rho_type), OPTIONAL, POINTER :: rho_external
1081 TYPE(pw_r3d_rs_type), OPTIONAL, POINTER :: external_vxc, mask
1082 TYPE(scf_control_type), OPTIONAL, POINTER :: scf_control
1083 TYPE(rel_control_type), OPTIONAL, POINTER :: rel_control
1084 TYPE(qs_charges_type), OPTIONAL, POINTER :: qs_charges
1085 TYPE(qs_ks_env_type), OPTIONAL, POINTER :: ks_env
1086 TYPE(qs_ks_qmmm_env_type), OPTIONAL, POINTER :: ks_qmmm_env
1087 TYPE(qs_wf_history_type), OPTIONAL, POINTER :: wf_history
1088 TYPE(qs_scf_env_type), OPTIONAL, POINTER :: scf_env
1089 TYPE(active_space_type), OPTIONAL, POINTER :: active_space
1090 TYPE(section_vals_type), OPTIONAL, POINTER :: input
1091 TYPE(oce_matrix_type), OPTIONAL, POINTER :: oce
1092 TYPE(rho_atom_type), DIMENSION(:), OPTIONAL, &
1093 POINTER :: rho_atom_set
1094 TYPE(rho0_atom_type), DIMENSION(:), OPTIONAL, &
1095 POINTER :: rho0_atom_set
1096 TYPE(rho0_mpole_type), OPTIONAL, POINTER :: rho0_mpole
1097 LOGICAL, OPTIONAL :: run_rtp
1098 TYPE(rt_prop_type), OPTIONAL, POINTER :: rtp
1099 TYPE(rhoz_type), DIMENSION(:), OPTIONAL, POINTER :: rhoz_set
1100 REAL(dp), OPTIONAL :: rhoz_tot
1101 TYPE(ecoul_1center_type), DIMENSION(:), OPTIONAL, &
1102 POINTER :: ecoul_1c
1103 LOGICAL, OPTIONAL :: has_unit_metric, requires_mo_derivs
1104 TYPE(dbcsr_p_type), DIMENSION(:), OPTIONAL, &
1105 POINTER :: mo_derivs
1106 TYPE(cp_fm_type), DIMENSION(:), OPTIONAL, POINTER :: mo_loc_history
1107 TYPE(efield_berry_type), OPTIONAL, POINTER :: efield
1108 TYPE(linres_control_type), OPTIONAL, POINTER :: linres_control
1109 TYPE(xas_environment_type), OPTIONAL, POINTER :: xas_env
1110 TYPE(cp_ddapc_type), OPTIONAL, POINTER :: cp_ddapc_env
1111 TYPE(cp_ddapc_ewald_type), OPTIONAL, POINTER :: cp_ddapc_ewald
1112 REAL(kind=dp), DIMENSION(:, :), OPTIONAL, POINTER :: outer_scf_history
1113 INTEGER, INTENT(IN), OPTIONAL :: outer_scf_ihistory
1114 TYPE(hfx_type), DIMENSION(:, :), OPTIONAL, POINTER :: x_data
1115 TYPE(et_coupling_type), OPTIONAL, POINTER :: et_coupling
1116 TYPE(qs_dftb_pairpot_type), DIMENSION(:, :), &
1117 OPTIONAL, POINTER :: dftb_potential
1118 TYPE(se_taper_type), OPTIONAL, POINTER :: se_taper
1119 TYPE(semi_empirical_si_type), OPTIONAL, POINTER :: se_store_int_env
1120 TYPE(nddo_mpole_type), OPTIONAL, POINTER :: se_nddo_mpole
1121 TYPE(fist_nonbond_env_type), OPTIONAL, POINTER :: se_nonbond_env
1122 TYPE(admm_type), OPTIONAL, POINTER :: admm_env
1123 TYPE(ls_scf_env_type), OPTIONAL, POINTER :: ls_scf_env
1124 LOGICAL, OPTIONAL :: do_transport
1125 TYPE(transport_env_type), OPTIONAL, POINTER :: transport_env
1126 TYPE(lri_environment_type), OPTIONAL, POINTER :: lri_env
1127 TYPE(lri_density_type), OPTIONAL, POINTER :: lri_density
1128 TYPE(excited_energy_type), OPTIONAL, POINTER :: exstate_env
1129 TYPE(energy_correction_type), OPTIONAL, POINTER :: ec_env
1130 TYPE(qs_dispersion_type), OPTIONAL, POINTER :: dispersion_env
1131 TYPE(harris_type), OPTIONAL, POINTER :: harris_env
1132 TYPE(qs_gcp_type), OPTIONAL, POINTER :: gcp_env
1133 TYPE(mp2_type), OPTIONAL, POINTER :: mp2_env
1134 TYPE(post_scf_bandstructure_type), OPTIONAL, &
1135 POINTER :: bs_env
1136 TYPE(kg_environment_type), OPTIONAL, POINTER :: kg_env
1137 TYPE(qs_force_type), DIMENSION(:), OPTIONAL, &
1138 POINTER :: force
1139 TYPE(kpoint_type), OPTIONAL, POINTER :: kpoints
1140 TYPE(wannier_centres_type), DIMENSION(:), &
1141 OPTIONAL, POINTER :: wanniercentres
1142 TYPE(almo_scf_env_type), OPTIONAL, POINTER :: almo_scf_env
1143 REAL(kind=dp), DIMENSION(:, :), OPTIONAL, POINTER :: gradient_history, variable_history
1144 TYPE(pw_r3d_rs_type), OPTIONAL, POINTER :: embed_pot, spin_embed_pot
1145 TYPE(polar_env_type), OPTIONAL, POINTER :: polar_env
1146 TYPE(mo_set_type), DIMENSION(:), OPTIONAL, POINTER :: mos_last_converged
1147 REAL(kind=dp), DIMENSION(:), OPTIONAL, POINTER :: eeq, rhs
1148 LOGICAL, OPTIONAL :: do_rixs
1149 TYPE(tblite_type), OPTIONAL, POINTER :: tb_tblite
1150
1151 TYPE(qs_subsys_type), POINTER :: subsys
1152
1153 IF (PRESENT(mp2_env)) qs_env%mp2_env => mp2_env
1154 IF (PRESENT(bs_env)) qs_env%bs_env => bs_env
1155 IF (PRESENT(kg_env)) qs_env%kg_env => kg_env
1156 IF (PRESENT(super_cell)) THEN
1157 CALL cell_retain(super_cell)
1158 CALL cell_release(qs_env%super_cell)
1159 qs_env%super_cell => super_cell
1160 END IF
1161 !
1162 IF (PRESENT(qmmm)) qs_env%qmmm = qmmm
1163 IF (PRESENT(qmmm_periodic)) qs_env%qmmm_periodic = qmmm_periodic
1164 IF (PRESENT(mos)) qs_env%mos => mos
1165 IF (PRESENT(mos_last_converged)) qs_env%mos_last_converged => mos_last_converged
1166 IF (PRESENT(ls_scf_env)) qs_env%ls_scf_env => ls_scf_env
1167 IF (PRESENT(almo_scf_env)) qs_env%almo_scf_env => almo_scf_env
1168 IF (PRESENT(do_transport)) qs_env%do_transport = do_transport
1169 IF (PRESENT(transport_env)) qs_env%transport_env => transport_env
1170 ! if intels checking (-C) complains here, you have rediscovered a bug in the intel
1171 ! compiler (present in at least 10.0.025). A testcase has been submitted to intel.
1172 IF (PRESENT(oce)) qs_env%oce => oce
1173 IF (PRESENT(outer_scf_history)) qs_env%outer_scf_history => outer_scf_history
1174 IF (PRESENT(gradient_history)) qs_env%gradient_history => gradient_history
1175 IF (PRESENT(variable_history)) qs_env%variable_history => variable_history
1176 IF (PRESENT(outer_scf_ihistory)) qs_env%outer_scf_ihistory = outer_scf_ihistory
1177 IF (PRESENT(requires_mo_derivs)) qs_env%requires_mo_derivs = requires_mo_derivs
1178 IF (PRESENT(has_unit_metric)) qs_env%has_unit_metric = has_unit_metric
1179 IF (PRESENT(mo_derivs)) qs_env%mo_derivs => mo_derivs
1180 IF (PRESENT(mo_loc_history)) qs_env%mo_loc_history => mo_loc_history
1181 IF (PRESENT(run_rtp)) qs_env%run_rtp = run_rtp
1182 IF (PRESENT(rtp)) qs_env%rtp => rtp
1183 IF (PRESENT(efield)) qs_env%efield => efield
1184 IF (PRESENT(active_space)) qs_env%active_space => active_space
1185 IF (PRESENT(do_rixs)) do_rixs = qs_env%do_rixs
1186
1187 IF (PRESENT(ewald_env)) THEN ! accept also null pointers?
1188 IF (ASSOCIATED(qs_env%ewald_env)) THEN
1189 IF (.NOT. ASSOCIATED(qs_env%ewald_env, ewald_env)) THEN
1190 CALL ewald_env_release(qs_env%ewald_env)
1191 DEALLOCATE (qs_env%ewald_env)
1192 END IF
1193 END IF
1194 qs_env%ewald_env => ewald_env
1195 END IF
1196 IF (PRESENT(ewald_pw)) THEN ! accept also null pointers?
1197 IF (ASSOCIATED(qs_env%ewald_pw)) THEN
1198 IF (.NOT. ASSOCIATED(ewald_pw, qs_env%ewald_pw)) THEN
1199 CALL ewald_pw_release(qs_env%ewald_pw)
1200 DEALLOCATE (qs_env%ewald_pw)
1201 END IF
1202 END IF
1203 qs_env%ewald_pw => ewald_pw
1204 END IF
1205 IF (PRESENT(scf_control)) THEN ! accept also null pointers?
1206 IF (ASSOCIATED(qs_env%scf_control)) THEN
1207 IF (.NOT. ASSOCIATED(qs_env%scf_control, scf_control)) THEN
1208 CALL scf_c_release(qs_env%scf_control)
1209 DEALLOCATE (qs_env%scf_control)
1210 END IF
1211 END IF
1212 qs_env%scf_control => scf_control
1213 END IF
1214 IF (PRESENT(rel_control)) THEN ! accept also null pointers?
1215 IF (ASSOCIATED(qs_env%rel_control)) THEN
1216 IF (.NOT. ASSOCIATED(qs_env%rel_control, rel_control)) THEN
1217 CALL rel_c_release(qs_env%rel_control)
1218 DEALLOCATE (qs_env%rel_control)
1219 END IF
1220 END IF
1221 qs_env%rel_control => rel_control
1222 END IF
1223 IF (PRESENT(linres_control)) THEN ! accept also null pointers?
1224 IF (ASSOCIATED(qs_env%linres_control)) THEN
1225 IF (.NOT. ASSOCIATED(qs_env%linres_control, linres_control)) THEN
1226 CALL linres_control_release(qs_env%linres_control)
1227 DEALLOCATE (qs_env%linres_control)
1228 END IF
1229 END IF
1230 qs_env%linres_control => linres_control
1231 END IF
1232 ! ZMP associating variables
1233 IF (PRESENT(rho_external)) THEN
1234 IF (ASSOCIATED(qs_env%rho_external)) THEN
1235 IF (.NOT. ASSOCIATED(qs_env%rho_external, rho_external)) THEN
1236 CALL qs_rho_release(qs_env%rho_external)
1237 DEALLOCATE (qs_env%rho_external)
1238 END IF
1239 END IF
1240 qs_env%rho_external => rho_external
1241 END IF
1242 IF (PRESENT(external_vxc)) qs_env%external_vxc => external_vxc
1243 IF (PRESENT(mask)) qs_env%mask => mask
1244 ! Embedding potential
1245 IF (PRESENT(embed_pot)) qs_env%embed_pot => embed_pot
1246 IF (PRESENT(spin_embed_pot)) qs_env%spin_embed_pot => spin_embed_pot
1247
1248 ! Polarisability tensor
1249 IF (PRESENT(polar_env)) qs_env%polar_env => polar_env
1250
1251 IF (PRESENT(qs_charges)) THEN
1252 IF (ASSOCIATED(qs_env%qs_charges)) THEN
1253 IF (.NOT. ASSOCIATED(qs_env%qs_charges, qs_charges)) THEN
1254 CALL qs_charges_release(qs_env%qs_charges)
1255 DEALLOCATE (qs_env%qs_charges)
1256 END IF
1257 END IF
1258 qs_env%qs_charges => qs_charges
1259 END IF
1260 IF (PRESENT(ks_qmmm_env)) THEN
1261 IF (ASSOCIATED(qs_env%ks_qmmm_env)) THEN
1262 IF (.NOT. ASSOCIATED(qs_env%ks_qmmm_env, ks_qmmm_env)) THEN
1263 CALL qs_ks_qmmm_release(qs_env%ks_qmmm_env)
1264 DEALLOCATE (qs_env%ks_qmmm_env)
1265 END IF
1266 END IF
1267 qs_env%ks_qmmm_env => ks_qmmm_env
1268 END IF
1269 IF (PRESENT(ks_env)) THEN ! accept also null pointers?
1270 IF (ASSOCIATED(qs_env%ks_env)) THEN
1271 IF (.NOT. ASSOCIATED(qs_env%ks_env, ks_env)) THEN
1272 CALL qs_ks_release(qs_env%ks_env)
1273 DEALLOCATE (qs_env%ks_env)
1274 END IF
1275 END IF
1276 qs_env%ks_env => ks_env
1277 END IF
1278 IF (PRESENT(wf_history)) THEN ! accept also null pointers ?
1279 CALL wfi_retain(wf_history)
1280 CALL wfi_release(qs_env%wf_history)
1281 qs_env%wf_history => wf_history
1282 END IF
1283 IF (PRESENT(scf_env)) THEN ! accept also null pointers ?
1284 IF (ASSOCIATED(qs_env%scf_env)) THEN
1285 IF (.NOT. ASSOCIATED(qs_env%scf_env, scf_env)) THEN
1286 CALL scf_env_release(qs_env%scf_env)
1287 DEALLOCATE (qs_env%scf_env)
1288 END IF
1289 END IF
1290 qs_env%scf_env => scf_env
1291 END IF
1292 IF (PRESENT(xas_env)) THEN ! accept also null pointers?
1293 IF (ASSOCIATED(qs_env%xas_env)) THEN
1294 IF (.NOT. ASSOCIATED(qs_env%xas_env, xas_env)) THEN
1295 CALL xas_env_release(qs_env%xas_env)
1296 DEALLOCATE (qs_env%xas_env)
1297 END IF
1298 END IF
1299 qs_env%xas_env => xas_env
1300 END IF
1301 IF (PRESENT(mpools)) THEN
1302 CALL mpools_retain(mpools)
1303 CALL mpools_release(qs_env%mpools)
1304 qs_env%mpools => mpools
1305 END IF
1306 IF (PRESENT(rho_atom_set)) THEN
1307 CALL set_local_rho(qs_env%local_rho_set, rho_atom_set=rho_atom_set)
1308 END IF
1309 IF (PRESENT(rho0_atom_set)) THEN
1310 CALL set_local_rho(qs_env%local_rho_set, rho0_atom_set=rho0_atom_set)
1311 END IF
1312 IF (PRESENT(rho0_mpole)) THEN
1313 CALL set_local_rho(qs_env%local_rho_set, rho0_mpole=rho0_mpole)
1314 END IF
1315 IF (PRESENT(rhoz_set)) THEN
1316 CALL set_local_rho(qs_env%local_rho_set, rhoz_set=rhoz_set)
1317 END IF
1318 IF (PRESENT(rhoz_tot)) qs_env%local_rho_set%rhoz_tot = rhoz_tot
1319 IF (PRESENT(ecoul_1c)) THEN
1320 CALL set_hartree_local(qs_env%hartree_local, ecoul_1c=ecoul_1c)
1321 END IF
1322 IF (PRESENT(input)) THEN
1323 CALL section_vals_retain(input)
1324 CALL section_vals_release(qs_env%input)
1325 qs_env%input => input
1326 END IF
1327 IF (PRESENT(cp_ddapc_env)) THEN
1328 IF (ASSOCIATED(qs_env%cp_ddapc_env)) THEN
1329 IF (.NOT. ASSOCIATED(qs_env%cp_ddapc_env, cp_ddapc_env)) THEN
1330 CALL cp_ddapc_release(qs_env%cp_ddapc_env)
1331 DEALLOCATE (qs_env%cp_ddapc_env)
1332 END IF
1333 END IF
1334 qs_env%cp_ddapc_env => cp_ddapc_env
1335 END IF
1336 IF (PRESENT(cp_ddapc_ewald)) THEN
1337 qs_env%cp_ddapc_ewald => cp_ddapc_ewald
1338 END IF
1339 IF (PRESENT(x_data)) qs_env%x_data => x_data
1340 IF (PRESENT(et_coupling)) qs_env%et_coupling => et_coupling
1341 IF (PRESENT(dftb_potential)) qs_env%dftb_potential => dftb_potential
1342 IF (PRESENT(se_taper)) THEN
1343 CALL se_taper_release(qs_env%se_taper)
1344 qs_env%se_taper => se_taper
1345 END IF
1346 IF (PRESENT(se_store_int_env)) THEN
1347 CALL semi_empirical_si_release(qs_env%se_store_int_env)
1348 qs_env%se_store_int_env => se_store_int_env
1349 END IF
1350 IF (PRESENT(se_nddo_mpole)) THEN
1351 CALL nddo_mpole_release(qs_env%se_nddo_mpole)
1352 qs_env%se_nddo_mpole => se_nddo_mpole
1353 END IF
1354 IF (PRESENT(se_nonbond_env)) THEN
1355 IF (ASSOCIATED(qs_env%se_nonbond_env)) THEN
1356 IF (.NOT. ASSOCIATED(qs_env%se_nonbond_env, se_nonbond_env)) THEN
1357 CALL fist_nonbond_env_release(qs_env%se_nonbond_env)
1358 DEALLOCATE (qs_env%se_nonbond_env)
1359 END IF
1360 END IF
1361 qs_env%se_nonbond_env => se_nonbond_env
1362 END IF
1363 IF (PRESENT(admm_env)) qs_env%admm_env => admm_env
1364 IF (PRESENT(lri_env)) qs_env%lri_env => lri_env
1365 IF (PRESENT(lri_density)) qs_env%lri_density => lri_density
1366 IF (PRESENT(harris_env)) qs_env%harris_env => harris_env
1367 IF (PRESENT(ec_env)) qs_env%ec_env => ec_env
1368 IF (PRESENT(exstate_env)) qs_env%exstate_env => exstate_env
1369 IF (PRESENT(dispersion_env)) qs_env%dispersion_env => dispersion_env
1370 IF (PRESENT(gcp_env)) qs_env%gcp_env => gcp_env
1371 IF (PRESENT(wanniercentres)) qs_env%WannierCentres => wanniercentres
1372 IF (PRESENT(kpoints)) CALL set_ks_env(qs_env%ks_env, kpoints=kpoints)
1373
1374 ! EEQ charges
1375 IF (PRESENT(eeq)) qs_env%eeq => eeq
1376
1377 ! Resp charges
1378 IF (PRESENT(rhs)) qs_env%rhs => rhs
1379
1380 IF (PRESENT(force)) THEN
1381 CALL get_qs_env(qs_env, subsys=subsys)
1382 CALL qs_subsys_set(subsys, force=force)
1383 END IF
1384
1385 IF (PRESENT(tb_tblite)) qs_env%tb_tblite => tb_tblite
1386
1387 END SUBROUTINE set_qs_env
1388
1389! **************************************************************************************************
1390!> \brief allocates and intitializes a qs_env
1391!> \param qs_env the object to create
1392!> \param globenv ...
1393!> \par History
1394!> 12.2002 created [fawzi]
1395!> \author Fawzi Mohamed
1396! **************************************************************************************************
1397 SUBROUTINE qs_env_create(qs_env, globenv)
1398 TYPE(qs_environment_type), INTENT(OUT) :: qs_env
1399 TYPE(global_environment_type), OPTIONAL, POINTER :: globenv
1400
1401 CALL init_qs_env(qs_env, globenv=globenv)
1402 END SUBROUTINE qs_env_create
1403
1404! **************************************************************************************************
1405!> \brief releases the given qs_env (see doc/ReferenceCounting.html)
1406!> \param qs_env the object to release
1407!> \par History
1408!> 12.2002 created [fawzi]
1409!> 06.2018 polar_env added (MK)
1410!> \author Fawzi Mohamed
1411! **************************************************************************************************
1412 SUBROUTINE qs_env_release(qs_env)
1413 TYPE(qs_environment_type), INTENT(INOUT) :: qs_env
1414
1415 INTEGER :: i
1416
1417 CALL cell_release(qs_env%super_cell)
1418 IF (ASSOCIATED(qs_env%mos)) THEN
1419 DO i = 1, SIZE(qs_env%mos)
1420 CALL deallocate_mo_set(qs_env%mos(i))
1421 END DO
1422 DEALLOCATE (qs_env%mos)
1423 END IF
1424 IF (ASSOCIATED(qs_env%mos_last_converged)) THEN
1425 DO i = 1, SIZE(qs_env%mos_last_converged)
1426 CALL deallocate_mo_set(qs_env%mos_last_converged(i))
1427 END DO
1428 DEALLOCATE (qs_env%mos_last_converged)
1429 END IF
1430
1431 IF (ASSOCIATED(qs_env%mo_derivs)) THEN
1432 DO i = 1, SIZE(qs_env%mo_derivs)
1433 CALL dbcsr_release_p(qs_env%mo_derivs(i)%matrix)
1434 END DO
1435 DEALLOCATE (qs_env%mo_derivs)
1436 END IF
1437
1438 CALL cp_fm_release(qs_env%mo_loc_history)
1439
1440 IF (ASSOCIATED(qs_env%rtp)) THEN
1441 CALL rt_prop_release(qs_env%rtp)
1442 DEALLOCATE (qs_env%rtp)
1443 END IF
1444 IF (ASSOCIATED(qs_env%outer_scf_history)) THEN
1445 DEALLOCATE (qs_env%outer_scf_history)
1446 qs_env%outer_scf_ihistory = 0
1447 END IF
1448 IF (ASSOCIATED(qs_env%gradient_history)) &
1449 DEALLOCATE (qs_env%gradient_history)
1450 IF (ASSOCIATED(qs_env%variable_history)) &
1451 DEALLOCATE (qs_env%variable_history)
1452 IF (ASSOCIATED(qs_env%oce)) CALL deallocate_oce_set(qs_env%oce)
1453 IF (ASSOCIATED(qs_env%local_rho_set)) THEN
1454 CALL local_rho_set_release(qs_env%local_rho_set)
1455 END IF
1456 IF (ASSOCIATED(qs_env%hartree_local)) THEN
1457 CALL hartree_local_release(qs_env%hartree_local)
1458 END IF
1459 IF (ASSOCIATED(qs_env%scf_control)) THEN
1460 CALL scf_c_release(qs_env%scf_control)
1461 DEALLOCATE (qs_env%scf_control)
1462 END IF
1463 IF (ASSOCIATED(qs_env%rel_control)) THEN
1464 CALL rel_c_release(qs_env%rel_control)
1465 DEALLOCATE (qs_env%rel_control)
1466 END IF
1467
1468 IF (ASSOCIATED(qs_env%linres_control)) THEN
1469 CALL linres_control_release(qs_env%linres_control)
1470 DEALLOCATE (qs_env%linres_control)
1471 END IF
1472
1473 IF (ASSOCIATED(qs_env%almo_scf_env)) THEN
1474 CALL almo_scf_env_release(qs_env%almo_scf_env)
1475 END IF
1476
1477 IF (ASSOCIATED(qs_env%ls_scf_env)) THEN
1478 CALL ls_scf_release(qs_env%ls_scf_env)
1479 END IF
1480 IF (ASSOCIATED(qs_env%molecular_scf_guess_env)) THEN
1481 CALL molecular_scf_guess_env_destroy(qs_env%molecular_scf_guess_env)
1482 DEALLOCATE (qs_env%molecular_scf_guess_env)
1483 END IF
1484
1485 IF (ASSOCIATED(qs_env%transport_env)) THEN
1486 CALL transport_env_release(qs_env%transport_env)
1487 END IF
1488
1489 !Only if do_xas_calculation
1490 IF (ASSOCIATED(qs_env%xas_env)) THEN
1491 CALL xas_env_release(qs_env%xas_env)
1492 DEALLOCATE (qs_env%xas_env)
1493 END IF
1494 IF (ASSOCIATED(qs_env%ewald_env)) THEN
1495 CALL ewald_env_release(qs_env%ewald_env)
1496 DEALLOCATE (qs_env%ewald_env)
1497 END IF
1498 IF (ASSOCIATED(qs_env%ewald_pw)) THEN
1499 CALL ewald_pw_release(qs_env%ewald_pw)
1500 DEALLOCATE (qs_env%ewald_pw)
1501 END IF
1502 IF (ASSOCIATED(qs_env%image_matrix)) THEN
1503 DEALLOCATE (qs_env%image_matrix)
1504 END IF
1505 IF (ASSOCIATED(qs_env%ipiv)) THEN
1506 DEALLOCATE (qs_env%ipiv)
1507 END IF
1508 IF (ASSOCIATED(qs_env%image_coeff)) THEN
1509 DEALLOCATE (qs_env%image_coeff)
1510 END IF
1511 ! ZMP
1512 IF (ASSOCIATED(qs_env%rho_external)) THEN
1513 CALL qs_rho_release(qs_env%rho_external)
1514 DEALLOCATE (qs_env%rho_external)
1515 END IF
1516 IF (ASSOCIATED(qs_env%external_vxc)) THEN
1517 CALL qs_env%external_vxc%release()
1518 DEALLOCATE (qs_env%external_vxc)
1519 END IF
1520 IF (ASSOCIATED(qs_env%mask)) THEN
1521 CALL qs_env%mask%release()
1522 DEALLOCATE (qs_env%mask)
1523 END IF
1524 IF (ASSOCIATED(qs_env%active_space)) THEN
1525 CALL release_active_space_type(qs_env%active_space)
1526 END IF
1527 ! Embedding potentials if provided as input
1528 IF (qs_env%given_embed_pot) THEN
1529 CALL qs_env%embed_pot%release()
1530 DEALLOCATE (qs_env%embed_pot)
1531 IF (ASSOCIATED(qs_env%spin_embed_pot)) THEN
1532 CALL qs_env%spin_embed_pot%release()
1533 DEALLOCATE (qs_env%spin_embed_pot)
1534 END IF
1535 END IF
1536
1537 ! Polarisability tensor
1538 CALL polar_env_release(qs_env%polar_env)
1539
1540 IF (ASSOCIATED(qs_env%qs_charges)) THEN
1541 CALL qs_charges_release(qs_env%qs_charges)
1542 DEALLOCATE (qs_env%qs_charges)
1543 END IF
1544 IF (ASSOCIATED(qs_env%ks_env)) THEN
1545 CALL qs_ks_release(qs_env%ks_env)
1546 DEALLOCATE (qs_env%ks_env)
1547 END IF
1548 IF (ASSOCIATED(qs_env%ks_qmmm_env)) THEN
1549 CALL qs_ks_qmmm_release(qs_env%ks_qmmm_env)
1550 DEALLOCATE (qs_env%ks_qmmm_env)
1551 END IF
1552 CALL wfi_release(qs_env%wf_history)
1553 IF (ASSOCIATED(qs_env%scf_env)) THEN
1554 CALL scf_env_release(qs_env%scf_env)
1555 DEALLOCATE (qs_env%scf_env)
1556 END IF
1557 CALL mpools_release(qs_env%mpools)
1558 CALL section_vals_release(qs_env%input)
1559 IF (ASSOCIATED(qs_env%cp_ddapc_env)) THEN
1560 CALL cp_ddapc_release(qs_env%cp_ddapc_env)
1561 DEALLOCATE (qs_env%cp_ddapc_env)
1562 END IF
1563 CALL cp_ddapc_ewald_release(qs_env%cp_ddapc_ewald)
1564 CALL efield_berry_release(qs_env%efield)
1565 IF (ASSOCIATED(qs_env%x_data)) THEN
1566 CALL hfx_release(qs_env%x_data)
1567 END IF
1568 IF (ASSOCIATED(qs_env%et_coupling)) THEN
1569 CALL et_coupling_release(qs_env%et_coupling)
1570 END IF
1571 IF (ASSOCIATED(qs_env%dftb_potential)) THEN
1572 CALL qs_dftb_pairpot_release(qs_env%dftb_potential)
1573 END IF
1574 IF (ASSOCIATED(qs_env%se_taper)) THEN
1575 CALL se_taper_release(qs_env%se_taper)
1576 END IF
1577 IF (ASSOCIATED(qs_env%se_store_int_env)) THEN
1578 CALL semi_empirical_si_release(qs_env%se_store_int_env)
1579 END IF
1580 IF (ASSOCIATED(qs_env%se_nddo_mpole)) THEN
1581 CALL nddo_mpole_release(qs_env%se_nddo_mpole)
1582 END IF
1583 IF (ASSOCIATED(qs_env%se_nonbond_env)) THEN
1584 CALL fist_nonbond_env_release(qs_env%se_nonbond_env)
1585 DEALLOCATE (qs_env%se_nonbond_env)
1586 END IF
1587 IF (ASSOCIATED(qs_env%admm_env)) THEN
1588 CALL admm_env_release(qs_env%admm_env)
1589 END IF
1590 IF (ASSOCIATED(qs_env%lri_env)) THEN
1591 CALL lri_env_release(qs_env%lri_env)
1592 DEALLOCATE (qs_env%lri_env)
1593 END IF
1594 IF (ASSOCIATED(qs_env%lri_density)) THEN
1595 CALL lri_density_release(qs_env%lri_density)
1596 DEALLOCATE (qs_env%lri_density)
1597 END IF
1598 IF (ASSOCIATED(qs_env%harris_env)) THEN
1599 CALL harris_env_release(qs_env%harris_env)
1600 END IF
1601 IF (ASSOCIATED(qs_env%ec_env)) THEN
1602 CALL ec_env_release(qs_env%ec_env)
1603 END IF
1604 IF (ASSOCIATED(qs_env%exstate_env)) THEN
1605 CALL exstate_release(qs_env%exstate_env)
1606 END IF
1607 IF (ASSOCIATED(qs_env%mp2_env)) THEN
1608 CALL mp2_env_release(qs_env%mp2_env)
1609 DEALLOCATE (qs_env%mp2_env)
1610 NULLIFY (qs_env%mp2_env)
1611 END IF
1612 IF (ASSOCIATED(qs_env%bs_env)) THEN
1613 CALL bs_env_release(qs_env%bs_env)
1614 END IF
1615 IF (ASSOCIATED(qs_env%kg_env)) THEN
1616 CALL kg_env_release(qs_env%kg_env)
1617 END IF
1618
1619 ! dispersion
1620 CALL qs_dispersion_release(qs_env%dispersion_env)
1621 ! gCP
1622 IF (ASSOCIATED(qs_env%gcp_env)) THEN
1623 CALL qs_gcp_release(qs_env%gcp_env)
1624 END IF
1625
1626 IF (ASSOCIATED(qs_env%WannierCentres)) THEN
1627 DO i = 1, SIZE(qs_env%WannierCentres)
1628 DEALLOCATE (qs_env%WannierCentres(i)%WannierHamDiag)
1629 DEALLOCATE (qs_env%WannierCentres(i)%centres)
1630 END DO
1631 DEALLOCATE (qs_env%WannierCentres)
1632 END IF
1633 ! EEQ charges
1634 IF (ASSOCIATED(qs_env%eeq)) DEALLOCATE (qs_env%eeq)
1635 ! Resp charges
1636 IF (ASSOCIATED(qs_env%rhs)) DEALLOCATE (qs_env%rhs)
1637
1638 ! tblite
1639 IF (ASSOCIATED(qs_env%tb_tblite)) THEN
1640 CALL deallocate_tblite_type(qs_env%tb_tblite)
1641 END IF
1642
1643 END SUBROUTINE qs_env_release
1644
1645! **************************************************************************************************
1646!> \brief releases part of the given qs_env in order to save memory
1647!> \param qs_env the object to release
1648!> \par History
1649!> 04.2022 created [JGH]
1650! **************************************************************************************************
1651 SUBROUTINE qs_env_part_release(qs_env)
1652 TYPE(qs_environment_type), INTENT(INOUT) :: qs_env
1653
1654 INTEGER :: i
1655
1656 IF (ASSOCIATED(qs_env%mos_last_converged)) THEN
1657 DO i = 1, SIZE(qs_env%mos_last_converged)
1658 CALL deallocate_mo_set(qs_env%mos_last_converged(i))
1659 END DO
1660 DEALLOCATE (qs_env%mos_last_converged)
1661 END IF
1662
1663 IF (ASSOCIATED(qs_env%mo_derivs)) THEN
1664 DO i = 1, SIZE(qs_env%mo_derivs)
1665 CALL dbcsr_release_p(qs_env%mo_derivs(i)%matrix)
1666 END DO
1667 DEALLOCATE (qs_env%mo_derivs)
1668 END IF
1669
1670 CALL cp_fm_release(qs_env%mo_loc_history)
1671
1672 IF (ASSOCIATED(qs_env%rtp)) THEN
1673 CALL rt_prop_release(qs_env%rtp)
1674 DEALLOCATE (qs_env%rtp)
1675 END IF
1676 IF (ASSOCIATED(qs_env%outer_scf_history)) THEN
1677 DEALLOCATE (qs_env%outer_scf_history)
1678 qs_env%outer_scf_ihistory = 0
1679 END IF
1680 IF (ASSOCIATED(qs_env%gradient_history)) &
1681 DEALLOCATE (qs_env%gradient_history)
1682 IF (ASSOCIATED(qs_env%variable_history)) &
1683 DEALLOCATE (qs_env%variable_history)
1684 IF (ASSOCIATED(qs_env%oce)) CALL deallocate_oce_set(qs_env%oce)
1685 IF (ASSOCIATED(qs_env%local_rho_set)) THEN
1686 CALL local_rho_set_release(qs_env%local_rho_set)
1687 END IF
1688 IF (ASSOCIATED(qs_env%hartree_local)) THEN
1689 CALL hartree_local_release(qs_env%hartree_local)
1690 END IF
1691 IF (ASSOCIATED(qs_env%scf_control)) THEN
1692 CALL scf_c_release(qs_env%scf_control)
1693 DEALLOCATE (qs_env%scf_control)
1694 END IF
1695 IF (ASSOCIATED(qs_env%rel_control)) THEN
1696 CALL rel_c_release(qs_env%rel_control)
1697 DEALLOCATE (qs_env%rel_control)
1698 END IF
1699
1700 IF (ASSOCIATED(qs_env%linres_control)) THEN
1701 CALL linres_control_release(qs_env%linres_control)
1702 DEALLOCATE (qs_env%linres_control)
1703 END IF
1704
1705 IF (ASSOCIATED(qs_env%almo_scf_env)) THEN
1706 CALL almo_scf_env_release(qs_env%almo_scf_env)
1707 END IF
1708
1709 IF (ASSOCIATED(qs_env%ls_scf_env)) THEN
1710 CALL ls_scf_release(qs_env%ls_scf_env)
1711 END IF
1712 IF (ASSOCIATED(qs_env%molecular_scf_guess_env)) THEN
1713 CALL molecular_scf_guess_env_destroy(qs_env%molecular_scf_guess_env)
1714 DEALLOCATE (qs_env%molecular_scf_guess_env)
1715 END IF
1716
1717 IF (ASSOCIATED(qs_env%transport_env)) THEN
1718 CALL transport_env_release(qs_env%transport_env)
1719 END IF
1720
1721 !Only if do_xas_calculation
1722 IF (ASSOCIATED(qs_env%xas_env)) THEN
1723 CALL xas_env_release(qs_env%xas_env)
1724 DEALLOCATE (qs_env%xas_env)
1725 END IF
1726 IF (ASSOCIATED(qs_env%ewald_env)) THEN
1727 CALL ewald_env_release(qs_env%ewald_env)
1728 DEALLOCATE (qs_env%ewald_env)
1729 END IF
1730 IF (ASSOCIATED(qs_env%ewald_pw)) THEN
1731 CALL ewald_pw_release(qs_env%ewald_pw)
1732 DEALLOCATE (qs_env%ewald_pw)
1733 END IF
1734 IF (ASSOCIATED(qs_env%image_matrix)) THEN
1735 DEALLOCATE (qs_env%image_matrix)
1736 END IF
1737 IF (ASSOCIATED(qs_env%ipiv)) THEN
1738 DEALLOCATE (qs_env%ipiv)
1739 END IF
1740 IF (ASSOCIATED(qs_env%image_coeff)) THEN
1741 DEALLOCATE (qs_env%image_coeff)
1742 END IF
1743 ! ZMP
1744 IF (ASSOCIATED(qs_env%rho_external)) THEN
1745 CALL qs_rho_release(qs_env%rho_external)
1746 DEALLOCATE (qs_env%rho_external)
1747 END IF
1748 IF (ASSOCIATED(qs_env%external_vxc)) THEN
1749 CALL qs_env%external_vxc%release()
1750 DEALLOCATE (qs_env%external_vxc)
1751 END IF
1752 IF (ASSOCIATED(qs_env%mask)) THEN
1753 CALL qs_env%mask%release()
1754 DEALLOCATE (qs_env%mask)
1755 END IF
1756 IF (ASSOCIATED(qs_env%active_space)) THEN
1757 CALL release_active_space_type(qs_env%active_space)
1758 END IF
1759 ! Embedding potentials if provided as input
1760 IF (qs_env%given_embed_pot) THEN
1761 CALL qs_env%embed_pot%release()
1762 DEALLOCATE (qs_env%embed_pot)
1763 IF (ASSOCIATED(qs_env%spin_embed_pot)) THEN
1764 CALL qs_env%spin_embed_pot%release()
1765 DEALLOCATE (qs_env%spin_embed_pot)
1766 END IF
1767 END IF
1768
1769 ! Polarisability tensor
1770 CALL polar_env_release(qs_env%polar_env)
1771
1772 IF (ASSOCIATED(qs_env%qs_charges)) THEN
1773 CALL qs_charges_release(qs_env%qs_charges)
1774 DEALLOCATE (qs_env%qs_charges)
1775 END IF
1776 CALL qs_ks_part_release(qs_env%ks_env)
1777 IF (ASSOCIATED(qs_env%ks_qmmm_env)) THEN
1778 CALL qs_ks_qmmm_release(qs_env%ks_qmmm_env)
1779 DEALLOCATE (qs_env%ks_qmmm_env)
1780 END IF
1781 CALL wfi_release(qs_env%wf_history)
1782 IF (ASSOCIATED(qs_env%scf_env)) THEN
1783 CALL scf_env_release(qs_env%scf_env)
1784 DEALLOCATE (qs_env%scf_env)
1785 END IF
1786 IF (ASSOCIATED(qs_env%cp_ddapc_env)) THEN
1787 CALL cp_ddapc_release(qs_env%cp_ddapc_env)
1788 DEALLOCATE (qs_env%cp_ddapc_env)
1789 END IF
1790 CALL cp_ddapc_ewald_release(qs_env%cp_ddapc_ewald)
1791 CALL efield_berry_release(qs_env%efield)
1792 IF (ASSOCIATED(qs_env%x_data)) THEN
1793 CALL hfx_release(qs_env%x_data)
1794 END IF
1795 IF (ASSOCIATED(qs_env%et_coupling)) THEN
1796 CALL et_coupling_release(qs_env%et_coupling)
1797 END IF
1798 IF (ASSOCIATED(qs_env%dftb_potential)) THEN
1799 CALL qs_dftb_pairpot_release(qs_env%dftb_potential)
1800 END IF
1801 IF (ASSOCIATED(qs_env%se_taper)) THEN
1802 CALL se_taper_release(qs_env%se_taper)
1803 END IF
1804 IF (ASSOCIATED(qs_env%se_store_int_env)) THEN
1805 CALL semi_empirical_si_release(qs_env%se_store_int_env)
1806 END IF
1807 IF (ASSOCIATED(qs_env%se_nddo_mpole)) THEN
1808 CALL nddo_mpole_release(qs_env%se_nddo_mpole)
1809 END IF
1810 IF (ASSOCIATED(qs_env%se_nonbond_env)) THEN
1811 CALL fist_nonbond_env_release(qs_env%se_nonbond_env)
1812 DEALLOCATE (qs_env%se_nonbond_env)
1813 END IF
1814 IF (ASSOCIATED(qs_env%admm_env)) THEN
1815 CALL admm_env_release(qs_env%admm_env)
1816 END IF
1817 IF (ASSOCIATED(qs_env%lri_env)) THEN
1818 CALL lri_env_release(qs_env%lri_env)
1819 DEALLOCATE (qs_env%lri_env)
1820 END IF
1821 IF (ASSOCIATED(qs_env%lri_density)) THEN
1822 CALL lri_density_release(qs_env%lri_density)
1823 DEALLOCATE (qs_env%lri_density)
1824 END IF
1825 IF (ASSOCIATED(qs_env%harris_env)) THEN
1826 CALL harris_env_release(qs_env%harris_env)
1827 END IF
1828 IF (ASSOCIATED(qs_env%ec_env)) THEN
1829 CALL ec_env_release(qs_env%ec_env)
1830 END IF
1831 IF (ASSOCIATED(qs_env%exstate_env)) THEN
1832 CALL exstate_release(qs_env%exstate_env)
1833 END IF
1834 IF (ASSOCIATED(qs_env%mp2_env)) THEN
1835 CALL mp2_env_release(qs_env%mp2_env)
1836 DEALLOCATE (qs_env%mp2_env)
1837 NULLIFY (qs_env%mp2_env)
1838 END IF
1839 IF (ASSOCIATED(qs_env%kg_env)) THEN
1840 CALL kg_env_release(qs_env%kg_env)
1841 END IF
1842
1843 ! dispersion
1844 CALL qs_dispersion_release(qs_env%dispersion_env)
1845 ! gCP
1846 IF (ASSOCIATED(qs_env%gcp_env)) THEN
1847 CALL qs_gcp_release(qs_env%gcp_env)
1848 END IF
1849
1850 IF (ASSOCIATED(qs_env%WannierCentres)) THEN
1851 DO i = 1, SIZE(qs_env%WannierCentres)
1852 DEALLOCATE (qs_env%WannierCentres(i)%WannierHamDiag)
1853 DEALLOCATE (qs_env%WannierCentres(i)%centres)
1854 END DO
1855 DEALLOCATE (qs_env%WannierCentres)
1856 END IF
1857 ! EEQ charges
1858 IF (ASSOCIATED(qs_env%eeq)) DEALLOCATE (qs_env%eeq)
1859 ! Resp charges
1860 IF (ASSOCIATED(qs_env%rhs)) DEALLOCATE (qs_env%rhs)
1861
1862 ! tblite
1863 IF (ASSOCIATED(qs_env%tb_tblite)) THEN
1864 CALL deallocate_tblite_type(qs_env%tb_tblite)
1865 END IF
1866
1867 END SUBROUTINE qs_env_part_release
1868
1869END MODULE qs_environment_types
Types and set/get functions for auxiliary density matrix methods.
Definition admm_types.F:15
subroutine, public admm_env_release(admm_env)
releases the ADMM environment, cleans up all types
Definition admm_types.F:426
Types for all ALMO-based methods.
subroutine, public almo_scf_env_release(almo_scf_env)
release the almo scf envirnoment
Define the atomic kind types and their sub types.
Holds information on atomic properties.
Handles all functions related to the CELL.
Definition cell_types.F:15
subroutine, public cell_release(cell)
releases the given cell (see doc/ReferenceCounting.html)
Definition cell_types.F:559
subroutine, public cell_retain(cell)
retains the given cell (see doc/ReferenceCounting.html)
Definition cell_types.F:542
methods related to the blacs parallel environment
Defines control structures, which contain the parameters and the settings for the DFT-based calculati...
subroutine, public dbcsr_release_p(matrix)
...
contains information regarding the decoupling/recoupling method of Bloechl
subroutine, public cp_ddapc_release(cp_ddapc_env)
...
subroutine, public cp_ddapc_ewald_release(cp_ddapc_ewald)
...
represent a full matrix distributed on many processors
Definition cp_fm_types.F:15
set of type/routines to handle the storage of results in force_envs
types that represent a subsys, i.e. a part of the system
stores a lists of integer that are local to a processor. The idea is that these integers represent ob...
stores a mapping of 2D info (e.g. matrix) on a 2D processor distribution (i.e. blacs grid) where cpus...
Types needed for a linear scaling quickstep SCF run based on the density matrix.
subroutine, public ls_scf_release(ls_scf_env)
release the LS type.
Types needed for a for a Energy Correction.
subroutine, public ec_env_release(ec_env)
...
Definition and initialisation of the et_coupling data type.
subroutine, public et_coupling_release(et_coupling)
...
calculates the electron transfer coupling elements Wu, Van Voorhis, JCP 125, 164105 (2006)
Definition et_coupling.F:13
subroutine, public ewald_env_release(ewald_env)
releases the given ewald_env (see doc/ReferenceCounting.html)
subroutine, public ewald_pw_release(ewald_pw)
releases the memory used by the ewald_pw
Types for excited states potential energies.
subroutine, public exstate_release(ex_env)
...
subroutine, public fist_nonbond_env_release(fist_nonbond_env)
releases the given fist_nonbond_env (see doc/ReferenceCounting.html)
Define type storing the global information of a run. Keep the amount of stored data small....
subroutine, public get_hartree_local(hartree_local, ecoul_1c)
...
subroutine, public set_hartree_local(hartree_local, ecoul_1c)
...
subroutine, public hartree_local_release(hartree_local)
...
subroutine, public hartree_local_create(hartree_local)
...
Types and set/get functions for HFX.
Definition hfx_types.F:15
subroutine, public hfx_release(x_data)
This routine deallocates all data structures
Definition hfx_types.F:1910
collects all constants needed in input so that they can be used without circular dependencies
integer, parameter, public energy_run
integer, parameter, public energy_force_run
objects that represent the structure of input sections and the data contained in an input section
subroutine, public section_vals_retain(section_vals)
retains the given section values (see doc/ReferenceCounting.html)
recursive subroutine, public section_vals_release(section_vals)
releases the given object
Types needed for a Kim-Gordon-like partitioning into molecular subunits.
subroutine, public kg_env_release(kg_env)
...
Defines the basic variable types.
Definition kinds.F:23
integer, parameter, public dp
Definition kinds.F:34
Types and basic routines needed for a kpoint calculation.
contains the types and subroutines for dealing with the lri_env lri : local resolution of the identit...
subroutine, public lri_density_release(lri_density)
releases the given lri_density
subroutine, public lri_env_release(lri_env)
releases the given lri_env
Interface to the message passing library MPI.
Define the molecule kind structure types and the corresponding functionality.
Define the data structure for the molecule information.
Types needed for MP2 calculations.
Definition mp2_types.F:14
subroutine, public mp2_env_release(mp2_env)
...
Definition mp2_types.F:436
Types used to generate the molecular SCF guess.
Definition mscfg_types.F:14
subroutine, public molecular_scf_guess_env_destroy(env)
Destroyes both data and environment.
Definition mscfg_types.F:94
Define the data structure for the particle information.
subroutine, public bs_env_release(bs_env)
...
container for various plainwaves related things
The types needed for the calculation of active space Hamiltonians.
subroutine, public release_active_space_type(active_space_env)
Releases all quantities in the active space environment.
container for information about total charges on the grids
subroutine, public qs_charges_release(qs_charges)
releases the charges object (see cp2k/doc/ReferenceCounting.html)
Definition of the DFTB parameter types.
subroutine, public qs_dftb_pairpot_release(pairpot)
...
Definition of disperson types for DFT calculations.
subroutine, public qs_dispersion_release(dispersion_env)
...
subroutine, public qs_env_release(qs_env)
releases the given qs_env (see doc/ReferenceCounting.html)
subroutine, public get_qs_env(qs_env, atomic_kind_set, qs_kind_set, cell, super_cell, cell_ref, use_ref_cell, kpoints, dft_control, mos, sab_orb, sab_all, qmmm, qmmm_periodic, sac_ae, sac_ppl, sac_lri, sap_ppnl, sab_vdw, sab_scp, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_almo, sab_kp, sab_kp_nosym, particle_set, energy, force, matrix_h, matrix_h_im, matrix_ks, matrix_ks_im, matrix_vxc, run_rtp, rtp, matrix_h_kp, matrix_h_im_kp, matrix_ks_kp, matrix_ks_im_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, matrix_s_ri_aux_kp, matrix_s, matrix_s_ri_aux, matrix_w, matrix_p_mp2, matrix_p_mp2_admm, rho, rho_xc, pw_env, ewald_env, ewald_pw, active_space, mpools, input, para_env, blacs_env, scf_control, rel_control, kinetic, qs_charges, vppl, rho_core, rho_nlcc, rho_nlcc_g, ks_env, ks_qmmm_env, wf_history, scf_env, local_particles, local_molecules, distribution_2d, dbcsr_dist, molecule_kind_set, molecule_set, subsys, cp_subsys, oce, local_rho_set, rho_atom_set, task_list, task_list_soft, rho0_atom_set, rho0_mpole, rhoz_set, ecoul_1c, rho0_s_rs, rho0_s_gs, do_kpoints, has_unit_metric, requires_mo_derivs, mo_derivs, mo_loc_history, nkind, natom, nelectron_total, nelectron_spin, efield, neighbor_list_id, linres_control, xas_env, virial, cp_ddapc_env, cp_ddapc_ewald, outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, results, se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, lri_env, lri_density, exstate_env, ec_env, harris_env, dispersion_env, gcp_env, vee, rho_external, external_vxc, mask, mp2_env, bs_env, kg_env, wanniercentres, atprop, ls_scf_env, do_transport, transport_env, v_hartree_rspace, s_mstruct_changed, rho_changed, potential_changed, forces_up_to_date, mscfg_env, almo_scf_env, gradient_history, variable_history, embed_pot, spin_embed_pot, polar_env, mos_last_converged, eeq, rhs, do_rixs, tb_tblite)
Get the QUICKSTEP environment.
subroutine, public set_qs_env(qs_env, super_cell, mos, qmmm, qmmm_periodic, ewald_env, ewald_pw, mpools, rho_external, external_vxc, mask, scf_control, rel_control, qs_charges, ks_env, ks_qmmm_env, wf_history, scf_env, active_space, input, oce, rho_atom_set, rho0_atom_set, rho0_mpole, run_rtp, rtp, rhoz_set, rhoz_tot, ecoul_1c, has_unit_metric, requires_mo_derivs, mo_derivs, mo_loc_history, efield, linres_control, xas_env, cp_ddapc_env, cp_ddapc_ewald, outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, ls_scf_env, do_transport, transport_env, lri_env, lri_density, exstate_env, ec_env, dispersion_env, harris_env, gcp_env, mp2_env, bs_env, kg_env, force, kpoints, wanniercentres, almo_scf_env, gradient_history, variable_history, embed_pot, spin_embed_pot, polar_env, mos_last_converged, eeq, rhs, do_rixs, tb_tblite)
Set the QUICKSTEP environment.
subroutine, public qs_env_part_release(qs_env)
releases part of the given qs_env in order to save memory
subroutine, public qs_env_create(qs_env, globenv)
allocates and intitializes a qs_env
Definition of gCP types for DFT calculations.
subroutine, public qs_gcp_release(gcp_env)
...
Types needed for a for a Harris model calculation.
subroutine, public harris_env_release(harris_env)
...
Define the quickstep kind type and their sub types.
subroutine, public qs_ks_qmmm_release(ks_qmmm_env)
releases the ks_qmmm_env (see doc/ReferenceCounting.html)
subroutine, public set_ks_env(ks_env, v_hartree_rspace, s_mstruct_changed, rho_changed, potential_changed, forces_up_to_date, complex_ks, matrix_h, matrix_h_im, matrix_ks, matrix_ks_im, matrix_vxc, kinetic, matrix_s, matrix_s_ri_aux, matrix_w, matrix_p_mp2, matrix_p_mp2_admm, matrix_h_kp, matrix_h_im_kp, matrix_ks_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, matrix_s_ri_aux_kp, matrix_ks_im_kp, vppl, rho_core, rho_nlcc, rho_nlcc_g, vee, neighbor_list_id, kpoints, sab_orb, sab_all, sac_ae, sac_ppl, sac_lri, sap_ppnl, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_vdw, sab_scp, sab_almo, sab_kp, sab_kp_nosym, task_list, task_list_soft, subsys, dft_control, dbcsr_dist, distribution_2d, pw_env, para_env, blacs_env)
...
subroutine, public qs_ks_release(ks_env)
releases the ks_env (see doc/ReferenceCounting.html)
subroutine, public get_ks_env(ks_env, v_hartree_rspace, s_mstruct_changed, rho_changed, potential_changed, forces_up_to_date, complex_ks, matrix_h, matrix_h_im, matrix_ks, matrix_ks_im, matrix_vxc, kinetic, matrix_s, matrix_s_ri_aux, matrix_w, matrix_p_mp2, matrix_p_mp2_admm, matrix_h_kp, matrix_h_im_kp, matrix_ks_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, matrix_s_ri_aux_kp, matrix_ks_im_kp, rho, rho_xc, vppl, rho_core, rho_nlcc, rho_nlcc_g, vee, neighbor_list_id, sab_orb, sab_all, sac_ae, sac_ppl, sac_lri, sap_ppnl, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_vdw, sab_scp, sab_almo, sab_kp, sab_kp_nosym, task_list, task_list_soft, kpoints, do_kpoints, atomic_kind_set, qs_kind_set, cell, cell_ref, use_ref_cell, particle_set, energy, force, local_particles, local_molecules, molecule_kind_set, molecule_set, subsys, cp_subsys, virial, results, atprop, nkind, natom, dft_control, dbcsr_dist, distribution_2d, pw_env, para_env, blacs_env, nelectron_total, nelectron_spin)
...
subroutine, public qs_ks_part_release(ks_env)
releases part of the ks_env
Type definitiona for linear response calculations.
subroutine, public polar_env_release(polar_env)
Deallocate the polar environment.
subroutine, public linres_control_release(linres_control)
...
subroutine, public local_rho_set_create(local_rho_set)
...
subroutine, public local_rho_set_release(local_rho_set)
...
subroutine, public set_local_rho(local_rho_set, rho_atom_set, rho0_atom_set, rho0_mpole, rhoz_set)
...
subroutine, public get_local_rho(local_rho_set, rho_atom_set, rho0_atom_set, rho0_mpole, rhoz_set)
...
wrapper for the pools of matrixes
subroutine, public mpools_release(mpools)
releases the given mpools
subroutine, public mpools_retain(mpools)
retains the given qs_matrix_pools_type
Definition and initialisation of the mo data type.
Definition qs_mo_types.F:22
subroutine, public deallocate_mo_set(mo_set)
Deallocate a wavefunction data structure.
Define the neighbor list data types and the corresponding functionality.
subroutine, public deallocate_oce_set(oce_set)
Deallocate the matrix set of oce coefficients.
type for berry phase efield matrices. At the moment only used for cosmat and sinmat
subroutine, public efield_berry_release(efield)
...
superstucture that hold various representations of the density and keeps track of which ones are vali...
subroutine, public qs_rho_release(rho_struct)
releases a rho_struct by decreasing the reference count by one and deallocating if it reaches 0 (to b...
module that contains the definitions of the scf types
subroutine, public scf_env_release(scf_env)
releases an scf_env (see doc/ReferenceCounting.html)
types that represent a quickstep subsys
subroutine, public qs_subsys_set(subsys, cp_subsys, local_particles, local_molecules, cell, cell_ref, use_ref_cell, energy, force, qs_kind_set, nelectron_total, nelectron_spin)
...
interpolate the wavefunctions to speed up the convergence when doing MD
subroutine, public wfi_retain(wf_history)
retains a wf history (see doc/ReferenceCounting.html)
subroutine, public wfi_release(wf_history)
releases a wf_history of a wavefunction (see doc/ReferenceCounting.html)
parameters that control a relativistic calculation
subroutine, public rel_c_release(rel_control)
releases the given rel_control (see cp2k/doc/ReferenceCounting.html)
Types and set_get for real time propagation depending on runtype and diagonalization method different...
subroutine, public rt_prop_release(rtp)
...
parameters that control an scf iteration
subroutine, public scf_c_release(scf_control)
releases the given scf_control (see cp2k/doc/ReferenceCounting.html)
Definition of the semi empirical multipole integral expansions types.
subroutine, public nddo_mpole_release(nddo_mpole)
Deallocate NDDO multipole type.
Type to store integrals for semi-empirical calculations.
subroutine, public semi_empirical_si_release(store_int_env)
Deallocate the semi-empirical store integrals type.
Definition of the semi empirical parameter types.
subroutine, public se_taper_release(se_taper)
Releases the taper type used in SE calculations.
types for task lists
types for tblite
subroutine, public deallocate_tblite_type(tb_tblite)
...
CP2K transport environment and related C-interoperable types.
subroutine, public transport_env_release(transport_env)
releases the transport_env
defines the type needed for computing wannier states expectations
define create destroy get and put information in xas_env to calculate the x-ray absorption spectra
subroutine, public xas_env_release(xas_env)
...
stores some data used in wavefunction fitting
Definition admm_types.F:120
Provides all information about an atomic kind.
type for the atomic properties
Type defining parameters related to the simulation cell.
Definition cell_types.F:55
represent a blacs multidimensional parallel environment (for the mpi corrispective see cp_paratypes/m...
represent a full matrix
contains arbitrary information which need to be stored
represents a system: atoms, molecules, their pos,vel,...
structure to store local (to a processor) ordered lists of integers.
distributes pairs on a 2d grid of processors
Contains information on the energy correction functional for KG.
Contains information on the excited states energy.
contains the initially parsed file and the initial parallel environment
stores some data used in construction of Kohn-Sham matrix
Definition hfx_types.F:510
Contains all the info needed for KG runs...
Contains information about kpoints.
stores all the informations relevant to an mpi environment
contained for different pw related things
Container for information about total charges on the grids.
Contains information on the Harris method.
Provides all information about a quickstep kind.
calculation environment to calculate the ks_qmmm matrix, holds the QM/MM potential and all the needed...
calculation environment to calculate the ks matrix, holds all the needed vars. assumes that the core ...
General settings for linear response calculations.
container for the pools of matrixes used by qs
keeps the density in various representations, keeping track of which ones are valid.
keeps track of the previous wavefunctions and can extrapolate them for the next step of md
contains the parameters needed by a relativistic calculation
Global Multipolar NDDO information type.
Taper type use in semi-empirical calculations.