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 REAL(kind=
dp) :: sim_time = -1.0_dp
233 REAL(kind=
dp) :: start_time = -1.0_dp, target_time = -1.0_dp
234 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: image_matrix => null()
235 REAL(kind=
dp),
DIMENSION(:),
POINTER :: image_coeff => null()
236 INTEGER,
DIMENSION(:),
POINTER :: ipiv => null()
237 INTEGER :: sim_step = -1
243 TYPE(
cp_fm_type),
DIMENSION(:),
POINTER :: mo_loc_history => null()
266 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: outer_scf_history => null()
267 INTEGER :: outer_scf_ihistory = -1
268 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: gradient_history => null(), &
269 variable_history => null()
270 TYPE(
hfx_type),
DIMENSION(:, :),
POINTER :: x_data => null()
283 LOGICAL :: excited_state = .false.
300 REAL(kind=
dp) :: broyden_adaptive_sigma = -1.0_dp
314 REAL(kind=
dp),
DIMENSION(:),
POINTER :: eeq => null()
316 REAL(kind=
dp),
DIMENSION(:),
POINTER :: rhs => null()
317 REAL(kind=
dp) :: total_zeff_corr = -1.0_dp, surface_dipole_moment = -1.0_dp
318 LOGICAL :: surface_dipole_switch_off = .false.
319 TYPE(
mo_set_type),
DIMENSION(:),
POINTER :: mos_last_converged => null()
491 SUBROUTINE get_qs_env(qs_env, atomic_kind_set, qs_kind_set, cell, super_cell, cell_ref, use_ref_cell, kpoints, &
492 dft_control, mos, sab_orb, sab_all, qmmm, qmmm_periodic, sac_ae, sac_ppl, sac_lri, &
493 sap_ppnl, sab_vdw, sab_scp, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, &
494 sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_almo, &
495 sab_kp, sab_kp_nosym, particle_set, energy, force, &
496 matrix_h, matrix_h_im, matrix_ks, matrix_ks_im, matrix_vxc, run_rtp, rtp, &
497 matrix_h_kp, matrix_h_im_kp, matrix_ks_kp, matrix_ks_im_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, &
498 matrix_w_kp, matrix_s_RI_aux_kp, matrix_s, matrix_s_RI_aux, matrix_w, &
499 matrix_p_mp2, matrix_p_mp2_admm, rho, &
500 rho_xc, pw_env, ewald_env, ewald_pw, active_space, &
501 mpools, input, para_env, blacs_env, scf_control, rel_control, kinetic, qs_charges, &
502 vppl, rho_core, rho_nlcc, rho_nlcc_g, ks_env, ks_qmmm_env, wf_history, scf_env, local_particles, &
503 local_molecules, distribution_2d, dbcsr_dist, molecule_kind_set, &
504 molecule_set, subsys, cp_subsys, oce, local_rho_set, rho_atom_set, &
505 task_list, task_list_soft, &
506 rho0_atom_set, rho0_mpole, rhoz_set, ecoul_1c, &
507 rho0_s_rs, rho0_s_gs, do_kpoints, has_unit_metric, requires_mo_derivs, mo_derivs, &
508 mo_loc_history, nkind, natom, nelectron_total, nelectron_spin, efield, &
509 neighbor_list_id, linres_control, xas_env, virial, cp_ddapc_env, cp_ddapc_ewald, &
510 outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, results, &
511 se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, &
512 lri_env, lri_density, exstate_env, ec_env, harris_env, dispersion_env, gcp_env, vee, &
513 rho_external, external_vxc, mask, mp2_env, bs_env, kg_env, &
514 WannierCentres, atprop, ls_scf_env, do_transport, transport_env, v_hartree_rspace, &
515 s_mstruct_changed, rho_changed, potential_changed, forces_up_to_date, mscfg_env, almo_scf_env, &
516 gradient_history, variable_history, embed_pot, spin_embed_pot, polar_env, mos_last_converged, &
520 POINTER :: atomic_kind_set
522 POINTER :: qs_kind_set
523 TYPE(
cell_type),
OPTIONAL,
POINTER :: cell, super_cell, cell_ref
524 LOGICAL,
OPTIONAL :: use_ref_cell
527 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos
529 OPTIONAL,
POINTER :: sab_orb, sab_all
530 LOGICAL,
OPTIONAL :: qmmm, qmmm_periodic
532 sap_ppnl, sab_vdw, sab_scp, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, &
533 sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_almo, sab_kp, sab_kp_nosym
535 POINTER :: particle_set
540 POINTER :: matrix_h, matrix_h_im, matrix_ks, &
541 matrix_ks_im, matrix_vxc
542 LOGICAL,
OPTIONAL :: run_rtp
544 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: matrix_h_kp, matrix_h_im_kp, &
545 matrix_ks_kp, matrix_ks_im_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, &
548 POINTER :: matrix_s, matrix_s_ri_aux, matrix_w, &
549 matrix_p_mp2, matrix_p_mp2_admm
550 TYPE(
qs_rho_type),
OPTIONAL,
POINTER :: rho, rho_xc
576 POINTER :: molecule_kind_set
578 POINTER :: molecule_set
584 POINTER :: rho_atom_set
585 TYPE(
task_list_type),
OPTIONAL,
POINTER :: task_list, task_list_soft
587 POINTER :: rho0_atom_set
589 TYPE(
rhoz_type),
DIMENSION(:),
OPTIONAL,
POINTER :: rhoz_set
594 LOGICAL,
OPTIONAL :: do_kpoints, has_unit_metric, &
598 TYPE(
cp_fm_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mo_loc_history
599 INTEGER,
OPTIONAL :: nkind, natom, nelectron_total
600 INTEGER,
DIMENSION(2),
OPTIONAL :: nelectron_spin
602 INTEGER,
OPTIONAL :: neighbor_list_id
608 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: outer_scf_history
609 INTEGER,
INTENT(out),
OPTIONAL :: outer_scf_ihistory
610 TYPE(
hfx_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: x_data
613 OPTIONAL,
POINTER :: dftb_potential
619 TYPE(
admm_type),
OPTIONAL,
POINTER :: admm_env
628 TYPE(
qs_rho_type),
OPTIONAL,
POINTER :: rho_external
630 TYPE(
mp2_type),
OPTIONAL,
POINTER :: mp2_env
635 OPTIONAL,
POINTER :: wanniercentres
638 LOGICAL,
OPTIONAL :: do_transport
641 LOGICAL,
OPTIONAL :: s_mstruct_changed, rho_changed, &
642 potential_changed, forces_up_to_date
646 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: gradient_history, variable_history
647 TYPE(
pw_r3d_rs_type),
OPTIONAL,
POINTER :: embed_pot, spin_embed_pot
649 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos_last_converged
650 REAL(kind=
dp),
DIMENSION(:),
OPTIONAL,
POINTER :: eeq, rhs
656 cpassert(
ASSOCIATED(qs_env%ks_env))
658 IF (
PRESENT(outer_scf_history)) outer_scf_history => qs_env%outer_scf_history
659 IF (
PRESENT(outer_scf_ihistory)) outer_scf_ihistory = qs_env%outer_scf_ihistory
660 IF (
PRESENT(gradient_history)) gradient_history => qs_env%gradient_history
661 IF (
PRESENT(variable_history)) variable_history => qs_env%variable_history
662 IF (
PRESENT(mp2_env)) mp2_env => qs_env%mp2_env
663 IF (
PRESENT(bs_env)) bs_env => qs_env%bs_env
664 IF (
PRESENT(kg_env)) kg_env => qs_env%kg_env
665 IF (
PRESENT(super_cell)) super_cell => qs_env%super_cell
666 IF (
PRESENT(qmmm)) qmmm = qs_env%qmmm
667 IF (
PRESENT(qmmm_periodic)) qmmm_periodic = qs_env%qmmm_periodic
668 IF (
PRESENT(mos)) mos => qs_env%mos
669 IF (
PRESENT(mos_last_converged)) mos_last_converged => qs_env%mos_last_converged
670 IF (
PRESENT(ewald_env)) ewald_env => qs_env%ewald_env
671 IF (
PRESENT(ewald_pw)) ewald_pw => qs_env%ewald_pw
672 IF (
PRESENT(mpools)) mpools => qs_env%mpools
673 IF (
PRESENT(scf_control)) scf_control => qs_env%scf_control
674 IF (
PRESENT(rel_control)) rel_control => qs_env%rel_control
676 IF (
PRESENT(rho_external)) rho_external => qs_env%rho_external
677 IF (
PRESENT(external_vxc)) external_vxc => qs_env%external_vxc
678 IF (
PRESENT(mask)) mask => qs_env%mask
679 IF (
PRESENT(qs_charges)) qs_charges => qs_env%qs_charges
680 IF (
PRESENT(ks_env)) ks_env => qs_env%ks_env
681 IF (
PRESENT(ks_qmmm_env)) ks_qmmm_env => qs_env%ks_qmmm_env
682 IF (
PRESENT(wf_history)) wf_history => qs_env%wf_history
683 IF (
PRESENT(scf_env)) scf_env => qs_env%scf_env
684 IF (
PRESENT(oce)) oce => qs_env%oce
685 IF (
PRESENT(requires_mo_derivs)) requires_mo_derivs = qs_env%requires_mo_derivs
686 IF (
PRESENT(has_unit_metric)) has_unit_metric = qs_env%has_unit_metric
687 IF (
PRESENT(mo_derivs)) mo_derivs => qs_env%mo_derivs
688 IF (
PRESENT(mo_loc_history)) mo_loc_history => qs_env%mo_loc_history
689 IF (
PRESENT(linres_control)) linres_control => qs_env%linres_control
690 IF (
PRESENT(se_taper)) se_taper => qs_env%se_taper
691 IF (
PRESENT(se_store_int_env)) se_store_int_env => qs_env%se_store_int_env
692 IF (
PRESENT(se_nddo_mpole)) se_nddo_mpole => qs_env%se_nddo_mpole
693 IF (
PRESENT(se_nonbond_env)) se_nonbond_env => qs_env%se_nonbond_env
694 IF (
PRESENT(lri_env)) lri_env => qs_env%lri_env
695 IF (
PRESENT(lri_density)) lri_density => qs_env%lri_density
696 IF (
PRESENT(harris_env)) harris_env => qs_env%harris_env
697 IF (
PRESENT(ec_env)) ec_env => qs_env%ec_env
698 IF (
PRESENT(exstate_env)) exstate_env => qs_env%exstate_env
699 IF (
PRESENT(dispersion_env)) dispersion_env => qs_env%dispersion_env
700 IF (
PRESENT(gcp_env)) gcp_env => qs_env%gcp_env
701 IF (
PRESENT(run_rtp)) run_rtp = qs_env%run_rtp
702 IF (
PRESENT(rtp)) rtp => qs_env%rtp
703 IF (
PRESENT(ls_scf_env)) ls_scf_env => qs_env%ls_scf_env
704 IF (
PRESENT(almo_scf_env)) almo_scf_env => qs_env%almo_scf_env
705 IF (
PRESENT(do_transport)) do_transport = qs_env%do_transport
706 IF (
PRESENT(transport_env)) transport_env => qs_env%transport_env
707 IF (
PRESENT(mscfg_env)) mscfg_env => qs_env%molecular_scf_guess_env
708 IF (
PRESENT(active_space)) active_space => qs_env%active_space
709 IF (
PRESENT(admm_env)) admm_env => qs_env%admm_env
712 IF (
PRESENT(embed_pot)) embed_pot => qs_env%embed_pot
713 IF (
PRESENT(spin_embed_pot)) spin_embed_pot => qs_env%spin_embed_pot
716 IF (
PRESENT(polar_env)) polar_env => qs_env%polar_env
719 IF (
PRESENT(eeq)) eeq => qs_env%eeq
722 IF (
PRESENT(rhs)) rhs => qs_env%rhs
724 IF (
PRESENT(local_rho_set)) &
725 local_rho_set => qs_env%local_rho_set
726 IF (
PRESENT(rho_atom_set)) &
727 CALL get_local_rho(qs_env%local_rho_set, rho_atom_set=rho_atom_set)
728 IF (
PRESENT(rho0_atom_set)) &
729 CALL get_local_rho(qs_env%local_rho_set, rho0_atom_set=rho0_atom_set)
730 IF (
PRESENT(rho0_mpole)) &
731 CALL get_local_rho(qs_env%local_rho_set, rho0_mpole=rho0_mpole)
732 IF (
PRESENT(rhoz_set)) &
734 IF (
PRESENT(ecoul_1c)) &
736 IF (
PRESENT(rho0_s_rs))
THEN
738 IF (
ASSOCIATED(rho0_m))
THEN
739 rho0_s_rs => rho0_m%rho0_s_rs
742 IF (
PRESENT(rho0_s_gs))
THEN
744 IF (
ASSOCIATED(rho0_m))
THEN
745 rho0_s_gs => rho0_m%rho0_s_gs
749 IF (
PRESENT(xas_env)) xas_env => qs_env%xas_env
750 IF (
PRESENT(input)) input => qs_env%input
751 IF (
PRESENT(cp_ddapc_env)) cp_ddapc_env => qs_env%cp_ddapc_env
752 IF (
PRESENT(cp_ddapc_ewald)) cp_ddapc_ewald => qs_env%cp_ddapc_ewald
753 IF (
PRESENT(x_data)) x_data => qs_env%x_data
755 IF (
PRESENT(dftb_potential)) dftb_potential => qs_env%dftb_potential
756 IF (
PRESENT(efield)) efield => qs_env%efield
757 IF (
PRESENT(wanniercentres)) wanniercentres => qs_env%WannierCentres
760 v_hartree_rspace=v_hartree_rspace, &
761 s_mstruct_changed=s_mstruct_changed, &
762 rho_changed=rho_changed, &
763 potential_changed=potential_changed, &
764 forces_up_to_date=forces_up_to_date, &
766 matrix_h_im=matrix_h_im, &
767 matrix_ks=matrix_ks, &
768 matrix_ks_im=matrix_ks_im, &
769 matrix_vxc=matrix_vxc, &
772 matrix_s_ri_aux=matrix_s_ri_aux, &
773 matrix_ks_im_kp=matrix_ks_im_kp, &
775 matrix_p_mp2=matrix_p_mp2, &
776 matrix_p_mp2_admm=matrix_p_mp2_admm, &
777 matrix_h_kp=matrix_h_kp, &
778 matrix_h_im_kp=matrix_h_im_kp, &
779 matrix_ks_kp=matrix_ks_kp, &
780 matrix_vxc_kp=matrix_vxc_kp, &
781 kinetic_kp=kinetic_kp, &
782 matrix_s_kp=matrix_s_kp, &
783 matrix_w_kp=matrix_w_kp, &
784 matrix_s_ri_aux_kp=matrix_s_ri_aux_kp, &
789 rho_nlcc_g=rho_nlcc_g, &
792 neighbor_list_id=neighbor_list_id, &
808 sab_xtb_pp=sab_xtb_pp, &
809 sab_xtb_nonbond=sab_xtb_nonbond, &
812 sab_kp_nosym=sab_kp_nosym, &
813 task_list=task_list, &
814 task_list_soft=task_list_soft, &
816 do_kpoints=do_kpoints, &
817 local_molecules=local_molecules, &
818 local_particles=local_particles, &
824 use_ref_cell=use_ref_cell, &
827 qs_kind_set=qs_kind_set, &
829 cp_subsys=cp_subsys, &
830 atomic_kind_set=atomic_kind_set, &
831 particle_set=particle_set, &
832 molecule_kind_set=molecule_kind_set, &
833 molecule_set=molecule_set, &
836 dft_control=dft_control, &
837 dbcsr_dist=dbcsr_dist, &
838 distribution_2d=distribution_2d, &
841 blacs_env=blacs_env, &
842 nelectron_total=nelectron_total, &
843 nelectron_spin=nelectron_spin)
845 IF (
PRESENT(tb_tblite)) tb_tblite => qs_env%tb_tblite
857 SUBROUTINE init_qs_env(qs_env, globenv)
862 NULLIFY (qs_env%ls_scf_env)
863 NULLIFY (qs_env%almo_scf_env)
864 NULLIFY (qs_env%transport_env)
865 NULLIFY (qs_env%image_matrix)
866 NULLIFY (qs_env%ipiv)
867 NULLIFY (qs_env%image_coeff)
868 NULLIFY (qs_env%super_cell)
870 NULLIFY (qs_env%mos_last_converged)
871 NULLIFY (qs_env%mpools)
872 NULLIFY (qs_env%ewald_env)
873 NULLIFY (qs_env%ewald_pw)
874 NULLIFY (qs_env%scf_control)
875 NULLIFY (qs_env%rel_control)
876 NULLIFY (qs_env%qs_charges)
878 NULLIFY (qs_env%rho_external)
879 NULLIFY (qs_env%external_vxc)
880 NULLIFY (qs_env%mask)
882 NULLIFY (qs_env%embed_pot)
883 NULLIFY (qs_env%spin_embed_pot)
886 NULLIFY (qs_env%polar_env)
888 NULLIFY (qs_env%ks_env)
889 NULLIFY (qs_env%ks_qmmm_env)
890 NULLIFY (qs_env%wf_history)
891 NULLIFY (qs_env%scf_env)
893 NULLIFY (qs_env%local_rho_set)
894 NULLIFY (qs_env%hartree_local)
895 NULLIFY (qs_env%input)
896 NULLIFY (qs_env%linres_control)
897 NULLIFY (qs_env%xas_env)
898 NULLIFY (qs_env%cp_ddapc_env)
899 NULLIFY (qs_env%cp_ddapc_ewald)
900 NULLIFY (qs_env%outer_scf_history)
901 NULLIFY (qs_env%gradient_history)
902 NULLIFY (qs_env%variable_history)
903 NULLIFY (qs_env%x_data)
904 NULLIFY (qs_env%et_coupling)
905 NULLIFY (qs_env%dftb_potential)
906 NULLIFY (qs_env%active_space)
908 NULLIFY (qs_env%se_taper)
909 NULLIFY (qs_env%se_store_int_env)
910 NULLIFY (qs_env%se_nddo_mpole)
911 NULLIFY (qs_env%se_nonbond_env)
912 NULLIFY (qs_env%admm_env)
913 NULLIFY (qs_env%efield)
914 NULLIFY (qs_env%lri_env)
915 NULLIFY (qs_env%harris_env)
916 NULLIFY (qs_env%ec_env)
917 NULLIFY (qs_env%exstate_env)
918 NULLIFY (qs_env%lri_density)
919 NULLIFY (qs_env%gcp_env)
921 NULLIFY (qs_env%mp2_env)
922 NULLIFY (qs_env%bs_env)
923 NULLIFY (qs_env%kg_env)
924 NULLIFY (qs_env%WannierCentres)
926 qs_env%outer_scf_ihistory = 0
927 qs_env%broyden_adaptive_sigma = -1.0_dp
931 qs_env%run_rtp = .false.
932 qs_env%linres_run = .false.
933 qs_env%single_point_run = .false.
934 qs_env%qmmm = .false.
935 qs_env%qmmm_periodic = .false.
936 qs_env%requires_mo_derivs = .false.
937 qs_env%requires_matrix_vxc = .false.
938 qs_env%has_unit_metric = .false.
939 qs_env%calc_image_preconditioner = .true.
940 qs_env%do_transport = .false.
941 qs_env%given_embed_pot = .false.
942 IF (
PRESENT(globenv))
THEN
943 qs_env%target_time = globenv%cp2k_target_time
944 qs_env%start_time = globenv%cp2k_start_time
945 qs_env%single_point_run = (globenv%run_type_id ==
energy_run .OR. &
948 qs_env%target_time = 0.0_dp
949 qs_env%start_time = 0.0_dp
952 qs_env%sim_time = 0._dp
955 qs_env%total_zeff_corr = 0.0_dp
956 qs_env%surface_dipole_moment = 0.0_dp
957 qs_env%surface_dipole_switch_off = .false.
960 NULLIFY (qs_env%mo_derivs)
961 NULLIFY (qs_env%mo_loc_history)
963 IF (.NOT.
ASSOCIATED(qs_env%molecular_scf_guess_env))
ALLOCATE (qs_env%molecular_scf_guess_env)
965 NULLIFY (qs_env%tb_tblite)
967 END SUBROUTINE init_qs_env
1050 mos, qmmm, qmmm_periodic, &
1051 ewald_env, ewald_pw, mpools, &
1052 rho_external, external_vxc, mask, &
1053 scf_control, rel_control, qs_charges, ks_env, &
1054 ks_qmmm_env, wf_history, scf_env, active_space, &
1055 input, oce, rho_atom_set, rho0_atom_set, rho0_mpole, run_rtp, rtp, &
1056 rhoz_set, rhoz_tot, ecoul_1c, has_unit_metric, requires_mo_derivs, mo_derivs, &
1057 mo_loc_history, efield, &
1058 linres_control, xas_env, cp_ddapc_env, cp_ddapc_ewald, &
1059 outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, &
1060 se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, ls_scf_env, &
1061 do_transport, transport_env, lri_env, lri_density, exstate_env, ec_env, dispersion_env, &
1062 harris_env, gcp_env, mp2_env, bs_env, kg_env, force, &
1063 kpoints, WannierCentres, almo_scf_env, gradient_history, variable_history, embed_pot, &
1064 spin_embed_pot, polar_env, mos_last_converged, eeq, rhs, tb_tblite)
1067 TYPE(
cell_type),
OPTIONAL,
POINTER :: super_cell
1068 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos
1069 LOGICAL,
OPTIONAL :: qmmm, qmmm_periodic
1073 TYPE(
qs_rho_type),
OPTIONAL,
POINTER :: rho_external
1086 POINTER :: rho_atom_set
1088 POINTER :: rho0_atom_set
1090 LOGICAL,
OPTIONAL :: run_rtp
1092 TYPE(
rhoz_type),
DIMENSION(:),
OPTIONAL,
POINTER :: rhoz_set
1093 REAL(
dp),
OPTIONAL :: rhoz_tot
1096 LOGICAL,
OPTIONAL :: has_unit_metric, requires_mo_derivs
1098 POINTER :: mo_derivs
1099 TYPE(
cp_fm_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mo_loc_history
1105 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: outer_scf_history
1106 INTEGER,
INTENT(IN),
OPTIONAL :: outer_scf_ihistory
1107 TYPE(
hfx_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: x_data
1110 OPTIONAL,
POINTER :: dftb_potential
1115 TYPE(
admm_type),
OPTIONAL,
POINTER :: admm_env
1117 LOGICAL,
OPTIONAL :: do_transport
1124 TYPE(
harris_type),
OPTIONAL,
POINTER :: harris_env
1126 TYPE(
mp2_type),
OPTIONAL,
POINTER :: mp2_env
1134 OPTIONAL,
POINTER :: wanniercentres
1136 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: gradient_history, variable_history
1137 TYPE(
pw_r3d_rs_type),
OPTIONAL,
POINTER :: embed_pot, spin_embed_pot
1139 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos_last_converged
1140 REAL(kind=
dp),
DIMENSION(:),
OPTIONAL,
POINTER :: eeq, rhs
1145 IF (
PRESENT(mp2_env)) qs_env%mp2_env => mp2_env
1146 IF (
PRESENT(bs_env)) qs_env%bs_env => bs_env
1147 IF (
PRESENT(kg_env)) qs_env%kg_env => kg_env
1148 IF (
PRESENT(super_cell))
THEN
1151 qs_env%super_cell => super_cell
1154 IF (
PRESENT(qmmm)) qs_env%qmmm = qmmm
1155 IF (
PRESENT(qmmm_periodic)) qs_env%qmmm_periodic = qmmm_periodic
1156 IF (
PRESENT(mos)) qs_env%mos => mos
1157 IF (
PRESENT(mos_last_converged)) qs_env%mos_last_converged => mos_last_converged
1158 IF (
PRESENT(ls_scf_env)) qs_env%ls_scf_env => ls_scf_env
1159 IF (
PRESENT(almo_scf_env)) qs_env%almo_scf_env => almo_scf_env
1160 IF (
PRESENT(do_transport)) qs_env%do_transport = do_transport
1161 IF (
PRESENT(transport_env)) qs_env%transport_env => transport_env
1164 IF (
PRESENT(oce)) qs_env%oce => oce
1165 IF (
PRESENT(outer_scf_history)) qs_env%outer_scf_history => outer_scf_history
1166 IF (
PRESENT(gradient_history)) qs_env%gradient_history => gradient_history
1167 IF (
PRESENT(variable_history)) qs_env%variable_history => variable_history
1168 IF (
PRESENT(outer_scf_ihistory)) qs_env%outer_scf_ihistory = outer_scf_ihistory
1169 IF (
PRESENT(requires_mo_derivs)) qs_env%requires_mo_derivs = requires_mo_derivs
1170 IF (
PRESENT(has_unit_metric)) qs_env%has_unit_metric = has_unit_metric
1171 IF (
PRESENT(mo_derivs)) qs_env%mo_derivs => mo_derivs
1172 IF (
PRESENT(mo_loc_history)) qs_env%mo_loc_history => mo_loc_history
1173 IF (
PRESENT(run_rtp)) qs_env%run_rtp = run_rtp
1174 IF (
PRESENT(rtp)) qs_env%rtp => rtp
1175 IF (
PRESENT(efield)) qs_env%efield => efield
1176 IF (
PRESENT(active_space)) qs_env%active_space => active_space
1178 IF (
PRESENT(ewald_env))
THEN
1179 IF (
ASSOCIATED(qs_env%ewald_env))
THEN
1180 IF (.NOT.
ASSOCIATED(qs_env%ewald_env, ewald_env))
THEN
1182 DEALLOCATE (qs_env%ewald_env)
1185 qs_env%ewald_env => ewald_env
1187 IF (
PRESENT(ewald_pw))
THEN
1188 IF (
ASSOCIATED(qs_env%ewald_pw))
THEN
1189 IF (.NOT.
ASSOCIATED(ewald_pw, qs_env%ewald_pw))
THEN
1191 DEALLOCATE (qs_env%ewald_pw)
1194 qs_env%ewald_pw => ewald_pw
1196 IF (
PRESENT(scf_control))
THEN
1197 IF (
ASSOCIATED(qs_env%scf_control))
THEN
1198 IF (.NOT.
ASSOCIATED(qs_env%scf_control, scf_control))
THEN
1200 DEALLOCATE (qs_env%scf_control)
1203 qs_env%scf_control => scf_control
1205 IF (
PRESENT(rel_control))
THEN
1206 IF (
ASSOCIATED(qs_env%rel_control))
THEN
1207 IF (.NOT.
ASSOCIATED(qs_env%rel_control, rel_control))
THEN
1209 DEALLOCATE (qs_env%rel_control)
1212 qs_env%rel_control => rel_control
1214 IF (
PRESENT(linres_control))
THEN
1215 IF (
ASSOCIATED(qs_env%linres_control))
THEN
1216 IF (.NOT.
ASSOCIATED(qs_env%linres_control, linres_control))
THEN
1218 DEALLOCATE (qs_env%linres_control)
1221 qs_env%linres_control => linres_control
1224 IF (
PRESENT(rho_external))
THEN
1225 IF (
ASSOCIATED(qs_env%rho_external))
THEN
1226 IF (.NOT.
ASSOCIATED(qs_env%rho_external, rho_external))
THEN
1228 DEALLOCATE (qs_env%rho_external)
1231 qs_env%rho_external => rho_external
1233 IF (
PRESENT(external_vxc)) qs_env%external_vxc => external_vxc
1234 IF (
PRESENT(mask)) qs_env%mask => mask
1236 IF (
PRESENT(embed_pot)) qs_env%embed_pot => embed_pot
1237 IF (
PRESENT(spin_embed_pot)) qs_env%spin_embed_pot => spin_embed_pot
1240 IF (
PRESENT(polar_env)) qs_env%polar_env => polar_env
1242 IF (
PRESENT(qs_charges))
THEN
1243 IF (
ASSOCIATED(qs_env%qs_charges))
THEN
1244 IF (.NOT.
ASSOCIATED(qs_env%qs_charges, qs_charges))
THEN
1246 DEALLOCATE (qs_env%qs_charges)
1249 qs_env%qs_charges => qs_charges
1251 IF (
PRESENT(ks_qmmm_env))
THEN
1252 IF (
ASSOCIATED(qs_env%ks_qmmm_env))
THEN
1253 IF (.NOT.
ASSOCIATED(qs_env%ks_qmmm_env, ks_qmmm_env))
THEN
1255 DEALLOCATE (qs_env%ks_qmmm_env)
1258 qs_env%ks_qmmm_env => ks_qmmm_env
1260 IF (
PRESENT(ks_env))
THEN
1261 IF (
ASSOCIATED(qs_env%ks_env))
THEN
1262 IF (.NOT.
ASSOCIATED(qs_env%ks_env, ks_env))
THEN
1264 DEALLOCATE (qs_env%ks_env)
1267 qs_env%ks_env => ks_env
1269 IF (
PRESENT(wf_history))
THEN
1272 qs_env%wf_history => wf_history
1274 IF (
PRESENT(scf_env))
THEN
1275 IF (
ASSOCIATED(qs_env%scf_env))
THEN
1276 IF (.NOT.
ASSOCIATED(qs_env%scf_env, scf_env))
THEN
1278 DEALLOCATE (qs_env%scf_env)
1281 qs_env%scf_env => scf_env
1283 IF (
PRESENT(xas_env))
THEN
1284 IF (
ASSOCIATED(qs_env%xas_env))
THEN
1285 IF (.NOT.
ASSOCIATED(qs_env%xas_env, xas_env))
THEN
1287 DEALLOCATE (qs_env%xas_env)
1290 qs_env%xas_env => xas_env
1292 IF (
PRESENT(mpools))
THEN
1295 qs_env%mpools => mpools
1297 IF (
PRESENT(rho_atom_set))
THEN
1298 CALL set_local_rho(qs_env%local_rho_set, rho_atom_set=rho_atom_set)
1300 IF (
PRESENT(rho0_atom_set))
THEN
1301 CALL set_local_rho(qs_env%local_rho_set, rho0_atom_set=rho0_atom_set)
1303 IF (
PRESENT(rho0_mpole))
THEN
1304 CALL set_local_rho(qs_env%local_rho_set, rho0_mpole=rho0_mpole)
1306 IF (
PRESENT(rhoz_set))
THEN
1309 IF (
PRESENT(rhoz_tot)) qs_env%local_rho_set%rhoz_tot = rhoz_tot
1310 IF (
PRESENT(ecoul_1c))
THEN
1313 IF (
PRESENT(input))
THEN
1316 qs_env%input => input
1318 IF (
PRESENT(cp_ddapc_env))
THEN
1319 IF (
ASSOCIATED(qs_env%cp_ddapc_env))
THEN
1320 IF (.NOT.
ASSOCIATED(qs_env%cp_ddapc_env, cp_ddapc_env))
THEN
1322 DEALLOCATE (qs_env%cp_ddapc_env)
1325 qs_env%cp_ddapc_env => cp_ddapc_env
1327 IF (
PRESENT(cp_ddapc_ewald))
THEN
1328 qs_env%cp_ddapc_ewald => cp_ddapc_ewald
1330 IF (
PRESENT(x_data)) qs_env%x_data => x_data
1332 IF (
PRESENT(dftb_potential)) qs_env%dftb_potential => dftb_potential
1333 IF (
PRESENT(se_taper))
THEN
1335 qs_env%se_taper => se_taper
1337 IF (
PRESENT(se_store_int_env))
THEN
1339 qs_env%se_store_int_env => se_store_int_env
1341 IF (
PRESENT(se_nddo_mpole))
THEN
1343 qs_env%se_nddo_mpole => se_nddo_mpole
1345 IF (
PRESENT(se_nonbond_env))
THEN
1346 IF (
ASSOCIATED(qs_env%se_nonbond_env))
THEN
1347 IF (.NOT.
ASSOCIATED(qs_env%se_nonbond_env, se_nonbond_env))
THEN
1349 DEALLOCATE (qs_env%se_nonbond_env)
1352 qs_env%se_nonbond_env => se_nonbond_env
1354 IF (
PRESENT(admm_env)) qs_env%admm_env => admm_env
1355 IF (
PRESENT(lri_env)) qs_env%lri_env => lri_env
1356 IF (
PRESENT(lri_density)) qs_env%lri_density => lri_density
1357 IF (
PRESENT(harris_env)) qs_env%harris_env => harris_env
1358 IF (
PRESENT(ec_env)) qs_env%ec_env => ec_env
1359 IF (
PRESENT(exstate_env)) qs_env%exstate_env => exstate_env
1360 IF (
PRESENT(dispersion_env)) qs_env%dispersion_env => dispersion_env
1361 IF (
PRESENT(gcp_env)) qs_env%gcp_env => gcp_env
1362 IF (
PRESENT(wanniercentres)) qs_env%WannierCentres => wanniercentres
1363 IF (
PRESENT(kpoints))
CALL set_ks_env(qs_env%ks_env, kpoints=kpoints)
1366 IF (
PRESENT(eeq)) qs_env%eeq => eeq
1369 IF (
PRESENT(rhs)) qs_env%rhs => rhs
1371 IF (
PRESENT(force))
THEN
1376 IF (
PRESENT(tb_tblite)) qs_env%tb_tblite => tb_tblite
1392 CALL init_qs_env(qs_env, globenv=globenv)
1409 IF (
ASSOCIATED(qs_env%mos))
THEN
1410 DO i = 1,
SIZE(qs_env%mos)
1413 DEALLOCATE (qs_env%mos)
1415 IF (
ASSOCIATED(qs_env%mos_last_converged))
THEN
1416 DO i = 1,
SIZE(qs_env%mos_last_converged)
1419 DEALLOCATE (qs_env%mos_last_converged)
1422 IF (
ASSOCIATED(qs_env%mo_derivs))
THEN
1423 DO i = 1,
SIZE(qs_env%mo_derivs)
1426 DEALLOCATE (qs_env%mo_derivs)
1431 IF (
ASSOCIATED(qs_env%rtp))
THEN
1433 DEALLOCATE (qs_env%rtp)
1435 IF (
ASSOCIATED(qs_env%outer_scf_history))
THEN
1436 DEALLOCATE (qs_env%outer_scf_history)
1437 qs_env%outer_scf_ihistory = 0
1439 IF (
ASSOCIATED(qs_env%gradient_history)) &
1440 DEALLOCATE (qs_env%gradient_history)
1441 IF (
ASSOCIATED(qs_env%variable_history)) &
1442 DEALLOCATE (qs_env%variable_history)
1444 IF (
ASSOCIATED(qs_env%local_rho_set))
THEN
1447 IF (
ASSOCIATED(qs_env%hartree_local))
THEN
1450 IF (
ASSOCIATED(qs_env%scf_control))
THEN
1452 DEALLOCATE (qs_env%scf_control)
1454 IF (
ASSOCIATED(qs_env%rel_control))
THEN
1456 DEALLOCATE (qs_env%rel_control)
1459 IF (
ASSOCIATED(qs_env%linres_control))
THEN
1461 DEALLOCATE (qs_env%linres_control)
1464 IF (
ASSOCIATED(qs_env%almo_scf_env))
THEN
1468 IF (
ASSOCIATED(qs_env%ls_scf_env))
THEN
1471 IF (
ASSOCIATED(qs_env%molecular_scf_guess_env))
THEN
1473 DEALLOCATE (qs_env%molecular_scf_guess_env)
1476 IF (
ASSOCIATED(qs_env%transport_env))
THEN
1481 IF (
ASSOCIATED(qs_env%xas_env))
THEN
1483 DEALLOCATE (qs_env%xas_env)
1485 IF (
ASSOCIATED(qs_env%ewald_env))
THEN
1487 DEALLOCATE (qs_env%ewald_env)
1489 IF (
ASSOCIATED(qs_env%ewald_pw))
THEN
1491 DEALLOCATE (qs_env%ewald_pw)
1493 IF (
ASSOCIATED(qs_env%image_matrix))
THEN
1494 DEALLOCATE (qs_env%image_matrix)
1496 IF (
ASSOCIATED(qs_env%ipiv))
THEN
1497 DEALLOCATE (qs_env%ipiv)
1499 IF (
ASSOCIATED(qs_env%image_coeff))
THEN
1500 DEALLOCATE (qs_env%image_coeff)
1503 IF (
ASSOCIATED(qs_env%rho_external))
THEN
1505 DEALLOCATE (qs_env%rho_external)
1507 IF (
ASSOCIATED(qs_env%external_vxc))
THEN
1508 CALL qs_env%external_vxc%release()
1509 DEALLOCATE (qs_env%external_vxc)
1511 IF (
ASSOCIATED(qs_env%mask))
THEN
1512 CALL qs_env%mask%release()
1513 DEALLOCATE (qs_env%mask)
1515 IF (
ASSOCIATED(qs_env%active_space))
THEN
1519 IF (qs_env%given_embed_pot)
THEN
1520 CALL qs_env%embed_pot%release()
1521 DEALLOCATE (qs_env%embed_pot)
1522 IF (
ASSOCIATED(qs_env%spin_embed_pot))
THEN
1523 CALL qs_env%spin_embed_pot%release()
1524 DEALLOCATE (qs_env%spin_embed_pot)
1531 IF (
ASSOCIATED(qs_env%qs_charges))
THEN
1533 DEALLOCATE (qs_env%qs_charges)
1535 IF (
ASSOCIATED(qs_env%ks_env))
THEN
1537 DEALLOCATE (qs_env%ks_env)
1539 IF (
ASSOCIATED(qs_env%ks_qmmm_env))
THEN
1541 DEALLOCATE (qs_env%ks_qmmm_env)
1544 IF (
ASSOCIATED(qs_env%scf_env))
THEN
1546 DEALLOCATE (qs_env%scf_env)
1550 IF (
ASSOCIATED(qs_env%cp_ddapc_env))
THEN
1552 DEALLOCATE (qs_env%cp_ddapc_env)
1556 IF (
ASSOCIATED(qs_env%x_data))
THEN
1559 IF (
ASSOCIATED(qs_env%et_coupling))
THEN
1562 IF (
ASSOCIATED(qs_env%dftb_potential))
THEN
1565 IF (
ASSOCIATED(qs_env%se_taper))
THEN
1568 IF (
ASSOCIATED(qs_env%se_store_int_env))
THEN
1571 IF (
ASSOCIATED(qs_env%se_nddo_mpole))
THEN
1574 IF (
ASSOCIATED(qs_env%se_nonbond_env))
THEN
1576 DEALLOCATE (qs_env%se_nonbond_env)
1578 IF (
ASSOCIATED(qs_env%admm_env))
THEN
1581 IF (
ASSOCIATED(qs_env%lri_env))
THEN
1583 DEALLOCATE (qs_env%lri_env)
1585 IF (
ASSOCIATED(qs_env%lri_density))
THEN
1587 DEALLOCATE (qs_env%lri_density)
1589 IF (
ASSOCIATED(qs_env%harris_env))
THEN
1592 IF (
ASSOCIATED(qs_env%ec_env))
THEN
1595 IF (
ASSOCIATED(qs_env%exstate_env))
THEN
1598 IF (
ASSOCIATED(qs_env%mp2_env))
THEN
1600 DEALLOCATE (qs_env%mp2_env)
1601 NULLIFY (qs_env%mp2_env)
1603 IF (
ASSOCIATED(qs_env%bs_env))
THEN
1606 IF (
ASSOCIATED(qs_env%kg_env))
THEN
1613 IF (
ASSOCIATED(qs_env%gcp_env))
THEN
1617 IF (
ASSOCIATED(qs_env%WannierCentres))
THEN
1618 DO i = 1,
SIZE(qs_env%WannierCentres)
1619 DEALLOCATE (qs_env%WannierCentres(i)%WannierHamDiag)
1620 DEALLOCATE (qs_env%WannierCentres(i)%centres)
1622 DEALLOCATE (qs_env%WannierCentres)
1625 IF (
ASSOCIATED(qs_env%eeq))
DEALLOCATE (qs_env%eeq)
1627 IF (
ASSOCIATED(qs_env%rhs))
DEALLOCATE (qs_env%rhs)
1630 IF (
ASSOCIATED(qs_env%tb_tblite))
THEN
1647 IF (
ASSOCIATED(qs_env%mos_last_converged))
THEN
1648 DO i = 1,
SIZE(qs_env%mos_last_converged)
1651 DEALLOCATE (qs_env%mos_last_converged)
1654 IF (
ASSOCIATED(qs_env%mo_derivs))
THEN
1655 DO i = 1,
SIZE(qs_env%mo_derivs)
1658 DEALLOCATE (qs_env%mo_derivs)
1663 IF (
ASSOCIATED(qs_env%rtp))
THEN
1665 DEALLOCATE (qs_env%rtp)
1667 IF (
ASSOCIATED(qs_env%outer_scf_history))
THEN
1668 DEALLOCATE (qs_env%outer_scf_history)
1669 qs_env%outer_scf_ihistory = 0
1671 IF (
ASSOCIATED(qs_env%gradient_history)) &
1672 DEALLOCATE (qs_env%gradient_history)
1673 IF (
ASSOCIATED(qs_env%variable_history)) &
1674 DEALLOCATE (qs_env%variable_history)
1676 IF (
ASSOCIATED(qs_env%local_rho_set))
THEN
1679 IF (
ASSOCIATED(qs_env%hartree_local))
THEN
1682 IF (
ASSOCIATED(qs_env%scf_control))
THEN
1684 DEALLOCATE (qs_env%scf_control)
1686 IF (
ASSOCIATED(qs_env%rel_control))
THEN
1688 DEALLOCATE (qs_env%rel_control)
1691 IF (
ASSOCIATED(qs_env%linres_control))
THEN
1693 DEALLOCATE (qs_env%linres_control)
1696 IF (
ASSOCIATED(qs_env%almo_scf_env))
THEN
1700 IF (
ASSOCIATED(qs_env%ls_scf_env))
THEN
1703 IF (
ASSOCIATED(qs_env%molecular_scf_guess_env))
THEN
1705 DEALLOCATE (qs_env%molecular_scf_guess_env)
1708 IF (
ASSOCIATED(qs_env%transport_env))
THEN
1713 IF (
ASSOCIATED(qs_env%xas_env))
THEN
1715 DEALLOCATE (qs_env%xas_env)
1717 IF (
ASSOCIATED(qs_env%ewald_env))
THEN
1719 DEALLOCATE (qs_env%ewald_env)
1721 IF (
ASSOCIATED(qs_env%ewald_pw))
THEN
1723 DEALLOCATE (qs_env%ewald_pw)
1725 IF (
ASSOCIATED(qs_env%image_matrix))
THEN
1726 DEALLOCATE (qs_env%image_matrix)
1728 IF (
ASSOCIATED(qs_env%ipiv))
THEN
1729 DEALLOCATE (qs_env%ipiv)
1731 IF (
ASSOCIATED(qs_env%image_coeff))
THEN
1732 DEALLOCATE (qs_env%image_coeff)
1735 IF (
ASSOCIATED(qs_env%rho_external))
THEN
1737 DEALLOCATE (qs_env%rho_external)
1739 IF (
ASSOCIATED(qs_env%external_vxc))
THEN
1740 CALL qs_env%external_vxc%release()
1741 DEALLOCATE (qs_env%external_vxc)
1743 IF (
ASSOCIATED(qs_env%mask))
THEN
1744 CALL qs_env%mask%release()
1745 DEALLOCATE (qs_env%mask)
1747 IF (
ASSOCIATED(qs_env%active_space))
THEN
1751 IF (qs_env%given_embed_pot)
THEN
1752 CALL qs_env%embed_pot%release()
1753 DEALLOCATE (qs_env%embed_pot)
1754 IF (
ASSOCIATED(qs_env%spin_embed_pot))
THEN
1755 CALL qs_env%spin_embed_pot%release()
1756 DEALLOCATE (qs_env%spin_embed_pot)
1763 IF (
ASSOCIATED(qs_env%qs_charges))
THEN
1765 DEALLOCATE (qs_env%qs_charges)
1768 IF (
ASSOCIATED(qs_env%ks_qmmm_env))
THEN
1770 DEALLOCATE (qs_env%ks_qmmm_env)
1773 IF (
ASSOCIATED(qs_env%scf_env))
THEN
1775 DEALLOCATE (qs_env%scf_env)
1777 IF (
ASSOCIATED(qs_env%cp_ddapc_env))
THEN
1779 DEALLOCATE (qs_env%cp_ddapc_env)
1783 IF (
ASSOCIATED(qs_env%x_data))
THEN
1786 IF (
ASSOCIATED(qs_env%et_coupling))
THEN
1789 IF (
ASSOCIATED(qs_env%dftb_potential))
THEN
1792 IF (
ASSOCIATED(qs_env%se_taper))
THEN
1795 IF (
ASSOCIATED(qs_env%se_store_int_env))
THEN
1798 IF (
ASSOCIATED(qs_env%se_nddo_mpole))
THEN
1801 IF (
ASSOCIATED(qs_env%se_nonbond_env))
THEN
1803 DEALLOCATE (qs_env%se_nonbond_env)
1805 IF (
ASSOCIATED(qs_env%admm_env))
THEN
1808 IF (
ASSOCIATED(qs_env%lri_env))
THEN
1810 DEALLOCATE (qs_env%lri_env)
1812 IF (
ASSOCIATED(qs_env%lri_density))
THEN
1814 DEALLOCATE (qs_env%lri_density)
1816 IF (
ASSOCIATED(qs_env%harris_env))
THEN
1819 IF (
ASSOCIATED(qs_env%ec_env))
THEN
1822 IF (
ASSOCIATED(qs_env%exstate_env))
THEN
1825 IF (
ASSOCIATED(qs_env%mp2_env))
THEN
1827 DEALLOCATE (qs_env%mp2_env)
1828 NULLIFY (qs_env%mp2_env)
1830 IF (
ASSOCIATED(qs_env%kg_env))
THEN
1837 IF (
ASSOCIATED(qs_env%gcp_env))
THEN
1841 IF (
ASSOCIATED(qs_env%WannierCentres))
THEN
1842 DO i = 1,
SIZE(qs_env%WannierCentres)
1843 DEALLOCATE (qs_env%WannierCentres(i)%WannierHamDiag)
1844 DEALLOCATE (qs_env%WannierCentres(i)%centres)
1846 DEALLOCATE (qs_env%WannierCentres)
1849 IF (
ASSOCIATED(qs_env%eeq))
DEALLOCATE (qs_env%eeq)
1851 IF (
ASSOCIATED(qs_env%rhs))
DEALLOCATE (qs_env%rhs)
1854 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 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, tb_tblite)
Set the QUICKSTEP environment.
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, 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
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.