168#include "./base/base_uses.f90"
174 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'qs_environment_types'
223 LOGICAL :: qmmm = .false., qmmm_periodic = .false.
224 LOGICAL :: mimic = .false.
225 LOGICAL :: requires_mo_derivs = .false.
226 LOGICAL :: requires_matrix_vxc = .false.
227 LOGICAL :: has_unit_metric = .false.
228 LOGICAL :: run_rtp = .false.
229 LOGICAL :: linres_run = .false.
230 LOGICAL :: calc_image_preconditioner = .false.
231 LOGICAL :: do_transport = .false.
232 LOGICAL :: single_point_run = .false.
233 LOGICAL :: given_embed_pot = .false.
234 LOGICAL :: energy_correction = .false.
235 LOGICAL :: harris_method = .false.
236 LOGICAL :: do_rixs = .false.
237 REAL(kind=
dp) :: sim_time = -1.0_dp
238 REAL(kind=
dp) :: start_time = -1.0_dp, target_time = -1.0_dp
239 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: image_matrix => null()
240 REAL(kind=
dp),
DIMENSION(:),
POINTER :: image_coeff => null()
241 INTEGER,
DIMENSION(:),
POINTER :: ipiv => null()
242 INTEGER :: sim_step = -1
248 TYPE(
cp_fm_type),
DIMENSION(:),
POINTER :: mo_loc_history => null()
271 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: outer_scf_history => null()
272 INTEGER :: outer_scf_ihistory = -1
273 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: gradient_history => null(), &
274 variable_history => null()
275 TYPE(
hfx_type),
DIMENSION(:, :),
POINTER :: x_data => null()
288 LOGICAL :: excited_state = .false.
305 REAL(kind=
dp) :: broyden_adaptive_sigma = -1.0_dp
319 REAL(kind=
dp),
DIMENSION(:),
POINTER :: eeq => null()
321 REAL(kind=
dp),
DIMENSION(:),
POINTER :: rhs => null()
322 REAL(kind=
dp) :: total_zeff_corr = -1.0_dp, surface_dipole_moment = -1.0_dp
323 LOGICAL :: surface_dipole_switch_off = .false.
324 TYPE(
mo_set_type),
DIMENSION(:),
POINTER :: mos_last_converged => null()
504 SUBROUTINE get_qs_env(qs_env, atomic_kind_set, qs_kind_set, cell, super_cell, cell_ref, use_ref_cell, kpoints, &
505 dft_control, mos, sab_orb, sab_all, qmmm, qmmm_periodic, mimic, sac_ae, sac_ppl, sac_lri, &
506 sap_ppnl, sab_vdw, sab_scp, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, &
507 sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_almo, &
508 sab_kp, sab_kp_nosym, sab_cneo, particle_set, energy, force, &
509 matrix_h, matrix_h_im, matrix_ks, matrix_ks_im, matrix_vxc, run_rtp, rtp, &
510 matrix_h_kp, matrix_h_im_kp, matrix_ks_kp, matrix_ks_im_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, &
511 matrix_w_kp, matrix_s_RI_aux_kp, matrix_s, matrix_s_RI_aux, matrix_w, &
512 matrix_p_mp2, matrix_p_mp2_admm, rho, &
513 rho_xc, pw_env, ewald_env, ewald_pw, active_space, &
514 mpools, input, para_env, blacs_env, scf_control, rel_control, kinetic, qs_charges, &
515 vppl, xcint_weights, rho_core, rho_nlcc, rho_nlcc_g, &
516 ks_env, ks_qmmm_env, wf_history, scf_env, local_particles, &
517 local_molecules, distribution_2d, dbcsr_dist, molecule_kind_set, &
518 molecule_set, subsys, cp_subsys, oce, local_rho_set, rho_atom_set, &
519 task_list, task_list_soft, &
520 rho0_atom_set, rho0_mpole, rhoz_set, rhoz_cneo_set, ecoul_1c, &
521 rho0_s_rs, rho0_s_gs, rhoz_cneo_s_rs, rhoz_cneo_s_gs, &
522 do_kpoints, has_unit_metric, requires_mo_derivs, mo_derivs, &
523 mo_loc_history, nkind, natom, nelectron_total, nelectron_spin, efield, &
524 neighbor_list_id, linres_control, xas_env, virial, cp_ddapc_env, cp_ddapc_ewald, &
525 outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, results, &
526 se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, &
527 lri_env, lri_density, exstate_env, ec_env, harris_env, dispersion_env, gcp_env, vee, &
528 rho_external, external_vxc, mask, mp2_env, bs_env, kg_env, &
529 WannierCentres, atprop, ls_scf_env, do_transport, transport_env, v_hartree_rspace, &
530 s_mstruct_changed, rho_changed, potential_changed, forces_up_to_date, mscfg_env, almo_scf_env, &
531 gradient_history, variable_history, embed_pot, spin_embed_pot, polar_env, mos_last_converged, &
532 eeq, rhs, do_rixs, tb_tblite)
536 POINTER :: atomic_kind_set
538 POINTER :: qs_kind_set
539 TYPE(
cell_type),
OPTIONAL,
POINTER :: cell, super_cell, cell_ref
540 LOGICAL,
OPTIONAL :: use_ref_cell
543 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos
545 OPTIONAL,
POINTER :: sab_orb, sab_all
546 LOGICAL,
OPTIONAL :: qmmm, qmmm_periodic, mimic
548 sap_ppnl, sab_vdw, sab_scp, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, &
549 sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_almo, sab_kp, sab_kp_nosym, sab_cneo
551 POINTER :: particle_set
556 POINTER :: matrix_h, matrix_h_im, matrix_ks, &
557 matrix_ks_im, matrix_vxc
558 LOGICAL,
OPTIONAL :: run_rtp
560 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: matrix_h_kp, matrix_h_im_kp, &
561 matrix_ks_kp, matrix_ks_im_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, &
564 POINTER :: matrix_s, matrix_s_ri_aux, matrix_w, &
565 matrix_p_mp2, matrix_p_mp2_admm
566 TYPE(
qs_rho_type),
OPTIONAL,
POINTER :: rho, rho_xc
592 POINTER :: molecule_kind_set
594 POINTER :: molecule_set
600 POINTER :: rho_atom_set
601 TYPE(
task_list_type),
OPTIONAL,
POINTER :: task_list, task_list_soft
603 POINTER :: rho0_atom_set
605 TYPE(
rhoz_type),
DIMENSION(:),
OPTIONAL,
POINTER :: rhoz_set
607 POINTER :: rhoz_cneo_set
614 LOGICAL,
OPTIONAL :: do_kpoints, has_unit_metric, &
618 TYPE(
cp_fm_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mo_loc_history
619 INTEGER,
OPTIONAL :: nkind, natom, nelectron_total
620 INTEGER,
DIMENSION(2),
OPTIONAL :: nelectron_spin
622 INTEGER,
OPTIONAL :: neighbor_list_id
628 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: outer_scf_history
629 INTEGER,
INTENT(out),
OPTIONAL :: outer_scf_ihistory
630 TYPE(
hfx_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: x_data
633 OPTIONAL,
POINTER :: dftb_potential
639 TYPE(
admm_type),
OPTIONAL,
POINTER :: admm_env
648 TYPE(
qs_rho_type),
OPTIONAL,
POINTER :: rho_external
650 TYPE(
mp2_type),
OPTIONAL,
POINTER :: mp2_env
655 OPTIONAL,
POINTER :: wanniercentres
658 LOGICAL,
OPTIONAL :: do_transport
661 LOGICAL,
OPTIONAL :: s_mstruct_changed, rho_changed, &
662 potential_changed, forces_up_to_date
666 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: gradient_history, variable_history
667 TYPE(
pw_r3d_rs_type),
OPTIONAL,
POINTER :: embed_pot, spin_embed_pot
669 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos_last_converged
670 REAL(kind=
dp),
DIMENSION(:),
OPTIONAL,
POINTER :: eeq, rhs
671 LOGICAL,
OPTIONAL :: do_rixs
677 cpassert(
ASSOCIATED(qs_env%ks_env))
679 IF (
PRESENT(outer_scf_history)) outer_scf_history => qs_env%outer_scf_history
680 IF (
PRESENT(outer_scf_ihistory)) outer_scf_ihistory = qs_env%outer_scf_ihistory
681 IF (
PRESENT(gradient_history)) gradient_history => qs_env%gradient_history
682 IF (
PRESENT(variable_history)) variable_history => qs_env%variable_history
683 IF (
PRESENT(mp2_env)) mp2_env => qs_env%mp2_env
684 IF (
PRESENT(bs_env)) bs_env => qs_env%bs_env
685 IF (
PRESENT(kg_env)) kg_env => qs_env%kg_env
686 IF (
PRESENT(super_cell)) super_cell => qs_env%super_cell
687 IF (
PRESENT(qmmm)) qmmm = qs_env%qmmm
688 IF (
PRESENT(qmmm_periodic)) qmmm_periodic = qs_env%qmmm_periodic
689 IF (
PRESENT(mimic)) mimic = qs_env%mimic
690 IF (
PRESENT(mos)) mos => qs_env%mos
691 IF (
PRESENT(mos_last_converged)) mos_last_converged => qs_env%mos_last_converged
692 IF (
PRESENT(ewald_env)) ewald_env => qs_env%ewald_env
693 IF (
PRESENT(ewald_pw)) ewald_pw => qs_env%ewald_pw
694 IF (
PRESENT(mpools)) mpools => qs_env%mpools
695 IF (
PRESENT(scf_control)) scf_control => qs_env%scf_control
696 IF (
PRESENT(rel_control)) rel_control => qs_env%rel_control
698 IF (
PRESENT(rho_external)) rho_external => qs_env%rho_external
699 IF (
PRESENT(external_vxc)) external_vxc => qs_env%external_vxc
700 IF (
PRESENT(mask)) mask => qs_env%mask
701 IF (
PRESENT(qs_charges)) qs_charges => qs_env%qs_charges
702 IF (
PRESENT(ks_env)) ks_env => qs_env%ks_env
703 IF (
PRESENT(ks_qmmm_env)) ks_qmmm_env => qs_env%ks_qmmm_env
704 IF (
PRESENT(wf_history)) wf_history => qs_env%wf_history
705 IF (
PRESENT(scf_env)) scf_env => qs_env%scf_env
706 IF (
PRESENT(oce)) oce => qs_env%oce
707 IF (
PRESENT(requires_mo_derivs)) requires_mo_derivs = qs_env%requires_mo_derivs
708 IF (
PRESENT(has_unit_metric)) has_unit_metric = qs_env%has_unit_metric
709 IF (
PRESENT(mo_derivs)) mo_derivs => qs_env%mo_derivs
710 IF (
PRESENT(mo_loc_history)) mo_loc_history => qs_env%mo_loc_history
711 IF (
PRESENT(linres_control)) linres_control => qs_env%linres_control
712 IF (
PRESENT(se_taper)) se_taper => qs_env%se_taper
713 IF (
PRESENT(se_store_int_env)) se_store_int_env => qs_env%se_store_int_env
714 IF (
PRESENT(se_nddo_mpole)) se_nddo_mpole => qs_env%se_nddo_mpole
715 IF (
PRESENT(se_nonbond_env)) se_nonbond_env => qs_env%se_nonbond_env
716 IF (
PRESENT(lri_env)) lri_env => qs_env%lri_env
717 IF (
PRESENT(lri_density)) lri_density => qs_env%lri_density
718 IF (
PRESENT(harris_env)) harris_env => qs_env%harris_env
719 IF (
PRESENT(ec_env)) ec_env => qs_env%ec_env
720 IF (
PRESENT(exstate_env)) exstate_env => qs_env%exstate_env
721 IF (
PRESENT(dispersion_env)) dispersion_env => qs_env%dispersion_env
722 IF (
PRESENT(gcp_env)) gcp_env => qs_env%gcp_env
723 IF (
PRESENT(run_rtp)) run_rtp = qs_env%run_rtp
724 IF (
PRESENT(rtp)) rtp => qs_env%rtp
725 IF (
PRESENT(ls_scf_env)) ls_scf_env => qs_env%ls_scf_env
726 IF (
PRESENT(almo_scf_env)) almo_scf_env => qs_env%almo_scf_env
727 IF (
PRESENT(do_transport)) do_transport = qs_env%do_transport
728 IF (
PRESENT(transport_env)) transport_env => qs_env%transport_env
729 IF (
PRESENT(mscfg_env)) mscfg_env => qs_env%molecular_scf_guess_env
730 IF (
PRESENT(active_space)) active_space => qs_env%active_space
731 IF (
PRESENT(admm_env)) admm_env => qs_env%admm_env
732 IF (
PRESENT(do_rixs)) do_rixs = qs_env%do_rixs
735 IF (
PRESENT(embed_pot)) embed_pot => qs_env%embed_pot
736 IF (
PRESENT(spin_embed_pot)) spin_embed_pot => qs_env%spin_embed_pot
739 IF (
PRESENT(polar_env)) polar_env => qs_env%polar_env
742 IF (
PRESENT(eeq)) eeq => qs_env%eeq
745 IF (
PRESENT(rhs)) rhs => qs_env%rhs
747 IF (
PRESENT(local_rho_set))
THEN
748 local_rho_set => qs_env%local_rho_set
750 IF (
PRESENT(rho_atom_set))
THEN
751 CALL get_local_rho(qs_env%local_rho_set, rho_atom_set=rho_atom_set)
753 IF (
PRESENT(rho0_atom_set))
THEN
754 CALL get_local_rho(qs_env%local_rho_set, rho0_atom_set=rho0_atom_set)
756 IF (
PRESENT(rho0_mpole))
THEN
757 CALL get_local_rho(qs_env%local_rho_set, rho0_mpole=rho0_mpole)
759 IF (
PRESENT(rhoz_set))
THEN
762 IF (
PRESENT(rhoz_cneo_set))
THEN
763 CALL get_local_rho(qs_env%local_rho_set, rhoz_cneo_set=rhoz_cneo_set)
765 IF (
PRESENT(ecoul_1c))
THEN
768 IF (
PRESENT(rho0_s_rs))
THEN
770 IF (
ASSOCIATED(rho0_m))
THEN
771 rho0_s_rs => rho0_m%rho0_s_rs
774 IF (
PRESENT(rho0_s_gs))
THEN
776 IF (
ASSOCIATED(rho0_m))
THEN
777 rho0_s_gs => rho0_m%rho0_s_gs
780 IF (
PRESENT(rhoz_cneo_s_rs))
THEN
782 IF (
ASSOCIATED(rho0_m))
THEN
783 rhoz_cneo_s_rs => rho0_m%rhoz_cneo_s_rs
786 IF (
PRESENT(rhoz_cneo_s_gs))
THEN
788 IF (
ASSOCIATED(rho0_m))
THEN
789 rhoz_cneo_s_gs => rho0_m%rhoz_cneo_s_gs
793 IF (
PRESENT(xas_env)) xas_env => qs_env%xas_env
794 IF (
PRESENT(input)) input => qs_env%input
795 IF (
PRESENT(cp_ddapc_env)) cp_ddapc_env => qs_env%cp_ddapc_env
796 IF (
PRESENT(cp_ddapc_ewald)) cp_ddapc_ewald => qs_env%cp_ddapc_ewald
797 IF (
PRESENT(x_data)) x_data => qs_env%x_data
799 IF (
PRESENT(dftb_potential)) dftb_potential => qs_env%dftb_potential
800 IF (
PRESENT(efield)) efield => qs_env%efield
801 IF (
PRESENT(wanniercentres)) wanniercentres => qs_env%WannierCentres
804 v_hartree_rspace=v_hartree_rspace, &
805 s_mstruct_changed=s_mstruct_changed, &
806 rho_changed=rho_changed, &
807 potential_changed=potential_changed, &
808 forces_up_to_date=forces_up_to_date, &
810 matrix_h_im=matrix_h_im, &
811 matrix_ks=matrix_ks, &
812 matrix_ks_im=matrix_ks_im, &
813 matrix_vxc=matrix_vxc, &
816 matrix_s_ri_aux=matrix_s_ri_aux, &
817 matrix_ks_im_kp=matrix_ks_im_kp, &
819 matrix_p_mp2=matrix_p_mp2, &
820 matrix_p_mp2_admm=matrix_p_mp2_admm, &
821 matrix_h_kp=matrix_h_kp, &
822 matrix_h_im_kp=matrix_h_im_kp, &
823 matrix_ks_kp=matrix_ks_kp, &
824 matrix_vxc_kp=matrix_vxc_kp, &
825 kinetic_kp=kinetic_kp, &
826 matrix_s_kp=matrix_s_kp, &
827 matrix_w_kp=matrix_w_kp, &
828 matrix_s_ri_aux_kp=matrix_s_ri_aux_kp, &
831 xcint_weights=xcint_weights, &
834 rho_nlcc_g=rho_nlcc_g, &
837 neighbor_list_id=neighbor_list_id, &
853 sab_xtb_pp=sab_xtb_pp, &
854 sab_xtb_nonbond=sab_xtb_nonbond, &
857 sab_kp_nosym=sab_kp_nosym, &
859 task_list=task_list, &
860 task_list_soft=task_list_soft, &
862 do_kpoints=do_kpoints, &
863 local_molecules=local_molecules, &
864 local_particles=local_particles, &
870 use_ref_cell=use_ref_cell, &
873 qs_kind_set=qs_kind_set, &
875 cp_subsys=cp_subsys, &
876 atomic_kind_set=atomic_kind_set, &
877 particle_set=particle_set, &
878 molecule_kind_set=molecule_kind_set, &
879 molecule_set=molecule_set, &
882 dft_control=dft_control, &
883 dbcsr_dist=dbcsr_dist, &
884 distribution_2d=distribution_2d, &
887 blacs_env=blacs_env, &
888 nelectron_total=nelectron_total, &
889 nelectron_spin=nelectron_spin)
891 IF (
PRESENT(tb_tblite)) tb_tblite => qs_env%tb_tblite
903 SUBROUTINE init_qs_env(qs_env, globenv)
908 NULLIFY (qs_env%ls_scf_env)
909 NULLIFY (qs_env%almo_scf_env)
910 NULLIFY (qs_env%transport_env)
911 NULLIFY (qs_env%image_matrix)
912 NULLIFY (qs_env%ipiv)
913 NULLIFY (qs_env%image_coeff)
914 NULLIFY (qs_env%super_cell)
916 NULLIFY (qs_env%mos_last_converged)
917 NULLIFY (qs_env%mpools)
918 NULLIFY (qs_env%ewald_env)
919 NULLIFY (qs_env%ewald_pw)
920 NULLIFY (qs_env%scf_control)
921 NULLIFY (qs_env%rel_control)
922 NULLIFY (qs_env%qs_charges)
924 NULLIFY (qs_env%rho_external)
925 NULLIFY (qs_env%external_vxc)
926 NULLIFY (qs_env%mask)
928 NULLIFY (qs_env%embed_pot)
929 NULLIFY (qs_env%spin_embed_pot)
932 NULLIFY (qs_env%polar_env)
934 NULLIFY (qs_env%ks_env)
935 NULLIFY (qs_env%ks_qmmm_env)
936 NULLIFY (qs_env%wf_history)
937 NULLIFY (qs_env%scf_env)
939 NULLIFY (qs_env%local_rho_set)
940 NULLIFY (qs_env%hartree_local)
941 NULLIFY (qs_env%input)
942 NULLIFY (qs_env%linres_control)
943 NULLIFY (qs_env%xas_env)
944 NULLIFY (qs_env%cp_ddapc_env)
945 NULLIFY (qs_env%cp_ddapc_ewald)
946 NULLIFY (qs_env%outer_scf_history)
947 NULLIFY (qs_env%gradient_history)
948 NULLIFY (qs_env%variable_history)
949 NULLIFY (qs_env%x_data)
950 NULLIFY (qs_env%et_coupling)
951 NULLIFY (qs_env%dftb_potential)
952 NULLIFY (qs_env%active_space)
954 NULLIFY (qs_env%se_taper)
955 NULLIFY (qs_env%se_store_int_env)
956 NULLIFY (qs_env%se_nddo_mpole)
957 NULLIFY (qs_env%se_nonbond_env)
958 NULLIFY (qs_env%admm_env)
959 NULLIFY (qs_env%efield)
960 NULLIFY (qs_env%lri_env)
961 NULLIFY (qs_env%harris_env)
962 NULLIFY (qs_env%ec_env)
963 NULLIFY (qs_env%exstate_env)
964 NULLIFY (qs_env%lri_density)
965 NULLIFY (qs_env%gcp_env)
967 NULLIFY (qs_env%mp2_env)
968 NULLIFY (qs_env%bs_env)
969 NULLIFY (qs_env%kg_env)
970 NULLIFY (qs_env%WannierCentres)
972 qs_env%outer_scf_ihistory = 0
973 qs_env%broyden_adaptive_sigma = -1.0_dp
977 qs_env%run_rtp = .false.
978 qs_env%linres_run = .false.
979 qs_env%single_point_run = .false.
980 qs_env%qmmm = .false.
981 qs_env%qmmm_periodic = .false.
982 qs_env%mimic = .false.
983 qs_env%requires_mo_derivs = .false.
984 qs_env%requires_matrix_vxc = .false.
985 qs_env%has_unit_metric = .false.
986 qs_env%calc_image_preconditioner = .true.
987 qs_env%do_transport = .false.
988 qs_env%given_embed_pot = .false.
989 qs_env%do_rixs = .false.
990 IF (
PRESENT(globenv))
THEN
991 qs_env%target_time = globenv%cp2k_target_time
992 qs_env%start_time = globenv%cp2k_start_time
993 qs_env%single_point_run = (globenv%run_type_id ==
energy_run .OR. &
996 qs_env%target_time = 0.0_dp
997 qs_env%start_time = 0.0_dp
1000 qs_env%sim_time = 0._dp
1003 qs_env%total_zeff_corr = 0.0_dp
1004 qs_env%surface_dipole_moment = 0.0_dp
1005 qs_env%surface_dipole_switch_off = .false.
1008 NULLIFY (qs_env%mo_derivs)
1009 NULLIFY (qs_env%mo_loc_history)
1011 IF (.NOT.
ASSOCIATED(qs_env%molecular_scf_guess_env))
ALLOCATE (qs_env%molecular_scf_guess_env)
1013 NULLIFY (qs_env%tb_tblite)
1014 NULLIFY (qs_env%gauxc_cache)
1016 END SUBROUTINE init_qs_env
1102 mos, qmmm, qmmm_periodic, mimic, &
1103 ewald_env, ewald_pw, mpools, &
1104 rho_external, external_vxc, mask, &
1105 scf_control, rel_control, qs_charges, ks_env, &
1106 ks_qmmm_env, wf_history, scf_env, active_space, &
1107 input, oce, rho_atom_set, rho0_atom_set, rho0_mpole, run_rtp, rtp, &
1108 rhoz_set, rhoz_tot, ecoul_1c, has_unit_metric, requires_mo_derivs, mo_derivs, &
1109 mo_loc_history, efield, rhoz_cneo_set, &
1110 linres_control, xas_env, cp_ddapc_env, cp_ddapc_ewald, &
1111 outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, &
1112 se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, ls_scf_env, &
1113 do_transport, transport_env, lri_env, lri_density, exstate_env, ec_env, dispersion_env, &
1114 harris_env, gcp_env, mp2_env, bs_env, kg_env, force, &
1115 kpoints, WannierCentres, almo_scf_env, gradient_history, variable_history, embed_pot, &
1116 spin_embed_pot, polar_env, mos_last_converged, eeq, rhs, do_rixs, tb_tblite)
1119 TYPE(
cell_type),
OPTIONAL,
POINTER :: super_cell
1120 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos
1121 LOGICAL,
OPTIONAL :: qmmm, qmmm_periodic, mimic
1125 TYPE(
qs_rho_type),
OPTIONAL,
POINTER :: rho_external
1138 POINTER :: rho_atom_set
1140 POINTER :: rho0_atom_set
1142 LOGICAL,
OPTIONAL :: run_rtp
1144 TYPE(
rhoz_type),
DIMENSION(:),
OPTIONAL,
POINTER :: rhoz_set
1145 REAL(
dp),
OPTIONAL :: rhoz_tot
1148 LOGICAL,
OPTIONAL :: has_unit_metric, requires_mo_derivs
1150 POINTER :: mo_derivs
1151 TYPE(
cp_fm_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mo_loc_history
1154 POINTER :: rhoz_cneo_set
1159 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: outer_scf_history
1160 INTEGER,
INTENT(IN),
OPTIONAL :: outer_scf_ihistory
1161 TYPE(
hfx_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: x_data
1164 OPTIONAL,
POINTER :: dftb_potential
1169 TYPE(
admm_type),
OPTIONAL,
POINTER :: admm_env
1171 LOGICAL,
OPTIONAL :: do_transport
1178 TYPE(
harris_type),
OPTIONAL,
POINTER :: harris_env
1180 TYPE(
mp2_type),
OPTIONAL,
POINTER :: mp2_env
1188 OPTIONAL,
POINTER :: wanniercentres
1190 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: gradient_history, variable_history
1191 TYPE(
pw_r3d_rs_type),
OPTIONAL,
POINTER :: embed_pot, spin_embed_pot
1193 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos_last_converged
1194 REAL(kind=
dp),
DIMENSION(:),
OPTIONAL,
POINTER :: eeq, rhs
1195 LOGICAL,
OPTIONAL :: do_rixs
1200 IF (
PRESENT(mp2_env)) qs_env%mp2_env => mp2_env
1201 IF (
PRESENT(bs_env)) qs_env%bs_env => bs_env
1202 IF (
PRESENT(kg_env)) qs_env%kg_env => kg_env
1203 IF (
PRESENT(super_cell))
THEN
1206 qs_env%super_cell => super_cell
1209 IF (
PRESENT(qmmm)) qs_env%qmmm = qmmm
1210 IF (
PRESENT(qmmm_periodic)) qs_env%qmmm_periodic = qmmm_periodic
1211 IF (
PRESENT(mimic)) qs_env%mimic = mimic
1212 IF (
PRESENT(mos)) qs_env%mos => mos
1213 IF (
PRESENT(mos_last_converged)) qs_env%mos_last_converged => mos_last_converged
1214 IF (
PRESENT(ls_scf_env)) qs_env%ls_scf_env => ls_scf_env
1215 IF (
PRESENT(almo_scf_env)) qs_env%almo_scf_env => almo_scf_env
1216 IF (
PRESENT(do_transport)) qs_env%do_transport = do_transport
1217 IF (
PRESENT(transport_env)) qs_env%transport_env => transport_env
1220 IF (
PRESENT(oce)) qs_env%oce => oce
1221 IF (
PRESENT(outer_scf_history)) qs_env%outer_scf_history => outer_scf_history
1222 IF (
PRESENT(gradient_history)) qs_env%gradient_history => gradient_history
1223 IF (
PRESENT(variable_history)) qs_env%variable_history => variable_history
1224 IF (
PRESENT(outer_scf_ihistory)) qs_env%outer_scf_ihistory = outer_scf_ihistory
1225 IF (
PRESENT(requires_mo_derivs)) qs_env%requires_mo_derivs = requires_mo_derivs
1226 IF (
PRESENT(has_unit_metric)) qs_env%has_unit_metric = has_unit_metric
1227 IF (
PRESENT(mo_derivs)) qs_env%mo_derivs => mo_derivs
1228 IF (
PRESENT(mo_loc_history)) qs_env%mo_loc_history => mo_loc_history
1229 IF (
PRESENT(run_rtp)) qs_env%run_rtp = run_rtp
1230 IF (
PRESENT(rtp)) qs_env%rtp => rtp
1231 IF (
PRESENT(efield)) qs_env%efield => efield
1232 IF (
PRESENT(active_space)) qs_env%active_space => active_space
1233 IF (
PRESENT(do_rixs)) do_rixs = qs_env%do_rixs
1235 IF (
PRESENT(ewald_env))
THEN
1236 IF (
ASSOCIATED(qs_env%ewald_env))
THEN
1237 IF (.NOT.
ASSOCIATED(qs_env%ewald_env, ewald_env))
THEN
1239 DEALLOCATE (qs_env%ewald_env)
1242 qs_env%ewald_env => ewald_env
1244 IF (
PRESENT(ewald_pw))
THEN
1245 IF (
ASSOCIATED(qs_env%ewald_pw))
THEN
1246 IF (.NOT.
ASSOCIATED(ewald_pw, qs_env%ewald_pw))
THEN
1248 DEALLOCATE (qs_env%ewald_pw)
1251 qs_env%ewald_pw => ewald_pw
1253 IF (
PRESENT(scf_control))
THEN
1254 IF (
ASSOCIATED(qs_env%scf_control))
THEN
1255 IF (.NOT.
ASSOCIATED(qs_env%scf_control, scf_control))
THEN
1257 DEALLOCATE (qs_env%scf_control)
1260 qs_env%scf_control => scf_control
1262 IF (
PRESENT(rel_control))
THEN
1263 IF (
ASSOCIATED(qs_env%rel_control))
THEN
1264 IF (.NOT.
ASSOCIATED(qs_env%rel_control, rel_control))
THEN
1266 DEALLOCATE (qs_env%rel_control)
1269 qs_env%rel_control => rel_control
1271 IF (
PRESENT(linres_control))
THEN
1272 IF (
ASSOCIATED(qs_env%linres_control))
THEN
1273 IF (.NOT.
ASSOCIATED(qs_env%linres_control, linres_control))
THEN
1275 DEALLOCATE (qs_env%linres_control)
1278 qs_env%linres_control => linres_control
1281 IF (
PRESENT(rho_external))
THEN
1282 IF (
ASSOCIATED(qs_env%rho_external))
THEN
1283 IF (.NOT.
ASSOCIATED(qs_env%rho_external, rho_external))
THEN
1285 DEALLOCATE (qs_env%rho_external)
1288 qs_env%rho_external => rho_external
1290 IF (
PRESENT(external_vxc)) qs_env%external_vxc => external_vxc
1291 IF (
PRESENT(mask)) qs_env%mask => mask
1293 IF (
PRESENT(embed_pot)) qs_env%embed_pot => embed_pot
1294 IF (
PRESENT(spin_embed_pot)) qs_env%spin_embed_pot => spin_embed_pot
1297 IF (
PRESENT(polar_env)) qs_env%polar_env => polar_env
1299 IF (
PRESENT(qs_charges))
THEN
1300 IF (
ASSOCIATED(qs_env%qs_charges))
THEN
1301 IF (.NOT.
ASSOCIATED(qs_env%qs_charges, qs_charges))
THEN
1303 DEALLOCATE (qs_env%qs_charges)
1306 qs_env%qs_charges => qs_charges
1308 IF (
PRESENT(ks_qmmm_env))
THEN
1309 IF (
ASSOCIATED(qs_env%ks_qmmm_env))
THEN
1310 IF (.NOT.
ASSOCIATED(qs_env%ks_qmmm_env, ks_qmmm_env))
THEN
1312 DEALLOCATE (qs_env%ks_qmmm_env)
1315 qs_env%ks_qmmm_env => ks_qmmm_env
1317 IF (
PRESENT(ks_env))
THEN
1318 IF (
ASSOCIATED(qs_env%ks_env))
THEN
1319 IF (.NOT.
ASSOCIATED(qs_env%ks_env, ks_env))
THEN
1321 DEALLOCATE (qs_env%ks_env)
1324 qs_env%ks_env => ks_env
1326 IF (
PRESENT(wf_history))
THEN
1329 qs_env%wf_history => wf_history
1331 IF (
PRESENT(scf_env))
THEN
1332 IF (
ASSOCIATED(qs_env%scf_env))
THEN
1333 IF (.NOT.
ASSOCIATED(qs_env%scf_env, scf_env))
THEN
1335 DEALLOCATE (qs_env%scf_env)
1338 qs_env%scf_env => scf_env
1340 IF (
PRESENT(xas_env))
THEN
1341 IF (
ASSOCIATED(qs_env%xas_env))
THEN
1342 IF (.NOT.
ASSOCIATED(qs_env%xas_env, xas_env))
THEN
1344 DEALLOCATE (qs_env%xas_env)
1347 qs_env%xas_env => xas_env
1349 IF (
PRESENT(mpools))
THEN
1352 qs_env%mpools => mpools
1354 IF (
PRESENT(rho_atom_set))
THEN
1355 CALL set_local_rho(qs_env%local_rho_set, rho_atom_set=rho_atom_set)
1357 IF (
PRESENT(rho0_atom_set))
THEN
1358 CALL set_local_rho(qs_env%local_rho_set, rho0_atom_set=rho0_atom_set)
1360 IF (
PRESENT(rho0_mpole))
THEN
1361 CALL set_local_rho(qs_env%local_rho_set, rho0_mpole=rho0_mpole)
1363 IF (
PRESENT(rhoz_set))
THEN
1366 IF (
PRESENT(rhoz_cneo_set))
THEN
1367 CALL set_local_rho(qs_env%local_rho_set, rhoz_cneo_set=rhoz_cneo_set)
1369 IF (
PRESENT(rhoz_tot)) qs_env%local_rho_set%rhoz_tot = rhoz_tot
1370 IF (
PRESENT(ecoul_1c))
THEN
1373 IF (
PRESENT(input))
THEN
1376 qs_env%input => input
1378 IF (
PRESENT(cp_ddapc_env))
THEN
1379 IF (
ASSOCIATED(qs_env%cp_ddapc_env))
THEN
1380 IF (.NOT.
ASSOCIATED(qs_env%cp_ddapc_env, cp_ddapc_env))
THEN
1382 DEALLOCATE (qs_env%cp_ddapc_env)
1385 qs_env%cp_ddapc_env => cp_ddapc_env
1387 IF (
PRESENT(cp_ddapc_ewald))
THEN
1388 qs_env%cp_ddapc_ewald => cp_ddapc_ewald
1390 IF (
PRESENT(x_data)) qs_env%x_data => x_data
1392 IF (
PRESENT(dftb_potential)) qs_env%dftb_potential => dftb_potential
1393 IF (
PRESENT(se_taper))
THEN
1395 qs_env%se_taper => se_taper
1397 IF (
PRESENT(se_store_int_env))
THEN
1399 qs_env%se_store_int_env => se_store_int_env
1401 IF (
PRESENT(se_nddo_mpole))
THEN
1403 qs_env%se_nddo_mpole => se_nddo_mpole
1405 IF (
PRESENT(se_nonbond_env))
THEN
1406 IF (
ASSOCIATED(qs_env%se_nonbond_env))
THEN
1407 IF (.NOT.
ASSOCIATED(qs_env%se_nonbond_env, se_nonbond_env))
THEN
1409 DEALLOCATE (qs_env%se_nonbond_env)
1412 qs_env%se_nonbond_env => se_nonbond_env
1414 IF (
PRESENT(admm_env)) qs_env%admm_env => admm_env
1415 IF (
PRESENT(lri_env)) qs_env%lri_env => lri_env
1416 IF (
PRESENT(lri_density)) qs_env%lri_density => lri_density
1417 IF (
PRESENT(harris_env)) qs_env%harris_env => harris_env
1418 IF (
PRESENT(ec_env)) qs_env%ec_env => ec_env
1419 IF (
PRESENT(exstate_env)) qs_env%exstate_env => exstate_env
1420 IF (
PRESENT(dispersion_env)) qs_env%dispersion_env => dispersion_env
1421 IF (
PRESENT(gcp_env)) qs_env%gcp_env => gcp_env
1422 IF (
PRESENT(wanniercentres)) qs_env%WannierCentres => wanniercentres
1423 IF (
PRESENT(kpoints))
CALL set_ks_env(qs_env%ks_env, kpoints=kpoints)
1426 IF (
PRESENT(eeq)) qs_env%eeq => eeq
1429 IF (
PRESENT(rhs)) qs_env%rhs => rhs
1431 IF (
PRESENT(force))
THEN
1436 IF (
PRESENT(tb_tblite)) qs_env%tb_tblite => tb_tblite
1452 CALL init_qs_env(qs_env, globenv=globenv)
1469 IF (
ASSOCIATED(qs_env%mos))
THEN
1470 DO i = 1,
SIZE(qs_env%mos)
1473 DEALLOCATE (qs_env%mos)
1475 IF (
ASSOCIATED(qs_env%mos_last_converged))
THEN
1476 DO i = 1,
SIZE(qs_env%mos_last_converged)
1479 DEALLOCATE (qs_env%mos_last_converged)
1482 IF (
ASSOCIATED(qs_env%mo_derivs))
THEN
1483 DO i = 1,
SIZE(qs_env%mo_derivs)
1486 DEALLOCATE (qs_env%mo_derivs)
1491 IF (
ASSOCIATED(qs_env%rtp))
THEN
1493 DEALLOCATE (qs_env%rtp)
1495 IF (
ASSOCIATED(qs_env%outer_scf_history))
THEN
1496 DEALLOCATE (qs_env%outer_scf_history)
1497 qs_env%outer_scf_ihistory = 0
1499 IF (
ASSOCIATED(qs_env%gradient_history))
THEN
1500 DEALLOCATE (qs_env%gradient_history)
1502 IF (
ASSOCIATED(qs_env%variable_history))
THEN
1503 DEALLOCATE (qs_env%variable_history)
1506 IF (
ASSOCIATED(qs_env%local_rho_set))
THEN
1509 IF (
ASSOCIATED(qs_env%hartree_local))
THEN
1512 IF (
ASSOCIATED(qs_env%scf_control))
THEN
1514 DEALLOCATE (qs_env%scf_control)
1516 IF (
ASSOCIATED(qs_env%rel_control))
THEN
1518 DEALLOCATE (qs_env%rel_control)
1521 IF (
ASSOCIATED(qs_env%linres_control))
THEN
1523 DEALLOCATE (qs_env%linres_control)
1526 IF (
ASSOCIATED(qs_env%almo_scf_env))
THEN
1530 IF (
ASSOCIATED(qs_env%ls_scf_env))
THEN
1533 IF (
ASSOCIATED(qs_env%molecular_scf_guess_env))
THEN
1535 DEALLOCATE (qs_env%molecular_scf_guess_env)
1538 IF (
ASSOCIATED(qs_env%transport_env))
THEN
1543 IF (
ASSOCIATED(qs_env%xas_env))
THEN
1545 DEALLOCATE (qs_env%xas_env)
1547 IF (
ASSOCIATED(qs_env%ewald_env))
THEN
1549 DEALLOCATE (qs_env%ewald_env)
1551 IF (
ASSOCIATED(qs_env%ewald_pw))
THEN
1553 DEALLOCATE (qs_env%ewald_pw)
1555 IF (
ASSOCIATED(qs_env%image_matrix))
THEN
1556 DEALLOCATE (qs_env%image_matrix)
1558 IF (
ASSOCIATED(qs_env%ipiv))
THEN
1559 DEALLOCATE (qs_env%ipiv)
1561 IF (
ASSOCIATED(qs_env%image_coeff))
THEN
1562 DEALLOCATE (qs_env%image_coeff)
1565 IF (
ASSOCIATED(qs_env%rho_external))
THEN
1567 DEALLOCATE (qs_env%rho_external)
1569 IF (
ASSOCIATED(qs_env%external_vxc))
THEN
1570 CALL qs_env%external_vxc%release()
1571 DEALLOCATE (qs_env%external_vxc)
1573 IF (
ASSOCIATED(qs_env%mask))
THEN
1574 CALL qs_env%mask%release()
1575 DEALLOCATE (qs_env%mask)
1577 IF (
ASSOCIATED(qs_env%active_space))
THEN
1581 IF (qs_env%given_embed_pot)
THEN
1582 CALL qs_env%embed_pot%release()
1583 DEALLOCATE (qs_env%embed_pot)
1584 IF (
ASSOCIATED(qs_env%spin_embed_pot))
THEN
1585 CALL qs_env%spin_embed_pot%release()
1586 DEALLOCATE (qs_env%spin_embed_pot)
1593 IF (
ASSOCIATED(qs_env%qs_charges))
THEN
1595 DEALLOCATE (qs_env%qs_charges)
1597 IF (
ASSOCIATED(qs_env%ks_env))
THEN
1599 DEALLOCATE (qs_env%ks_env)
1601 IF (
ASSOCIATED(qs_env%ks_qmmm_env))
THEN
1603 DEALLOCATE (qs_env%ks_qmmm_env)
1606 IF (
ASSOCIATED(qs_env%scf_env))
THEN
1608 DEALLOCATE (qs_env%scf_env)
1612 IF (
ASSOCIATED(qs_env%cp_ddapc_env))
THEN
1614 DEALLOCATE (qs_env%cp_ddapc_env)
1618 IF (
ASSOCIATED(qs_env%x_data))
THEN
1621 IF (
ASSOCIATED(qs_env%et_coupling))
THEN
1624 IF (
ASSOCIATED(qs_env%dftb_potential))
THEN
1627 IF (
ASSOCIATED(qs_env%se_taper))
THEN
1630 IF (
ASSOCIATED(qs_env%se_store_int_env))
THEN
1633 IF (
ASSOCIATED(qs_env%se_nddo_mpole))
THEN
1636 IF (
ASSOCIATED(qs_env%se_nonbond_env))
THEN
1638 DEALLOCATE (qs_env%se_nonbond_env)
1640 IF (
ASSOCIATED(qs_env%admm_env))
THEN
1643 IF (
ASSOCIATED(qs_env%lri_env))
THEN
1645 DEALLOCATE (qs_env%lri_env)
1647 IF (
ASSOCIATED(qs_env%lri_density))
THEN
1649 DEALLOCATE (qs_env%lri_density)
1651 IF (
ASSOCIATED(qs_env%harris_env))
THEN
1654 IF (
ASSOCIATED(qs_env%ec_env))
THEN
1657 IF (
ASSOCIATED(qs_env%exstate_env))
THEN
1660 IF (
ASSOCIATED(qs_env%mp2_env))
THEN
1662 DEALLOCATE (qs_env%mp2_env)
1663 NULLIFY (qs_env%mp2_env)
1665 IF (
ASSOCIATED(qs_env%bs_env))
THEN
1668 IF (
ASSOCIATED(qs_env%kg_env))
THEN
1675 IF (
ASSOCIATED(qs_env%gcp_env))
THEN
1679 IF (
ASSOCIATED(qs_env%WannierCentres))
THEN
1680 DO i = 1,
SIZE(qs_env%WannierCentres)
1681 DEALLOCATE (qs_env%WannierCentres(i)%WannierHamDiag)
1682 DEALLOCATE (qs_env%WannierCentres(i)%centres)
1684 DEALLOCATE (qs_env%WannierCentres)
1687 IF (
ASSOCIATED(qs_env%eeq))
DEALLOCATE (qs_env%eeq)
1689 IF (
ASSOCIATED(qs_env%rhs))
DEALLOCATE (qs_env%rhs)
1692 IF (
ASSOCIATED(qs_env%tb_tblite))
THEN
1696 IF (
ASSOCIATED(qs_env%gauxc_cache))
THEN
1698 DEALLOCATE (qs_env%gauxc_cache)
1714 IF (
ASSOCIATED(qs_env%mos_last_converged))
THEN
1715 DO i = 1,
SIZE(qs_env%mos_last_converged)
1718 DEALLOCATE (qs_env%mos_last_converged)
1721 IF (
ASSOCIATED(qs_env%mo_derivs))
THEN
1722 DO i = 1,
SIZE(qs_env%mo_derivs)
1725 DEALLOCATE (qs_env%mo_derivs)
1730 IF (
ASSOCIATED(qs_env%rtp))
THEN
1732 DEALLOCATE (qs_env%rtp)
1734 IF (
ASSOCIATED(qs_env%outer_scf_history))
THEN
1735 DEALLOCATE (qs_env%outer_scf_history)
1736 qs_env%outer_scf_ihistory = 0
1738 IF (
ASSOCIATED(qs_env%gradient_history))
THEN
1739 DEALLOCATE (qs_env%gradient_history)
1741 IF (
ASSOCIATED(qs_env%variable_history))
THEN
1742 DEALLOCATE (qs_env%variable_history)
1745 IF (
ASSOCIATED(qs_env%local_rho_set))
THEN
1748 IF (
ASSOCIATED(qs_env%hartree_local))
THEN
1751 IF (
ASSOCIATED(qs_env%scf_control))
THEN
1753 DEALLOCATE (qs_env%scf_control)
1755 IF (
ASSOCIATED(qs_env%rel_control))
THEN
1757 DEALLOCATE (qs_env%rel_control)
1760 IF (
ASSOCIATED(qs_env%linres_control))
THEN
1762 DEALLOCATE (qs_env%linres_control)
1765 IF (
ASSOCIATED(qs_env%almo_scf_env))
THEN
1769 IF (
ASSOCIATED(qs_env%ls_scf_env))
THEN
1772 IF (
ASSOCIATED(qs_env%molecular_scf_guess_env))
THEN
1774 DEALLOCATE (qs_env%molecular_scf_guess_env)
1777 IF (
ASSOCIATED(qs_env%transport_env))
THEN
1782 IF (
ASSOCIATED(qs_env%xas_env))
THEN
1784 DEALLOCATE (qs_env%xas_env)
1786 IF (
ASSOCIATED(qs_env%ewald_env))
THEN
1788 DEALLOCATE (qs_env%ewald_env)
1790 IF (
ASSOCIATED(qs_env%ewald_pw))
THEN
1792 DEALLOCATE (qs_env%ewald_pw)
1794 IF (
ASSOCIATED(qs_env%image_matrix))
THEN
1795 DEALLOCATE (qs_env%image_matrix)
1797 IF (
ASSOCIATED(qs_env%ipiv))
THEN
1798 DEALLOCATE (qs_env%ipiv)
1800 IF (
ASSOCIATED(qs_env%image_coeff))
THEN
1801 DEALLOCATE (qs_env%image_coeff)
1804 IF (
ASSOCIATED(qs_env%rho_external))
THEN
1806 DEALLOCATE (qs_env%rho_external)
1808 IF (
ASSOCIATED(qs_env%external_vxc))
THEN
1809 CALL qs_env%external_vxc%release()
1810 DEALLOCATE (qs_env%external_vxc)
1812 IF (
ASSOCIATED(qs_env%mask))
THEN
1813 CALL qs_env%mask%release()
1814 DEALLOCATE (qs_env%mask)
1816 IF (
ASSOCIATED(qs_env%active_space))
THEN
1820 IF (qs_env%given_embed_pot)
THEN
1821 CALL qs_env%embed_pot%release()
1822 DEALLOCATE (qs_env%embed_pot)
1823 IF (
ASSOCIATED(qs_env%spin_embed_pot))
THEN
1824 CALL qs_env%spin_embed_pot%release()
1825 DEALLOCATE (qs_env%spin_embed_pot)
1832 IF (
ASSOCIATED(qs_env%qs_charges))
THEN
1834 DEALLOCATE (qs_env%qs_charges)
1837 IF (
ASSOCIATED(qs_env%ks_qmmm_env))
THEN
1839 DEALLOCATE (qs_env%ks_qmmm_env)
1842 IF (
ASSOCIATED(qs_env%scf_env))
THEN
1844 DEALLOCATE (qs_env%scf_env)
1846 IF (
ASSOCIATED(qs_env%cp_ddapc_env))
THEN
1848 DEALLOCATE (qs_env%cp_ddapc_env)
1852 IF (
ASSOCIATED(qs_env%x_data))
THEN
1855 IF (
ASSOCIATED(qs_env%et_coupling))
THEN
1858 IF (
ASSOCIATED(qs_env%dftb_potential))
THEN
1861 IF (
ASSOCIATED(qs_env%se_taper))
THEN
1864 IF (
ASSOCIATED(qs_env%se_store_int_env))
THEN
1867 IF (
ASSOCIATED(qs_env%se_nddo_mpole))
THEN
1870 IF (
ASSOCIATED(qs_env%se_nonbond_env))
THEN
1872 DEALLOCATE (qs_env%se_nonbond_env)
1874 IF (
ASSOCIATED(qs_env%admm_env))
THEN
1877 IF (
ASSOCIATED(qs_env%lri_env))
THEN
1879 DEALLOCATE (qs_env%lri_env)
1881 IF (
ASSOCIATED(qs_env%lri_density))
THEN
1883 DEALLOCATE (qs_env%lri_density)
1885 IF (
ASSOCIATED(qs_env%harris_env))
THEN
1888 IF (
ASSOCIATED(qs_env%ec_env))
THEN
1891 IF (
ASSOCIATED(qs_env%exstate_env))
THEN
1894 IF (
ASSOCIATED(qs_env%mp2_env))
THEN
1896 DEALLOCATE (qs_env%mp2_env)
1897 NULLIFY (qs_env%mp2_env)
1899 IF (
ASSOCIATED(qs_env%kg_env))
THEN
1906 IF (
ASSOCIATED(qs_env%gcp_env))
THEN
1910 IF (
ASSOCIATED(qs_env%WannierCentres))
THEN
1911 DO i = 1,
SIZE(qs_env%WannierCentres)
1912 DEALLOCATE (qs_env%WannierCentres(i)%WannierHamDiag)
1913 DEALLOCATE (qs_env%WannierCentres(i)%centres)
1915 DEALLOCATE (qs_env%WannierCentres)
1918 IF (
ASSOCIATED(qs_env%eeq))
DEALLOCATE (qs_env%eeq)
1920 IF (
ASSOCIATED(qs_env%rhs))
DEALLOCATE (qs_env%rhs)
1923 IF (
ASSOCIATED(qs_env%tb_tblite))
THEN
1927 IF (
ASSOCIATED(qs_env%gauxc_cache))
THEN
1929 DEALLOCATE (qs_env%gauxc_cache)
Types and set/get functions for auxiliary density matrix methods.
subroutine, public admm_env_release(admm_env)
releases the ADMM environment, cleans up all types
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.
subroutine, public cell_release(cell)
releases the given cell (see doc/ReferenceCounting.html)
subroutine, public cell_retain(cell)
retains the given cell (see doc/ReferenceCounting.html)
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
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)
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.
subroutine, public hfx_release(x_data)
This routine deallocates all data structures
Types needed for a Kim-Gordon-like partitioning into molecular subunits.
subroutine, public kg_env_release(kg_env)
...
Defines the basic variable types.
integer, parameter, public dp
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.
subroutine, public mp2_env_release(mp2_env)
...
Types used to generate the molecular SCF guess.
subroutine, public molecular_scf_guess_env_destroy(env)
Destroyes both data and environment.
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.
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.
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)
...
subroutine, public gauxc_cache_release(cache)
Release all GauXC objects in a cache and deallocate arrays.
stores some data used in wavefunction fitting
Provides all information about an atomic kind.
type for the atomic properties
Type defining parameters related to the simulation cell.
represent a blacs multidimensional parallel environment (for the mpi corrispective see cp_paratypes/m...
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.
to build arrays of pointers
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
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.
Semi-empirical store integrals type.
Taper type use in semi-empirical calculations.