166#include "./base/base_uses.f90"
172 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'qs_environment_types'
221 LOGICAL :: qmmm = .false., qmmm_periodic = .false.
222 LOGICAL :: requires_mo_derivs = .false.
223 LOGICAL :: requires_matrix_vxc = .false.
224 LOGICAL :: has_unit_metric = .false.
225 LOGICAL :: run_rtp = .false.
226 LOGICAL :: linres_run = .false.
227 LOGICAL :: calc_image_preconditioner = .false.
228 LOGICAL :: do_transport = .false.
229 LOGICAL :: single_point_run = .false.
230 LOGICAL :: given_embed_pot = .false.
231 LOGICAL :: energy_correction = .false.
232 LOGICAL :: harris_method = .false.
233 LOGICAL :: do_rixs = .false.
234 REAL(kind=
dp) :: sim_time = -1.0_dp
235 REAL(kind=
dp) :: start_time = -1.0_dp, target_time = -1.0_dp
236 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: image_matrix => null()
237 REAL(kind=
dp),
DIMENSION(:),
POINTER :: image_coeff => null()
238 INTEGER,
DIMENSION(:),
POINTER :: ipiv => null()
239 INTEGER :: sim_step = -1
245 TYPE(
cp_fm_type),
DIMENSION(:),
POINTER :: mo_loc_history => null()
268 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: outer_scf_history => null()
269 INTEGER :: outer_scf_ihistory = -1
270 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: gradient_history => null(), &
271 variable_history => null()
272 TYPE(
hfx_type),
DIMENSION(:, :),
POINTER :: x_data => null()
285 LOGICAL :: excited_state = .false.
302 REAL(kind=
dp) :: broyden_adaptive_sigma = -1.0_dp
316 REAL(kind=
dp),
DIMENSION(:),
POINTER :: eeq => null()
318 REAL(kind=
dp),
DIMENSION(:),
POINTER :: rhs => null()
319 REAL(kind=
dp) :: total_zeff_corr = -1.0_dp, surface_dipole_moment = -1.0_dp
320 LOGICAL :: surface_dipole_switch_off = .false.
321 TYPE(
mo_set_type),
DIMENSION(:),
POINTER :: mos_last_converged => null()
498 SUBROUTINE get_qs_env(qs_env, atomic_kind_set, qs_kind_set, cell, super_cell, cell_ref, use_ref_cell, kpoints, &
499 dft_control, mos, sab_orb, sab_all, qmmm, qmmm_periodic, sac_ae, sac_ppl, sac_lri, &
500 sap_ppnl, sab_vdw, sab_scp, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, &
501 sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_almo, &
502 sab_kp, sab_kp_nosym, sab_cneo, particle_set, energy, force, &
503 matrix_h, matrix_h_im, matrix_ks, matrix_ks_im, matrix_vxc, run_rtp, rtp, &
504 matrix_h_kp, matrix_h_im_kp, matrix_ks_kp, matrix_ks_im_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, &
505 matrix_w_kp, matrix_s_RI_aux_kp, matrix_s, matrix_s_RI_aux, matrix_w, &
506 matrix_p_mp2, matrix_p_mp2_admm, rho, &
507 rho_xc, pw_env, ewald_env, ewald_pw, active_space, &
508 mpools, input, para_env, blacs_env, scf_control, rel_control, kinetic, qs_charges, &
509 vppl, rho_core, rho_nlcc, rho_nlcc_g, ks_env, ks_qmmm_env, wf_history, scf_env, local_particles, &
510 local_molecules, distribution_2d, dbcsr_dist, molecule_kind_set, &
511 molecule_set, subsys, cp_subsys, oce, local_rho_set, rho_atom_set, &
512 task_list, task_list_soft, &
513 rho0_atom_set, rho0_mpole, rhoz_set, rhoz_cneo_set, ecoul_1c, &
514 rho0_s_rs, rho0_s_gs, rhoz_cneo_s_rs, rhoz_cneo_s_gs, &
515 do_kpoints, has_unit_metric, requires_mo_derivs, mo_derivs, &
516 mo_loc_history, nkind, natom, nelectron_total, nelectron_spin, efield, &
517 neighbor_list_id, linres_control, xas_env, virial, cp_ddapc_env, cp_ddapc_ewald, &
518 outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, results, &
519 se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, &
520 lri_env, lri_density, exstate_env, ec_env, harris_env, dispersion_env, gcp_env, vee, &
521 rho_external, external_vxc, mask, mp2_env, bs_env, kg_env, &
522 WannierCentres, atprop, ls_scf_env, do_transport, transport_env, v_hartree_rspace, &
523 s_mstruct_changed, rho_changed, potential_changed, forces_up_to_date, mscfg_env, almo_scf_env, &
524 gradient_history, variable_history, embed_pot, spin_embed_pot, polar_env, mos_last_converged, &
525 eeq, rhs, do_rixs, tb_tblite)
529 POINTER :: atomic_kind_set
531 POINTER :: qs_kind_set
532 TYPE(
cell_type),
OPTIONAL,
POINTER :: cell, super_cell, cell_ref
533 LOGICAL,
OPTIONAL :: use_ref_cell
536 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos
538 OPTIONAL,
POINTER :: sab_orb, sab_all
539 LOGICAL,
OPTIONAL :: qmmm, qmmm_periodic
541 sap_ppnl, sab_vdw, sab_scp, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, &
542 sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_almo, sab_kp, sab_kp_nosym, sab_cneo
544 POINTER :: particle_set
549 POINTER :: matrix_h, matrix_h_im, matrix_ks, &
550 matrix_ks_im, matrix_vxc
551 LOGICAL,
OPTIONAL :: run_rtp
553 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: matrix_h_kp, matrix_h_im_kp, &
554 matrix_ks_kp, matrix_ks_im_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, &
557 POINTER :: matrix_s, matrix_s_ri_aux, matrix_w, &
558 matrix_p_mp2, matrix_p_mp2_admm
559 TYPE(
qs_rho_type),
OPTIONAL,
POINTER :: rho, rho_xc
585 POINTER :: molecule_kind_set
587 POINTER :: molecule_set
593 POINTER :: rho_atom_set
594 TYPE(
task_list_type),
OPTIONAL,
POINTER :: task_list, task_list_soft
596 POINTER :: rho0_atom_set
598 TYPE(
rhoz_type),
DIMENSION(:),
OPTIONAL,
POINTER :: rhoz_set
600 POINTER :: rhoz_cneo_set
607 LOGICAL,
OPTIONAL :: do_kpoints, has_unit_metric, &
611 TYPE(
cp_fm_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mo_loc_history
612 INTEGER,
OPTIONAL :: nkind, natom, nelectron_total
613 INTEGER,
DIMENSION(2),
OPTIONAL :: nelectron_spin
615 INTEGER,
OPTIONAL :: neighbor_list_id
621 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: outer_scf_history
622 INTEGER,
INTENT(out),
OPTIONAL :: outer_scf_ihistory
623 TYPE(
hfx_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: x_data
626 OPTIONAL,
POINTER :: dftb_potential
632 TYPE(
admm_type),
OPTIONAL,
POINTER :: admm_env
641 TYPE(
qs_rho_type),
OPTIONAL,
POINTER :: rho_external
643 TYPE(
mp2_type),
OPTIONAL,
POINTER :: mp2_env
648 OPTIONAL,
POINTER :: wanniercentres
651 LOGICAL,
OPTIONAL :: do_transport
654 LOGICAL,
OPTIONAL :: s_mstruct_changed, rho_changed, &
655 potential_changed, forces_up_to_date
659 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: gradient_history, variable_history
660 TYPE(
pw_r3d_rs_type),
OPTIONAL,
POINTER :: embed_pot, spin_embed_pot
662 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos_last_converged
663 REAL(kind=
dp),
DIMENSION(:),
OPTIONAL,
POINTER :: eeq, rhs
664 LOGICAL,
OPTIONAL :: do_rixs
670 cpassert(
ASSOCIATED(qs_env%ks_env))
672 IF (
PRESENT(outer_scf_history)) outer_scf_history => qs_env%outer_scf_history
673 IF (
PRESENT(outer_scf_ihistory)) outer_scf_ihistory = qs_env%outer_scf_ihistory
674 IF (
PRESENT(gradient_history)) gradient_history => qs_env%gradient_history
675 IF (
PRESENT(variable_history)) variable_history => qs_env%variable_history
676 IF (
PRESENT(mp2_env)) mp2_env => qs_env%mp2_env
677 IF (
PRESENT(bs_env)) bs_env => qs_env%bs_env
678 IF (
PRESENT(kg_env)) kg_env => qs_env%kg_env
679 IF (
PRESENT(super_cell)) super_cell => qs_env%super_cell
680 IF (
PRESENT(qmmm)) qmmm = qs_env%qmmm
681 IF (
PRESENT(qmmm_periodic)) qmmm_periodic = qs_env%qmmm_periodic
682 IF (
PRESENT(mos)) mos => qs_env%mos
683 IF (
PRESENT(mos_last_converged)) mos_last_converged => qs_env%mos_last_converged
684 IF (
PRESENT(ewald_env)) ewald_env => qs_env%ewald_env
685 IF (
PRESENT(ewald_pw)) ewald_pw => qs_env%ewald_pw
686 IF (
PRESENT(mpools)) mpools => qs_env%mpools
687 IF (
PRESENT(scf_control)) scf_control => qs_env%scf_control
688 IF (
PRESENT(rel_control)) rel_control => qs_env%rel_control
690 IF (
PRESENT(rho_external)) rho_external => qs_env%rho_external
691 IF (
PRESENT(external_vxc)) external_vxc => qs_env%external_vxc
692 IF (
PRESENT(mask)) mask => qs_env%mask
693 IF (
PRESENT(qs_charges)) qs_charges => qs_env%qs_charges
694 IF (
PRESENT(ks_env)) ks_env => qs_env%ks_env
695 IF (
PRESENT(ks_qmmm_env)) ks_qmmm_env => qs_env%ks_qmmm_env
696 IF (
PRESENT(wf_history)) wf_history => qs_env%wf_history
697 IF (
PRESENT(scf_env)) scf_env => qs_env%scf_env
698 IF (
PRESENT(oce)) oce => qs_env%oce
699 IF (
PRESENT(requires_mo_derivs)) requires_mo_derivs = qs_env%requires_mo_derivs
700 IF (
PRESENT(has_unit_metric)) has_unit_metric = qs_env%has_unit_metric
701 IF (
PRESENT(mo_derivs)) mo_derivs => qs_env%mo_derivs
702 IF (
PRESENT(mo_loc_history)) mo_loc_history => qs_env%mo_loc_history
703 IF (
PRESENT(linres_control)) linres_control => qs_env%linres_control
704 IF (
PRESENT(se_taper)) se_taper => qs_env%se_taper
705 IF (
PRESENT(se_store_int_env)) se_store_int_env => qs_env%se_store_int_env
706 IF (
PRESENT(se_nddo_mpole)) se_nddo_mpole => qs_env%se_nddo_mpole
707 IF (
PRESENT(se_nonbond_env)) se_nonbond_env => qs_env%se_nonbond_env
708 IF (
PRESENT(lri_env)) lri_env => qs_env%lri_env
709 IF (
PRESENT(lri_density)) lri_density => qs_env%lri_density
710 IF (
PRESENT(harris_env)) harris_env => qs_env%harris_env
711 IF (
PRESENT(ec_env)) ec_env => qs_env%ec_env
712 IF (
PRESENT(exstate_env)) exstate_env => qs_env%exstate_env
713 IF (
PRESENT(dispersion_env)) dispersion_env => qs_env%dispersion_env
714 IF (
PRESENT(gcp_env)) gcp_env => qs_env%gcp_env
715 IF (
PRESENT(run_rtp)) run_rtp = qs_env%run_rtp
716 IF (
PRESENT(rtp)) rtp => qs_env%rtp
717 IF (
PRESENT(ls_scf_env)) ls_scf_env => qs_env%ls_scf_env
718 IF (
PRESENT(almo_scf_env)) almo_scf_env => qs_env%almo_scf_env
719 IF (
PRESENT(do_transport)) do_transport = qs_env%do_transport
720 IF (
PRESENT(transport_env)) transport_env => qs_env%transport_env
721 IF (
PRESENT(mscfg_env)) mscfg_env => qs_env%molecular_scf_guess_env
722 IF (
PRESENT(active_space)) active_space => qs_env%active_space
723 IF (
PRESENT(admm_env)) admm_env => qs_env%admm_env
724 IF (
PRESENT(do_rixs)) do_rixs = qs_env%do_rixs
727 IF (
PRESENT(embed_pot)) embed_pot => qs_env%embed_pot
728 IF (
PRESENT(spin_embed_pot)) spin_embed_pot => qs_env%spin_embed_pot
731 IF (
PRESENT(polar_env)) polar_env => qs_env%polar_env
734 IF (
PRESENT(eeq)) eeq => qs_env%eeq
737 IF (
PRESENT(rhs)) rhs => qs_env%rhs
739 IF (
PRESENT(local_rho_set)) &
740 local_rho_set => qs_env%local_rho_set
741 IF (
PRESENT(rho_atom_set)) &
742 CALL get_local_rho(qs_env%local_rho_set, rho_atom_set=rho_atom_set)
743 IF (
PRESENT(rho0_atom_set)) &
744 CALL get_local_rho(qs_env%local_rho_set, rho0_atom_set=rho0_atom_set)
745 IF (
PRESENT(rho0_mpole)) &
746 CALL get_local_rho(qs_env%local_rho_set, rho0_mpole=rho0_mpole)
747 IF (
PRESENT(rhoz_set)) &
749 IF (
PRESENT(rhoz_cneo_set)) &
750 CALL get_local_rho(qs_env%local_rho_set, rhoz_cneo_set=rhoz_cneo_set)
751 IF (
PRESENT(ecoul_1c)) &
753 IF (
PRESENT(rho0_s_rs))
THEN
755 IF (
ASSOCIATED(rho0_m))
THEN
756 rho0_s_rs => rho0_m%rho0_s_rs
759 IF (
PRESENT(rho0_s_gs))
THEN
761 IF (
ASSOCIATED(rho0_m))
THEN
762 rho0_s_gs => rho0_m%rho0_s_gs
765 IF (
PRESENT(rhoz_cneo_s_rs))
THEN
767 IF (
ASSOCIATED(rho0_m))
THEN
768 rhoz_cneo_s_rs => rho0_m%rhoz_cneo_s_rs
771 IF (
PRESENT(rhoz_cneo_s_gs))
THEN
773 IF (
ASSOCIATED(rho0_m))
THEN
774 rhoz_cneo_s_gs => rho0_m%rhoz_cneo_s_gs
778 IF (
PRESENT(xas_env)) xas_env => qs_env%xas_env
779 IF (
PRESENT(input)) input => qs_env%input
780 IF (
PRESENT(cp_ddapc_env)) cp_ddapc_env => qs_env%cp_ddapc_env
781 IF (
PRESENT(cp_ddapc_ewald)) cp_ddapc_ewald => qs_env%cp_ddapc_ewald
782 IF (
PRESENT(x_data)) x_data => qs_env%x_data
784 IF (
PRESENT(dftb_potential)) dftb_potential => qs_env%dftb_potential
785 IF (
PRESENT(efield)) efield => qs_env%efield
786 IF (
PRESENT(wanniercentres)) wanniercentres => qs_env%WannierCentres
789 v_hartree_rspace=v_hartree_rspace, &
790 s_mstruct_changed=s_mstruct_changed, &
791 rho_changed=rho_changed, &
792 potential_changed=potential_changed, &
793 forces_up_to_date=forces_up_to_date, &
795 matrix_h_im=matrix_h_im, &
796 matrix_ks=matrix_ks, &
797 matrix_ks_im=matrix_ks_im, &
798 matrix_vxc=matrix_vxc, &
801 matrix_s_ri_aux=matrix_s_ri_aux, &
802 matrix_ks_im_kp=matrix_ks_im_kp, &
804 matrix_p_mp2=matrix_p_mp2, &
805 matrix_p_mp2_admm=matrix_p_mp2_admm, &
806 matrix_h_kp=matrix_h_kp, &
807 matrix_h_im_kp=matrix_h_im_kp, &
808 matrix_ks_kp=matrix_ks_kp, &
809 matrix_vxc_kp=matrix_vxc_kp, &
810 kinetic_kp=kinetic_kp, &
811 matrix_s_kp=matrix_s_kp, &
812 matrix_w_kp=matrix_w_kp, &
813 matrix_s_ri_aux_kp=matrix_s_ri_aux_kp, &
818 rho_nlcc_g=rho_nlcc_g, &
821 neighbor_list_id=neighbor_list_id, &
837 sab_xtb_pp=sab_xtb_pp, &
838 sab_xtb_nonbond=sab_xtb_nonbond, &
841 sab_kp_nosym=sab_kp_nosym, &
843 task_list=task_list, &
844 task_list_soft=task_list_soft, &
846 do_kpoints=do_kpoints, &
847 local_molecules=local_molecules, &
848 local_particles=local_particles, &
854 use_ref_cell=use_ref_cell, &
857 qs_kind_set=qs_kind_set, &
859 cp_subsys=cp_subsys, &
860 atomic_kind_set=atomic_kind_set, &
861 particle_set=particle_set, &
862 molecule_kind_set=molecule_kind_set, &
863 molecule_set=molecule_set, &
866 dft_control=dft_control, &
867 dbcsr_dist=dbcsr_dist, &
868 distribution_2d=distribution_2d, &
871 blacs_env=blacs_env, &
872 nelectron_total=nelectron_total, &
873 nelectron_spin=nelectron_spin)
875 IF (
PRESENT(tb_tblite)) tb_tblite => qs_env%tb_tblite
887 SUBROUTINE init_qs_env(qs_env, globenv)
892 NULLIFY (qs_env%ls_scf_env)
893 NULLIFY (qs_env%almo_scf_env)
894 NULLIFY (qs_env%transport_env)
895 NULLIFY (qs_env%image_matrix)
896 NULLIFY (qs_env%ipiv)
897 NULLIFY (qs_env%image_coeff)
898 NULLIFY (qs_env%super_cell)
900 NULLIFY (qs_env%mos_last_converged)
901 NULLIFY (qs_env%mpools)
902 NULLIFY (qs_env%ewald_env)
903 NULLIFY (qs_env%ewald_pw)
904 NULLIFY (qs_env%scf_control)
905 NULLIFY (qs_env%rel_control)
906 NULLIFY (qs_env%qs_charges)
908 NULLIFY (qs_env%rho_external)
909 NULLIFY (qs_env%external_vxc)
910 NULLIFY (qs_env%mask)
912 NULLIFY (qs_env%embed_pot)
913 NULLIFY (qs_env%spin_embed_pot)
916 NULLIFY (qs_env%polar_env)
918 NULLIFY (qs_env%ks_env)
919 NULLIFY (qs_env%ks_qmmm_env)
920 NULLIFY (qs_env%wf_history)
921 NULLIFY (qs_env%scf_env)
923 NULLIFY (qs_env%local_rho_set)
924 NULLIFY (qs_env%hartree_local)
925 NULLIFY (qs_env%input)
926 NULLIFY (qs_env%linres_control)
927 NULLIFY (qs_env%xas_env)
928 NULLIFY (qs_env%cp_ddapc_env)
929 NULLIFY (qs_env%cp_ddapc_ewald)
930 NULLIFY (qs_env%outer_scf_history)
931 NULLIFY (qs_env%gradient_history)
932 NULLIFY (qs_env%variable_history)
933 NULLIFY (qs_env%x_data)
934 NULLIFY (qs_env%et_coupling)
935 NULLIFY (qs_env%dftb_potential)
936 NULLIFY (qs_env%active_space)
938 NULLIFY (qs_env%se_taper)
939 NULLIFY (qs_env%se_store_int_env)
940 NULLIFY (qs_env%se_nddo_mpole)
941 NULLIFY (qs_env%se_nonbond_env)
942 NULLIFY (qs_env%admm_env)
943 NULLIFY (qs_env%efield)
944 NULLIFY (qs_env%lri_env)
945 NULLIFY (qs_env%harris_env)
946 NULLIFY (qs_env%ec_env)
947 NULLIFY (qs_env%exstate_env)
948 NULLIFY (qs_env%lri_density)
949 NULLIFY (qs_env%gcp_env)
951 NULLIFY (qs_env%mp2_env)
952 NULLIFY (qs_env%bs_env)
953 NULLIFY (qs_env%kg_env)
954 NULLIFY (qs_env%WannierCentres)
956 qs_env%outer_scf_ihistory = 0
957 qs_env%broyden_adaptive_sigma = -1.0_dp
961 qs_env%run_rtp = .false.
962 qs_env%linres_run = .false.
963 qs_env%single_point_run = .false.
964 qs_env%qmmm = .false.
965 qs_env%qmmm_periodic = .false.
966 qs_env%requires_mo_derivs = .false.
967 qs_env%requires_matrix_vxc = .false.
968 qs_env%has_unit_metric = .false.
969 qs_env%calc_image_preconditioner = .true.
970 qs_env%do_transport = .false.
971 qs_env%given_embed_pot = .false.
972 qs_env%do_rixs = .false.
973 IF (
PRESENT(globenv))
THEN
974 qs_env%target_time = globenv%cp2k_target_time
975 qs_env%start_time = globenv%cp2k_start_time
976 qs_env%single_point_run = (globenv%run_type_id ==
energy_run .OR. &
979 qs_env%target_time = 0.0_dp
980 qs_env%start_time = 0.0_dp
983 qs_env%sim_time = 0._dp
986 qs_env%total_zeff_corr = 0.0_dp
987 qs_env%surface_dipole_moment = 0.0_dp
988 qs_env%surface_dipole_switch_off = .false.
991 NULLIFY (qs_env%mo_derivs)
992 NULLIFY (qs_env%mo_loc_history)
994 IF (.NOT.
ASSOCIATED(qs_env%molecular_scf_guess_env))
ALLOCATE (qs_env%molecular_scf_guess_env)
996 NULLIFY (qs_env%tb_tblite)
998 END SUBROUTINE init_qs_env
1083 mos, qmmm, qmmm_periodic, &
1084 ewald_env, ewald_pw, mpools, &
1085 rho_external, external_vxc, mask, &
1086 scf_control, rel_control, qs_charges, ks_env, &
1087 ks_qmmm_env, wf_history, scf_env, active_space, &
1088 input, oce, rho_atom_set, rho0_atom_set, rho0_mpole, run_rtp, rtp, &
1089 rhoz_set, rhoz_tot, ecoul_1c, has_unit_metric, requires_mo_derivs, mo_derivs, &
1090 mo_loc_history, efield, rhoz_cneo_set, &
1091 linres_control, xas_env, cp_ddapc_env, cp_ddapc_ewald, &
1092 outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, &
1093 se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, ls_scf_env, &
1094 do_transport, transport_env, lri_env, lri_density, exstate_env, ec_env, dispersion_env, &
1095 harris_env, gcp_env, mp2_env, bs_env, kg_env, force, &
1096 kpoints, WannierCentres, almo_scf_env, gradient_history, variable_history, embed_pot, &
1097 spin_embed_pot, polar_env, mos_last_converged, eeq, rhs, do_rixs, tb_tblite)
1100 TYPE(
cell_type),
OPTIONAL,
POINTER :: super_cell
1101 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos
1102 LOGICAL,
OPTIONAL :: qmmm, qmmm_periodic
1106 TYPE(
qs_rho_type),
OPTIONAL,
POINTER :: rho_external
1119 POINTER :: rho_atom_set
1121 POINTER :: rho0_atom_set
1123 LOGICAL,
OPTIONAL :: run_rtp
1125 TYPE(
rhoz_type),
DIMENSION(:),
OPTIONAL,
POINTER :: rhoz_set
1126 REAL(
dp),
OPTIONAL :: rhoz_tot
1129 LOGICAL,
OPTIONAL :: has_unit_metric, requires_mo_derivs
1131 POINTER :: mo_derivs
1132 TYPE(
cp_fm_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mo_loc_history
1135 POINTER :: rhoz_cneo_set
1140 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: outer_scf_history
1141 INTEGER,
INTENT(IN),
OPTIONAL :: outer_scf_ihistory
1142 TYPE(
hfx_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: x_data
1145 OPTIONAL,
POINTER :: dftb_potential
1150 TYPE(
admm_type),
OPTIONAL,
POINTER :: admm_env
1152 LOGICAL,
OPTIONAL :: do_transport
1159 TYPE(
harris_type),
OPTIONAL,
POINTER :: harris_env
1161 TYPE(
mp2_type),
OPTIONAL,
POINTER :: mp2_env
1169 OPTIONAL,
POINTER :: wanniercentres
1171 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: gradient_history, variable_history
1172 TYPE(
pw_r3d_rs_type),
OPTIONAL,
POINTER :: embed_pot, spin_embed_pot
1174 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos_last_converged
1175 REAL(kind=
dp),
DIMENSION(:),
OPTIONAL,
POINTER :: eeq, rhs
1176 LOGICAL,
OPTIONAL :: do_rixs
1181 IF (
PRESENT(mp2_env)) qs_env%mp2_env => mp2_env
1182 IF (
PRESENT(bs_env)) qs_env%bs_env => bs_env
1183 IF (
PRESENT(kg_env)) qs_env%kg_env => kg_env
1184 IF (
PRESENT(super_cell))
THEN
1187 qs_env%super_cell => super_cell
1190 IF (
PRESENT(qmmm)) qs_env%qmmm = qmmm
1191 IF (
PRESENT(qmmm_periodic)) qs_env%qmmm_periodic = qmmm_periodic
1192 IF (
PRESENT(mos)) qs_env%mos => mos
1193 IF (
PRESENT(mos_last_converged)) qs_env%mos_last_converged => mos_last_converged
1194 IF (
PRESENT(ls_scf_env)) qs_env%ls_scf_env => ls_scf_env
1195 IF (
PRESENT(almo_scf_env)) qs_env%almo_scf_env => almo_scf_env
1196 IF (
PRESENT(do_transport)) qs_env%do_transport = do_transport
1197 IF (
PRESENT(transport_env)) qs_env%transport_env => transport_env
1200 IF (
PRESENT(oce)) qs_env%oce => oce
1201 IF (
PRESENT(outer_scf_history)) qs_env%outer_scf_history => outer_scf_history
1202 IF (
PRESENT(gradient_history)) qs_env%gradient_history => gradient_history
1203 IF (
PRESENT(variable_history)) qs_env%variable_history => variable_history
1204 IF (
PRESENT(outer_scf_ihistory)) qs_env%outer_scf_ihistory = outer_scf_ihistory
1205 IF (
PRESENT(requires_mo_derivs)) qs_env%requires_mo_derivs = requires_mo_derivs
1206 IF (
PRESENT(has_unit_metric)) qs_env%has_unit_metric = has_unit_metric
1207 IF (
PRESENT(mo_derivs)) qs_env%mo_derivs => mo_derivs
1208 IF (
PRESENT(mo_loc_history)) qs_env%mo_loc_history => mo_loc_history
1209 IF (
PRESENT(run_rtp)) qs_env%run_rtp = run_rtp
1210 IF (
PRESENT(rtp)) qs_env%rtp => rtp
1211 IF (
PRESENT(efield)) qs_env%efield => efield
1212 IF (
PRESENT(active_space)) qs_env%active_space => active_space
1213 IF (
PRESENT(do_rixs)) do_rixs = qs_env%do_rixs
1215 IF (
PRESENT(ewald_env))
THEN
1216 IF (
ASSOCIATED(qs_env%ewald_env))
THEN
1217 IF (.NOT.
ASSOCIATED(qs_env%ewald_env, ewald_env))
THEN
1219 DEALLOCATE (qs_env%ewald_env)
1222 qs_env%ewald_env => ewald_env
1224 IF (
PRESENT(ewald_pw))
THEN
1225 IF (
ASSOCIATED(qs_env%ewald_pw))
THEN
1226 IF (.NOT.
ASSOCIATED(ewald_pw, qs_env%ewald_pw))
THEN
1228 DEALLOCATE (qs_env%ewald_pw)
1231 qs_env%ewald_pw => ewald_pw
1233 IF (
PRESENT(scf_control))
THEN
1234 IF (
ASSOCIATED(qs_env%scf_control))
THEN
1235 IF (.NOT.
ASSOCIATED(qs_env%scf_control, scf_control))
THEN
1237 DEALLOCATE (qs_env%scf_control)
1240 qs_env%scf_control => scf_control
1242 IF (
PRESENT(rel_control))
THEN
1243 IF (
ASSOCIATED(qs_env%rel_control))
THEN
1244 IF (.NOT.
ASSOCIATED(qs_env%rel_control, rel_control))
THEN
1246 DEALLOCATE (qs_env%rel_control)
1249 qs_env%rel_control => rel_control
1251 IF (
PRESENT(linres_control))
THEN
1252 IF (
ASSOCIATED(qs_env%linres_control))
THEN
1253 IF (.NOT.
ASSOCIATED(qs_env%linres_control, linres_control))
THEN
1255 DEALLOCATE (qs_env%linres_control)
1258 qs_env%linres_control => linres_control
1261 IF (
PRESENT(rho_external))
THEN
1262 IF (
ASSOCIATED(qs_env%rho_external))
THEN
1263 IF (.NOT.
ASSOCIATED(qs_env%rho_external, rho_external))
THEN
1265 DEALLOCATE (qs_env%rho_external)
1268 qs_env%rho_external => rho_external
1270 IF (
PRESENT(external_vxc)) qs_env%external_vxc => external_vxc
1271 IF (
PRESENT(mask)) qs_env%mask => mask
1273 IF (
PRESENT(embed_pot)) qs_env%embed_pot => embed_pot
1274 IF (
PRESENT(spin_embed_pot)) qs_env%spin_embed_pot => spin_embed_pot
1277 IF (
PRESENT(polar_env)) qs_env%polar_env => polar_env
1279 IF (
PRESENT(qs_charges))
THEN
1280 IF (
ASSOCIATED(qs_env%qs_charges))
THEN
1281 IF (.NOT.
ASSOCIATED(qs_env%qs_charges, qs_charges))
THEN
1283 DEALLOCATE (qs_env%qs_charges)
1286 qs_env%qs_charges => qs_charges
1288 IF (
PRESENT(ks_qmmm_env))
THEN
1289 IF (
ASSOCIATED(qs_env%ks_qmmm_env))
THEN
1290 IF (.NOT.
ASSOCIATED(qs_env%ks_qmmm_env, ks_qmmm_env))
THEN
1292 DEALLOCATE (qs_env%ks_qmmm_env)
1295 qs_env%ks_qmmm_env => ks_qmmm_env
1297 IF (
PRESENT(ks_env))
THEN
1298 IF (
ASSOCIATED(qs_env%ks_env))
THEN
1299 IF (.NOT.
ASSOCIATED(qs_env%ks_env, ks_env))
THEN
1301 DEALLOCATE (qs_env%ks_env)
1304 qs_env%ks_env => ks_env
1306 IF (
PRESENT(wf_history))
THEN
1309 qs_env%wf_history => wf_history
1311 IF (
PRESENT(scf_env))
THEN
1312 IF (
ASSOCIATED(qs_env%scf_env))
THEN
1313 IF (.NOT.
ASSOCIATED(qs_env%scf_env, scf_env))
THEN
1315 DEALLOCATE (qs_env%scf_env)
1318 qs_env%scf_env => scf_env
1320 IF (
PRESENT(xas_env))
THEN
1321 IF (
ASSOCIATED(qs_env%xas_env))
THEN
1322 IF (.NOT.
ASSOCIATED(qs_env%xas_env, xas_env))
THEN
1324 DEALLOCATE (qs_env%xas_env)
1327 qs_env%xas_env => xas_env
1329 IF (
PRESENT(mpools))
THEN
1332 qs_env%mpools => mpools
1334 IF (
PRESENT(rho_atom_set))
THEN
1335 CALL set_local_rho(qs_env%local_rho_set, rho_atom_set=rho_atom_set)
1337 IF (
PRESENT(rho0_atom_set))
THEN
1338 CALL set_local_rho(qs_env%local_rho_set, rho0_atom_set=rho0_atom_set)
1340 IF (
PRESENT(rho0_mpole))
THEN
1341 CALL set_local_rho(qs_env%local_rho_set, rho0_mpole=rho0_mpole)
1343 IF (
PRESENT(rhoz_set))
THEN
1346 IF (
PRESENT(rhoz_cneo_set))
THEN
1347 CALL set_local_rho(qs_env%local_rho_set, rhoz_cneo_set=rhoz_cneo_set)
1349 IF (
PRESENT(rhoz_tot)) qs_env%local_rho_set%rhoz_tot = rhoz_tot
1350 IF (
PRESENT(ecoul_1c))
THEN
1353 IF (
PRESENT(input))
THEN
1356 qs_env%input => input
1358 IF (
PRESENT(cp_ddapc_env))
THEN
1359 IF (
ASSOCIATED(qs_env%cp_ddapc_env))
THEN
1360 IF (.NOT.
ASSOCIATED(qs_env%cp_ddapc_env, cp_ddapc_env))
THEN
1362 DEALLOCATE (qs_env%cp_ddapc_env)
1365 qs_env%cp_ddapc_env => cp_ddapc_env
1367 IF (
PRESENT(cp_ddapc_ewald))
THEN
1368 qs_env%cp_ddapc_ewald => cp_ddapc_ewald
1370 IF (
PRESENT(x_data)) qs_env%x_data => x_data
1372 IF (
PRESENT(dftb_potential)) qs_env%dftb_potential => dftb_potential
1373 IF (
PRESENT(se_taper))
THEN
1375 qs_env%se_taper => se_taper
1377 IF (
PRESENT(se_store_int_env))
THEN
1379 qs_env%se_store_int_env => se_store_int_env
1381 IF (
PRESENT(se_nddo_mpole))
THEN
1383 qs_env%se_nddo_mpole => se_nddo_mpole
1385 IF (
PRESENT(se_nonbond_env))
THEN
1386 IF (
ASSOCIATED(qs_env%se_nonbond_env))
THEN
1387 IF (.NOT.
ASSOCIATED(qs_env%se_nonbond_env, se_nonbond_env))
THEN
1389 DEALLOCATE (qs_env%se_nonbond_env)
1392 qs_env%se_nonbond_env => se_nonbond_env
1394 IF (
PRESENT(admm_env)) qs_env%admm_env => admm_env
1395 IF (
PRESENT(lri_env)) qs_env%lri_env => lri_env
1396 IF (
PRESENT(lri_density)) qs_env%lri_density => lri_density
1397 IF (
PRESENT(harris_env)) qs_env%harris_env => harris_env
1398 IF (
PRESENT(ec_env)) qs_env%ec_env => ec_env
1399 IF (
PRESENT(exstate_env)) qs_env%exstate_env => exstate_env
1400 IF (
PRESENT(dispersion_env)) qs_env%dispersion_env => dispersion_env
1401 IF (
PRESENT(gcp_env)) qs_env%gcp_env => gcp_env
1402 IF (
PRESENT(wanniercentres)) qs_env%WannierCentres => wanniercentres
1403 IF (
PRESENT(kpoints))
CALL set_ks_env(qs_env%ks_env, kpoints=kpoints)
1406 IF (
PRESENT(eeq)) qs_env%eeq => eeq
1409 IF (
PRESENT(rhs)) qs_env%rhs => rhs
1411 IF (
PRESENT(force))
THEN
1416 IF (
PRESENT(tb_tblite)) qs_env%tb_tblite => tb_tblite
1432 CALL init_qs_env(qs_env, globenv=globenv)
1449 IF (
ASSOCIATED(qs_env%mos))
THEN
1450 DO i = 1,
SIZE(qs_env%mos)
1453 DEALLOCATE (qs_env%mos)
1455 IF (
ASSOCIATED(qs_env%mos_last_converged))
THEN
1456 DO i = 1,
SIZE(qs_env%mos_last_converged)
1459 DEALLOCATE (qs_env%mos_last_converged)
1462 IF (
ASSOCIATED(qs_env%mo_derivs))
THEN
1463 DO i = 1,
SIZE(qs_env%mo_derivs)
1466 DEALLOCATE (qs_env%mo_derivs)
1471 IF (
ASSOCIATED(qs_env%rtp))
THEN
1473 DEALLOCATE (qs_env%rtp)
1475 IF (
ASSOCIATED(qs_env%outer_scf_history))
THEN
1476 DEALLOCATE (qs_env%outer_scf_history)
1477 qs_env%outer_scf_ihistory = 0
1479 IF (
ASSOCIATED(qs_env%gradient_history)) &
1480 DEALLOCATE (qs_env%gradient_history)
1481 IF (
ASSOCIATED(qs_env%variable_history)) &
1482 DEALLOCATE (qs_env%variable_history)
1484 IF (
ASSOCIATED(qs_env%local_rho_set))
THEN
1487 IF (
ASSOCIATED(qs_env%hartree_local))
THEN
1490 IF (
ASSOCIATED(qs_env%scf_control))
THEN
1492 DEALLOCATE (qs_env%scf_control)
1494 IF (
ASSOCIATED(qs_env%rel_control))
THEN
1496 DEALLOCATE (qs_env%rel_control)
1499 IF (
ASSOCIATED(qs_env%linres_control))
THEN
1501 DEALLOCATE (qs_env%linres_control)
1504 IF (
ASSOCIATED(qs_env%almo_scf_env))
THEN
1508 IF (
ASSOCIATED(qs_env%ls_scf_env))
THEN
1511 IF (
ASSOCIATED(qs_env%molecular_scf_guess_env))
THEN
1513 DEALLOCATE (qs_env%molecular_scf_guess_env)
1516 IF (
ASSOCIATED(qs_env%transport_env))
THEN
1521 IF (
ASSOCIATED(qs_env%xas_env))
THEN
1523 DEALLOCATE (qs_env%xas_env)
1525 IF (
ASSOCIATED(qs_env%ewald_env))
THEN
1527 DEALLOCATE (qs_env%ewald_env)
1529 IF (
ASSOCIATED(qs_env%ewald_pw))
THEN
1531 DEALLOCATE (qs_env%ewald_pw)
1533 IF (
ASSOCIATED(qs_env%image_matrix))
THEN
1534 DEALLOCATE (qs_env%image_matrix)
1536 IF (
ASSOCIATED(qs_env%ipiv))
THEN
1537 DEALLOCATE (qs_env%ipiv)
1539 IF (
ASSOCIATED(qs_env%image_coeff))
THEN
1540 DEALLOCATE (qs_env%image_coeff)
1543 IF (
ASSOCIATED(qs_env%rho_external))
THEN
1545 DEALLOCATE (qs_env%rho_external)
1547 IF (
ASSOCIATED(qs_env%external_vxc))
THEN
1548 CALL qs_env%external_vxc%release()
1549 DEALLOCATE (qs_env%external_vxc)
1551 IF (
ASSOCIATED(qs_env%mask))
THEN
1552 CALL qs_env%mask%release()
1553 DEALLOCATE (qs_env%mask)
1555 IF (
ASSOCIATED(qs_env%active_space))
THEN
1559 IF (qs_env%given_embed_pot)
THEN
1560 CALL qs_env%embed_pot%release()
1561 DEALLOCATE (qs_env%embed_pot)
1562 IF (
ASSOCIATED(qs_env%spin_embed_pot))
THEN
1563 CALL qs_env%spin_embed_pot%release()
1564 DEALLOCATE (qs_env%spin_embed_pot)
1571 IF (
ASSOCIATED(qs_env%qs_charges))
THEN
1573 DEALLOCATE (qs_env%qs_charges)
1575 IF (
ASSOCIATED(qs_env%ks_env))
THEN
1577 DEALLOCATE (qs_env%ks_env)
1579 IF (
ASSOCIATED(qs_env%ks_qmmm_env))
THEN
1581 DEALLOCATE (qs_env%ks_qmmm_env)
1584 IF (
ASSOCIATED(qs_env%scf_env))
THEN
1586 DEALLOCATE (qs_env%scf_env)
1590 IF (
ASSOCIATED(qs_env%cp_ddapc_env))
THEN
1592 DEALLOCATE (qs_env%cp_ddapc_env)
1596 IF (
ASSOCIATED(qs_env%x_data))
THEN
1599 IF (
ASSOCIATED(qs_env%et_coupling))
THEN
1602 IF (
ASSOCIATED(qs_env%dftb_potential))
THEN
1605 IF (
ASSOCIATED(qs_env%se_taper))
THEN
1608 IF (
ASSOCIATED(qs_env%se_store_int_env))
THEN
1611 IF (
ASSOCIATED(qs_env%se_nddo_mpole))
THEN
1614 IF (
ASSOCIATED(qs_env%se_nonbond_env))
THEN
1616 DEALLOCATE (qs_env%se_nonbond_env)
1618 IF (
ASSOCIATED(qs_env%admm_env))
THEN
1621 IF (
ASSOCIATED(qs_env%lri_env))
THEN
1623 DEALLOCATE (qs_env%lri_env)
1625 IF (
ASSOCIATED(qs_env%lri_density))
THEN
1627 DEALLOCATE (qs_env%lri_density)
1629 IF (
ASSOCIATED(qs_env%harris_env))
THEN
1632 IF (
ASSOCIATED(qs_env%ec_env))
THEN
1635 IF (
ASSOCIATED(qs_env%exstate_env))
THEN
1638 IF (
ASSOCIATED(qs_env%mp2_env))
THEN
1640 DEALLOCATE (qs_env%mp2_env)
1641 NULLIFY (qs_env%mp2_env)
1643 IF (
ASSOCIATED(qs_env%bs_env))
THEN
1646 IF (
ASSOCIATED(qs_env%kg_env))
THEN
1653 IF (
ASSOCIATED(qs_env%gcp_env))
THEN
1657 IF (
ASSOCIATED(qs_env%WannierCentres))
THEN
1658 DO i = 1,
SIZE(qs_env%WannierCentres)
1659 DEALLOCATE (qs_env%WannierCentres(i)%WannierHamDiag)
1660 DEALLOCATE (qs_env%WannierCentres(i)%centres)
1662 DEALLOCATE (qs_env%WannierCentres)
1665 IF (
ASSOCIATED(qs_env%eeq))
DEALLOCATE (qs_env%eeq)
1667 IF (
ASSOCIATED(qs_env%rhs))
DEALLOCATE (qs_env%rhs)
1670 IF (
ASSOCIATED(qs_env%tb_tblite))
THEN
1687 IF (
ASSOCIATED(qs_env%mos_last_converged))
THEN
1688 DO i = 1,
SIZE(qs_env%mos_last_converged)
1691 DEALLOCATE (qs_env%mos_last_converged)
1694 IF (
ASSOCIATED(qs_env%mo_derivs))
THEN
1695 DO i = 1,
SIZE(qs_env%mo_derivs)
1698 DEALLOCATE (qs_env%mo_derivs)
1703 IF (
ASSOCIATED(qs_env%rtp))
THEN
1705 DEALLOCATE (qs_env%rtp)
1707 IF (
ASSOCIATED(qs_env%outer_scf_history))
THEN
1708 DEALLOCATE (qs_env%outer_scf_history)
1709 qs_env%outer_scf_ihistory = 0
1711 IF (
ASSOCIATED(qs_env%gradient_history)) &
1712 DEALLOCATE (qs_env%gradient_history)
1713 IF (
ASSOCIATED(qs_env%variable_history)) &
1714 DEALLOCATE (qs_env%variable_history)
1716 IF (
ASSOCIATED(qs_env%local_rho_set))
THEN
1719 IF (
ASSOCIATED(qs_env%hartree_local))
THEN
1722 IF (
ASSOCIATED(qs_env%scf_control))
THEN
1724 DEALLOCATE (qs_env%scf_control)
1726 IF (
ASSOCIATED(qs_env%rel_control))
THEN
1728 DEALLOCATE (qs_env%rel_control)
1731 IF (
ASSOCIATED(qs_env%linres_control))
THEN
1733 DEALLOCATE (qs_env%linres_control)
1736 IF (
ASSOCIATED(qs_env%almo_scf_env))
THEN
1740 IF (
ASSOCIATED(qs_env%ls_scf_env))
THEN
1743 IF (
ASSOCIATED(qs_env%molecular_scf_guess_env))
THEN
1745 DEALLOCATE (qs_env%molecular_scf_guess_env)
1748 IF (
ASSOCIATED(qs_env%transport_env))
THEN
1753 IF (
ASSOCIATED(qs_env%xas_env))
THEN
1755 DEALLOCATE (qs_env%xas_env)
1757 IF (
ASSOCIATED(qs_env%ewald_env))
THEN
1759 DEALLOCATE (qs_env%ewald_env)
1761 IF (
ASSOCIATED(qs_env%ewald_pw))
THEN
1763 DEALLOCATE (qs_env%ewald_pw)
1765 IF (
ASSOCIATED(qs_env%image_matrix))
THEN
1766 DEALLOCATE (qs_env%image_matrix)
1768 IF (
ASSOCIATED(qs_env%ipiv))
THEN
1769 DEALLOCATE (qs_env%ipiv)
1771 IF (
ASSOCIATED(qs_env%image_coeff))
THEN
1772 DEALLOCATE (qs_env%image_coeff)
1775 IF (
ASSOCIATED(qs_env%rho_external))
THEN
1777 DEALLOCATE (qs_env%rho_external)
1779 IF (
ASSOCIATED(qs_env%external_vxc))
THEN
1780 CALL qs_env%external_vxc%release()
1781 DEALLOCATE (qs_env%external_vxc)
1783 IF (
ASSOCIATED(qs_env%mask))
THEN
1784 CALL qs_env%mask%release()
1785 DEALLOCATE (qs_env%mask)
1787 IF (
ASSOCIATED(qs_env%active_space))
THEN
1791 IF (qs_env%given_embed_pot)
THEN
1792 CALL qs_env%embed_pot%release()
1793 DEALLOCATE (qs_env%embed_pot)
1794 IF (
ASSOCIATED(qs_env%spin_embed_pot))
THEN
1795 CALL qs_env%spin_embed_pot%release()
1796 DEALLOCATE (qs_env%spin_embed_pot)
1803 IF (
ASSOCIATED(qs_env%qs_charges))
THEN
1805 DEALLOCATE (qs_env%qs_charges)
1808 IF (
ASSOCIATED(qs_env%ks_qmmm_env))
THEN
1810 DEALLOCATE (qs_env%ks_qmmm_env)
1813 IF (
ASSOCIATED(qs_env%scf_env))
THEN
1815 DEALLOCATE (qs_env%scf_env)
1817 IF (
ASSOCIATED(qs_env%cp_ddapc_env))
THEN
1819 DEALLOCATE (qs_env%cp_ddapc_env)
1823 IF (
ASSOCIATED(qs_env%x_data))
THEN
1826 IF (
ASSOCIATED(qs_env%et_coupling))
THEN
1829 IF (
ASSOCIATED(qs_env%dftb_potential))
THEN
1832 IF (
ASSOCIATED(qs_env%se_taper))
THEN
1835 IF (
ASSOCIATED(qs_env%se_store_int_env))
THEN
1838 IF (
ASSOCIATED(qs_env%se_nddo_mpole))
THEN
1841 IF (
ASSOCIATED(qs_env%se_nonbond_env))
THEN
1843 DEALLOCATE (qs_env%se_nonbond_env)
1845 IF (
ASSOCIATED(qs_env%admm_env))
THEN
1848 IF (
ASSOCIATED(qs_env%lri_env))
THEN
1850 DEALLOCATE (qs_env%lri_env)
1852 IF (
ASSOCIATED(qs_env%lri_density))
THEN
1854 DEALLOCATE (qs_env%lri_density)
1856 IF (
ASSOCIATED(qs_env%harris_env))
THEN
1859 IF (
ASSOCIATED(qs_env%ec_env))
THEN
1862 IF (
ASSOCIATED(qs_env%exstate_env))
THEN
1865 IF (
ASSOCIATED(qs_env%mp2_env))
THEN
1867 DEALLOCATE (qs_env%mp2_env)
1868 NULLIFY (qs_env%mp2_env)
1870 IF (
ASSOCIATED(qs_env%kg_env))
THEN
1877 IF (
ASSOCIATED(qs_env%gcp_env))
THEN
1881 IF (
ASSOCIATED(qs_env%WannierCentres))
THEN
1882 DO i = 1,
SIZE(qs_env%WannierCentres)
1883 DEALLOCATE (qs_env%WannierCentres(i)%WannierHamDiag)
1884 DEALLOCATE (qs_env%WannierCentres(i)%centres)
1886 DEALLOCATE (qs_env%WannierCentres)
1889 IF (
ASSOCIATED(qs_env%eeq))
DEALLOCATE (qs_env%eeq)
1891 IF (
ASSOCIATED(qs_env%rhs))
DEALLOCATE (qs_env%rhs)
1894 IF (
ASSOCIATED(qs_env%tb_tblite))
THEN
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, 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, 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 set_qs_env(qs_env, super_cell, mos, qmmm, qmmm_periodic, ewald_env, ewald_pw, mpools, rho_external, external_vxc, mask, scf_control, rel_control, qs_charges, ks_env, ks_qmmm_env, wf_history, scf_env, active_space, input, oce, rho_atom_set, rho0_atom_set, rho0_mpole, run_rtp, rtp, rhoz_set, rhoz_tot, ecoul_1c, has_unit_metric, requires_mo_derivs, mo_derivs, mo_loc_history, efield, 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.
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
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 set_ks_env(ks_env, v_hartree_rspace, s_mstruct_changed, rho_changed, potential_changed, forces_up_to_date, complex_ks, matrix_h, matrix_h_im, matrix_ks, matrix_ks_im, matrix_vxc, kinetic, matrix_s, matrix_s_ri_aux, matrix_w, matrix_p_mp2, matrix_p_mp2_admm, matrix_h_kp, matrix_h_im_kp, matrix_ks_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, matrix_s_ri_aux_kp, matrix_ks_im_kp, vppl, rho_core, rho_nlcc, rho_nlcc_g, vee, neighbor_list_id, kpoints, sab_orb, sab_all, sac_ae, sac_ppl, sac_lri, sap_ppnl, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_vdw, sab_scp, sab_almo, sab_kp, sab_kp_nosym, 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, potential_changed, forces_up_to_date, complex_ks, matrix_h, matrix_h_im, matrix_ks, matrix_ks_im, matrix_vxc, kinetic, matrix_s, matrix_s_ri_aux, matrix_w, matrix_p_mp2, matrix_p_mp2_admm, matrix_h_kp, matrix_h_im_kp, matrix_ks_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, matrix_s_ri_aux_kp, matrix_ks_im_kp, rho, rho_xc, vppl, rho_core, rho_nlcc, rho_nlcc_g, vee, neighbor_list_id, sab_orb, sab_all, sac_ae, sac_ppl, sac_lri, sap_ppnl, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_vdw, sab_scp, sab_almo, sab_kp, sab_kp_nosym, 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)
...
subroutine, public qs_ks_part_release(ks_env)
releases part of the ks_env
Type definitiona for linear response calculations.
subroutine, public polar_env_release(polar_env)
Deallocate the polar environment.
subroutine, public linres_control_release(linres_control)
...
subroutine, public local_rho_set_create(local_rho_set)
...
subroutine, public 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)
...
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.