86#include "./base/base_uses.f90"
95 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'qs_dcdr_ao'
96 CHARACTER(len=*),
PARAMETER,
PRIVATE :: dcdr_meta_gga_error = &
97 "Analytical DCDR is not implemented for functionals that depend on the kinetic energy density. "// &
98 "Use PROPERTIES%LINRES%DCDR%APT_FD T to calculate APTs by finite differences."
114 CHARACTER(len=*),
PARAMETER :: routinen =
'apply_op_constant_term'
116 INTEGER :: handle, ispin
117 REAL(kind=
dp) :: energy_hartree
118 TYPE(
cp_fm_type) :: rho_ao_fm, rho_ao_s1, rho_ao_s1_rho_ao, &
120 TYPE(
dbcsr_p_type),
DIMENSION(:),
POINTER :: rho1_ao, rho_ao
127 TYPE(
pw_r3d_rs_type),
DIMENSION(:),
POINTER :: rho_r, v_rspace_new, v_xc, v_xc_tau
128 TYPE(
qs_rho_type),
POINTER :: perturbed_density, rho
129 TYPE(
rho_atom_type),
DIMENSION(:),
POINTER :: rho0_atom_set, rho1_atom_set
150 CALL timeset(routinen, handle)
152 NULLIFY (auxbas_pw_pool, pw_env, v_xc, poisson_env, input, rho, &
157 CALL cp_fm_create(rho_ao_s1_rho_ao, dcdr_env%aoao_fm_struct)
160 IF (
PRESENT(overlap1))
THEN
166 DO ispin = 1, dcdr_env%nspins
167 CALL dbcsr_set(dcdr_env%perturbed_dm_correction(ispin)%matrix, 0._dp)
168 CALL dbcsr_set(dcdr_env%matrix_apply_op_constant(ispin)%matrix, 0.0_dp)
170 CALL parallel_gemm(
'N',
'T', dcdr_env%nao, dcdr_env%nao, dcdr_env%nmo(ispin), &
171 1.0_dp, dcdr_env%mo_coeff(ispin), dcdr_env%mo_coeff(ispin), &
174 CALL parallel_gemm(
'N',
'N', dcdr_env%nao, dcdr_env%nao, dcdr_env%nao, &
175 1.0_dp, rho_ao_fm, s1_ao, &
178 CALL parallel_gemm(
'N',
'N', dcdr_env%nao, dcdr_env%nao, dcdr_env%nao, &
179 -1._dp, rho_ao_s1, rho_ao_fm, &
180 0.0_dp, rho_ao_s1_rho_ao)
182 CALL copy_fm_to_dbcsr(rho_ao_s1_rho_ao, dcdr_env%perturbed_dm_correction(ispin)%matrix)
192 NULLIFY (perturbed_density)
193 ALLOCATE (perturbed_density)
198 CALL qs_rho_get(perturbed_density, rho_ao=rho1_ao)
199 DO ispin = 1, dcdr_env%nspins
200 CALL dbcsr_copy(rho1_ao(ispin)%matrix, dcdr_env%perturbed_dm_correction(ispin)%matrix)
210 CALL qs_rho_get(rho, rho_ao=rho_ao, rho_r=rho_r)
212 energy_hartree = 0.0_dp
219 CALL pw_env_get(pw_env, auxbas_pw_pool=auxbas_pw_pool, &
220 poisson_env=poisson_env)
224 ALLOCATE (v_rspace_new(dcdr_env%nspins))
225 CALL auxbas_pw_pool%create_pw(v_hartree_gspace)
226 CALL auxbas_pw_pool%create_pw(v_hartree_rspace)
229 CALL auxbas_pw_pool%create_pw(rho1_tot_gspace)
231 CALL qs_rho_get(perturbed_density, rho_g=rho1_g)
232 CALL pw_copy(rho1_g(1), rho1_tot_gspace)
233 DO ispin = 2, dcdr_env%nspins
234 CALL pw_axpy(rho1_g(ispin), rho1_tot_gspace)
240 CALL pw_transfer(v_hartree_gspace, v_hartree_rspace)
242 CALL auxbas_pw_pool%give_back_pw(rho1_tot_gspace)
245 CALL qs_fxc_create(qs_env, rho, perturbed_density, rho0_atom_set, xc_section, &
246 .false., v_xc, v_xc_tau, rho1_atom_set)
249 DO ispin = 1, dcdr_env%nspins
250 v_rspace_new(ispin) = v_xc(ispin)
259 CALL pw_scale(v_hartree_rspace, v_hartree_rspace%pw_grid%dvol)
260 DO ispin = 1, dcdr_env%nspins
261 CALL pw_scale(v_rspace_new(ispin), v_rspace_new(ispin)%pw_grid%dvol)
264 DO ispin = 1, dcdr_env%nspins
265 CALL dbcsr_set(dcdr_env%matrix_apply_op_constant(ispin)%matrix, 0.0_dp)
266 CALL pw_axpy(v_hartree_rspace, v_rspace_new(ispin))
267 IF (dcdr_env%nspins == 1)
THEN
268 CALL pw_scale(v_rspace_new(1), 2.0_dp)
271 CALL integrate_v_rspace(v_rspace=v_rspace_new(ispin), &
272 hmat=dcdr_env%matrix_apply_op_constant(ispin), &
274 calculate_forces=.false.)
277 CALL auxbas_pw_pool%give_back_pw(v_hartree_gspace)
278 CALL auxbas_pw_pool%give_back_pw(v_hartree_rspace)
279 DO ispin = 1, dcdr_env%nspins
280 CALL auxbas_pw_pool%give_back_pw(v_rspace_new(ispin))
282 DEALLOCATE (v_rspace_new)
284 IF (
ASSOCIATED(v_xc_tau))
THEN
285 CALL pw_scale(v_xc_tau(1), 2._dp*v_xc_tau(1)%pw_grid%dvol)
286 CALL integrate_v_rspace(v_rspace=v_xc_tau(1), &
287 hmat=dcdr_env%matrix_apply_op_constant(1), &
289 compute_tau=.true., &
290 calculate_forces=.false.)
292 CALL auxbas_pw_pool%give_back_pw(v_xc_tau(1))
293 DEALLOCATE (v_xc_tau)
297 DEALLOCATE (perturbed_density)
299 CALL timestop(handle)
316 CHARACTER(len=*),
PARAMETER :: routinen =
'd_core_charge_density_dR'
318 INTEGER :: beta, handle
329 CALL timeset(routinen, handle)
333 NULLIFY (pw_env, auxbas_pw_pool, pw_pools, poisson_env, dft_control, &
336 CALL get_qs_env(qs_env=qs_env, pw_env=pw_env, rho=rho, &
337 dft_control=dft_control)
339 CALL pw_env_get(pw_env, auxbas_pw_pool=auxbas_pw_pool, poisson_env=poisson_env, &
343 CALL auxbas_pw_pool%create_pw(v_hartree_gspace)
344 CALL auxbas_pw_pool%create_pw(v_hartree_rspace)
346 CALL auxbas_pw_pool%create_pw(drho_g)
355 beta=beta, lambda=dcdr_env%lambda)
357 vhartree=v_hartree_gspace)
358 CALL pw_transfer(v_hartree_gspace, v_hartree_rspace)
359 CALL pw_scale(v_hartree_rspace, v_hartree_rspace%pw_grid%dvol)
362 CALL integrate_v_rspace(v_rspace=v_hartree_rspace, &
363 hmat=dcdr_env%matrix_core_charge_1(beta), &
365 calculate_forces=.false.)
368 CALL auxbas_pw_pool%give_back_pw(drho_g)
369 CALL auxbas_pw_pool%give_back_pw(v_hartree_rspace)
370 CALL auxbas_pw_pool%give_back_pw(v_hartree_gspace)
372 CALL timestop(handle)
385 CHARACTER(LEN=*),
PARAMETER :: routinen =
'core_dR'
387 CHARACTER(LEN=default_string_length) :: my_basis_type
388 INTEGER :: handle, nder
389 LOGICAL :: calculate_forces
391 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
POINTER :: matrix_h, matrix_p_pass
395 CALL timeset(routinen, handle)
402 calculate_forces = .false.
404 my_basis_type =
"ORB"
407 matrix_p_pass(1:1, 1:1) => rho_ao(1:1)
408 CALL core_matrices(qs_env, matrix_h, matrix_p_pass, calculate_forces, nder, &
411 CALL timestop(handle)
425 CHARACTER(len=*),
PARAMETER :: routinen =
'd_vhxc_dR'
427 INTEGER :: handle, idir, ispin
436 TYPE(
pw_r3d_rs_type),
DIMENSION(:),
POINTER :: drho_r, dtau_r, rho_r, v_xc, v_xc_tau
438 TYPE(
rho_atom_type),
DIMENSION(:),
POINTER :: rho0_atom_set, rho1_atom_set
441 CALL timeset(routinen, handle)
447 CALL qs_rho_get(rho, rho_ao=rho_ao, rho_r=rho_r)
452 ALLOCATE (drho_r(dcdr_env%nspins))
453 ALLOCATE (drho_g(dcdr_env%nspins))
455 CALL pw_env_get(pw_env, auxbas_pw_pool=auxbas_pw_pool, &
456 pw_pools=pw_pools, poisson_env=poisson_env)
457 CALL auxbas_pw_pool%create_pw(v_hartree_gspace)
458 CALL auxbas_pw_pool%create_pw(v_hartree_rspace)
460 DO ispin = 1, dcdr_env%nspins
461 CALL auxbas_pw_pool%create_pw(drho_r(ispin))
462 CALL auxbas_pw_pool%create_pw(drho_g(ispin))
464 CALL auxbas_pw_pool%create_pw(drho_g_total)
465 CALL auxbas_pw_pool%create_pw(drho_r_total)
473 DO ispin = 1, dcdr_env%nspins
479 drho=drho_r(ispin), &
480 drho_gspace=drho_g(ispin), &
482 beta=idir, lambda=dcdr_env%lambda)
484 CALL pw_axpy(drho_g(ispin), drho_g_total)
485 CALL pw_axpy(drho_r(ispin), drho_r_total)
489 vhartree=v_hartree_gspace)
490 CALL pw_transfer(v_hartree_gspace, v_hartree_rspace)
494 IF (
ASSOCIATED(drho_r))
THEN
495 CALL qs_rho_set(drho, rho_r=drho_r, rho_r_valid=.true.)
497 IF (
ASSOCIATED(drho_g))
THEN
498 CALL qs_rho_set(drho, rho_g=drho_g, rho_g_valid=.true.)
500 IF (
ASSOCIATED(dtau_r))
THEN
501 CALL qs_rho_set(drho, tau_r=dtau_r, tau_r_valid=.true.)
504 NULLIFY (v_xc, v_xc_tau)
505 CALL qs_fxc_create(qs_env, rho, drho, rho0_atom_set, xc_section, .false., &
506 v_xc, v_xc_tau, rho1_atom_set)
510 IF (
ASSOCIATED(v_xc_tau))
THEN
511 cpabort(dcdr_meta_gga_error)
517 DO ispin = 1, dcdr_env%nspins
519 CALL pw_scale(v_xc(ispin), v_xc(ispin)%pw_grid%dvol)
520 CALL pw_axpy(v_hartree_rspace, v_xc(ispin), v_hartree_rspace%pw_grid%dvol)
522 CALL integrate_v_rspace(v_rspace=v_xc(ispin), &
523 hmat=dcdr_env%matrix_d_vhxc_dR(idir, ispin), &
525 calculate_forces=.false.)
528 CALL auxbas_pw_pool%give_back_pw(v_xc(ispin))
533 CALL auxbas_pw_pool%give_back_pw(v_hartree_gspace)
534 CALL auxbas_pw_pool%give_back_pw(v_hartree_rspace)
535 CALL auxbas_pw_pool%give_back_pw(drho_g_total)
536 CALL auxbas_pw_pool%give_back_pw(drho_r_total)
538 DO ispin = 1, dcdr_env%nspins
539 CALL auxbas_pw_pool%give_back_pw(drho_g(ispin))
540 CALL auxbas_pw_pool%give_back_pw(drho_r(ispin))
546 CALL timestop(handle)
561 CHARACTER(LEN=*),
PARAMETER :: routinen =
'vhxc_R_perturbed_basis_functions'
563 INTEGER :: handle, ispin
564 TYPE(
dbcsr_p_type),
DIMENSION(:),
POINTER :: matrix_vhxc_dbasis
565 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
POINTER :: matrix_p
568 TYPE(
pw_r3d_rs_type),
DIMENSION(:),
POINTER :: v_hxc_r, v_tau_rspace
575 CALL timeset(routinen, handle)
577 NULLIFY (rho_struct, energy, input, ks_env, pw_env, matrix_p)
584 v_hartree_rspace=v_hartree_r)
585 CALL qs_rho_get(rho_struct, rho_ao_kp=matrix_p)
588 NULLIFY (auxbas_pw_pool)
589 CALL pw_env_get(pw_env, auxbas_pw_pool=auxbas_pw_pool)
594 NULLIFY (v_hxc_r, v_tau_rspace)
595 CALL qs_vxc_create(ks_env=ks_env, rho_struct=rho_struct, xc_section=xc_section, &
596 vxc_rho=v_hxc_r, vxc_tau=v_tau_rspace, exc=energy%exc)
598 DO ispin = 1, dcdr_env%nspins
599 CALL pw_scale(v_hxc_r(ispin), v_hxc_r(ispin)%pw_grid%dvol)
602 CALL pw_axpy(v_hartree_r, v_hxc_r(ispin), 1._dp)
604 matrix_vhxc_dbasis => dcdr_env%matrix_vhxc_perturbed_basis(ispin, :)
605 CALL integrate_v_dbasis(v_rspace=v_hxc_r(ispin), &
606 matrix_p=matrix_p(ispin, 1)%matrix, &
607 matrix_vhxc_dbasis=matrix_vhxc_dbasis, &
609 lambda=dcdr_env%lambda)
611 CALL auxbas_pw_pool%give_back_pw(v_hxc_r(ispin))
616 CALL timestop(handle)
631 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
632 CHARACTER(LEN=*),
INTENT(IN) :: basis_type
635 INTEGER,
INTENT(IN) :: lambda
636 LOGICAL,
INTENT(IN) :: direction_or
638 CHARACTER(len=*),
PARAMETER :: routinen =
'hr_mult_by_delta_1d'
640 INTEGER :: handle, iatom, icol, ikind, irow, jatom, &
641 jkind, ldsab, mepos, nkind, nseta, &
643 INTEGER,
DIMENSION(3) :: cell
644 INTEGER,
DIMENSION(:),
POINTER :: la_max, la_min, lb_max, lb_min, npgfa, &
646 INTEGER,
DIMENSION(:, :),
POINTER :: first_sgfa, first_sgfb
647 LOGICAL :: do_symmetric, found
648 REAL(kind=
dp),
DIMENSION(3) :: rab
649 REAL(kind=
dp),
DIMENSION(:),
POINTER :: set_radius_a, set_radius_b
650 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: k_block, rpgfa, rpgfb, scon_a, scon_b, &
655 DIMENSION(:),
POINTER :: nl_iterator
657 CALL timeset(routinen, handle)
659 nkind =
SIZE(qs_kind_set)
662 cpassert(
SIZE(sab_nl) > 0)
666 ALLOCATE (basis_set_list(nkind))
692 iatom=iatom, jatom=jatom, r=rab, cell=cell)
693 basis_set_a => basis_set_list(ikind)%gto_basis_set
694 IF (.NOT.
ASSOCIATED(basis_set_a)) cycle
695 basis_set_b => basis_set_list(jkind)%gto_basis_set
696 IF (.NOT.
ASSOCIATED(basis_set_b)) cycle
698 first_sgfa => basis_set_a%first_sgf
699 la_max => basis_set_a%lmax
700 la_min => basis_set_a%lmin
701 npgfa => basis_set_a%npgf
702 nseta = basis_set_a%nset
703 nsgfa => basis_set_a%nsgf_set
704 rpgfa => basis_set_a%pgf_radius
705 set_radius_a => basis_set_a%set_radius
706 scon_a => basis_set_a%scon
707 zeta => basis_set_a%zet
709 first_sgfb => basis_set_b%first_sgf
710 lb_max => basis_set_b%lmax
711 lb_min => basis_set_b%lmin
712 npgfb => basis_set_b%npgf
713 nsetb = basis_set_b%nset
714 nsgfb => basis_set_b%nsgf_set
715 rpgfb => basis_set_b%pgf_radius
716 set_radius_b => basis_set_b%set_radius
717 scon_b => basis_set_b%scon
718 zetb => basis_set_b%zet
720 IF (do_symmetric)
THEN
721 IF (iatom <= jatom)
THEN
737 IF (direction_or)
THEN
738 IF (jatom /= lambda) k_block(:, :) = 0._dp
739 ELSE IF (.NOT. direction_or)
THEN
740 IF (iatom /= lambda) k_block(:, :) = 0._dp
747 DEALLOCATE (basis_set_list)
749 CALL timestop(handle)
Defines control structures, which contain the parameters and the settings for the DFT-based calculati...
subroutine, public dbcsr_copy(matrix_b, matrix_a, name, keep_sparsity, keep_imaginary)
...
subroutine, public dbcsr_get_block_p(matrix, row, col, block, found, row_size, col_size)
...
subroutine, public dbcsr_set(matrix, alpha)
...
DBCSR operations in CP2K.
subroutine, public copy_dbcsr_to_fm(matrix, fm)
Copy a DBCSR matrix to a BLACS matrix.
subroutine, public copy_fm_to_dbcsr(fm, matrix, keep_sparsity)
Copy a BLACS matrix to a dbcsr matrix.
represent a full matrix distributed on many processors
subroutine, public cp_fm_create(matrix, matrix_struct, name, nrow, ncol, set_zero)
creates a new full matrix with the given structure
various routines to log and control the output. The idea is that decisions about where to log should ...
type(cp_logger_type) function, pointer, public cp_get_default_logger()
returns the default logger
Defines the basic variable types.
integer, parameter, public dp
integer, parameter, public default_string_length
Provides Cartesian and spherical orbital pointers and indices.
integer, dimension(:), allocatable, public ncoset
basic linear algebra operations for full matrixes
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
functions related to the poisson solver on regular grids
Manages a pool of grids (to be used for example as tmp objects), but can also be used to instantiate ...
Calculate the plane wave density by collocating the primitive Gaussian functions (pgf).
subroutine, public calculate_drho_elec_dr(matrix_p, matrix_p_kp, drho, drho_gspace, qs_env, soft_valid, basis_type, beta, lambda)
Computes the gradient wrt. nuclear coordinates of a density on the grid The density is given in terms...
subroutine, public calculate_drho_core(drho_core, qs_env, beta, lambda)
Computes the derivative of the density of the core charges with respect to the nuclear coordinates on...
Calculation of the core Hamiltonian integral matrix <a|H|b> over Cartesian Gaussian-type functions.
subroutine, public core_matrices(qs_env, matrix_h, matrix_p, calculate_forces, nder, ec_env, dcdr_env, ec_env_matrices, ext_kpoints, basis_type, debug_forces, debug_stress, atcore)
...
Calculate the derivatives of the MO coefficients wrt nuclear coordinates.
subroutine, public core_dr(qs_env, dcdr_env)
Core Hamiltonian contributions to the operator (the pseudopotentials)
subroutine, public apply_op_constant_term(qs_env, dcdr_env, overlap1)
Build the perturbed density matrix correction depending on the overlap derivative.
subroutine, public hr_mult_by_delta_1d(matrix, qs_kind_set, basis_type, sab_nl, lambda, direction_or)
Enforce that one of the basis functions in < a | O | b > is centered on atom lambda.
subroutine, public vhxc_r_perturbed_basis_functions(qs_env, dcdr_env)
The derivatives of the basis functions over which the HXC potential is integrated,...
subroutine, public d_vhxc_dr(qs_env, dcdr_env)
The derivatives of the basis functions going into the HXC potential wrt nuclear positions.
subroutine, public d_core_charge_density_dr(qs_env, dcdr_env)
Calculate the derivative of the Hartree term due to the core charge density.
subroutine, public get_qs_env(qs_env, atomic_kind_set, qs_kind_set, cell, super_cell, cell_ref, use_ref_cell, kpoints, dft_control, mos, sab_orb, sab_all, qmmm, qmmm_periodic, mimic, sac_ae, sac_ppl, sac_lri, sap_ppnl, sab_vdw, sab_scp, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_almo, sab_kp, sab_kp_nosym, sab_cneo, particle_set, energy, force, matrix_h, matrix_h_im, matrix_ks, matrix_ks_im, matrix_vxc, run_rtp, rtp, matrix_h_kp, matrix_h_im_kp, matrix_ks_kp, matrix_ks_im_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, matrix_s_ri_aux_kp, matrix_s, matrix_s_ri_aux, matrix_w, matrix_p_mp2, matrix_p_mp2_admm, matrix_vhxc, 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, xcint_weights, rho_core, rho_nlcc, rho_nlcc_g, ks_env, ks_qmmm_env, wf_history, scf_env, local_particles, local_molecules, distribution_2d, dbcsr_dist, molecule_kind_set, molecule_set, subsys, cp_subsys, oce, local_rho_set, rho_atom_set, task_list, task_list_soft, rho0_atom_set, rho0_mpole, rhoz_set, rhoz_cneo_set, ecoul_1c, rho0_s_rs, rho0_s_gs, rhoz_cneo_s_rs, rhoz_cneo_s_gs, do_kpoints, has_unit_metric, requires_mo_derivs, mo_derivs, mo_loc_history, nkind, natom, nelectron_total, nelectron_spin, efield, neighbor_list_id, linres_control, xas_env, virial, cp_ddapc_env, cp_ddapc_ewald, outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, results, se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, lri_env, lri_density, exstate_env, ec_env, harris_env, dispersion_env, gcp_env, vee, rho_external, external_vxc, mask, mp2_env, bs_env, kg_env, wanniercentres, atprop, ls_scf_env, do_transport, transport_env, v_hartree_rspace, s_mstruct_changed, rho_changed, potential_changed, forces_up_to_date, mscfg_env, almo_scf_env, gradient_history, variable_history, embed_pot, spin_embed_pot, polar_env, mos_last_converged, eeq, rhs, do_rixs, tb_tblite)
Get the QUICKSTEP environment.
Setup Routine for Fxc Potentials.
subroutine, public qs_fxc_create(qs_env, rho0_struct, rho1_struct, rho0_atom_set, xc_section, do_onecenter, fxc_rho, fxc_tau, rho1_atom_set, do_scale, is_triplet, spinflip, no_weights, uf_grid_results, pw_env_ext, kind_set_external, para_env_external, compute_virial, virial_xc)
...
Some utility functions for the calculation of integrals.
subroutine, public basis_set_list_setup(basis_set_list, basis_type, qs_kind_set)
Set up an easy accessible list of the basis sets for all kinds.
Integrate single or product functions over a potential on a RS grid.
Define the quickstep kind type and their sub types.
subroutine, public get_ks_env(ks_env, v_hartree_rspace, s_mstruct_changed, rho_changed, exc_accint, 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_vhxc, 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, xcint_weights, rho_core, rho_nlcc, rho_nlcc_g, vee, neighbor_list_id, sab_orb, sab_all, sac_ae, sac_ppl, sac_lri, sap_ppnl, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_vdw, sab_scp, sab_almo, sab_kp, sab_kp_nosym, sab_cneo, task_list, task_list_soft, kpoints, do_kpoints, atomic_kind_set, qs_kind_set, cell, cell_ref, use_ref_cell, particle_set, energy, force, local_particles, local_molecules, molecule_kind_set, molecule_set, subsys, cp_subsys, virial, results, atprop, nkind, natom, dft_control, dbcsr_dist, distribution_2d, pw_env, para_env, blacs_env, nelectron_total, nelectron_spin)
...
Type definitiona for linear response calculations.
Define the neighbor list data types and the corresponding functionality.
subroutine, public neighbor_list_iterator_create(iterator_set, nl, search, nthread)
Neighbor list iterator functions.
subroutine, public neighbor_list_iterator_release(iterator_set)
...
subroutine, public get_neighbor_list_set_p(neighbor_list_sets, nlist, symmetric)
Return the components of the first neighbor list set.
integer function, public neighbor_list_iterate(iterator_set, mepos)
...
subroutine, public get_iterator_info(iterator_set, mepos, ikind, jkind, nkind, ilist, nlist, inode, nnode, iatom, jatom, r, cell)
...
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_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, native_skala_atom_force, qs_env_external, native_gapw_composite_override, native_skala_defer_to_atom_composite)
calculates and allocates the xc potential, already reducing it to the dependence on rho and the one o...
type of a logger, at the moment it contains just a print level starting at which level it should be l...
contained for different pw related things
environment for the poisson solver
to create arrays of pools
Manages a pool of grids (to be used for example as tmp objects), but can also be used to instantiate ...
Provides all information about a quickstep kind.
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.