166#include "./base/base_uses.f90"
172 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'qs_environment_types'
221 LOGICAL :: qmmm = .false., qmmm_periodic = .false.
222 LOGICAL :: mimic = .false.
223 LOGICAL :: requires_mo_derivs = .false.
224 LOGICAL :: requires_matrix_vxc = .false.
225 LOGICAL :: has_unit_metric = .false.
226 LOGICAL :: run_rtp = .false.
227 LOGICAL :: linres_run = .false.
228 LOGICAL :: calc_image_preconditioner = .false.
229 LOGICAL :: do_transport = .false.
230 LOGICAL :: single_point_run = .false.
231 LOGICAL :: given_embed_pot = .false.
232 LOGICAL :: energy_correction = .false.
233 LOGICAL :: harris_method = .false.
234 LOGICAL :: do_rixs = .false.
235 REAL(kind=
dp) :: sim_time = -1.0_dp
236 REAL(kind=
dp) :: start_time = -1.0_dp, target_time = -1.0_dp
237 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: image_matrix => null()
238 REAL(kind=
dp),
DIMENSION(:),
POINTER :: image_coeff => null()
239 INTEGER,
DIMENSION(:),
POINTER :: ipiv => null()
240 INTEGER :: sim_step = -1
246 TYPE(
cp_fm_type),
DIMENSION(:),
POINTER :: mo_loc_history => null()
269 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: outer_scf_history => null()
270 INTEGER :: outer_scf_ihistory = -1
271 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: gradient_history => null(), &
272 variable_history => null()
273 TYPE(
hfx_type),
DIMENSION(:, :),
POINTER :: x_data => null()
286 LOGICAL :: excited_state = .false.
303 REAL(kind=
dp) :: broyden_adaptive_sigma = -1.0_dp
317 REAL(kind=
dp),
DIMENSION(:),
POINTER :: eeq => null()
319 REAL(kind=
dp),
DIMENSION(:),
POINTER :: rhs => null()
320 REAL(kind=
dp) :: total_zeff_corr = -1.0_dp, surface_dipole_moment = -1.0_dp
321 LOGICAL :: surface_dipole_switch_off = .false.
322 TYPE(
mo_set_type),
DIMENSION(:),
POINTER :: mos_last_converged => null()
500 SUBROUTINE get_qs_env(qs_env, atomic_kind_set, qs_kind_set, cell, super_cell, cell_ref, use_ref_cell, kpoints, &
501 dft_control, mos, sab_orb, sab_all, qmmm, qmmm_periodic, mimic, sac_ae, sac_ppl, sac_lri, &
502 sap_ppnl, sab_vdw, sab_scp, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, &
503 sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_almo, &
504 sab_kp, sab_kp_nosym, sab_cneo, particle_set, energy, force, &
505 matrix_h, matrix_h_im, matrix_ks, matrix_ks_im, matrix_vxc, run_rtp, rtp, &
506 matrix_h_kp, matrix_h_im_kp, matrix_ks_kp, matrix_ks_im_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, &
507 matrix_w_kp, matrix_s_RI_aux_kp, matrix_s, matrix_s_RI_aux, matrix_w, &
508 matrix_p_mp2, matrix_p_mp2_admm, rho, &
509 rho_xc, pw_env, ewald_env, ewald_pw, active_space, &
510 mpools, input, para_env, blacs_env, scf_control, rel_control, kinetic, qs_charges, &
511 vppl, rho_core, rho_nlcc, rho_nlcc_g, ks_env, ks_qmmm_env, wf_history, scf_env, local_particles, &
512 local_molecules, distribution_2d, dbcsr_dist, molecule_kind_set, &
513 molecule_set, subsys, cp_subsys, oce, local_rho_set, rho_atom_set, &
514 task_list, task_list_soft, &
515 rho0_atom_set, rho0_mpole, rhoz_set, rhoz_cneo_set, ecoul_1c, &
516 rho0_s_rs, rho0_s_gs, rhoz_cneo_s_rs, rhoz_cneo_s_gs, &
517 do_kpoints, has_unit_metric, requires_mo_derivs, mo_derivs, &
518 mo_loc_history, nkind, natom, nelectron_total, nelectron_spin, efield, &
519 neighbor_list_id, linres_control, xas_env, virial, cp_ddapc_env, cp_ddapc_ewald, &
520 outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, results, &
521 se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, &
522 lri_env, lri_density, exstate_env, ec_env, harris_env, dispersion_env, gcp_env, vee, &
523 rho_external, external_vxc, mask, mp2_env, bs_env, kg_env, &
524 WannierCentres, atprop, ls_scf_env, do_transport, transport_env, v_hartree_rspace, &
525 s_mstruct_changed, rho_changed, potential_changed, forces_up_to_date, mscfg_env, almo_scf_env, &
526 gradient_history, variable_history, embed_pot, spin_embed_pot, polar_env, mos_last_converged, &
527 eeq, rhs, do_rixs, tb_tblite)
531 POINTER :: atomic_kind_set
533 POINTER :: qs_kind_set
534 TYPE(
cell_type),
OPTIONAL,
POINTER :: cell, super_cell, cell_ref
535 LOGICAL,
OPTIONAL :: use_ref_cell
538 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos
540 OPTIONAL,
POINTER :: sab_orb, sab_all
541 LOGICAL,
OPTIONAL :: qmmm, qmmm_periodic, mimic
543 sap_ppnl, sab_vdw, sab_scp, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, &
544 sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_almo, sab_kp, sab_kp_nosym, sab_cneo
546 POINTER :: particle_set
551 POINTER :: matrix_h, matrix_h_im, matrix_ks, &
552 matrix_ks_im, matrix_vxc
553 LOGICAL,
OPTIONAL :: run_rtp
555 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: matrix_h_kp, matrix_h_im_kp, &
556 matrix_ks_kp, matrix_ks_im_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, &
559 POINTER :: matrix_s, matrix_s_ri_aux, matrix_w, &
560 matrix_p_mp2, matrix_p_mp2_admm
561 TYPE(
qs_rho_type),
OPTIONAL,
POINTER :: rho, rho_xc
587 POINTER :: molecule_kind_set
589 POINTER :: molecule_set
595 POINTER :: rho_atom_set
596 TYPE(
task_list_type),
OPTIONAL,
POINTER :: task_list, task_list_soft
598 POINTER :: rho0_atom_set
600 TYPE(
rhoz_type),
DIMENSION(:),
OPTIONAL,
POINTER :: rhoz_set
602 POINTER :: rhoz_cneo_set
609 LOGICAL,
OPTIONAL :: do_kpoints, has_unit_metric, &
613 TYPE(
cp_fm_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mo_loc_history
614 INTEGER,
OPTIONAL :: nkind, natom, nelectron_total
615 INTEGER,
DIMENSION(2),
OPTIONAL :: nelectron_spin
617 INTEGER,
OPTIONAL :: neighbor_list_id
623 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: outer_scf_history
624 INTEGER,
INTENT(out),
OPTIONAL :: outer_scf_ihistory
625 TYPE(
hfx_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: x_data
628 OPTIONAL,
POINTER :: dftb_potential
634 TYPE(
admm_type),
OPTIONAL,
POINTER :: admm_env
643 TYPE(
qs_rho_type),
OPTIONAL,
POINTER :: rho_external
645 TYPE(
mp2_type),
OPTIONAL,
POINTER :: mp2_env
650 OPTIONAL,
POINTER :: wanniercentres
653 LOGICAL,
OPTIONAL :: do_transport
656 LOGICAL,
OPTIONAL :: s_mstruct_changed, rho_changed, &
657 potential_changed, forces_up_to_date
661 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: gradient_history, variable_history
662 TYPE(
pw_r3d_rs_type),
OPTIONAL,
POINTER :: embed_pot, spin_embed_pot
664 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos_last_converged
665 REAL(kind=
dp),
DIMENSION(:),
OPTIONAL,
POINTER :: eeq, rhs
666 LOGICAL,
OPTIONAL :: do_rixs
672 cpassert(
ASSOCIATED(qs_env%ks_env))
674 IF (
PRESENT(outer_scf_history)) outer_scf_history => qs_env%outer_scf_history
675 IF (
PRESENT(outer_scf_ihistory)) outer_scf_ihistory = qs_env%outer_scf_ihistory
676 IF (
PRESENT(gradient_history)) gradient_history => qs_env%gradient_history
677 IF (
PRESENT(variable_history)) variable_history => qs_env%variable_history
678 IF (
PRESENT(mp2_env)) mp2_env => qs_env%mp2_env
679 IF (
PRESENT(bs_env)) bs_env => qs_env%bs_env
680 IF (
PRESENT(kg_env)) kg_env => qs_env%kg_env
681 IF (
PRESENT(super_cell)) super_cell => qs_env%super_cell
682 IF (
PRESENT(qmmm)) qmmm = qs_env%qmmm
683 IF (
PRESENT(qmmm_periodic)) qmmm_periodic = qs_env%qmmm_periodic
684 IF (
PRESENT(mimic)) mimic = qs_env%mimic
685 IF (
PRESENT(mos)) mos => qs_env%mos
686 IF (
PRESENT(mos_last_converged)) mos_last_converged => qs_env%mos_last_converged
687 IF (
PRESENT(ewald_env)) ewald_env => qs_env%ewald_env
688 IF (
PRESENT(ewald_pw)) ewald_pw => qs_env%ewald_pw
689 IF (
PRESENT(mpools)) mpools => qs_env%mpools
690 IF (
PRESENT(scf_control)) scf_control => qs_env%scf_control
691 IF (
PRESENT(rel_control)) rel_control => qs_env%rel_control
693 IF (
PRESENT(rho_external)) rho_external => qs_env%rho_external
694 IF (
PRESENT(external_vxc)) external_vxc => qs_env%external_vxc
695 IF (
PRESENT(mask)) mask => qs_env%mask
696 IF (
PRESENT(qs_charges)) qs_charges => qs_env%qs_charges
697 IF (
PRESENT(ks_env)) ks_env => qs_env%ks_env
698 IF (
PRESENT(ks_qmmm_env)) ks_qmmm_env => qs_env%ks_qmmm_env
699 IF (
PRESENT(wf_history)) wf_history => qs_env%wf_history
700 IF (
PRESENT(scf_env)) scf_env => qs_env%scf_env
701 IF (
PRESENT(oce)) oce => qs_env%oce
702 IF (
PRESENT(requires_mo_derivs)) requires_mo_derivs = qs_env%requires_mo_derivs
703 IF (
PRESENT(has_unit_metric)) has_unit_metric = qs_env%has_unit_metric
704 IF (
PRESENT(mo_derivs)) mo_derivs => qs_env%mo_derivs
705 IF (
PRESENT(mo_loc_history)) mo_loc_history => qs_env%mo_loc_history
706 IF (
PRESENT(linres_control)) linres_control => qs_env%linres_control
707 IF (
PRESENT(se_taper)) se_taper => qs_env%se_taper
708 IF (
PRESENT(se_store_int_env)) se_store_int_env => qs_env%se_store_int_env
709 IF (
PRESENT(se_nddo_mpole)) se_nddo_mpole => qs_env%se_nddo_mpole
710 IF (
PRESENT(se_nonbond_env)) se_nonbond_env => qs_env%se_nonbond_env
711 IF (
PRESENT(lri_env)) lri_env => qs_env%lri_env
712 IF (
PRESENT(lri_density)) lri_density => qs_env%lri_density
713 IF (
PRESENT(harris_env)) harris_env => qs_env%harris_env
714 IF (
PRESENT(ec_env)) ec_env => qs_env%ec_env
715 IF (
PRESENT(exstate_env)) exstate_env => qs_env%exstate_env
716 IF (
PRESENT(dispersion_env)) dispersion_env => qs_env%dispersion_env
717 IF (
PRESENT(gcp_env)) gcp_env => qs_env%gcp_env
718 IF (
PRESENT(run_rtp)) run_rtp = qs_env%run_rtp
719 IF (
PRESENT(rtp)) rtp => qs_env%rtp
720 IF (
PRESENT(ls_scf_env)) ls_scf_env => qs_env%ls_scf_env
721 IF (
PRESENT(almo_scf_env)) almo_scf_env => qs_env%almo_scf_env
722 IF (
PRESENT(do_transport)) do_transport = qs_env%do_transport
723 IF (
PRESENT(transport_env)) transport_env => qs_env%transport_env
724 IF (
PRESENT(mscfg_env)) mscfg_env => qs_env%molecular_scf_guess_env
725 IF (
PRESENT(active_space)) active_space => qs_env%active_space
726 IF (
PRESENT(admm_env)) admm_env => qs_env%admm_env
727 IF (
PRESENT(do_rixs)) do_rixs = qs_env%do_rixs
730 IF (
PRESENT(embed_pot)) embed_pot => qs_env%embed_pot
731 IF (
PRESENT(spin_embed_pot)) spin_embed_pot => qs_env%spin_embed_pot
734 IF (
PRESENT(polar_env)) polar_env => qs_env%polar_env
737 IF (
PRESENT(eeq)) eeq => qs_env%eeq
740 IF (
PRESENT(rhs)) rhs => qs_env%rhs
742 IF (
PRESENT(local_rho_set)) &
743 local_rho_set => qs_env%local_rho_set
744 IF (
PRESENT(rho_atom_set)) &
745 CALL get_local_rho(qs_env%local_rho_set, rho_atom_set=rho_atom_set)
746 IF (
PRESENT(rho0_atom_set)) &
747 CALL get_local_rho(qs_env%local_rho_set, rho0_atom_set=rho0_atom_set)
748 IF (
PRESENT(rho0_mpole)) &
749 CALL get_local_rho(qs_env%local_rho_set, rho0_mpole=rho0_mpole)
750 IF (
PRESENT(rhoz_set)) &
752 IF (
PRESENT(rhoz_cneo_set)) &
753 CALL get_local_rho(qs_env%local_rho_set, rhoz_cneo_set=rhoz_cneo_set)
754 IF (
PRESENT(ecoul_1c)) &
756 IF (
PRESENT(rho0_s_rs))
THEN
758 IF (
ASSOCIATED(rho0_m))
THEN
759 rho0_s_rs => rho0_m%rho0_s_rs
762 IF (
PRESENT(rho0_s_gs))
THEN
764 IF (
ASSOCIATED(rho0_m))
THEN
765 rho0_s_gs => rho0_m%rho0_s_gs
768 IF (
PRESENT(rhoz_cneo_s_rs))
THEN
770 IF (
ASSOCIATED(rho0_m))
THEN
771 rhoz_cneo_s_rs => rho0_m%rhoz_cneo_s_rs
774 IF (
PRESENT(rhoz_cneo_s_gs))
THEN
776 IF (
ASSOCIATED(rho0_m))
THEN
777 rhoz_cneo_s_gs => rho0_m%rhoz_cneo_s_gs
781 IF (
PRESENT(xas_env)) xas_env => qs_env%xas_env
782 IF (
PRESENT(input)) input => qs_env%input
783 IF (
PRESENT(cp_ddapc_env)) cp_ddapc_env => qs_env%cp_ddapc_env
784 IF (
PRESENT(cp_ddapc_ewald)) cp_ddapc_ewald => qs_env%cp_ddapc_ewald
785 IF (
PRESENT(x_data)) x_data => qs_env%x_data
787 IF (
PRESENT(dftb_potential)) dftb_potential => qs_env%dftb_potential
788 IF (
PRESENT(efield)) efield => qs_env%efield
789 IF (
PRESENT(wanniercentres)) wanniercentres => qs_env%WannierCentres
792 v_hartree_rspace=v_hartree_rspace, &
793 s_mstruct_changed=s_mstruct_changed, &
794 rho_changed=rho_changed, &
795 potential_changed=potential_changed, &
796 forces_up_to_date=forces_up_to_date, &
798 matrix_h_im=matrix_h_im, &
799 matrix_ks=matrix_ks, &
800 matrix_ks_im=matrix_ks_im, &
801 matrix_vxc=matrix_vxc, &
804 matrix_s_ri_aux=matrix_s_ri_aux, &
805 matrix_ks_im_kp=matrix_ks_im_kp, &
807 matrix_p_mp2=matrix_p_mp2, &
808 matrix_p_mp2_admm=matrix_p_mp2_admm, &
809 matrix_h_kp=matrix_h_kp, &
810 matrix_h_im_kp=matrix_h_im_kp, &
811 matrix_ks_kp=matrix_ks_kp, &
812 matrix_vxc_kp=matrix_vxc_kp, &
813 kinetic_kp=kinetic_kp, &
814 matrix_s_kp=matrix_s_kp, &
815 matrix_w_kp=matrix_w_kp, &
816 matrix_s_ri_aux_kp=matrix_s_ri_aux_kp, &
821 rho_nlcc_g=rho_nlcc_g, &
824 neighbor_list_id=neighbor_list_id, &
840 sab_xtb_pp=sab_xtb_pp, &
841 sab_xtb_nonbond=sab_xtb_nonbond, &
844 sab_kp_nosym=sab_kp_nosym, &
846 task_list=task_list, &
847 task_list_soft=task_list_soft, &
849 do_kpoints=do_kpoints, &
850 local_molecules=local_molecules, &
851 local_particles=local_particles, &
857 use_ref_cell=use_ref_cell, &
860 qs_kind_set=qs_kind_set, &
862 cp_subsys=cp_subsys, &
863 atomic_kind_set=atomic_kind_set, &
864 particle_set=particle_set, &
865 molecule_kind_set=molecule_kind_set, &
866 molecule_set=molecule_set, &
869 dft_control=dft_control, &
870 dbcsr_dist=dbcsr_dist, &
871 distribution_2d=distribution_2d, &
874 blacs_env=blacs_env, &
875 nelectron_total=nelectron_total, &
876 nelectron_spin=nelectron_spin)
878 IF (
PRESENT(tb_tblite)) tb_tblite => qs_env%tb_tblite
890 SUBROUTINE init_qs_env(qs_env, globenv)
895 NULLIFY (qs_env%ls_scf_env)
896 NULLIFY (qs_env%almo_scf_env)
897 NULLIFY (qs_env%transport_env)
898 NULLIFY (qs_env%image_matrix)
899 NULLIFY (qs_env%ipiv)
900 NULLIFY (qs_env%image_coeff)
901 NULLIFY (qs_env%super_cell)
903 NULLIFY (qs_env%mos_last_converged)
904 NULLIFY (qs_env%mpools)
905 NULLIFY (qs_env%ewald_env)
906 NULLIFY (qs_env%ewald_pw)
907 NULLIFY (qs_env%scf_control)
908 NULLIFY (qs_env%rel_control)
909 NULLIFY (qs_env%qs_charges)
911 NULLIFY (qs_env%rho_external)
912 NULLIFY (qs_env%external_vxc)
913 NULLIFY (qs_env%mask)
915 NULLIFY (qs_env%embed_pot)
916 NULLIFY (qs_env%spin_embed_pot)
919 NULLIFY (qs_env%polar_env)
921 NULLIFY (qs_env%ks_env)
922 NULLIFY (qs_env%ks_qmmm_env)
923 NULLIFY (qs_env%wf_history)
924 NULLIFY (qs_env%scf_env)
926 NULLIFY (qs_env%local_rho_set)
927 NULLIFY (qs_env%hartree_local)
928 NULLIFY (qs_env%input)
929 NULLIFY (qs_env%linres_control)
930 NULLIFY (qs_env%xas_env)
931 NULLIFY (qs_env%cp_ddapc_env)
932 NULLIFY (qs_env%cp_ddapc_ewald)
933 NULLIFY (qs_env%outer_scf_history)
934 NULLIFY (qs_env%gradient_history)
935 NULLIFY (qs_env%variable_history)
936 NULLIFY (qs_env%x_data)
937 NULLIFY (qs_env%et_coupling)
938 NULLIFY (qs_env%dftb_potential)
939 NULLIFY (qs_env%active_space)
941 NULLIFY (qs_env%se_taper)
942 NULLIFY (qs_env%se_store_int_env)
943 NULLIFY (qs_env%se_nddo_mpole)
944 NULLIFY (qs_env%se_nonbond_env)
945 NULLIFY (qs_env%admm_env)
946 NULLIFY (qs_env%efield)
947 NULLIFY (qs_env%lri_env)
948 NULLIFY (qs_env%harris_env)
949 NULLIFY (qs_env%ec_env)
950 NULLIFY (qs_env%exstate_env)
951 NULLIFY (qs_env%lri_density)
952 NULLIFY (qs_env%gcp_env)
954 NULLIFY (qs_env%mp2_env)
955 NULLIFY (qs_env%bs_env)
956 NULLIFY (qs_env%kg_env)
957 NULLIFY (qs_env%WannierCentres)
959 qs_env%outer_scf_ihistory = 0
960 qs_env%broyden_adaptive_sigma = -1.0_dp
964 qs_env%run_rtp = .false.
965 qs_env%linres_run = .false.
966 qs_env%single_point_run = .false.
967 qs_env%qmmm = .false.
968 qs_env%qmmm_periodic = .false.
969 qs_env%mimic = .false.
970 qs_env%requires_mo_derivs = .false.
971 qs_env%requires_matrix_vxc = .false.
972 qs_env%has_unit_metric = .false.
973 qs_env%calc_image_preconditioner = .true.
974 qs_env%do_transport = .false.
975 qs_env%given_embed_pot = .false.
976 qs_env%do_rixs = .false.
977 IF (
PRESENT(globenv))
THEN
978 qs_env%target_time = globenv%cp2k_target_time
979 qs_env%start_time = globenv%cp2k_start_time
980 qs_env%single_point_run = (globenv%run_type_id ==
energy_run .OR. &
983 qs_env%target_time = 0.0_dp
984 qs_env%start_time = 0.0_dp
987 qs_env%sim_time = 0._dp
990 qs_env%total_zeff_corr = 0.0_dp
991 qs_env%surface_dipole_moment = 0.0_dp
992 qs_env%surface_dipole_switch_off = .false.
995 NULLIFY (qs_env%mo_derivs)
996 NULLIFY (qs_env%mo_loc_history)
998 IF (.NOT.
ASSOCIATED(qs_env%molecular_scf_guess_env))
ALLOCATE (qs_env%molecular_scf_guess_env)
1000 NULLIFY (qs_env%tb_tblite)
1002 END SUBROUTINE init_qs_env
1088 mos, qmmm, qmmm_periodic, mimic, &
1089 ewald_env, ewald_pw, mpools, &
1090 rho_external, external_vxc, mask, &
1091 scf_control, rel_control, qs_charges, ks_env, &
1092 ks_qmmm_env, wf_history, scf_env, active_space, &
1093 input, oce, rho_atom_set, rho0_atom_set, rho0_mpole, run_rtp, rtp, &
1094 rhoz_set, rhoz_tot, ecoul_1c, has_unit_metric, requires_mo_derivs, mo_derivs, &
1095 mo_loc_history, efield, rhoz_cneo_set, &
1096 linres_control, xas_env, cp_ddapc_env, cp_ddapc_ewald, &
1097 outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, &
1098 se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, ls_scf_env, &
1099 do_transport, transport_env, lri_env, lri_density, exstate_env, ec_env, dispersion_env, &
1100 harris_env, gcp_env, mp2_env, bs_env, kg_env, force, &
1101 kpoints, WannierCentres, almo_scf_env, gradient_history, variable_history, embed_pot, &
1102 spin_embed_pot, polar_env, mos_last_converged, eeq, rhs, do_rixs, tb_tblite)
1105 TYPE(
cell_type),
OPTIONAL,
POINTER :: super_cell
1106 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos
1107 LOGICAL,
OPTIONAL :: qmmm, qmmm_periodic, mimic
1111 TYPE(
qs_rho_type),
OPTIONAL,
POINTER :: rho_external
1124 POINTER :: rho_atom_set
1126 POINTER :: rho0_atom_set
1128 LOGICAL,
OPTIONAL :: run_rtp
1130 TYPE(
rhoz_type),
DIMENSION(:),
OPTIONAL,
POINTER :: rhoz_set
1131 REAL(
dp),
OPTIONAL :: rhoz_tot
1134 LOGICAL,
OPTIONAL :: has_unit_metric, requires_mo_derivs
1136 POINTER :: mo_derivs
1137 TYPE(
cp_fm_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mo_loc_history
1140 POINTER :: rhoz_cneo_set
1145 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: outer_scf_history
1146 INTEGER,
INTENT(IN),
OPTIONAL :: outer_scf_ihistory
1147 TYPE(
hfx_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: x_data
1150 OPTIONAL,
POINTER :: dftb_potential
1155 TYPE(
admm_type),
OPTIONAL,
POINTER :: admm_env
1157 LOGICAL,
OPTIONAL :: do_transport
1164 TYPE(
harris_type),
OPTIONAL,
POINTER :: harris_env
1166 TYPE(
mp2_type),
OPTIONAL,
POINTER :: mp2_env
1174 OPTIONAL,
POINTER :: wanniercentres
1176 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: gradient_history, variable_history
1177 TYPE(
pw_r3d_rs_type),
OPTIONAL,
POINTER :: embed_pot, spin_embed_pot
1179 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos_last_converged
1180 REAL(kind=
dp),
DIMENSION(:),
OPTIONAL,
POINTER :: eeq, rhs
1181 LOGICAL,
OPTIONAL :: do_rixs
1186 IF (
PRESENT(mp2_env)) qs_env%mp2_env => mp2_env
1187 IF (
PRESENT(bs_env)) qs_env%bs_env => bs_env
1188 IF (
PRESENT(kg_env)) qs_env%kg_env => kg_env
1189 IF (
PRESENT(super_cell))
THEN
1192 qs_env%super_cell => super_cell
1195 IF (
PRESENT(qmmm)) qs_env%qmmm = qmmm
1196 IF (
PRESENT(qmmm_periodic)) qs_env%qmmm_periodic = qmmm_periodic
1197 IF (
PRESENT(mimic)) qs_env%mimic = mimic
1198 IF (
PRESENT(mos)) qs_env%mos => mos
1199 IF (
PRESENT(mos_last_converged)) qs_env%mos_last_converged => mos_last_converged
1200 IF (
PRESENT(ls_scf_env)) qs_env%ls_scf_env => ls_scf_env
1201 IF (
PRESENT(almo_scf_env)) qs_env%almo_scf_env => almo_scf_env
1202 IF (
PRESENT(do_transport)) qs_env%do_transport = do_transport
1203 IF (
PRESENT(transport_env)) qs_env%transport_env => transport_env
1206 IF (
PRESENT(oce)) qs_env%oce => oce
1207 IF (
PRESENT(outer_scf_history)) qs_env%outer_scf_history => outer_scf_history
1208 IF (
PRESENT(gradient_history)) qs_env%gradient_history => gradient_history
1209 IF (
PRESENT(variable_history)) qs_env%variable_history => variable_history
1210 IF (
PRESENT(outer_scf_ihistory)) qs_env%outer_scf_ihistory = outer_scf_ihistory
1211 IF (
PRESENT(requires_mo_derivs)) qs_env%requires_mo_derivs = requires_mo_derivs
1212 IF (
PRESENT(has_unit_metric)) qs_env%has_unit_metric = has_unit_metric
1213 IF (
PRESENT(mo_derivs)) qs_env%mo_derivs => mo_derivs
1214 IF (
PRESENT(mo_loc_history)) qs_env%mo_loc_history => mo_loc_history
1215 IF (
PRESENT(run_rtp)) qs_env%run_rtp = run_rtp
1216 IF (
PRESENT(rtp)) qs_env%rtp => rtp
1217 IF (
PRESENT(efield)) qs_env%efield => efield
1218 IF (
PRESENT(active_space)) qs_env%active_space => active_space
1219 IF (
PRESENT(do_rixs)) do_rixs = qs_env%do_rixs
1221 IF (
PRESENT(ewald_env))
THEN
1222 IF (
ASSOCIATED(qs_env%ewald_env))
THEN
1223 IF (.NOT.
ASSOCIATED(qs_env%ewald_env, ewald_env))
THEN
1225 DEALLOCATE (qs_env%ewald_env)
1228 qs_env%ewald_env => ewald_env
1230 IF (
PRESENT(ewald_pw))
THEN
1231 IF (
ASSOCIATED(qs_env%ewald_pw))
THEN
1232 IF (.NOT.
ASSOCIATED(ewald_pw, qs_env%ewald_pw))
THEN
1234 DEALLOCATE (qs_env%ewald_pw)
1237 qs_env%ewald_pw => ewald_pw
1239 IF (
PRESENT(scf_control))
THEN
1240 IF (
ASSOCIATED(qs_env%scf_control))
THEN
1241 IF (.NOT.
ASSOCIATED(qs_env%scf_control, scf_control))
THEN
1243 DEALLOCATE (qs_env%scf_control)
1246 qs_env%scf_control => scf_control
1248 IF (
PRESENT(rel_control))
THEN
1249 IF (
ASSOCIATED(qs_env%rel_control))
THEN
1250 IF (.NOT.
ASSOCIATED(qs_env%rel_control, rel_control))
THEN
1252 DEALLOCATE (qs_env%rel_control)
1255 qs_env%rel_control => rel_control
1257 IF (
PRESENT(linres_control))
THEN
1258 IF (
ASSOCIATED(qs_env%linres_control))
THEN
1259 IF (.NOT.
ASSOCIATED(qs_env%linres_control, linres_control))
THEN
1261 DEALLOCATE (qs_env%linres_control)
1264 qs_env%linres_control => linres_control
1267 IF (
PRESENT(rho_external))
THEN
1268 IF (
ASSOCIATED(qs_env%rho_external))
THEN
1269 IF (.NOT.
ASSOCIATED(qs_env%rho_external, rho_external))
THEN
1271 DEALLOCATE (qs_env%rho_external)
1274 qs_env%rho_external => rho_external
1276 IF (
PRESENT(external_vxc)) qs_env%external_vxc => external_vxc
1277 IF (
PRESENT(mask)) qs_env%mask => mask
1279 IF (
PRESENT(embed_pot)) qs_env%embed_pot => embed_pot
1280 IF (
PRESENT(spin_embed_pot)) qs_env%spin_embed_pot => spin_embed_pot
1283 IF (
PRESENT(polar_env)) qs_env%polar_env => polar_env
1285 IF (
PRESENT(qs_charges))
THEN
1286 IF (
ASSOCIATED(qs_env%qs_charges))
THEN
1287 IF (.NOT.
ASSOCIATED(qs_env%qs_charges, qs_charges))
THEN
1289 DEALLOCATE (qs_env%qs_charges)
1292 qs_env%qs_charges => qs_charges
1294 IF (
PRESENT(ks_qmmm_env))
THEN
1295 IF (
ASSOCIATED(qs_env%ks_qmmm_env))
THEN
1296 IF (.NOT.
ASSOCIATED(qs_env%ks_qmmm_env, ks_qmmm_env))
THEN
1298 DEALLOCATE (qs_env%ks_qmmm_env)
1301 qs_env%ks_qmmm_env => ks_qmmm_env
1303 IF (
PRESENT(ks_env))
THEN
1304 IF (
ASSOCIATED(qs_env%ks_env))
THEN
1305 IF (.NOT.
ASSOCIATED(qs_env%ks_env, ks_env))
THEN
1307 DEALLOCATE (qs_env%ks_env)
1310 qs_env%ks_env => ks_env
1312 IF (
PRESENT(wf_history))
THEN
1315 qs_env%wf_history => wf_history
1317 IF (
PRESENT(scf_env))
THEN
1318 IF (
ASSOCIATED(qs_env%scf_env))
THEN
1319 IF (.NOT.
ASSOCIATED(qs_env%scf_env, scf_env))
THEN
1321 DEALLOCATE (qs_env%scf_env)
1324 qs_env%scf_env => scf_env
1326 IF (
PRESENT(xas_env))
THEN
1327 IF (
ASSOCIATED(qs_env%xas_env))
THEN
1328 IF (.NOT.
ASSOCIATED(qs_env%xas_env, xas_env))
THEN
1330 DEALLOCATE (qs_env%xas_env)
1333 qs_env%xas_env => xas_env
1335 IF (
PRESENT(mpools))
THEN
1338 qs_env%mpools => mpools
1340 IF (
PRESENT(rho_atom_set))
THEN
1341 CALL set_local_rho(qs_env%local_rho_set, rho_atom_set=rho_atom_set)
1343 IF (
PRESENT(rho0_atom_set))
THEN
1344 CALL set_local_rho(qs_env%local_rho_set, rho0_atom_set=rho0_atom_set)
1346 IF (
PRESENT(rho0_mpole))
THEN
1347 CALL set_local_rho(qs_env%local_rho_set, rho0_mpole=rho0_mpole)
1349 IF (
PRESENT(rhoz_set))
THEN
1352 IF (
PRESENT(rhoz_cneo_set))
THEN
1353 CALL set_local_rho(qs_env%local_rho_set, rhoz_cneo_set=rhoz_cneo_set)
1355 IF (
PRESENT(rhoz_tot)) qs_env%local_rho_set%rhoz_tot = rhoz_tot
1356 IF (
PRESENT(ecoul_1c))
THEN
1359 IF (
PRESENT(input))
THEN
1362 qs_env%input => input
1364 IF (
PRESENT(cp_ddapc_env))
THEN
1365 IF (
ASSOCIATED(qs_env%cp_ddapc_env))
THEN
1366 IF (.NOT.
ASSOCIATED(qs_env%cp_ddapc_env, cp_ddapc_env))
THEN
1368 DEALLOCATE (qs_env%cp_ddapc_env)
1371 qs_env%cp_ddapc_env => cp_ddapc_env
1373 IF (
PRESENT(cp_ddapc_ewald))
THEN
1374 qs_env%cp_ddapc_ewald => cp_ddapc_ewald
1376 IF (
PRESENT(x_data)) qs_env%x_data => x_data
1378 IF (
PRESENT(dftb_potential)) qs_env%dftb_potential => dftb_potential
1379 IF (
PRESENT(se_taper))
THEN
1381 qs_env%se_taper => se_taper
1383 IF (
PRESENT(se_store_int_env))
THEN
1385 qs_env%se_store_int_env => se_store_int_env
1387 IF (
PRESENT(se_nddo_mpole))
THEN
1389 qs_env%se_nddo_mpole => se_nddo_mpole
1391 IF (
PRESENT(se_nonbond_env))
THEN
1392 IF (
ASSOCIATED(qs_env%se_nonbond_env))
THEN
1393 IF (.NOT.
ASSOCIATED(qs_env%se_nonbond_env, se_nonbond_env))
THEN
1395 DEALLOCATE (qs_env%se_nonbond_env)
1398 qs_env%se_nonbond_env => se_nonbond_env
1400 IF (
PRESENT(admm_env)) qs_env%admm_env => admm_env
1401 IF (
PRESENT(lri_env)) qs_env%lri_env => lri_env
1402 IF (
PRESENT(lri_density)) qs_env%lri_density => lri_density
1403 IF (
PRESENT(harris_env)) qs_env%harris_env => harris_env
1404 IF (
PRESENT(ec_env)) qs_env%ec_env => ec_env
1405 IF (
PRESENT(exstate_env)) qs_env%exstate_env => exstate_env
1406 IF (
PRESENT(dispersion_env)) qs_env%dispersion_env => dispersion_env
1407 IF (
PRESENT(gcp_env)) qs_env%gcp_env => gcp_env
1408 IF (
PRESENT(wanniercentres)) qs_env%WannierCentres => wanniercentres
1409 IF (
PRESENT(kpoints))
CALL set_ks_env(qs_env%ks_env, kpoints=kpoints)
1412 IF (
PRESENT(eeq)) qs_env%eeq => eeq
1415 IF (
PRESENT(rhs)) qs_env%rhs => rhs
1417 IF (
PRESENT(force))
THEN
1422 IF (
PRESENT(tb_tblite)) qs_env%tb_tblite => tb_tblite
1438 CALL init_qs_env(qs_env, globenv=globenv)
1455 IF (
ASSOCIATED(qs_env%mos))
THEN
1456 DO i = 1,
SIZE(qs_env%mos)
1459 DEALLOCATE (qs_env%mos)
1461 IF (
ASSOCIATED(qs_env%mos_last_converged))
THEN
1462 DO i = 1,
SIZE(qs_env%mos_last_converged)
1465 DEALLOCATE (qs_env%mos_last_converged)
1468 IF (
ASSOCIATED(qs_env%mo_derivs))
THEN
1469 DO i = 1,
SIZE(qs_env%mo_derivs)
1472 DEALLOCATE (qs_env%mo_derivs)
1477 IF (
ASSOCIATED(qs_env%rtp))
THEN
1479 DEALLOCATE (qs_env%rtp)
1481 IF (
ASSOCIATED(qs_env%outer_scf_history))
THEN
1482 DEALLOCATE (qs_env%outer_scf_history)
1483 qs_env%outer_scf_ihistory = 0
1485 IF (
ASSOCIATED(qs_env%gradient_history)) &
1486 DEALLOCATE (qs_env%gradient_history)
1487 IF (
ASSOCIATED(qs_env%variable_history)) &
1488 DEALLOCATE (qs_env%variable_history)
1490 IF (
ASSOCIATED(qs_env%local_rho_set))
THEN
1493 IF (
ASSOCIATED(qs_env%hartree_local))
THEN
1496 IF (
ASSOCIATED(qs_env%scf_control))
THEN
1498 DEALLOCATE (qs_env%scf_control)
1500 IF (
ASSOCIATED(qs_env%rel_control))
THEN
1502 DEALLOCATE (qs_env%rel_control)
1505 IF (
ASSOCIATED(qs_env%linres_control))
THEN
1507 DEALLOCATE (qs_env%linres_control)
1510 IF (
ASSOCIATED(qs_env%almo_scf_env))
THEN
1514 IF (
ASSOCIATED(qs_env%ls_scf_env))
THEN
1517 IF (
ASSOCIATED(qs_env%molecular_scf_guess_env))
THEN
1519 DEALLOCATE (qs_env%molecular_scf_guess_env)
1522 IF (
ASSOCIATED(qs_env%transport_env))
THEN
1527 IF (
ASSOCIATED(qs_env%xas_env))
THEN
1529 DEALLOCATE (qs_env%xas_env)
1531 IF (
ASSOCIATED(qs_env%ewald_env))
THEN
1533 DEALLOCATE (qs_env%ewald_env)
1535 IF (
ASSOCIATED(qs_env%ewald_pw))
THEN
1537 DEALLOCATE (qs_env%ewald_pw)
1539 IF (
ASSOCIATED(qs_env%image_matrix))
THEN
1540 DEALLOCATE (qs_env%image_matrix)
1542 IF (
ASSOCIATED(qs_env%ipiv))
THEN
1543 DEALLOCATE (qs_env%ipiv)
1545 IF (
ASSOCIATED(qs_env%image_coeff))
THEN
1546 DEALLOCATE (qs_env%image_coeff)
1549 IF (
ASSOCIATED(qs_env%rho_external))
THEN
1551 DEALLOCATE (qs_env%rho_external)
1553 IF (
ASSOCIATED(qs_env%external_vxc))
THEN
1554 CALL qs_env%external_vxc%release()
1555 DEALLOCATE (qs_env%external_vxc)
1557 IF (
ASSOCIATED(qs_env%mask))
THEN
1558 CALL qs_env%mask%release()
1559 DEALLOCATE (qs_env%mask)
1561 IF (
ASSOCIATED(qs_env%active_space))
THEN
1565 IF (qs_env%given_embed_pot)
THEN
1566 CALL qs_env%embed_pot%release()
1567 DEALLOCATE (qs_env%embed_pot)
1568 IF (
ASSOCIATED(qs_env%spin_embed_pot))
THEN
1569 CALL qs_env%spin_embed_pot%release()
1570 DEALLOCATE (qs_env%spin_embed_pot)
1577 IF (
ASSOCIATED(qs_env%qs_charges))
THEN
1579 DEALLOCATE (qs_env%qs_charges)
1581 IF (
ASSOCIATED(qs_env%ks_env))
THEN
1583 DEALLOCATE (qs_env%ks_env)
1585 IF (
ASSOCIATED(qs_env%ks_qmmm_env))
THEN
1587 DEALLOCATE (qs_env%ks_qmmm_env)
1590 IF (
ASSOCIATED(qs_env%scf_env))
THEN
1592 DEALLOCATE (qs_env%scf_env)
1596 IF (
ASSOCIATED(qs_env%cp_ddapc_env))
THEN
1598 DEALLOCATE (qs_env%cp_ddapc_env)
1602 IF (
ASSOCIATED(qs_env%x_data))
THEN
1605 IF (
ASSOCIATED(qs_env%et_coupling))
THEN
1608 IF (
ASSOCIATED(qs_env%dftb_potential))
THEN
1611 IF (
ASSOCIATED(qs_env%se_taper))
THEN
1614 IF (
ASSOCIATED(qs_env%se_store_int_env))
THEN
1617 IF (
ASSOCIATED(qs_env%se_nddo_mpole))
THEN
1620 IF (
ASSOCIATED(qs_env%se_nonbond_env))
THEN
1622 DEALLOCATE (qs_env%se_nonbond_env)
1624 IF (
ASSOCIATED(qs_env%admm_env))
THEN
1627 IF (
ASSOCIATED(qs_env%lri_env))
THEN
1629 DEALLOCATE (qs_env%lri_env)
1631 IF (
ASSOCIATED(qs_env%lri_density))
THEN
1633 DEALLOCATE (qs_env%lri_density)
1635 IF (
ASSOCIATED(qs_env%harris_env))
THEN
1638 IF (
ASSOCIATED(qs_env%ec_env))
THEN
1641 IF (
ASSOCIATED(qs_env%exstate_env))
THEN
1644 IF (
ASSOCIATED(qs_env%mp2_env))
THEN
1646 DEALLOCATE (qs_env%mp2_env)
1647 NULLIFY (qs_env%mp2_env)
1649 IF (
ASSOCIATED(qs_env%bs_env))
THEN
1652 IF (
ASSOCIATED(qs_env%kg_env))
THEN
1659 IF (
ASSOCIATED(qs_env%gcp_env))
THEN
1663 IF (
ASSOCIATED(qs_env%WannierCentres))
THEN
1664 DO i = 1,
SIZE(qs_env%WannierCentres)
1665 DEALLOCATE (qs_env%WannierCentres(i)%WannierHamDiag)
1666 DEALLOCATE (qs_env%WannierCentres(i)%centres)
1668 DEALLOCATE (qs_env%WannierCentres)
1671 IF (
ASSOCIATED(qs_env%eeq))
DEALLOCATE (qs_env%eeq)
1673 IF (
ASSOCIATED(qs_env%rhs))
DEALLOCATE (qs_env%rhs)
1676 IF (
ASSOCIATED(qs_env%tb_tblite))
THEN
1693 IF (
ASSOCIATED(qs_env%mos_last_converged))
THEN
1694 DO i = 1,
SIZE(qs_env%mos_last_converged)
1697 DEALLOCATE (qs_env%mos_last_converged)
1700 IF (
ASSOCIATED(qs_env%mo_derivs))
THEN
1701 DO i = 1,
SIZE(qs_env%mo_derivs)
1704 DEALLOCATE (qs_env%mo_derivs)
1709 IF (
ASSOCIATED(qs_env%rtp))
THEN
1711 DEALLOCATE (qs_env%rtp)
1713 IF (
ASSOCIATED(qs_env%outer_scf_history))
THEN
1714 DEALLOCATE (qs_env%outer_scf_history)
1715 qs_env%outer_scf_ihistory = 0
1717 IF (
ASSOCIATED(qs_env%gradient_history)) &
1718 DEALLOCATE (qs_env%gradient_history)
1719 IF (
ASSOCIATED(qs_env%variable_history)) &
1720 DEALLOCATE (qs_env%variable_history)
1722 IF (
ASSOCIATED(qs_env%local_rho_set))
THEN
1725 IF (
ASSOCIATED(qs_env%hartree_local))
THEN
1728 IF (
ASSOCIATED(qs_env%scf_control))
THEN
1730 DEALLOCATE (qs_env%scf_control)
1732 IF (
ASSOCIATED(qs_env%rel_control))
THEN
1734 DEALLOCATE (qs_env%rel_control)
1737 IF (
ASSOCIATED(qs_env%linres_control))
THEN
1739 DEALLOCATE (qs_env%linres_control)
1742 IF (
ASSOCIATED(qs_env%almo_scf_env))
THEN
1746 IF (
ASSOCIATED(qs_env%ls_scf_env))
THEN
1749 IF (
ASSOCIATED(qs_env%molecular_scf_guess_env))
THEN
1751 DEALLOCATE (qs_env%molecular_scf_guess_env)
1754 IF (
ASSOCIATED(qs_env%transport_env))
THEN
1759 IF (
ASSOCIATED(qs_env%xas_env))
THEN
1761 DEALLOCATE (qs_env%xas_env)
1763 IF (
ASSOCIATED(qs_env%ewald_env))
THEN
1765 DEALLOCATE (qs_env%ewald_env)
1767 IF (
ASSOCIATED(qs_env%ewald_pw))
THEN
1769 DEALLOCATE (qs_env%ewald_pw)
1771 IF (
ASSOCIATED(qs_env%image_matrix))
THEN
1772 DEALLOCATE (qs_env%image_matrix)
1774 IF (
ASSOCIATED(qs_env%ipiv))
THEN
1775 DEALLOCATE (qs_env%ipiv)
1777 IF (
ASSOCIATED(qs_env%image_coeff))
THEN
1778 DEALLOCATE (qs_env%image_coeff)
1781 IF (
ASSOCIATED(qs_env%rho_external))
THEN
1783 DEALLOCATE (qs_env%rho_external)
1785 IF (
ASSOCIATED(qs_env%external_vxc))
THEN
1786 CALL qs_env%external_vxc%release()
1787 DEALLOCATE (qs_env%external_vxc)
1789 IF (
ASSOCIATED(qs_env%mask))
THEN
1790 CALL qs_env%mask%release()
1791 DEALLOCATE (qs_env%mask)
1793 IF (
ASSOCIATED(qs_env%active_space))
THEN
1797 IF (qs_env%given_embed_pot)
THEN
1798 CALL qs_env%embed_pot%release()
1799 DEALLOCATE (qs_env%embed_pot)
1800 IF (
ASSOCIATED(qs_env%spin_embed_pot))
THEN
1801 CALL qs_env%spin_embed_pot%release()
1802 DEALLOCATE (qs_env%spin_embed_pot)
1809 IF (
ASSOCIATED(qs_env%qs_charges))
THEN
1811 DEALLOCATE (qs_env%qs_charges)
1814 IF (
ASSOCIATED(qs_env%ks_qmmm_env))
THEN
1816 DEALLOCATE (qs_env%ks_qmmm_env)
1819 IF (
ASSOCIATED(qs_env%scf_env))
THEN
1821 DEALLOCATE (qs_env%scf_env)
1823 IF (
ASSOCIATED(qs_env%cp_ddapc_env))
THEN
1825 DEALLOCATE (qs_env%cp_ddapc_env)
1829 IF (
ASSOCIATED(qs_env%x_data))
THEN
1832 IF (
ASSOCIATED(qs_env%et_coupling))
THEN
1835 IF (
ASSOCIATED(qs_env%dftb_potential))
THEN
1838 IF (
ASSOCIATED(qs_env%se_taper))
THEN
1841 IF (
ASSOCIATED(qs_env%se_store_int_env))
THEN
1844 IF (
ASSOCIATED(qs_env%se_nddo_mpole))
THEN
1847 IF (
ASSOCIATED(qs_env%se_nonbond_env))
THEN
1849 DEALLOCATE (qs_env%se_nonbond_env)
1851 IF (
ASSOCIATED(qs_env%admm_env))
THEN
1854 IF (
ASSOCIATED(qs_env%lri_env))
THEN
1856 DEALLOCATE (qs_env%lri_env)
1858 IF (
ASSOCIATED(qs_env%lri_density))
THEN
1860 DEALLOCATE (qs_env%lri_density)
1862 IF (
ASSOCIATED(qs_env%harris_env))
THEN
1865 IF (
ASSOCIATED(qs_env%ec_env))
THEN
1868 IF (
ASSOCIATED(qs_env%exstate_env))
THEN
1871 IF (
ASSOCIATED(qs_env%mp2_env))
THEN
1873 DEALLOCATE (qs_env%mp2_env)
1874 NULLIFY (qs_env%mp2_env)
1876 IF (
ASSOCIATED(qs_env%kg_env))
THEN
1883 IF (
ASSOCIATED(qs_env%gcp_env))
THEN
1887 IF (
ASSOCIATED(qs_env%WannierCentres))
THEN
1888 DO i = 1,
SIZE(qs_env%WannierCentres)
1889 DEALLOCATE (qs_env%WannierCentres(i)%WannierHamDiag)
1890 DEALLOCATE (qs_env%WannierCentres(i)%centres)
1892 DEALLOCATE (qs_env%WannierCentres)
1895 IF (
ASSOCIATED(qs_env%eeq))
DEALLOCATE (qs_env%eeq)
1897 IF (
ASSOCIATED(qs_env%rhs))
DEALLOCATE (qs_env%rhs)
1900 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 qs_env_release(qs_env)
releases the given qs_env (see doc/ReferenceCounting.html)
subroutine, public get_qs_env(qs_env, atomic_kind_set, qs_kind_set, cell, super_cell, cell_ref, use_ref_cell, kpoints, dft_control, mos, sab_orb, sab_all, qmmm, qmmm_periodic, mimic, sac_ae, sac_ppl, sac_lri, sap_ppnl, sab_vdw, sab_scp, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_almo, sab_kp, sab_kp_nosym, sab_cneo, particle_set, energy, force, matrix_h, matrix_h_im, matrix_ks, matrix_ks_im, matrix_vxc, run_rtp, rtp, matrix_h_kp, matrix_h_im_kp, matrix_ks_kp, matrix_ks_im_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, matrix_s_ri_aux_kp, matrix_s, matrix_s_ri_aux, matrix_w, matrix_p_mp2, matrix_p_mp2_admm, rho, rho_xc, pw_env, ewald_env, ewald_pw, active_space, mpools, input, para_env, blacs_env, scf_control, rel_control, kinetic, qs_charges, vppl, 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_part_release(qs_env)
releases part of the given qs_env in order to save memory
subroutine, public qs_env_create(qs_env, globenv)
allocates and intitializes a qs_env
subroutine, public set_qs_env(qs_env, super_cell, mos, qmmm, qmmm_periodic, mimic, ewald_env, ewald_pw, mpools, rho_external, external_vxc, mask, scf_control, rel_control, qs_charges, ks_env, ks_qmmm_env, wf_history, scf_env, active_space, input, oce, rho_atom_set, rho0_atom_set, rho0_mpole, run_rtp, rtp, rhoz_set, rhoz_tot, ecoul_1c, has_unit_metric, requires_mo_derivs, mo_derivs, mo_loc_history, efield, rhoz_cneo_set, linres_control, xas_env, cp_ddapc_env, cp_ddapc_ewald, outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, ls_scf_env, do_transport, transport_env, lri_env, lri_density, exstate_env, ec_env, dispersion_env, harris_env, gcp_env, mp2_env, bs_env, kg_env, force, kpoints, wanniercentres, almo_scf_env, gradient_history, variable_history, embed_pot, spin_embed_pot, polar_env, mos_last_converged, eeq, rhs, do_rixs, tb_tblite)
Set the QUICKSTEP environment.
Definition of gCP types for DFT calculations.
subroutine, public qs_gcp_release(gcp_env)
...
Types needed for a for a Harris model calculation.
subroutine, public harris_env_release(harris_env)
...
Define the quickstep kind type and their sub types.
subroutine, public qs_ks_qmmm_release(ks_qmmm_env)
releases the ks_qmmm_env (see doc/ReferenceCounting.html)
subroutine, public qs_ks_release(ks_env)
releases the ks_env (see doc/ReferenceCounting.html)
subroutine, public 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.