165#include "./base/base_uses.f90"
171 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'qs_environment_types'
220 LOGICAL :: qmmm = .false., qmmm_periodic = .false.
221 LOGICAL :: requires_mo_derivs = .false.
222 LOGICAL :: requires_matrix_vxc = .false.
223 LOGICAL :: has_unit_metric = .false.
224 LOGICAL :: run_rtp = .false.
225 LOGICAL :: linres_run = .false.
226 LOGICAL :: calc_image_preconditioner = .false.
227 LOGICAL :: do_transport = .false.
228 LOGICAL :: single_point_run = .false.
229 LOGICAL :: given_embed_pot = .false.
230 LOGICAL :: energy_correction = .false.
231 LOGICAL :: harris_method = .false.
232 LOGICAL :: do_rixs = .false.
233 REAL(kind=
dp) :: sim_time = -1.0_dp
234 REAL(kind=
dp) :: start_time = -1.0_dp, target_time = -1.0_dp
235 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: image_matrix => null()
236 REAL(kind=
dp),
DIMENSION(:),
POINTER :: image_coeff => null()
237 INTEGER,
DIMENSION(:),
POINTER :: ipiv => null()
238 INTEGER :: sim_step = -1
244 TYPE(
cp_fm_type),
DIMENSION(:),
POINTER :: mo_loc_history => null()
267 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: outer_scf_history => null()
268 INTEGER :: outer_scf_ihistory = -1
269 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: gradient_history => null(), &
270 variable_history => null()
271 TYPE(
hfx_type),
DIMENSION(:, :),
POINTER :: x_data => null()
284 LOGICAL :: excited_state = .false.
301 REAL(kind=
dp) :: broyden_adaptive_sigma = -1.0_dp
315 REAL(kind=
dp),
DIMENSION(:),
POINTER :: eeq => null()
317 REAL(kind=
dp),
DIMENSION(:),
POINTER :: rhs => null()
318 REAL(kind=
dp) :: total_zeff_corr = -1.0_dp, surface_dipole_moment = -1.0_dp
319 LOGICAL :: surface_dipole_switch_off = .false.
320 TYPE(
mo_set_type),
DIMENSION(:),
POINTER :: mos_last_converged => null()
493 SUBROUTINE get_qs_env(qs_env, atomic_kind_set, qs_kind_set, cell, super_cell, cell_ref, use_ref_cell, kpoints, &
494 dft_control, mos, sab_orb, sab_all, qmmm, qmmm_periodic, sac_ae, sac_ppl, sac_lri, &
495 sap_ppnl, sab_vdw, sab_scp, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, &
496 sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_almo, &
497 sab_kp, sab_kp_nosym, particle_set, energy, force, &
498 matrix_h, matrix_h_im, matrix_ks, matrix_ks_im, matrix_vxc, run_rtp, rtp, &
499 matrix_h_kp, matrix_h_im_kp, matrix_ks_kp, matrix_ks_im_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, &
500 matrix_w_kp, matrix_s_RI_aux_kp, matrix_s, matrix_s_RI_aux, matrix_w, &
501 matrix_p_mp2, matrix_p_mp2_admm, rho, &
502 rho_xc, pw_env, ewald_env, ewald_pw, active_space, &
503 mpools, input, para_env, blacs_env, scf_control, rel_control, kinetic, qs_charges, &
504 vppl, rho_core, rho_nlcc, rho_nlcc_g, ks_env, ks_qmmm_env, wf_history, scf_env, local_particles, &
505 local_molecules, distribution_2d, dbcsr_dist, molecule_kind_set, &
506 molecule_set, subsys, cp_subsys, oce, local_rho_set, rho_atom_set, &
507 task_list, task_list_soft, &
508 rho0_atom_set, rho0_mpole, rhoz_set, ecoul_1c, &
509 rho0_s_rs, rho0_s_gs, do_kpoints, has_unit_metric, requires_mo_derivs, mo_derivs, &
510 mo_loc_history, nkind, natom, nelectron_total, nelectron_spin, efield, &
511 neighbor_list_id, linres_control, xas_env, virial, cp_ddapc_env, cp_ddapc_ewald, &
512 outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, results, &
513 se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, &
514 lri_env, lri_density, exstate_env, ec_env, harris_env, dispersion_env, gcp_env, vee, &
515 rho_external, external_vxc, mask, mp2_env, bs_env, kg_env, &
516 WannierCentres, atprop, ls_scf_env, do_transport, transport_env, v_hartree_rspace, &
517 s_mstruct_changed, rho_changed, potential_changed, forces_up_to_date, mscfg_env, almo_scf_env, &
518 gradient_history, variable_history, embed_pot, spin_embed_pot, polar_env, mos_last_converged, &
519 eeq, rhs, do_rixs, tb_tblite)
523 POINTER :: atomic_kind_set
525 POINTER :: qs_kind_set
526 TYPE(
cell_type),
OPTIONAL,
POINTER :: cell, super_cell, cell_ref
527 LOGICAL,
OPTIONAL :: use_ref_cell
530 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos
532 OPTIONAL,
POINTER :: sab_orb, sab_all
533 LOGICAL,
OPTIONAL :: qmmm, qmmm_periodic
535 sap_ppnl, sab_vdw, sab_scp, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, &
536 sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_almo, sab_kp, sab_kp_nosym
538 POINTER :: particle_set
543 POINTER :: matrix_h, matrix_h_im, matrix_ks, &
544 matrix_ks_im, matrix_vxc
545 LOGICAL,
OPTIONAL :: run_rtp
547 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: matrix_h_kp, matrix_h_im_kp, &
548 matrix_ks_kp, matrix_ks_im_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, &
551 POINTER :: matrix_s, matrix_s_ri_aux, matrix_w, &
552 matrix_p_mp2, matrix_p_mp2_admm
553 TYPE(
qs_rho_type),
OPTIONAL,
POINTER :: rho, rho_xc
579 POINTER :: molecule_kind_set
581 POINTER :: molecule_set
587 POINTER :: rho_atom_set
588 TYPE(
task_list_type),
OPTIONAL,
POINTER :: task_list, task_list_soft
590 POINTER :: rho0_atom_set
592 TYPE(
rhoz_type),
DIMENSION(:),
OPTIONAL,
POINTER :: rhoz_set
597 LOGICAL,
OPTIONAL :: do_kpoints, has_unit_metric, &
601 TYPE(
cp_fm_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mo_loc_history
602 INTEGER,
OPTIONAL :: nkind, natom, nelectron_total
603 INTEGER,
DIMENSION(2),
OPTIONAL :: nelectron_spin
605 INTEGER,
OPTIONAL :: neighbor_list_id
611 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: outer_scf_history
612 INTEGER,
INTENT(out),
OPTIONAL :: outer_scf_ihistory
613 TYPE(
hfx_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: x_data
616 OPTIONAL,
POINTER :: dftb_potential
622 TYPE(
admm_type),
OPTIONAL,
POINTER :: admm_env
631 TYPE(
qs_rho_type),
OPTIONAL,
POINTER :: rho_external
633 TYPE(
mp2_type),
OPTIONAL,
POINTER :: mp2_env
638 OPTIONAL,
POINTER :: wanniercentres
641 LOGICAL,
OPTIONAL :: do_transport
644 LOGICAL,
OPTIONAL :: s_mstruct_changed, rho_changed, &
645 potential_changed, forces_up_to_date
649 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: gradient_history, variable_history
650 TYPE(
pw_r3d_rs_type),
OPTIONAL,
POINTER :: embed_pot, spin_embed_pot
652 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos_last_converged
653 REAL(kind=
dp),
DIMENSION(:),
OPTIONAL,
POINTER :: eeq, rhs
654 LOGICAL,
OPTIONAL :: do_rixs
660 cpassert(
ASSOCIATED(qs_env%ks_env))
662 IF (
PRESENT(outer_scf_history)) outer_scf_history => qs_env%outer_scf_history
663 IF (
PRESENT(outer_scf_ihistory)) outer_scf_ihistory = qs_env%outer_scf_ihistory
664 IF (
PRESENT(gradient_history)) gradient_history => qs_env%gradient_history
665 IF (
PRESENT(variable_history)) variable_history => qs_env%variable_history
666 IF (
PRESENT(mp2_env)) mp2_env => qs_env%mp2_env
667 IF (
PRESENT(bs_env)) bs_env => qs_env%bs_env
668 IF (
PRESENT(kg_env)) kg_env => qs_env%kg_env
669 IF (
PRESENT(super_cell)) super_cell => qs_env%super_cell
670 IF (
PRESENT(qmmm)) qmmm = qs_env%qmmm
671 IF (
PRESENT(qmmm_periodic)) qmmm_periodic = qs_env%qmmm_periodic
672 IF (
PRESENT(mos)) mos => qs_env%mos
673 IF (
PRESENT(mos_last_converged)) mos_last_converged => qs_env%mos_last_converged
674 IF (
PRESENT(ewald_env)) ewald_env => qs_env%ewald_env
675 IF (
PRESENT(ewald_pw)) ewald_pw => qs_env%ewald_pw
676 IF (
PRESENT(mpools)) mpools => qs_env%mpools
677 IF (
PRESENT(scf_control)) scf_control => qs_env%scf_control
678 IF (
PRESENT(rel_control)) rel_control => qs_env%rel_control
680 IF (
PRESENT(rho_external)) rho_external => qs_env%rho_external
681 IF (
PRESENT(external_vxc)) external_vxc => qs_env%external_vxc
682 IF (
PRESENT(mask)) mask => qs_env%mask
683 IF (
PRESENT(qs_charges)) qs_charges => qs_env%qs_charges
684 IF (
PRESENT(ks_env)) ks_env => qs_env%ks_env
685 IF (
PRESENT(ks_qmmm_env)) ks_qmmm_env => qs_env%ks_qmmm_env
686 IF (
PRESENT(wf_history)) wf_history => qs_env%wf_history
687 IF (
PRESENT(scf_env)) scf_env => qs_env%scf_env
688 IF (
PRESENT(oce)) oce => qs_env%oce
689 IF (
PRESENT(requires_mo_derivs)) requires_mo_derivs = qs_env%requires_mo_derivs
690 IF (
PRESENT(has_unit_metric)) has_unit_metric = qs_env%has_unit_metric
691 IF (
PRESENT(mo_derivs)) mo_derivs => qs_env%mo_derivs
692 IF (
PRESENT(mo_loc_history)) mo_loc_history => qs_env%mo_loc_history
693 IF (
PRESENT(linres_control)) linres_control => qs_env%linres_control
694 IF (
PRESENT(se_taper)) se_taper => qs_env%se_taper
695 IF (
PRESENT(se_store_int_env)) se_store_int_env => qs_env%se_store_int_env
696 IF (
PRESENT(se_nddo_mpole)) se_nddo_mpole => qs_env%se_nddo_mpole
697 IF (
PRESENT(se_nonbond_env)) se_nonbond_env => qs_env%se_nonbond_env
698 IF (
PRESENT(lri_env)) lri_env => qs_env%lri_env
699 IF (
PRESENT(lri_density)) lri_density => qs_env%lri_density
700 IF (
PRESENT(harris_env)) harris_env => qs_env%harris_env
701 IF (
PRESENT(ec_env)) ec_env => qs_env%ec_env
702 IF (
PRESENT(exstate_env)) exstate_env => qs_env%exstate_env
703 IF (
PRESENT(dispersion_env)) dispersion_env => qs_env%dispersion_env
704 IF (
PRESENT(gcp_env)) gcp_env => qs_env%gcp_env
705 IF (
PRESENT(run_rtp)) run_rtp = qs_env%run_rtp
706 IF (
PRESENT(rtp)) rtp => qs_env%rtp
707 IF (
PRESENT(ls_scf_env)) ls_scf_env => qs_env%ls_scf_env
708 IF (
PRESENT(almo_scf_env)) almo_scf_env => qs_env%almo_scf_env
709 IF (
PRESENT(do_transport)) do_transport = qs_env%do_transport
710 IF (
PRESENT(transport_env)) transport_env => qs_env%transport_env
711 IF (
PRESENT(mscfg_env)) mscfg_env => qs_env%molecular_scf_guess_env
712 IF (
PRESENT(active_space)) active_space => qs_env%active_space
713 IF (
PRESENT(admm_env)) admm_env => qs_env%admm_env
714 IF (
PRESENT(do_rixs)) do_rixs = qs_env%do_rixs
717 IF (
PRESENT(embed_pot)) embed_pot => qs_env%embed_pot
718 IF (
PRESENT(spin_embed_pot)) spin_embed_pot => qs_env%spin_embed_pot
721 IF (
PRESENT(polar_env)) polar_env => qs_env%polar_env
724 IF (
PRESENT(eeq)) eeq => qs_env%eeq
727 IF (
PRESENT(rhs)) rhs => qs_env%rhs
729 IF (
PRESENT(local_rho_set)) &
730 local_rho_set => qs_env%local_rho_set
731 IF (
PRESENT(rho_atom_set)) &
732 CALL get_local_rho(qs_env%local_rho_set, rho_atom_set=rho_atom_set)
733 IF (
PRESENT(rho0_atom_set)) &
734 CALL get_local_rho(qs_env%local_rho_set, rho0_atom_set=rho0_atom_set)
735 IF (
PRESENT(rho0_mpole)) &
736 CALL get_local_rho(qs_env%local_rho_set, rho0_mpole=rho0_mpole)
737 IF (
PRESENT(rhoz_set)) &
739 IF (
PRESENT(ecoul_1c)) &
741 IF (
PRESENT(rho0_s_rs))
THEN
743 IF (
ASSOCIATED(rho0_m))
THEN
744 rho0_s_rs => rho0_m%rho0_s_rs
747 IF (
PRESENT(rho0_s_gs))
THEN
749 IF (
ASSOCIATED(rho0_m))
THEN
750 rho0_s_gs => rho0_m%rho0_s_gs
754 IF (
PRESENT(xas_env)) xas_env => qs_env%xas_env
755 IF (
PRESENT(input)) input => qs_env%input
756 IF (
PRESENT(cp_ddapc_env)) cp_ddapc_env => qs_env%cp_ddapc_env
757 IF (
PRESENT(cp_ddapc_ewald)) cp_ddapc_ewald => qs_env%cp_ddapc_ewald
758 IF (
PRESENT(x_data)) x_data => qs_env%x_data
760 IF (
PRESENT(dftb_potential)) dftb_potential => qs_env%dftb_potential
761 IF (
PRESENT(efield)) efield => qs_env%efield
762 IF (
PRESENT(wanniercentres)) wanniercentres => qs_env%WannierCentres
765 v_hartree_rspace=v_hartree_rspace, &
766 s_mstruct_changed=s_mstruct_changed, &
767 rho_changed=rho_changed, &
768 potential_changed=potential_changed, &
769 forces_up_to_date=forces_up_to_date, &
771 matrix_h_im=matrix_h_im, &
772 matrix_ks=matrix_ks, &
773 matrix_ks_im=matrix_ks_im, &
774 matrix_vxc=matrix_vxc, &
777 matrix_s_ri_aux=matrix_s_ri_aux, &
778 matrix_ks_im_kp=matrix_ks_im_kp, &
780 matrix_p_mp2=matrix_p_mp2, &
781 matrix_p_mp2_admm=matrix_p_mp2_admm, &
782 matrix_h_kp=matrix_h_kp, &
783 matrix_h_im_kp=matrix_h_im_kp, &
784 matrix_ks_kp=matrix_ks_kp, &
785 matrix_vxc_kp=matrix_vxc_kp, &
786 kinetic_kp=kinetic_kp, &
787 matrix_s_kp=matrix_s_kp, &
788 matrix_w_kp=matrix_w_kp, &
789 matrix_s_ri_aux_kp=matrix_s_ri_aux_kp, &
794 rho_nlcc_g=rho_nlcc_g, &
797 neighbor_list_id=neighbor_list_id, &
813 sab_xtb_pp=sab_xtb_pp, &
814 sab_xtb_nonbond=sab_xtb_nonbond, &
817 sab_kp_nosym=sab_kp_nosym, &
818 task_list=task_list, &
819 task_list_soft=task_list_soft, &
821 do_kpoints=do_kpoints, &
822 local_molecules=local_molecules, &
823 local_particles=local_particles, &
829 use_ref_cell=use_ref_cell, &
832 qs_kind_set=qs_kind_set, &
834 cp_subsys=cp_subsys, &
835 atomic_kind_set=atomic_kind_set, &
836 particle_set=particle_set, &
837 molecule_kind_set=molecule_kind_set, &
838 molecule_set=molecule_set, &
841 dft_control=dft_control, &
842 dbcsr_dist=dbcsr_dist, &
843 distribution_2d=distribution_2d, &
846 blacs_env=blacs_env, &
847 nelectron_total=nelectron_total, &
848 nelectron_spin=nelectron_spin)
850 IF (
PRESENT(tb_tblite)) tb_tblite => qs_env%tb_tblite
862 SUBROUTINE init_qs_env(qs_env, globenv)
867 NULLIFY (qs_env%ls_scf_env)
868 NULLIFY (qs_env%almo_scf_env)
869 NULLIFY (qs_env%transport_env)
870 NULLIFY (qs_env%image_matrix)
871 NULLIFY (qs_env%ipiv)
872 NULLIFY (qs_env%image_coeff)
873 NULLIFY (qs_env%super_cell)
875 NULLIFY (qs_env%mos_last_converged)
876 NULLIFY (qs_env%mpools)
877 NULLIFY (qs_env%ewald_env)
878 NULLIFY (qs_env%ewald_pw)
879 NULLIFY (qs_env%scf_control)
880 NULLIFY (qs_env%rel_control)
881 NULLIFY (qs_env%qs_charges)
883 NULLIFY (qs_env%rho_external)
884 NULLIFY (qs_env%external_vxc)
885 NULLIFY (qs_env%mask)
887 NULLIFY (qs_env%embed_pot)
888 NULLIFY (qs_env%spin_embed_pot)
891 NULLIFY (qs_env%polar_env)
893 NULLIFY (qs_env%ks_env)
894 NULLIFY (qs_env%ks_qmmm_env)
895 NULLIFY (qs_env%wf_history)
896 NULLIFY (qs_env%scf_env)
898 NULLIFY (qs_env%local_rho_set)
899 NULLIFY (qs_env%hartree_local)
900 NULLIFY (qs_env%input)
901 NULLIFY (qs_env%linres_control)
902 NULLIFY (qs_env%xas_env)
903 NULLIFY (qs_env%cp_ddapc_env)
904 NULLIFY (qs_env%cp_ddapc_ewald)
905 NULLIFY (qs_env%outer_scf_history)
906 NULLIFY (qs_env%gradient_history)
907 NULLIFY (qs_env%variable_history)
908 NULLIFY (qs_env%x_data)
909 NULLIFY (qs_env%et_coupling)
910 NULLIFY (qs_env%dftb_potential)
911 NULLIFY (qs_env%active_space)
913 NULLIFY (qs_env%se_taper)
914 NULLIFY (qs_env%se_store_int_env)
915 NULLIFY (qs_env%se_nddo_mpole)
916 NULLIFY (qs_env%se_nonbond_env)
917 NULLIFY (qs_env%admm_env)
918 NULLIFY (qs_env%efield)
919 NULLIFY (qs_env%lri_env)
920 NULLIFY (qs_env%harris_env)
921 NULLIFY (qs_env%ec_env)
922 NULLIFY (qs_env%exstate_env)
923 NULLIFY (qs_env%lri_density)
924 NULLIFY (qs_env%gcp_env)
926 NULLIFY (qs_env%mp2_env)
927 NULLIFY (qs_env%bs_env)
928 NULLIFY (qs_env%kg_env)
929 NULLIFY (qs_env%WannierCentres)
931 qs_env%outer_scf_ihistory = 0
932 qs_env%broyden_adaptive_sigma = -1.0_dp
936 qs_env%run_rtp = .false.
937 qs_env%linres_run = .false.
938 qs_env%single_point_run = .false.
939 qs_env%qmmm = .false.
940 qs_env%qmmm_periodic = .false.
941 qs_env%requires_mo_derivs = .false.
942 qs_env%requires_matrix_vxc = .false.
943 qs_env%has_unit_metric = .false.
944 qs_env%calc_image_preconditioner = .true.
945 qs_env%do_transport = .false.
946 qs_env%given_embed_pot = .false.
947 qs_env%do_rixs = .false.
948 IF (
PRESENT(globenv))
THEN
949 qs_env%target_time = globenv%cp2k_target_time
950 qs_env%start_time = globenv%cp2k_start_time
951 qs_env%single_point_run = (globenv%run_type_id ==
energy_run .OR. &
954 qs_env%target_time = 0.0_dp
955 qs_env%start_time = 0.0_dp
958 qs_env%sim_time = 0._dp
961 qs_env%total_zeff_corr = 0.0_dp
962 qs_env%surface_dipole_moment = 0.0_dp
963 qs_env%surface_dipole_switch_off = .false.
966 NULLIFY (qs_env%mo_derivs)
967 NULLIFY (qs_env%mo_loc_history)
969 IF (.NOT.
ASSOCIATED(qs_env%molecular_scf_guess_env))
ALLOCATE (qs_env%molecular_scf_guess_env)
971 NULLIFY (qs_env%tb_tblite)
973 END SUBROUTINE init_qs_env
1057 mos, qmmm, qmmm_periodic, &
1058 ewald_env, ewald_pw, mpools, &
1059 rho_external, external_vxc, mask, &
1060 scf_control, rel_control, qs_charges, ks_env, &
1061 ks_qmmm_env, wf_history, scf_env, active_space, &
1062 input, oce, rho_atom_set, rho0_atom_set, rho0_mpole, run_rtp, rtp, &
1063 rhoz_set, rhoz_tot, ecoul_1c, has_unit_metric, requires_mo_derivs, mo_derivs, &
1064 mo_loc_history, efield, &
1065 linres_control, xas_env, cp_ddapc_env, cp_ddapc_ewald, &
1066 outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, &
1067 se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, ls_scf_env, &
1068 do_transport, transport_env, lri_env, lri_density, exstate_env, ec_env, dispersion_env, &
1069 harris_env, gcp_env, mp2_env, bs_env, kg_env, force, &
1070 kpoints, WannierCentres, almo_scf_env, gradient_history, variable_history, embed_pot, &
1071 spin_embed_pot, polar_env, mos_last_converged, eeq, rhs, do_rixs, tb_tblite)
1074 TYPE(
cell_type),
OPTIONAL,
POINTER :: super_cell
1075 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos
1076 LOGICAL,
OPTIONAL :: qmmm, qmmm_periodic
1080 TYPE(
qs_rho_type),
OPTIONAL,
POINTER :: rho_external
1093 POINTER :: rho_atom_set
1095 POINTER :: rho0_atom_set
1097 LOGICAL,
OPTIONAL :: run_rtp
1099 TYPE(
rhoz_type),
DIMENSION(:),
OPTIONAL,
POINTER :: rhoz_set
1100 REAL(
dp),
OPTIONAL :: rhoz_tot
1103 LOGICAL,
OPTIONAL :: has_unit_metric, requires_mo_derivs
1105 POINTER :: mo_derivs
1106 TYPE(
cp_fm_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mo_loc_history
1112 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: outer_scf_history
1113 INTEGER,
INTENT(IN),
OPTIONAL :: outer_scf_ihistory
1114 TYPE(
hfx_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: x_data
1117 OPTIONAL,
POINTER :: dftb_potential
1122 TYPE(
admm_type),
OPTIONAL,
POINTER :: admm_env
1124 LOGICAL,
OPTIONAL :: do_transport
1131 TYPE(
harris_type),
OPTIONAL,
POINTER :: harris_env
1133 TYPE(
mp2_type),
OPTIONAL,
POINTER :: mp2_env
1141 OPTIONAL,
POINTER :: wanniercentres
1143 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: gradient_history, variable_history
1144 TYPE(
pw_r3d_rs_type),
OPTIONAL,
POINTER :: embed_pot, spin_embed_pot
1146 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos_last_converged
1147 REAL(kind=
dp),
DIMENSION(:),
OPTIONAL,
POINTER :: eeq, rhs
1148 LOGICAL,
OPTIONAL :: do_rixs
1153 IF (
PRESENT(mp2_env)) qs_env%mp2_env => mp2_env
1154 IF (
PRESENT(bs_env)) qs_env%bs_env => bs_env
1155 IF (
PRESENT(kg_env)) qs_env%kg_env => kg_env
1156 IF (
PRESENT(super_cell))
THEN
1159 qs_env%super_cell => super_cell
1162 IF (
PRESENT(qmmm)) qs_env%qmmm = qmmm
1163 IF (
PRESENT(qmmm_periodic)) qs_env%qmmm_periodic = qmmm_periodic
1164 IF (
PRESENT(mos)) qs_env%mos => mos
1165 IF (
PRESENT(mos_last_converged)) qs_env%mos_last_converged => mos_last_converged
1166 IF (
PRESENT(ls_scf_env)) qs_env%ls_scf_env => ls_scf_env
1167 IF (
PRESENT(almo_scf_env)) qs_env%almo_scf_env => almo_scf_env
1168 IF (
PRESENT(do_transport)) qs_env%do_transport = do_transport
1169 IF (
PRESENT(transport_env)) qs_env%transport_env => transport_env
1172 IF (
PRESENT(oce)) qs_env%oce => oce
1173 IF (
PRESENT(outer_scf_history)) qs_env%outer_scf_history => outer_scf_history
1174 IF (
PRESENT(gradient_history)) qs_env%gradient_history => gradient_history
1175 IF (
PRESENT(variable_history)) qs_env%variable_history => variable_history
1176 IF (
PRESENT(outer_scf_ihistory)) qs_env%outer_scf_ihistory = outer_scf_ihistory
1177 IF (
PRESENT(requires_mo_derivs)) qs_env%requires_mo_derivs = requires_mo_derivs
1178 IF (
PRESENT(has_unit_metric)) qs_env%has_unit_metric = has_unit_metric
1179 IF (
PRESENT(mo_derivs)) qs_env%mo_derivs => mo_derivs
1180 IF (
PRESENT(mo_loc_history)) qs_env%mo_loc_history => mo_loc_history
1181 IF (
PRESENT(run_rtp)) qs_env%run_rtp = run_rtp
1182 IF (
PRESENT(rtp)) qs_env%rtp => rtp
1183 IF (
PRESENT(efield)) qs_env%efield => efield
1184 IF (
PRESENT(active_space)) qs_env%active_space => active_space
1185 IF (
PRESENT(do_rixs)) do_rixs = qs_env%do_rixs
1187 IF (
PRESENT(ewald_env))
THEN
1188 IF (
ASSOCIATED(qs_env%ewald_env))
THEN
1189 IF (.NOT.
ASSOCIATED(qs_env%ewald_env, ewald_env))
THEN
1191 DEALLOCATE (qs_env%ewald_env)
1194 qs_env%ewald_env => ewald_env
1196 IF (
PRESENT(ewald_pw))
THEN
1197 IF (
ASSOCIATED(qs_env%ewald_pw))
THEN
1198 IF (.NOT.
ASSOCIATED(ewald_pw, qs_env%ewald_pw))
THEN
1200 DEALLOCATE (qs_env%ewald_pw)
1203 qs_env%ewald_pw => ewald_pw
1205 IF (
PRESENT(scf_control))
THEN
1206 IF (
ASSOCIATED(qs_env%scf_control))
THEN
1207 IF (.NOT.
ASSOCIATED(qs_env%scf_control, scf_control))
THEN
1209 DEALLOCATE (qs_env%scf_control)
1212 qs_env%scf_control => scf_control
1214 IF (
PRESENT(rel_control))
THEN
1215 IF (
ASSOCIATED(qs_env%rel_control))
THEN
1216 IF (.NOT.
ASSOCIATED(qs_env%rel_control, rel_control))
THEN
1218 DEALLOCATE (qs_env%rel_control)
1221 qs_env%rel_control => rel_control
1223 IF (
PRESENT(linres_control))
THEN
1224 IF (
ASSOCIATED(qs_env%linres_control))
THEN
1225 IF (.NOT.
ASSOCIATED(qs_env%linres_control, linres_control))
THEN
1227 DEALLOCATE (qs_env%linres_control)
1230 qs_env%linres_control => linres_control
1233 IF (
PRESENT(rho_external))
THEN
1234 IF (
ASSOCIATED(qs_env%rho_external))
THEN
1235 IF (.NOT.
ASSOCIATED(qs_env%rho_external, rho_external))
THEN
1237 DEALLOCATE (qs_env%rho_external)
1240 qs_env%rho_external => rho_external
1242 IF (
PRESENT(external_vxc)) qs_env%external_vxc => external_vxc
1243 IF (
PRESENT(mask)) qs_env%mask => mask
1245 IF (
PRESENT(embed_pot)) qs_env%embed_pot => embed_pot
1246 IF (
PRESENT(spin_embed_pot)) qs_env%spin_embed_pot => spin_embed_pot
1249 IF (
PRESENT(polar_env)) qs_env%polar_env => polar_env
1251 IF (
PRESENT(qs_charges))
THEN
1252 IF (
ASSOCIATED(qs_env%qs_charges))
THEN
1253 IF (.NOT.
ASSOCIATED(qs_env%qs_charges, qs_charges))
THEN
1255 DEALLOCATE (qs_env%qs_charges)
1258 qs_env%qs_charges => qs_charges
1260 IF (
PRESENT(ks_qmmm_env))
THEN
1261 IF (
ASSOCIATED(qs_env%ks_qmmm_env))
THEN
1262 IF (.NOT.
ASSOCIATED(qs_env%ks_qmmm_env, ks_qmmm_env))
THEN
1264 DEALLOCATE (qs_env%ks_qmmm_env)
1267 qs_env%ks_qmmm_env => ks_qmmm_env
1269 IF (
PRESENT(ks_env))
THEN
1270 IF (
ASSOCIATED(qs_env%ks_env))
THEN
1271 IF (.NOT.
ASSOCIATED(qs_env%ks_env, ks_env))
THEN
1273 DEALLOCATE (qs_env%ks_env)
1276 qs_env%ks_env => ks_env
1278 IF (
PRESENT(wf_history))
THEN
1281 qs_env%wf_history => wf_history
1283 IF (
PRESENT(scf_env))
THEN
1284 IF (
ASSOCIATED(qs_env%scf_env))
THEN
1285 IF (.NOT.
ASSOCIATED(qs_env%scf_env, scf_env))
THEN
1287 DEALLOCATE (qs_env%scf_env)
1290 qs_env%scf_env => scf_env
1292 IF (
PRESENT(xas_env))
THEN
1293 IF (
ASSOCIATED(qs_env%xas_env))
THEN
1294 IF (.NOT.
ASSOCIATED(qs_env%xas_env, xas_env))
THEN
1296 DEALLOCATE (qs_env%xas_env)
1299 qs_env%xas_env => xas_env
1301 IF (
PRESENT(mpools))
THEN
1304 qs_env%mpools => mpools
1306 IF (
PRESENT(rho_atom_set))
THEN
1307 CALL set_local_rho(qs_env%local_rho_set, rho_atom_set=rho_atom_set)
1309 IF (
PRESENT(rho0_atom_set))
THEN
1310 CALL set_local_rho(qs_env%local_rho_set, rho0_atom_set=rho0_atom_set)
1312 IF (
PRESENT(rho0_mpole))
THEN
1313 CALL set_local_rho(qs_env%local_rho_set, rho0_mpole=rho0_mpole)
1315 IF (
PRESENT(rhoz_set))
THEN
1318 IF (
PRESENT(rhoz_tot)) qs_env%local_rho_set%rhoz_tot = rhoz_tot
1319 IF (
PRESENT(ecoul_1c))
THEN
1322 IF (
PRESENT(input))
THEN
1325 qs_env%input => input
1327 IF (
PRESENT(cp_ddapc_env))
THEN
1328 IF (
ASSOCIATED(qs_env%cp_ddapc_env))
THEN
1329 IF (.NOT.
ASSOCIATED(qs_env%cp_ddapc_env, cp_ddapc_env))
THEN
1331 DEALLOCATE (qs_env%cp_ddapc_env)
1334 qs_env%cp_ddapc_env => cp_ddapc_env
1336 IF (
PRESENT(cp_ddapc_ewald))
THEN
1337 qs_env%cp_ddapc_ewald => cp_ddapc_ewald
1339 IF (
PRESENT(x_data)) qs_env%x_data => x_data
1341 IF (
PRESENT(dftb_potential)) qs_env%dftb_potential => dftb_potential
1342 IF (
PRESENT(se_taper))
THEN
1344 qs_env%se_taper => se_taper
1346 IF (
PRESENT(se_store_int_env))
THEN
1348 qs_env%se_store_int_env => se_store_int_env
1350 IF (
PRESENT(se_nddo_mpole))
THEN
1352 qs_env%se_nddo_mpole => se_nddo_mpole
1354 IF (
PRESENT(se_nonbond_env))
THEN
1355 IF (
ASSOCIATED(qs_env%se_nonbond_env))
THEN
1356 IF (.NOT.
ASSOCIATED(qs_env%se_nonbond_env, se_nonbond_env))
THEN
1358 DEALLOCATE (qs_env%se_nonbond_env)
1361 qs_env%se_nonbond_env => se_nonbond_env
1363 IF (
PRESENT(admm_env)) qs_env%admm_env => admm_env
1364 IF (
PRESENT(lri_env)) qs_env%lri_env => lri_env
1365 IF (
PRESENT(lri_density)) qs_env%lri_density => lri_density
1366 IF (
PRESENT(harris_env)) qs_env%harris_env => harris_env
1367 IF (
PRESENT(ec_env)) qs_env%ec_env => ec_env
1368 IF (
PRESENT(exstate_env)) qs_env%exstate_env => exstate_env
1369 IF (
PRESENT(dispersion_env)) qs_env%dispersion_env => dispersion_env
1370 IF (
PRESENT(gcp_env)) qs_env%gcp_env => gcp_env
1371 IF (
PRESENT(wanniercentres)) qs_env%WannierCentres => wanniercentres
1372 IF (
PRESENT(kpoints))
CALL set_ks_env(qs_env%ks_env, kpoints=kpoints)
1375 IF (
PRESENT(eeq)) qs_env%eeq => eeq
1378 IF (
PRESENT(rhs)) qs_env%rhs => rhs
1380 IF (
PRESENT(force))
THEN
1385 IF (
PRESENT(tb_tblite)) qs_env%tb_tblite => tb_tblite
1401 CALL init_qs_env(qs_env, globenv=globenv)
1418 IF (
ASSOCIATED(qs_env%mos))
THEN
1419 DO i = 1,
SIZE(qs_env%mos)
1422 DEALLOCATE (qs_env%mos)
1424 IF (
ASSOCIATED(qs_env%mos_last_converged))
THEN
1425 DO i = 1,
SIZE(qs_env%mos_last_converged)
1428 DEALLOCATE (qs_env%mos_last_converged)
1431 IF (
ASSOCIATED(qs_env%mo_derivs))
THEN
1432 DO i = 1,
SIZE(qs_env%mo_derivs)
1435 DEALLOCATE (qs_env%mo_derivs)
1440 IF (
ASSOCIATED(qs_env%rtp))
THEN
1442 DEALLOCATE (qs_env%rtp)
1444 IF (
ASSOCIATED(qs_env%outer_scf_history))
THEN
1445 DEALLOCATE (qs_env%outer_scf_history)
1446 qs_env%outer_scf_ihistory = 0
1448 IF (
ASSOCIATED(qs_env%gradient_history)) &
1449 DEALLOCATE (qs_env%gradient_history)
1450 IF (
ASSOCIATED(qs_env%variable_history)) &
1451 DEALLOCATE (qs_env%variable_history)
1453 IF (
ASSOCIATED(qs_env%local_rho_set))
THEN
1456 IF (
ASSOCIATED(qs_env%hartree_local))
THEN
1459 IF (
ASSOCIATED(qs_env%scf_control))
THEN
1461 DEALLOCATE (qs_env%scf_control)
1463 IF (
ASSOCIATED(qs_env%rel_control))
THEN
1465 DEALLOCATE (qs_env%rel_control)
1468 IF (
ASSOCIATED(qs_env%linres_control))
THEN
1470 DEALLOCATE (qs_env%linres_control)
1473 IF (
ASSOCIATED(qs_env%almo_scf_env))
THEN
1477 IF (
ASSOCIATED(qs_env%ls_scf_env))
THEN
1480 IF (
ASSOCIATED(qs_env%molecular_scf_guess_env))
THEN
1482 DEALLOCATE (qs_env%molecular_scf_guess_env)
1485 IF (
ASSOCIATED(qs_env%transport_env))
THEN
1490 IF (
ASSOCIATED(qs_env%xas_env))
THEN
1492 DEALLOCATE (qs_env%xas_env)
1494 IF (
ASSOCIATED(qs_env%ewald_env))
THEN
1496 DEALLOCATE (qs_env%ewald_env)
1498 IF (
ASSOCIATED(qs_env%ewald_pw))
THEN
1500 DEALLOCATE (qs_env%ewald_pw)
1502 IF (
ASSOCIATED(qs_env%image_matrix))
THEN
1503 DEALLOCATE (qs_env%image_matrix)
1505 IF (
ASSOCIATED(qs_env%ipiv))
THEN
1506 DEALLOCATE (qs_env%ipiv)
1508 IF (
ASSOCIATED(qs_env%image_coeff))
THEN
1509 DEALLOCATE (qs_env%image_coeff)
1512 IF (
ASSOCIATED(qs_env%rho_external))
THEN
1514 DEALLOCATE (qs_env%rho_external)
1516 IF (
ASSOCIATED(qs_env%external_vxc))
THEN
1517 CALL qs_env%external_vxc%release()
1518 DEALLOCATE (qs_env%external_vxc)
1520 IF (
ASSOCIATED(qs_env%mask))
THEN
1521 CALL qs_env%mask%release()
1522 DEALLOCATE (qs_env%mask)
1524 IF (
ASSOCIATED(qs_env%active_space))
THEN
1528 IF (qs_env%given_embed_pot)
THEN
1529 CALL qs_env%embed_pot%release()
1530 DEALLOCATE (qs_env%embed_pot)
1531 IF (
ASSOCIATED(qs_env%spin_embed_pot))
THEN
1532 CALL qs_env%spin_embed_pot%release()
1533 DEALLOCATE (qs_env%spin_embed_pot)
1540 IF (
ASSOCIATED(qs_env%qs_charges))
THEN
1542 DEALLOCATE (qs_env%qs_charges)
1544 IF (
ASSOCIATED(qs_env%ks_env))
THEN
1546 DEALLOCATE (qs_env%ks_env)
1548 IF (
ASSOCIATED(qs_env%ks_qmmm_env))
THEN
1550 DEALLOCATE (qs_env%ks_qmmm_env)
1553 IF (
ASSOCIATED(qs_env%scf_env))
THEN
1555 DEALLOCATE (qs_env%scf_env)
1559 IF (
ASSOCIATED(qs_env%cp_ddapc_env))
THEN
1561 DEALLOCATE (qs_env%cp_ddapc_env)
1565 IF (
ASSOCIATED(qs_env%x_data))
THEN
1568 IF (
ASSOCIATED(qs_env%et_coupling))
THEN
1571 IF (
ASSOCIATED(qs_env%dftb_potential))
THEN
1574 IF (
ASSOCIATED(qs_env%se_taper))
THEN
1577 IF (
ASSOCIATED(qs_env%se_store_int_env))
THEN
1580 IF (
ASSOCIATED(qs_env%se_nddo_mpole))
THEN
1583 IF (
ASSOCIATED(qs_env%se_nonbond_env))
THEN
1585 DEALLOCATE (qs_env%se_nonbond_env)
1587 IF (
ASSOCIATED(qs_env%admm_env))
THEN
1590 IF (
ASSOCIATED(qs_env%lri_env))
THEN
1592 DEALLOCATE (qs_env%lri_env)
1594 IF (
ASSOCIATED(qs_env%lri_density))
THEN
1596 DEALLOCATE (qs_env%lri_density)
1598 IF (
ASSOCIATED(qs_env%harris_env))
THEN
1601 IF (
ASSOCIATED(qs_env%ec_env))
THEN
1604 IF (
ASSOCIATED(qs_env%exstate_env))
THEN
1607 IF (
ASSOCIATED(qs_env%mp2_env))
THEN
1609 DEALLOCATE (qs_env%mp2_env)
1610 NULLIFY (qs_env%mp2_env)
1612 IF (
ASSOCIATED(qs_env%bs_env))
THEN
1615 IF (
ASSOCIATED(qs_env%kg_env))
THEN
1622 IF (
ASSOCIATED(qs_env%gcp_env))
THEN
1626 IF (
ASSOCIATED(qs_env%WannierCentres))
THEN
1627 DO i = 1,
SIZE(qs_env%WannierCentres)
1628 DEALLOCATE (qs_env%WannierCentres(i)%WannierHamDiag)
1629 DEALLOCATE (qs_env%WannierCentres(i)%centres)
1631 DEALLOCATE (qs_env%WannierCentres)
1634 IF (
ASSOCIATED(qs_env%eeq))
DEALLOCATE (qs_env%eeq)
1636 IF (
ASSOCIATED(qs_env%rhs))
DEALLOCATE (qs_env%rhs)
1639 IF (
ASSOCIATED(qs_env%tb_tblite))
THEN
1656 IF (
ASSOCIATED(qs_env%mos_last_converged))
THEN
1657 DO i = 1,
SIZE(qs_env%mos_last_converged)
1660 DEALLOCATE (qs_env%mos_last_converged)
1663 IF (
ASSOCIATED(qs_env%mo_derivs))
THEN
1664 DO i = 1,
SIZE(qs_env%mo_derivs)
1667 DEALLOCATE (qs_env%mo_derivs)
1672 IF (
ASSOCIATED(qs_env%rtp))
THEN
1674 DEALLOCATE (qs_env%rtp)
1676 IF (
ASSOCIATED(qs_env%outer_scf_history))
THEN
1677 DEALLOCATE (qs_env%outer_scf_history)
1678 qs_env%outer_scf_ihistory = 0
1680 IF (
ASSOCIATED(qs_env%gradient_history)) &
1681 DEALLOCATE (qs_env%gradient_history)
1682 IF (
ASSOCIATED(qs_env%variable_history)) &
1683 DEALLOCATE (qs_env%variable_history)
1685 IF (
ASSOCIATED(qs_env%local_rho_set))
THEN
1688 IF (
ASSOCIATED(qs_env%hartree_local))
THEN
1691 IF (
ASSOCIATED(qs_env%scf_control))
THEN
1693 DEALLOCATE (qs_env%scf_control)
1695 IF (
ASSOCIATED(qs_env%rel_control))
THEN
1697 DEALLOCATE (qs_env%rel_control)
1700 IF (
ASSOCIATED(qs_env%linres_control))
THEN
1702 DEALLOCATE (qs_env%linres_control)
1705 IF (
ASSOCIATED(qs_env%almo_scf_env))
THEN
1709 IF (
ASSOCIATED(qs_env%ls_scf_env))
THEN
1712 IF (
ASSOCIATED(qs_env%molecular_scf_guess_env))
THEN
1714 DEALLOCATE (qs_env%molecular_scf_guess_env)
1717 IF (
ASSOCIATED(qs_env%transport_env))
THEN
1722 IF (
ASSOCIATED(qs_env%xas_env))
THEN
1724 DEALLOCATE (qs_env%xas_env)
1726 IF (
ASSOCIATED(qs_env%ewald_env))
THEN
1728 DEALLOCATE (qs_env%ewald_env)
1730 IF (
ASSOCIATED(qs_env%ewald_pw))
THEN
1732 DEALLOCATE (qs_env%ewald_pw)
1734 IF (
ASSOCIATED(qs_env%image_matrix))
THEN
1735 DEALLOCATE (qs_env%image_matrix)
1737 IF (
ASSOCIATED(qs_env%ipiv))
THEN
1738 DEALLOCATE (qs_env%ipiv)
1740 IF (
ASSOCIATED(qs_env%image_coeff))
THEN
1741 DEALLOCATE (qs_env%image_coeff)
1744 IF (
ASSOCIATED(qs_env%rho_external))
THEN
1746 DEALLOCATE (qs_env%rho_external)
1748 IF (
ASSOCIATED(qs_env%external_vxc))
THEN
1749 CALL qs_env%external_vxc%release()
1750 DEALLOCATE (qs_env%external_vxc)
1752 IF (
ASSOCIATED(qs_env%mask))
THEN
1753 CALL qs_env%mask%release()
1754 DEALLOCATE (qs_env%mask)
1756 IF (
ASSOCIATED(qs_env%active_space))
THEN
1760 IF (qs_env%given_embed_pot)
THEN
1761 CALL qs_env%embed_pot%release()
1762 DEALLOCATE (qs_env%embed_pot)
1763 IF (
ASSOCIATED(qs_env%spin_embed_pot))
THEN
1764 CALL qs_env%spin_embed_pot%release()
1765 DEALLOCATE (qs_env%spin_embed_pot)
1772 IF (
ASSOCIATED(qs_env%qs_charges))
THEN
1774 DEALLOCATE (qs_env%qs_charges)
1777 IF (
ASSOCIATED(qs_env%ks_qmmm_env))
THEN
1779 DEALLOCATE (qs_env%ks_qmmm_env)
1782 IF (
ASSOCIATED(qs_env%scf_env))
THEN
1784 DEALLOCATE (qs_env%scf_env)
1786 IF (
ASSOCIATED(qs_env%cp_ddapc_env))
THEN
1788 DEALLOCATE (qs_env%cp_ddapc_env)
1792 IF (
ASSOCIATED(qs_env%x_data))
THEN
1795 IF (
ASSOCIATED(qs_env%et_coupling))
THEN
1798 IF (
ASSOCIATED(qs_env%dftb_potential))
THEN
1801 IF (
ASSOCIATED(qs_env%se_taper))
THEN
1804 IF (
ASSOCIATED(qs_env%se_store_int_env))
THEN
1807 IF (
ASSOCIATED(qs_env%se_nddo_mpole))
THEN
1810 IF (
ASSOCIATED(qs_env%se_nonbond_env))
THEN
1812 DEALLOCATE (qs_env%se_nonbond_env)
1814 IF (
ASSOCIATED(qs_env%admm_env))
THEN
1817 IF (
ASSOCIATED(qs_env%lri_env))
THEN
1819 DEALLOCATE (qs_env%lri_env)
1821 IF (
ASSOCIATED(qs_env%lri_density))
THEN
1823 DEALLOCATE (qs_env%lri_density)
1825 IF (
ASSOCIATED(qs_env%harris_env))
THEN
1828 IF (
ASSOCIATED(qs_env%ec_env))
THEN
1831 IF (
ASSOCIATED(qs_env%exstate_env))
THEN
1834 IF (
ASSOCIATED(qs_env%mp2_env))
THEN
1836 DEALLOCATE (qs_env%mp2_env)
1837 NULLIFY (qs_env%mp2_env)
1839 IF (
ASSOCIATED(qs_env%kg_env))
THEN
1846 IF (
ASSOCIATED(qs_env%gcp_env))
THEN
1850 IF (
ASSOCIATED(qs_env%WannierCentres))
THEN
1851 DO i = 1,
SIZE(qs_env%WannierCentres)
1852 DEALLOCATE (qs_env%WannierCentres(i)%WannierHamDiag)
1853 DEALLOCATE (qs_env%WannierCentres(i)%centres)
1855 DEALLOCATE (qs_env%WannierCentres)
1858 IF (
ASSOCIATED(qs_env%eeq))
DEALLOCATE (qs_env%eeq)
1860 IF (
ASSOCIATED(qs_env%rhs))
DEALLOCATE (qs_env%rhs)
1863 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)
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, 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, 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, ecoul_1c, rho0_s_rs, rho0_s_gs, do_kpoints, has_unit_metric, requires_mo_derivs, mo_derivs, mo_loc_history, nkind, natom, nelectron_total, nelectron_spin, efield, neighbor_list_id, linres_control, xas_env, virial, cp_ddapc_env, cp_ddapc_ewald, outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, results, se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, lri_env, lri_density, exstate_env, ec_env, harris_env, dispersion_env, gcp_env, vee, rho_external, external_vxc, mask, mp2_env, bs_env, kg_env, wanniercentres, atprop, ls_scf_env, do_transport, transport_env, v_hartree_rspace, s_mstruct_changed, rho_changed, potential_changed, forces_up_to_date, mscfg_env, almo_scf_env, gradient_history, variable_history, embed_pot, spin_embed_pot, polar_env, mos_last_converged, eeq, rhs, do_rixs, tb_tblite)
Get the QUICKSTEP environment.
subroutine, public set_qs_env(qs_env, super_cell, mos, qmmm, qmmm_periodic, ewald_env, ewald_pw, mpools, rho_external, external_vxc, mask, scf_control, rel_control, qs_charges, ks_env, ks_qmmm_env, wf_history, scf_env, active_space, input, oce, rho_atom_set, rho0_atom_set, rho0_mpole, run_rtp, rtp, rhoz_set, rhoz_tot, ecoul_1c, has_unit_metric, requires_mo_derivs, mo_derivs, mo_loc_history, efield, linres_control, xas_env, cp_ddapc_env, cp_ddapc_ewald, outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, ls_scf_env, do_transport, transport_env, lri_env, lri_density, exstate_env, ec_env, dispersion_env, harris_env, gcp_env, mp2_env, bs_env, kg_env, force, kpoints, wanniercentres, almo_scf_env, gradient_history, variable_history, embed_pot, spin_embed_pot, polar_env, mos_last_converged, eeq, rhs, do_rixs, tb_tblite)
Set the QUICKSTEP environment.
subroutine, public qs_env_part_release(qs_env)
releases part of the given qs_env in order to save memory
subroutine, public qs_env_create(qs_env, globenv)
allocates and intitializes a qs_env
Definition of gCP types for DFT calculations.
subroutine, public qs_gcp_release(gcp_env)
...
Types needed for a for a Harris model calculation.
subroutine, public harris_env_release(harris_env)
...
Define the quickstep kind type and their sub types.
subroutine, public qs_ks_qmmm_release(ks_qmmm_env)
releases the ks_qmmm_env (see doc/ReferenceCounting.html)
subroutine, public 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, 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 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, 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 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)
...
subroutine, public get_local_rho(local_rho_set, rho_atom_set, rho0_atom_set, rho0_mpole, rhoz_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.