170#include "./base/base_uses.f90"
176 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'qs_environment_types'
225 LOGICAL :: qmmm = .false., qmmm_periodic = .false.
226 LOGICAL :: mimic = .false.
227 LOGICAL :: requires_mo_derivs = .false.
228 LOGICAL :: requires_matrix_vxc = .false.
229 LOGICAL :: has_unit_metric = .false.
230 LOGICAL :: run_rtp = .false.
231 LOGICAL :: linres_run = .false.
232 LOGICAL :: calc_image_preconditioner = .false.
233 LOGICAL :: do_transport = .false.
234 LOGICAL :: single_point_run = .false.
236 LOGICAL :: skip_wf_history = .false.
237 LOGICAL :: given_embed_pot = .false.
238 LOGICAL :: energy_correction = .false.
239 LOGICAL :: harris_method = .false.
240 LOGICAL :: do_rixs = .false.
241 REAL(kind=
dp) :: sim_time = -1.0_dp
242 REAL(kind=
dp) :: start_time = -1.0_dp, target_time = -1.0_dp
243 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: image_matrix => null()
244 REAL(kind=
dp),
DIMENSION(:),
POINTER :: image_coeff => null()
245 INTEGER,
DIMENSION(:),
POINTER :: ipiv => null()
246 INTEGER :: sim_step = -1
252 TYPE(
cp_fm_type),
DIMENSION(:),
POINTER :: mo_loc_history => null()
266 LOGICAL :: scf_convergence_available = .false., scf_converged = .false.
276 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: outer_scf_history => null()
277 INTEGER :: outer_scf_ihistory = -1
278 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: gradient_history => null(), &
279 variable_history => null()
280 TYPE(
hfx_type),
DIMENSION(:, :),
POINTER :: x_data => null()
293 LOGICAL :: excited_state = .false.
310 REAL(kind=
dp) :: broyden_adaptive_sigma = -1.0_dp
324 REAL(kind=
dp),
DIMENSION(:),
POINTER :: eeq => null()
326 REAL(kind=
dp),
DIMENSION(:),
POINTER :: rhs => null()
327 REAL(kind=
dp) :: total_zeff_corr = -1.0_dp, surface_dipole_moment = -1.0_dp
330 REAL(kind=
dp) :: vacuum_level_below = 0.0_dp, vacuum_level_above = 0.0_dp
332 REAL(kind=
dp) :: surface_dipole_ref_pos = 0.0_dp
333 LOGICAL :: surface_dipole_switch_off = .false.
334 TYPE(
mo_set_type),
DIMENSION(:),
POINTER :: mos_last_converged => null()
516 SUBROUTINE get_qs_env(qs_env, atomic_kind_set, qs_kind_set, cell, super_cell, cell_ref, use_ref_cell, kpoints, &
517 dft_control, mos, sab_orb, sab_all, qmmm, qmmm_periodic, mimic, sac_ae, sac_ppl, sac_lri, &
518 sap_ppnl, sab_vdw, sab_scp, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, &
519 sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_almo, &
520 sab_kp, sab_kp_nosym, sab_cneo, particle_set, energy, force, &
521 matrix_h, matrix_h_im, matrix_ks, matrix_ks_im, matrix_vxc, run_rtp, rtp, &
522 matrix_h_kp, matrix_h_im_kp, matrix_ks_kp, matrix_ks_im_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, &
523 matrix_w_kp, matrix_s_RI_aux_kp, matrix_s, matrix_s_RI_aux, matrix_w, &
524 matrix_p_mp2, matrix_p_mp2_admm, matrix_vhxc, rho, &
525 rho_xc, pw_env, ewald_env, ewald_pw, active_space, &
526 mpools, input, para_env, blacs_env, scf_control, rel_control, kinetic, qs_charges, &
527 vppl, xcint_weights, rho_core, rho_nlcc, rho_nlcc_g, &
528 ks_env, ks_qmmm_env, wf_history, scf_env, local_particles, &
529 local_molecules, distribution_2d, dbcsr_dist, molecule_kind_set, &
530 molecule_set, subsys, cp_subsys, oce, local_rho_set, rho_atom_set, &
531 task_list, task_list_soft, &
532 rho0_atom_set, rho0_mpole, rhoz_set, rhoz_cneo_set, ecoul_1c, &
533 rho0_s_rs, rho0_s_gs, rhoz_cneo_s_rs, rhoz_cneo_s_gs, &
534 do_kpoints, has_unit_metric, requires_mo_derivs, mo_derivs, &
535 mo_loc_history, nkind, natom, nelectron_total, nelectron_spin, efield, &
536 neighbor_list_id, linres_control, xas_env, virial, cp_ddapc_env, cp_ddapc_ewald, &
537 outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, results, &
538 se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, &
539 lri_env, lri_density, exstate_env, ec_env, harris_env, dispersion_env, gcp_env, vee, &
540 rho_external, external_vxc, mask, mp2_env, bs_env, kg_env, &
541 WannierCentres, atprop, ls_scf_env, do_transport, transport_env, v_hartree_rspace, &
542 s_mstruct_changed, rho_changed, potential_changed, forces_up_to_date, mscfg_env, almo_scf_env, &
543 gradient_history, variable_history, embed_pot, spin_embed_pot, polar_env, mos_last_converged, &
544 eeq, rhs, do_rixs, tb_tblite)
548 POINTER :: atomic_kind_set
550 POINTER :: qs_kind_set
551 TYPE(
cell_type),
OPTIONAL,
POINTER :: cell, super_cell, cell_ref
552 LOGICAL,
OPTIONAL :: use_ref_cell
555 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos
557 OPTIONAL,
POINTER :: sab_orb, sab_all
558 LOGICAL,
OPTIONAL :: qmmm, qmmm_periodic, mimic
560 sap_ppnl, sab_vdw, sab_scp, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, &
561 sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_almo, sab_kp, sab_kp_nosym, sab_cneo
563 POINTER :: particle_set
568 POINTER :: matrix_h, matrix_h_im, matrix_ks, &
569 matrix_ks_im, matrix_vxc
570 LOGICAL,
OPTIONAL :: run_rtp
572 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: matrix_h_kp, matrix_h_im_kp, &
573 matrix_ks_kp, matrix_ks_im_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, &
576 POINTER :: matrix_s, matrix_s_ri_aux, matrix_w, &
577 matrix_p_mp2, matrix_p_mp2_admm, &
579 TYPE(
qs_rho_type),
OPTIONAL,
POINTER :: rho, rho_xc
605 POINTER :: molecule_kind_set
607 POINTER :: molecule_set
613 POINTER :: rho_atom_set
614 TYPE(
task_list_type),
OPTIONAL,
POINTER :: task_list, task_list_soft
616 POINTER :: rho0_atom_set
618 TYPE(
rhoz_type),
DIMENSION(:),
OPTIONAL,
POINTER :: rhoz_set
620 POINTER :: rhoz_cneo_set
627 LOGICAL,
OPTIONAL :: do_kpoints, has_unit_metric, &
631 TYPE(
cp_fm_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mo_loc_history
632 INTEGER,
OPTIONAL :: nkind, natom, nelectron_total
633 INTEGER,
DIMENSION(2),
OPTIONAL :: nelectron_spin
635 INTEGER,
OPTIONAL :: neighbor_list_id
641 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: outer_scf_history
642 INTEGER,
INTENT(out),
OPTIONAL :: outer_scf_ihistory
643 TYPE(
hfx_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: x_data
646 OPTIONAL,
POINTER :: dftb_potential
652 TYPE(
admm_type),
OPTIONAL,
POINTER :: admm_env
661 TYPE(
qs_rho_type),
OPTIONAL,
POINTER :: rho_external
663 TYPE(
mp2_type),
OPTIONAL,
POINTER :: mp2_env
668 OPTIONAL,
POINTER :: wanniercentres
671 LOGICAL,
OPTIONAL :: do_transport
674 LOGICAL,
OPTIONAL :: s_mstruct_changed, rho_changed, &
675 potential_changed, forces_up_to_date
679 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: gradient_history, variable_history
680 TYPE(
pw_r3d_rs_type),
OPTIONAL,
POINTER :: embed_pot, spin_embed_pot
682 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos_last_converged
683 REAL(kind=
dp),
DIMENSION(:),
OPTIONAL,
POINTER :: eeq, rhs
684 LOGICAL,
OPTIONAL :: do_rixs
690 cpassert(
ASSOCIATED(qs_env%ks_env))
692 IF (
PRESENT(outer_scf_history)) outer_scf_history => qs_env%outer_scf_history
693 IF (
PRESENT(outer_scf_ihistory)) outer_scf_ihistory = qs_env%outer_scf_ihistory
694 IF (
PRESENT(gradient_history)) gradient_history => qs_env%gradient_history
695 IF (
PRESENT(variable_history)) variable_history => qs_env%variable_history
696 IF (
PRESENT(mp2_env)) mp2_env => qs_env%mp2_env
697 IF (
PRESENT(bs_env)) bs_env => qs_env%bs_env
698 IF (
PRESENT(kg_env)) kg_env => qs_env%kg_env
699 IF (
PRESENT(super_cell)) super_cell => qs_env%super_cell
700 IF (
PRESENT(qmmm)) qmmm = qs_env%qmmm
701 IF (
PRESENT(qmmm_periodic)) qmmm_periodic = qs_env%qmmm_periodic
702 IF (
PRESENT(mimic)) mimic = qs_env%mimic
703 IF (
PRESENT(mos)) mos => qs_env%mos
704 IF (
PRESENT(mos_last_converged)) mos_last_converged => qs_env%mos_last_converged
705 IF (
PRESENT(ewald_env)) ewald_env => qs_env%ewald_env
706 IF (
PRESENT(ewald_pw)) ewald_pw => qs_env%ewald_pw
707 IF (
PRESENT(mpools)) mpools => qs_env%mpools
708 IF (
PRESENT(scf_control)) scf_control => qs_env%scf_control
709 IF (
PRESENT(rel_control)) rel_control => qs_env%rel_control
711 IF (
PRESENT(rho_external)) rho_external => qs_env%rho_external
712 IF (
PRESENT(external_vxc)) external_vxc => qs_env%external_vxc
713 IF (
PRESENT(mask)) mask => qs_env%mask
714 IF (
PRESENT(qs_charges)) qs_charges => qs_env%qs_charges
715 IF (
PRESENT(ks_env)) ks_env => qs_env%ks_env
716 IF (
PRESENT(ks_qmmm_env)) ks_qmmm_env => qs_env%ks_qmmm_env
717 IF (
PRESENT(wf_history)) wf_history => qs_env%wf_history
718 IF (
PRESENT(scf_env)) scf_env => qs_env%scf_env
719 IF (
PRESENT(oce)) oce => qs_env%oce
720 IF (
PRESENT(requires_mo_derivs)) requires_mo_derivs = qs_env%requires_mo_derivs
721 IF (
PRESENT(has_unit_metric)) has_unit_metric = qs_env%has_unit_metric
722 IF (
PRESENT(mo_derivs)) mo_derivs => qs_env%mo_derivs
723 IF (
PRESENT(mo_loc_history)) mo_loc_history => qs_env%mo_loc_history
724 IF (
PRESENT(linres_control)) linres_control => qs_env%linres_control
725 IF (
PRESENT(se_taper)) se_taper => qs_env%se_taper
726 IF (
PRESENT(se_store_int_env)) se_store_int_env => qs_env%se_store_int_env
727 IF (
PRESENT(se_nddo_mpole)) se_nddo_mpole => qs_env%se_nddo_mpole
728 IF (
PRESENT(se_nonbond_env)) se_nonbond_env => qs_env%se_nonbond_env
729 IF (
PRESENT(lri_env)) lri_env => qs_env%lri_env
730 IF (
PRESENT(lri_density)) lri_density => qs_env%lri_density
731 IF (
PRESENT(harris_env)) harris_env => qs_env%harris_env
732 IF (
PRESENT(ec_env)) ec_env => qs_env%ec_env
733 IF (
PRESENT(exstate_env)) exstate_env => qs_env%exstate_env
734 IF (
PRESENT(dispersion_env)) dispersion_env => qs_env%dispersion_env
735 IF (
PRESENT(gcp_env)) gcp_env => qs_env%gcp_env
736 IF (
PRESENT(run_rtp)) run_rtp = qs_env%run_rtp
737 IF (
PRESENT(rtp)) rtp => qs_env%rtp
738 IF (
PRESENT(ls_scf_env)) ls_scf_env => qs_env%ls_scf_env
739 IF (
PRESENT(almo_scf_env)) almo_scf_env => qs_env%almo_scf_env
740 IF (
PRESENT(do_transport)) do_transport = qs_env%do_transport
741 IF (
PRESENT(transport_env)) transport_env => qs_env%transport_env
742 IF (
PRESENT(mscfg_env)) mscfg_env => qs_env%molecular_scf_guess_env
743 IF (
PRESENT(active_space)) active_space => qs_env%active_space
744 IF (
PRESENT(admm_env)) admm_env => qs_env%admm_env
745 IF (
PRESENT(do_rixs)) do_rixs = qs_env%do_rixs
748 IF (
PRESENT(embed_pot)) embed_pot => qs_env%embed_pot
749 IF (
PRESENT(spin_embed_pot)) spin_embed_pot => qs_env%spin_embed_pot
752 IF (
PRESENT(polar_env)) polar_env => qs_env%polar_env
755 IF (
PRESENT(eeq)) eeq => qs_env%eeq
758 IF (
PRESENT(rhs)) rhs => qs_env%rhs
760 IF (
PRESENT(local_rho_set))
THEN
761 local_rho_set => qs_env%local_rho_set
763 IF (
PRESENT(rho_atom_set))
THEN
764 CALL get_local_rho(qs_env%local_rho_set, rho_atom_set=rho_atom_set)
766 IF (
PRESENT(rho0_atom_set))
THEN
767 CALL get_local_rho(qs_env%local_rho_set, rho0_atom_set=rho0_atom_set)
769 IF (
PRESENT(rho0_mpole))
THEN
770 CALL get_local_rho(qs_env%local_rho_set, rho0_mpole=rho0_mpole)
772 IF (
PRESENT(rhoz_set))
THEN
775 IF (
PRESENT(rhoz_cneo_set))
THEN
776 CALL get_local_rho(qs_env%local_rho_set, rhoz_cneo_set=rhoz_cneo_set)
778 IF (
PRESENT(ecoul_1c))
THEN
781 IF (
PRESENT(rho0_s_rs))
THEN
783 IF (
ASSOCIATED(rho0_m))
THEN
784 rho0_s_rs => rho0_m%rho0_s_rs
787 IF (
PRESENT(rho0_s_gs))
THEN
789 IF (
ASSOCIATED(rho0_m))
THEN
790 rho0_s_gs => rho0_m%rho0_s_gs
793 IF (
PRESENT(rhoz_cneo_s_rs))
THEN
795 IF (
ASSOCIATED(rho0_m))
THEN
796 rhoz_cneo_s_rs => rho0_m%rhoz_cneo_s_rs
799 IF (
PRESENT(rhoz_cneo_s_gs))
THEN
801 IF (
ASSOCIATED(rho0_m))
THEN
802 rhoz_cneo_s_gs => rho0_m%rhoz_cneo_s_gs
806 IF (
PRESENT(xas_env)) xas_env => qs_env%xas_env
807 IF (
PRESENT(input)) input => qs_env%input
808 IF (
PRESENT(cp_ddapc_env)) cp_ddapc_env => qs_env%cp_ddapc_env
809 IF (
PRESENT(cp_ddapc_ewald)) cp_ddapc_ewald => qs_env%cp_ddapc_ewald
810 IF (
PRESENT(x_data)) x_data => qs_env%x_data
812 IF (
PRESENT(dftb_potential)) dftb_potential => qs_env%dftb_potential
813 IF (
PRESENT(efield)) efield => qs_env%efield
814 IF (
PRESENT(wanniercentres)) wanniercentres => qs_env%WannierCentres
817 v_hartree_rspace=v_hartree_rspace, &
818 s_mstruct_changed=s_mstruct_changed, &
819 rho_changed=rho_changed, &
820 potential_changed=potential_changed, &
821 forces_up_to_date=forces_up_to_date, &
823 matrix_h_im=matrix_h_im, &
824 matrix_ks=matrix_ks, &
825 matrix_ks_im=matrix_ks_im, &
826 matrix_vxc=matrix_vxc, &
829 matrix_s_ri_aux=matrix_s_ri_aux, &
830 matrix_ks_im_kp=matrix_ks_im_kp, &
832 matrix_p_mp2=matrix_p_mp2, &
833 matrix_p_mp2_admm=matrix_p_mp2_admm, &
834 matrix_vhxc=matrix_vhxc, &
835 matrix_h_kp=matrix_h_kp, &
836 matrix_h_im_kp=matrix_h_im_kp, &
837 matrix_ks_kp=matrix_ks_kp, &
838 matrix_vxc_kp=matrix_vxc_kp, &
839 kinetic_kp=kinetic_kp, &
840 matrix_s_kp=matrix_s_kp, &
841 matrix_w_kp=matrix_w_kp, &
842 matrix_s_ri_aux_kp=matrix_s_ri_aux_kp, &
845 xcint_weights=xcint_weights, &
848 rho_nlcc_g=rho_nlcc_g, &
851 neighbor_list_id=neighbor_list_id, &
867 sab_xtb_pp=sab_xtb_pp, &
868 sab_xtb_nonbond=sab_xtb_nonbond, &
871 sab_kp_nosym=sab_kp_nosym, &
873 task_list=task_list, &
874 task_list_soft=task_list_soft, &
876 do_kpoints=do_kpoints, &
877 local_molecules=local_molecules, &
878 local_particles=local_particles, &
884 use_ref_cell=use_ref_cell, &
887 qs_kind_set=qs_kind_set, &
889 cp_subsys=cp_subsys, &
890 atomic_kind_set=atomic_kind_set, &
891 particle_set=particle_set, &
892 molecule_kind_set=molecule_kind_set, &
893 molecule_set=molecule_set, &
896 dft_control=dft_control, &
897 dbcsr_dist=dbcsr_dist, &
898 distribution_2d=distribution_2d, &
901 blacs_env=blacs_env, &
902 nelectron_total=nelectron_total, &
903 nelectron_spin=nelectron_spin)
905 IF (
PRESENT(tb_tblite)) tb_tblite => qs_env%tb_tblite
917 SUBROUTINE init_qs_env(qs_env, globenv)
922 NULLIFY (qs_env%ls_scf_env)
923 NULLIFY (qs_env%almo_scf_env)
924 NULLIFY (qs_env%transport_env)
925 NULLIFY (qs_env%image_matrix)
926 NULLIFY (qs_env%ipiv)
927 NULLIFY (qs_env%image_coeff)
928 NULLIFY (qs_env%super_cell)
930 NULLIFY (qs_env%mos_last_converged)
931 NULLIFY (qs_env%mpools)
932 NULLIFY (qs_env%ewald_env)
933 NULLIFY (qs_env%ewald_pw)
934 NULLIFY (qs_env%scf_control)
935 NULLIFY (qs_env%rel_control)
936 NULLIFY (qs_env%qs_charges)
938 NULLIFY (qs_env%rho_external)
939 NULLIFY (qs_env%external_vxc)
940 NULLIFY (qs_env%mask)
942 NULLIFY (qs_env%embed_pot)
943 NULLIFY (qs_env%spin_embed_pot)
946 NULLIFY (qs_env%polar_env)
948 NULLIFY (qs_env%ks_env)
949 NULLIFY (qs_env%ks_qmmm_env)
950 NULLIFY (qs_env%wf_history)
951 NULLIFY (qs_env%scf_env)
953 NULLIFY (qs_env%local_rho_set)
954 NULLIFY (qs_env%hartree_local)
955 NULLIFY (qs_env%input)
956 NULLIFY (qs_env%linres_control)
957 NULLIFY (qs_env%xas_env)
958 NULLIFY (qs_env%cp_ddapc_env)
959 NULLIFY (qs_env%cp_ddapc_ewald)
960 NULLIFY (qs_env%outer_scf_history)
961 NULLIFY (qs_env%gradient_history)
962 NULLIFY (qs_env%variable_history)
963 NULLIFY (qs_env%x_data)
964 NULLIFY (qs_env%et_coupling)
965 NULLIFY (qs_env%dftb_potential)
966 NULLIFY (qs_env%active_space)
968 NULLIFY (qs_env%se_taper)
969 NULLIFY (qs_env%se_store_int_env)
970 NULLIFY (qs_env%se_nddo_mpole)
971 NULLIFY (qs_env%se_nonbond_env)
972 NULLIFY (qs_env%admm_env)
973 NULLIFY (qs_env%efield)
974 NULLIFY (qs_env%lri_env)
975 NULLIFY (qs_env%harris_env)
976 NULLIFY (qs_env%ec_env)
977 NULLIFY (qs_env%exstate_env)
978 NULLIFY (qs_env%lri_density)
979 NULLIFY (qs_env%gcp_env)
981 NULLIFY (qs_env%mp2_env)
982 NULLIFY (qs_env%bs_env)
983 NULLIFY (qs_env%kg_env)
984 NULLIFY (qs_env%WannierCentres)
986 qs_env%outer_scf_ihistory = 0
987 qs_env%broyden_adaptive_sigma = -1.0_dp
991 qs_env%run_rtp = .false.
992 qs_env%linres_run = .false.
993 qs_env%single_point_run = .false.
994 qs_env%skip_wf_history = .false.
995 qs_env%qmmm = .false.
996 qs_env%qmmm_periodic = .false.
997 qs_env%mimic = .false.
998 qs_env%requires_mo_derivs = .false.
999 qs_env%requires_matrix_vxc = .false.
1000 qs_env%has_unit_metric = .false.
1001 qs_env%calc_image_preconditioner = .true.
1002 qs_env%do_transport = .false.
1003 qs_env%given_embed_pot = .false.
1004 qs_env%do_rixs = .false.
1005 IF (
PRESENT(globenv))
THEN
1006 qs_env%target_time = globenv%cp2k_target_time
1007 qs_env%start_time = globenv%cp2k_start_time
1008 qs_env%single_point_run = (globenv%run_type_id ==
energy_run .OR. &
1011 qs_env%target_time = 0.0_dp
1012 qs_env%start_time = 0.0_dp
1015 qs_env%sim_time = 0._dp
1018 qs_env%total_zeff_corr = 0.0_dp
1019 qs_env%surface_dipole_moment = 0.0_dp
1020 qs_env%vacuum_level_below = 0.0_dp
1021 qs_env%vacuum_level_above = 0.0_dp
1022 qs_env%surface_dipole_ref_pos = 0.0_dp
1023 qs_env%surface_dipole_switch_off = .false.
1026 NULLIFY (qs_env%mo_derivs)
1027 NULLIFY (qs_env%mo_loc_history)
1029 IF (.NOT.
ASSOCIATED(qs_env%molecular_scf_guess_env))
ALLOCATE (qs_env%molecular_scf_guess_env)
1031 NULLIFY (qs_env%tb_tblite)
1032 NULLIFY (qs_env%gauxc_cache)
1034 END SUBROUTINE init_qs_env
1120 mos, qmmm, qmmm_periodic, mimic, &
1121 ewald_env, ewald_pw, mpools, &
1122 rho_external, external_vxc, mask, &
1123 scf_control, rel_control, qs_charges, ks_env, &
1124 ks_qmmm_env, wf_history, scf_env, active_space, &
1125 input, oce, rho_atom_set, rho0_atom_set, rho0_mpole, run_rtp, rtp, &
1126 rhoz_set, rhoz_tot, ecoul_1c, has_unit_metric, requires_mo_derivs, mo_derivs, &
1127 mo_loc_history, efield, rhoz_cneo_set, &
1128 linres_control, xas_env, cp_ddapc_env, cp_ddapc_ewald, &
1129 outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, &
1130 se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, ls_scf_env, &
1131 do_transport, transport_env, lri_env, lri_density, exstate_env, ec_env, dispersion_env, &
1132 harris_env, gcp_env, mp2_env, bs_env, kg_env, force, &
1133 kpoints, WannierCentres, almo_scf_env, gradient_history, variable_history, embed_pot, &
1134 spin_embed_pot, polar_env, mos_last_converged, eeq, rhs, do_rixs, tb_tblite)
1137 TYPE(
cell_type),
OPTIONAL,
POINTER :: super_cell
1138 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos
1139 LOGICAL,
OPTIONAL :: qmmm, qmmm_periodic, mimic
1143 TYPE(
qs_rho_type),
OPTIONAL,
POINTER :: rho_external
1156 POINTER :: rho_atom_set
1158 POINTER :: rho0_atom_set
1160 LOGICAL,
OPTIONAL :: run_rtp
1162 TYPE(
rhoz_type),
DIMENSION(:),
OPTIONAL,
POINTER :: rhoz_set
1163 REAL(
dp),
OPTIONAL :: rhoz_tot
1166 LOGICAL,
OPTIONAL :: has_unit_metric, requires_mo_derivs
1168 POINTER :: mo_derivs
1169 TYPE(
cp_fm_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mo_loc_history
1172 POINTER :: rhoz_cneo_set
1177 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: outer_scf_history
1178 INTEGER,
INTENT(IN),
OPTIONAL :: outer_scf_ihistory
1179 TYPE(
hfx_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: x_data
1182 OPTIONAL,
POINTER :: dftb_potential
1187 TYPE(
admm_type),
OPTIONAL,
POINTER :: admm_env
1189 LOGICAL,
OPTIONAL :: do_transport
1196 TYPE(
harris_type),
OPTIONAL,
POINTER :: harris_env
1198 TYPE(
mp2_type),
OPTIONAL,
POINTER :: mp2_env
1206 OPTIONAL,
POINTER :: wanniercentres
1208 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: gradient_history, variable_history
1209 TYPE(
pw_r3d_rs_type),
OPTIONAL,
POINTER :: embed_pot, spin_embed_pot
1211 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos_last_converged
1212 REAL(kind=
dp),
DIMENSION(:),
OPTIONAL,
POINTER :: eeq, rhs
1213 LOGICAL,
OPTIONAL :: do_rixs
1218 IF (
PRESENT(mp2_env)) qs_env%mp2_env => mp2_env
1219 IF (
PRESENT(bs_env)) qs_env%bs_env => bs_env
1220 IF (
PRESENT(kg_env)) qs_env%kg_env => kg_env
1221 IF (
PRESENT(super_cell))
THEN
1224 qs_env%super_cell => super_cell
1227 IF (
PRESENT(qmmm)) qs_env%qmmm = qmmm
1228 IF (
PRESENT(qmmm_periodic)) qs_env%qmmm_periodic = qmmm_periodic
1229 IF (
PRESENT(mimic)) qs_env%mimic = mimic
1230 IF (
PRESENT(mos)) qs_env%mos => mos
1231 IF (
PRESENT(mos_last_converged)) qs_env%mos_last_converged => mos_last_converged
1232 IF (
PRESENT(ls_scf_env)) qs_env%ls_scf_env => ls_scf_env
1233 IF (
PRESENT(almo_scf_env)) qs_env%almo_scf_env => almo_scf_env
1234 IF (
PRESENT(do_transport)) qs_env%do_transport = do_transport
1235 IF (
PRESENT(transport_env)) qs_env%transport_env => transport_env
1238 IF (
PRESENT(oce)) qs_env%oce => oce
1239 IF (
PRESENT(outer_scf_history)) qs_env%outer_scf_history => outer_scf_history
1240 IF (
PRESENT(gradient_history)) qs_env%gradient_history => gradient_history
1241 IF (
PRESENT(variable_history)) qs_env%variable_history => variable_history
1242 IF (
PRESENT(outer_scf_ihistory)) qs_env%outer_scf_ihistory = outer_scf_ihistory
1243 IF (
PRESENT(requires_mo_derivs)) qs_env%requires_mo_derivs = requires_mo_derivs
1244 IF (
PRESENT(has_unit_metric)) qs_env%has_unit_metric = has_unit_metric
1245 IF (
PRESENT(mo_derivs)) qs_env%mo_derivs => mo_derivs
1246 IF (
PRESENT(mo_loc_history)) qs_env%mo_loc_history => mo_loc_history
1247 IF (
PRESENT(run_rtp)) qs_env%run_rtp = run_rtp
1248 IF (
PRESENT(rtp)) qs_env%rtp => rtp
1249 IF (
PRESENT(efield)) qs_env%efield => efield
1250 IF (
PRESENT(active_space)) qs_env%active_space => active_space
1251 IF (
PRESENT(do_rixs)) do_rixs = qs_env%do_rixs
1253 IF (
PRESENT(ewald_env))
THEN
1254 IF (
ASSOCIATED(qs_env%ewald_env))
THEN
1255 IF (.NOT.
ASSOCIATED(qs_env%ewald_env, ewald_env))
THEN
1257 DEALLOCATE (qs_env%ewald_env)
1260 qs_env%ewald_env => ewald_env
1262 IF (
PRESENT(ewald_pw))
THEN
1263 IF (
ASSOCIATED(qs_env%ewald_pw))
THEN
1264 IF (.NOT.
ASSOCIATED(ewald_pw, qs_env%ewald_pw))
THEN
1266 DEALLOCATE (qs_env%ewald_pw)
1269 qs_env%ewald_pw => ewald_pw
1271 IF (
PRESENT(scf_control))
THEN
1272 IF (
ASSOCIATED(qs_env%scf_control))
THEN
1273 IF (.NOT.
ASSOCIATED(qs_env%scf_control, scf_control))
THEN
1275 DEALLOCATE (qs_env%scf_control)
1278 qs_env%scf_control => scf_control
1280 IF (
PRESENT(rel_control))
THEN
1281 IF (
ASSOCIATED(qs_env%rel_control))
THEN
1282 IF (.NOT.
ASSOCIATED(qs_env%rel_control, rel_control))
THEN
1284 DEALLOCATE (qs_env%rel_control)
1287 qs_env%rel_control => rel_control
1289 IF (
PRESENT(linres_control))
THEN
1290 IF (
ASSOCIATED(qs_env%linres_control))
THEN
1291 IF (.NOT.
ASSOCIATED(qs_env%linres_control, linres_control))
THEN
1293 DEALLOCATE (qs_env%linres_control)
1296 qs_env%linres_control => linres_control
1299 IF (
PRESENT(rho_external))
THEN
1300 IF (
ASSOCIATED(qs_env%rho_external))
THEN
1301 IF (.NOT.
ASSOCIATED(qs_env%rho_external, rho_external))
THEN
1303 DEALLOCATE (qs_env%rho_external)
1306 qs_env%rho_external => rho_external
1308 IF (
PRESENT(external_vxc)) qs_env%external_vxc => external_vxc
1309 IF (
PRESENT(mask)) qs_env%mask => mask
1311 IF (
PRESENT(embed_pot)) qs_env%embed_pot => embed_pot
1312 IF (
PRESENT(spin_embed_pot)) qs_env%spin_embed_pot => spin_embed_pot
1315 IF (
PRESENT(polar_env)) qs_env%polar_env => polar_env
1317 IF (
PRESENT(qs_charges))
THEN
1318 IF (
ASSOCIATED(qs_env%qs_charges))
THEN
1319 IF (.NOT.
ASSOCIATED(qs_env%qs_charges, qs_charges))
THEN
1321 DEALLOCATE (qs_env%qs_charges)
1324 qs_env%qs_charges => qs_charges
1326 IF (
PRESENT(ks_qmmm_env))
THEN
1327 IF (
ASSOCIATED(qs_env%ks_qmmm_env))
THEN
1328 IF (.NOT.
ASSOCIATED(qs_env%ks_qmmm_env, ks_qmmm_env))
THEN
1330 DEALLOCATE (qs_env%ks_qmmm_env)
1333 qs_env%ks_qmmm_env => ks_qmmm_env
1335 IF (
PRESENT(ks_env))
THEN
1336 IF (
ASSOCIATED(qs_env%ks_env))
THEN
1337 IF (.NOT.
ASSOCIATED(qs_env%ks_env, ks_env))
THEN
1339 DEALLOCATE (qs_env%ks_env)
1342 qs_env%ks_env => ks_env
1344 IF (
PRESENT(wf_history))
THEN
1347 qs_env%wf_history => wf_history
1349 IF (
PRESENT(scf_env))
THEN
1350 IF (
ASSOCIATED(qs_env%scf_env))
THEN
1351 IF (.NOT.
ASSOCIATED(qs_env%scf_env, scf_env))
THEN
1353 DEALLOCATE (qs_env%scf_env)
1356 qs_env%scf_env => scf_env
1358 IF (
PRESENT(xas_env))
THEN
1359 IF (
ASSOCIATED(qs_env%xas_env))
THEN
1360 IF (.NOT.
ASSOCIATED(qs_env%xas_env, xas_env))
THEN
1362 DEALLOCATE (qs_env%xas_env)
1365 qs_env%xas_env => xas_env
1367 IF (
PRESENT(mpools))
THEN
1370 qs_env%mpools => mpools
1372 IF (
PRESENT(rho_atom_set))
THEN
1373 CALL set_local_rho(qs_env%local_rho_set, rho_atom_set=rho_atom_set)
1375 IF (
PRESENT(rho0_atom_set))
THEN
1376 CALL set_local_rho(qs_env%local_rho_set, rho0_atom_set=rho0_atom_set)
1378 IF (
PRESENT(rho0_mpole))
THEN
1379 CALL set_local_rho(qs_env%local_rho_set, rho0_mpole=rho0_mpole)
1381 IF (
PRESENT(rhoz_set))
THEN
1384 IF (
PRESENT(rhoz_cneo_set))
THEN
1385 CALL set_local_rho(qs_env%local_rho_set, rhoz_cneo_set=rhoz_cneo_set)
1387 IF (
PRESENT(rhoz_tot)) qs_env%local_rho_set%rhoz_tot = rhoz_tot
1388 IF (
PRESENT(ecoul_1c))
THEN
1391 IF (
PRESENT(input))
THEN
1394 qs_env%input => input
1396 IF (
PRESENT(cp_ddapc_env))
THEN
1397 IF (
ASSOCIATED(qs_env%cp_ddapc_env))
THEN
1398 IF (.NOT.
ASSOCIATED(qs_env%cp_ddapc_env, cp_ddapc_env))
THEN
1400 DEALLOCATE (qs_env%cp_ddapc_env)
1403 qs_env%cp_ddapc_env => cp_ddapc_env
1405 IF (
PRESENT(cp_ddapc_ewald))
THEN
1406 qs_env%cp_ddapc_ewald => cp_ddapc_ewald
1408 IF (
PRESENT(x_data)) qs_env%x_data => x_data
1410 IF (
PRESENT(dftb_potential)) qs_env%dftb_potential => dftb_potential
1411 IF (
PRESENT(se_taper))
THEN
1413 qs_env%se_taper => se_taper
1415 IF (
PRESENT(se_store_int_env))
THEN
1417 qs_env%se_store_int_env => se_store_int_env
1419 IF (
PRESENT(se_nddo_mpole))
THEN
1421 qs_env%se_nddo_mpole => se_nddo_mpole
1423 IF (
PRESENT(se_nonbond_env))
THEN
1424 IF (
ASSOCIATED(qs_env%se_nonbond_env))
THEN
1425 IF (.NOT.
ASSOCIATED(qs_env%se_nonbond_env, se_nonbond_env))
THEN
1427 DEALLOCATE (qs_env%se_nonbond_env)
1430 qs_env%se_nonbond_env => se_nonbond_env
1432 IF (
PRESENT(admm_env)) qs_env%admm_env => admm_env
1433 IF (
PRESENT(lri_env)) qs_env%lri_env => lri_env
1434 IF (
PRESENT(lri_density)) qs_env%lri_density => lri_density
1435 IF (
PRESENT(harris_env)) qs_env%harris_env => harris_env
1436 IF (
PRESENT(ec_env)) qs_env%ec_env => ec_env
1437 IF (
PRESENT(exstate_env)) qs_env%exstate_env => exstate_env
1438 IF (
PRESENT(dispersion_env)) qs_env%dispersion_env => dispersion_env
1439 IF (
PRESENT(gcp_env)) qs_env%gcp_env => gcp_env
1440 IF (
PRESENT(wanniercentres)) qs_env%WannierCentres => wanniercentres
1441 IF (
PRESENT(kpoints))
CALL set_ks_env(qs_env%ks_env, kpoints=kpoints)
1444 IF (
PRESENT(eeq)) qs_env%eeq => eeq
1447 IF (
PRESENT(rhs)) qs_env%rhs => rhs
1449 IF (
PRESENT(force))
THEN
1454 IF (
PRESENT(tb_tblite)) qs_env%tb_tblite => tb_tblite
1470 CALL init_qs_env(qs_env, globenv=globenv)
1487 IF (
ASSOCIATED(qs_env%mos))
THEN
1488 DO i = 1,
SIZE(qs_env%mos)
1491 DEALLOCATE (qs_env%mos)
1493 IF (
ASSOCIATED(qs_env%mos_last_converged))
THEN
1494 DO i = 1,
SIZE(qs_env%mos_last_converged)
1497 DEALLOCATE (qs_env%mos_last_converged)
1500 IF (
ASSOCIATED(qs_env%mo_derivs))
THEN
1501 DO i = 1,
SIZE(qs_env%mo_derivs)
1504 DEALLOCATE (qs_env%mo_derivs)
1509 IF (
ASSOCIATED(qs_env%rtp))
THEN
1511 DEALLOCATE (qs_env%rtp)
1513 IF (
ASSOCIATED(qs_env%outer_scf_history))
THEN
1514 DEALLOCATE (qs_env%outer_scf_history)
1515 qs_env%outer_scf_ihistory = 0
1517 IF (
ASSOCIATED(qs_env%gradient_history))
THEN
1518 DEALLOCATE (qs_env%gradient_history)
1520 IF (
ASSOCIATED(qs_env%variable_history))
THEN
1521 DEALLOCATE (qs_env%variable_history)
1524 IF (
ASSOCIATED(qs_env%local_rho_set))
THEN
1527 IF (
ASSOCIATED(qs_env%hartree_local))
THEN
1530 IF (
ASSOCIATED(qs_env%scf_control))
THEN
1532 DEALLOCATE (qs_env%scf_control)
1534 IF (
ASSOCIATED(qs_env%rel_control))
THEN
1536 DEALLOCATE (qs_env%rel_control)
1539 IF (
ASSOCIATED(qs_env%linres_control))
THEN
1541 DEALLOCATE (qs_env%linres_control)
1544 IF (
ASSOCIATED(qs_env%almo_scf_env))
THEN
1548 IF (
ASSOCIATED(qs_env%ls_scf_env))
THEN
1551 IF (
ASSOCIATED(qs_env%molecular_scf_guess_env))
THEN
1553 DEALLOCATE (qs_env%molecular_scf_guess_env)
1556 IF (
ASSOCIATED(qs_env%transport_env))
THEN
1561 IF (
ASSOCIATED(qs_env%xas_env))
THEN
1563 DEALLOCATE (qs_env%xas_env)
1565 IF (
ASSOCIATED(qs_env%ewald_env))
THEN
1567 DEALLOCATE (qs_env%ewald_env)
1569 IF (
ASSOCIATED(qs_env%ewald_pw))
THEN
1571 DEALLOCATE (qs_env%ewald_pw)
1573 IF (
ASSOCIATED(qs_env%image_matrix))
THEN
1574 DEALLOCATE (qs_env%image_matrix)
1576 IF (
ASSOCIATED(qs_env%ipiv))
THEN
1577 DEALLOCATE (qs_env%ipiv)
1579 IF (
ASSOCIATED(qs_env%image_coeff))
THEN
1580 DEALLOCATE (qs_env%image_coeff)
1583 IF (
ASSOCIATED(qs_env%rho_external))
THEN
1585 DEALLOCATE (qs_env%rho_external)
1587 IF (
ASSOCIATED(qs_env%external_vxc))
THEN
1588 CALL qs_env%external_vxc%release()
1589 DEALLOCATE (qs_env%external_vxc)
1591 IF (
ASSOCIATED(qs_env%mask))
THEN
1592 CALL qs_env%mask%release()
1593 DEALLOCATE (qs_env%mask)
1595 IF (
ASSOCIATED(qs_env%active_space))
THEN
1599 IF (qs_env%given_embed_pot)
THEN
1600 CALL qs_env%embed_pot%release()
1601 DEALLOCATE (qs_env%embed_pot)
1602 IF (
ASSOCIATED(qs_env%spin_embed_pot))
THEN
1603 CALL qs_env%spin_embed_pot%release()
1604 DEALLOCATE (qs_env%spin_embed_pot)
1611 IF (
ASSOCIATED(qs_env%qs_charges))
THEN
1613 DEALLOCATE (qs_env%qs_charges)
1615 IF (
ASSOCIATED(qs_env%ks_env))
THEN
1617 DEALLOCATE (qs_env%ks_env)
1619 IF (
ASSOCIATED(qs_env%ks_qmmm_env))
THEN
1621 DEALLOCATE (qs_env%ks_qmmm_env)
1624 IF (
ASSOCIATED(qs_env%scf_env))
THEN
1626 DEALLOCATE (qs_env%scf_env)
1630 IF (
ASSOCIATED(qs_env%cp_ddapc_env))
THEN
1632 DEALLOCATE (qs_env%cp_ddapc_env)
1636 IF (
ASSOCIATED(qs_env%x_data))
THEN
1639 IF (
ASSOCIATED(qs_env%et_coupling))
THEN
1642 IF (
ASSOCIATED(qs_env%dftb_potential))
THEN
1645 IF (
ASSOCIATED(qs_env%se_taper))
THEN
1648 IF (
ASSOCIATED(qs_env%se_store_int_env))
THEN
1651 IF (
ASSOCIATED(qs_env%se_nddo_mpole))
THEN
1654 IF (
ASSOCIATED(qs_env%se_nonbond_env))
THEN
1656 DEALLOCATE (qs_env%se_nonbond_env)
1658 IF (
ASSOCIATED(qs_env%admm_env))
THEN
1661 IF (
ASSOCIATED(qs_env%lri_env))
THEN
1663 DEALLOCATE (qs_env%lri_env)
1665 IF (
ASSOCIATED(qs_env%lri_density))
THEN
1667 DEALLOCATE (qs_env%lri_density)
1669 IF (
ASSOCIATED(qs_env%harris_env))
THEN
1672 IF (
ASSOCIATED(qs_env%ec_env))
THEN
1675 IF (
ASSOCIATED(qs_env%exstate_env))
THEN
1678 IF (
ASSOCIATED(qs_env%mp2_env))
THEN
1680 DEALLOCATE (qs_env%mp2_env)
1681 NULLIFY (qs_env%mp2_env)
1683 IF (
ASSOCIATED(qs_env%bs_env))
THEN
1686 IF (
ASSOCIATED(qs_env%kg_env))
THEN
1693 IF (
ASSOCIATED(qs_env%gcp_env))
THEN
1697 IF (
ASSOCIATED(qs_env%WannierCentres))
THEN
1698 DO i = 1,
SIZE(qs_env%WannierCentres)
1699 DEALLOCATE (qs_env%WannierCentres(i)%WannierHamDiag)
1700 DEALLOCATE (qs_env%WannierCentres(i)%centres)
1702 DEALLOCATE (qs_env%WannierCentres)
1705 IF (
ASSOCIATED(qs_env%eeq))
DEALLOCATE (qs_env%eeq)
1707 IF (
ASSOCIATED(qs_env%rhs))
DEALLOCATE (qs_env%rhs)
1710 IF (
ASSOCIATED(qs_env%tb_tblite))
THEN
1714 IF (
ASSOCIATED(qs_env%gauxc_cache))
THEN
1716 DEALLOCATE (qs_env%gauxc_cache)
1734 IF (
ASSOCIATED(qs_env%mos_last_converged))
THEN
1735 DO i = 1,
SIZE(qs_env%mos_last_converged)
1738 DEALLOCATE (qs_env%mos_last_converged)
1741 IF (
ASSOCIATED(qs_env%mo_derivs))
THEN
1742 DO i = 1,
SIZE(qs_env%mo_derivs)
1745 DEALLOCATE (qs_env%mo_derivs)
1750 IF (
ASSOCIATED(qs_env%rtp))
THEN
1752 DEALLOCATE (qs_env%rtp)
1754 IF (
ASSOCIATED(qs_env%outer_scf_history))
THEN
1755 DEALLOCATE (qs_env%outer_scf_history)
1756 qs_env%outer_scf_ihistory = 0
1758 IF (
ASSOCIATED(qs_env%gradient_history))
THEN
1759 DEALLOCATE (qs_env%gradient_history)
1761 IF (
ASSOCIATED(qs_env%variable_history))
THEN
1762 DEALLOCATE (qs_env%variable_history)
1765 IF (
ASSOCIATED(qs_env%local_rho_set))
THEN
1768 IF (
ASSOCIATED(qs_env%hartree_local))
THEN
1771 IF (
ASSOCIATED(qs_env%scf_control))
THEN
1773 DEALLOCATE (qs_env%scf_control)
1775 IF (
ASSOCIATED(qs_env%rel_control))
THEN
1777 DEALLOCATE (qs_env%rel_control)
1780 IF (
ASSOCIATED(qs_env%linres_control))
THEN
1782 DEALLOCATE (qs_env%linres_control)
1785 IF (
ASSOCIATED(qs_env%almo_scf_env))
THEN
1789 IF (
ASSOCIATED(qs_env%ls_scf_env))
THEN
1792 IF (
ASSOCIATED(qs_env%molecular_scf_guess_env))
THEN
1794 DEALLOCATE (qs_env%molecular_scf_guess_env)
1797 IF (
ASSOCIATED(qs_env%transport_env))
THEN
1802 IF (
ASSOCIATED(qs_env%xas_env))
THEN
1804 DEALLOCATE (qs_env%xas_env)
1806 IF (
ASSOCIATED(qs_env%ewald_env))
THEN
1808 DEALLOCATE (qs_env%ewald_env)
1810 IF (
ASSOCIATED(qs_env%ewald_pw))
THEN
1812 DEALLOCATE (qs_env%ewald_pw)
1814 IF (
ASSOCIATED(qs_env%image_matrix))
THEN
1815 DEALLOCATE (qs_env%image_matrix)
1817 IF (
ASSOCIATED(qs_env%ipiv))
THEN
1818 DEALLOCATE (qs_env%ipiv)
1820 IF (
ASSOCIATED(qs_env%image_coeff))
THEN
1821 DEALLOCATE (qs_env%image_coeff)
1824 IF (
ASSOCIATED(qs_env%rho_external))
THEN
1826 DEALLOCATE (qs_env%rho_external)
1828 IF (
ASSOCIATED(qs_env%external_vxc))
THEN
1829 CALL qs_env%external_vxc%release()
1830 DEALLOCATE (qs_env%external_vxc)
1832 IF (
ASSOCIATED(qs_env%mask))
THEN
1833 CALL qs_env%mask%release()
1834 DEALLOCATE (qs_env%mask)
1836 IF (
ASSOCIATED(qs_env%active_space))
THEN
1840 IF (qs_env%given_embed_pot)
THEN
1841 CALL qs_env%embed_pot%release()
1842 DEALLOCATE (qs_env%embed_pot)
1843 IF (
ASSOCIATED(qs_env%spin_embed_pot))
THEN
1844 CALL qs_env%spin_embed_pot%release()
1845 DEALLOCATE (qs_env%spin_embed_pot)
1852 IF (
ASSOCIATED(qs_env%qs_charges))
THEN
1854 DEALLOCATE (qs_env%qs_charges)
1857 IF (
ASSOCIATED(qs_env%ks_qmmm_env))
THEN
1859 DEALLOCATE (qs_env%ks_qmmm_env)
1862 IF (
ASSOCIATED(qs_env%scf_env))
THEN
1864 DEALLOCATE (qs_env%scf_env)
1866 IF (
ASSOCIATED(qs_env%cp_ddapc_env))
THEN
1868 DEALLOCATE (qs_env%cp_ddapc_env)
1872 IF (
ASSOCIATED(qs_env%x_data))
THEN
1875 IF (
ASSOCIATED(qs_env%et_coupling))
THEN
1878 IF (
ASSOCIATED(qs_env%dftb_potential))
THEN
1881 IF (
ASSOCIATED(qs_env%se_taper))
THEN
1884 IF (
ASSOCIATED(qs_env%se_store_int_env))
THEN
1887 IF (
ASSOCIATED(qs_env%se_nddo_mpole))
THEN
1890 IF (
ASSOCIATED(qs_env%se_nonbond_env))
THEN
1892 DEALLOCATE (qs_env%se_nonbond_env)
1894 IF (
ASSOCIATED(qs_env%admm_env))
THEN
1897 IF (
ASSOCIATED(qs_env%lri_env))
THEN
1899 DEALLOCATE (qs_env%lri_env)
1901 IF (
ASSOCIATED(qs_env%lri_density))
THEN
1903 DEALLOCATE (qs_env%lri_density)
1905 IF (
ASSOCIATED(qs_env%harris_env))
THEN
1908 IF (
ASSOCIATED(qs_env%ec_env))
THEN
1911 IF (
ASSOCIATED(qs_env%exstate_env))
THEN
1914 IF (
ASSOCIATED(qs_env%mp2_env))
THEN
1916 DEALLOCATE (qs_env%mp2_env)
1917 NULLIFY (qs_env%mp2_env)
1919 IF (
ASSOCIATED(qs_env%kg_env))
THEN
1926 IF (
ASSOCIATED(qs_env%gcp_env))
THEN
1930 IF (
ASSOCIATED(qs_env%WannierCentres))
THEN
1931 DO i = 1,
SIZE(qs_env%WannierCentres)
1932 DEALLOCATE (qs_env%WannierCentres(i)%WannierHamDiag)
1933 DEALLOCATE (qs_env%WannierCentres(i)%centres)
1935 DEALLOCATE (qs_env%WannierCentres)
1938 IF (
ASSOCIATED(qs_env%eeq))
DEALLOCATE (qs_env%eeq)
1940 IF (
ASSOCIATED(qs_env%rhs))
DEALLOCATE (qs_env%rhs)
1943 IF (
ASSOCIATED(qs_env%tb_tblite))
THEN
1947 IF (
ASSOCIATED(qs_env%gauxc_cache))
THEN
1949 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, matrix_vhxc, 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 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_vhxc, 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 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 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_vhxc, 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.
Bounded geometry-only cache for native atom-grid interpolation.
subroutine, public release_native_grid_cache(cache)
Release geometry storage, including when the QS environment is only partly released.
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.