19 dbcsr_csr_dbcsr_blkrow_dist, dbcsr_csr_destroy, dbcsr_csr_type, dbcsr_csr_write, &
49#include "./base/base_uses.f90"
55 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'pao_io'
64 REAL(
dp),
DIMENSION(:, :),
ALLOCATABLE :: p
68 CHARACTER(LEN=default_string_length) :: name =
""
70 CHARACTER(LEN=default_string_length) :: prim_basis_name =
""
71 INTEGER :: prim_basis_size = -1
72 INTEGER :: pao_basis_size = -1
73 INTEGER :: nparams = -1
77 INTEGER,
PARAMETER,
PRIVATE :: file_format_version = 4
90 CHARACTER(LEN=default_string_length) :: param
91 INTEGER :: iatom, ikind, natoms
92 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: atom2kind
93 INTEGER,
DIMENSION(:),
POINTER :: col_blk_sizes, row_blk_sizes
96 REAL(
dp),
ALLOCATABLE,
DIMENSION(:, :) :: hmat, positions
97 REAL(
dp),
DIMENSION(:, :),
POINTER :: block_x, buffer
104 cpassert(len_trim(pao%restart_file) > 0)
105 IF (pao%iw > 0)
WRITE (pao%iw,
'(A,A)')
" PAO| Reading matrix_X from restart file: ", trim(pao%restart_file)
111 particle_set=particle_set)
114 IF (para_env%is_source())
THEN
115 CALL pao_read_raw(pao%restart_file, param, hmat,
kinds, atom2kind, positions, xblocks)
118 IF (maxval(abs(hmat - cell%hmat)) > 1e-10)
THEN
119 cpwarn(
"Restarting from different cell")
123 IF (trim(param) .NE. trim(adjustl(
id2str(pao%parameterization)))) &
124 cpabort(
"Restart PAO parametrization does not match")
127 DO ikind = 1,
SIZE(
kinds)
132 IF (
SIZE(positions, 1) /= natoms) &
133 cpabort(
"Number of atoms do not match")
137 IF (atom2kind(iatom) /= particle_set(iatom)%atomic_kind%kind_number) &
138 cpabort(
"Restart atomic kinds do not match.")
144 diff = max(diff, maxval(abs(positions(iatom, :) - particle_set(iatom)%r)))
146 cpwarn_if(diff > 1e-10,
"Restarting from different atom positions")
152 CALL dbcsr_get_info(pao%matrix_X, row_blk_size=row_blk_sizes, col_blk_size=col_blk_sizes)
154 ALLOCATE (buffer(row_blk_sizes(iatom), col_blk_sizes(iatom)))
155 IF (para_env%is_source())
THEN
156 cpassert(row_blk_sizes(iatom) ==
SIZE(xblocks(iatom)%p, 1))
157 cpassert(col_blk_sizes(iatom) ==
SIZE(xblocks(iatom)%p, 2))
158 buffer = xblocks(iatom)%p
160 CALL para_env%bcast(buffer)
161 CALL dbcsr_get_block_p(matrix=pao%matrix_X, row=iatom, col=iatom, block=block_x, found=found)
162 IF (
ASSOCIATED(block_x)) &
182 SUBROUTINE pao_read_raw(filename, param, hmat, kinds, atom2kind, positions, xblocks, ml_range)
183 CHARACTER(LEN=default_path_length),
INTENT(IN) :: filename
184 CHARACTER(LEN=default_string_length),
INTENT(OUT) :: param
185 REAL(
dp),
ALLOCATABLE,
DIMENSION(:, :) :: hmat
187 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: atom2kind
188 REAL(
dp),
ALLOCATABLE,
DIMENSION(:, :) :: positions
190 INTEGER,
DIMENSION(2),
INTENT(OUT),
OPTIONAL :: ml_range
192 CHARACTER(LEN=default_string_length) :: label, str_in
193 INTEGER :: i1, i2, iatom, ikind, ipot, natoms, &
194 nkinds, nparams, unit_nr, xblocks_read
196 REAL(
dp),
DIMENSION(3) :: pos_in
197 REAL(
dp),
DIMENSION(3, 3) :: hmat_angstrom
199 cpassert(.NOT.
ALLOCATED(hmat))
200 cpassert(.NOT.
ALLOCATED(
kinds))
201 cpassert(.NOT.
ALLOCATED(atom2kind))
202 cpassert(.NOT.
ALLOCATED(positions))
203 cpassert(.NOT.
ALLOCATED(xblocks))
209 CALL open_file(file_name=filename, file_status=
"OLD", file_form=
"FORMATTED", &
210 file_action=
"READ", unit_number=unit_nr)
213 READ (unit_nr, fmt=*) label, i1
214 IF (trim(label) /=
"Version") &
215 cpabort(
"PAO restart file appears to be corrupted.")
216 IF (i1 /= file_format_version) cpabort(
"Restart PAO file format version is wrong")
219 READ (unit_nr, fmt=*) label
222 IF (trim(label) ==
"Parametrization")
THEN
223 READ (unit_nr, fmt=*) label, str_in
226 ELSE IF (trim(label) ==
"Cell")
THEN
227 READ (unit_nr, fmt=*) label, hmat_angstrom
228 ALLOCATE (hmat(3, 3))
229 hmat(:, :) = hmat_angstrom(:, :)/
angstrom
231 ELSE IF (trim(label) ==
"Nkinds")
THEN
232 READ (unit_nr, fmt=*) label, nkinds
233 ALLOCATE (
kinds(nkinds))
235 ELSE IF (trim(label) ==
"Kind")
THEN
236 READ (unit_nr, fmt=*) label, ikind, str_in, i1
237 cpassert(
ALLOCATED(
kinds))
238 kinds(ikind)%name = str_in
241 ELSE IF (trim(label) ==
"PrimBasis")
THEN
242 READ (unit_nr, fmt=*) label, ikind, i1, str_in
243 cpassert(
ALLOCATED(
kinds))
244 kinds(ikind)%prim_basis_size = i1
245 kinds(ikind)%prim_basis_name = str_in
247 ELSE IF (trim(label) ==
"PaoBasis")
THEN
248 READ (unit_nr, fmt=*) label, ikind, i1
249 cpassert(
ALLOCATED(
kinds))
250 kinds(ikind)%pao_basis_size = i1
252 ELSE IF (trim(label) ==
"NPaoPotentials")
THEN
253 READ (unit_nr, fmt=*) label, ikind, i1
254 cpassert(
ALLOCATED(
kinds))
255 ALLOCATE (
kinds(ikind)%pao_potentials(i1))
257 ELSE IF (trim(label) ==
"PaoPotential")
THEN
258 READ (unit_nr, fmt=*) label, ikind, ipot, i1, i2, r1, r2
259 cpassert(
ALLOCATED(
kinds(ikind)%pao_potentials))
260 kinds(ikind)%pao_potentials(ipot)%maxl = i1
261 kinds(ikind)%pao_potentials(ipot)%max_projector = i2
262 kinds(ikind)%pao_potentials(ipot)%beta = r1
263 kinds(ikind)%pao_potentials(ipot)%weight = r2
265 ELSE IF (trim(label) ==
"NParams")
THEN
266 READ (unit_nr, fmt=*) label, ikind, i1
267 cpassert(
ALLOCATED(
kinds))
268 kinds(ikind)%nparams = i1
270 ELSE IF (trim(label) ==
"Natoms")
THEN
271 READ (unit_nr, fmt=*) label, natoms
272 ALLOCATE (positions(natoms, 3), atom2kind(natoms), xblocks(natoms))
273 positions = 0.0_dp; atom2kind = -1
274 IF (
PRESENT(ml_range)) ml_range = (/1, natoms/)
276 ELSE IF (trim(label) ==
"MLRange")
THEN
280 READ (unit_nr, fmt=*) label, i1, i2
281 IF (
PRESENT(ml_range)) ml_range = (/i1, i2/)
283 ELSE IF (trim(label) ==
"Atom")
THEN
284 READ (unit_nr, fmt=*) label, iatom, str_in, pos_in
285 cpassert(
ALLOCATED(
kinds))
287 IF (trim(
kinds(ikind)%name) .EQ. trim(str_in))
EXIT
289 cpassert(
ALLOCATED(atom2kind) .AND.
ALLOCATED(positions))
290 atom2kind(iatom) = ikind
291 positions(iatom, :) = pos_in/
angstrom
293 ELSE IF (trim(label) ==
"Xblock")
THEN
294 READ (unit_nr, fmt=*) label, iatom
295 cpassert(
ALLOCATED(
kinds) .AND.
ALLOCATED(atom2kind))
296 ikind = atom2kind(iatom)
297 nparams =
kinds(ikind)%nparams
298 cpassert(nparams >= 0)
299 ALLOCATE (xblocks(iatom)%p(nparams, 1))
301 READ (unit_nr, fmt=*) label, iatom, xblocks(iatom)%p
302 xblocks_read = xblocks_read + 1
303 cpassert(iatom == xblocks_read)
305 ELSE IF (trim(label) ==
"THE_END")
THEN
309 READ (unit_nr, fmt=*) label
314 cpassert(xblocks_read == natoms)
328 INTEGER,
INTENT(IN) :: ikind
331 CHARACTER(LEN=default_string_length) :: name
332 INTEGER :: ipot, nparams, pao_basis_size, z
336 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
339 atomic_kind_set=atomic_kind_set, &
340 qs_kind_set=qs_kind_set)
342 IF (ikind >
SIZE(atomic_kind_set) .OR. ikind >
SIZE(qs_kind_set)) &
343 cpabort(
"Some kinds are missing.")
347 basis_set=basis_set, &
348 pao_basis_size=pao_basis_size, &
352 IF (pao_kind%nparams /= nparams) &
353 cpabort(
"Number of parameters do not match")
354 IF (trim(pao_kind%name) .NE. trim(name)) &
355 cpabort(
"Kind names do not match")
356 IF (pao_kind%z /= z) &
357 cpabort(
"Atomic numbers do not match")
358 IF (trim(pao_kind%prim_basis_name) .NE. trim(basis_set%name)) &
359 cpabort(
"Primary Basis-set name does not match")
360 IF (pao_kind%prim_basis_size /= basis_set%nsgf) &
361 cpabort(
"Primary Basis-set size does not match")
362 IF (pao_kind%pao_basis_size /= pao_basis_size) &
363 cpabort(
"PAO basis size does not match")
365 cpabort(
"Number of PAO_POTENTIALS does not match")
368 IF (pao_kind%pao_potentials(ipot)%maxl /=
pao_potentials(ipot)%maxl)
THEN
369 cpabort(
"PAO_POT_MAXL does not match")
371 IF (pao_kind%pao_potentials(ipot)%max_projector /=
pao_potentials(ipot)%max_projector)
THEN
372 cpabort(
"PAO_POT_MAX_PROJECTOR does not match")
374 IF (pao_kind%pao_potentials(ipot)%beta /=
pao_potentials(ipot)%beta)
THEN
375 cpwarn(
"PAO_POT_BETA does not match")
377 IF (pao_kind%pao_potentials(ipot)%weight /=
pao_potentials(ipot)%weight)
THEN
378 cpwarn(
"PAO_POT_WEIGHT does not match")
395 CHARACTER(len=*),
PARAMETER :: printkey_section =
'DFT%LS_SCF%PAO%PRINT%RESTART', &
396 routinen =
'pao_write_restart'
398 INTEGER :: handle, unit_max, unit_nr
403 CALL timeset(routinen, handle)
406 CALL get_qs_env(qs_env, input=input, para_env=para_env)
413 file_action=
"WRITE", &
414 file_position=
"REWIND", &
415 file_status=
"UNKNOWN", &
420 CALL para_env%max(unit_max)
421 IF (unit_max > 0)
THEN
422 IF (pao%iw > 0)
WRITE (pao%iw,
'(A,A)')
" PAO| Writing restart file."
424 CALL write_restart_header(pao, qs_env, energy, unit_nr)
426 CALL pao_write_diagonal_blocks(para_env, pao%matrix_X,
"Xblock", unit_nr)
431 IF (unit_nr > 0)
WRITE (unit_nr,
'(A)')
"THE_END"
434 CALL timestop(handle)
444 SUBROUTINE pao_write_diagonal_blocks(para_env, matrix, label, unit_nr)
447 CHARACTER(LEN=*),
INTENT(IN) :: label
448 INTEGER,
INTENT(IN) :: unit_nr
450 INTEGER :: iatom, natoms
451 INTEGER,
DIMENSION(:),
POINTER :: col_blk_sizes, row_blk_sizes
453 REAL(
dp),
DIMENSION(:, :),
POINTER :: local_block, mpi_buffer
456 CALL dbcsr_get_info(matrix, row_blk_size=row_blk_sizes, col_blk_size=col_blk_sizes)
457 cpassert(
SIZE(row_blk_sizes) ==
SIZE(col_blk_sizes))
458 natoms =
SIZE(row_blk_sizes)
461 ALLOCATE (mpi_buffer(row_blk_sizes(iatom), col_blk_sizes(iatom)))
462 NULLIFY (local_block)
463 CALL dbcsr_get_block_p(matrix=matrix, row=iatom, col=iatom, block=local_block, found=found)
464 IF (
ASSOCIATED(local_block))
THEN
465 IF (
SIZE(local_block) > 0) &
466 mpi_buffer(:, :) = local_block(:, :)
468 mpi_buffer(:, :) = 0.0_dp
471 CALL para_env%sum(mpi_buffer)
472 IF (unit_nr > 0)
THEN
473 WRITE (unit_nr, fmt=
"(A,1X,I10,1X)", advance=
'no') label, iatom
474 WRITE (unit_nr, *) mpi_buffer
476 DEALLOCATE (mpi_buffer)
480 IF (unit_nr > 0)
FLUSH (unit_nr)
482 END SUBROUTINE pao_write_diagonal_blocks
491 SUBROUTINE write_restart_header(pao, qs_env, energy, unit_nr)
495 INTEGER,
INTENT(IN) :: unit_nr
497 CHARACTER(LEN=default_string_length) :: kindname
498 INTEGER :: iatom, ikind, ipot, nparams, &
505 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
509 particle_set=particle_set, &
510 atomic_kind_set=atomic_kind_set, &
511 qs_kind_set=qs_kind_set)
513 WRITE (unit_nr,
"(A,5X,I0)")
"Version", file_format_version
514 WRITE (unit_nr,
"(A,5X,F20.10)")
"Energy", energy
515 WRITE (unit_nr,
"(A,5X,I0)")
"Step", pao%istep
516 WRITE (unit_nr,
"(A,5X,A)")
"Parametrization",
id2str(pao%parameterization)
519 WRITE (unit_nr,
"(A,5X,I0)")
"Nkinds",
SIZE(atomic_kind_set)
520 DO ikind = 1,
SIZE(atomic_kind_set)
523 pao_basis_size=pao_basis_size, &
527 WRITE (unit_nr,
"(A,5X,I10,1X,A,1X,I3)")
"Kind", ikind, trim(kindname), z
528 WRITE (unit_nr,
"(A,5X,I10,1X,I3)")
"NParams", ikind, nparams
529 WRITE (unit_nr,
"(A,5X,I10,1X,I10,1X,A)")
"PrimBasis", ikind, basis_set%nsgf, trim(basis_set%name)
530 WRITE (unit_nr,
"(A,5X,I10,1X,I3)")
"PaoBasis", ikind, pao_basis_size
531 WRITE (unit_nr,
"(A,5X,I10,1X,I3)")
"NPaoPotentials", ikind,
SIZE(
pao_potentials)
533 WRITE (unit_nr,
"(A,5X,I10,1X,I3)", advance=
'no')
"PaoPotential", ikind, ipot
534 WRITE (unit_nr,
"(1X,I3)", advance=
'no')
pao_potentials(ipot)%maxl
535 WRITE (unit_nr,
"(1X,I3)", advance=
'no')
pao_potentials(ipot)%max_projector
536 WRITE (unit_nr,
"(1X,F20.16)", advance=
'no')
pao_potentials(ipot)%beta
542 WRITE (unit_nr, fmt=
"(A,5X)", advance=
'no')
"Cell"
543 WRITE (unit_nr, *) cell%hmat*
angstrom
546 WRITE (unit_nr,
"(A,5X,I0)")
"Natoms",
SIZE(particle_set)
547 DO iatom = 1,
SIZE(particle_set)
548 kindname = particle_set(iatom)%atomic_kind%name
549 WRITE (unit_nr, fmt=
"(A,5X,I10,5X,A,1X)", advance=
'no')
"Atom ", iatom, trim(kindname)
550 WRITE (unit_nr, *) particle_set(iatom)%r*
angstrom
553 END SUBROUTINE write_restart_header
565 CHARACTER(len=*),
PARAMETER :: routinen =
'pao_write_ks_matrix_csr'
567 CHARACTER(LEN=default_path_length) :: file_name, fileformat
568 INTEGER :: handle, ispin, output_unit, unit_nr
569 LOGICAL :: bin, do_kpoints, do_ks_csr_write, uptr
570 REAL(kind=
dp) :: thld
572 TYPE(dbcsr_csr_type) :: ks_mat_csr
576 CALL timeset(routinen, handle)
578 NULLIFY (dft_section)
589 CALL get_qs_env(qs_env=qs_env, do_kpoints=do_kpoints)
591 IF (do_ks_csr_write .AND. (.NOT. do_kpoints))
THEN
597 fileformat =
"UNFORMATTED"
599 fileformat =
"FORMATTED"
602 DO ispin = 1,
SIZE(ls_scf_env%matrix_ks)
607 CALL dbcsr_copy(matrix_ks_nosym, ls_scf_env%matrix_ks(ispin))
613 WRITE (file_name,
'(A,I0)')
"PAO_KS_SPIN_", ispin
615 extension=
".csr", middle_name=trim(file_name), &
616 file_status=
"REPLACE", file_form=fileformat)
617 CALL dbcsr_csr_write(ks_mat_csr, unit_nr, upper_triangle=uptr, threshold=thld, binary=bin)
621 CALL dbcsr_csr_destroy(ks_mat_csr)
626 CALL timestop(handle)
640 CHARACTER(len=*),
PARAMETER :: routinen =
'pao_write_s_matrix_csr'
642 CHARACTER(LEN=default_path_length) :: file_name, fileformat
643 INTEGER :: handle, output_unit, unit_nr
644 LOGICAL :: bin, do_kpoints, do_s_csr_write, uptr
645 REAL(kind=
dp) :: thld
647 TYPE(dbcsr_csr_type) :: s_mat_csr
651 CALL timeset(routinen, handle)
653 NULLIFY (dft_section)
664 CALL get_qs_env(qs_env=qs_env, do_kpoints=do_kpoints)
666 IF (do_s_csr_write .AND. (.NOT. do_kpoints))
THEN
672 fileformat =
"UNFORMATTED"
674 fileformat =
"FORMATTED"
680 CALL dbcsr_copy(matrix_s_nosym, ls_scf_env%matrix_s)
686 WRITE (file_name,
'(A,I0)')
"PAO_S"
688 extension=
".csr", middle_name=trim(file_name), &
689 file_status=
"REPLACE", file_form=fileformat)
690 CALL dbcsr_csr_write(s_mat_csr, unit_nr, upper_triangle=uptr, threshold=thld, binary=bin)
694 CALL dbcsr_csr_destroy(s_mat_csr)
698 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.
Handles all functions related to the CELL.
logical function, public dbcsr_has_symmetry(matrix)
...
subroutine, public dbcsr_convert_dbcsr_to_csr(dbcsr_mat, csr_mat)
...
subroutine, public dbcsr_desymmetrize(matrix_a, matrix_b)
...
subroutine, public dbcsr_copy(matrix_b, matrix_a, name, keep_sparsity, keep_imaginary)
...
subroutine, public dbcsr_get_block_p(matrix, row, col, block, found, row_size, col_size)
...
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)
...
subroutine, public dbcsr_csr_create_from_dbcsr(dbcsr_mat, csr_mat, dist_format, csr_sparsity, numnodes)
...
subroutine, public dbcsr_release(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.
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
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...
Types needed for a linear scaling quickstep SCF run based on the density matrix.
Defines the basic variable types.
integer, parameter, public dp
integer, parameter, public default_string_length
integer, parameter, public default_path_length
Interface to the message passing library MPI.
Routines for reading and writing restart files.
subroutine, public pao_kinds_ensure_equal(pao, qs_env, ikind, pao_kind)
Ensure that the kind read from the restart is equal to the kind curretly in use.
subroutine, public pao_write_restart(pao, qs_env, energy)
Writes restart file.
subroutine, public pao_write_ks_matrix_csr(qs_env, ls_scf_env)
writing the KS matrix (in terms of the PAO basis) in csr format into a file
subroutine, public pao_read_raw(filename, param, hmat, kinds, atom2kind, positions, xblocks, ml_range)
Reads a restart file into temporary datastructures.
subroutine, public pao_write_s_matrix_csr(qs_env, ls_scf_env)
writing the overlap matrix (in terms of the PAO basis) in csr format into a file
subroutine, public pao_read_restart(pao, qs_env)
Reads restart file.
Front-End for any PAO parametrization.
subroutine, public pao_param_count(pao, qs_env, ikind, nparams)
Returns the number of parameters for given atomic kind.
Factory routines for potentials used e.g. by pao_param_exp and pao_ml.
Types used by the PAO machinery.
Define the data structure for the particle information.
Definition of physical constants:
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, 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, 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)
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, 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.
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...
stores all the informations relevant to an mpi environment
Holds information about a PAO potential.
Provides all information about a quickstep kind.