58#include "./base/base_uses.f90"
64 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'population_analyses'
85 INTEGER,
INTENT(IN) :: output_unit, print_level
87 CHARACTER(LEN=*),
PARAMETER :: routinen =
'lowdin_population_analysis'
89 CHARACTER(LEN=default_string_length) :: headline
90 INTEGER :: handle, ispin, ndep, nsgf, nspin
92 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: orbpop
96 TYPE(
cp_fm_type) :: fm_s_half, fm_work1, fm_work2
98 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
POINTER :: matrixkp_p, matrixkp_s
102 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
106 CALL timeset(routinen, handle)
108 NULLIFY (atomic_kind_set)
109 NULLIFY (qs_kind_set)
115 NULLIFY (particle_set)
117 NULLIFY (scf_control)
125 atomic_kind_set=atomic_kind_set, &
126 qs_kind_set=qs_kind_set, &
127 matrix_s_kp=matrixkp_s, &
128 particle_set=particle_set, &
130 scf_control=scf_control, &
134 cpassert(
ASSOCIATED(atomic_kind_set))
135 cpassert(
ASSOCIATED(qs_kind_set))
136 cpassert(
ASSOCIATED(matrixkp_s))
137 cpassert(
ASSOCIATED(particle_set))
138 cpassert(
ASSOCIATED(rho))
139 cpassert(
ASSOCIATED(scf_control))
141 IF (
SIZE(matrixkp_s, 2) > 1)
THEN
143 cpwarn(
"Lowdin population analysis not implemented for k-points.")
147 sm_s => matrixkp_s(1, 1)%matrix
150 matrix_p => matrixkp_p(:, 1)
151 nspin =
SIZE(matrix_p, 1)
157 ALLOCATE (orbpop(nsgf, nspin))
158 orbpop(:, :) = 0.0_dp
161 IF (output_unit > 0)
THEN
162 WRITE (unit=output_unit, fmt=
"(/,/,T2,A)")
"LOWDIN POPULATION ANALYSIS"
172 matrix_struct=fmstruct, &
173 name=
"S^(1/2) MATRIX")
175 matrix_struct=fmstruct, &
176 name=
"FULL WORK MATRIX 1")
177 headline =
"SYMMETRICALLY ORTHOGONALISED DENSITY MATRIX"
179 matrix_struct=fmstruct, &
185 CALL cp_fm_power(fm_s_half, fm_work1, 0.5_dp, scf_control%eps_eigval, ndep)
187 CALL cp_warn(__location__, &
188 "Overlap matrix exhibits linear dependencies. At least some "// &
189 "eigenvalues have been quenched.")
193 sm_p => matrix_p(ispin)%matrix
202 matrix_a=fm_s_half, &
206 IF (print_level > 2)
THEN
210 fm_work2%name = trim(headline)//
" FOR ALPHA SPIN"
212 fm_work2%name = trim(headline)//
" FOR BETA SPIN"
216 output_unit=output_unit)
222 IF (output_unit > 0)
THEN
223 print_gop = (print_level > 1)
224 CALL write_orbpop(orbpop, atomic_kind_set, qs_kind_set, particle_set, output_unit, print_gop)
231 IF (
ASSOCIATED(orbpop))
THEN
237 CALL timestop(handle)
254 INTEGER,
INTENT(IN) :: output_unit, print_level
256 CHARACTER(LEN=*),
PARAMETER :: routinen =
'mulliken_population_analysis'
258 CHARACTER(LEN=default_string_length) :: headline
259 INTEGER :: handle, iatom, ic, isgf, ispin, jatom, &
260 jsgf, natom, nsgf, nspin, sgfa, sgfb
261 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: first_sgf_atom
262 LOGICAL :: found, print_gop
264 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: orbpop, p_block, ps_block, s_block
267 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
POINTER :: matrix_p, matrix_s
268 TYPE(
dbcsr_type),
POINTER :: sm_p, sm_ps, sm_s
271 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
274 CALL timeset(routinen, handle)
276 NULLIFY (atomic_kind_set)
277 NULLIFY (qs_kind_set)
281 NULLIFY (particle_set)
292 atomic_kind_set=atomic_kind_set, &
293 qs_kind_set=qs_kind_set, &
294 matrix_s_kp=matrix_s, &
295 particle_set=particle_set, &
299 cpassert(
ASSOCIATED(atomic_kind_set))
300 cpassert(
ASSOCIATED(qs_kind_set))
301 cpassert(
ASSOCIATED(particle_set))
302 cpassert(
ASSOCIATED(rho))
303 cpassert(
ASSOCIATED(matrix_s))
306 nspin =
SIZE(matrix_p, 1)
311 ALLOCATE (first_sgf_atom(natom))
312 first_sgf_atom(:) = 0
317 ALLOCATE (orbpop(nsgf, nspin))
318 orbpop(:, :) = 0.0_dp
321 IF (output_unit > 0)
THEN
322 WRITE (unit=output_unit, fmt=
"(/,T2,A)") &
323 '!-----------------------------------------------------------------------------!'
324 WRITE (unit=output_unit, fmt=
"(T22,A)")
"Mulliken Population Analysis"
328 IF (print_level > 2)
THEN
329 sm_s => matrix_s(1, 1)%matrix
331 headline =
"MULLIKEN NET ATOMIC ORBITAL AND OVERLAP POPULATION MATRIX"
334 headline = trim(headline)//
" For Alpha Spin"
336 headline = trim(headline)//
" For Beta Spin"
339 CALL dbcsr_copy(matrix_b=sm_ps, matrix_a=sm_s, name=trim(headline))
344 DO ic = 1,
SIZE(matrix_s, 2)
345 IF (print_level > 2)
THEN
348 sm_s => matrix_s(1, ic)%matrix
349 sm_p => matrix_p(ispin, ic)%matrix
355 IF (.NOT. (
ASSOCIATED(s_block))) cycle
361 IF (print_level > 2)
THEN
367 cpassert(
ASSOCIATED(ps_block))
370 sgfb = first_sgf_atom(jatom)
371 DO jsgf = 1,
SIZE(s_block, 2)
372 DO isgf = 1,
SIZE(s_block, 1)
373 ps = p_block(isgf, jsgf)*s_block(isgf, jsgf)
374 IF (
ASSOCIATED(ps_block)) ps_block(isgf, jsgf) = ps_block(isgf, jsgf) + ps
375 orbpop(sgfb, ispin) = orbpop(sgfb, ispin) + ps
379 IF (iatom /= jatom)
THEN
380 sgfa = first_sgf_atom(iatom)
381 DO isgf = 1,
SIZE(s_block, 1)
382 DO jsgf = 1,
SIZE(s_block, 2)
383 ps = p_block(isgf, jsgf)*s_block(isgf, jsgf)
384 orbpop(sgfa, ispin) = orbpop(sgfa, ispin) + ps
393 IF (print_level > 2)
THEN
399 CALL para_env%sum(orbpop)
402 IF (output_unit > 0)
THEN
403 print_gop = (print_level > 1)
404 CALL write_orbpop(orbpop, atomic_kind_set, qs_kind_set, particle_set, output_unit, print_gop)
408 CALL save_mulliken_charges(orbpop, atomic_kind_set, qs_kind_set, particle_set, qs_env)
412 IF (
ASSOCIATED(orbpop))
THEN
415 IF (
ALLOCATED(first_sgf_atom))
THEN
416 DEALLOCATE (first_sgf_atom)
419 IF (output_unit > 0)
THEN
420 WRITE (unit=output_unit, fmt=
"(T2,A)") &
421 '!-----------------------------------------------------------------------------!'
424 CALL timestop(handle)
443 SUBROUTINE save_mulliken_charges(orbpop, atomic_kind_set, qs_kind_set, particle_set, qs_env)
444 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: orbpop
446 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
450 CHARACTER(LEN=default_string_length) :: description
451 INTEGER :: iao, iatom, ikind, iset, isgf, ishell, &
452 iso, l, natom, nset, nsgf, nspin
453 INTEGER,
DIMENSION(:),
POINTER :: nshell
454 INTEGER,
DIMENSION(:, :),
POINTER :: lshell
455 REAL(kind=
dp) :: zeff
456 REAL(kind=
dp),
DIMENSION(3) :: sumorbpop
457 REAL(kind=
dp),
DIMENSION(:),
POINTER :: all_sumorbpop, charges_save
463 NULLIFY (orb_basis_set)
465 cpassert(
ASSOCIATED(orbpop))
466 cpassert(
ASSOCIATED(atomic_kind_set))
467 cpassert(
ASSOCIATED(particle_set))
469 nspin =
SIZE(orbpop, 2)
476 ALLOCATE (all_sumorbpop(natom))
477 ALLOCATE (charges_save(natom))
481 sumorbpop(:) = 0.0_dp
482 NULLIFY (orb_basis_set)
485 CALL get_qs_kind(qs_kind_set(ikind), basis_set=orb_basis_set, zeff=zeff)
486 IF (
ASSOCIATED(orb_basis_set))
THEN
493 DO ishell = 1, nshell(iset)
494 l = lshell(ishell, iset)
497 sumorbpop(1) = sumorbpop(1) + orbpop(iao, 1)
499 sumorbpop(1:2) = sumorbpop(1:2) + orbpop(iao, 1:2)
500 sumorbpop(3) = sumorbpop(3) + orbpop(iao, 1) - orbpop(iao, 2)
508 charges_save(iatom) = zeff - sumorbpop(1)
509 all_sumorbpop(iatom) = sumorbpop(1)
511 charges_save(iatom) = zeff - sumorbpop(1) - sumorbpop(2)
512 all_sumorbpop(iatom) = sumorbpop(1) + sumorbpop(2)
518 description =
"[MULLIKEN-ORBPOP]"
520 CALL put_results(results=results, description=description, &
524 description =
"[MULLIKEN-SUMORBPOP]"
526 CALL put_results(results=results, description=description, &
527 values=all_sumorbpop)
530 description =
"[MULLIKEN-CHARGES]"
532 CALL put_results(results=results, description=description, &
535 DEALLOCATE (all_sumorbpop)
536 DEALLOCATE (charges_save)
538 END SUBROUTINE save_mulliken_charges
553 SUBROUTINE write_orbpop(orbpop, atomic_kind_set, qs_kind_set, particle_set, output_unit, &
554 print_orbital_contributions)
556 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: orbpop
558 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
560 INTEGER,
INTENT(IN) :: output_unit
561 LOGICAL,
INTENT(IN) :: print_orbital_contributions
563 CHARACTER(LEN=*),
PARAMETER :: routinen =
'write_orbpop'
565 CHARACTER(LEN=2) :: element_symbol
566 CHARACTER(LEN=6),
DIMENSION(:),
POINTER :: sgf_symbol
567 INTEGER :: handle, iao, iatom, ikind, iset, isgf, &
568 ishell, iso, l, natom, nset, nsgf, &
570 INTEGER,
DIMENSION(:),
POINTER :: nshell
571 INTEGER,
DIMENSION(:, :),
POINTER :: lshell
572 REAL(kind=
dp) :: zeff
573 REAL(kind=
dp),
DIMENSION(3) :: sumorbpop, totsumorbpop
576 CALL timeset(routinen, handle)
580 NULLIFY (orb_basis_set)
583 cpassert(
ASSOCIATED(orbpop))
584 cpassert(
ASSOCIATED(atomic_kind_set))
585 cpassert(
ASSOCIATED(particle_set))
587 nspin =
SIZE(orbpop, 2)
594 IF (print_orbital_contributions)
THEN
595 WRITE (unit=output_unit, fmt=
"(/,T2,A)") &
596 "# Orbital AO symbol Orbital population Net charge"
598 WRITE (unit=output_unit, fmt=
"(/,T2,A)") &
599 "# Atom Element Kind Atomic population Net charge"
602 IF (print_orbital_contributions)
THEN
603 WRITE (unit=output_unit, fmt=
"(/,T2,A)") &
604 "# Orbital AO symbol Orbital population (alpha,beta) Net charge Spin moment"
606 WRITE (unit=output_unit, fmt=
"(/,T2,A)") &
607 "# Atom Element Kind Atomic population (alpha,beta) Net charge Spin moment"
611 totsumorbpop(:) = 0.0_dp
615 sumorbpop(:) = 0.0_dp
616 NULLIFY (orb_basis_set)
618 element_symbol=element_symbol, &
620 CALL get_qs_kind(qs_kind_set(ikind), basis_set=orb_basis_set, zeff=zeff)
621 IF (
ASSOCIATED(orb_basis_set))
THEN
626 sgf_symbol=sgf_symbol)
629 DO ishell = 1, nshell(iset)
630 l = lshell(ishell, iset)
633 sumorbpop(1) = sumorbpop(1) + orbpop(iao, 1)
634 IF (print_orbital_contributions)
THEN
635 IF (isgf == 1)
WRITE (unit=output_unit, fmt=
"(A)")
""
636 WRITE (unit=output_unit, &
637 fmt=
"(T2,I9,2X,A2,1X,A,T30,F12.6)") &
638 iao, element_symbol, sgf_symbol(isgf), orbpop(iao, 1)
641 sumorbpop(1:2) = sumorbpop(1:2) + orbpop(iao, 1:2)
642 sumorbpop(3) = sumorbpop(3) + orbpop(iao, 1) - orbpop(iao, 2)
643 IF (print_orbital_contributions)
THEN
644 IF (isgf == 1)
WRITE (unit=output_unit, fmt=
"(A)")
""
645 WRITE (unit=output_unit, &
646 fmt=
"(T2,I9,2X,A2,1X,A,T29,2(1X,F12.6),T68,F12.6)") &
647 iao, element_symbol, sgf_symbol(isgf), orbpop(iao, 1:2), &
648 orbpop(iao, 1) - orbpop(iao, 2)
657 totsumorbpop(1) = totsumorbpop(1) + sumorbpop(1)
658 totsumorbpop(3) = totsumorbpop(3) + zeff - sumorbpop(1)
659 WRITE (unit=output_unit, &
660 fmt=
"(T2,I7,5X,A2,2X,I6,T30,F12.6,T68,F12.6)") &
661 iatom, element_symbol, ikind, sumorbpop(1), zeff - sumorbpop(1)
663 totsumorbpop(1:2) = totsumorbpop(1:2) + sumorbpop(1:2)
664 totsumorbpop(3) = totsumorbpop(3) + zeff - sumorbpop(1) - sumorbpop(2)
665 WRITE (unit=output_unit, &
666 fmt=
"(T2,I7,5X,A2,2X,I6,T28,4(1X,F12.6))") &
667 iatom, element_symbol, ikind, sumorbpop(1:2), &
668 zeff - sumorbpop(1) - sumorbpop(2), sumorbpop(3)
674 IF (print_orbital_contributions)
WRITE (unit=output_unit, fmt=
"(A)")
""
676 WRITE (unit=output_unit, &
677 fmt=
"(T2,A,T42,F12.6,T68,F12.6,/)") &
678 "# Total charge", totsumorbpop(1), totsumorbpop(3)
680 WRITE (unit=output_unit, &
681 fmt=
"(T2,A,T28,4(1X,F12.6),/)") &
682 "# Total charge and spin", totsumorbpop(1:2), totsumorbpop(3), &
683 totsumorbpop(1) - totsumorbpop(2)
686 IF (output_unit > 0)
CALL m_flush(output_unit)
688 CALL timestop(handle)
690 END SUBROUTINE write_orbpop
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.
subroutine, public get_atomic_kind(atomic_kind, fist_potential, element_symbol, name, mass, kind_number, natom, atom_list, rcov, rvdw, z, qeff, apol, cpol, mm_radius, shell, shell_active, damping)
Get attributes of an atomic kind.
subroutine, public get_gto_basis_set(gto_basis_set, name, aliases, norm_type, kind_radius, ncgf, nset, nsgf, cgf_symbol, sgf_symbol, norm_cgf, set_radius, lmax, lmin, lx, ly, lz, m, ncgf_set, npgf, nsgf_set, nshell, cphi, pgf_radius, sphi, scon, zet, first_cgf, first_sgf, l, last_cgf, last_sgf, n, gcc, maxco, maxl, maxpgf, maxsgf_set, maxshell, maxso, nco_sum, npgf_sum, nshell_sum, maxder, short_kind_radius, npgf_seg_sum)
...
methods related to the blacs parallel environment
subroutine, public dbcsr_deallocate_matrix(matrix)
...
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_get_block_p(matrix, row, col, block, found, row_size, col_size)
...
subroutine, public dbcsr_iterator_start(iterator, matrix, shared, dynamic, dynamic_byrows)
...
subroutine, public dbcsr_set(matrix, alpha)
...
DBCSR operations in CP2K.
subroutine, public cp_dbcsr_sm_fm_multiply(matrix, fm_in, fm_out, ncol, alpha, beta)
multiply a dbcsr with a fm matrix
subroutine, public copy_dbcsr_to_fm(matrix, fm)
Copy a DBCSR matrix to a BLACS matrix.
subroutine, public write_fm_with_basis_info(blacs_matrix, before, after, qs_env, para_env, first_row, last_row, first_col, last_col, output_unit, omit_headers)
Print a spherical matrix of blacs type.
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)
...
used for collecting some of the diagonalization schemes available for cp_fm_type. cp_fm_power also mo...
subroutine, public cp_fm_power(matrix, work, exponent, threshold, n_dependent, verbose, eigvals)
...
represent the structure of a full matrix
subroutine, public cp_fm_struct_create(fmstruct, para_env, context, nrow_global, ncol_global, nrow_block, ncol_block, descriptor, first_p_pos, local_leading_dimension, template_fmstruct, square_blocks, force_block)
allocates and initializes a full matrix structure
subroutine, public cp_fm_struct_release(fmstruct)
releases a full matrix structure
represent a full matrix distributed on many processors
subroutine, public cp_fm_get_diag(matrix, diag)
returns the diagonal elements of a fm
subroutine, public cp_fm_create(matrix, matrix_struct, name, use_sp)
creates a new full matrix with the given structure
set of type/routines to handle the storage of results in force_envs
subroutine, public cp_results_erase(results, description, nval)
erase a part of result_list
set of type/routines to handle the storage of results in force_envs
Defines the basic variable types.
integer, parameter, public dp
integer, parameter, public default_string_length
Machine interface based on Fortran 2003 and POSIX.
subroutine, public m_flush(lunit)
flushes units if the &GLOBAL flag is set accordingly
Interface to the message passing library MPI.
Provides Cartesian and spherical orbital pointers and indices.
integer, dimension(:), allocatable, public nso
basic linear algebra operations for full matrixes
Define methods related to particle_type.
subroutine, public get_particle_set(particle_set, qs_kind_set, first_sgf, last_sgf, nsgf, nmao, basis)
Get the components of a particle set.
Define the data structure for the particle information.
Provide various population analyses and print the requested output information.
subroutine, public lowdin_population_analysis(qs_env, output_unit, print_level)
Perform a Lowdin population analysis based on a symmetric orthogonalisation of the density matrix usi...
subroutine, public mulliken_population_analysis(qs_env, output_unit, print_level)
Perform a Mulliken population analysis.
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, 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, 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.
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, basis_type, total_zeff_corr, npgf_seg)
Get attributes of an atomic kind set.
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...
parameters that control an scf iteration
Provides all information about an atomic kind.
represent a blacs multidimensional parallel environment (for the mpi corrispective see cp_paratypes/m...
keeps the information about the structure of a full matrix
contains arbitrary information which need to be stored
stores all the informations relevant to an mpi environment
Provides all information about a quickstep kind.
keeps the density in various representations, keeping track of which ones are valid.