113#include "./base/base_uses.f90"
119 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'qs_core_matrices'
141 SUBROUTINE core_matrices(qs_env, matrix_h, matrix_p, calculate_forces, nder, ec_env, dcdr_env, &
142 ec_env_matrices, ext_kpoints, basis_type, &
143 debug_forces, debug_stress, atcore)
146 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
POINTER :: matrix_h, matrix_p
147 LOGICAL,
INTENT(IN) :: calculate_forces
148 INTEGER,
INTENT(IN) :: nder
151 LOGICAL,
INTENT(IN),
OPTIONAL :: ec_env_matrices
152 TYPE(
kpoint_type),
OPTIONAL,
POINTER :: ext_kpoints
153 CHARACTER(LEN=*),
OPTIONAL :: basis_type
154 LOGICAL,
INTENT(IN),
OPTIONAL :: debug_forces, debug_stress
155 REAL(kind=
dp),
DIMENSION(:),
OPTIONAL :: atcore
157 CHARACTER(LEN=default_string_length) :: my_basis_type
158 INTEGER :: iounit, natom, nimages
159 INTEGER,
DIMENSION(:, :, :),
POINTER :: cell_to_index
160 LOGICAL :: all_present, debfor, debstr, ext_kp, &
161 my_gt_nl, ppl_present, ppnl_present, &
162 use_lrigpw, use_virial
163 REAL(kind=
dp) :: eps_ppnl, fconv
164 REAL(kind=
dp),
DIMENSION(3) :: fodeb
165 REAL(kind=
dp),
DIMENSION(3, 3) :: stdeb
166 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: deltar
170 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
POINTER :: matrix_hloc, matrix_ploc
176 POINTER :: sab_orb, sac_ae, sac_ppl, sap_ppnl
179 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
184 IF (logger%para_env%is_source())
THEN
191 IF (
PRESENT(ext_kpoints))
THEN
192 IF (
ASSOCIATED(ext_kpoints)) ext_kp = .true.
195 NULLIFY (dft_control)
196 CALL get_qs_env(qs_env=qs_env, dft_control=dft_control, para_env=para_env)
199 IF (
PRESENT(basis_type))
THEN
200 my_basis_type = basis_type
202 my_basis_type =
"ORB"
205 IF (
PRESENT(dcdr_env) .AND.
PRESENT(ec_env))
THEN
206 cpabort(
"core_matrices: conflicting options")
210 IF (
PRESENT(atcore))
THEN
212 cpassert(
SIZE(atcore) >= natom)
217 IF (qs_env%run_rtp)
THEN
218 cpassert(
ASSOCIATED(dft_control%rtp_control))
219 IF (dft_control%rtp_control%velocity_gauge)
THEN
220 my_gt_nl = dft_control%rtp_control%nl_gauge_transform
225 NULLIFY (cell_to_index)
227 nimages =
SIZE(ext_kpoints%index_to_cell, 2)
231 nimages = dft_control%nimages
232 IF (nimages > 1)
THEN
234 CALL get_ks_env(ks_env=ks_env, kpoints=kpoints)
241 IF (
PRESENT(dcdr_env))
THEN
242 deltar => dcdr_env%delta_basis_function
243 matrix_hloc(1:3, 1:1) => dcdr_env%matrix_hc(1:3)
246 matrix_hloc => matrix_h
248 matrix_ploc => matrix_p
251 IF (dft_control%qs_control%gapw .OR. dft_control%qs_control%gapw_xc)
THEN
257 IF (calculate_forces)
CALL get_qs_env(qs_env=qs_env, force=force)
260 use_virial = virial%pv_availability .AND. (.NOT. virial%pv_numer)
266 IF (
PRESENT(debug_forces)) debfor = debug_forces
267 debfor = debfor .AND. calculate_forces
269 IF (
PRESENT(debug_stress)) debstr = debug_stress
270 debstr = debstr .AND. use_virial
273 fconv = 1.0e-9_dp*
pascal/cell%deth
276 NULLIFY (qs_kind_set, atomic_kind_set, particle_set)
277 CALL get_qs_env(qs_env=qs_env, qs_kind_set=qs_kind_set, atomic_kind_set=atomic_kind_set, &
278 particle_set=particle_set)
280 NULLIFY (sab_orb, sac_ae, sac_ppl, sap_ppnl)
281 IF (
PRESENT(ec_env))
THEN
282 sab_orb => ec_env%sab_orb
283 sac_ae => ec_env%sac_ae
284 sac_ppl => ec_env%sac_ppl
285 sap_ppnl => ec_env%sap_ppnl
294 IF (
PRESENT(ec_env) .AND.
PRESENT(ec_env_matrices))
THEN
295 IF (ec_env_matrices)
THEN
296 matrix_hloc => ec_env%matrix_h
297 matrix_ploc => ec_env%matrix_p
302 all_present =
ASSOCIATED(sac_ae)
303 IF (all_present)
THEN
304 IF (
PRESENT(dcdr_env))
THEN
305 cpabort(
"ECP/AE functionality for dcdr missing")
307 IF (debfor) fodeb(1:3) = force(1)%all_potential(1:3, 1)
308 IF (debstr) stdeb = virial%pv_ppl
309 CALL build_core_ae(matrix_hloc, matrix_ploc, force, virial, calculate_forces, use_virial, nder, &
310 qs_kind_set, atomic_kind_set, particle_set, sab_orb, sac_ae, &
311 nimages, cell_to_index, my_basis_type, atcore=atcore)
313 fodeb(1:3) = force(1)%all_potential(1:3, 1) - fodeb(1:3)
314 CALL para_env%sum(fodeb)
315 IF (iounit > 0)
WRITE (iounit,
"(T3,A,T33,3F16.8)")
"DEBUG:: P*dHae ", fodeb
318 stdeb = fconv*(virial%pv_ppl - stdeb)
319 CALL para_env%sum(stdeb)
320 IF (iounit > 0)
WRITE (unit=iounit, fmt=
"(T2,A,T41,2(1X,ES19.11))") &
326 ppl_present =
ASSOCIATED(sac_ppl)
327 IF (ppl_present)
THEN
330 IF (
ASSOCIATED(lri_env))
THEN
331 use_lrigpw = (dft_control%qs_control%lrigpw .AND. lri_env%ppl_ri)
334 IF (lri_env%exact_1c_terms)
THEN
335 cpabort(
"not implemented")
338 IF (debfor) fodeb(1:3) = force(1)%gth_ppl(1:3, 1)
339 IF (debstr) stdeb = virial%pv_ppl
341 virial, calculate_forces, use_virial, nder, &
342 qs_kind_set, atomic_kind_set, particle_set, &
343 sab_orb, sac_ppl, nimages, cell_to_index, my_basis_type, &
344 deltar=deltar, atcore=atcore)
346 fodeb(1:3) = force(1)%gth_ppl(1:3, 1) - fodeb(1:3)
347 CALL para_env%sum(fodeb)
348 IF (iounit > 0)
WRITE (iounit,
"(T3,A,T33,3F16.8)")
"DEBUG:: P*dHppl ", fodeb
351 stdeb = fconv*(virial%pv_ppl - stdeb)
352 CALL para_env%sum(stdeb)
353 IF (iounit > 0)
WRITE (unit=iounit, fmt=
"(T2,A,T41,2(1X,ES19.11))") &
361 eps_ppnl = dft_control%qs_control%eps_ppnl
362 ppnl_present =
ASSOCIATED(sap_ppnl)
363 IF (ppnl_present)
THEN
364 IF (
PRESENT(dcdr_env))
THEN
365 matrix_hloc(1:3, 1:1) => dcdr_env%matrix_ppnl_1(1:3)
367 IF (.NOT. my_gt_nl)
THEN
368 IF (debfor) fodeb(1:3) = force(1)%gth_ppnl(1:3, 1)
369 IF (debstr) stdeb = virial%pv_ppnl
371 virial, calculate_forces, use_virial, nder, &
372 qs_kind_set, atomic_kind_set, particle_set, &
373 sab_orb, sap_ppnl, eps_ppnl, nimages, cell_to_index, my_basis_type, &
374 deltar=deltar, atcore=atcore)
376 fodeb(1:3) = force(1)%gth_ppnl(1:3, 1) - fodeb(1:3)
377 CALL para_env%sum(fodeb)
378 IF (iounit > 0)
WRITE (iounit,
"(T3,A,T33,3F16.8)")
"DEBUG:: P*dHppnl ", fodeb
381 stdeb = fconv*(virial%pv_ppnl - stdeb)
382 CALL para_env%sum(stdeb)
383 IF (iounit > 0)
WRITE (unit=iounit, fmt=
"(T2,A,T41,2(1X,ES19.11))") &
409 matrix_name, calculate_forces, nderivative, &
410 sab_orb, eps_filter, basis_type, debug_forces, debug_stress)
414 POINTER :: matrixkp_t
419 TYPE(
kpoint_type),
OPTIONAL,
POINTER :: ext_kpoints
420 CHARACTER(LEN=*),
INTENT(IN),
OPTIONAL :: matrix_name
421 LOGICAL,
INTENT(IN) :: calculate_forces
422 INTEGER,
INTENT(IN),
OPTIONAL :: nderivative
424 OPTIONAL,
POINTER :: sab_orb
425 REAL(kind=
dp),
INTENT(IN),
OPTIONAL :: eps_filter
426 CHARACTER(LEN=*),
OPTIONAL :: basis_type
427 LOGICAL,
INTENT(IN),
OPTIONAL :: debug_forces, debug_stress
429 CHARACTER(LEN=default_string_length) :: my_basis_type
430 INTEGER :: ic, img, iounit, nimages
431 INTEGER,
DIMENSION(:, :, :),
POINTER :: cell_to_index
432 LOGICAL :: debfor, debstr, ext_kp, use_virial
433 REAL(kind=
dp) :: fconv
434 REAL(kind=
dp),
DIMENSION(3) :: fodeb
435 REAL(kind=
dp),
DIMENSION(3, 3) :: stdeb
445 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
450 IF (logger%para_env%is_source())
THEN
456 CALL get_qs_env(qs_env=qs_env, dft_control=dft_control, para_env=para_env)
458 IF (dft_control%qs_control%ofgpw)
RETURN
461 IF (
PRESENT(ext_kpoints))
THEN
462 IF (
ASSOCIATED(ext_kpoints)) ext_kp = .true.
466 IF (
PRESENT(basis_type))
THEN
467 my_basis_type = basis_type
469 my_basis_type =
"ORB"
473 IF (
PRESENT(debug_forces)) debfor = debug_forces
474 debfor = debfor .AND. calculate_forces
477 use_virial = virial%pv_availability .AND. (.NOT. virial%pv_numer)
480 IF (
PRESENT(debug_stress)) debstr = debug_stress
481 debstr = debstr .AND. use_virial
484 fconv = 1.0e-9_dp*
pascal/cell%deth
490 IF (
PRESENT(sab_orb))
THEN
493 CALL get_qs_env(qs_env=qs_env, sab_orb=sab_nl)
496 IF (calculate_forces)
THEN
497 IF (
SIZE(matrix_p, 1) == 2)
THEN
498 DO img = 1,
SIZE(matrix_p, 2)
499 CALL dbcsr_add(matrix_p(1, img)%matrix, matrix_p(2, img)%matrix, &
500 alpha_scalar=1.0_dp, beta_scalar=1.0_dp)
507 fodeb(1:3) = force(1)%kinetic(1:3, 1)
510 stdeb = virial%pv_ekinetic
516 matrix_name=matrix_name, basis_type=my_basis_type, &
517 sab_nl=sab_nl, calculate_forces=calculate_forces, &
518 matrixkp_p=matrix_p, ext_kpoints=ext_kpoints, &
519 nderivative=nderivative, eps_filter=eps_filter)
522 matrix_name=matrix_name, basis_type=my_basis_type, &
523 sab_nl=sab_nl, calculate_forces=calculate_forces, &
524 matrixkp_p=matrix_p, nderivative=nderivative, &
525 eps_filter=eps_filter)
529 fodeb(1:3) = force(1)%kinetic(1:3, 1) - fodeb(1:3)
530 CALL para_env%sum(fodeb)
531 IF (iounit > 0)
WRITE (iounit,
"(T3,A,T33,3F16.8)")
"DEBUG:: P*dT ", fodeb
534 stdeb = fconv*(virial%pv_ekinetic - stdeb)
535 CALL para_env%sum(stdeb)
536 IF (iounit > 0)
WRITE (unit=iounit, fmt=
"(T2,A,T41,2(1X,ES19.11))") &
540 IF (calculate_forces)
THEN
541 IF (
SIZE(matrix_p, 1) == 2)
THEN
542 DO img = 1,
SIZE(matrix_p, 2)
543 CALL dbcsr_add(matrix_p(1, img)%matrix, matrix_p(2, img)%matrix, &
544 alpha_scalar=1.0_dp, beta_scalar=-1.0_dp)
550 IF (qs_env%rel_control%rel_method /=
rel_none)
THEN
552 CALL get_qs_env(qs_env=qs_env, qs_kind_set=qs_kind_set, atomic_kind_set=atomic_kind_set)
554 ic = ext_kpoints%cell_to_index(0, 0, 0)
556 nimages = dft_control%nimages
557 IF (nimages == 1)
THEN
560 CALL get_ks_env(ks_env=ks_env, kpoints=kpoints)
562 ic = cell_to_index(0, 0, 0)
565 IF (my_basis_type /=
"ORB")
THEN
566 cpabort(
"Basis mismatch for relativistic correction")
568 IF (
PRESENT(matrixkp_t))
THEN
569 CALL build_atomic_relmat(matrixkp_t(1, ic)%matrix, atomic_kind_set, qs_kind_set)
570 ELSEIF (
PRESENT(matrix_t))
THEN
571 CALL build_atomic_relmat(matrix_t(1)%matrix, atomic_kind_set, qs_kind_set)
574 cpabort(
"Relativistic corrections of this type are currently not implemented")
586 SUBROUTINE build_atomic_relmat(matrix_t, atomic_kind_set, qs_kind_set)
589 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
591 INTEGER :: iatom, ikind, jatom
592 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: kind_of
593 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: reltmat, tblock
601 IF (iatom == jatom)
THEN
602 ikind = kind_of(iatom)
603 CALL get_qs_kind(qs_kind_set(ikind), reltmat=reltmat)
604 IF (
ASSOCIATED(reltmat)) tblock = tblock + reltmat
609 END SUBROUTINE build_atomic_relmat
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.
Handles all functions related to the CELL.
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, basis_type, 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)
...
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_iterator_start(iterator, matrix, shared, dynamic, dynamic_byrows)
...
subroutine, public dbcsr_add(matrix_a, matrix_b, alpha_scalar, beta_scalar)
...
various routines to log and control the output. The idea is that decisions about where to log should ...
recursive integer function, public cp_logger_get_default_unit_nr(logger, local, skip_not_ionode)
asks the default unit number of the given logger. try to use cp_logger_get_unit_nr
type(cp_logger_type) function, pointer, public cp_get_default_logger()
returns the default logger
Types needed for a for a Energy Correction.
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...
Collection of simple mathematical functions and subroutines.
Interface to the message passing library MPI.
Define the data structure for the particle information.
Definition of physical constants:
real(kind=dp), parameter, public pascal
Calculation of the core Hamiltonian integral matrix <a|H|b> over Cartesian Gaussian-type functions.
subroutine, public core_matrices(qs_env, matrix_h, matrix_p, calculate_forces, nder, ec_env, dcdr_env, ec_env_matrices, ext_kpoints, basis_type, debug_forces, debug_stress, atcore)
...
subroutine, public kinetic_energy_matrix(qs_env, matrixkp_t, matrix_t, matrix_p, ext_kpoints, matrix_name, calculate_forces, nderivative, sab_orb, eps_filter, basis_type, debug_forces, debug_stress)
Calculate kinetic energy matrix and possible relativistic correction.
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, 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, 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, monovalent, 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, ext_kpoints, eps_filter, nderivative)
Calculation of the kinetic energy matrix over Cartesian Gaussian functions.
subroutine, public get_ks_env(ks_env, v_hartree_rspace, s_mstruct_changed, rho_changed, exc_accint, 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, xcint_weights, 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, sab_cneo, 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)
...
Type definitiona for linear response calculations.
Define the neighbor list data types and the corresponding functionality.
pure real(kind=dp) function, public one_third_sum_diag(a)
...
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...
Contains information on the energy correction functional for KG.
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 ...