25 dbcsr_type_antisymmetric,&
78#include "./base/base_uses.f90"
83 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'qs_wannier90'
85 TYPE berry_matrix_type
86 TYPE(dbcsr_p_type),
DIMENSION(:, :),
POINTER :: sinmat => null(), cosmat => null()
87 END TYPE berry_matrix_type
106 CHARACTER(len=*),
PARAMETER :: routinen =
'wannier90_interface'
108 INTEGER :: handle, iw
114 CALL timeset(routinen, handle)
116 subsection_name=
"DFT%PRINT%WANNIER90")
123 WRITE (iw,
'(/,T2,A)') &
124 '!-----------------------------------------------------------------------------!'
125 WRITE (iw,
'(T32,A)')
"Interface to Wannier90"
126 WRITE (iw,
'(T2,A)') &
127 '!-----------------------------------------------------------------------------!'
130 CALL wannier90_files(qs_env, w_input, iw)
133 WRITE (iw,
'(/,T2,A)') &
134 '!--------------------------------End of Wannier90-----------------------------!'
137 CALL timestop(handle)
147 SUBROUTINE wannier90_files(qs_env, input, iw)
150 INTEGER,
INTENT(IN) :: iw
152 INTEGER,
PARAMETER :: num_nnmax = 12
154 CHARACTER(len=2) :: asym
155 CHARACTER(len=20),
ALLOCATABLE,
DIMENSION(:) :: atom_symbols
156 CHARACTER(len=default_string_length) :: filename, seed_name
157 CHARACTER(LEN=timestamp_length) :: timestamp
158 INTEGER :: i, i_rep, ib, ib1, ib2, ibs, ik, ik2, ikk, ikpgr, ispin, iunit, ix, iy, iz, k, &
159 n_rep, nadd, nao, nbs, nexcl, nkp, nmo, nntot, nspins, num_atoms, num_bands, &
160 num_bands_tot, num_kpts, num_wann
161 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: exclude_bands
162 INTEGER,
ALLOCATABLE,
DIMENSION(:, :) :: nblist, nnlist
163 INTEGER,
ALLOCATABLE,
DIMENSION(:, :, :) :: nncell
164 INTEGER,
DIMENSION(2) :: kp_range
165 INTEGER,
DIMENSION(3) :: mp_grid
166 INTEGER,
DIMENSION(:),
POINTER :: invals
167 INTEGER,
DIMENSION(:, :, :),
POINTER :: cell_to_index
168 LOGICAL :: diis_step, do_kpoints, gamma_only, &
169 my_kpgrp, mygrp, spinors
170 REAL(kind=
dp) :: cmmn, ksign, rmmn
171 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:) :: eigval
172 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :) :: atoms_cart, b_latt, kpt_latt
173 REAL(kind=
dp),
DIMENSION(3) :: bvec
174 REAL(kind=
dp),
DIMENSION(3, 3) :: real_lattice, recip_lattice
175 REAL(kind=
dp),
DIMENSION(:),
POINTER :: eigenvalues
176 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: xkp
177 TYPE(berry_matrix_type),
DIMENSION(:),
POINTER :: berry_matrix
181 TYPE(
cp_fm_type) :: fm_tmp, mmn_imag, mmn_real
183 TYPE(
cp_fm_type),
POINTER :: fmdummy, fmi, fmr
184 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
POINTER :: matrix_ks, matrix_s
207 mp_grid(1:3) = invals(1:3)
208 num_kpts = mp_grid(1)*mp_grid(2)*mp_grid(3)
214 nexcl = nexcl +
SIZE(invals)
217 ALLOCATE (exclude_bands(nexcl))
221 exclude_bands(nexcl + 1:nexcl +
SIZE(invals)) = invals(:)
222 nexcl = nexcl +
SIZE(invals)
228 CALL get_cell(cell, h=real_lattice, h_inv=recip_lattice)
229 real_lattice(1:3, 1:3) =
angstrom*real_lattice(1:3, 1:3)
230 recip_lattice(1:3, 1:3) = (
twopi/
angstrom)*transpose(recip_lattice(1:3, 1:3))
232 ALLOCATE (kpt_latt(3, num_kpts))
233 CALL get_qs_env(qs_env, particle_set=particle_set)
236 kpoint%kp_scheme =
"MONKHORST-PACK"
237 kpoint%symmetry = .false.
238 kpoint%nkp_grid(1:3) = mp_grid(1:3)
239 kpoint%verbose = .false.
240 kpoint%full_grid = .true.
241 kpoint%eps_geo = 1.0e-6_dp
242 kpoint%use_real_wfn = .false.
243 kpoint%parallel_group_size = 0
245 DO ix = 0, mp_grid(1) - 1
246 DO iy = 0, mp_grid(2) - 1
247 DO iz = 0, mp_grid(3) - 1
249 kpt_latt(1, i) = real(ix, kind=
dp)/real(mp_grid(1), kind=
dp)
250 kpt_latt(2, i) = real(iy, kind=
dp)/real(mp_grid(2), kind=
dp)
251 kpt_latt(3, i) = real(iz, kind=
dp)/real(mp_grid(3), kind=
dp)
255 kpoint%nkp = num_kpts
256 ALLOCATE (kpoint%xkp(3, num_kpts), kpoint%wkp(num_kpts))
257 kpoint%wkp(:) = 1._dp/real(num_kpts, kind=
dp)
259 kpoint%xkp(1:3, i) = (
angstrom/
twopi)*matmul(recip_lattice, kpt_latt(:, i))
263 CALL get_mo_set(mo_set=mos(1), nao=nao, nmo=num_bands_tot)
264 num_bands_tot = min(nao, num_bands_tot + nadd)
266 num_atoms =
SIZE(particle_set)
267 ALLOCATE (atoms_cart(3, num_atoms))
268 ALLOCATE (atom_symbols(num_atoms))
270 atoms_cart(1:3, i) = particle_set(i)%r(1:3)
272 atom_symbols(i) = asym
277 ALLOCATE (nnlist(num_kpts, num_nnmax))
278 ALLOCATE (nncell(3, num_kpts, num_nnmax))
285 CALL wannier_setup(mp_grid, num_kpts, real_lattice, recip_lattice, &
286 kpt_latt, nntot, nnlist, nncell, iw)
290 CALL para_env%sum(nntot)
291 CALL para_env%sum(nnlist)
292 CALL para_env%sum(nncell)
294 IF (para_env%is_source())
THEN
296 WRITE (filename,
'(A,A)') trim(seed_name),
".win"
297 CALL open_file(filename, unit_number=iunit, file_status=
"UNKNOWN", file_action=
"WRITE")
300 WRITE (iunit,
"(A)")
"! Wannier90 input file generated by CP2K "
301 WRITE (iunit,
"(A,/)")
"! Creation date "//timestamp
303 WRITE (iunit,
"(A,I5)")
"num_wann = ", num_wann
304 IF (num_bands /= num_wann)
THEN
305 WRITE (iunit,
"(A,I5)")
"num_bands = ", num_bands
307 WRITE (iunit,
"(/,A,/)")
"length_unit = bohr "
308 WRITE (iunit,
"(/,A,/)")
"! System"
309 WRITE (iunit,
"(/,A)")
"begin unit_cell_cart"
310 WRITE (iunit,
"(A)")
"bohr"
312 WRITE (iunit,
"(3F12.6)") cell%hmat(i, 1:3)
314 WRITE (iunit,
"(A,/)")
"end unit_cell_cart"
315 WRITE (iunit,
"(/,A)")
"begin atoms_cart"
317 WRITE (iunit,
"(A,3F15.10)") atom_symbols(i), atoms_cart(1:3, i)
319 WRITE (iunit,
"(A,/)")
"end atoms_cart"
320 WRITE (iunit,
"(/,A,/)")
"! Kpoints"
321 WRITE (iunit,
"(/,A,3I6/)")
"mp_grid = ", mp_grid(1:3)
322 WRITE (iunit,
"(A)")
"begin kpoints"
324 WRITE (iunit,
"(3F12.6)") kpt_latt(1:3, i)
326 WRITE (iunit,
"(A)")
"end kpoints"
334 CALL get_qs_env(qs_env, do_kpoints=do_kpoints)
344 WRITE (unit=iw, fmt=
"(/,T2,A)")
"Start K-Point Calculation ..."
346 CALL get_qs_env(qs_env=qs_env_kp, para_env=para_env, blacs_env=blacs_env)
351 CALL get_qs_env(qs_env=qs_env_kp, sab_orb=sab_nl, dft_control=dft_control)
354 CALL get_qs_env(qs_env=qs_env_kp, matrix_ks_kp=matrix_ks, matrix_s_kp=matrix_s, &
355 scf_env=scf_env, scf_control=scf_control)
356 CALL do_general_diag_kp(matrix_ks, matrix_s, kpoint, scf_env, scf_control, .false., diis_step)
359 WRITE (iw,
'(T69,A)')
"... Finished"
364 IF (para_env%is_source())
THEN
365 WRITE (filename,
'(A,A)') trim(seed_name),
".mmn"
366 CALL open_file(filename, unit_number=iunit, file_status=
"UNKNOWN", file_action=
"WRITE")
368 WRITE (iunit,
"(A)")
"! Wannier90 file generated by CP2K "//timestamp
369 WRITE (iunit,
"(3I8)") num_bands, num_kpts, nntot
375 ALLOCATE (nblist(num_kpts, nntot))
376 ALLOCATE (b_latt(3, num_kpts*nntot))
381 bvec(1:3) = kpt_latt(1:3, nnlist(ik, i)) - kpt_latt(1:3, ik) + nncell(1:3, ik, i)
384 IF (sum(abs(bvec(1:3) - b_latt(1:3, k))) < 1.e-6_dp)
THEN
388 IF (sum(abs(bvec(1:3) + b_latt(1:3, k))) < 1.e-6_dp)
THEN
399 b_latt(1:3, nbs) = bvec(1:3)
405 ALLOCATE (berry_matrix(nbs))
407 NULLIFY (berry_matrix(i)%cosmat)
408 NULLIFY (berry_matrix(i)%sinmat)
409 bvec(1:3) =
twopi*matmul(transpose(cell%h_inv(1:3, 1:3)), b_latt(1:3, i))
411 berry_matrix(i)%sinmat, bvec)
414 kp => kpoint%kp_env(1)%kpoint_env
416 NULLIFY (matrix_struct_work)
427 NULLIFY (matrix_struct_mmn)
435 ALLOCATE (rmatrix, cmatrix)
436 CALL dbcsr_create(rmatrix, template=matrix_s(1, 1)%matrix, &
437 matrix_type=dbcsr_type_symmetric)
438 CALL dbcsr_create(cmatrix, template=matrix_s(1, 1)%matrix, &
439 matrix_type=dbcsr_type_antisymmetric)
445 nspins = dft_control%nspins
450 my_kpgrp = (ik >= kpoint%kp_range(1) .AND. ik <= kpoint%kp_range(2))
452 ikk = ik - kpoint%kp_range(1) + 1
453 kp => kpoint%kp_env(ikk)%kpoint_env
454 cpassert(
SIZE(kp%mos, 1) == 2)
455 fmr => kp%mos(1, ispin)%mo_coeff
456 fmi => kp%mos(2, ispin)%mo_coeff
460 NULLIFY (fmr, fmi, kp)
468 mygrp = (ik2 >= kpoint%kp_range(1) .AND. ik2 <= kpoint%kp_range(2))
470 ikk = ik2 - kpoint%kp_range(1) + 1
471 kp => kpoint%kp_env(ikk)%kpoint_env
472 cpassert(
SIZE(kp%mos, 1) == 2)
473 fmr => kp%mos(1, ispin)%mo_coeff
474 fmi => kp%mos(2, ispin)%mo_coeff
478 NULLIFY (fmr, fmi, kp)
485 ksign = sign(1.0_dp, real(ibs, kind=
dp))
489 CALL rskp_transform(rmatrix, cmatrix, rsmat=berry_matrix(ibs)%cosmat, ispin=1, &
490 xkp=kpoint%xkp(1:3, ik2), cell_to_index=cell_to_index, sab_nl=sab_nl, &
491 is_complex=.false., rs_sign=ksign)
492 CALL rskp_transform(cmatrix, rmatrix, rsmat=berry_matrix(ibs)%sinmat, ispin=1, &
493 xkp=kpoint%xkp(1:3, ik2), cell_to_index=cell_to_index, sab_nl=sab_nl, &
494 is_complex=.true., rs_sign=ksign)
498 CALL parallel_gemm(
"T",
"N", nmo, nmo, nao, 1.0_dp, fmk1(1), fm_tmp, 0.0_dp, mmn_real)
499 CALL parallel_gemm(
"T",
"N", nmo, nmo, nao, 1.0_dp, fmk1(2), fm_tmp, 0.0_dp, mmn_imag)
501 CALL parallel_gemm(
"T",
"N", nmo, nmo, nao, 1.0_dp, fmk1(1), fm_tmp, 1.0_dp, mmn_imag)
502 CALL parallel_gemm(
"T",
"N", nmo, nmo, nao, 1.0_dp, fmk1(2), fm_tmp, -1.0_dp, mmn_real)
504 CALL parallel_gemm(
"T",
"N", nmo, nmo, nao, 1.0_dp, fmk1(1), fm_tmp, 1.0_dp, mmn_imag)
505 CALL parallel_gemm(
"T",
"N", nmo, nmo, nao, 1.0_dp, fmk1(2), fm_tmp, -1.0_dp, mmn_real)
507 CALL parallel_gemm(
"T",
"N", nmo, nmo, nao, 1.0_dp, fmk1(1), fm_tmp, -1.0_dp, mmn_real)
508 CALL parallel_gemm(
"T",
"N", nmo, nmo, nao, 1.0_dp, fmk1(2), fm_tmp, -1.0_dp, mmn_imag)
511 IF (para_env%is_source())
THEN
512 WRITE (iunit,
"(2I8,3I5)") ik, ik2, nncell(1:3, ik, i)
518 IF (para_env%is_source())
THEN
519 WRITE (iunit,
"(2E30.14)") rmmn, cmmn
531 DEALLOCATE (berry_matrix)
544 IF (para_env%is_source())
THEN
551 nspins = dft_control%nspins
552 kp => kpoint%kp_env(1)%kpoint_env
554 ALLOCATE (eigval(nmo))
556 IF (para_env%is_source())
THEN
557 WRITE (filename,
'(A,A)') trim(seed_name),
".eig"
558 CALL open_file(filename, unit_number=iunit, file_status=
"UNKNOWN", file_action=
"WRITE")
564 my_kpgrp = (ik >= kp_range(1) .AND. ik <= kp_range(2))
567 ikpgr = ik - kp_range(1) + 1
568 kp => kpoint%kp_env(ikpgr)%kpoint_env
569 CALL get_mo_set(kp%mos(1, ispin), eigenvalues=eigenvalues)
570 eigval(1:nmo) = eigenvalues(1:nmo)
572 eigval(1:nmo) = 0.0_dp
574 CALL kpoint%para_env_inter_kp%sum(eigval)
575 eigval(1:nmo) = eigval(1:nmo)*
evolt
579 WRITE (iunit,
"(2I8,F24.14)") ib, ik, eigval(ib)
584 IF (para_env%is_source())
THEN
589 DEALLOCATE (kpt_latt, atoms_cart, atom_symbols, eigval)
590 DEALLOCATE (nnlist, nncell)
591 DEALLOCATE (nblist, b_latt)
593 DEALLOCATE (exclude_bands)
599 DEALLOCATE (qs_env_kp)
605 END SUBROUTINE wannier90_files
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.
Handles all functions related to the CELL.
subroutine, public get_cell(cell, alpha, beta, gamma, deth, orthorhombic, abc, periodic, h, h_inv, symmetry_id, tag)
Get informations about a simulation cell.
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_deallocate_matrix(matrix)
...
subroutine, public dbcsr_set(matrix, alpha)
...
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_sm_fm_multiply(matrix, fm_in, fm_out, ncol, alpha, beta)
multiply a dbcsr with a fm matrix
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.
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_copy_general(source, destination, para_env)
General copy of a fm matrix to another fm matrix. Uses non-blocking MPI rather than ScaLAPACK.
subroutine, public cp_fm_create(matrix, matrix_struct, name, use_sp, nrow, ncol, set_zero)
creates a new full matrix with the given structure
subroutine, public cp_fm_get_element(matrix, irow_global, icol_global, alpha, local)
returns an element of a fm this value is valid on every cpu using this call is expensive
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...
Defines the basic variable types.
integer, parameter, public dp
integer, parameter, public default_string_length
Routines needed for kpoint calculation.
subroutine, public kpoint_initialize_mo_set(kpoint)
...
subroutine, public rskp_transform(rmatrix, cmatrix, rsmat, ispin, xkp, cell_to_index, sab_nl, is_complex, rs_sign)
Transformation of real space matrices to a kpoint.
subroutine, public kpoint_initialize_mos(kpoint, mos, added_mos, for_aux_fit)
Initialize a set of MOs and density matrix for each kpoint (kpoint group)
subroutine, public kpoint_init_cell_index(kpoint, sab_nl, para_env, dft_control)
Generates the mapping of cell indices and linear RS index CELL (0,0,0) is always mapped to index 1.
subroutine, public kpoint_env_initialize(kpoint, para_env, blacs_env, with_aux_fit)
Initialize the kpoint environment.
Types and basic routines needed for a kpoint calculation.
subroutine, public kpoint_release(kpoint)
Release a kpoint environment, deallocate all data.
subroutine, public kpoint_create(kpoint)
Create a kpoint environment.
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.
Machine interface based on Fortran 2003 and POSIX.
integer, parameter, public timestamp_length
subroutine, public m_timestamp(timestamp)
Returns a human readable timestamp.
Definition of mathematical constants and functions.
real(kind=dp), parameter, public twopi
Interface to the message passing library MPI.
basic linear algebra operations for full matrixes
Define the data structure for the particle information.
Definition of physical constants:
real(kind=dp), parameter, public evolt
real(kind=dp), parameter, public angstrom
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 qs_env_release(qs_env)
releases the given qs_env (see doc/ReferenceCounting.html)
Initialize a qs_env for kpoint calculations starting from a gamma point qs_env.
subroutine, public create_kp_from_gamma(qs_env, qs_env_kp, with_xc_terms)
...
Definition and initialisation of the mo data type.
subroutine, public get_mo_set(mo_set, maxocc, homo, lfomo, nao, nelectron, n_el_f, nmo, eigenvalues, occupation_numbers, mo_coeff, mo_coeff_b, uniform_occupation, kts, mu, flexible_electron_count)
Get the components of a MO set data structure.
Calculates the moment integrals <a|r^m|b> and <a|r x d/dr|b>
subroutine, public build_berry_kpoint_matrix(qs_env, cosmat, sinmat, kvec, basis_type)
...
Define the neighbor list data types and the corresponding functionality.
Different diagonalization schemes that can be used for the iterative solution of the eigenvalue probl...
subroutine, public do_general_diag_kp(matrix_ks, matrix_s, kpoints, scf_env, scf_control, update_p, diis_step, diis_error, qs_env, probe)
Kpoint diagonalization routine Transforms matrices to kpoint, distributes kpoint groups,...
module that contains the definitions of the scf types
Interface to Wannier90 code.
subroutine, public wannier90_interface(input, logger, qs_env)
...
parameters that control an scf iteration
Outtakes from Wannier90 code.
subroutine, public wannier_setup(mp_grid_loc, num_kpts_loc, real_lattice_loc, recip_lattice_loc, kpt_latt_loc, nntot_loc, nnlist_loc, nncell_loc, iounit)
...
Type defining parameters related to the simulation cell.
represent a blacs multidimensional parallel environment (for the mpi corrispective see cp_paratypes/m...
keeps the information about the structure of a full matrix
type of a logger, at the moment it contains just a print level starting at which level it should be l...
Keeps information about a specific k-point.
Contains information about kpoints.
stores all the informations relevant to an mpi environment