72#include "./base/base_uses.f90" 
   78   CHARACTER(len=*), 
PARAMETER, 
PRIVATE :: moduleN = 
'kg_environment' 
  101      CALL init_kg_env(qs_env, kg_env, qs_kind_set, input)
 
 
  115   SUBROUTINE init_kg_env(qs_env, kg_env, qs_kind_set, input)
 
  118      TYPE(
qs_kind_type), 
DIMENSION(:), 
POINTER          :: qs_kind_set
 
  121      CHARACTER(LEN=*), 
PARAMETER                        :: routinen = 
'init_kg_env' 
  123      CHARACTER(LEN=10)                                  :: intgrid
 
  124      INTEGER                                            :: handle, i, iatom, ib, ikind, iunit, n, &
 
  125                                                            na, natom, nbatch, nkind, np, nr
 
  126      INTEGER, 
ALLOCATABLE, 
DIMENSION(:, :)              :: bid
 
  127      REAL(kind=
dp)                                      :: load, radb, rmax
 
  135      CALL timeset(routinen, handle)
 
  140      NULLIFY (kg_env%sab_orb_full)
 
  141      NULLIFY (kg_env%sac_kin)
 
  142      NULLIFY (kg_env%subset_of_mol)
 
  143      NULLIFY (kg_env%subset)
 
  144      NULLIFY (kg_env%tnadd_mat)
 
  145      NULLIFY (kg_env%lri_env)
 
  146      NULLIFY (kg_env%lri_env1)
 
  147      NULLIFY (kg_env%int_grid_atom)
 
  148      NULLIFY (kg_env%int_grid_molecules)
 
  149      NULLIFY (kg_env%int_grid_full)
 
  150      NULLIFY (kg_env%lri_density)
 
  151      NULLIFY (kg_env%lri_rho1)
 
  160      SELECT CASE (kg_env%tnadd_method)
 
  164         IF (.NOT. 
ASSOCIATED(kg_env%xc_section_kg)) 
THEN 
  165            CALL cp_abort(__location__, &
 
  166                          "KG runs require a kinetic energy functional set in &KG_METHOD")
 
  169         NULLIFY (kg_env%xc_section_kg)
 
  171         cpabort(
"KG:TNADD METHOD")
 
  178         nkind = 
SIZE(qs_kind_set)
 
  180            qs_kind => qs_kind_set(ikind)
 
  181            NULLIFY (lri_aux_basis)
 
  182            CALL get_qs_kind(qs_kind, basis_set=lri_aux_basis, basis_type=
"LRI_AUX")
 
  183            cpassert(
ASSOCIATED(lri_aux_basis))
 
  185            rmax = max(rmax, radb)
 
  190         CALL lri_env_basis(
"LRI", qs_env, kg_env%lri_env, qs_kind_set)
 
  196         CALL lri_env_basis(
"LRI", qs_env, kg_env%lri_env1, qs_kind_set)
 
  202         SELECT CASE (intgrid)
 
  216            cpabort(
"KG:INTEGRATION_GRID")
 
  223         CALL get_qs_env(qs_env=qs_env, natom=natom, para_env=para_env)
 
  225         load = real(natom, kind=
dp)*kg_env%int_grid_atom%ntot/real(np, kind=
dp)
 
  228         ig_full => kg_env%int_grid_full
 
  230         ig_mol => kg_env%int_grid_molecules
 
  231         nbatch = (natom*kg_env%int_grid_atom%nbatch)/np
 
  232         nbatch = nint((nbatch + 1)*1.2_dp)
 
  233         ALLOCATE (bid(2, nbatch))
 
  236            DO ib = 1, kg_env%int_grid_atom%nbatch
 
  237               IF (para_env%mepos == mod(iatom + ib, np)) 
THEN 
  239                  cpassert(nbatch <= 
SIZE(bid, 2))
 
  240                  bid(1, nbatch) = iatom
 
  246         ig_full%nbatch = nbatch
 
  247         ALLOCATE (ig_full%grid_batch(nbatch))
 
  249         ig_mol%nbatch = nbatch
 
  250         ALLOCATE (ig_mol%grid_batch(nbatch))
 
  256            ig_full%grid_batch(i)%ref_atom = iatom
 
  257            ig_full%grid_batch(i)%ibatch = ib
 
  258            ig_full%grid_batch(i)%np = kg_env%int_grid_atom%batch(ib)%np
 
  259            ig_full%grid_batch(i)%radius = kg_env%int_grid_atom%batch(ib)%rad
 
  260            ig_full%grid_batch(i)%rcenter(1:3) = kg_env%int_grid_atom%batch(ib)%rcenter(1:3)
 
  261            n = ig_full%grid_batch(i)%np
 
  262            ALLOCATE (ig_full%grid_batch(i)%rco(3, n))
 
  263            ALLOCATE (ig_full%grid_batch(i)%weight(n))
 
  264            ALLOCATE (ig_full%grid_batch(i)%wref(n))
 
  265            ALLOCATE (ig_full%grid_batch(i)%wsum(n))
 
  266            ig_full%grid_batch(i)%weight(:) = kg_env%int_grid_atom%batch(ib)%weight(:)
 
  268            ig_mol%grid_batch(i)%ref_atom = iatom
 
  269            ig_mol%grid_batch(i)%ibatch = ib
 
  270            ig_mol%grid_batch(i)%np = kg_env%int_grid_atom%batch(ib)%np
 
  271            ig_mol%grid_batch(i)%radius = kg_env%int_grid_atom%batch(ib)%rad
 
  272            ig_mol%grid_batch(i)%rcenter(1:3) = kg_env%int_grid_atom%batch(ib)%rcenter(1:3)
 
  273            n = ig_mol%grid_batch(i)%np
 
  274            ALLOCATE (ig_mol%grid_batch(i)%rco(3, n))
 
  275            ALLOCATE (ig_mol%grid_batch(i)%weight(n))
 
  276            ALLOCATE (ig_mol%grid_batch(i)%wref(n))
 
  277            ALLOCATE (ig_mol%grid_batch(i)%wsum(n))
 
  278            ig_mol%grid_batch(i)%weight(:) = kg_env%int_grid_atom%batch(ib)%weight(:)
 
  284      CALL timestop(handle)
 
  286   END SUBROUTINE init_kg_env
 
  302                                    molecular, subset_of_mol, current_subset)
 
  305         OPTIONAL, 
POINTER                               :: sab_orb, sac_kin
 
  306      LOGICAL, 
OPTIONAL                                  :: molecular
 
  307      INTEGER, 
DIMENSION(:), 
OPTIONAL, 
POINTER           :: subset_of_mol
 
  308      INTEGER, 
OPTIONAL                                  :: current_subset
 
  310      CHARACTER(LEN=*), 
PARAMETER :: routinen = 
'kg_build_neighborlist' 
  312      INTEGER                                            :: handle, ikind, nkind
 
  313      LOGICAL                                            :: mic, molecule_only
 
  314      LOGICAL, 
ALLOCATABLE, 
DIMENSION(:)                 :: orb_present, tpot_present
 
  316      REAL(
dp), 
ALLOCATABLE, 
DIMENSION(:)                :: orb_radius, tpot_radius
 
  317      REAL(
dp), 
ALLOCATABLE, 
DIMENSION(:, :)             :: pair_radius
 
  328      TYPE(
qs_kind_type), 
DIMENSION(:), 
POINTER          :: qs_kind_set
 
  331      CALL timeset(routinen, handle)
 
  335      molecule_only = .false.
 
  336      IF (
PRESENT(molecular)) molecule_only = molecular
 
  341                      atomic_kind_set=atomic_kind_set, &
 
  342                      qs_kind_set=qs_kind_set, &
 
  344                      distribution_2d=distribution_2d, &
 
  345                      molecule_set=molecule_set, &
 
  346                      local_particles=distribution_1d, &
 
  347                      particle_set=particle_set, &
 
  353      nkind = 
SIZE(atomic_kind_set)
 
  354      ALLOCATE (orb_radius(nkind), tpot_radius(nkind))
 
  355      orb_radius(:) = 0.0_dp
 
  356      tpot_radius(:) = 0.0_dp
 
  357      ALLOCATE (orb_present(nkind), tpot_present(nkind))
 
  358      ALLOCATE (pair_radius(nkind, nkind))
 
  359      ALLOCATE (atom2d(nkind))
 
  361      CALL atom2d_build(atom2d, distribution_1d, distribution_2d, atomic_kind_set, &
 
  362                        molecule_set, molecule_only, particle_set=particle_set)
 
  365         CALL get_atomic_kind(atomic_kind_set(ikind), atom_list=atom2d(ikind)%list)
 
  366         CALL get_qs_kind(qs_kind_set(ikind), basis_set=orb_basis_set)
 
  367         IF (
ASSOCIATED(orb_basis_set)) 
THEN 
  368            orb_present(ikind) = .true.
 
  369            IF (
PRESENT(subset_of_mol)) 
THEN 
  370               CALL get_gto_basis_set(gto_basis_set=orb_basis_set, kind_radius=orb_radius(ikind))
 
  372               CALL get_gto_basis_set(gto_basis_set=orb_basis_set, short_kind_radius=orb_radius(ikind))
 
  375            orb_present(ikind) = .false.
 
  376            orb_radius(ikind) = 0.0_dp
 
  380      IF (
PRESENT(sab_orb)) 
THEN 
  382         CALL pair_radius_setup(orb_present, orb_present, orb_radius, orb_radius, pair_radius)
 
  383         IF (
PRESENT(subset_of_mol)) 
THEN 
  385                                      mic=mic, subcells=subcells, molecular=molecule_only, subset_of_mol=subset_of_mol, &
 
  386                                      current_subset=current_subset, nlname=
"sab_orb")
 
  389                                      mic=mic, subcells=subcells, molecular=molecule_only, nlname=
"sab_orb")
 
  393         IF (molecule_only) 
THEN 
  395                                      "/SAB_ORB_MOLECULAR", 
"sab_orb", 
"MOLECULAR SUBSET NEIGHBORLIST")
 
  398                                      "/SAB_ORB_FULL", 
"sab_orb", 
"FULL NEIGHBORLIST")
 
  402      IF (
PRESENT(sac_kin)) 
THEN 
  404            tpot_present(ikind) = .false.
 
  405            CALL get_qs_kind(qs_kind_set(ikind), tnadd_potential=tnadd_potential)
 
  406            IF (
ASSOCIATED(tnadd_potential)) 
THEN 
  407               CALL get_potential(potential=tnadd_potential, radius=tpot_radius(ikind))
 
  408               tpot_present(ikind) = .true.
 
  411         CALL pair_radius_setup(orb_present, tpot_present, orb_radius, tpot_radius, pair_radius)
 
  413                                   subcells=subcells, operator_type=
"ABC", nlname=
"sac_kin")
 
  415                                                             "DFT%KG_METHOD%PRINT%NEIGHBOR_LISTS")
 
  417                                   "/SAC_KIN", 
"sac_kin", 
"ORBITAL kin energy potential")
 
  423      DEALLOCATE (orb_present, tpot_present)
 
  424      DEALLOCATE (orb_radius, tpot_radius)
 
  425      DEALLOCATE (pair_radius)
 
  427      CALL timestop(handle)
 
 
  440   SUBROUTINE kg_remove_duplicates(pairs_buffer, n)
 
  441      INTEGER(KIND=int_4), 
DIMENSION(:, :), &
 
  442         INTENT(INOUT)                                   :: pairs_buffer
 
  443      INTEGER, 
INTENT(INOUT)                             :: n
 
  445      CHARACTER(LEN=*), 
PARAMETER :: routinen = 
'kg_remove_duplicates' 
  447      INTEGER                                            :: handle, i, npairs
 
  448      INTEGER, 
DIMENSION(n)                              :: ind
 
  449      INTEGER(KIND=int_8), 
DIMENSION(n)                  :: sort_keys
 
  450      INTEGER(KIND=int_4), 
DIMENSION(2, n)               :: work
 
  452      CALL timeset(routinen, handle)
 
  456         sort_keys(1:n) = ishft(int(pairs_buffer(1, 1:n), kind=
int_8), 8*
int_4_size)
 
  457         sort_keys(1:n) = sort_keys(1:n) + pairs_buffer(2, 1:n) 
 
  458         CALL sort(sort_keys, n, ind)
 
  462         work(:, 1) = pairs_buffer(:, ind(1))
 
  466            IF (sort_keys(i) /= sort_keys(i - 1)) 
THEN 
  468               work(:, npairs) = pairs_buffer(:, ind(i))
 
  473         pairs_buffer(:, :n) = work(:, :n)
 
  476      CALL timestop(handle)
 
  478   END SUBROUTINE kg_remove_duplicates
 
  495   SUBROUTINE write_to_file(pairs, nnodes)
 
  496      INTEGER(KIND=int_4), 
ALLOCATABLE, &
 
  497         DIMENSION(:, :), 
INTENT(IN)                     :: pairs
 
  498      INTEGER, 
INTENT(IN)                                :: nnodes
 
  500      CHARACTER(LEN=*), 
PARAMETER                        :: routinen = 
'write_to_file' 
  502      INTEGER                                            :: handle, i, imol, jmol, npairs, unit_nr
 
  503      INTEGER(KIND=int_4), 
ALLOCATABLE, 
DIMENSION(:, :)  :: sorted_pairs
 
  505      CALL timeset(routinen, handle)
 
  508      npairs = 
SIZE(pairs, 2)
 
  510      ALLOCATE (sorted_pairs(2, npairs))
 
  517         IF (imol > jmol) 
THEN 
  519            sorted_pairs(1, i) = jmol
 
  520            sorted_pairs(2, i) = imol
 
  523            sorted_pairs(1, i) = imol
 
  524            sorted_pairs(2, i) = jmol
 
  529      CALL kg_remove_duplicates(sorted_pairs, npairs)
 
  532      cpassert(npairs == 
SIZE(pairs, 2)/2)
 
  534      CALL open_file(unit_number=unit_nr, file_name=
"graph.col")
 
  536      WRITE (unit_nr, 
'(A6,1X,I8,1X,I8)') 
"p edge", nnodes, npairs
 
  540         WRITE (unit_nr, 
'(A1,1X,I8,1X,I8)') 
"e", sorted_pairs(1, i), sorted_pairs(2, i)
 
  545      DEALLOCATE (sorted_pairs)
 
  547      CALL timestop(handle)
 
  549   END SUBROUTINE write_to_file
 
  560      CHARACTER(LEN=*), 
PARAMETER                        :: routinen = 
'kg_build_subsets' 
  562      INTEGER                                            :: color, handle, i, iatom, imol, isub, &
 
  563                                                            jatom, jmol, nmol, npairs, npairs_local
 
  564      INTEGER(KIND=int_4)                                :: ncolors
 
  565      INTEGER(KIND=int_4), 
ALLOCATABLE, 
DIMENSION(:)     :: color_of_node
 
  566      INTEGER(KIND=int_4), 
ALLOCATABLE, 
DIMENSION(:, :)  :: msg_gather, pairs, pairs_buffer
 
  567      INTEGER, 
ALLOCATABLE, 
DIMENSION(:)                 :: nnodes_of_color
 
  569         DIMENSION(:), 
POINTER                           :: nl_iterator
 
  571      CALL timeset(routinen, handle)
 
  574      nmol = 
SIZE(kg_env%molecule_set)
 
  581         imol = kg_env%atom_to_molecule(iatom)
 
  582         jmol = kg_env%atom_to_molecule(jatom)
 
  585         IF (imol .NE. jmol) 
THEN 
  594      ALLOCATE (pairs_buffer(2, npairs))
 
  601         imol = kg_env%atom_to_molecule(iatom)
 
  602         jmol = kg_env%atom_to_molecule(jatom)
 
  604         IF (imol .NE. jmol) 
THEN 
  611            pairs_buffer(1, npairs) = imol
 
  612            pairs_buffer(2, npairs) = jmol
 
  616            pairs_buffer(2, npairs) = imol
 
  617            pairs_buffer(1, npairs) = jmol
 
  625      CALL kg_remove_duplicates(pairs_buffer, npairs)
 
  629      npairs_local = npairs
 
  630      CALL para_env%max(npairs)
 
  633      ALLOCATE (pairs(2, npairs))
 
  635      pairs(:, 1:npairs_local) = pairs_buffer(:, 1:npairs_local)
 
  636      pairs(:, npairs_local + 1:) = 0
 
  638      DEALLOCATE (pairs_buffer)
 
  644      IF (para_env%is_source()) 
THEN 
  645         ALLOCATE (msg_gather(2, npairs*para_env%num_pe))
 
  647         ALLOCATE (msg_gather(2, 1))
 
  652      CALL para_env%gather(pairs, msg_gather)
 
  656      IF (para_env%is_source()) 
THEN 
  661         DO i = 1, 
SIZE(msg_gather, 2)
 
  662            IF (msg_gather(1, i) .NE. 0) 
THEN 
  664               msg_gather(:, npairs) = msg_gather(:, i)
 
  669         CALL kg_remove_duplicates(msg_gather, npairs)
 
  671         ALLOCATE (pairs(2, npairs))
 
  673         pairs(:, 1:npairs) = msg_gather(:, 1:npairs)
 
  675         DEALLOCATE (msg_gather)
 
  681            CALL write_to_file(pairs, 
SIZE(kg_env%molecule_set))
 
  691         DEALLOCATE (msg_gather)
 
  698      CALL para_env%bcast(ncolors)
 
  700      IF (.NOT. 
ALLOCATED(color_of_node)) 
ALLOCATE (color_of_node(nmol))
 
  703      CALL para_env%bcast(color_of_node)
 
  705      IF ((kg_env%nsubsets .NE. 0) .AND. (ncolors .NE. kg_env%nsubsets)) 
THEN 
  709         IF (
ASSOCIATED(kg_env%subset)) 
THEN 
  710            DO isub = 1, kg_env%nsubsets
 
  714            DEALLOCATE (kg_env%subset)
 
  715            NULLIFY (kg_env%subset)
 
  721      IF (.NOT. 
ASSOCIATED(kg_env%subset)) 
THEN 
  723         ALLOCATE (kg_env%subset(ncolors))
 
  726            NULLIFY (kg_env%subset(i)%sab_orb)
 
  727            NULLIFY (kg_env%subset(i)%task_list)
 
  732      kg_env%nsubsets = ncolors
 
  735      ALLOCATE (nnodes_of_color(ncolors))
 
  738         color = color_of_node(i)
 
  739         kg_env%subset_of_mol(i) = color
 
  740         nnodes_of_color(color) = nnodes_of_color(color) + 1
 
  743      DEALLOCATE (nnodes_of_color)
 
  744      DEALLOCATE (color_of_node)
 
  746      CALL timestop(handle)
 
 
Define the atomic kind types and their sub types.
 
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)
...
 
collects all references to literature in CP2K as new algorithms / method are included from literature...
 
integer, save, public andermatt2016
 
Handles all functions related to the CELL.
 
Utility routines to open and close files. Tracking of preconnections.
 
subroutine, public open_file(file_name, file_status, file_form, file_action, file_position, file_pad, unit_number, debug, skip_get_unit_number, file_access)
Opens the requested file using a free unit number.
 
subroutine, public close_file(unit_number, file_status, keep_preconnection)
Close an open file given by its logical unit number. Optionally, keep the file and unit preconnected.
 
various routines to log and control the output. The idea is that decisions about where to log should ...
 
integer function, public cp_logger_get_default_io_unit(logger)
returns the unit nr for the ionode (-1 on all other processors) skips as well checks if the procs cal...
 
type(cp_logger_type) function, pointer, public cp_get_default_logger()
returns the default logger
 
stores a lists of integer that are local to a processor. The idea is that these integers represent ob...
 
stores a mapping of 2D info (e.g. matrix) on a 2D processor distribution (i.e. blacs grid) where cpus...
 
Definition of the atomic potential types.
 
subroutine, public allocate_intgrid(int_grid)
Initialize integration_grid_type.
 
Types needed for a Kim-Gordon-like partitioning into molecular subunits.
 
Routines for a Kim-Gordon-like partitioning into molecular subunits.
 
subroutine, public kg_env_create(qs_env, kg_env, qs_kind_set, input)
Allocates and intitializes kg_env.
 
subroutine, public kg_build_neighborlist(qs_env, sab_orb, sac_kin, molecular, subset_of_mol, current_subset)
builds either the full neighborlist or neighborlists of molecular
 
subroutine, public kg_build_subsets(kg_env, para_env)
...
 
Routines for a Kim-Gordon-like partitioning into molecular subunits unsing a vertex coloring algorith...
 
subroutine, public kg_vertex_coloring(kg_env, pairs, ncolors, color_of_node)
...
 
Defines the basic variable types.
 
integer, parameter, public int_8
 
integer, parameter, public dp
 
integer, parameter, public int_4_size
 
integer, parameter, public int_4
 
initializes the environment for lri lri : local resolution of the identity
 
subroutine, public lri_env_init(lri_env, lri_section)
initializes the lri env
 
subroutine, public lri_env_basis(ri_type, qs_env, lri_env, qs_kind_set)
initializes the lri env
 
Interface to the message passing library MPI.
 
Define the data structure for the molecule information.
 
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, 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, 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, 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.
 
subroutine, public initialize_atomic_grid(int_grid, nr, na, rmax, quadrature, iunit)
Initialize atomic grid.
 
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, 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.
 
Define the neighbor list data types and the corresponding functionality.
 
subroutine, public release_neighbor_list_sets(nlists)
releases an array of neighbor_list_sets
 
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)
...
 
Generate the atomic neighbor lists.
 
subroutine, public atom2d_cleanup(atom2d)
free the internals of atom2d
 
subroutine, public pair_radius_setup(present_a, present_b, radius_a, radius_b, pair_radius, prmin)
...
 
subroutine, public build_neighbor_lists(ab_list, particle_set, atom, cell, pair_radius, subcells, mic, symmetric, molecular, subset_of_mol, current_subset, operator_type, nlname, atomb_to_keep)
Build simple pair neighbor lists.
 
subroutine, public write_neighbor_lists(ab, particle_set, cell, para_env, neighbor_list_section, nl_type, middle_name, nlname)
Write a set of neighbor lists to the output unit.
 
subroutine, public atom2d_build(atom2d, distribution_1d, distribution_2d, atomic_kind_set, molecule_set, molecule_only, particle_set)
Build some distribution structure of atoms, refactored from build_qs_neighbor_lists.
 
Utilities for string manipulations.
 
elemental subroutine, public uppercase(string)
Convert all lower case characters in a string to upper case.
 
subroutine, public deallocate_task_list(task_list)
deallocates the components and the object itself
 
All kind of helpful little routines.
 
Provides all information about an atomic kind.
 
Type defining parameters related to the simulation cell.
 
type of a logger, at the moment it contains just a print level starting at which level it should be l...
 
structure to store local (to a processor) ordered lists of integers.
 
distributes pairs on a 2d grid of processors
 
Contains all the info needed for KG runs...
 
stores all the informations relevant to an mpi environment
 
Provides all information about a quickstep kind.