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