55#include "./base/base_uses.f90"
60 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'molden_utils'
61 LOGICAL,
PARAMETER :: debug_this_module = .false.
63 INTEGER,
PARAMETER :: molden_lmax = 4
64 INTEGER,
PARAMETER :: molden_ncomax = (molden_lmax + 1)*(molden_lmax + 2)/2
76 SUBROUTINE write_cell_molden(iw, cell, unit_choice)
77 INTEGER,
INTENT(IN) :: iw
78 TYPE(cell_type),
INTENT(IN) :: cell
79 INTEGER,
INTENT(IN) :: unit_choice
81 REAL(KIND=
dp) :: scale_factor
83 IF (unit_choice == 2)
THEN
85 WRITE (iw,
'(T2,A)')
"[Cell] Angs"
88 WRITE (iw,
'(T2,A)')
"[Cell] AU"
90 WRITE (iw,
'(T2,3(F12.6,3X))') &
91 cell%hmat(1, 1)*scale_factor, cell%hmat(2, 1)*scale_factor, cell%hmat(3, 1)*scale_factor
92 WRITE (iw,
'(T2,3(F12.6,3X))') &
93 cell%hmat(1, 2)*scale_factor, cell%hmat(2, 2)*scale_factor, cell%hmat(3, 2)*scale_factor
94 WRITE (iw,
'(T2,3(F12.6,3X))') &
95 cell%hmat(1, 3)*scale_factor, cell%hmat(2, 3)*scale_factor, cell%hmat(3, 3)*scale_factor
96 END SUBROUTINE write_cell_molden
112 unoccupied_orbs, unoccupied_evals, qs_env, calc_energies)
114 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
117 TYPE(
cell_type),
OPTIONAL,
POINTER :: cell
119 OPTIONAL :: unoccupied_orbs
121 OPTIONAL :: unoccupied_evals
123 LOGICAL,
INTENT(IN),
OPTIONAL :: calc_energies
125 CHARACTER(LEN=*),
PARAMETER :: routinen =
'write_mos_molden'
126 CHARACTER(LEN=molden_lmax+1),
PARAMETER :: angmom =
"spdfg"
128 CHARACTER(LEN=15) :: fmtstr1, fmtstr2
129 CHARACTER(LEN=2) :: element_symbol
130 INTEGER :: gto_kind, handle, i, iatom, icgf, icol, ikind, ipgf, irow, irow_in, iset, isgf, &
131 ishell, ispin, iw, lshell, ncgf, ncol_global, ndigits, nrow_global, nset, nsgf, numos, &
133 INTEGER,
DIMENSION(:),
POINTER :: npgf, nshell
134 INTEGER,
DIMENSION(:, :),
POINTER :: l
135 INTEGER,
DIMENSION(molden_ncomax, 0:molden_lmax) :: orbmap
136 LOGICAL :: do_calc_energies, ghost_atom, &
137 mark_ghost, print_warn, write_cell, &
139 REAL(kind=
dp) :: expzet, prefac, scale_factor, zeff
140 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :) :: cmatrix, smatrix
141 REAL(kind=
dp),
DIMENSION(:),
POINTER :: mo_eigenvalues
142 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: zet
143 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: gcc
148 TYPE(
dbcsr_type),
POINTER :: matrix_ks, mo_coeff_deriv
152 CALL timeset(routinen, handle)
158 extension=
".molden", file_status=
'REPLACE')
163 IF (unit_choice == 2)
THEN
166 scale_factor = 1.0_dp
170 ndigits = min(max(3, ndigits), 30)
171 WRITE (unit=fmtstr1, fmt=
'("(I6,1X,ES",I0,".",I0,")")') ndigits + 7, ndigits
172 WRITE (unit=fmtstr2, fmt=
'("((T51,2F",I0,".",I0,"))")') ndigits + 10, ndigits
179 IF (mos(1)%use_mo_coeff_b)
THEN
182 DO ispin = 1,
SIZE(mos)
183 cpassert(
ASSOCIATED(mos(ispin)%mo_coeff_b))
190 WRITE (iw,
'(T2,A)')
"[Molden Format]"
192 cpassert(
PRESENT(cell))
193 cpassert(
ASSOCIATED(cell))
194 CALL write_cell_molden(iw, cell, unit_choice)
196 IF (unit_choice == 2)
THEN
197 WRITE (iw,
'(T2,A)')
"[Atoms] Angs"
199 WRITE (iw,
'(T2,A)')
"[Atoms] AU"
201 DO i = 1,
SIZE(particle_set)
202 CALL get_atomic_kind(atomic_kind=particle_set(i)%atomic_kind, kind_number=ikind, &
203 element_symbol=element_symbol)
206 CALL get_qs_kind(qs_kind_set(ikind), ghost=ghost_atom)
207 IF (ghost_atom) z = 0
210 WRITE (iw,
'(T2,A2,I6,I6,3X,3(F12.6,3X))') &
211 element_symbol, i, z, particle_set(i)%r(:)*scale_factor
213 IF (write_pseudo)
THEN
214 WRITE (iw,
'(T2,A)')
"[Pseudo]"
215 DO i = 1,
SIZE(particle_set)
216 CALL get_atomic_kind(atomic_kind=particle_set(i)%atomic_kind, kind_number=ikind, &
217 element_symbol=element_symbol)
219 WRITE (iw,
'(T2,A2,I6,I6)') &
220 element_symbol, i, nint(zeff)
224 WRITE (iw,
'(T2,A)')
"[GTO]"
226 DO i = 1,
SIZE(particle_set)
227 CALL get_atomic_kind(atomic_kind=particle_set(i)%atomic_kind, kind_number=ikind, &
228 element_symbol=element_symbol)
229 CALL get_qs_kind(qs_kind_set(ikind), basis_set=orb_basis_set)
230 IF (
ASSOCIATED(orb_basis_set))
THEN
231 WRITE (iw,
'(T2,I8,I8)') i, 0
241 DO ishell = 1, nshell(iset)
242 lshell = l(ishell, iset)
243 IF (lshell <= molden_lmax)
THEN
244 WRITE (unit=iw, fmt=
'(T25,A2,4X,I4,4X,F4.2)') &
245 angmom(lshell + 1:lshell + 1), npgf(iset), 1.0_dp
249 prefac = 2_dp**lshell*(2/
pi)**0.75_dp
250 expzet = 0.25_dp*(2*lshell + 3.0_dp)
251 WRITE (unit=iw, fmt=fmtstr2) &
252 (zet(ipgf, iset), gcc(ipgf, ishell, iset)/(prefac*zet(ipgf, iset)**expzet), &
256 CALL cp_warn(__location__, &
257 "MOLDEN format does not support Gaussian orbitals with l > 4.")
264 WRITE (iw,
'(A4)')
" "
271 WRITE (iw,
'(T2,A)')
"[5D7F]"
272 WRITE (iw,
'(T2,A)')
"[9G]"
275 WRITE (iw,
'(T2,A)')
"[MO]"
304 orbmap = reshape([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, &
305 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, &
306 1, 4, 6, 2, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, &
307 1, 7, 10, 4, 2, 3, 6, 9, 8, 5, 0, 0, 0, 0, 0, &
308 1, 11, 15, 2, 3, 7, 12, 10, 14, 4, 6, 13, 5, 8, 9], &
309 [molden_ncomax, molden_lmax + 1])
314 orbmap = reshape([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, &
315 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, &
316 3, 4, 2, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, &
317 4, 5, 3, 6, 2, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, &
318 5, 6, 4, 7, 3, 8, 2, 9, 1, 0, 0, 0, 0, 0, 0], &
319 [molden_ncomax, molden_lmax + 1])
323 DO ispin = 1,
SIZE(mos)
324 do_calc_energies = .false.
325 IF (
PRESENT(calc_energies)) do_calc_energies = calc_energies
327 IF (
PRESENT(qs_env) .AND. do_calc_energies)
THEN
328 CALL get_qs_env(qs_env, matrix_ks=ks, dft_control=dft_control)
330 matrix_ks => ks(ispin)%matrix
333 IF (dft_control%do_admm)
THEN
338 CALL get_mo_set(mo_set=mos(ispin), mo_coeff=mo_coeff, eigenvalues=mo_eigenvalues)
340 IF (
ASSOCIATED(qs_env%mo_derivs))
THEN
341 mo_coeff_deriv => qs_env%mo_derivs(ispin)%matrix
343 mo_coeff_deriv => null()
348 ks_matrix=matrix_ks, &
349 evals_arg=mo_eigenvalues, &
350 co_rotate_dbcsr=mo_coeff_deriv)
353 IF (dft_control%do_admm)
THEN
359 nrow_global=nrow_global, &
360 ncol_global=ncol_global)
361 ALLOCATE (smatrix(nrow_global, ncol_global))
368 ALLOCATE (cmatrix(ncgf, ncgf))
376 DO iatom = 1,
SIZE(particle_set)
377 NULLIFY (orb_basis_set)
378 CALL get_atomic_kind(particle_set(iatom)%atomic_kind, kind_number=ikind)
380 basis_set=orb_basis_set)
381 IF (
ASSOCIATED(orb_basis_set))
THEN
387 DO ishell = 1, nshell(iset)
388 lshell = l(ishell, iset)
389 CALL dgemm(
"T",
"N",
nco(lshell), mos(ispin)%nmo,
nso(lshell), 1.0_dp, &
391 smatrix(isgf, 1), nsgf, 0.0_dp, &
392 cmatrix(icgf, 1), ncgf)
393 icgf = icgf +
nco(lshell)
394 isgf = isgf +
nso(lshell)
401 DO icol = 1, mos(ispin)%nmo
410 WRITE (iw,
'(A,ES20.10)')
'Ene=', mos(ispin)%eigenvalues(icol)
412 WRITE (iw,
'(A)')
'Spin= Alpha'
414 WRITE (iw,
'(A)')
'Spin= Beta'
416 WRITE (iw,
'(A,F12.7)')
'Occup=', mos(ispin)%occupation_numbers(icol)
418 DO iatom = 1,
SIZE(particle_set)
419 NULLIFY (orb_basis_set)
421 element_symbol=element_symbol, kind_number=ikind)
423 basis_set=orb_basis_set)
424 IF (
ASSOCIATED(orb_basis_set))
THEN
436 DO ishell = 1, nshell(iset)
437 lshell = l(ishell, iset)
439 IF (lshell <= molden_lmax)
THEN
440 CALL print_coeffs(iw, fmtstr1, ndigits, irow_in, orbmap(:, lshell), &
441 cmatrix(irow:irow +
nco(lshell) - 1, icol))
442 irow_in = irow_in +
nco(lshell)
445 irow = irow +
nco(lshell)
454 DO ishell = 1, nshell(iset)
455 lshell = l(ishell, iset)
457 IF (lshell <= molden_lmax)
THEN
458 CALL print_coeffs(iw, fmtstr1, ndigits, irow_in, orbmap(:, lshell), &
459 smatrix(irow:irow +
nso(lshell) - 1, icol))
460 irow_in = irow_in +
nso(lshell)
463 irow = irow +
nso(lshell)
473 IF (
ALLOCATED(cmatrix))
DEALLOCATE (cmatrix)
474 IF (
ALLOCATED(smatrix))
DEALLOCATE (smatrix)
478 IF (
PRESENT(unoccupied_orbs) .AND.
PRESENT(unoccupied_evals))
THEN
479 DO ispin = 1,
SIZE(unoccupied_orbs)
481 nrow_global=nrow_global, &
483 ALLOCATE (smatrix(nrow_global, numos))
489 ALLOCATE (cmatrix(ncgf, numos))
494 DO iatom = 1,
SIZE(particle_set)
495 NULLIFY (orb_basis_set)
496 CALL get_atomic_kind(particle_set(iatom)%atomic_kind, kind_number=ikind)
497 CALL get_qs_kind(qs_kind_set(ikind), basis_set=orb_basis_set)
498 IF (
ASSOCIATED(orb_basis_set))
THEN
500 nset=nset, nshell=nshell, l=l)
502 DO ishell = 1, nshell(iset)
503 lshell = l(ishell, iset)
504 CALL dgemm(
"T",
"N",
nco(lshell), numos,
nso(lshell), 1.0_dp, &
506 smatrix(isgf, 1), nsgf, 0.0_dp, &
507 cmatrix(icgf, 1), ncgf)
508 icgf = icgf +
nco(lshell)
509 isgf = isgf +
nso(lshell)
520 WRITE (iw,
'(A,ES20.10)')
'Ene=', unoccupied_evals(ispin)%array(icol)
522 WRITE (iw,
'(A)')
'Spin= Alpha'
524 WRITE (iw,
'(A)')
'Spin= Beta'
526 WRITE (iw,
'(A,F12.7)')
'Occup=', 0.0_dp
528 DO iatom = 1,
SIZE(particle_set)
529 NULLIFY (orb_basis_set)
531 element_symbol=element_symbol, kind_number=ikind)
532 CALL get_qs_kind(qs_kind_set(ikind), basis_set=orb_basis_set)
533 IF (
ASSOCIATED(orb_basis_set))
THEN
535 nset=nset, nshell=nshell, l=l)
540 DO ishell = 1, nshell(iset)
541 lshell = l(ishell, iset)
542 IF (lshell <= molden_lmax)
THEN
543 CALL print_coeffs(iw, fmtstr1, ndigits, irow_in, orbmap(:, lshell), &
544 cmatrix(irow:irow +
nco(lshell) - 1, icol))
545 irow_in = irow_in +
nco(lshell)
547 irow = irow +
nco(lshell)
552 DO ishell = 1, nshell(iset)
553 lshell = l(ishell, iset)
554 IF (lshell <= molden_lmax)
THEN
555 CALL print_coeffs(iw, fmtstr1, ndigits, irow_in, orbmap(:, lshell), &
556 smatrix(irow:irow +
nso(lshell) - 1, icol))
557 irow_in = irow_in +
nso(lshell)
559 irow = irow +
nso(lshell)
569 IF (
ALLOCATED(cmatrix))
DEALLOCATE (cmatrix)
570 IF (
ALLOCATED(smatrix))
DEALLOCATE (smatrix)
578 CALL timestop(handle)
591 SUBROUTINE print_coeffs(iw, fmtstr1, ndigits, irow_in, orbmap, mo_coeff)
592 INTEGER,
INTENT(in) :: iw
593 CHARACTER(LEN=*),
INTENT(in) :: fmtstr1
594 INTEGER,
INTENT(in) :: ndigits, irow_in
595 INTEGER,
DIMENSION(molden_ncomax),
INTENT(in) :: orbmap
596 REAL(kind=
dp),
DIMENSION(:),
INTENT(in) :: mo_coeff
602 IF (abs(mo_coeff(orbmap(
orbital))) >= 10.0_dp**(-ndigits))
THEN
603 WRITE (iw, fmtstr1) irow_in +
orbital - 1, mo_coeff(orbmap(
orbital))
608 END SUBROUTINE print_coeffs
625 dump_only_positive, logger, list, cell)
629 REAL(kind=
dp),
DIMENSION(:) :: freq
630 REAL(kind=
dp),
DIMENSION(:, :) :: eigen_vec
631 REAL(kind=
dp),
DIMENSION(:),
POINTER :: intensities
632 LOGICAL,
INTENT(in) :: calc_intens, dump_only_positive
634 INTEGER,
DIMENSION(:),
OPTIONAL,
POINTER ::
list
635 TYPE(
cell_type),
OPTIONAL,
POINTER :: cell
637 CHARACTER(len=*),
PARAMETER :: routinen =
'write_vibrations_molden'
639 CHARACTER(LEN=2) :: element_symbol
640 INTEGER :: handle, i, iw, j, k, l, z
641 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: my_list
642 LOGICAL :: write_cell
643 REAL(kind=
dp) :: fint
645 CALL timeset(routinen, handle)
648 extension=
".mol", file_status=
'REPLACE')
651 cpassert(mod(
SIZE(eigen_vec, 1), 3) == 0)
652 cpassert(
SIZE(freq, 1) ==
SIZE(eigen_vec, 2))
653 ALLOCATE (my_list(
SIZE(particles)))
656 IF (
PRESENT(
list))
THEN
662 cpassert(
SIZE(particles) ==
SIZE(eigen_vec, 1)/3)
663 DO i = 1,
SIZE(my_list)
667 WRITE (iw,
'(T2,A)')
"[Molden Format]"
671 cpassert(
PRESENT(cell))
672 cpassert(
ASSOCIATED(cell))
673 CALL write_cell_molden(iw, cell, 1)
675 WRITE (iw,
'(T2,A)')
"[Atoms] AU"
676 DO i = 1,
SIZE(particles)
678 element_symbol=element_symbol)
681 WRITE (iw,
'(T2,A2,I8,I8,3X,3(F12.6,3X))') &
682 element_symbol, i, z, particles(i)%r(:)
685 WRITE (iw,
'(T2,A)')
"[FREQ]"
686 DO i = 1,
SIZE(freq, 1)
687 IF ((.NOT. dump_only_positive) .OR. (freq(i) >= 0._dp))
WRITE (iw,
'(T5,F12.6)') freq(i)
689 WRITE (iw,
'(T2,A)')
"[FR-COORD]"
690 DO i = 1,
SIZE(particles)
692 element_symbol=element_symbol)
693 WRITE (iw,
'(T2,A2,3X,3(F12.6,3X))') &
694 element_symbol, particles(i)%r(:)
696 WRITE (iw,
'(T2,A)')
"[FR-NORM-COORD]"
698 DO i = 1,
SIZE(eigen_vec, 2)
699 IF ((.NOT. dump_only_positive) .OR. (freq(i) >= 0._dp))
THEN
701 WRITE (iw,
'(T2,A,1X,I6)')
"vibration", l
702 DO j = 1,
SIZE(particles)
703 IF (my_list(j) /= 0)
THEN
704 k = (my_list(j) - 1)*3
705 WRITE (iw,
'(T2,3(F12.6,3X))') eigen_vec(k + 1, i), eigen_vec(k + 2, i), eigen_vec(k + 3, i)
707 WRITE (iw,
'(T2,3(F12.6,3X))') 0.0_dp, 0.0_dp, 0.0_dp
712 IF (calc_intens)
THEN
715 WRITE (iw,
'(T2,A)')
"[INT]"
716 DO i = 1,
SIZE(intensities)
717 IF ((.NOT. dump_only_positive) .OR. (freq(i) >= 0._dp))
WRITE (iw,
'(3X,F18.6)') fint*intensities(i)**2
724 CALL timestop(handle)
static void dgemm(const char transa, const char transb, const int m, const int n, const int k, const double alpha, const double *a, const int lda, const double *b, const int ldb, const double beta, double *c, const int ldc)
Convenient wrapper to hide Fortran nature of dgemm_, swapping a and b.
Types and set/get functions for auxiliary density matrix methods.
Contains methods used in the context of density fitting.
subroutine, public admm_uncorrect_for_eigenvalues(ispin, admm_env, ks_matrix)
...
subroutine, public admm_correct_for_eigenvalues(ispin, admm_env, ks_matrix)
...
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, ccon)
...
Handles all functions related to the CELL.
various utilities that regard array of different kinds: output, allocation,... maybe it is not a good...
Defines control structures, which contain the parameters and the settings for the DFT-based calculati...
DBCSR operations in CP2K.
subroutine, public copy_dbcsr_to_fm(matrix, fm)
Copy a DBCSR matrix to a BLACS matrix.
represent a full matrix distributed on many processors
subroutine, public cp_fm_get_info(matrix, name, nrow_global, ncol_global, nrow_block, ncol_block, nrow_local, ncol_local, row_indices, col_indices, local_data, context, nrow_locals, ncol_locals, matrix_struct, para_env)
returns all kind of information about the full matrix
subroutine, public cp_fm_get_submatrix(fm, target_m, start_row, start_col, n_rows, n_cols, transpose)
gets a submatrix of a full matrix op(target_m)(1:n_rows,1:n_cols) =fm(start_row:start_row+n_rows,...
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...
Defines the basic variable types.
integer, parameter, public dp
An array-based list which grows on demand. When the internal array is full, a new array of twice the ...
Definition of mathematical constants and functions.
real(kind=dp), parameter, public pi
Functions handling the MOLDEN format. Split from mode_selective.
subroutine, public write_mos_molden(mos, qs_kind_set, particle_set, print_section, cell, unoccupied_orbs, unoccupied_evals, qs_env, calc_energies)
Write out the MOs in molden format for visualisation.
subroutine, public write_vibrations_molden(input, particles, freq, eigen_vec, intensities, calc_intens, dump_only_positive, logger, list, cell)
writes the output for vibrational analysis in MOLDEN format
Provides Cartesian and spherical orbital pointers and indices.
integer, dimension(:), allocatable, public nco
integer, dimension(:), allocatable, public nso
Define the data structure for the particle information.
Periodic Table related data definitions.
subroutine, public get_ptable_info(symbol, number, amass, ielement, covalent_radius, metallic_radius, vdw_radius, found)
Pass information about the kind given the element symbol.
Definition of physical constants:
real(kind=dp), parameter, public angstrom
real(kind=dp), parameter, public massunit
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, matrix_vhxc, 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, hund_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, proj_shell_charge, lr_atom, do_mtlr, u_j_loop, ao_coef, 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.
subroutine, public get_qs_kind_set(qs_kind_set, all_potential_present, tnadd_potential_present, gth_potential_present, sgp_potential_present, paw_atom_present, dft_plus_u_atom_present, maxcgf, maxsgf, maxco, maxco_proj, maxgtops, maxlgto, maxlprj, maxnset, maxsgf_set, ncgf, npgf, nset, nsgf, nshell, maxpol, maxlppl, maxlppnl, maxppnl, nelectron, maxder, max_ngrid_rad, max_sph_harm, maxg_iso_not0, lmax_rho0, basis_rcut, do_mtlr_present, basis_type, total_zeff_corr, npgf_seg, cneo_potential_present, nkind_q, natom_q)
Get attributes of an atomic kind set.
collects routines that perform operations directly related to MOs
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.
stores some data used in wavefunction fitting
Type defining parameters related to the simulation cell.
represent a pointer to a 1d array
type of a logger, at the moment it contains just a print level starting at which level it should be l...
Orbital angular momentum.
Provides all information about a quickstep kind.