(git:c29306b)
Loading...
Searching...
No Matches
kpoint_io.F
Go to the documentation of this file.
1!--------------------------------------------------------------------------------------------------!
2! CP2K: A general program to perform molecular dynamics simulations !
3! Copyright 2000-2026 CP2K developers group <https://cp2k.org> !
4! !
5! SPDX-License-Identifier: GPL-2.0-or-later !
6!--------------------------------------------------------------------------------------------------!
7
8! **************************************************************************************************
9!> \brief Restart file for k point calculations
10!> \par History
11!> \author JGH (30.09.2015)
12! **************************************************************************************************
14
18 USE cp_dbcsr_api, ONLY: dbcsr_get_info,&
22 USE cp_files, ONLY: close_file,&
30 USE cp_output_handling, ONLY: cp_p_file,&
35 USE kinds, ONLY: default_path_length,&
37 USE kpoint_types, ONLY: get_kpoint_info,&
40 USE orbital_pointers, ONLY: nso
44 USE qs_kind_types, ONLY: get_qs_kind,&
48#include "./base/base_uses.f90"
49
50 IMPLICIT NONE
51
52 PRIVATE
53
54 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'kpoint_io'
55
56 INTEGER, PARAMETER :: version = 1
57
58 PUBLIC :: read_kpoints_restart, &
61
62! **************************************************************************************************
63
64CONTAINS
65
66! **************************************************************************************************
67!> \brief ...
68!> \param denmat ...
69!> \param kpoints ...
70!> \param scf_env ...
71!> \param dft_section ...
72!> \param particle_set ...
73!> \param qs_kind_set ...
74! **************************************************************************************************
75 SUBROUTINE write_kpoints_restart(denmat, kpoints, scf_env, dft_section, &
76 particle_set, qs_kind_set)
77
78 TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: denmat
79 TYPE(kpoint_type), POINTER :: kpoints
80 TYPE(qs_scf_env_type), POINTER :: scf_env
81 TYPE(section_vals_type), POINTER :: dft_section
82 TYPE(particle_type), DIMENSION(:), POINTER :: particle_set
83 TYPE(qs_kind_type), DIMENSION(:), POINTER :: qs_kind_set
84
85 CHARACTER(LEN=*), PARAMETER :: routinen = 'write_kpoints_restart'
86 CHARACTER(LEN=30), DIMENSION(2), PARAMETER :: &
87 keys = ["SCF%PRINT%RESTART_HISTORY", "SCF%PRINT%RESTART "]
88
89 INTEGER :: handle, ic, ikey, ires, ispin, nimages, &
90 nspin
91 INTEGER, DIMENSION(3) :: cell
92 INTEGER, DIMENSION(:, :, :), POINTER :: cell_to_index
93 TYPE(cp_fm_type), POINTER :: fmat
94 TYPE(cp_logger_type), POINTER :: logger
95
96 CALL timeset(routinen, handle)
97 logger => cp_get_default_logger()
98
99 IF (btest(cp_print_key_should_output(logger%iter_info, &
100 dft_section, keys(1)), cp_p_file) .OR. &
101 btest(cp_print_key_should_output(logger%iter_info, &
102 dft_section, keys(2)), cp_p_file)) THEN
103
104 DO ikey = 1, SIZE(keys)
105
106 IF (btest(cp_print_key_should_output(logger%iter_info, &
107 dft_section, keys(ikey)), cp_p_file)) THEN
108
109 ires = cp_print_key_unit_nr(logger, dft_section, keys(ikey), &
110 extension=".kp", file_status="REPLACE", file_action="WRITE", &
111 do_backup=.true., file_form="UNFORMATTED")
112
113 CALL write_kpoints_file_header(qs_kind_set, particle_set, ires)
114
115 nspin = SIZE(denmat, 1)
116 nimages = SIZE(denmat, 2)
117 NULLIFY (cell_to_index)
118 IF (nimages > 1) THEN
119 CALL get_kpoint_info(kpoint=kpoints, cell_to_index=cell_to_index)
120 END IF
121 cpassert(ASSOCIATED(scf_env%scf_work1))
122 fmat => scf_env%scf_work1(1)
123
124 DO ispin = 1, nspin
125 IF (ires > 0) WRITE (ires) ispin, nspin, nimages
126 DO ic = 1, nimages
127 IF (nimages > 1) THEN
128 cell = get_cell(ic, cell_to_index)
129 ELSE
130 cell = 0
131 END IF
132 IF (ires > 0) WRITE (ires) ic, cell
133 CALL copy_dbcsr_to_fm(denmat(ispin, ic)%matrix, fmat)
134 CALL cp_fm_write_unformatted(fmat, ires)
135 END DO
136 END DO
137
138 CALL cp_print_key_finished_output(ires, logger, dft_section, trim(keys(ikey)))
139
140 END IF
141
142 END DO
143
144 END IF
145
146 CALL timestop(handle)
147
148 END SUBROUTINE write_kpoints_restart
149
150! **************************************************************************************************
151!> \brief ...
152!> \param ic ...
153!> \param cell_to_index ...
154!> \return ...
155! **************************************************************************************************
156 FUNCTION get_cell(ic, cell_to_index) RESULT(cell)
157 INTEGER, INTENT(IN) :: ic
158 INTEGER, DIMENSION(:, :, :), POINTER :: cell_to_index
159 INTEGER, DIMENSION(3) :: cell
160
161 INTEGER :: i1, i2, i3
162
163 cell = 0
164 allcell: DO i3 = lbound(cell_to_index, 3), ubound(cell_to_index, 3)
165 DO i2 = lbound(cell_to_index, 2), ubound(cell_to_index, 2)
166 DO i1 = lbound(cell_to_index, 1), ubound(cell_to_index, 1)
167 IF (cell_to_index(i1, i2, i3) == ic) THEN
168 cell(1) = i1
169 cell(2) = i2
170 cell(3) = i3
171 EXIT allcell
172 END IF
173 END DO
174 END DO
175 END DO allcell
176
177 END FUNCTION get_cell
178
179! **************************************************************************************************
180!> \brief ...
181!> \param qs_kind_set ...
182!> \param particle_set ...
183!> \param ires ...
184!> \param basis_type ...
185! **************************************************************************************************
186 SUBROUTINE write_kpoints_file_header(qs_kind_set, particle_set, ires, basis_type)
187
188 TYPE(qs_kind_type), DIMENSION(:), POINTER :: qs_kind_set
189 TYPE(particle_type), DIMENSION(:), POINTER :: particle_set
190 INTEGER :: ires
191 CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: basis_type
192
193 CHARACTER(LEN=*), PARAMETER :: routinen = 'write_kpoints_file_header'
194
195 CHARACTER(LEN=default_string_length) :: basis_type_local
196 INTEGER :: handle, iatom, ikind, iset, ishell, &
197 lmax, lshell, nao, natom, nset, &
198 nset_max, nsgf, nshell_max
199 INTEGER, DIMENSION(:), POINTER :: nset_info, nshell
200 INTEGER, DIMENSION(:, :), POINTER :: l, nshell_info
201 INTEGER, DIMENSION(:, :, :), POINTER :: nso_info
202 TYPE(gto_basis_set_type), POINTER :: orb_basis_set
203 TYPE(qs_dftb_atom_type), POINTER :: dftb_parameter
204
205 CALL timeset(routinen, handle)
206
207 IF (ires > 0) THEN
208
209 IF (PRESENT(basis_type)) THEN
210 basis_type_local = basis_type
211 ELSE
212 basis_type_local = "ORB"
213 END IF
214
215 ! create some info about the basis set first
216 natom = SIZE(particle_set, 1)
217 nset_max = 0
218 nshell_max = 0
219
220 DO iatom = 1, natom
221 NULLIFY (orb_basis_set, dftb_parameter)
222 CALL get_atomic_kind(particle_set(iatom)%atomic_kind, kind_number=ikind)
223 CALL get_qs_kind(qs_kind_set(ikind), basis_type=basis_type_local, &
224 basis_set=orb_basis_set, dftb_parameter=dftb_parameter)
225 IF (ASSOCIATED(orb_basis_set)) THEN
226 CALL get_gto_basis_set(gto_basis_set=orb_basis_set, &
227 nset=nset, &
228 nshell=nshell, &
229 l=l)
230 nset_max = max(nset_max, nset)
231 DO iset = 1, nset
232 nshell_max = max(nshell_max, nshell(iset))
233 END DO
234 ELSEIF (ASSOCIATED(dftb_parameter)) THEN
235 CALL get_dftb_atom_param(dftb_parameter, lmax=lmax)
236 nset_max = max(nset_max, 1)
237 nshell_max = max(nshell_max, lmax + 1)
238 ELSE
239 cpabort("Unknown basis type.")
240 END IF
241 END DO
242
243 ALLOCATE (nso_info(nshell_max, nset_max, natom))
244 nso_info(:, :, :) = 0
245
246 ALLOCATE (nshell_info(nset_max, natom))
247 nshell_info(:, :) = 0
248
249 ALLOCATE (nset_info(natom))
250 nset_info(:) = 0
251
252 nao = 0
253 DO iatom = 1, natom
254 NULLIFY (orb_basis_set, dftb_parameter)
255 CALL get_atomic_kind(particle_set(iatom)%atomic_kind, kind_number=ikind)
256 CALL get_qs_kind(qs_kind_set(ikind), basis_type=basis_type_local, &
257 basis_set=orb_basis_set, dftb_parameter=dftb_parameter)
258 IF (ASSOCIATED(orb_basis_set)) THEN
259 CALL get_gto_basis_set(gto_basis_set=orb_basis_set, nsgf=nsgf, nset=nset, nshell=nshell, l=l)
260 nao = nao + nsgf
261 nset_info(iatom) = nset
262 DO iset = 1, nset
263 nshell_info(iset, iatom) = nshell(iset)
264 DO ishell = 1, nshell(iset)
265 lshell = l(ishell, iset)
266 nso_info(ishell, iset, iatom) = nso(lshell)
267 END DO
268 END DO
269 ELSEIF (ASSOCIATED(dftb_parameter)) THEN
270 CALL get_dftb_atom_param(dftb_parameter, lmax=lmax)
271 nset_info(iatom) = 1
272 nshell_info(1, iatom) = lmax + 1
273 DO ishell = 1, lmax + 1
274 lshell = ishell - 1
275 nso_info(ishell, 1, iatom) = nso(lshell)
276 END DO
277 nao = nao + (lmax + 1)**2
278 ELSE
279 cpabort("Unknown basis set type.")
280 END IF
281 END DO
282
283 WRITE (ires) version
284 WRITE (ires) natom, nao, nset_max, nshell_max
285 WRITE (ires) nset_info
286 WRITE (ires) nshell_info
287 WRITE (ires) nso_info
288
289 DEALLOCATE (nset_info, nshell_info, nso_info)
290 END IF
291
292 CALL timestop(handle)
293
294 END SUBROUTINE write_kpoints_file_header
295
296! **************************************************************************************************
297!> \brief ...
298!> \param denmat ...
299!> \param kpoints ...
300!> \param fmwork ...
301!> \param natom ...
302!> \param para_env ...
303!> \param id_nr ...
304!> \param dft_section ...
305!> \param natom_mismatch ...
306! **************************************************************************************************
307 SUBROUTINE read_kpoints_restart(denmat, kpoints, fmwork, natom, &
308 para_env, id_nr, dft_section, natom_mismatch)
309
310 TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: denmat
311 TYPE(kpoint_type), POINTER :: kpoints
312 TYPE(cp_fm_type), DIMENSION(:), INTENT(INOUT) :: fmwork
313 INTEGER, INTENT(IN) :: natom
314 TYPE(mp_para_env_type), POINTER :: para_env
315 INTEGER, INTENT(IN) :: id_nr
316 TYPE(section_vals_type), POINTER :: dft_section
317 LOGICAL, INTENT(OUT) :: natom_mismatch
318
319 CHARACTER(LEN=*), PARAMETER :: routinen = 'read_kpoints_restart'
320
321 CHARACTER(LEN=default_path_length) :: file_name
322 INTEGER :: handle, restart_unit
323 LOGICAL :: exist
324 TYPE(cp_logger_type), POINTER :: logger
325
326 CALL timeset(routinen, handle)
327 logger => cp_get_default_logger()
328
329 restart_unit = -1
330
331 IF (para_env%is_source()) THEN
332
333 CALL wfn_restart_file_name(file_name, exist, dft_section, logger, kp=.true.)
334 IF (id_nr /= 0) THEN
335 ! Is it one of the backup files?
336 file_name = trim(file_name)//".bak-"//adjustl(cp_to_string(id_nr))
337 END IF
338
339 CALL open_file(file_name=file_name, &
340 file_action="READ", &
341 file_form="UNFORMATTED", &
342 file_status="OLD", &
343 unit_number=restart_unit)
344
345 END IF
346
347 CALL read_kpoints_restart_low(denmat, kpoints, fmwork(1), para_env, &
348 natom, restart_unit, natom_mismatch)
349
350 ! only the io_node returns natom_mismatch, must broadcast it
351 CALL para_env%bcast(natom_mismatch)
352
353 ! Close restart file
354 IF (para_env%is_source()) CALL close_file(unit_number=restart_unit)
355
356 CALL timestop(handle)
357
358 END SUBROUTINE read_kpoints_restart
359
360! **************************************************************************************************
361!> \brief Reading the mos from apreviously defined restart file
362!> \param denmat ...
363!> \param kpoints ...
364!> \param fmat ...
365!> \param para_env ...
366!> \param natom ...
367!> \param rst_unit ...
368!> \param natom_mismatch ...
369!> \par History
370!> 12.2007 created [MI]
371!> \author MI
372! **************************************************************************************************
373 SUBROUTINE read_kpoints_restart_low(denmat, kpoints, fmat, para_env, &
374 natom, rst_unit, natom_mismatch)
375
376 TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: denmat
377 TYPE(kpoint_type), POINTER :: kpoints
378 TYPE(cp_fm_type), INTENT(INOUT) :: fmat
379 TYPE(mp_para_env_type), POINTER :: para_env
380 INTEGER, INTENT(IN) :: natom, rst_unit
381 LOGICAL, INTENT(OUT) :: natom_mismatch
382
383 INTEGER :: ic, image, ispin, nao, nao_read, &
384 natom_read, ni, nimages, nset_max, &
385 nshell_max, nspin, nspin_read, &
386 version_read
387 INTEGER, DIMENSION(3) :: cell
388 INTEGER, DIMENSION(:, :, :), POINTER :: cell_to_index
389 LOGICAL :: natom_match
390
391 cpassert(ASSOCIATED(denmat))
392 CALL dbcsr_get_info(denmat(1, 1)%matrix, nfullrows_total=nao)
393
394 nspin = SIZE(denmat, 1)
395 nimages = SIZE(denmat, 2)
396 NULLIFY (cell_to_index)
397 IF (nimages > 1) THEN
398 CALL get_kpoint_info(kpoint=kpoints, cell_to_index=cell_to_index)
399 END IF
400
401 IF (para_env%is_source()) THEN
402 READ (rst_unit) version_read
403 IF (version_read /= version) THEN
404 CALL cp_abort(__location__, &
405 " READ RESTART : Version of restart file not supported")
406 END IF
407 READ (rst_unit) natom_read, nao_read, nset_max, nshell_max
408 natom_match = (natom_read == natom)
409 IF (natom_match) THEN
410 IF (nao_read /= nao) THEN
411 CALL cp_abort(__location__, &
412 " READ RESTART : Different number of basis functions")
413 END IF
414 READ (rst_unit)
415 READ (rst_unit)
416 READ (rst_unit)
417 END IF
418 END IF
419
420 ! make natom_match and natom_mismatch uniform across all nodes
421 CALL para_env%bcast(natom_match)
422 natom_mismatch = .NOT. natom_match
423 ! handle natom_match false
424 IF (natom_mismatch) THEN
425 CALL cp_warn(__location__, &
426 " READ RESTART : WARNING : DIFFERENT natom, returning ")
427 ELSE
428
429 DO
430 ispin = 0
431 IF (para_env%is_source()) THEN
432 READ (rst_unit) ispin, nspin_read, ni
433 END IF
434 CALL para_env%bcast(ispin)
435 CALL para_env%bcast(nspin_read)
436 CALL para_env%bcast(ni)
437 IF (nspin_read /= nspin) THEN
438 CALL cp_abort(__location__, &
439 " READ RESTART : Different spin polarisation not supported")
440 END IF
441 DO ic = 1, ni
442 IF (para_env%is_source()) THEN
443 READ (rst_unit) image, cell
444 END IF
445 CALL para_env%bcast(image)
446 CALL para_env%bcast(cell)
447 !
448 CALL cp_fm_read_unformatted(fmat, rst_unit)
449 !
450 IF (nimages > 1) THEN
451 image = get_index(cell, cell_to_index)
452 ELSE IF (sum(abs(cell(:))) == 0) THEN
453 image = 1
454 ELSE
455 image = 0
456 END IF
457 IF (image >= 1 .AND. image <= nimages) THEN
458 CALL copy_fm_to_dbcsr(fmat, denmat(ispin, image)%matrix)
459 END IF
460 END DO
461 IF (ispin == nspin_read) EXIT
462 END DO
463
464 END IF
465
466 END SUBROUTINE read_kpoints_restart_low
467
468! **************************************************************************************************
469!> \brief ...
470!> \param cell ...
471!> \param cell_to_index ...
472!> \return ...
473! **************************************************************************************************
474 FUNCTION get_index(cell, cell_to_index) RESULT(index)
475 INTEGER, DIMENSION(3), INTENT(IN) :: cell
476 INTEGER, DIMENSION(:, :, :), POINTER :: cell_to_index
477 INTEGER :: index
478
479 IF (cell(1) >= lbound(cell_to_index, 1) .AND. cell(1) <= ubound(cell_to_index, 1) .AND. &
480 cell(2) >= lbound(cell_to_index, 2) .AND. cell(2) <= ubound(cell_to_index, 2) .AND. &
481 cell(3) >= lbound(cell_to_index, 3) .AND. cell(3) <= ubound(cell_to_index, 3)) THEN
482
483 index = cell_to_index(cell(1), cell(2), cell(3))
484
485 ELSE
486
487 index = 0
488
489 END IF
490
491 END FUNCTION get_index
492
493END MODULE kpoint_io
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)
...
subroutine, public dbcsr_get_info(matrix, nblkrows_total, nblkcols_total, nfullrows_total, nfullcols_total, nblkrows_local, nblkcols_local, nfullrows_local, nfullcols_local, my_prow, my_pcol, local_rows, local_cols, proc_row_dist, proc_col_dist, row_blk_size, col_blk_size, row_blk_offset, col_blk_offset, distribution, name, matrix_type, group)
...
DBCSR operations in CP2K.
subroutine, public copy_dbcsr_to_fm(matrix, fm)
Copy a DBCSR matrix to a BLACS matrix.
subroutine, public copy_fm_to_dbcsr(fm, matrix, keep_sparsity)
Copy a BLACS matrix to a dbcsr matrix.
Utility routines to open and close files. Tracking of preconnections.
Definition cp_files.F:16
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.
Definition cp_files.F:311
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.
Definition cp_files.F:122
represent a full matrix distributed on many processors
Definition cp_fm_types.F:15
subroutine, public cp_fm_write_unformatted(fm, unit)
...
subroutine, public cp_fm_read_unformatted(fm, unit)
...
various routines to log and control the output. The idea is that decisions about where to log should ...
type(cp_logger_type) function, pointer, public cp_get_default_logger()
returns the default logger
routines to handle the output, The idea is to remove the decision of wheter to output and what to out...
integer function, public cp_print_key_unit_nr(logger, basis_section, print_key_path, extension, middle_name, local, log_filename, ignore_should_output, file_form, file_position, file_action, file_status, do_backup, on_file, is_new_file, mpi_io, fout)
...
subroutine, public cp_print_key_finished_output(unit_nr, logger, basis_section, print_key_path, local, ignore_should_output, on_file, mpi_io)
should be called after you finish working with a unit obtained with cp_print_key_unit_nr,...
integer, parameter, public cp_p_file
integer function, public cp_print_key_should_output(iteration_info, basis_section, print_key_path, used_print_key, first_time)
returns what should be done with the given property if btest(res,cp_p_store) then the property should...
objects that represent the structure of input sections and the data contained in an input section
Defines the basic variable types.
Definition kinds.F:23
integer, parameter, public default_string_length
Definition kinds.F:57
integer, parameter, public default_path_length
Definition kinds.F:58
Restart file for k point calculations.
Definition kpoint_io.F:13
subroutine, public read_kpoints_restart(denmat, kpoints, fmwork, natom, para_env, id_nr, dft_section, natom_mismatch)
...
Definition kpoint_io.F:309
subroutine, public write_kpoints_restart(denmat, kpoints, scf_env, dft_section, particle_set, qs_kind_set)
...
Definition kpoint_io.F:77
subroutine, public write_kpoints_file_header(qs_kind_set, particle_set, ires, basis_type)
...
Definition kpoint_io.F:187
integer function, dimension(3), public get_cell(ic, cell_to_index)
...
Definition kpoint_io.F:157
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, inversion_symmetry_only, symmetry_backend, symmetry_reduction_method)
Retrieve information from a kpoint environment.
Interface to the message passing library MPI.
Provides Cartesian and spherical orbital pointers and indices.
integer, dimension(:), allocatable, public nso
Define the data structure for the particle information.
Definition of the DFTB parameter types.
Working with the DFTB parameter types.
subroutine, public get_dftb_atom_param(dftb_parameter, name, typ, defined, z, zeff, natorb, lmax, skself, occupation, eta, energy, cutoff, xi, di, rcdisp, dudq)
...
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.
Definition and initialisation of the mo data type.
Definition qs_mo_io.F:21
subroutine, public wfn_restart_file_name(filename, exist, section, logger, kp, xas, rtp)
...
Definition qs_mo_io.F:450
module that contains the definitions of the scf types
represent a full matrix
type of a logger, at the moment it contains just a print level starting at which level it should be l...
Contains information about kpoints.
stores all the informations relevant to an mpi environment
Provides all information about a quickstep kind.