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 INTEGER :: handle, i, iatom, icol, ikind, inode, irow, iset, jatom, jkind, jset, last_jatom, &
87 ldsa, ldsb, ldwork, ncoa, ncob, nkind, nkvec, nseta, nsetb, reim, sgfa, sgfb
88 INTEGER,
DIMENSION(3) :: perd0
89 INTEGER,
DIMENSION(:),
POINTER :: la_max, la_min, lb_max, lb_min, npgfa, &
91 INTEGER,
DIMENSION(:, :),
POINTER :: first_sgfa, first_sgfb
92 LOGICAL :: found, my_force_periodic, new_atom_b
94 REAL(kind=
dp),
DIMENSION(3) :: ra, rab, rb
95 REAL(kind=
dp),
DIMENSION(:),
POINTER :: set_radius_a, set_radius_b
96 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: cosab, rpgfa, rpgfb, sinab, sphi_a, &
97 sphi_b, work, zeta, zetb
98 TYPE(
block_p_type),
ALLOCATABLE,
DIMENSION(:, :) :: op_cossin
103 DIMENSION(:),
POINTER :: nl_iterator
107 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
110 CALL timeset(routinen, handle)
112 cpassert(
SIZE(kvec, 1) == 3)
113 nkvec =
SIZE(kvec, 2)
115 cpassert(
SIZE(op_sm_set, 1) == 2)
116 cpassert(
SIZE(op_sm_set, 2) == nkvec)
119 cpassert(
ASSOCIATED(op_sm_set(reim, i)%matrix))
121 CALL dbcsr_set(op_sm_set(reim, i)%matrix, 0.0_dp)
125 NULLIFY (qs_kind, qs_kind_set, particle_set, sab_orb, cell)
126 CALL get_qs_env(qs_env=qs_env, qs_kind_set=qs_kind_set, &
127 particle_set=particle_set, cell=cell, sab_orb=sab_orb)
128 cpassert(
ASSOCIATED(cell))
129 cpassert(
ASSOCIATED(qs_kind_set))
130 cpassert(
ASSOCIATED(particle_set))
131 IF (
PRESENT(cell_external))
THEN
132 cpassert(
ASSOCIATED(cell_external))
133 cell => cell_external
136 IF (
PRESENT(sab_orb_external))
THEN
137 cpassert(
ASSOCIATED(sab_orb_external))
138 sab_orb => sab_orb_external
140 cpassert(
ASSOCIATED(sab_orb))
142 my_force_periodic = .false.
143 IF (
PRESENT(force_periodic)) my_force_periodic = force_periodic
144 IF (my_force_periodic)
THEN
145 perd0(:) = cell%perd(:)
149 nkind =
SIZE(qs_kind_set)
150 CALL get_qs_kind_set(qs_kind_set=qs_kind_set, maxco=ldwork, basis_type=basis_type)
151 ALLOCATE (cosab(ldwork, ldwork), sinab(ldwork, ldwork), work(ldwork, ldwork))
153 ALLOCATE (op_cossin(2, nkvec))
155 ALLOCATE (basis_set_list(nkind))
157 qs_kind => qs_kind_set(ikind)
158 CALL get_qs_kind(qs_kind=qs_kind, basis_set=basis_set_a, basis_type=basis_type)
159 IF (
ASSOCIATED(basis_set_a))
THEN
160 basis_set_list(ikind)%gto_basis_set => basis_set_a
162 NULLIFY (basis_set_list(ikind)%gto_basis_set)
170 iatom=iatom, jatom=jatom, r=rab)
171 basis_set_a => basis_set_list(ikind)%gto_basis_set
172 IF (.NOT.
ASSOCIATED(basis_set_a)) cycle
173 basis_set_b => basis_set_list(jkind)%gto_basis_set
174 IF (.NOT.
ASSOCIATED(basis_set_b)) cycle
176 ra(:) =
pbc(particle_set(iatom)%r(:), cell)
177 rb(:) = ra(:) + rab(:)
179 first_sgfa => basis_set_a%first_sgf
180 la_max => basis_set_a%lmax
181 la_min => basis_set_a%lmin
182 npgfa => basis_set_a%npgf
183 nsgfa => basis_set_a%nsgf_set
184 rpgfa => basis_set_a%pgf_radius
185 set_radius_a => basis_set_a%set_radius
186 sphi_a => basis_set_a%sphi
187 zeta => basis_set_a%zet
189 first_sgfb => basis_set_b%first_sgf
190 lb_max => basis_set_b%lmax
191 lb_min => basis_set_b%lmin
192 npgfb => basis_set_b%npgf
193 nsgfb => basis_set_b%nsgf_set
194 rpgfb => basis_set_b%pgf_radius
195 set_radius_b => basis_set_b%set_radius
196 sphi_b => basis_set_b%sphi
197 zetb => basis_set_b%zet
199 nseta = basis_set_a%nset
200 nsetb = basis_set_b%nset
201 ldsa =
SIZE(sphi_a, 1)
202 ldsb =
SIZE(sphi_b, 1)
203 IF (inode == 1) last_jatom = 0
205 IF (jatom /= last_jatom)
THEN
213 IF (iatom <= jatom)
THEN
223 NULLIFY (op_cossin(reim, i)%block)
225 row=irow, col=icol, block=op_cossin(reim, i)%block, found=found)
227 IF (
ASSOCIATED(op_cossin(1, i)%block) .NEQV.
ASSOCIATED(op_cossin(2, i)%block))
THEN
228 cpabort(
"cosine and sine blocks should have the same topology")
235 ncoa = npgfa(iset)*
ncoset(la_max(iset))
236 sgfa = first_sgfa(1, iset)
238 IF (set_radius_a(iset) + set_radius_b(jset) < dab) cycle
239 ncob = npgfb(jset)*
ncoset(lb_max(jset))
240 sgfb = first_sgfb(1, jset)
243 IF (.NOT.
ASSOCIATED(op_cossin(1, i)%block)) cycle
244 CALL cossin(la_max(iset), npgfa(iset), zeta(:, iset), rpgfa(:, iset), &
245 la_min(iset), lb_max(jset), npgfb(jset), zetb(:, jset), &
246 rpgfb(:, jset), lb_min(jset), ra, rb, kvec(:, i), cosab, sinab)
248 iatom, ncoa, nsgfa(iset), sgfa, sphi_a, ldsa, &
249 jatom, ncob, nsgfb(jset), sgfb, sphi_b, ldsb, &
250 cosab, sinab, ldwork, work, ldwork)
257 DEALLOCATE (op_cossin, cosab, sinab, work, basis_set_list)
259 IF (my_force_periodic) cell%perd(:) = perd0(:)
261 CALL timestop(handle)
278 LOGICAL,
INTENT(IN),
OPTIONAL :: minimum_image
280 CHARACTER(len=*),
PARAMETER :: routinen =
'build_lin_mom_matrix'
282 INTEGER :: handle, i, iatom, icol, ikind, inode, irow, iset, jatom, jkind, jset, last_jatom, &
283 ldai, maxco, maxlgto, maxsgf, ncoa, ncob, nkind, nseta, nsetb, sgfa, sgfb
284 INTEGER,
DIMENSION(:),
POINTER :: la_max, lb_max, npgfa, npgfb, nsgfa, &
286 INTEGER,
DIMENSION(:, :),
POINTER :: first_sgfa, first_sgfb
287 LOGICAL :: do_symmetric, found, my_minimum_image, &
289 REAL(kind=
dp) :: alpha, dab, lxo2, lyo2, lzo2
290 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:),
TARGET :: rr_work
291 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :) :: work
292 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :, :), &
294 REAL(kind=
dp),
DIMENSION(3) :: rab
295 REAL(kind=
dp),
DIMENSION(:),
POINTER :: set_radius_a, set_radius_b
296 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: rpgfa, rpgfb, sphi_a, sphi_b, zeta, zetb
297 TYPE(
block_p_type),
ALLOCATABLE,
DIMENSION(:) :: integral
302 DIMENSION(:),
POINTER :: nl_iterator
305 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
308 CALL timeset(routinen, handle)
310 NULLIFY (cell, sab_nl, qs_kind_set)
313 qs_kind_set=qs_kind_set, &
316 nkind =
SIZE(qs_kind_set)
318 my_minimum_image = .false.
319 IF (
PRESENT(minimum_image))
THEN
320 my_minimum_image = minimum_image
321 lxo2 = norm2(cell%hmat(:, 1))/2.0_dp
322 lyo2 = norm2(cell%hmat(:, 2))/2.0_dp
323 lzo2 = norm2(cell%hmat(:, 3))/2.0_dp
328 IF (do_symmetric)
THEN
329 CALL get_qs_env(qs_env=qs_env, sab_orb=sab_nl)
331 CALL get_qs_env(qs_env=qs_env, sab_all=sab_nl)
340 ldai =
ncoset(maxlgto + 1)
343 ALLOCATE (rr_work(ldai*ldai*3), intab(maxco, maxco, 3), work(maxco, maxsgf), integral(3))
345 intab(:, :, :) = 0.0_dp
348 ALLOCATE (basis_set_list(nkind))
350 qs_kind => qs_kind_set(ikind)
351 CALL get_qs_kind(qs_kind=qs_kind, basis_set=basis_set_a)
352 IF (
ASSOCIATED(basis_set_a))
THEN
353 basis_set_list(ikind)%gto_basis_set => basis_set_a
355 NULLIFY (basis_set_list(ikind)%gto_basis_set)
361 iatom=iatom, jatom=jatom, r=rab)
362 basis_set_a => basis_set_list(ikind)%gto_basis_set
363 IF (.NOT.
ASSOCIATED(basis_set_a)) cycle
364 basis_set_b => basis_set_list(jkind)%gto_basis_set
365 IF (.NOT.
ASSOCIATED(basis_set_b)) cycle
367 first_sgfa => basis_set_a%first_sgf
368 la_max => basis_set_a%lmax
369 npgfa => basis_set_a%npgf
370 nseta = basis_set_a%nset
371 nsgfa => basis_set_a%nsgf_set
372 rpgfa => basis_set_a%pgf_radius
373 set_radius_a => basis_set_a%set_radius
374 sphi_a => basis_set_a%sphi
375 zeta => basis_set_a%zet
377 first_sgfb => basis_set_b%first_sgf
378 lb_max => basis_set_b%lmax
379 npgfb => basis_set_b%npgf
380 nsetb = basis_set_b%nset
381 nsgfb => basis_set_b%nsgf_set
382 rpgfb => basis_set_b%pgf_radius
383 set_radius_b => basis_set_b%set_radius
384 sphi_b => basis_set_b%sphi
385 zetb => basis_set_b%zet
387 IF (inode == 1) last_jatom = 0
389 IF (my_minimum_image)
THEN
390 IF (any(abs(rab(:)) > [lxo2, lyo2, lzo2])) cycle
393 IF (jatom /= last_jatom)
THEN
402 IF (do_symmetric)
THEN
403 IF (iatom <= jatom)
THEN
419 NULLIFY (integral(i)%block)
421 row=irow, col=icol, block=integral(i)%block, found=found)
422 cpassert(
ASSOCIATED(integral(i)%block))
430 ncoa = npgfa(iset)*
ncoset(la_max(iset))
431 sgfa = first_sgfa(1, iset)
435 IF (set_radius_a(iset) + set_radius_b(jset) < dab) cycle
437 ncob = npgfb(jset)*
ncoset(lb_max(jset))
438 sgfb = first_sgfb(1, jset)
443 CALL overlap_ab(la_max(iset), 0, npgfa(iset), &
444 rpgfa(:, iset), zeta(:, iset), &
445 lb_max(jset), 0, npgfb(jset), &
446 rpgfb(:, jset), zetb(:, jset), &
447 rab, dab=intab, rr_work=rr_work)
453 CALL dgemm(
"N",
"N", ncoa, nsgfb(jset), ncob, &
454 1.0_dp, intab(1, 1, i),
SIZE(intab, 1), &
455 sphi_b(1, sgfb),
SIZE(sphi_b, 1), &
456 0.0_dp, work(1, 1),
SIZE(work, 1))
458 IF (do_symmetric)
THEN
459 IF (iatom <= jatom)
THEN
461 CALL dgemm(
"T",
"N", nsgfa(iset), nsgfb(jset), ncoa, &
462 1.0_dp, sphi_a(1, sgfa),
SIZE(sphi_a, 1), &
463 work(1, 1),
SIZE(work, 1), &
464 1.0_dp, integral(i)%block(sgfa, sgfb), &
465 SIZE(integral(i)%block, 1))
469 CALL dgemm(
"T",
"N", nsgfb(jset), nsgfa(iset), ncoa, &
470 alpha, work(1, 1),
SIZE(work, 1), &
471 sphi_a(1, sgfa),
SIZE(sphi_a, 1), &
472 1.0_dp, integral(i)%block(sgfb, sgfa), &
473 SIZE(integral(i)%block, 1))
477 CALL dgemm(
"T",
"N", nsgfa(iset), nsgfb(jset), ncoa, &
478 1.0_dp, sphi_a(1, sgfa),
SIZE(sphi_a, 1), &
479 work(1, 1),
SIZE(work, 1), &
480 1.0_dp, integral(i)%block(sgfa, sgfb), &
481 SIZE(integral(i)%block, 1))
495 DEALLOCATE (intab, rr_work, work, integral, basis_set_list)
497 CALL timestop(handle)
516 REAL(
dp),
DIMENSION(:),
INTENT(IN) :: rc
518 CHARACTER(len=*),
PARAMETER :: routinen =
'build_ang_mom_matrix'
520 INTEGER :: handle, i, iatom, icol, ikind, inode, irow, iset, jatom, jkind, jset, last_jatom, &
521 maxco, maxsgf, ncoa, ncob, nkind, nseta, nsetb, sgfa, sgfb
522 INTEGER,
DIMENSION(:),
POINTER :: la_max, la_min, lb_max, lb_min, npgfa, &
524 INTEGER,
DIMENSION(:, :),
POINTER :: first_sgfa, first_sgfb
525 LOGICAL :: found, new_atom_b
527 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :) :: work
528 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :, :) :: intab
529 REAL(kind=
dp),
DIMENSION(3) :: ra, rab, rac, rbc
530 REAL(kind=
dp),
DIMENSION(:),
POINTER :: set_radius_a, set_radius_b
531 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: rpgfa, rpgfb, sphi_a, sphi_b, zeta, zetb
532 TYPE(
block_p_type),
ALLOCATABLE,
DIMENSION(:) :: integral
537 DIMENSION(:),
POINTER :: nl_iterator
541 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
544 CALL timeset(routinen, handle)
547 qs_kind_set=qs_kind_set, &
548 particle_set=particle_set, &
552 nkind =
SIZE(qs_kind_set)
560 ALLOCATE (intab(maxco, maxco, 3), work(maxco, maxsgf), integral(3))
561 intab(:, :, :) = 0.0_dp
564 ALLOCATE (basis_set_list(nkind))
566 qs_kind => qs_kind_set(ikind)
567 CALL get_qs_kind(qs_kind=qs_kind, basis_set=basis_set_a)
568 IF (
ASSOCIATED(basis_set_a))
THEN
569 basis_set_list(ikind)%gto_basis_set => basis_set_a
571 NULLIFY (basis_set_list(ikind)%gto_basis_set)
577 iatom=iatom, jatom=jatom, r=rab)
578 basis_set_a => basis_set_list(ikind)%gto_basis_set
579 IF (.NOT.
ASSOCIATED(basis_set_a)) cycle
580 basis_set_b => basis_set_list(jkind)%gto_basis_set
581 IF (.NOT.
ASSOCIATED(basis_set_b)) cycle
582 ra =
pbc(particle_set(iatom)%r, cell)
584 first_sgfa => basis_set_a%first_sgf
585 la_max => basis_set_a%lmax
586 la_min => basis_set_a%lmin
587 npgfa => basis_set_a%npgf
588 nseta = basis_set_a%nset
589 nsgfa => basis_set_a%nsgf_set
590 rpgfa => basis_set_a%pgf_radius
591 set_radius_a => basis_set_a%set_radius
592 sphi_a => basis_set_a%sphi
593 zeta => basis_set_a%zet
595 first_sgfb => basis_set_b%first_sgf
596 lb_max => basis_set_b%lmax
597 lb_min => basis_set_b%lmin
598 npgfb => basis_set_b%npgf
599 nsetb = basis_set_b%nset
600 nsgfb => basis_set_b%nsgf_set
601 rpgfb => basis_set_b%pgf_radius
602 set_radius_b => basis_set_b%set_radius
603 sphi_b => basis_set_b%sphi
604 zetb => basis_set_b%zet
606 IF (inode == 1) last_jatom = 0
608 IF (jatom /= last_jatom)
THEN
625 NULLIFY (integral(i)%block)
627 row=irow, col=icol, block=integral(i)%block, found=found)
628 cpassert(found .AND.
ASSOCIATED(integral(i)%block))
636 ncoa = npgfa(iset)*
ncoset(la_max(iset))
637 sgfa = first_sgfa(1, iset)
641 IF (set_radius_a(iset) + set_radius_b(jset) < dab) cycle
645 rac =
pbc(rc, ra, cell)
653 ncob = npgfb(jset)*
ncoset(lb_max(jset))
654 sgfb = first_sgfb(1, jset)
658 CALL angmom(la_max(iset), npgfa(iset), zeta(:, iset), rpgfa(:, iset), la_min(iset), &
659 lb_max(jset), npgfb(jset), zetb(:, jset), rpgfb(:, jset), rac, rbc, intab)
665 CALL dgemm(
"N",
"N", ncoa, nsgfb(jset), ncob, &
666 1.0_dp, intab(1, 1, i),
SIZE(intab, 1), &
667 sphi_b(1, sgfb),
SIZE(sphi_b, 1), &
668 0.0_dp, work(1, 1),
SIZE(work, 1))
672 CALL dgemm(
"T",
"N", nsgfa(iset), nsgfb(jset), ncoa, &
673 1.0_dp, sphi_a(1, sgfa),
SIZE(sphi_a, 1), &
674 work(1, 1),
SIZE(work, 1), &
675 1.0_dp, integral(i)%block(sgfa, sgfb), &
676 SIZE(integral(i)%block, 1))
699 DEALLOCATE (intab, work, integral, basis_set_list)
714 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)
...
Calculation of the moment integrals over Cartesian Gaussian-type functions.
subroutine, public contract_cossin(cos_block, sin_block, iatom, ncoa, nsgfa, sgfa, sphi_a, ldsa, jatom, ncob, nsgfb, sgfb, sphi_b, ldsb, cosab, sinab, ldab, work, ldwork)
...
subroutine, public cossin(la_max_set, npgfa, zeta, rpgfa, la_min_set, lb_max, npgfb, zetb, rpgfb, lb_min, rac, rbc, kvec, cosab, sinab, dcosab, dsinab)
...
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.