49 integrate_v_rspace_one_center
61#include "./base/base_uses.f90"
67 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'kg_correction'
87 SUBROUTINE kg_ekin_subset(qs_env, ks_matrix, ekin_mol, calc_force, do_kernel, pmat_ext)
90 REAL(kind=
dp),
INTENT(out) :: ekin_mol
91 LOGICAL,
INTENT(IN) :: calc_force, do_kernel
99 CALL get_qs_env(qs_env, kg_env=kg_env, dft_control=dft_control)
100 lrigpw = dft_control%qs_control%lrigpw
104 CALL kg_ekin_embed_lri(qs_env, kg_env, ks_matrix, ekin_mol, calc_force)
106 CALL kg_ekin_embed(qs_env, kg_env, ks_matrix, ekin_mol, calc_force, &
110 CALL kg_ekin_ri_embed(qs_env, kg_env, ks_matrix, ekin_mol, calc_force, &
113 CALL kg_ekin_atomic(qs_env, ks_matrix, ekin_mol)
117 cpabort(
"Unknown KG embedding method")
132 SUBROUTINE kg_ekin_embed(qs_env, kg_env, ks_matrix, ekin_mol, calc_force, do_kernel, pmat_ext)
136 REAL(kind=
dp),
INTENT(out) :: ekin_mol
137 LOGICAL,
INTENT(IN) :: calc_force, do_kernel
141 CHARACTER(LEN=*),
PARAMETER :: routinen =
'kg_ekin_embed'
143 INTEGER :: handle, iounit, ispin, isub, nspins
144 LOGICAL :: use_virial
145 REAL(kind=
dp) :: alpha, ekin_imol
146 REAL(kind=
dp),
DIMENSION(3, 3) :: xcvirial
148 TYPE(
dbcsr_p_type),
DIMENSION(:),
POINTER :: density_matrix
153 TYPE(
pw_r3d_rs_type),
DIMENSION(:),
POINTER :: rho1_r, rho_r, tau1_r, vxc_rho, vxc_tau
155 TYPE(
qs_rho_type),
POINTER :: old_rho, rho1, rho_struct
159 CALL timeset(routinen, handle)
164 NULLIFY (ks_env, dft_control, old_rho, pw_env, rho_struct, virial, vxc_rho, vxc_tau)
169 dft_control=dft_control, &
172 nspins = dft_control%nspins
173 use_virial = virial%pv_availability .AND. (.NOT. virial%pv_numer)
174 use_virial = use_virial .AND. calc_force
181 IF (do_kernel .AND. .NOT. calc_force .AND. nspins == 1) alpha = 2.0_dp
183 NULLIFY (auxbas_pw_pool)
184 CALL pw_env_get(pw_env, auxbas_pw_pool=auxbas_pw_pool)
187 CALL qs_rho_get(old_rho, rho_ao=density_matrix)
189 ALLOCATE (rho_struct)
192 CALL qs_rho_set(rho_struct, rho_ao=density_matrix)
193 CALL qs_rho_rebuild(rho_struct, qs_env, rebuild_ao=.false., rebuild_grids=.true.)
203 IF (
PRESENT(pmat_ext))
THEN
207 CALL qs_rho_rebuild(rho1, qs_env, rebuild_ao=.false., rebuild_grids=.true.)
213 xc_section => kg_env%xc_section_kg
220 IF (use_virial) virial%pv_xc = 0.0_dp
221 CALL qs_rho_get(rho1, rho_r=rho1_r, rho_g=rho1_g, tau_r=tau1_r)
229 xc_section=xc_section, &
230 compute_virial=use_virial, &
231 virial_xc=virial%pv_xc)
234 rho_struct=rho_struct, &
235 xc_section=xc_section, &
241 IF (
ASSOCIATED(vxc_tau))
THEN
242 cpabort(
" KG with meta-kinetic energy functionals not implemented")
246 IF (
PRESENT(pmat_ext) .AND. .NOT. do_kernel)
THEN
247 CALL qs_rho_get(rho1, rho_ao=density_matrix, rho_r=rho1_r)
253 ekin_imol = ekin_imol +
pw_integral_ab(rho1_r(ispin), vxc_rho(ispin))
259 CALL pw_scale(vxc_rho(ispin), alpha*vxc_rho(ispin)%pw_grid%dvol)
263 CALL integrate_v_rspace(v_rspace=vxc_rho(ispin), &
264 pmat=density_matrix(ispin), hmat=ks_matrix(ispin), &
265 qs_env=qs_env, calculate_forces=calc_force)
266 CALL auxbas_pw_pool%give_back_pw(vxc_rho(ispin))
269 ekin_mol = -ekin_imol
270 xcvirial(1:3, 1:3) = 0.0_dp
272 xcvirial(1:3, 1:3) = xcvirial(1:3, 1:3) - virial%pv_xc(1:3, 1:3)
276 DO isub = 1, kg_env%nsubsets
280 task_list_external=kg_env%subset(isub)%task_list)
282 IF (
PRESENT(pmat_ext))
THEN
284 task_list_external=kg_env%subset(isub)%task_list)
296 IF (use_virial) virial%pv_xc = 0.0_dp
297 CALL qs_rho_get(rho1, rho_r=rho1_r, rho_g=rho1_g, tau_r=tau1_r)
305 xc_section=xc_section, &
306 compute_virial=use_virial, &
307 virial_xc=virial%pv_xc)
310 rho_struct=rho_struct, &
311 xc_section=xc_section, &
318 IF (
PRESENT(pmat_ext) .AND. .NOT. do_kernel)
THEN
325 ekin_imol = ekin_imol +
pw_integral_ab(rho1_r(ispin), vxc_rho(ispin))
331 CALL pw_scale(vxc_rho(ispin), -alpha*vxc_rho(ispin)%pw_grid%dvol)
333 CALL integrate_v_rspace(v_rspace=vxc_rho(ispin), &
334 pmat=density_matrix(ispin), &
335 hmat=ks_matrix(ispin), &
337 calculate_forces=calc_force, &
338 task_list_external=kg_env%subset(isub)%task_list)
340 CALL auxbas_pw_pool%give_back_pw(vxc_rho(ispin))
341 IF (
ASSOCIATED(vxc_tau))
THEN
342 CALL pw_scale(vxc_tau(ispin), -alpha*vxc_tau(ispin)%pw_grid%dvol)
343 CALL integrate_v_rspace(v_rspace=vxc_tau(ispin), &
344 pmat=density_matrix(ispin), &
345 hmat=ks_matrix(ispin), &
347 compute_tau=.true., &
348 calculate_forces=calc_force, &
349 task_list_external=kg_env%subset(isub)%task_list)
351 CALL auxbas_pw_pool%give_back_pw(vxc_tau(ispin))
356 ekin_mol = ekin_mol + ekin_imol
359 xcvirial(1:3, 1:3) = xcvirial(1:3, 1:3) + virial%pv_xc(1:3, 1:3)
365 virial%pv_xc(1:3, 1:3) = xcvirial(1:3, 1:3)
371 DEALLOCATE (rho_struct)
372 IF (
PRESENT(pmat_ext))
THEN
378 CALL timestop(handle)
380 END SUBROUTINE kg_ekin_embed
390 SUBROUTINE kg_ekin_embed_lri(qs_env, kg_env, ks_matrix, ekin_mol, calc_force)
394 REAL(kind=
dp),
INTENT(out) :: ekin_mol
395 LOGICAL :: calc_force
397 CHARACTER(LEN=*),
PARAMETER :: routinen =
'kg_ekin_embed_lri'
399 INTEGER :: color, handle, iatom, ikind, imol, &
400 ispin, isub, natom, nkind, nspins
401 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: atomlist
402 LOGICAL :: use_virial
403 REAL(kind=
dp) :: ekin_imol
404 REAL(kind=
dp),
DIMENSION(3, 3) :: xcvirial
406 TYPE(
dbcsr_p_type),
DIMENSION(:),
POINTER :: density_matrix, ksmat
420 CALL timeset(routinen, handle)
422 NULLIFY (vxc_rho, vxc_tau, old_rho, rho_struct, ks_env)
424 CALL get_qs_env(qs_env, dft_control=dft_control)
431 dft_control=dft_control, &
436 nspins = dft_control%nspins
437 use_virial = virial%pv_availability .AND. (.NOT. virial%pv_numer)
438 use_virial = use_virial .AND. calc_force
440 CALL pw_env_get(pw_env, auxbas_pw_pool=auxbas_pw_pool)
443 CALL qs_rho_get(old_rho, rho_ao=density_matrix)
445 ALLOCATE (rho_struct)
448 CALL qs_rho_set(rho_struct, rho_ao=density_matrix)
449 CALL qs_rho_rebuild(rho_struct, qs_env, rebuild_ao=.false., rebuild_grids=.true.)
451 CALL get_qs_env(qs_env, lri_env=lri_env, lri_density=lri_density, nkind=nkind)
452 IF (lri_env%exact_1c_terms)
THEN
453 cpabort(
" KG with LRI and exact one-center terms not implemented")
455 ALLOCATE (atomlist(natom))
457 lri_v_int => lri_density%lri_coefs(ispin)%lri_kinds
459 lri_v_int(ikind)%v_int = 0.0_dp
461 lri_v_int(ikind)%v_dadr = 0.0_dp
462 lri_v_int(ikind)%v_dfdr = 0.0_dp
471 CALL qs_vxc_create(ks_env=ks_env, rho_struct=rho_struct, xc_section=kg_env%xc_section_kg, &
472 vxc_rho=vxc_rho, vxc_tau=vxc_tau, exc=ekin_imol)
473 IF (
ASSOCIATED(vxc_tau))
THEN
474 cpabort(
" KG with meta-kinetic energy functionals not implemented")
477 CALL pw_scale(vxc_rho(ispin), vxc_rho(ispin)%pw_grid%dvol)
478 lri_v_int => lri_density%lri_coefs(ispin)%lri_kinds
479 CALL integrate_v_rspace_one_center(vxc_rho(ispin), qs_env, lri_v_int, calc_force,
"LRI_AUX")
480 CALL auxbas_pw_pool%give_back_pw(vxc_rho(ispin))
483 ekin_mol = -ekin_imol
484 xcvirial(1:3, 1:3) = 0.0_dp
485 IF (use_virial) xcvirial(1:3, 1:3) = xcvirial(1:3, 1:3) - virial%pv_xc(1:3, 1:3)
488 DO isub = 1, kg_env%nsubsets
491 imol = kg_env%atom_to_molecule(iatom)
492 color = kg_env%subset_of_mol(imol)
493 IF (color == isub) atomlist(iatom) = 1
499 CALL qs_vxc_create(ks_env=ks_env, rho_struct=rho_struct, xc_section=kg_env%xc_section_kg, &
500 vxc_rho=vxc_rho, vxc_tau=vxc_tau, exc=ekin_imol)
501 ekin_mol = ekin_mol + ekin_imol
504 CALL pw_scale(vxc_rho(ispin), -vxc_rho(ispin)%pw_grid%dvol)
505 lri_v_int => lri_density%lri_coefs(ispin)%lri_kinds
506 CALL integrate_v_rspace_one_center(vxc_rho(ispin), qs_env, &
507 lri_v_int, calc_force, &
508 "LRI_AUX", atomlist=atomlist)
510 CALL auxbas_pw_pool%give_back_pw(vxc_rho(ispin))
515 xcvirial(1:3, 1:3) = xcvirial(1:3, 1:3) + virial%pv_xc(1:3, 1:3)
521 virial%pv_xc(1:3, 1:3) = xcvirial(1:3, 1:3)
524 CALL get_qs_env(qs_env, atomic_kind_set=atomic_kind_set)
527 lri_v_int => lri_density%lri_coefs(ispin)%lri_kinds
529 CALL para_env%sum(lri_v_int(ikind)%v_int)
531 ksmat(1)%matrix => ks_matrix(ispin)%matrix
535 pmat(1:nspins, 1:1) => density_matrix(1:nspins)
538 DEALLOCATE (atomlist, ksmat)
543 DEALLOCATE (rho_struct)
545 CALL timestop(handle)
547 END SUBROUTINE kg_ekin_embed_lri
559 SUBROUTINE kg_ekin_ri_embed(qs_env, kg_env, ks_matrix, ekin_mol, calc_force, &
564 REAL(kind=
dp),
INTENT(out) :: ekin_mol
565 LOGICAL :: calc_force, do_kernel
569 CHARACTER(LEN=*),
PARAMETER :: routinen =
'kg_ekin_ri_embed'
571 INTEGER :: color, handle, iatom, ikind, imol, &
572 iounit, ispin, isub, natom, nkind, &
574 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: atomlist
575 INTEGER,
DIMENSION(:, :, :),
POINTER :: cell_to_index
576 LOGICAL :: use_virial
577 REAL(kind=
dp) :: alpha, ekin_imol
578 REAL(kind=
dp),
DIMENSION(3, 3) :: xcvirial
581 TYPE(
dbcsr_p_type),
DIMENSION(:),
POINTER :: density_matrix, ksmat
591 TYPE(
pw_r3d_rs_type),
DIMENSION(:),
POINTER :: rho1_r, tau1_r, vxc_rho, vxc_tau
593 TYPE(
qs_rho_type),
POINTER :: rho, rho1, rho_struct
597 CALL timeset(routinen, handle)
607 dft_control=dft_control, &
612 nspins = dft_control%nspins
613 use_virial = virial%pv_availability .AND. (.NOT. virial%pv_numer)
614 use_virial = use_virial .AND. calc_force
621 IF (do_kernel .AND. .NOT. calc_force .AND. nspins == 1) alpha = 2.0_dp
623 CALL pw_env_get(pw_env, auxbas_pw_pool=auxbas_pw_pool)
629 ALLOCATE (rho_struct)
632 CALL qs_rho_set(rho_struct, rho_ao=density_matrix)
633 CALL qs_rho_rebuild(rho_struct, qs_env, rebuild_ao=.false., rebuild_grids=.true.)
635 CALL get_qs_env(qs_env, atomic_kind_set=atomic_kind_set)
636 ALLOCATE (cell_to_index(1, 1, 1))
637 cell_to_index(1, 1, 1) = 1
638 lri_env => kg_env%lri_env
639 lri_density => kg_env%lri_density
642 ALLOCATE (pmat(nspins, 1))
644 pmat(ispin, 1)%matrix => density_matrix(ispin)%matrix
647 rho_struct, atomic_kind_set, para_env, response_density=.false.)
648 kg_env%lri_density => lri_density
652 IF (
PRESENT(pmat_ext))
THEN
660 CALL qs_rho_rebuild(rho1, qs_env, rebuild_ao=.false., rebuild_grids=.true.)
662 lri_env1 => kg_env%lri_env1
663 lri_rho1 => kg_env%lri_rho1
666 ALLOCATE (pmat(nspins, 1))
668 pmat(ispin, 1)%matrix => pmat_ext(ispin)%matrix
671 rho1, atomic_kind_set, para_env, response_density=.false.)
672 kg_env%lri_rho1 => lri_rho1
679 xc_section => kg_env%xc_section_kg
683 NULLIFY (vxc_rho, vxc_tau)
689 CALL qs_rho_get(rho1, rho_r=rho1_r, rho_g=rho1_g, tau_r=tau1_r)
697 xc_section=xc_section)
701 rho_struct=rho_struct, &
702 xc_section=xc_section, &
709 IF (
ASSOCIATED(vxc_tau))
THEN
710 cpabort(
" KG with meta-kinetic energy functionals not implemented")
714 CALL pw_scale(vxc_rho(ispin), alpha*vxc_rho(ispin)%pw_grid%dvol)
716 IF (
PRESENT(pmat_ext) .AND. .NOT. do_kernel)
THEN
718 lri_v_int => lri_rho1%lri_coefs(ispin)%lri_kinds
721 lri_v_int => lri_density%lri_coefs(ispin)%lri_kinds
723 CALL integrate_v_rspace_one_center(vxc_rho(ispin), qs_env, lri_v_int, calc_force,
"LRI_AUX")
724 CALL auxbas_pw_pool%give_back_pw(vxc_rho(ispin))
728 ekin_mol = -ekin_imol
729 xcvirial(1:3, 1:3) = 0.0_dp
730 IF (use_virial) xcvirial(1:3, 1:3) = xcvirial(1:3, 1:3) - virial%pv_xc(1:3, 1:3)
733 ALLOCATE (atomlist(natom))
734 DO isub = 1, kg_env%nsubsets
737 imol = kg_env%atom_to_molecule(iatom)
738 color = kg_env%subset_of_mol(imol)
739 IF (color == isub) atomlist(iatom) = 1
745 IF (
PRESENT(pmat_ext))
THEN
752 NULLIFY (vxc_rho, vxc_tau)
757 CALL qs_rho_get(rho1, rho_r=rho1_r, rho_g=rho1_g, tau_r=tau1_r)
765 xc_section=xc_section)
770 rho_struct=rho_struct, &
771 xc_section=xc_section, &
776 ekin_mol = ekin_mol + ekin_imol
779 CALL pw_scale(vxc_rho(ispin), -alpha*vxc_rho(ispin)%pw_grid%dvol)
781 IF (
PRESENT(pmat_ext) .AND. .NOT. do_kernel)
THEN
783 lri_v_int => lri_rho1%lri_coefs(ispin)%lri_kinds
786 lri_v_int => lri_density%lri_coefs(ispin)%lri_kinds
789 CALL integrate_v_rspace_one_center(vxc_rho(ispin), qs_env, &
790 lri_v_int, calc_force, &
791 "LRI_AUX", atomlist=atomlist)
793 CALL auxbas_pw_pool%give_back_pw(vxc_rho(ispin))
798 xcvirial(1:3, 1:3) = xcvirial(1:3, 1:3) + virial%pv_xc(1:3, 1:3)
804 virial%pv_xc(1:3, 1:3) = xcvirial(1:3, 1:3)
809 ksmat(1)%matrix => ks_matrix(ispin)%matrix
810 IF (
PRESENT(pmat_ext) .AND. .NOT. do_kernel)
THEN
812 lri_v_int => lri_rho1%lri_coefs(ispin)%lri_kinds
814 CALL para_env%sum(lri_v_int(ikind)%v_int)
819 lri_v_int => lri_density%lri_coefs(ispin)%lri_kinds
821 CALL para_env%sum(lri_v_int(ikind)%v_int)
830 ALLOCATE (pmat(nspins, 1))
832 IF (
PRESENT(pmat_ext) .AND. .NOT. do_kernel)
THEN
835 pmat(ispin, 1)%matrix => pmat_ext(ispin)%matrix
841 pmat(ispin, 1)%matrix => density_matrix(ispin)%matrix
849 DEALLOCATE (atomlist, ksmat)
854 DEALLOCATE (rho_struct)
855 IF (
PRESENT(pmat_ext))
THEN
860 DEALLOCATE (cell_to_index)
862 CALL timestop(handle)
864 END SUBROUTINE kg_ekin_ri_embed
872 SUBROUTINE kg_ekin_atomic(qs_env, ks_matrix, ekin_mol)
875 REAL(kind=
dp),
INTENT(out) :: ekin_mol
877 CHARACTER(LEN=*),
PARAMETER :: routinen =
'kg_ekin_atomic'
879 INTEGER :: handle, ispin, nspins
880 TYPE(
dbcsr_p_type),
DIMENSION(:),
POINTER :: density_matrix, tnadd_matrix
884 NULLIFY (rho, kg_env, density_matrix, tnadd_matrix)
886 CALL timeset(routinen, handle)
887 CALL get_qs_env(qs_env, kg_env=kg_env, rho=rho)
889 nspins =
SIZE(ks_matrix)
893 tnadd_matrix => kg_env%tnadd_mat
897 CALL dbcsr_dot(tnadd_matrix(1)%matrix, density_matrix(ispin)%matrix, ekin_mol)
898 CALL dbcsr_add(ks_matrix(ispin)%matrix, tnadd_matrix(1)%matrix, &
899 alpha_scalar=1.0_dp, beta_scalar=1.0_dp)
904 CALL timestop(handle)
906 END SUBROUTINE kg_ekin_atomic
Define the atomic kind types and their sub types.
Defines control structures, which contain the parameters and the settings for the DFT-based calculati...
subroutine, public dbcsr_add(matrix_a, matrix_b, alpha_scalar, beta_scalar)
...
subroutine, public dbcsr_dot(matrix_a, matrix_b, trace)
Computes the dot product of two matrices, also known as the trace of their matrix product.
various routines to log and control the output. The idea is that decisions about where to log should ...
recursive integer function, public cp_logger_get_default_unit_nr(logger, local, skip_not_ionode)
asks the default unit number of the given logger. try to use cp_logger_get_unit_nr
type(cp_logger_type) function, pointer, public cp_get_default_logger()
returns the default logger
Routines used for Harris functional Kohn-Sham calculation.
subroutine, public create_kernel(qs_env, vxc, vxc_tau, rho, rho1_r, rho1_g, tau1_r, xc_section, compute_virial, virial_xc)
Creation of second derivative xc-potential.
Routines for a Kim-Gordon-like partitioning into molecular subunits.
subroutine, public kg_ekin_subset(qs_env, ks_matrix, ekin_mol, calc_force, do_kernel, pmat_ext)
Calculates the subsystem Hohenberg-Kohn kinetic energy and the forces.
Types needed for a Kim-Gordon-like partitioning into molecular subunits.
Defines the basic variable types.
integer, parameter, public dp
Calculates integral matrices for LRIGPW method lri : local resolution of the identity.
subroutine, public lri_kg_rho_update(rho_struct, qs_env, lri_env, lri_density, atomlist)
...
subroutine, public calculate_lri_densities(lri_env, lri_density, qs_env, pmatrix, cell_to_index, lri_rho_struct, atomic_kind_set, para_env, response_density)
performs the fitting of the density and distributes the fitted density on the grid
contains the types and subroutines for dealing with the lri_env lri : local resolution of the identit...
Calculates forces for LRIGPW method lri : local resolution of the identity.
subroutine, public calculate_lri_forces(lri_env, lri_density, qs_env, pmatrix, atomic_kind_set)
calculates the lri forces
routines that build the Kohn-Sham matrix for the LRIGPW and xc parts
subroutine, public calculate_lri_ks_matrix(lri_env, lri_v_int, h_matrix, atomic_kind_set, cell_to_index)
update of LRIGPW KS matrix
Interface to the message passing library MPI.
container for various plainwaves related things
subroutine, public pw_env_get(pw_env, pw_pools, cube_info, gridlevel_info, auxbas_pw_pool, auxbas_grid, auxbas_rs_desc, auxbas_rs_grid, rs_descs, rs_grids, xc_pw_pool, vdw_pw_pool, poisson_env, interp_section)
returns the various attributes of the pw env
Manages a pool of grids (to be used for example as tmp objects), but can also be used to instantiate ...
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.
Integrate single or product functions over a potential on a RS grid.
methods of the rho structure (defined in qs_rho_types)
subroutine, public qs_rho_update_rho(rho_struct, qs_env, rho_xc_external, local_rho_set, task_list_external, task_list_external_soft, pw_env_external, para_env_external)
updates rho_r and rho_g to the rhorho_ao. if use_kinetic_energy_density also computes tau_r and tau_g...
subroutine, public qs_rho_rebuild(rho, qs_env, rebuild_ao, rebuild_grids, admm, pw_env_external)
rebuilds rho (if necessary allocating and initializing it)
superstucture that hold various representations of the density and keeps track of which ones are vali...
subroutine, public qs_rho_set(rho_struct, rho_ao, rho_ao_im, rho_ao_kp, rho_ao_im_kp, rho_r, drho_r, rho_g, drho_g, tau_r, tau_g, rho_r_valid, drho_r_valid, rho_g_valid, drho_g_valid, tau_r_valid, tau_g_valid, tot_rho_r, tot_rho_g, rho_r_sccs, soft_valid, complex_rho_ao)
...
subroutine, public qs_rho_get(rho_struct, rho_ao, rho_ao_im, rho_ao_kp, rho_ao_im_kp, rho_r, drho_r, rho_g, drho_g, tau_r, tau_g, rho_r_valid, drho_r_valid, rho_g_valid, drho_g_valid, tau_r_valid, tau_g_valid, tot_rho_r, tot_rho_g, rho_r_sccs, soft_valid, complex_rho_ao)
returns info about the density described by this object. If some representation is not available an e...
subroutine, public qs_rho_unset_rho_ao(rho_struct)
Unsets the rho_ao / rho_ao_kp field without calling kpoint_transitional_release().
subroutine, public qs_rho_create(rho)
Allocates a new instance of rho.
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...
subroutine, public qs_vxc_create(ks_env, rho_struct, xc_section, vxc_rho, vxc_tau, exc, just_energy, edisp, dispersion_env, adiabatic_rescale_factor, pw_env_external)
calculates and allocates the xc potential, already reducing it to the dependence on rho and the one o...
Provides all information about an atomic kind.
type of a logger, at the moment it contains just a print level starting at which level it should be l...
Contains all the info needed for KG runs...
stores all the informations relevant to an mpi environment
contained for different pw related things
Manages a pool of grids (to be used for example as tmp objects), but can also be used to instantiate ...
calculation environment to calculate the ks matrix, holds all the needed vars. assumes that the core ...
keeps the density in various representations, keeping track of which ones are valid.