38 USE dbcsr_api,
ONLY: &
39 dbcsr_copy, dbcsr_deallocate_matrix, dbcsr_get_block_p, dbcsr_iterator_blocks_left, &
40 dbcsr_iterator_next_block, dbcsr_iterator_start, dbcsr_iterator_stop, dbcsr_iterator_type, &
41 dbcsr_p_type, dbcsr_set, dbcsr_setname, dbcsr_type
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
97 TYPE(dbcsr_p_type),
DIMENSION(:),
POINTER :: matrix_p
98 TYPE(dbcsr_p_type),
DIMENSION(:, :),
POINTER :: matrixkp_p, matrixkp_s
99 TYPE(dbcsr_type),
POINTER :: sm_p, sm_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 :: blk, handle, iatom, ic, isgf, ispin, &
260 jatom, jsgf, natom, nsgf, nspin, sgfa, &
262 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: first_sgf_atom
263 LOGICAL :: found, print_gop
265 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: orbpop, p_block, ps_block, s_block
267 TYPE(dbcsr_iterator_type) :: iter
268 TYPE(dbcsr_p_type),
DIMENSION(:, :),
POINTER :: matrix_p, matrix_s
269 TYPE(dbcsr_type),
POINTER :: sm_p, sm_ps, sm_s
272 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
275 CALL timeset(routinen, handle)
277 NULLIFY (atomic_kind_set)
278 NULLIFY (qs_kind_set)
282 NULLIFY (particle_set)
293 atomic_kind_set=atomic_kind_set, &
294 qs_kind_set=qs_kind_set, &
295 matrix_s_kp=matrix_s, &
296 particle_set=particle_set, &
300 cpassert(
ASSOCIATED(atomic_kind_set))
301 cpassert(
ASSOCIATED(qs_kind_set))
302 cpassert(
ASSOCIATED(particle_set))
303 cpassert(
ASSOCIATED(rho))
304 cpassert(
ASSOCIATED(matrix_s))
307 nspin =
SIZE(matrix_p, 1)
312 ALLOCATE (first_sgf_atom(natom))
313 first_sgf_atom(:) = 0
318 ALLOCATE (orbpop(nsgf, nspin))
319 orbpop(:, :) = 0.0_dp
322 IF (output_unit > 0)
THEN
323 WRITE (unit=output_unit, fmt=
"(/,T2,A)") &
324 '!-----------------------------------------------------------------------------!'
325 WRITE (unit=output_unit, fmt=
"(T22,A)")
"Mulliken Population Analysis"
329 IF (print_level > 2)
THEN
330 sm_s => matrix_s(1, 1)%matrix
332 headline =
"MULLIKEN NET ATOMIC ORBITAL AND OVERLAP POPULATION MATRIX"
333 CALL dbcsr_copy(matrix_b=sm_ps, &
340 DO ic = 1,
SIZE(matrix_s, 2)
341 IF (print_level > 2)
THEN
342 CALL dbcsr_set(sm_ps, 0.0_dp)
344 sm_s => matrix_s(1, ic)%matrix
345 sm_p => matrix_p(ispin, ic)%matrix
348 CALL dbcsr_iterator_start(iter, sm_s)
349 DO WHILE (dbcsr_iterator_blocks_left(iter))
350 CALL dbcsr_iterator_next_block(iter, iatom, jatom, s_block, blk)
351 IF (.NOT. (
ASSOCIATED(s_block))) cycle
352 CALL dbcsr_get_block_p(matrix=sm_p, &
357 IF (print_level > 2)
THEN
358 CALL dbcsr_get_block_p(matrix=sm_ps, &
363 cpassert(
ASSOCIATED(ps_block))
366 sgfb = first_sgf_atom(jatom)
367 DO jsgf = 1,
SIZE(s_block, 2)
368 DO isgf = 1,
SIZE(s_block, 1)
369 ps = p_block(isgf, jsgf)*s_block(isgf, jsgf)
370 IF (
ASSOCIATED(ps_block)) ps_block(isgf, jsgf) = ps_block(isgf, jsgf) + ps
371 orbpop(sgfb, ispin) = orbpop(sgfb, ispin) + ps
375 IF (iatom /= jatom)
THEN
376 sgfa = first_sgf_atom(iatom)
377 DO isgf = 1,
SIZE(s_block, 1)
378 DO jsgf = 1,
SIZE(s_block, 2)
379 ps = p_block(isgf, jsgf)*s_block(isgf, jsgf)
380 orbpop(sgfa, ispin) = orbpop(sgfa, ispin) + ps
386 CALL dbcsr_iterator_stop(iter)
389 IF (print_level > 2)
THEN
393 CALL dbcsr_setname(sm_ps, trim(headline)//
" For Alpha Spin")
395 CALL dbcsr_setname(sm_ps, trim(headline)//
" For Beta Spin")
399 output_unit=output_unit)
403 CALL para_env%sum(orbpop)
406 IF (output_unit > 0)
THEN
407 print_gop = (print_level > 1)
408 CALL write_orbpop(orbpop, atomic_kind_set, qs_kind_set, particle_set, output_unit, print_gop)
412 CALL save_mulliken_charges(orbpop, atomic_kind_set, qs_kind_set, particle_set, qs_env)
415 IF (
ASSOCIATED(sm_ps))
CALL dbcsr_deallocate_matrix(sm_ps)
416 IF (
ASSOCIATED(orbpop))
THEN
419 IF (
ALLOCATED(first_sgf_atom))
THEN
420 DEALLOCATE (first_sgf_atom)
423 IF (output_unit > 0)
THEN
424 WRITE (unit=output_unit, fmt=
"(T2,A)") &
425 '!-----------------------------------------------------------------------------!'
428 CALL timestop(handle)
444 SUBROUTINE save_mulliken_charges(orbpop, atomic_kind_set, qs_kind_set, particle_set, qs_env)
445 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: orbpop
447 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
451 CHARACTER(LEN=default_string_length) :: description
452 INTEGER :: iao, iatom, ikind, iset, isgf, ishell, &
453 iso, l, natom, nset, nsgf, nspin
454 INTEGER,
DIMENSION(:),
POINTER :: nshell
455 INTEGER,
DIMENSION(:, :),
POINTER :: lshell
456 REAL(kind=
dp) :: zeff
457 REAL(kind=
dp),
DIMENSION(3) :: sumorbpop
458 REAL(kind=
dp),
DIMENSION(:),
POINTER :: charges_save
464 NULLIFY (orb_basis_set)
466 cpassert(
ASSOCIATED(orbpop))
467 cpassert(
ASSOCIATED(atomic_kind_set))
468 cpassert(
ASSOCIATED(particle_set))
470 nspin =
SIZE(orbpop, 2)
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)
510 charges_save(iatom) = zeff - sumorbpop(1) - sumorbpop(2)
516 description =
"[MULLIKEN-CHARGES]"
518 CALL put_results(results=results, description=description, &
521 DEALLOCATE (charges_save)
523 END SUBROUTINE save_mulliken_charges
538 SUBROUTINE write_orbpop(orbpop, atomic_kind_set, qs_kind_set, particle_set, output_unit, &
539 print_orbital_contributions)
541 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: orbpop
543 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
545 INTEGER,
INTENT(IN) :: output_unit
546 LOGICAL,
INTENT(IN) :: print_orbital_contributions
548 CHARACTER(LEN=*),
PARAMETER :: routinen =
'write_orbpop'
550 CHARACTER(LEN=2) :: element_symbol
551 CHARACTER(LEN=6),
DIMENSION(:),
POINTER :: sgf_symbol
552 INTEGER :: handle, iao, iatom, ikind, iset, isgf, &
553 ishell, iso, l, natom, nset, nsgf, &
555 INTEGER,
DIMENSION(:),
POINTER :: nshell
556 INTEGER,
DIMENSION(:, :),
POINTER :: lshell
557 REAL(kind=
dp) :: zeff
558 REAL(kind=
dp),
DIMENSION(3) :: sumorbpop, totsumorbpop
561 CALL timeset(routinen, handle)
565 NULLIFY (orb_basis_set)
568 cpassert(
ASSOCIATED(orbpop))
569 cpassert(
ASSOCIATED(atomic_kind_set))
570 cpassert(
ASSOCIATED(particle_set))
572 nspin =
SIZE(orbpop, 2)
579 IF (print_orbital_contributions)
THEN
580 WRITE (unit=output_unit, fmt=
"(/,T2,A)") &
581 "# Orbital AO symbol Orbital population Net charge"
583 WRITE (unit=output_unit, fmt=
"(/,T2,A)") &
584 "# Atom Element Kind Atomic population Net charge"
587 IF (print_orbital_contributions)
THEN
588 WRITE (unit=output_unit, fmt=
"(/,T2,A)") &
589 "# Orbital AO symbol Orbital population (alpha,beta) Net charge Spin moment"
591 WRITE (unit=output_unit, fmt=
"(/,T2,A)") &
592 "# Atom Element Kind Atomic population (alpha,beta) Net charge Spin moment"
596 totsumorbpop(:) = 0.0_dp
600 sumorbpop(:) = 0.0_dp
601 NULLIFY (orb_basis_set)
603 element_symbol=element_symbol, &
605 CALL get_qs_kind(qs_kind_set(ikind), basis_set=orb_basis_set, zeff=zeff)
606 IF (
ASSOCIATED(orb_basis_set))
THEN
611 sgf_symbol=sgf_symbol)
614 DO ishell = 1, nshell(iset)
615 l = lshell(ishell, iset)
618 sumorbpop(1) = sumorbpop(1) + orbpop(iao, 1)
619 IF (print_orbital_contributions)
THEN
620 IF (isgf == 1)
WRITE (unit=output_unit, fmt=
"(A)")
""
621 WRITE (unit=output_unit, &
622 fmt=
"(T2,I9,2X,A2,1X,A,T30,F12.6)") &
623 iao, element_symbol, sgf_symbol(isgf), orbpop(iao, 1)
626 sumorbpop(1:2) = sumorbpop(1:2) + orbpop(iao, 1:2)
627 sumorbpop(3) = sumorbpop(3) + orbpop(iao, 1) - orbpop(iao, 2)
628 IF (print_orbital_contributions)
THEN
629 IF (isgf == 1)
WRITE (unit=output_unit, fmt=
"(A)")
""
630 WRITE (unit=output_unit, &
631 fmt=
"(T2,I9,2X,A2,1X,A,T29,2(1X,F12.6),T68,F12.6)") &
632 iao, element_symbol, sgf_symbol(isgf), orbpop(iao, 1:2), &
633 orbpop(iao, 1) - orbpop(iao, 2)
642 totsumorbpop(1) = totsumorbpop(1) + sumorbpop(1)
643 totsumorbpop(3) = totsumorbpop(3) + zeff - sumorbpop(1)
644 WRITE (unit=output_unit, &
645 fmt=
"(T2,I7,5X,A2,2X,I6,T30,F12.6,T68,F12.6)") &
646 iatom, element_symbol, ikind, sumorbpop(1), zeff - sumorbpop(1)
648 totsumorbpop(1:2) = totsumorbpop(1:2) + sumorbpop(1:2)
649 totsumorbpop(3) = totsumorbpop(3) + zeff - sumorbpop(1) - sumorbpop(2)
650 WRITE (unit=output_unit, &
651 fmt=
"(T2,I7,5X,A2,2X,I6,T28,4(1X,F12.6))") &
652 iatom, element_symbol, ikind, sumorbpop(1:2), &
653 zeff - sumorbpop(1) - sumorbpop(2), sumorbpop(3)
659 IF (print_orbital_contributions)
WRITE (unit=output_unit, fmt=
"(A)")
""
661 WRITE (unit=output_unit, &
662 fmt=
"(T2,A,T42,F12.6,T68,F12.6,/)") &
663 "# Total charge", totsumorbpop(1), totsumorbpop(3)
665 WRITE (unit=output_unit, &
666 fmt=
"(T2,A,T28,4(1X,F12.6),/)") &
667 "# Total charge and spin", totsumorbpop(1:2), totsumorbpop(3), &
668 totsumorbpop(1) - totsumorbpop(2)
671 IF (output_unit > 0)
CALL m_flush(output_unit)
673 CALL timestop(handle)
675 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)
...
methods related to the blacs parallel environment
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_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, 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, rhs)
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, 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_r3d_rs_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_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)
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.