28 dbcsr_type_antisymmetric
44#include "./base/base_uses.f90"
49 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'qs_operators_ao'
73 SUBROUTINE build_exp_ikr_matrix(qs_env, op_sm_set, kvec, sab_orb_external, basis_type, force_periodic, cell_external)
77 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(IN) :: kvec
79 OPTIONAL,
POINTER :: sab_orb_external
80 CHARACTER(LEN=*),
OPTIONAL :: basis_type
81 LOGICAL,
OPTIONAL :: force_periodic
82 TYPE(
cell_type),
OPTIONAL,
POINTER :: cell_external
84 CHARACTER(LEN=*),
PARAMETER :: routinen =
'build_exp_ikr_matrix'
86 COMPLEX(KIND=dp),
ALLOCATABLE :: expab(:, :)
87 INTEGER :: handle, i, iatom, icol, ikind, inode, irow, iset, jatom, jkind, jset, last_jatom, &
88 ldsa, ldsb, ldwork, ncoa, ncob, nkind, nkvec, nseta, nsetb, reim, sgfa, sgfb
89 INTEGER,
DIMENSION(3) :: perd0
90 INTEGER,
DIMENSION(:),
POINTER :: la_max, la_min, lb_max, lb_min, npgfa, &
92 INTEGER,
DIMENSION(:, :),
POINTER :: first_sgfa, first_sgfb
93 LOGICAL :: found, my_force_periodic, new_atom_b
95 REAL(kind=
dp),
DIMENSION(3) :: ra, rab, rb
96 REAL(kind=
dp),
DIMENSION(:),
POINTER :: set_radius_a, set_radius_b
97 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: rpgfa, rpgfb, sphi_a, sphi_b, work, &
99 TYPE(
block_p_type),
ALLOCATABLE,
DIMENSION(:, :) :: op_cossin
104 DIMENSION(:),
POINTER :: nl_iterator
108 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
111 CALL timeset(routinen, handle)
113 cpassert(
SIZE(kvec, 1) == 3)
114 nkvec =
SIZE(kvec, 2)
116 cpassert(
SIZE(op_sm_set, 1) == 2)
117 cpassert(
SIZE(op_sm_set, 2) == nkvec)
120 cpassert(
ASSOCIATED(op_sm_set(reim, i)%matrix))
122 CALL dbcsr_set(op_sm_set(reim, i)%matrix, 0.0_dp)
126 NULLIFY (qs_kind, qs_kind_set, particle_set, sab_orb, cell)
127 CALL get_qs_env(qs_env=qs_env, qs_kind_set=qs_kind_set, &
128 particle_set=particle_set, cell=cell, sab_orb=sab_orb)
129 cpassert(
ASSOCIATED(cell))
130 cpassert(
ASSOCIATED(qs_kind_set))
131 cpassert(
ASSOCIATED(particle_set))
132 IF (
PRESENT(cell_external))
THEN
133 cpassert(
ASSOCIATED(cell_external))
134 cell => cell_external
137 IF (
PRESENT(sab_orb_external))
THEN
138 cpassert(
ASSOCIATED(sab_orb_external))
139 sab_orb => sab_orb_external
141 cpassert(
ASSOCIATED(sab_orb))
143 my_force_periodic = .false.
144 IF (
PRESENT(force_periodic)) my_force_periodic = force_periodic
146 IF (my_force_periodic)
THEN
147 perd0(:) = cell%perd(:)
151 nkind =
SIZE(qs_kind_set)
152 CALL get_qs_kind_set(qs_kind_set=qs_kind_set, maxco=ldwork, basis_type=basis_type)
153 ALLOCATE (expab(ldwork, ldwork), work(ldwork, ldwork))
155 ALLOCATE (op_cossin(2, nkvec))
157 ALLOCATE (basis_set_list(nkind))
159 qs_kind => qs_kind_set(ikind)
160 CALL get_qs_kind(qs_kind=qs_kind, basis_set=basis_set_a, basis_type=basis_type)
161 IF (
ASSOCIATED(basis_set_a))
THEN
162 basis_set_list(ikind)%gto_basis_set => basis_set_a
164 NULLIFY (basis_set_list(ikind)%gto_basis_set)
172 iatom=iatom, jatom=jatom, r=rab)
173 basis_set_a => basis_set_list(ikind)%gto_basis_set
174 IF (.NOT.
ASSOCIATED(basis_set_a)) cycle
175 basis_set_b => basis_set_list(jkind)%gto_basis_set
176 IF (.NOT.
ASSOCIATED(basis_set_b)) cycle
178 ra(:) =
pbc(particle_set(iatom)%r(:), cell)
179 rb(:) = ra(:) + rab(:)
181 first_sgfa => basis_set_a%first_sgf
182 la_max => basis_set_a%lmax
183 la_min => basis_set_a%lmin
184 npgfa => basis_set_a%npgf
185 nsgfa => basis_set_a%nsgf_set
186 rpgfa => basis_set_a%pgf_radius
187 set_radius_a => basis_set_a%set_radius
188 sphi_a => basis_set_a%sphi
189 zeta => basis_set_a%zet
191 first_sgfb => basis_set_b%first_sgf
192 lb_max => basis_set_b%lmax
193 lb_min => basis_set_b%lmin
194 npgfb => basis_set_b%npgf
195 nsgfb => basis_set_b%nsgf_set
196 rpgfb => basis_set_b%pgf_radius
197 set_radius_b => basis_set_b%set_radius
198 sphi_b => basis_set_b%sphi
199 zetb => basis_set_b%zet
201 nseta = basis_set_a%nset
202 nsetb = basis_set_b%nset
203 ldsa =
SIZE(sphi_a, 1)
204 ldsb =
SIZE(sphi_b, 1)
205 IF (inode == 1) last_jatom = 0
207 IF (jatom /= last_jatom)
THEN
215 IF (iatom <= jatom)
THEN
225 NULLIFY (op_cossin(reim, i)%block)
227 row=irow, col=icol, block=op_cossin(reim, i)%block, found=found)
229 IF (
ASSOCIATED(op_cossin(1, i)%block) .NEQV.
ASSOCIATED(op_cossin(2, i)%block))
THEN
230 cpabort(
"cosine and sine blocks should have the same topology")
237 ncoa = npgfa(iset)*
ncoset(la_max(iset))
238 sgfa = first_sgfa(1, iset)
240 IF (set_radius_a(iset) + set_radius_b(jset) < dab) cycle
241 ncob = npgfb(jset)*
ncoset(lb_max(jset))
242 sgfb = first_sgfb(1, jset)
245 IF (.NOT.
ASSOCIATED(op_cossin(1, i)%block)) cycle
246 CALL expikr(la_max(iset), npgfa(iset), zeta(:, iset), rpgfa(:, iset), &
247 la_min(iset), lb_max(jset), npgfb(jset), zetb(:, jset), &
248 rpgfb(:, jset), lb_min(jset), ra, rb, kvec(:, i), expab)
250 iatom, ncoa, nsgfa(iset), sgfa, sphi_a, ldsa, &
251 jatom, ncob, nsgfb(jset), sgfb, sphi_b, ldsb, &
259 DEALLOCATE (op_cossin, expab, work, basis_set_list)
261 IF (my_force_periodic) cell%perd(:) = perd0(:)
263 CALL timestop(handle)
280 LOGICAL,
INTENT(IN),
OPTIONAL :: minimum_image
282 CHARACTER(len=*),
PARAMETER :: routinen =
'build_lin_mom_matrix'
284 INTEGER :: handle, i, iatom, icol, ikind, inode, irow, iset, jatom, jkind, jset, last_jatom, &
285 ldai, maxco, maxlgto, maxsgf, ncoa, ncob, nkind, nseta, nsetb, sgfa, sgfb
286 INTEGER,
DIMENSION(:),
POINTER :: la_max, lb_max, npgfa, npgfb, nsgfa, &
288 INTEGER,
DIMENSION(:, :),
POINTER :: first_sgfa, first_sgfb
289 LOGICAL :: do_symmetric, found, my_minimum_image, &
291 REAL(kind=
dp) :: alpha, dab, lxo2, lyo2, lzo2
292 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:),
TARGET :: rr_work
293 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :) :: work
294 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :, :), &
296 REAL(kind=
dp),
DIMENSION(3) :: rab
297 REAL(kind=
dp),
DIMENSION(:),
POINTER :: set_radius_a, set_radius_b
298 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: rpgfa, rpgfb, sphi_a, sphi_b, zeta, zetb
299 TYPE(
block_p_type),
ALLOCATABLE,
DIMENSION(:) :: integral
304 DIMENSION(:),
POINTER :: nl_iterator
307 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
310 CALL timeset(routinen, handle)
312 NULLIFY (cell, sab_nl, qs_kind_set)
315 qs_kind_set=qs_kind_set, &
318 nkind =
SIZE(qs_kind_set)
320 my_minimum_image = .false.
321 IF (
PRESENT(minimum_image))
THEN
322 my_minimum_image = minimum_image
323 lxo2 = norm2(cell%hmat(:, 1))/2.0_dp
324 lyo2 = norm2(cell%hmat(:, 2))/2.0_dp
325 lzo2 = norm2(cell%hmat(:, 3))/2.0_dp
330 IF (do_symmetric)
THEN
331 CALL get_qs_env(qs_env=qs_env, sab_orb=sab_nl)
333 CALL get_qs_env(qs_env=qs_env, sab_all=sab_nl)
342 ldai =
ncoset(maxlgto + 1)
345 ALLOCATE (rr_work(ldai*ldai*3), intab(maxco, maxco, 3), work(maxco, maxsgf), integral(3))
347 intab(:, :, :) = 0.0_dp
350 ALLOCATE (basis_set_list(nkind))
352 qs_kind => qs_kind_set(ikind)
353 CALL get_qs_kind(qs_kind=qs_kind, basis_set=basis_set_a)
354 IF (
ASSOCIATED(basis_set_a))
THEN
355 basis_set_list(ikind)%gto_basis_set => basis_set_a
357 NULLIFY (basis_set_list(ikind)%gto_basis_set)
363 iatom=iatom, jatom=jatom, r=rab)
364 basis_set_a => basis_set_list(ikind)%gto_basis_set
365 IF (.NOT.
ASSOCIATED(basis_set_a)) cycle
366 basis_set_b => basis_set_list(jkind)%gto_basis_set
367 IF (.NOT.
ASSOCIATED(basis_set_b)) cycle
369 first_sgfa => basis_set_a%first_sgf
370 la_max => basis_set_a%lmax
371 npgfa => basis_set_a%npgf
372 nseta = basis_set_a%nset
373 nsgfa => basis_set_a%nsgf_set
374 rpgfa => basis_set_a%pgf_radius
375 set_radius_a => basis_set_a%set_radius
376 sphi_a => basis_set_a%sphi
377 zeta => basis_set_a%zet
379 first_sgfb => basis_set_b%first_sgf
380 lb_max => basis_set_b%lmax
381 npgfb => basis_set_b%npgf
382 nsetb = basis_set_b%nset
383 nsgfb => basis_set_b%nsgf_set
384 rpgfb => basis_set_b%pgf_radius
385 set_radius_b => basis_set_b%set_radius
386 sphi_b => basis_set_b%sphi
387 zetb => basis_set_b%zet
389 IF (inode == 1) last_jatom = 0
391 IF (my_minimum_image)
THEN
392 IF (any(abs(rab(:)) > [lxo2, lyo2, lzo2])) cycle
395 IF (jatom /= last_jatom)
THEN
404 IF (do_symmetric)
THEN
405 IF (iatom <= jatom)
THEN
421 NULLIFY (integral(i)%block)
423 row=irow, col=icol, block=integral(i)%block, found=found)
424 cpassert(
ASSOCIATED(integral(i)%block))
432 ncoa = npgfa(iset)*
ncoset(la_max(iset))
433 sgfa = first_sgfa(1, iset)
437 IF (set_radius_a(iset) + set_radius_b(jset) < dab) cycle
439 ncob = npgfb(jset)*
ncoset(lb_max(jset))
440 sgfb = first_sgfb(1, jset)
445 CALL overlap_ab(la_max(iset), 0, npgfa(iset), &
446 rpgfa(:, iset), zeta(:, iset), &
447 lb_max(jset), 0, npgfb(jset), &
448 rpgfb(:, jset), zetb(:, jset), &
449 rab, dab=intab, rr_work=rr_work)
455 CALL dgemm(
"N",
"N", ncoa, nsgfb(jset), ncob, &
456 1.0_dp, intab(1, 1, i),
SIZE(intab, 1), &
457 sphi_b(1, sgfb),
SIZE(sphi_b, 1), &
458 0.0_dp, work(1, 1),
SIZE(work, 1))
460 IF (do_symmetric)
THEN
461 IF (iatom <= jatom)
THEN
463 CALL dgemm(
"T",
"N", nsgfa(iset), nsgfb(jset), ncoa, &
464 1.0_dp, sphi_a(1, sgfa),
SIZE(sphi_a, 1), &
465 work(1, 1),
SIZE(work, 1), &
466 1.0_dp, integral(i)%block(sgfa, sgfb), &
467 SIZE(integral(i)%block, 1))
471 CALL dgemm(
"T",
"N", nsgfb(jset), nsgfa(iset), ncoa, &
472 alpha, work(1, 1),
SIZE(work, 1), &
473 sphi_a(1, sgfa),
SIZE(sphi_a, 1), &
474 1.0_dp, integral(i)%block(sgfb, sgfa), &
475 SIZE(integral(i)%block, 1))
479 CALL dgemm(
"T",
"N", nsgfa(iset), nsgfb(jset), ncoa, &
480 1.0_dp, sphi_a(1, sgfa),
SIZE(sphi_a, 1), &
481 work(1, 1),
SIZE(work, 1), &
482 1.0_dp, integral(i)%block(sgfa, sgfb), &
483 SIZE(integral(i)%block, 1))
497 DEALLOCATE (intab, rr_work, work, integral, basis_set_list)
499 CALL timestop(handle)
518 REAL(
dp),
DIMENSION(:),
INTENT(IN) :: rc
520 CHARACTER(len=*),
PARAMETER :: routinen =
'build_ang_mom_matrix'
522 INTEGER :: handle, i, iatom, icol, ikind, inode, irow, iset, jatom, jkind, jset, last_jatom, &
523 maxco, maxsgf, ncoa, ncob, nkind, nseta, nsetb, sgfa, sgfb
524 INTEGER,
DIMENSION(:),
POINTER :: la_max, la_min, lb_max, lb_min, npgfa, &
526 INTEGER,
DIMENSION(:, :),
POINTER :: first_sgfa, first_sgfb
527 LOGICAL :: found, new_atom_b
529 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :) :: work
530 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :, :) :: intab
531 REAL(kind=
dp),
DIMENSION(3) :: ra, rab, rac, rbc
532 REAL(kind=
dp),
DIMENSION(:),
POINTER :: set_radius_a, set_radius_b
533 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: rpgfa, rpgfb, sphi_a, sphi_b, zeta, zetb
534 TYPE(
block_p_type),
ALLOCATABLE,
DIMENSION(:) :: integral
539 DIMENSION(:),
POINTER :: nl_iterator
543 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
546 CALL timeset(routinen, handle)
549 qs_kind_set=qs_kind_set, &
550 particle_set=particle_set, &
554 nkind =
SIZE(qs_kind_set)
562 ALLOCATE (intab(maxco, maxco, 3), work(maxco, maxsgf), integral(3))
563 intab(:, :, :) = 0.0_dp
566 ALLOCATE (basis_set_list(nkind))
568 qs_kind => qs_kind_set(ikind)
569 CALL get_qs_kind(qs_kind=qs_kind, basis_set=basis_set_a)
570 IF (
ASSOCIATED(basis_set_a))
THEN
571 basis_set_list(ikind)%gto_basis_set => basis_set_a
573 NULLIFY (basis_set_list(ikind)%gto_basis_set)
579 iatom=iatom, jatom=jatom, r=rab)
580 basis_set_a => basis_set_list(ikind)%gto_basis_set
581 IF (.NOT.
ASSOCIATED(basis_set_a)) cycle
582 basis_set_b => basis_set_list(jkind)%gto_basis_set
583 IF (.NOT.
ASSOCIATED(basis_set_b)) cycle
584 ra =
pbc(particle_set(iatom)%r, cell)
586 first_sgfa => basis_set_a%first_sgf
587 la_max => basis_set_a%lmax
588 la_min => basis_set_a%lmin
589 npgfa => basis_set_a%npgf
590 nseta = basis_set_a%nset
591 nsgfa => basis_set_a%nsgf_set
592 rpgfa => basis_set_a%pgf_radius
593 set_radius_a => basis_set_a%set_radius
594 sphi_a => basis_set_a%sphi
595 zeta => basis_set_a%zet
597 first_sgfb => basis_set_b%first_sgf
598 lb_max => basis_set_b%lmax
599 lb_min => basis_set_b%lmin
600 npgfb => basis_set_b%npgf
601 nsetb = basis_set_b%nset
602 nsgfb => basis_set_b%nsgf_set
603 rpgfb => basis_set_b%pgf_radius
604 set_radius_b => basis_set_b%set_radius
605 sphi_b => basis_set_b%sphi
606 zetb => basis_set_b%zet
608 IF (inode == 1) last_jatom = 0
610 IF (jatom /= last_jatom)
THEN
627 NULLIFY (integral(i)%block)
629 row=irow, col=icol, block=integral(i)%block, found=found)
630 cpassert(found .AND.
ASSOCIATED(integral(i)%block))
638 ncoa = npgfa(iset)*
ncoset(la_max(iset))
639 sgfa = first_sgfa(1, iset)
643 IF (set_radius_a(iset) + set_radius_b(jset) < dab) cycle
647 rac =
pbc(rc, ra, cell)
655 ncob = npgfb(jset)*
ncoset(lb_max(jset))
656 sgfb = first_sgfb(1, jset)
660 CALL angmom(la_max(iset), npgfa(iset), zeta(:, iset), rpgfa(:, iset), la_min(iset), &
661 lb_max(jset), npgfb(jset), zetb(:, jset), rpgfb(:, jset), rac, rbc, intab)
667 CALL dgemm(
"N",
"N", ncoa, nsgfb(jset), ncob, &
668 1.0_dp, intab(1, 1, i),
SIZE(intab, 1), &
669 sphi_b(1, sgfb),
SIZE(sphi_b, 1), &
670 0.0_dp, work(1, 1),
SIZE(work, 1))
674 CALL dgemm(
"T",
"N", nsgfa(iset), nsgfb(jset), ncoa, &
675 1.0_dp, sphi_a(1, sgfa),
SIZE(sphi_a, 1), &
676 work(1, 1),
SIZE(work, 1), &
677 1.0_dp, integral(i)%block(sgfa, sgfb), &
678 SIZE(integral(i)%block, 1))
701 DEALLOCATE (intab, work, integral, basis_set_list)
716 CALL timestop(handle)
static void dgemm(const char transa, const char transb, const int m, const int n, const int k, const double alpha, const double *a, const int lda, const double *b, const int ldb, const double beta, double *c, const int ldc)
Convenient wrapper to hide Fortran nature of dgemm_, swapping a and b.
Calculation of the angular momentum integrals over Cartesian Gaussian-type functions.
subroutine, public angmom(la_max, npgfa, zeta, rpgfa, la_min, lb_max, npgfb, zetb, rpgfb, rac, rbc, angab)
Real angular-momentum kernel (r-C) cross grad, equal to i times L.
Calculation of the moment integrals over Cartesian Gaussian-type functions.
subroutine, public expikr(la_max_set, npgfa, zeta, rpgfa, la_min_set, lb_max, npgfb, zetb, rpgfb, lb_min, rac, rbc, kvec, expab, dexpab, dexpba, momentab)
Evaluate primitive exp(i k.r) integrals through the complex overlap recurrence.
subroutine, public contract_expikr(cos_block, sin_block, iatom, ncoa, nsgfa, sgfa, sphi_a, ldsa, jatom, ncob, nsgfb, sgfb, sphi_b, ldsb, expab, work, ldwork, ordered)
Contract complex primitive integrals into real cosine and sine AO blocks.
Calculation of the overlap integrals over Cartesian Gaussian-type functions.
subroutine, public overlap_ab(la_max, la_min, npgfa, rpgfa, zeta, lb_max, lb_min, npgfb, rpgfb, zetb, rab, sab, dab, ddab, rr_work)
Calculation of the two-center overlap integrals [a|b] over Cartesian Gaussian-type functions....
collect pointers to a block of reals
Handles all functions related to the CELL.
logical function, public dbcsr_has_symmetry(matrix)
...
character function, public dbcsr_get_matrix_type(matrix)
...
subroutine, public dbcsr_get_block_p(matrix, row, col, block, found, row_size, col_size)
...
subroutine, public dbcsr_set(matrix, alpha)
...
Defines the basic variable types.
integer, parameter, public dp
Provides Cartesian and spherical orbital pointers and indices.
subroutine, public init_orbital_pointers(maxl)
Initialize or update the orbital pointers.
integer, dimension(:), allocatable, public ncoset
Define the data structure for the particle information.
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.
Define the quickstep kind type and their sub types.
subroutine, public get_qs_kind(qs_kind, basis_set, basis_type, ncgf, nsgf, all_potential, tnadd_potential, gth_potential, sgp_potential, upf_potential, cneo_potential, se_parameter, dftb_parameter, xtb_parameter, dftb3_param, zatom, zeff, elec_conf, mao, lmax_dftb, alpha_core_charge, ccore_charge, core_charge, core_charge_radius, paw_proj_set, paw_atom, hard_radius, hard0_radius, max_rad_local, covalent_radius, vdw_radius, gpw_type_forced, harmonics, max_iso_not0, max_s_harm, grid_atom, ngrid_ang, ngrid_rad, lmax_rho0, dft_plus_u_atom, l_of_dft_plus_u, n_of_dft_plus_u, u_minus_j, hund_j, u_of_dft_plus_u, j_of_dft_plus_u, alpha_of_dft_plus_u, beta_of_dft_plus_u, j0_of_dft_plus_u, occupation_of_dft_plus_u, dispersion, bs_occupation, magnetization, no_optimize, addel, laddel, naddel, orbitals, max_scf, eps_scf, smear, u_ramping, u_minus_j_target, eps_u_ramping, proj_shell_charge, lr_atom, do_mtlr, u_j_loop, ao_coef, init_u_ramping_each_scf, reltmat, ghost, monovalent, floating, name, element_symbol, pao_basis_size, pao_model_file, pao_potentials, pao_descriptors, nelec)
Get attributes of an atomic kind.
subroutine, public get_qs_kind_set(qs_kind_set, all_potential_present, tnadd_potential_present, gth_potential_present, sgp_potential_present, paw_atom_present, dft_plus_u_atom_present, maxcgf, maxsgf, maxco, maxco_proj, maxgtops, maxlgto, maxlprj, maxnset, maxsgf_set, ncgf, npgf, nset, nsgf, nshell, maxpol, maxlppl, maxlppnl, maxppnl, nelectron, maxder, max_ngrid_rad, max_sph_harm, maxg_iso_not0, lmax_rho0, basis_rcut, do_mtlr_present, basis_type, total_zeff_corr, npgf_seg, cneo_potential_present, nkind_q, natom_q)
Get attributes of an atomic kind set.
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)
...
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)
...
subroutine, public build_ang_mom_matrix(qs_env, matrix, rc)
Calculation of the angular momentum matrix over Cartesian Gaussian functions.
subroutine, public build_lin_mom_matrix(qs_env, matrix, minimum_image)
Calculation of the linear momentum matrix <mu|∂|nu> over Cartesian Gaussian functions.
subroutine, public build_exp_ikr_matrix(qs_env, op_sm_set, kvec, sab_orb_external, basis_type, force_periodic, cell_external)
Build real and imaginary AO matrices for exp(i*k*r).
Type defining parameters related to the simulation cell.
Provides all information about a quickstep kind.