163#include "./base/base_uses.f90"
169 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'qs_environment_types'
218 LOGICAL :: qmmm = .false., qmmm_periodic = .false.
219 LOGICAL :: requires_mo_derivs = .false.
220 LOGICAL :: requires_matrix_vxc = .false.
221 LOGICAL :: has_unit_metric = .false.
222 LOGICAL :: run_rtp = .false.
223 LOGICAL :: linres_run = .false.
224 LOGICAL :: calc_image_preconditioner = .false.
225 LOGICAL :: do_transport = .false.
226 LOGICAL :: single_point_run = .false.
227 LOGICAL :: given_embed_pot = .false.
228 LOGICAL :: energy_correction = .false.
229 LOGICAL :: harris_method = .false.
230 REAL(kind=
dp) :: sim_time = -1.0_dp
231 REAL(kind=
dp) :: start_time = -1.0_dp, target_time = -1.0_dp
232 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: image_matrix => null()
233 REAL(kind=
dp),
DIMENSION(:),
POINTER :: image_coeff => null()
234 INTEGER,
DIMENSION(:),
POINTER :: ipiv => null()
235 INTEGER :: sim_step = -1
241 TYPE(
cp_fm_type),
DIMENSION(:),
POINTER :: mo_loc_history => null()
264 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: outer_scf_history => null()
265 INTEGER :: outer_scf_ihistory = -1
266 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: gradient_history => null(), &
267 variable_history => null()
268 TYPE(
hfx_type),
DIMENSION(:, :),
POINTER :: x_data => null()
281 LOGICAL :: excited_state = .false.
298 REAL(kind=
dp) :: broyden_adaptive_sigma = -1.0_dp
312 REAL(kind=
dp),
DIMENSION(:),
POINTER :: eeq => null()
314 REAL(kind=
dp),
DIMENSION(:),
POINTER :: rhs => null()
315 REAL(kind=
dp) :: total_zeff_corr = -1.0_dp, surface_dipole_moment = -1.0_dp
316 LOGICAL :: surface_dipole_switch_off = .false.
317 TYPE(
mo_set_type),
DIMENSION(:),
POINTER :: mos_last_converged => null()
486 SUBROUTINE get_qs_env(qs_env, atomic_kind_set, qs_kind_set, cell, super_cell, cell_ref, use_ref_cell, kpoints, &
487 dft_control, mos, sab_orb, sab_all, qmmm, qmmm_periodic, sac_ae, sac_ppl, sac_lri, &
488 sap_ppnl, sab_vdw, sab_scp, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, &
489 sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_almo, &
490 sab_kp, sab_kp_nosym, particle_set, energy, force, &
491 matrix_h, matrix_h_im, matrix_ks, matrix_ks_im, matrix_vxc, run_rtp, rtp, &
492 matrix_h_kp, matrix_h_im_kp, matrix_ks_kp, matrix_ks_im_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, &
493 matrix_w_kp, matrix_s_RI_aux_kp, matrix_s, matrix_s_RI_aux, matrix_w, &
494 matrix_p_mp2, matrix_p_mp2_admm, rho, &
495 rho_xc, pw_env, ewald_env, ewald_pw, active_space, &
496 mpools, input, para_env, blacs_env, scf_control, rel_control, kinetic, qs_charges, &
497 vppl, rho_core, rho_nlcc, rho_nlcc_g, ks_env, ks_qmmm_env, wf_history, scf_env, local_particles, &
498 local_molecules, distribution_2d, dbcsr_dist, molecule_kind_set, &
499 molecule_set, subsys, cp_subsys, oce, local_rho_set, rho_atom_set, &
502 rho0_atom_set, rho0_mpole, rhoz_set, ecoul_1c, &
503 rho0_s_rs, rho0_s_gs, do_kpoints, has_unit_metric, requires_mo_derivs, mo_derivs, &
504 mo_loc_history, nkind, natom, nelectron_total, nelectron_spin, efield, &
505 neighbor_list_id, linres_control, xas_env, virial, cp_ddapc_env, cp_ddapc_ewald, &
506 outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, results, &
507 se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, &
508 lri_env, lri_density, exstate_env, ec_env, harris_env, dispersion_env, gcp_env, vee, &
509 rho_external, external_vxc, mask, mp2_env, bs_env, kg_env, &
510 WannierCentres, atprop, ls_scf_env, do_transport, transport_env, v_hartree_rspace, &
511 s_mstruct_changed, rho_changed, potential_changed, forces_up_to_date, mscfg_env, almo_scf_env, &
512 gradient_history, variable_history, embed_pot, spin_embed_pot, polar_env, mos_last_converged, &
516 POINTER :: atomic_kind_set
518 POINTER :: qs_kind_set
519 TYPE(
cell_type),
OPTIONAL,
POINTER :: cell, super_cell, cell_ref
520 LOGICAL,
OPTIONAL :: use_ref_cell
523 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos
525 OPTIONAL,
POINTER :: sab_orb, sab_all
526 LOGICAL,
OPTIONAL :: qmmm, qmmm_periodic
528 sap_ppnl, sab_vdw, sab_scp, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, &
529 sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_almo, sab_kp, sab_kp_nosym
531 POINTER :: particle_set
536 POINTER :: matrix_h, matrix_h_im, matrix_ks, &
537 matrix_ks_im, matrix_vxc
538 LOGICAL,
OPTIONAL :: run_rtp
540 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: matrix_h_kp, matrix_h_im_kp, &
541 matrix_ks_kp, matrix_ks_im_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, &
544 POINTER :: matrix_s, matrix_s_ri_aux, matrix_w, &
545 matrix_p_mp2, matrix_p_mp2_admm
546 TYPE(
qs_rho_type),
OPTIONAL,
POINTER :: rho, rho_xc
572 POINTER :: molecule_kind_set
574 POINTER :: molecule_set
580 POINTER :: rho_atom_set
581 TYPE(
task_list_type),
OPTIONAL,
POINTER :: task_list, task_list_soft
583 POINTER :: rho0_atom_set
585 TYPE(
rhoz_type),
DIMENSION(:),
OPTIONAL,
POINTER :: rhoz_set
590 LOGICAL,
OPTIONAL :: do_kpoints, has_unit_metric, &
594 TYPE(
cp_fm_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mo_loc_history
595 INTEGER,
OPTIONAL :: nkind, natom, nelectron_total
596 INTEGER,
DIMENSION(2),
OPTIONAL :: nelectron_spin
598 INTEGER,
OPTIONAL :: neighbor_list_id
604 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: outer_scf_history
605 INTEGER,
INTENT(out),
OPTIONAL :: outer_scf_ihistory
606 TYPE(
hfx_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: x_data
609 OPTIONAL,
POINTER :: dftb_potential
615 TYPE(
admm_type),
OPTIONAL,
POINTER :: admm_env
624 TYPE(
qs_rho_type),
OPTIONAL,
POINTER :: rho_external
626 TYPE(
mp2_type),
OPTIONAL,
POINTER :: mp2_env
631 OPTIONAL,
POINTER :: wanniercentres
634 LOGICAL,
OPTIONAL :: do_transport
637 LOGICAL,
OPTIONAL :: s_mstruct_changed, rho_changed, &
638 potential_changed, forces_up_to_date
642 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: gradient_history, variable_history
643 TYPE(
pw_r3d_rs_type),
OPTIONAL,
POINTER :: embed_pot, spin_embed_pot
645 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos_last_converged
646 REAL(kind=
dp),
DIMENSION(:),
OPTIONAL,
POINTER :: eeq, rhs
651 cpassert(
ASSOCIATED(qs_env%ks_env))
653 IF (
PRESENT(outer_scf_history)) outer_scf_history => qs_env%outer_scf_history
654 IF (
PRESENT(outer_scf_ihistory)) outer_scf_ihistory = qs_env%outer_scf_ihistory
655 IF (
PRESENT(gradient_history)) gradient_history => qs_env%gradient_history
656 IF (
PRESENT(variable_history)) variable_history => qs_env%variable_history
657 IF (
PRESENT(mp2_env)) mp2_env => qs_env%mp2_env
658 IF (
PRESENT(bs_env)) bs_env => qs_env%bs_env
659 IF (
PRESENT(kg_env)) kg_env => qs_env%kg_env
660 IF (
PRESENT(super_cell)) super_cell => qs_env%super_cell
661 IF (
PRESENT(qmmm)) qmmm = qs_env%qmmm
662 IF (
PRESENT(qmmm_periodic)) qmmm_periodic = qs_env%qmmm_periodic
663 IF (
PRESENT(mos)) mos => qs_env%mos
664 IF (
PRESENT(mos_last_converged)) mos_last_converged => qs_env%mos_last_converged
665 IF (
PRESENT(ewald_env)) ewald_env => qs_env%ewald_env
666 IF (
PRESENT(ewald_pw)) ewald_pw => qs_env%ewald_pw
667 IF (
PRESENT(mpools)) mpools => qs_env%mpools
668 IF (
PRESENT(scf_control)) scf_control => qs_env%scf_control
669 IF (
PRESENT(rel_control)) rel_control => qs_env%rel_control
671 IF (
PRESENT(rho_external)) rho_external => qs_env%rho_external
672 IF (
PRESENT(external_vxc)) external_vxc => qs_env%external_vxc
673 IF (
PRESENT(mask)) mask => qs_env%mask
674 IF (
PRESENT(qs_charges)) qs_charges => qs_env%qs_charges
675 IF (
PRESENT(ks_env)) ks_env => qs_env%ks_env
676 IF (
PRESENT(ks_qmmm_env)) ks_qmmm_env => qs_env%ks_qmmm_env
677 IF (
PRESENT(wf_history)) wf_history => qs_env%wf_history
678 IF (
PRESENT(scf_env)) scf_env => qs_env%scf_env
679 IF (
PRESENT(oce)) oce => qs_env%oce
680 IF (
PRESENT(requires_mo_derivs)) requires_mo_derivs = qs_env%requires_mo_derivs
681 IF (
PRESENT(has_unit_metric)) has_unit_metric = qs_env%has_unit_metric
682 IF (
PRESENT(mo_derivs)) mo_derivs => qs_env%mo_derivs
683 IF (
PRESENT(mo_loc_history)) mo_loc_history => qs_env%mo_loc_history
684 IF (
PRESENT(linres_control)) linres_control => qs_env%linres_control
685 IF (
PRESENT(se_taper)) se_taper => qs_env%se_taper
686 IF (
PRESENT(se_store_int_env)) se_store_int_env => qs_env%se_store_int_env
687 IF (
PRESENT(se_nddo_mpole)) se_nddo_mpole => qs_env%se_nddo_mpole
688 IF (
PRESENT(se_nonbond_env)) se_nonbond_env => qs_env%se_nonbond_env
689 IF (
PRESENT(lri_env)) lri_env => qs_env%lri_env
690 IF (
PRESENT(lri_density)) lri_density => qs_env%lri_density
691 IF (
PRESENT(harris_env)) harris_env => qs_env%harris_env
692 IF (
PRESENT(ec_env)) ec_env => qs_env%ec_env
693 IF (
PRESENT(exstate_env)) exstate_env => qs_env%exstate_env
694 IF (
PRESENT(dispersion_env)) dispersion_env => qs_env%dispersion_env
695 IF (
PRESENT(gcp_env)) gcp_env => qs_env%gcp_env
696 IF (
PRESENT(run_rtp)) run_rtp = qs_env%run_rtp
697 IF (
PRESENT(rtp)) rtp => qs_env%rtp
698 IF (
PRESENT(ls_scf_env)) ls_scf_env => qs_env%ls_scf_env
699 IF (
PRESENT(almo_scf_env)) almo_scf_env => qs_env%almo_scf_env
700 IF (
PRESENT(do_transport)) do_transport = qs_env%do_transport
701 IF (
PRESENT(transport_env)) transport_env => qs_env%transport_env
702 IF (
PRESENT(mscfg_env)) mscfg_env => qs_env%molecular_scf_guess_env
703 IF (
PRESENT(active_space)) active_space => qs_env%active_space
704 IF (
PRESENT(admm_env)) admm_env => qs_env%admm_env
707 IF (
PRESENT(embed_pot)) embed_pot => qs_env%embed_pot
708 IF (
PRESENT(spin_embed_pot)) spin_embed_pot => qs_env%spin_embed_pot
711 IF (
PRESENT(polar_env)) polar_env => qs_env%polar_env
714 IF (
PRESENT(eeq)) eeq => qs_env%eeq
717 IF (
PRESENT(rhs)) rhs => qs_env%rhs
719 IF (
PRESENT(local_rho_set)) &
720 local_rho_set => qs_env%local_rho_set
721 IF (
PRESENT(rho_atom_set)) &
722 CALL get_local_rho(qs_env%local_rho_set, rho_atom_set=rho_atom_set)
723 IF (
PRESENT(rho0_atom_set)) &
724 CALL get_local_rho(qs_env%local_rho_set, rho0_atom_set=rho0_atom_set)
725 IF (
PRESENT(rho0_mpole)) &
726 CALL get_local_rho(qs_env%local_rho_set, rho0_mpole=rho0_mpole)
727 IF (
PRESENT(rhoz_set)) &
729 IF (
PRESENT(ecoul_1c)) &
731 IF (
PRESENT(rho0_s_rs))
THEN
733 IF (
ASSOCIATED(rho0_m))
THEN
734 rho0_s_rs => rho0_m%rho0_s_rs
737 IF (
PRESENT(rho0_s_gs))
THEN
739 IF (
ASSOCIATED(rho0_m))
THEN
740 rho0_s_gs => rho0_m%rho0_s_gs
744 IF (
PRESENT(xas_env)) xas_env => qs_env%xas_env
745 IF (
PRESENT(input)) input => qs_env%input
746 IF (
PRESENT(cp_ddapc_env)) cp_ddapc_env => qs_env%cp_ddapc_env
747 IF (
PRESENT(cp_ddapc_ewald)) cp_ddapc_ewald => qs_env%cp_ddapc_ewald
748 IF (
PRESENT(x_data)) x_data => qs_env%x_data
750 IF (
PRESENT(dftb_potential)) dftb_potential => qs_env%dftb_potential
751 IF (
PRESENT(efield)) efield => qs_env%efield
752 IF (
PRESENT(wanniercentres)) wanniercentres => qs_env%WannierCentres
755 v_hartree_rspace=v_hartree_rspace, &
756 s_mstruct_changed=s_mstruct_changed, &
757 rho_changed=rho_changed, &
758 potential_changed=potential_changed, &
759 forces_up_to_date=forces_up_to_date, &
761 matrix_h_im=matrix_h_im, &
762 matrix_ks=matrix_ks, &
763 matrix_ks_im=matrix_ks_im, &
764 matrix_vxc=matrix_vxc, &
767 matrix_s_ri_aux=matrix_s_ri_aux, &
768 matrix_ks_im_kp=matrix_ks_im_kp, &
770 matrix_p_mp2=matrix_p_mp2, &
771 matrix_p_mp2_admm=matrix_p_mp2_admm, &
772 matrix_h_kp=matrix_h_kp, &
773 matrix_h_im_kp=matrix_h_im_kp, &
774 matrix_ks_kp=matrix_ks_kp, &
775 matrix_vxc_kp=matrix_vxc_kp, &
776 kinetic_kp=kinetic_kp, &
777 matrix_s_kp=matrix_s_kp, &
778 matrix_w_kp=matrix_w_kp, &
779 matrix_s_ri_aux_kp=matrix_s_ri_aux_kp, &
784 rho_nlcc_g=rho_nlcc_g, &
787 neighbor_list_id=neighbor_list_id, &
803 sab_xtb_pp=sab_xtb_pp, &
804 sab_xtb_nonbond=sab_xtb_nonbond, &
807 sab_kp_nosym=sab_kp_nosym, &
808 task_list=task_list, &
809 task_list_soft=task_list_soft, &
811 do_kpoints=do_kpoints, &
812 local_molecules=local_molecules, &
813 local_particles=local_particles, &
819 use_ref_cell=use_ref_cell, &
822 qs_kind_set=qs_kind_set, &
824 cp_subsys=cp_subsys, &
825 atomic_kind_set=atomic_kind_set, &
826 particle_set=particle_set, &
827 molecule_kind_set=molecule_kind_set, &
828 molecule_set=molecule_set, &
831 dft_control=dft_control, &
832 dbcsr_dist=dbcsr_dist, &
833 distribution_2d=distribution_2d, &
836 blacs_env=blacs_env, &
837 nelectron_total=nelectron_total, &
838 nelectron_spin=nelectron_spin)
850 SUBROUTINE init_qs_env(qs_env, globenv)
855 NULLIFY (qs_env%ls_scf_env)
856 NULLIFY (qs_env%almo_scf_env)
857 NULLIFY (qs_env%transport_env)
858 NULLIFY (qs_env%image_matrix)
859 NULLIFY (qs_env%ipiv)
860 NULLIFY (qs_env%image_coeff)
861 NULLIFY (qs_env%super_cell)
863 NULLIFY (qs_env%mos_last_converged)
864 NULLIFY (qs_env%mpools)
865 NULLIFY (qs_env%ewald_env)
866 NULLIFY (qs_env%ewald_pw)
867 NULLIFY (qs_env%scf_control)
868 NULLIFY (qs_env%rel_control)
869 NULLIFY (qs_env%qs_charges)
871 NULLIFY (qs_env%rho_external)
872 NULLIFY (qs_env%external_vxc)
873 NULLIFY (qs_env%mask)
875 NULLIFY (qs_env%embed_pot)
876 NULLIFY (qs_env%spin_embed_pot)
879 NULLIFY (qs_env%polar_env)
881 NULLIFY (qs_env%ks_env)
882 NULLIFY (qs_env%ks_qmmm_env)
883 NULLIFY (qs_env%wf_history)
884 NULLIFY (qs_env%scf_env)
886 NULLIFY (qs_env%local_rho_set)
887 NULLIFY (qs_env%hartree_local)
888 NULLIFY (qs_env%input)
889 NULLIFY (qs_env%linres_control)
890 NULLIFY (qs_env%xas_env)
891 NULLIFY (qs_env%cp_ddapc_env)
892 NULLIFY (qs_env%cp_ddapc_ewald)
893 NULLIFY (qs_env%outer_scf_history)
894 NULLIFY (qs_env%gradient_history)
895 NULLIFY (qs_env%variable_history)
896 NULLIFY (qs_env%x_data)
897 NULLIFY (qs_env%et_coupling)
898 NULLIFY (qs_env%dftb_potential)
899 NULLIFY (qs_env%active_space)
901 NULLIFY (qs_env%se_taper)
902 NULLIFY (qs_env%se_store_int_env)
903 NULLIFY (qs_env%se_nddo_mpole)
904 NULLIFY (qs_env%se_nonbond_env)
905 NULLIFY (qs_env%admm_env)
906 NULLIFY (qs_env%efield)
907 NULLIFY (qs_env%lri_env)
908 NULLIFY (qs_env%harris_env)
909 NULLIFY (qs_env%ec_env)
910 NULLIFY (qs_env%exstate_env)
911 NULLIFY (qs_env%lri_density)
912 NULLIFY (qs_env%gcp_env)
914 NULLIFY (qs_env%mp2_env)
915 NULLIFY (qs_env%bs_env)
916 NULLIFY (qs_env%kg_env)
917 NULLIFY (qs_env%WannierCentres)
919 qs_env%outer_scf_ihistory = 0
920 qs_env%broyden_adaptive_sigma = -1.0_dp
924 qs_env%run_rtp = .false.
925 qs_env%linres_run = .false.
926 qs_env%single_point_run = .false.
927 qs_env%qmmm = .false.
928 qs_env%qmmm_periodic = .false.
929 qs_env%requires_mo_derivs = .false.
930 qs_env%requires_matrix_vxc = .false.
931 qs_env%has_unit_metric = .false.
932 qs_env%calc_image_preconditioner = .true.
933 qs_env%do_transport = .false.
934 qs_env%given_embed_pot = .false.
935 IF (
PRESENT(globenv))
THEN
936 qs_env%target_time = globenv%cp2k_target_time
937 qs_env%start_time = globenv%cp2k_start_time
938 qs_env%single_point_run = (globenv%run_type_id ==
energy_run .OR. &
941 qs_env%target_time = 0.0_dp
942 qs_env%start_time = 0.0_dp
945 qs_env%sim_time = 0._dp
948 qs_env%total_zeff_corr = 0.0_dp
949 qs_env%surface_dipole_moment = 0.0_dp
950 qs_env%surface_dipole_switch_off = .false.
953 NULLIFY (qs_env%mo_derivs)
954 NULLIFY (qs_env%mo_loc_history)
956 IF (.NOT.
ASSOCIATED(qs_env%molecular_scf_guess_env))
ALLOCATE (qs_env%molecular_scf_guess_env)
958 END SUBROUTINE init_qs_env
1040 mos, qmmm, qmmm_periodic, &
1041 ewald_env, ewald_pw, mpools, &
1042 rho_external, external_vxc, mask, &
1043 scf_control, rel_control, qs_charges, ks_env, &
1044 ks_qmmm_env, wf_history, scf_env, active_space, &
1045 input, oce, rho_atom_set, rho0_atom_set, rho0_mpole, run_rtp, rtp, &
1046 rhoz_set, rhoz_tot, ecoul_1c, has_unit_metric, requires_mo_derivs, mo_derivs, &
1047 mo_loc_history, efield, &
1048 linres_control, xas_env, cp_ddapc_env, cp_ddapc_ewald, &
1049 outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, &
1050 se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, ls_scf_env, &
1051 do_transport, transport_env, lri_env, lri_density, exstate_env, ec_env, dispersion_env, &
1052 harris_env, gcp_env, mp2_env, bs_env, kg_env, force, &
1053 kpoints, WannierCentres, almo_scf_env, gradient_history, variable_history, embed_pot, &
1054 spin_embed_pot, polar_env, mos_last_converged, eeq, rhs)
1057 TYPE(
cell_type),
OPTIONAL,
POINTER :: super_cell
1058 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos
1059 LOGICAL,
OPTIONAL :: qmmm, qmmm_periodic
1063 TYPE(
qs_rho_type),
OPTIONAL,
POINTER :: rho_external
1076 POINTER :: rho_atom_set
1078 POINTER :: rho0_atom_set
1080 LOGICAL,
OPTIONAL :: run_rtp
1082 TYPE(
rhoz_type),
DIMENSION(:),
OPTIONAL,
POINTER :: rhoz_set
1083 REAL(
dp),
OPTIONAL :: rhoz_tot
1086 LOGICAL,
OPTIONAL :: has_unit_metric, requires_mo_derivs
1088 POINTER :: mo_derivs
1089 TYPE(
cp_fm_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mo_loc_history
1095 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: outer_scf_history
1096 INTEGER,
INTENT(IN),
OPTIONAL :: outer_scf_ihistory
1097 TYPE(
hfx_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: x_data
1100 OPTIONAL,
POINTER :: dftb_potential
1105 TYPE(
admm_type),
OPTIONAL,
POINTER :: admm_env
1107 LOGICAL,
OPTIONAL :: do_transport
1114 TYPE(
harris_type),
OPTIONAL,
POINTER :: harris_env
1116 TYPE(
mp2_type),
OPTIONAL,
POINTER :: mp2_env
1124 OPTIONAL,
POINTER :: wanniercentres
1126 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL,
POINTER :: gradient_history, variable_history
1127 TYPE(
pw_r3d_rs_type),
OPTIONAL,
POINTER :: embed_pot, spin_embed_pot
1129 TYPE(
mo_set_type),
DIMENSION(:),
OPTIONAL,
POINTER :: mos_last_converged
1130 REAL(kind=
dp),
DIMENSION(:),
OPTIONAL,
POINTER :: eeq, rhs
1134 IF (
PRESENT(mp2_env)) qs_env%mp2_env => mp2_env
1135 IF (
PRESENT(bs_env)) qs_env%bs_env => bs_env
1136 IF (
PRESENT(kg_env)) qs_env%kg_env => kg_env
1137 IF (
PRESENT(super_cell))
THEN
1140 qs_env%super_cell => super_cell
1143 IF (
PRESENT(qmmm)) qs_env%qmmm = qmmm
1144 IF (
PRESENT(qmmm_periodic)) qs_env%qmmm_periodic = qmmm_periodic
1145 IF (
PRESENT(mos)) qs_env%mos => mos
1146 IF (
PRESENT(mos_last_converged)) qs_env%mos_last_converged => mos_last_converged
1147 IF (
PRESENT(ls_scf_env)) qs_env%ls_scf_env => ls_scf_env
1148 IF (
PRESENT(almo_scf_env)) qs_env%almo_scf_env => almo_scf_env
1149 IF (
PRESENT(do_transport)) qs_env%do_transport = do_transport
1150 IF (
PRESENT(transport_env)) qs_env%transport_env => transport_env
1153 IF (
PRESENT(oce)) qs_env%oce => oce
1154 IF (
PRESENT(outer_scf_history)) qs_env%outer_scf_history => outer_scf_history
1155 IF (
PRESENT(gradient_history)) qs_env%gradient_history => gradient_history
1156 IF (
PRESENT(variable_history)) qs_env%variable_history => variable_history
1157 IF (
PRESENT(outer_scf_ihistory)) qs_env%outer_scf_ihistory = outer_scf_ihistory
1158 IF (
PRESENT(requires_mo_derivs)) qs_env%requires_mo_derivs = requires_mo_derivs
1159 IF (
PRESENT(has_unit_metric)) qs_env%has_unit_metric = has_unit_metric
1160 IF (
PRESENT(mo_derivs)) qs_env%mo_derivs => mo_derivs
1161 IF (
PRESENT(mo_loc_history)) qs_env%mo_loc_history => mo_loc_history
1162 IF (
PRESENT(run_rtp)) qs_env%run_rtp = run_rtp
1163 IF (
PRESENT(rtp)) qs_env%rtp => rtp
1164 IF (
PRESENT(efield)) qs_env%efield => efield
1165 IF (
PRESENT(active_space)) qs_env%active_space => active_space
1167 IF (
PRESENT(ewald_env))
THEN
1168 IF (
ASSOCIATED(qs_env%ewald_env))
THEN
1169 IF (.NOT.
ASSOCIATED(qs_env%ewald_env, ewald_env))
THEN
1171 DEALLOCATE (qs_env%ewald_env)
1174 qs_env%ewald_env => ewald_env
1176 IF (
PRESENT(ewald_pw))
THEN
1177 IF (
ASSOCIATED(qs_env%ewald_pw))
THEN
1178 IF (.NOT.
ASSOCIATED(ewald_pw, qs_env%ewald_pw))
THEN
1180 DEALLOCATE (qs_env%ewald_pw)
1183 qs_env%ewald_pw => ewald_pw
1185 IF (
PRESENT(scf_control))
THEN
1186 IF (
ASSOCIATED(qs_env%scf_control))
THEN
1187 IF (.NOT.
ASSOCIATED(qs_env%scf_control, scf_control))
THEN
1189 DEALLOCATE (qs_env%scf_control)
1192 qs_env%scf_control => scf_control
1194 IF (
PRESENT(rel_control))
THEN
1195 IF (
ASSOCIATED(qs_env%rel_control))
THEN
1196 IF (.NOT.
ASSOCIATED(qs_env%rel_control, rel_control))
THEN
1198 DEALLOCATE (qs_env%rel_control)
1201 qs_env%rel_control => rel_control
1203 IF (
PRESENT(linres_control))
THEN
1204 IF (
ASSOCIATED(qs_env%linres_control))
THEN
1205 IF (.NOT.
ASSOCIATED(qs_env%linres_control, linres_control))
THEN
1207 DEALLOCATE (qs_env%linres_control)
1210 qs_env%linres_control => linres_control
1213 IF (
PRESENT(rho_external))
THEN
1214 IF (
ASSOCIATED(qs_env%rho_external))
THEN
1215 IF (.NOT.
ASSOCIATED(qs_env%rho_external, rho_external))
THEN
1217 DEALLOCATE (qs_env%rho_external)
1220 qs_env%rho_external => rho_external
1222 IF (
PRESENT(external_vxc)) qs_env%external_vxc => external_vxc
1223 IF (
PRESENT(mask)) qs_env%mask => mask
1225 IF (
PRESENT(embed_pot)) qs_env%embed_pot => embed_pot
1226 IF (
PRESENT(spin_embed_pot)) qs_env%spin_embed_pot => spin_embed_pot
1229 IF (
PRESENT(polar_env)) qs_env%polar_env => polar_env
1231 IF (
PRESENT(qs_charges))
THEN
1232 IF (
ASSOCIATED(qs_env%qs_charges))
THEN
1233 IF (.NOT.
ASSOCIATED(qs_env%qs_charges, qs_charges))
THEN
1235 DEALLOCATE (qs_env%qs_charges)
1238 qs_env%qs_charges => qs_charges
1240 IF (
PRESENT(ks_qmmm_env))
THEN
1241 IF (
ASSOCIATED(qs_env%ks_qmmm_env))
THEN
1242 IF (.NOT.
ASSOCIATED(qs_env%ks_qmmm_env, ks_qmmm_env))
THEN
1244 DEALLOCATE (qs_env%ks_qmmm_env)
1247 qs_env%ks_qmmm_env => ks_qmmm_env
1249 IF (
PRESENT(ks_env))
THEN
1250 IF (
ASSOCIATED(qs_env%ks_env))
THEN
1251 IF (.NOT.
ASSOCIATED(qs_env%ks_env, ks_env))
THEN
1253 DEALLOCATE (qs_env%ks_env)
1256 qs_env%ks_env => ks_env
1258 IF (
PRESENT(wf_history))
THEN
1261 qs_env%wf_history => wf_history
1263 IF (
PRESENT(scf_env))
THEN
1264 IF (
ASSOCIATED(qs_env%scf_env))
THEN
1265 IF (.NOT.
ASSOCIATED(qs_env%scf_env, scf_env))
THEN
1267 DEALLOCATE (qs_env%scf_env)
1270 qs_env%scf_env => scf_env
1272 IF (
PRESENT(xas_env))
THEN
1273 IF (
ASSOCIATED(qs_env%xas_env))
THEN
1274 IF (.NOT.
ASSOCIATED(qs_env%xas_env, xas_env))
THEN
1276 DEALLOCATE (qs_env%xas_env)
1279 qs_env%xas_env => xas_env
1281 IF (
PRESENT(mpools))
THEN
1284 qs_env%mpools => mpools
1286 IF (
PRESENT(rho_atom_set))
THEN
1287 CALL set_local_rho(qs_env%local_rho_set, rho_atom_set=rho_atom_set)
1289 IF (
PRESENT(rho0_atom_set))
THEN
1290 CALL set_local_rho(qs_env%local_rho_set, rho0_atom_set=rho0_atom_set)
1292 IF (
PRESENT(rho0_mpole))
THEN
1293 CALL set_local_rho(qs_env%local_rho_set, rho0_mpole=rho0_mpole)
1295 IF (
PRESENT(rhoz_set))
THEN
1298 IF (
PRESENT(rhoz_tot)) qs_env%local_rho_set%rhoz_tot = rhoz_tot
1299 IF (
PRESENT(ecoul_1c))
THEN
1302 IF (
PRESENT(input))
THEN
1305 qs_env%input => input
1307 IF (
PRESENT(cp_ddapc_env))
THEN
1308 IF (
ASSOCIATED(qs_env%cp_ddapc_env))
THEN
1309 IF (.NOT.
ASSOCIATED(qs_env%cp_ddapc_env, cp_ddapc_env))
THEN
1311 DEALLOCATE (qs_env%cp_ddapc_env)
1314 qs_env%cp_ddapc_env => cp_ddapc_env
1316 IF (
PRESENT(cp_ddapc_ewald))
THEN
1317 qs_env%cp_ddapc_ewald => cp_ddapc_ewald
1319 IF (
PRESENT(x_data)) qs_env%x_data => x_data
1321 IF (
PRESENT(dftb_potential)) qs_env%dftb_potential => dftb_potential
1322 IF (
PRESENT(se_taper))
THEN
1324 qs_env%se_taper => se_taper
1326 IF (
PRESENT(se_store_int_env))
THEN
1328 qs_env%se_store_int_env => se_store_int_env
1330 IF (
PRESENT(se_nddo_mpole))
THEN
1332 qs_env%se_nddo_mpole => se_nddo_mpole
1334 IF (
PRESENT(se_nonbond_env))
THEN
1335 IF (
ASSOCIATED(qs_env%se_nonbond_env))
THEN
1336 IF (.NOT.
ASSOCIATED(qs_env%se_nonbond_env, se_nonbond_env))
THEN
1338 DEALLOCATE (qs_env%se_nonbond_env)
1341 qs_env%se_nonbond_env => se_nonbond_env
1343 IF (
PRESENT(admm_env)) qs_env%admm_env => admm_env
1344 IF (
PRESENT(lri_env)) qs_env%lri_env => lri_env
1345 IF (
PRESENT(lri_density)) qs_env%lri_density => lri_density
1346 IF (
PRESENT(harris_env)) qs_env%harris_env => harris_env
1347 IF (
PRESENT(ec_env)) qs_env%ec_env => ec_env
1348 IF (
PRESENT(exstate_env)) qs_env%exstate_env => exstate_env
1349 IF (
PRESENT(dispersion_env)) qs_env%dispersion_env => dispersion_env
1350 IF (
PRESENT(gcp_env)) qs_env%gcp_env => gcp_env
1351 IF (
PRESENT(wanniercentres)) qs_env%WannierCentres => wanniercentres
1352 IF (
PRESENT(kpoints))
CALL set_ks_env(qs_env%ks_env, kpoints=kpoints)
1355 IF (
PRESENT(eeq)) qs_env%eeq => eeq
1358 IF (
PRESENT(rhs)) qs_env%rhs => rhs
1360 IF (
PRESENT(force))
THEN
1379 CALL init_qs_env(qs_env, globenv=globenv)
1396 IF (
ASSOCIATED(qs_env%mos))
THEN
1397 DO i = 1,
SIZE(qs_env%mos)
1400 DEALLOCATE (qs_env%mos)
1402 IF (
ASSOCIATED(qs_env%mos_last_converged))
THEN
1403 DO i = 1,
SIZE(qs_env%mos_last_converged)
1406 DEALLOCATE (qs_env%mos_last_converged)
1409 IF (
ASSOCIATED(qs_env%mo_derivs))
THEN
1410 DO i = 1,
SIZE(qs_env%mo_derivs)
1413 DEALLOCATE (qs_env%mo_derivs)
1418 IF (
ASSOCIATED(qs_env%rtp))
THEN
1420 DEALLOCATE (qs_env%rtp)
1422 IF (
ASSOCIATED(qs_env%outer_scf_history))
THEN
1423 DEALLOCATE (qs_env%outer_scf_history)
1424 qs_env%outer_scf_ihistory = 0
1426 IF (
ASSOCIATED(qs_env%gradient_history)) &
1427 DEALLOCATE (qs_env%gradient_history)
1428 IF (
ASSOCIATED(qs_env%variable_history)) &
1429 DEALLOCATE (qs_env%variable_history)
1431 IF (
ASSOCIATED(qs_env%local_rho_set))
THEN
1434 IF (
ASSOCIATED(qs_env%hartree_local))
THEN
1437 IF (
ASSOCIATED(qs_env%scf_control))
THEN
1439 DEALLOCATE (qs_env%scf_control)
1441 IF (
ASSOCIATED(qs_env%rel_control))
THEN
1443 DEALLOCATE (qs_env%rel_control)
1446 IF (
ASSOCIATED(qs_env%linres_control))
THEN
1448 DEALLOCATE (qs_env%linres_control)
1451 IF (
ASSOCIATED(qs_env%almo_scf_env))
THEN
1455 IF (
ASSOCIATED(qs_env%ls_scf_env))
THEN
1458 IF (
ASSOCIATED(qs_env%molecular_scf_guess_env))
THEN
1460 DEALLOCATE (qs_env%molecular_scf_guess_env)
1463 IF (
ASSOCIATED(qs_env%transport_env))
THEN
1468 IF (
ASSOCIATED(qs_env%xas_env))
THEN
1470 DEALLOCATE (qs_env%xas_env)
1472 IF (
ASSOCIATED(qs_env%ewald_env))
THEN
1474 DEALLOCATE (qs_env%ewald_env)
1476 IF (
ASSOCIATED(qs_env%ewald_pw))
THEN
1478 DEALLOCATE (qs_env%ewald_pw)
1480 IF (
ASSOCIATED(qs_env%image_matrix))
THEN
1481 DEALLOCATE (qs_env%image_matrix)
1483 IF (
ASSOCIATED(qs_env%ipiv))
THEN
1484 DEALLOCATE (qs_env%ipiv)
1486 IF (
ASSOCIATED(qs_env%image_coeff))
THEN
1487 DEALLOCATE (qs_env%image_coeff)
1490 IF (
ASSOCIATED(qs_env%rho_external))
THEN
1492 DEALLOCATE (qs_env%rho_external)
1494 IF (
ASSOCIATED(qs_env%external_vxc))
THEN
1495 CALL qs_env%external_vxc%release()
1496 DEALLOCATE (qs_env%external_vxc)
1498 IF (
ASSOCIATED(qs_env%mask))
THEN
1499 CALL qs_env%mask%release()
1500 DEALLOCATE (qs_env%mask)
1502 IF (
ASSOCIATED(qs_env%active_space))
THEN
1506 IF (qs_env%given_embed_pot)
THEN
1507 CALL qs_env%embed_pot%release()
1508 DEALLOCATE (qs_env%embed_pot)
1509 IF (
ASSOCIATED(qs_env%spin_embed_pot))
THEN
1510 CALL qs_env%spin_embed_pot%release()
1511 DEALLOCATE (qs_env%spin_embed_pot)
1518 IF (
ASSOCIATED(qs_env%qs_charges))
THEN
1520 DEALLOCATE (qs_env%qs_charges)
1522 IF (
ASSOCIATED(qs_env%ks_env))
THEN
1524 DEALLOCATE (qs_env%ks_env)
1526 IF (
ASSOCIATED(qs_env%ks_qmmm_env))
THEN
1528 DEALLOCATE (qs_env%ks_qmmm_env)
1531 IF (
ASSOCIATED(qs_env%scf_env))
THEN
1533 DEALLOCATE (qs_env%scf_env)
1537 IF (
ASSOCIATED(qs_env%cp_ddapc_env))
THEN
1539 DEALLOCATE (qs_env%cp_ddapc_env)
1543 IF (
ASSOCIATED(qs_env%x_data))
THEN
1546 IF (
ASSOCIATED(qs_env%et_coupling))
THEN
1549 IF (
ASSOCIATED(qs_env%dftb_potential))
THEN
1552 IF (
ASSOCIATED(qs_env%se_taper))
THEN
1555 IF (
ASSOCIATED(qs_env%se_store_int_env))
THEN
1558 IF (
ASSOCIATED(qs_env%se_nddo_mpole))
THEN
1561 IF (
ASSOCIATED(qs_env%se_nonbond_env))
THEN
1563 DEALLOCATE (qs_env%se_nonbond_env)
1565 IF (
ASSOCIATED(qs_env%admm_env))
THEN
1568 IF (
ASSOCIATED(qs_env%lri_env))
THEN
1570 DEALLOCATE (qs_env%lri_env)
1572 IF (
ASSOCIATED(qs_env%lri_density))
THEN
1574 DEALLOCATE (qs_env%lri_density)
1576 IF (
ASSOCIATED(qs_env%harris_env))
THEN
1579 IF (
ASSOCIATED(qs_env%ec_env))
THEN
1582 IF (
ASSOCIATED(qs_env%exstate_env))
THEN
1585 IF (
ASSOCIATED(qs_env%mp2_env))
THEN
1587 DEALLOCATE (qs_env%mp2_env)
1588 NULLIFY (qs_env%mp2_env)
1590 IF (
ASSOCIATED(qs_env%bs_env))
THEN
1593 IF (
ASSOCIATED(qs_env%kg_env))
THEN
1600 IF (
ASSOCIATED(qs_env%gcp_env))
THEN
1604 IF (
ASSOCIATED(qs_env%WannierCentres))
THEN
1605 DO i = 1,
SIZE(qs_env%WannierCentres)
1606 DEALLOCATE (qs_env%WannierCentres(i)%WannierHamDiag)
1607 DEALLOCATE (qs_env%WannierCentres(i)%centres)
1609 DEALLOCATE (qs_env%WannierCentres)
1612 IF (
ASSOCIATED(qs_env%eeq))
DEALLOCATE (qs_env%eeq)
1614 IF (
ASSOCIATED(qs_env%rhs))
DEALLOCATE (qs_env%rhs)
1629 IF (
ASSOCIATED(qs_env%mos_last_converged))
THEN
1630 DO i = 1,
SIZE(qs_env%mos_last_converged)
1633 DEALLOCATE (qs_env%mos_last_converged)
1636 IF (
ASSOCIATED(qs_env%mo_derivs))
THEN
1637 DO i = 1,
SIZE(qs_env%mo_derivs)
1640 DEALLOCATE (qs_env%mo_derivs)
1645 IF (
ASSOCIATED(qs_env%rtp))
THEN
1647 DEALLOCATE (qs_env%rtp)
1649 IF (
ASSOCIATED(qs_env%outer_scf_history))
THEN
1650 DEALLOCATE (qs_env%outer_scf_history)
1651 qs_env%outer_scf_ihistory = 0
1653 IF (
ASSOCIATED(qs_env%gradient_history)) &
1654 DEALLOCATE (qs_env%gradient_history)
1655 IF (
ASSOCIATED(qs_env%variable_history)) &
1656 DEALLOCATE (qs_env%variable_history)
1658 IF (
ASSOCIATED(qs_env%local_rho_set))
THEN
1661 IF (
ASSOCIATED(qs_env%hartree_local))
THEN
1664 IF (
ASSOCIATED(qs_env%scf_control))
THEN
1666 DEALLOCATE (qs_env%scf_control)
1668 IF (
ASSOCIATED(qs_env%rel_control))
THEN
1670 DEALLOCATE (qs_env%rel_control)
1673 IF (
ASSOCIATED(qs_env%linres_control))
THEN
1675 DEALLOCATE (qs_env%linres_control)
1678 IF (
ASSOCIATED(qs_env%almo_scf_env))
THEN
1682 IF (
ASSOCIATED(qs_env%ls_scf_env))
THEN
1685 IF (
ASSOCIATED(qs_env%molecular_scf_guess_env))
THEN
1687 DEALLOCATE (qs_env%molecular_scf_guess_env)
1690 IF (
ASSOCIATED(qs_env%transport_env))
THEN
1695 IF (
ASSOCIATED(qs_env%xas_env))
THEN
1697 DEALLOCATE (qs_env%xas_env)
1699 IF (
ASSOCIATED(qs_env%ewald_env))
THEN
1701 DEALLOCATE (qs_env%ewald_env)
1703 IF (
ASSOCIATED(qs_env%ewald_pw))
THEN
1705 DEALLOCATE (qs_env%ewald_pw)
1707 IF (
ASSOCIATED(qs_env%image_matrix))
THEN
1708 DEALLOCATE (qs_env%image_matrix)
1710 IF (
ASSOCIATED(qs_env%ipiv))
THEN
1711 DEALLOCATE (qs_env%ipiv)
1713 IF (
ASSOCIATED(qs_env%image_coeff))
THEN
1714 DEALLOCATE (qs_env%image_coeff)
1717 IF (
ASSOCIATED(qs_env%rho_external))
THEN
1719 DEALLOCATE (qs_env%rho_external)
1721 IF (
ASSOCIATED(qs_env%external_vxc))
THEN
1722 CALL qs_env%external_vxc%release()
1723 DEALLOCATE (qs_env%external_vxc)
1725 IF (
ASSOCIATED(qs_env%mask))
THEN
1726 CALL qs_env%mask%release()
1727 DEALLOCATE (qs_env%mask)
1729 IF (
ASSOCIATED(qs_env%active_space))
THEN
1733 IF (qs_env%given_embed_pot)
THEN
1734 CALL qs_env%embed_pot%release()
1735 DEALLOCATE (qs_env%embed_pot)
1736 IF (
ASSOCIATED(qs_env%spin_embed_pot))
THEN
1737 CALL qs_env%spin_embed_pot%release()
1738 DEALLOCATE (qs_env%spin_embed_pot)
1745 IF (
ASSOCIATED(qs_env%qs_charges))
THEN
1747 DEALLOCATE (qs_env%qs_charges)
1750 IF (
ASSOCIATED(qs_env%ks_qmmm_env))
THEN
1752 DEALLOCATE (qs_env%ks_qmmm_env)
1755 IF (
ASSOCIATED(qs_env%scf_env))
THEN
1757 DEALLOCATE (qs_env%scf_env)
1759 IF (
ASSOCIATED(qs_env%cp_ddapc_env))
THEN
1761 DEALLOCATE (qs_env%cp_ddapc_env)
1765 IF (
ASSOCIATED(qs_env%x_data))
THEN
1768 IF (
ASSOCIATED(qs_env%et_coupling))
THEN
1771 IF (
ASSOCIATED(qs_env%dftb_potential))
THEN
1774 IF (
ASSOCIATED(qs_env%se_taper))
THEN
1777 IF (
ASSOCIATED(qs_env%se_store_int_env))
THEN
1780 IF (
ASSOCIATED(qs_env%se_nddo_mpole))
THEN
1783 IF (
ASSOCIATED(qs_env%se_nonbond_env))
THEN
1785 DEALLOCATE (qs_env%se_nonbond_env)
1787 IF (
ASSOCIATED(qs_env%admm_env))
THEN
1790 IF (
ASSOCIATED(qs_env%lri_env))
THEN
1792 DEALLOCATE (qs_env%lri_env)
1794 IF (
ASSOCIATED(qs_env%lri_density))
THEN
1796 DEALLOCATE (qs_env%lri_density)
1798 IF (
ASSOCIATED(qs_env%harris_env))
THEN
1801 IF (
ASSOCIATED(qs_env%ec_env))
THEN
1804 IF (
ASSOCIATED(qs_env%exstate_env))
THEN
1807 IF (
ASSOCIATED(qs_env%mp2_env))
THEN
1809 DEALLOCATE (qs_env%mp2_env)
1810 NULLIFY (qs_env%mp2_env)
1812 IF (
ASSOCIATED(qs_env%kg_env))
THEN
1819 IF (
ASSOCIATED(qs_env%gcp_env))
THEN
1823 IF (
ASSOCIATED(qs_env%WannierCentres))
THEN
1824 DO i = 1,
SIZE(qs_env%WannierCentres)
1825 DEALLOCATE (qs_env%WannierCentres(i)%WannierHamDiag)
1826 DEALLOCATE (qs_env%WannierCentres(i)%centres)
1828 DEALLOCATE (qs_env%WannierCentres)
1831 IF (
ASSOCIATED(qs_env%eeq))
DEALLOCATE (qs_env%eeq)
1833 IF (
ASSOCIATED(qs_env%rhs))
DEALLOCATE (qs_env%rhs)
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)
Get the QUICKSTEP environment.
subroutine, public qs_env_part_release(qs_env)
releases part of the given qs_env in order to save memory
subroutine, public qs_env_create(qs_env, globenv)
allocates and intitializes a qs_env
subroutine, public set_qs_env(qs_env, super_cell, mos, qmmm, qmmm_periodic, 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)
Set the QUICKSTEP environment.
Definition of gCP types for DFT calculations.
subroutine, public qs_gcp_release(gcp_env)
...
Types needed for a for a Harris model calculation.
subroutine, public harris_env_release(harris_env)
...
Define the quickstep kind type and their sub types.
subroutine, public qs_ks_qmmm_release(ks_qmmm_env)
releases the ks_qmmm_env (see doc/ReferenceCounting.html)
subroutine, public set_ks_env(ks_env, v_hartree_rspace, s_mstruct_changed, rho_changed, 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.
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.