135#include "./base/base_uses.f90"
141 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'qs_core_hamiltonian'
159 LOGICAL,
INTENT(IN) :: calculate_forces
161 CHARACTER(LEN=*),
PARAMETER :: routinen =
'build_core_hamiltonian_matrix'
163 INTEGER :: handle, ic, img, iw, nder, nders, &
165 INTEGER,
DIMENSION(:, :, :),
POINTER :: cell_to_index
166 LOGICAL :: h_is_complex, norml1, norml2, ofdft, &
167 use_arnoldi, use_virial
168 REAL(kind=
dp) :: eps_filter, eps_fit
169 REAL(kind=
dp),
DIMENSION(2) :: condnum
174 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
POINTER :: matrix_h, matrix_p, matrix_s, matrix_t, &
180 POINTER :: sab_orb, sap_oce
184 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
189 IF (calculate_forces)
THEN
190 CALL timeset(routinen//
"_forces", handle)
192 CALL timeset(routinen, handle)
198 NULLIFY (dft_control)
199 CALL get_qs_env(qs_env=qs_env, dft_control=dft_control)
202 ofdft = dft_control%qs_control%ofgpw
204 nimages = dft_control%nimages
206 cpassert(nimages == 1)
210 IF (calculate_forces)
THEN
214 "DFT%PRINT%AO_MATRICES/DERIVATIVES") /= 0)
THEN
222 "DFT%PRINT%AO_MATRICES/OVERLAP") /= 0 .AND. &
224 "DFT%PRINT%AO_MATRICES/DERIVATIVES"),
cp_p_file)))
THEN
230 IF (
ASSOCIATED(dft_control%rtp_control))
THEN
231 IF (dft_control%rtp_control%apply_delta_pulse .AND. &
232 dft_control%rtp_control%periodic)
THEN
237 IF (dft_control%tddfpt2_control%enabled)
THEN
239 IF (dft_control%do_admm)
THEN
241 CALL cp_abort(__location__, &
242 "Only purification method NONE is possible with TDDFT at the moment")
247 eps_filter = dft_control%qs_control%eps_filter_matrix
251 NULLIFY (matrix_s, matrix_t)
252 CALL get_qs_env(qs_env=qs_env, kinetic_kp=matrix_t, matrix_s_kp=matrix_s)
254 CALL get_qs_env(qs_env=qs_env, sab_orb=sab_orb)
255 NULLIFY (rho, force, matrix_p, matrix_w)
256 IF (calculate_forces)
THEN
257 CALL get_qs_env(qs_env=qs_env, force=force, matrix_w_kp=matrix_w)
266 IF (
SIZE(matrix_p, 1) == 2)
THEN
268 CALL dbcsr_add(matrix_p(1, img)%matrix, matrix_p(2, img)%matrix, &
269 alpha_scalar=1.0_dp, beta_scalar=1.0_dp)
270 CALL dbcsr_add(matrix_p(2, img)%matrix, matrix_p(1, img)%matrix, &
271 alpha_scalar=-2.0_dp, beta_scalar=1.0_dp)
272 CALL dbcsr_add(matrix_w(1, img)%matrix, matrix_w(2, img)%matrix, &
273 alpha_scalar=1.0_dp, beta_scalar=1.0_dp)
278 matrix_name=
"OVERLAP MATRIX", &
279 basis_type_a=
"ORB", &
280 basis_type_b=
"ORB", &
281 sab_nl=sab_orb, calculate_forces=.true., &
286 matrix_name=
"KINETIC ENERGY MATRIX", &
288 sab_nl=sab_orb, calculate_forces=.true., &
289 matrixkp_p=matrix_p, &
290 eps_filter=eps_filter)
295 IF (
SIZE(matrix_p, 1) == 2)
THEN
297 CALL dbcsr_add(matrix_p(1, img)%matrix, matrix_p(2, img)%matrix, &
298 alpha_scalar=0.5_dp, beta_scalar=0.5_dp)
299 CALL dbcsr_add(matrix_p(2, img)%matrix, matrix_p(1, img)%matrix, &
300 alpha_scalar=-1.0_dp, beta_scalar=1.0_dp)
306 matrix_name=
"OVERLAP MATRIX", &
307 basis_type_a=
"ORB", &
308 basis_type_b=
"ORB", &
313 matrix_name=
"KINETIC ENERGY MATRIX", &
316 eps_filter=eps_filter)
320 CALL get_ks_env(ks_env, complex_ks=h_is_complex)
321 CALL qs_matrix_h_allocate(qs_env, matrix_s(1, 1)%matrix, is_complex=h_is_complex)
326 IF (.NOT. ofdft)
THEN
328 CALL dbcsr_copy(matrix_h(1, img)%matrix, matrix_t(1, img)%matrix, &
329 keep_sparsity=.true., name=
"CORE HAMILTONIAN MATRIX")
333 NULLIFY (qs_kind_set, atomic_kind_set, particle_set)
334 CALL get_qs_env(qs_env=qs_env, qs_kind_set=qs_kind_set, atomic_kind_set=atomic_kind_set, &
335 particle_set=particle_set)
337 IF (.NOT. ofdft)
THEN
339 IF (qs_env%rel_control%rel_method /=
rel_none)
THEN
341 IF (nimages == 1)
THEN
344 CALL get_ks_env(ks_env=ks_env, kpoints=kpoints)
346 ic = cell_to_index(0, 0, 0)
348 CALL build_atomic_relmat(matrix_h(1, 1)%matrix, atomic_kind_set, qs_kind_set)
350 cpabort(
"Relativistic corrections of this type are currently not implemented")
356 CALL core_matrices(qs_env, matrix_h, matrix_p, calculate_forces, nder)
360 CALL get_qs_env(qs_env=qs_env, sap_oce=sap_oce)
362 IF (dft_control%qs_control%gapw .OR. dft_control%qs_control%gapw_xc)
THEN
365 nkind =
SIZE(atomic_kind_set)
367 eps_fit = dft_control%qs_control%gapw_control%eps_fit
368 IF (
ASSOCIATED(sap_oce)) &
369 CALL build_oce_matrices(oce%intac, calculate_forces, nder, qs_kind_set, particle_set, &
374 IF (dft_control%qs_control%do_kg)
THEN
376 CALL get_qs_env(qs_env=qs_env, kg_env=kg_env, virial=virial, dbcsr_dist=dbcsr_dist)
377 use_virial = virial%pv_availability .AND. (.NOT. virial%pv_numer)
378 CALL build_tnadd_mat(kg_env, matrix_p, force, virial, calculate_forces, use_virial, &
379 qs_kind_set, atomic_kind_set, particle_set, sab_orb, dbcsr_dist)
385 CALL set_ks_env(ks_env, matrix_s_kp=matrix_s, kinetic_kp=matrix_t, matrix_h_kp=matrix_h)
391 IF (.NOT. calculate_forces)
THEN
393 "DFT%PRINT%OVERLAP_CONDITION") .NE. 0)
THEN
397 CALL section_vals_val_get(qs_env%input,
"DFT%PRINT%OVERLAP_CONDITION%DIAGONALIZATION", l_val=norml2)
398 CALL section_vals_val_get(qs_env%input,
"DFT%PRINT%OVERLAP_CONDITION%ARNOLDI", l_val=use_arnoldi)
399 CALL get_qs_env(qs_env=qs_env, blacs_env=blacs_env)
400 CALL overlap_condnum(matrix_s, condnum, iw, norml1, norml2, use_arnoldi, blacs_env)
404 CALL timestop(handle)
417 SUBROUTINE core_matrices(qs_env, matrix_h, matrix_p, calculate_forces, nder, atcore)
420 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
POINTER :: matrix_h, matrix_p
421 LOGICAL,
INTENT(IN) :: calculate_forces
422 INTEGER,
INTENT(IN) :: nder
423 REAL(kind=
dp),
DIMENSION(:),
OPTIONAL :: atcore
425 INTEGER :: natom, nimages
426 INTEGER,
DIMENSION(:, :, :),
POINTER :: cell_to_index
427 LOGICAL :: all_present, my_gt_nl, ppl_present, &
428 ppnl_present, use_virial
429 REAL(kind=
dp) :: eps_ppnl
435 POINTER :: sab_orb, sac_ae, sac_ppl, sap_ppnl
438 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
442 NULLIFY (dft_control)
443 CALL get_qs_env(qs_env=qs_env, ks_env=ks_env, dft_control=dft_control, natom=natom)
444 nimages = dft_control%nimages
445 IF (
PRESENT(atcore))
THEN
446 cpassert(
SIZE(atcore) >= natom)
451 IF (qs_env%run_rtp)
THEN
452 cpassert(
ASSOCIATED(dft_control%rtp_control))
453 IF (dft_control%rtp_control%velocity_gauge)
THEN
454 my_gt_nl = dft_control%rtp_control%nl_gauge_transform
459 NULLIFY (cell_to_index)
460 IF (nimages > 1)
THEN
461 CALL get_ks_env(ks_env=ks_env, kpoints=kpoints)
466 IF (dft_control%qs_control%gapw .OR. dft_control%qs_control%gapw_xc)
THEN
472 IF (calculate_forces)
CALL get_qs_env(qs_env=qs_env, force=force)
475 use_virial = virial%pv_availability .AND. (.NOT. virial%pv_numer)
477 NULLIFY (qs_kind_set, atomic_kind_set, particle_set)
478 CALL get_qs_env(qs_env=qs_env, qs_kind_set=qs_kind_set, atomic_kind_set=atomic_kind_set, &
479 particle_set=particle_set)
481 NULLIFY (sab_orb, sac_ae, sac_ppl, sap_ppnl)
489 all_present =
ASSOCIATED(sac_ae)
490 IF (all_present)
THEN
491 CALL build_core_ae(matrix_h, matrix_p, force, virial, calculate_forces, use_virial, nder, &
492 qs_kind_set, atomic_kind_set, particle_set, sab_orb, sac_ae, &
493 nimages, cell_to_index, atcore=atcore)
497 ppl_present =
ASSOCIATED(sac_ppl)
498 IF (ppl_present)
THEN
500 IF (dft_control%qs_control%lrigpw)
THEN
502 IF (lri_env%ppl_ri)
THEN
503 IF (lri_env%exact_1c_terms)
THEN
504 cpabort(
"not implemented")
507 CALL build_core_ppl(matrix_h, matrix_p, force, virial, calculate_forces, use_virial, nder, &
508 qs_kind_set, atomic_kind_set, particle_set, sab_orb, sac_ppl, &
509 nimages, cell_to_index,
"ORB", atcore=atcore)
512 CALL build_core_ppl(matrix_h, matrix_p, force, virial, calculate_forces, use_virial, nder, &
513 qs_kind_set, atomic_kind_set, particle_set, sab_orb, sac_ppl, &
514 nimages, cell_to_index,
"ORB", atcore=atcore)
520 eps_ppnl = dft_control%qs_control%eps_ppnl
521 ppnl_present =
ASSOCIATED(sap_ppnl)
522 IF (ppnl_present)
THEN
523 IF (.NOT. my_gt_nl)
THEN
524 CALL build_core_ppnl(matrix_h, matrix_p, force, virial, calculate_forces, use_virial, nder, &
525 qs_kind_set, atomic_kind_set, particle_set, sab_orb, sap_ppnl, eps_ppnl, &
526 nimages, cell_to_index,
"ORB", atcore=atcore)
417 SUBROUTINE core_matrices(qs_env, matrix_h, matrix_p, calculate_forces, nder, atcore)
…
538 SUBROUTINE build_atomic_relmat(matrix_h, atomic_kind_set, qs_kind_set)
541 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
543 INTEGER :: iatom, ikind, jatom
544 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: kind_of
545 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: hblock, reltmat
553 IF (iatom == jatom)
THEN
554 ikind = kind_of(iatom)
555 CALL get_qs_kind(qs_kind_set(ikind), reltmat=reltmat)
556 IF (
ASSOCIATED(reltmat)) hblock = hblock + reltmat
561 END SUBROUTINE build_atomic_relmat
571 LOGICAL,
INTENT(IN) :: calculate_forces
573 CHARACTER(LEN=*),
PARAMETER :: routinen =
'dump_info_core_hamiltonian'
575 INTEGER :: after, handle, i, ic, iw, output_unit
576 LOGICAL :: omit_headers
579 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
POINTER :: matrixkp_h, matrixkp_s, matrixkp_t
582 CALL timeset(routinen, handle)
584 NULLIFY (logger, matrix_v, para_env)
590 IF (.NOT. calculate_forces)
THEN
592 qs_env%input,
"PRINT%DISTRIBUTION"),
cp_p_file))
THEN
594 extension=
".distribution")
595 CALL get_qs_env(qs_env, matrix_s_kp=matrixkp_s)
601 CALL section_vals_val_get(qs_env%input,
"DFT%PRINT%AO_MATRICES%OMIT_HEADERS", l_val=omit_headers)
604 qs_env%input,
"DFT%PRINT%AO_MATRICES/OVERLAP"),
cp_p_file))
THEN
608 after = min(max(after, 1), 16)
609 CALL get_qs_env(qs_env, matrix_s_kp=matrixkp_s)
610 IF (
ASSOCIATED(matrixkp_s))
THEN
611 DO ic = 1,
SIZE(matrixkp_s, 2)
613 output_unit=iw, omit_headers=omit_headers)
616 "DFT%PRINT%AO_MATRICES/DERIVATIVES"),
cp_p_file))
THEN
617 DO ic = 1,
SIZE(matrixkp_s, 2)
618 DO i = 2,
SIZE(matrixkp_s, 1)
620 output_unit=iw, omit_headers=omit_headers)
626 "DFT%PRINT%AO_MATRICES/OVERLAP")
631 qs_env%input,
"DFT%PRINT%AO_MATRICES/KINETIC_ENERGY"),
cp_p_file))
THEN
635 after = min(max(after, 1), 16)
636 CALL get_qs_env(qs_env, kinetic_kp=matrixkp_t)
637 IF (
ASSOCIATED(matrixkp_t))
THEN
638 DO ic = 1,
SIZE(matrixkp_t, 2)
640 output_unit=iw, omit_headers=omit_headers)
644 "DFT%PRINT%AO_MATRICES/KINETIC_ENERGY")
649 qs_env%input,
"DFT%PRINT%AO_MATRICES/POTENTIAL_ENERGY"),
cp_p_file))
THEN
653 after = min(max(after, 1), 16)
654 CALL get_qs_env(qs_env, matrix_h_kp=matrixkp_h, kinetic_kp=matrixkp_t)
655 IF (
ASSOCIATED(matrixkp_h))
THEN
656 IF (
SIZE(matrixkp_h, 2) == 1)
THEN
658 ALLOCATE (matrix_v(1)%matrix)
659 CALL dbcsr_copy(matrix_v(1)%matrix, matrixkp_h(1, 1)%matrix, name=
"POTENTIAL ENERGY MATRIX")
660 CALL dbcsr_add(matrix_v(1)%matrix, matrixkp_t(1, 1)%matrix, &
661 alpha_scalar=1.0_dp, beta_scalar=-1.0_dp)
663 para_env, output_unit=iw, omit_headers=omit_headers)
666 cpwarn(
"Printing of potential energy matrix not implemented for k-points")
670 "DFT%PRINT%AO_MATRICES/POTENTIAL_ENERGY")
675 qs_env%input,
"DFT%PRINT%AO_MATRICES/CORE_HAMILTONIAN"),
cp_p_file))
THEN
679 after = min(max(after, 1), 16)
680 CALL get_qs_env(qs_env, matrix_h_kp=matrixkp_h)
681 IF (
ASSOCIATED(matrixkp_h))
THEN
682 DO ic = 1,
SIZE(matrixkp_h, 2)
684 output_unit=iw, omit_headers=omit_headers)
688 "DFT%PRINT%AO_MATRICES/CORE_HAMILTONIAN")
691 CALL timestop(handle)
701 SUBROUTINE qs_matrix_h_allocate(qs_env, template, is_complex)
704 LOGICAL,
INTENT(in) :: is_complex
706 CHARACTER(LEN=default_string_length) :: headline
707 INTEGER :: img, nimages
708 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
POINTER :: matrix_h, matrix_h_im
714 NULLIFY (matrix_h, matrix_h_im, sab_orb, dft_control, ks_env)
716 matrix_h_kp=matrix_h, &
717 matrix_h_im_kp=matrix_h_im, &
719 dft_control=dft_control, &
722 nimages = dft_control%nimages
724 headline =
"CORE HAMILTONIAN MATRIX"
726 ALLOCATE (matrix_h(1, img)%matrix)
727 CALL dbcsr_create(matrix_h(1, img)%matrix, name=trim(headline), template=template)
729 CALL dbcsr_set(matrix_h(1, img)%matrix, 0.0_dp)
734 headline =
"IMAGINARY PART OF CORE HAMILTONIAN MATRIX"
737 ALLOCATE (matrix_h_im(1, img)%matrix)
738 CALL dbcsr_create(matrix_h_im(1, img)%matrix, name=trim(headline), template=template, &
739 matrix_type=dbcsr_type_antisymmetric)
741 CALL dbcsr_set(matrix_h_im(1, img)%matrix, 0.0_dp)
743 CALL set_ks_env(ks_env, matrix_h_im_kp=matrix_h_im)
746 END SUBROUTINE qs_matrix_h_allocate
755 CHARACTER(LEN=default_string_length) :: headline
756 INTEGER :: image, nimages
757 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
POINTER :: matrix_h, matrix_h_im
764 NULLIFY (matrix_h_im, matrix_h, dft_control, template, sab_orb, ks_env)
767 matrix_h_im_kp=matrix_h_im, &
768 matrix_h_kp=matrix_h, &
769 dft_control=dft_control, &
773 nimages = dft_control%nimages
775 cpassert(nimages .EQ.
SIZE(matrix_h, 2))
779 DO image = 1, nimages
780 headline =
"IMAGINARY CORE HAMILTONIAN MATRIX"
781 ALLOCATE (matrix_h_im(1, image)%matrix)
782 template => matrix_h(1, image)%matrix
783 CALL dbcsr_create(matrix=matrix_h_im(1, image)%matrix, template=template, &
784 name=trim(headline), matrix_type=dbcsr_type_antisymmetric)
786 CALL dbcsr_set(matrix_h_im(1, image)%matrix, 0.0_dp)
788 CALL set_ks_env(ks_env, matrix_h_im_kp=matrix_h_im)
Define the atomic kind types and their sub types.
subroutine, public get_atomic_kind_set(atomic_kind_set, atom_of_kind, kind_of, natom_of_kind, maxatom, natom, nshell, fist_potential_present, shell_present, shell_adiabatic, shell_check_distance, damping_present)
Get attributes of an atomic kind set.
Calculation of the nuclear attraction contribution to the core Hamiltonian <a|erfc|b> :we only calcul...
subroutine, public build_core_ae(matrix_h, matrix_p, force, virial, calculate_forces, use_virial, nder, qs_kind_set, atomic_kind_set, particle_set, sab_orb, sac_ae, nimages, cell_to_index, atcore)
...
Calculation of the local pseudopotential contribution to the core Hamiltonian <a|V(local)|b> = <a|Sum...
subroutine, public build_core_ppl(matrix_h, matrix_p, force, virial, calculate_forces, use_virial, nder, qs_kind_set, atomic_kind_set, particle_set, sab_orb, sac_ppl, nimages, cell_to_index, basis_type, deltar, atcore)
...
Calculation of the non-local pseudopotential contribution to the core Hamiltonian <a|V(non-local)|b> ...
subroutine, public build_core_ppnl(matrix_h, matrix_p, force, virial, calculate_forces, use_virial, nder, qs_kind_set, atomic_kind_set, particle_set, sab_orb, sap_ppnl, eps_ppnl, nimages, cell_to_index, basis_type, deltar, matrix_l, atcore)
...
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_iterator_next_block(iterator, row, column, block, block_number_argument_has_been_removed, row_size, col_size, row_offset, col_offset)
...
logical function, public dbcsr_iterator_blocks_left(iterator)
...
subroutine, public dbcsr_iterator_stop(iterator)
...
subroutine, public dbcsr_copy(matrix_b, matrix_a, name, keep_sparsity, keep_imaginary)
...
subroutine, public dbcsr_iterator_start(iterator, matrix, shared, dynamic, dynamic_byrows)
...
subroutine, public dbcsr_set(matrix, alpha)
...
subroutine, public dbcsr_add(matrix_a, matrix_b, alpha_scalar, beta_scalar)
...
Routines that link DBCSR and CP2K concepts together.
subroutine, public cp_dbcsr_alloc_block_from_nbl(matrix, sab_orb, desymmetrize)
allocate the blocks of a dbcsr based on the neighbor list
DBCSR operations in CP2K.
subroutine, public cp_dbcsr_write_matrix_dist(matrix, output_unit, para_env)
Print the distribution of a sparse matrix.
subroutine, public cp_dbcsr_write_sparse_matrix(sparse_matrix, before, after, qs_env, para_env, first_row, last_row, first_col, last_col, scale, output_unit, omit_headers)
...
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
routines to handle the output, The idea is to remove the decision of wheter to output and what to out...
integer function, public cp_print_key_unit_nr(logger, basis_section, print_key_path, extension, middle_name, local, log_filename, ignore_should_output, file_form, file_position, file_action, file_status, do_backup, on_file, is_new_file, mpi_io, fout)
...
subroutine, public cp_print_key_finished_output(unit_nr, logger, basis_section, print_key_path, local, ignore_should_output, on_file, mpi_io)
should be called after you finish working with a unit obtained with cp_print_key_unit_nr,...
integer, parameter, public cp_p_file
integer function, public cp_print_key_should_output(iteration_info, basis_section, print_key_path, used_print_key, first_time)
returns what should be done with the given property if btest(res,cp_p_store) then the property should...
Types needed for a Kim-Gordon-like partitioning into molecular subunits.
Calculation of the local potential contribution of the nonadditive kinetic energy <a|V(local)|b> = <a...
subroutine, public build_tnadd_mat(kg_env, matrix_p, force, virial, calculate_forces, use_virial, qs_kind_set, atomic_kind_set, particle_set, sab_orb, dbcsr_dist)
...
Defines the basic variable types.
integer, parameter, public dp
integer, parameter, public default_string_length
Types and basic routines needed for a kpoint calculation.
subroutine, public get_kpoint_info(kpoint, kp_scheme, nkp_grid, kp_shift, symmetry, verbose, full_grid, use_real_wfn, eps_geo, parallel_group_size, kp_range, nkp, xkp, wkp, para_env, blacs_env_all, para_env_kp, para_env_inter_kp, blacs_env, kp_env, kp_aux_env, mpools, iogrp, nkp_groups, kp_dist, cell_to_index, index_to_cell, sab_nl, sab_nl_nosym)
Retrieve information from a kpoint environment.
contains the types and subroutines for dealing with the lri_env lri : local resolution of the identit...
Interface to the message passing library MPI.
Define the data structure for the particle information.
Calculation of overlap matrix condition numbers.
subroutine, public overlap_condnum(matrixkp_s, condnum, iunit, norml1, norml2, use_arnoldi, blacs_env)
Calculation of the overlap matrix Condition Number.
Calculation of the core Hamiltonian integral matrix <a|H|b> over Cartesian Gaussian-type functions.
subroutine, public build_core_hamiltonian_matrix(qs_env, calculate_forces)
Cosntruction of the QS Core Hamiltonian Matrix.
subroutine, public dump_info_core_hamiltonian(qs_env, calculate_forces)
Possibly prints matrices after the construction of the Core Hamiltonian Matrix.
subroutine, public qs_matrix_h_allocate_imag_from_real(qs_env)
(Re-)allocates matrix_h_im from matrix_h
subroutine, public core_matrices(qs_env, matrix_h, matrix_p, calculate_forces, nder, atcore)
...
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 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.
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, 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, 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, init_u_ramping_each_scf, reltmat, ghost, floating, name, element_symbol, pao_basis_size, pao_model_file, pao_potentials, pao_descriptors, nelec)
Get attributes of an atomic kind.
Calculation of kinetic energy matrix and forces.
subroutine, public build_kinetic_matrix(ks_env, matrix_t, matrixkp_t, matrix_name, basis_type, sab_nl, calculate_forces, matrix_p, matrixkp_p, eps_filter, nderivative)
Calculation of the kinetic energy matrix over Cartesian Gaussian functions.
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 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)
...
Define the neighbor list data types and the corresponding functionality.
Routines for the construction of the coefficients for the expansion of the atomic densities rho1_hard...
subroutine, public build_oce_matrices(intac, calculate_forces, nder, qs_kind_set, particle_set, sap_oce, eps_fit)
Set up the sparse matrix for the coefficients of one center expansions This routine uses the same log...
subroutine, public allocate_oce_set(oce_set, nkind)
Allocate and initialize the matrix set of oce coefficients.
subroutine, public create_oce_set(oce_set)
...
Calculation of overlap matrix, its derivatives and forces.
subroutine, public build_overlap_matrix(ks_env, matrix_s, matrixkp_s, matrix_name, nderivative, basis_type_a, basis_type_b, sab_nl, calculate_forces, matrix_p, matrixkp_p)
Calculation of the overlap matrix over Cartesian Gaussian functions.
superstucture that hold various representations of the density and keeps track of which ones are vali...
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...
Provides all information about an atomic kind.
represent a blacs multidimensional parallel environment (for the mpi corrispective see cp_paratypes/m...
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...
Contains information about kpoints.
stores all the informations relevant to an mpi environment
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.