79 numerical,
oe_gllb,
oe_lb,
oe_none,
oe_saop,
oe_sic,
orb_dx2,
orb_dxy,
orb_dy2,
orb_dyz, &
171#include "./base/base_uses.f90"
176 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'input_cp2k_print_dft'
191 TYPE(
section_type),
POINTER :: print_key, sub_print_key, subsection
193 cpassert(.NOT.
ASSOCIATED(section))
195 description=
"Section of possible print options in DFT code.", &
196 n_keywords=0, n_subsections=1, repeats=.false.)
198 NULLIFY (print_key, keyword, subsection)
201 description=
"Controls the printing of the banner of the MM program", &
207 description=
"Controls the printing of a file with all basis sets used.", &
213 description=
"Controls the printing of the kinetic energy", &
219 description=
"Print all derivatives after the DFT calculation", &
223 description=
"Specify the number of digits used to print derivatives", &
232 description=
"Controls the printing of the neighbor lists", &
236 description=
"Activates the printing of the orbital "// &
237 "orbital neighbor lists, "// &
238 "i.e. the overlap neighbor lists", &
239 default_l_val=.false., &
240 lone_keyword_l_val=.true.)
245 name=
"sab_aux_fit", &
246 description=
"Activates the printing of the orbital "// &
247 "orbital neighbor lists wavefunction fitting basis, "// &
248 "i.e. the overlap neighbor lists", &
249 default_l_val=.false., &
250 lone_keyword_l_val=.true.)
255 name=
"sab_aux_fit_vs_orb", &
256 description=
"Activates the printing of the orbital "// &
257 "orbital mixed neighbor lists of wavefunction fitting basis, "// &
258 "and the orbital basis, i.e. the overlap neighbor lists", &
259 default_l_val=.false., &
260 lone_keyword_l_val=.true.)
266 description=
"Activates the printing of the vdW SCP "// &
268 default_l_val=.false., &
269 lone_keyword_l_val=.true.)
275 description=
"Activates the printing of the vdW "// &
276 "neighbor lists (from DFT, DFTB, SE), "// &
277 "i.e. the dispersion neighbor lists", &
278 default_l_val=.false., &
279 lone_keyword_l_val=.true.)
285 description=
"Activates the printing of the "// &
286 "neighbor lists used for coordination numbers in vdW DFT-D3", &
287 default_l_val=.false., &
288 lone_keyword_l_val=.true.)
294 description=
"Activates the printing of the orbital "// &
295 "nuclear attraction neighbor lists (erfc potential)", &
296 default_l_val=.false., &
297 lone_keyword_l_val=.true.)
303 description=
"Activates the printing of the orbital "// &
304 "GTH-PPL neighbor lists (local part of the "// &
305 "Goedecker-Teter-Hutter pseudo potentials)", &
306 default_l_val=.false., &
307 lone_keyword_l_val=.true.)
313 description=
"Activates the printing of the orbital "// &
314 "GTH-PPNL neighbor lists (non-local part of the "// &
315 "Goedecker-Teter-Hutter pseudo potentials)", &
316 default_l_val=.false., &
317 lone_keyword_l_val=.true.)
323 description=
"Activates the printing of the orbital "// &
324 "PAW-projector neighbor lists (only GAPW)", &
325 default_l_val=.false., &
326 lone_keyword_l_val=.true.)
332 description=
"Activates the printing of the two-center "// &
333 "neighbor lists for Coulomb type interactions in NDDO ", &
334 default_l_val=.false., &
335 lone_keyword_l_val=.true.)
341 description=
"Activates the printing of the long-range SE correction "// &
342 "neighbor lists (only when doing long-range SE with integral scheme KDSO and KDSO-d)", &
343 default_l_val=.false., lone_keyword_l_val=.true.)
349 description=
"Activates the printing of the DFTB Ewald "// &
351 default_l_val=.false., &
352 lone_keyword_l_val=.true.)
358 description=
"Activates the printing of the xTB sr-Coulomb "// &
360 default_l_val=.false., &
361 lone_keyword_l_val=.true.)
367 description=
"Activates the printing of core interaction "// &
369 default_l_val=.false., &
370 lone_keyword_l_val=.true.)
376 description=
"Activates the printing of XB interaction from (xTB) "// &
378 default_l_val=.false., &
379 lone_keyword_l_val=.true.)
384 name=
"sab_xtb_nonbond", &
385 description=
"Activates the printing of nonbonded interaction from (xTB) "// &
387 default_l_val=.false., &
388 lone_keyword_l_val=.true.)
394 description=
"Activates the printing of RI orbital-orbital "// &
396 default_l_val=.false., &
397 lone_keyword_l_val=.true.)
403 description=
"Activates the printing of RI basis-projector interaction "// &
405 default_l_val=.false., &
406 lone_keyword_l_val=.true.)
412 description=
"Activates the printing of the nuclear orbital "// &
413 "nuclear repulsion neighbor lists (erfc potential)", &
414 default_l_val=.false., &
415 lone_keyword_l_val=.true.)
423 description=
"Activates the printing of the subcells used for the "// &
424 "generation of neighbor lists.", unit_str=
"angstrom", &
430 description=
"Controls the printing of the ao (i.e. contracted gaussian) matrices (debug).", &
433 description=
"Print only the matrix data, not the row and column headers", &
434 default_l_val=.false., lone_keyword_l_val=.true.)
439 description=
"Specify the number of digits used to print the AO matrices", &
443 CALL keyword_create(keyword, __location__, name=
"CORE_HAMILTONIAN", &
444 description=
"If the printkey is activated controls the printing of the hamiltonian matrix", &
445 default_l_val=.false., lone_keyword_l_val=.true.)
449 description=
"If the printkey is activated controls the printing of the density (P) matrix", &
450 default_l_val=.false., lone_keyword_l_val=.true.)
454 CALL keyword_create(keyword, __location__, name=
"KINETIC_ENERGY", &
455 description=
"If the printkey is activated controls the printing of the kinetic energy matrix", &
456 default_l_val=.false., lone_keyword_l_val=.true.)
459 CALL keyword_create(keyword, __location__, name=
"KOHN_SHAM_MATRIX", &
460 description=
"If the printkey is activated controls the printing of the Kohn-Sham matrix", &
461 default_l_val=.false., lone_keyword_l_val=.true.)
465 keyword, __location__, name=
"MATRIX_VXC", &
466 description=
"If the printkey is activated compute and print the matrix of the exchange and correlation potential. "// &
467 "Only the GGA part for GPW is printed", &
468 default_l_val=.false., lone_keyword_l_val=.true.)
472 description=
"If the printkey is activated controls the printing of the orthogonalization matrix", &
473 default_l_val=.false., lone_keyword_l_val=.true.)
477 description=
"If the printkey is activated controls the printing of the overlap matrix", &
478 default_l_val=.false., lone_keyword_l_val=.true.)
482 CALL keyword_create(keyword, __location__, name=
"COMMUTATOR_HR", &
483 description=
"Controls the printing of the [H,r] commutator matrix", &
484 default_l_val=.false., lone_keyword_l_val=.true.)
488 CALL keyword_create(keyword, __location__, name=
"FERMI_CONTACT", &
489 description=
"If the printkey is activated controls the printing of the Fermi contact matrix", &
490 default_l_val=.false., lone_keyword_l_val=.true.)
494 keyword, __location__, name=
"PSO", &
495 description=
"If the printkey is activated controls the printing of the paramagnetic spin-orbit matrices", &
496 default_l_val=.false., lone_keyword_l_val=.true.)
500 keyword, __location__, name=
"EFG", &
501 description=
"If the printkey is activated controls the printing of the electric field gradient matrices", &
502 default_l_val=.false., lone_keyword_l_val=.true.)
505 CALL keyword_create(keyword, __location__, name=
"POTENTIAL_ENERGY", &
506 description=
"If the printkey is activated controls the printing of the potential energy matrix", &
507 default_l_val=.false., lone_keyword_l_val=.true.)
511 description=
"If the printkey is activated controls the printing of the OCE HARD matrix", &
512 default_l_val=.false., lone_keyword_l_val=.true.)
516 description=
"If the printkey is activated controls the printing of the OCE SOFT matrix", &
517 default_l_val=.false., lone_keyword_l_val=.true.)
521 description=
"If the printkey is activated controls the printing of the w matrix", &
522 default_l_val=.false., lone_keyword_l_val=.true.)
525 CALL keyword_create(keyword, __location__, name=
"W_MATRIX_AUX_FIT", &
526 description=
"If the printkey is activated controls the printing of the w matrix", &
527 default_l_val=.false., lone_keyword_l_val=.true.)
531 description=
"If the printkey is activated controls the printing "// &
532 "of derivatives (for the matrixes that support this)", &
533 default_l_val=.false., lone_keyword_l_val=.true.)
540 print_key, __location__,
"MO", &
541 description=
"Controls the printing of the molecular orbital (MO) information. The requested MO information "// &
542 "is printed for all occupied MOs by default. Use the MO_INDEX_RANGE keyword to restrict the number "// &
543 "of the MOs or to print the MO information for unoccupied MOs. With diagonalization, additional MOs "// &
544 "have to be made available for printout using the ADDED_MOS keyword in the SCF section. With OT, "// &
545 "it is sufficient to specify the desired MO_INDEX_RANGE. The OT eigensolver can be controlled with "// &
546 "the EPS_LUMO and MAX_ITER_LUMO keywords in the SCF section.", &
549 description=
"Print the MOs in the Cartesian basis instead of the default spherical basis.", &
550 default_l_val=.false., lone_keyword_l_val=.true.)
553 CALL keyword_create(keyword, __location__, name=
"CARTESIAN_OVERLAP", &
554 description=
"Print the Cartesian overlap matrix in line with Cartesian MO coefficients.", &
555 default_l_val=.false., lone_keyword_l_val=.true.)
559 variants=
s2a(
"EIGENVALUES",
"EIGVALS"), &
560 description=
"Print the MO energies (eigenvalues).", &
561 default_l_val=.false., lone_keyword_l_val=.true.)
565 variants=
s2a(
"EIGENVECTORS",
"EIGVECS"), &
566 description=
"Print the MO coefficients (eigenvectors).", &
567 default_l_val=.false., lone_keyword_l_val=.true.)
570 CALL keyword_create(keyword, __location__, name=
"OCCUPATION_NUMBERS", &
571 variants=
s2a(
"OCCNUMS"), &
572 description=
"Print the MO occupation numbers.", &
573 default_l_val=.false., lone_keyword_l_val=.true.)
576 CALL keyword_create(keyword, __location__, name=
"OCCUPATION_NUMBERS_STATS", &
577 variants=
s2a(
"OCCNUMSTATS"), &
578 description=
"Print some stats (max number of occupied MOs, etc.) of the MO occupation numbers."// &
579 " First logical toggles stats printing, first real is the occupied threshold.", &
580 type_of_var=
char_t, n_var=-1, &
581 default_c_vals=[
".FALSE.",
"1.0E-6 "], &
582 lone_keyword_c_vals=[
".TRUE."], &
583 usage=
"OCCUPATION_NUMBERS_STATS {Logical} [{Real}]")
587 description=
"Specify the number of digits used to print the MO information.", &
592 name=
"MO_INDEX_RANGE", &
593 variants=
s2a(
"MO_RANGE",
"RANGE"), &
594 description=
"Print only the requested subset of MOs. The indices of the first and "// &
595 "the last MO have to be specified to define the range. -1 as the last MO index "// &
596 "prints all available orbitals with diagonalisation (ADDED_MOS) and all orbitals with OT.", &
600 default_i_vals=[0, 0], &
601 usage=
"MO_INDEX_RANGE 10 15")
608 description=
"Write the molecular orbitals in Molden file format, for visualisation.", &
611 description=
"Unit for coordinates and cell in the MOLDEN file.", &
612 usage=
"UNIT ANGSTROM", &
613 enum_c_vals=
s2a(
"BOHR",
"ANGSTROM"), &
614 enum_desc=
s2a(
"Write in Bohr (AU)",
"Write in Angstrom"), &
615 enum_i_vals=[1, 2], &
620 description=
"Controls whether the [Cell] block is written to the MOLDEN file.", &
621 usage=
"WRITE_CELL T", &
622 default_l_val=.false., lone_keyword_l_val=.true.)
626 description=
"Controls whether the [Pseudo] block is written to the MOLDEN file.", &
627 usage=
"WRITE_PSEUDO T", &
628 default_l_val=.false., lone_keyword_l_val=.true.)
632 description=
"Controls whether ghost atoms are marked in the [Atoms] block by "// &
633 "setting their atomic number to zero.", &
634 usage=
"MARK_GHOST T", &
635 default_l_val=.false., lone_keyword_l_val=.true.)
639 description=
"Specifies the number of significant digits retained. 3 is OK for visualization.", &
640 usage=
"NDIGITS {int}", &
645 description=
"Representation of Gaussian-type orbitals", &
647 enum_c_vals=
s2a(
"CARTESIAN",
"SPHERICAL"), &
649 "Cartesian Gaussian orbitals. Use with caution", &
650 "Spherical Gaussian orbitals. Incompatible with VMD"), &
655 description=
"Number of unoccupied orbitals to include in the Molden file. "// &
656 "For OT calculations, the requested virtual orbitals are generated after "// &
657 "SCF using the OT eigensolver. For diagonalization calculations, "// &
658 "SCF%ADDED_MOS is increased if needed to make the requested unoccupied "// &
659 "orbitals available. 0 means no virtual orbitals, -1 means all available.", &
660 usage=
"NLUMO integer", &
668 description=
"Write k-point MO information to `.mokp` file. "// &
669 "The information of cell and k-points is given at first. Then, "// &
670 "the coefficients of molecular orbitals are always written, "// &
671 "while users can choose whether to write GTO basis information "// &
672 "or explicit overlap matrices through the `AO_EXPORT_TYPE` keyword.", &
675 description=
"Unit for coordinates and cell in the .mokp file.", &
676 usage=
"UNIT ANGSTROM", &
677 enum_c_vals=
s2a(
"BOHR",
"ANGSTROM"), &
678 enum_desc=
s2a(
"Write in Bohr (AU)",
"Write in Angstrom"), &
679 enum_i_vals=[1, 2], &
684 description=
"Specifies the number of significant digits retained.", &
685 usage=
"NDIGITS {int}", &
689 CALL keyword_create(keyword, __location__, name=
"AO_EXPORT_TYPE", &
690 description=
"How AO information is provided for interpreting MO coefficients. "// &
691 "GTO_BASIS writes basis set exponents/coefficients (compact, post-processing reconstructs S(k)). "// &
692 "OVERLAP_MATRIX writes S(k) directly (larger file, ready to use).", &
694 enum_c_vals=
s2a(
"GTO_BASIS",
"OVERLAP_MATRIX"), &
695 enum_desc=
s2a(
"Write GTO basis set definition (MOLDEN denormalization convention)", &
696 "Write explicit overlap matrices S(k) for all k-points"), &
703 CALL create_mo_section(print_key,
"MO_CUBES",
"cube", [2, 2, 2],
"STRIDE 1 1 1",
high_print_level,
"write_cube")
705 description=
"append the cube files when they already exist", &
706 default_l_val=.false., lone_keyword_l_val=.true.)
709 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
710 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
711 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
717 CALL create_mo_section( &
718 print_key,
"MO_OPENPMD",
"openPMD", [1, 1, 1],
"STRIDE 2 2 2",
debug_print_level + 1,
"write_openpmd")
719 CALL add_generic_openpmd_arguments(print_key)
723 CALL create_stm_section(print_key)
727 CALL create_wfn_mix_section(subsection)
732 description=
"Write a TREXIO file to disk.", &
733 n_keywords=4, n_subsections=0, repeats=.false.)
735 description=
"Body of Filename for the trexio file.", &
736 usage=
"FILENAME {name}", default_c_val=
"TREXIO", &
741 description=
"Store the MOs in the Cartesian basis instead of the default spherical basis.", &
742 default_l_val=.false., lone_keyword_l_val=.true.)
745 CALL keyword_create(keyword, __location__, name=
"FULL_KPOINT_GRID", &
746 description=
"For symmetry-reduced k-point SCF calculations, export MOs on the "// &
747 "full unreduced k-point grid instead of the irreducible grid.", &
748 usage=
"FULL_KPOINT_GRID <LOGICAL>", default_l_val=.false., &
749 lone_keyword_l_val=.true.)
752 CALL keyword_create(keyword, __location__, name=
"REUSE_SCF_MOS", &
753 description=
"When FULL_KPOINT_GRID is active, try to reconstruct the full-grid "// &
754 "MO coefficients from the symmetry-reduced SCF orbitals before falling back to "// &
755 "a full-grid diagonalization.", &
756 usage=
"REUSE_SCF_MOS T", default_l_val=.true.)
763 description=
"Write a CASINO gwfn.data file to disk.", &
764 n_keywords=5, n_subsections=0, repeats=.false.)
766 description=
"Filename for the CASINO gwfn.data file.", &
767 usage=
"FILENAME {name}", default_c_val=
"gwfn.data", &
771 CALL keyword_create(keyword, __location__, name=
"EPS_KPOINT_REAL", &
772 description=
"Tolerance for detecting Gamma/BZ-edge k-points with real orbitals.", &
773 usage=
"EPS_KPOINT_REAL 1.0E-10", default_r_val=1.0e-10_dp)
776 CALL keyword_create(keyword, __location__, name=
"FULL_KPOINT_GRID", &
777 description=
"For symmetry-reduced k-point SCF calculations, export orbitals on the "// &
778 "full unreduced k-point grid required by CASINO.", &
779 usage=
"FULL_KPOINT_GRID <LOGICAL>", default_l_val=.true., &
780 lone_keyword_l_val=.true.)
783 CALL keyword_create(keyword, __location__, name=
"REUSE_SCF_MOS", &
784 description=
"When FULL_KPOINT_GRID is active, try to reconstruct the full-grid "// &
785 "MO coefficients from the symmetry-reduced SCF orbitals before falling back to "// &
786 "a full-grid diagonalization.", &
787 usage=
"REUSE_SCF_MOS T", default_l_val=.true.)
790 CALL keyword_create(keyword, __location__, name=
"WRITE_PSEUDOPOTENTIALS", &
791 description=
"Write CASINO *_pp.data files for CP2K semilocal ECP potentials. "// &
792 "GTH pseudopotentials are marked in gwfn.data, but require externally supplied "// &
793 "CASINO pseudopotential files.", &
794 usage=
"WRITE_PSEUDOPOTENTIALS T", default_l_val=.true., &
795 lone_keyword_l_val=.true.)
802 description=
"Controls the printing of some gapw related information (debug).", &
803 n_keywords=0, n_subsections=1, repeats=.false.)
805 description=
"If the printkey is activated controls if information on"// &
806 " the projectors is printed.", &
811 description=
"If the printkey is activated controls if information on rho0 is printed.", &
819 description=
"Controls the printing of dft control parameters.", &
825 description=
"Controls the printing of kpoint information.", &
831 CALL create_bandstructure_section(subsection)
836 description=
"Controls the checking and printing of an estimate "// &
837 "of the overlap matrix condition number", &
840 description=
"Calculate an estimate of the 1-norm condition number", &
841 default_l_val=.true., lone_keyword_l_val=.true.)
844 CALL keyword_create(keyword, __location__, name=
"DIAGONALIZATION", &
845 description=
"Calculate the 1- and 2-norm condition numbers using diagonalization", &
846 default_l_val=.false., lone_keyword_l_val=.true.)
850 description=
"Calculate the 2-norm condition number using the Arnoldi code (may not be reliable)", &
851 default_l_val=.false., lone_keyword_l_val=.true.)
857 CALL create_e_density_section( &
859 "E_DENSITY_OPENPMD", &
864 CALL add_generic_openpmd_arguments(print_key)
868 CALL create_e_density_section(print_key,
"E_DENSITY_CUBE",
"cube", [2, 2, 2],
"STRIDE 2 2 2",
high_print_level)
870 description=
"append the cube files when they already exist", &
871 default_l_val=.false., lone_keyword_l_val=.true.)
875 CALL keyword_create(keyword, __location__, name=
"XRD_INTERFACE", &
876 description=
"It activates the print out of exponents and coefficients for the"// &
877 " Gaussian expansion of the core densities, based on atom calculations for each kind."// &
878 " The resulting core dansities are needed to compute the form factors."// &
879 " If GAPW the local densities are also given in terms of a Gaussian expansion,"// &
880 " by fitting the difference between local-fhard and local-soft density for each atom."// &
881 " In this case the keyword SOFT_DENSITY is enabled.", &
882 default_l_val=.false., lone_keyword_l_val=.true.)
887 description=
"Number of Gaussian functions used in the expansion of atomic (core) density", &
888 usage=
"NGAUSS 10", n_var=1, default_i_val=12, type_of_var=
integer_t)
896 description=
"Controls printing of cube files with "// &
897 "the total density (electrons+atomic core). Note that "// &
898 "the value of the total density is positive where the "// &
899 "electron density dominates and negative where the core is. "// &
900 "When GPW is enabled this will simply print the combined density "// &
901 "of the valence electrons and charge-balanced core. In GAPW the "// &
902 "electronic density (hard+soft plus a correction term) is printed "// &
903 "together with the charge-balanced core density to produce a complete "// &
904 "representation of the total density.", &
907 description=
"The stride (X,Y,Z) used to write the cube file "// &
908 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
909 " 1 number valid for all components.", &
910 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
915 description=
"append the cube files when they already exist", &
916 default_l_val=.false., lone_keyword_l_val=.true.)
920 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
921 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
922 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
930 description=
"Controls the printing of a cube file with eletrostatic"// &
931 " potential generated by the total density (electrons+ions). It is"// &
932 " valid only for QS with GPW formalism."// &
933 " Note that by convention the potential has opposite sign than the expected physical one.", &
936 description=
"The stride (X,Y,Z) used to write the cube file "// &
937 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
938 " 1 number valid for all components.", &
939 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
943 description=
"append the cube files when they already exist", &
944 default_l_val=.false., lone_keyword_l_val=.true.)
947 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
948 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
949 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
957 description=
"Controls the printing of a cube file with external"// &
958 " potential from the DFT%EXTERNAL_POTENTIAL section only.", &
961 description=
"The stride (X,Y,Z) used to write the cube file "// &
962 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
963 " 1 number valid for all components.", &
964 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
968 description=
"append the cube files when they already exist", &
969 default_l_val=.false., lone_keyword_l_val=.true.)
972 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
973 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
974 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
982 description=
"Controls the output of the electron density to the losslessly"// &
983 " compressed BQB file format, see [Brehm2018]"// &
984 " (via LibBQB see <https://brehm-research.de/bqb>)."// &
985 " Currently does not work with changing cell vector (NpT ensemble).", &
990 description=
"Skips the first step of a MD run (avoids duplicate step if restarted).", &
991 usage=
"SKIP_FIRST T", default_l_val=.false., lone_keyword_l_val=.true.)
995 CALL keyword_create(keyword, __location__, name=
"STORE_STEP_NUMBER", &
996 description=
"Stores the step number and simulation time in the comment line of each BQB"// &
997 " frame. Switch it off for binary compatibility with original CP2k CUBE files.", &
998 usage=
"STORE_STEP_NUMBER F", default_l_val=.true., lone_keyword_l_val=.true.)
1003 description=
"Performs an on-the-fly decompression of each compressed BQB frame to check"// &
1004 " whether the volumetric data exactly matches, and aborts the run if not so.", &
1005 usage=
"CHECK T", default_l_val=.false., lone_keyword_l_val=.true.)
1010 description=
"Specify this keyword to overwrite the output BQB file if"// &
1011 " it already exists. By default, the data is appended to an existing file.", &
1012 usage=
"OVERWRITE T", default_l_val=.false., lone_keyword_l_val=.true.)
1017 description=
"Controls how many previous steps are taken into account for extrapolation in"// &
1018 " compression. Use a value of 1 to compress the frames independently.", &
1019 usage=
"HISTORY 10", n_var=1, default_i_val=10, type_of_var=
integer_t)
1023 CALL keyword_create(keyword, __location__, name=
"PARAMETER_KEY", &
1024 description=
"Allows to supply previously optimized compression parameters via a"// &
1025 " parameter key (alphanumeric character sequence starting with 'at')."// &
1026 " Just leave away the 'at' sign here, because CP2k will otherwise"// &
1027 " assume it is a variable name in the input", &
1028 usage=
"PARAMETER_KEY <KEY>", n_var=1, default_c_val=
"", type_of_var=
char_t)
1033 description=
"Controls the time spent to optimize the parameters for compression efficiency.", &
1034 usage=
"OPTIMIZE {OFF,QUICK,NORMAL,PATIENT,EXHAUSTIVE}", repeats=.false., n_var=1, &
1036 enum_c_vals=
s2a(
"OFF",
"QUICK",
"NORMAL",
"PATIENT",
"EXHAUSTIVE"), &
1037 enum_desc=
s2a(
"No optimization (use defaults)",
"Quick optimization", &
1038 "Standard optimization",
"Precise optimization",
"Exhaustive optimization"), &
1052 CALL create_implicit_psolver_section(subsection)
1058 description=
"Controls the printing of a cube file with xc"// &
1059 " potential generated by the ZMP method (for the moment). It is"// &
1060 " valid only for QS with GPW formalism .", &
1063 description=
"The stride (X,Y,Z) used to write the cube file "// &
1064 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1065 " 1 number valid for all components.", &
1066 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1070 description=
"append the cube files when they already exist", &
1071 default_l_val=.false., lone_keyword_l_val=.true.)
1079 description=
"Controls the printing of cube files with electric"// &
1080 " field generated by the total density (electrons+ions). It is"// &
1081 " valid only for QS with GPW formalism.", &
1084 description=
"The stride (X,Y,Z) used to write the cube file "// &
1085 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1086 " 1 number valid for all components.", &
1087 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1091 description=
"append the cube files when they already exist", &
1092 default_l_val=.false., lone_keyword_l_val=.true.)
1095 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
1096 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
1097 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
1104 CALL create_elf_print_section(print_key,
"ELF_CUBE", &
1108 description=
"append the cube files when they already exist", &
1109 default_l_val=.false., lone_keyword_l_val=.true.)
1116 CALL create_elf_print_section(print_key,
"ELF_OPENPMD", &
1119 CALL add_generic_openpmd_arguments(print_key)
1124 description=
"Controls the printing of cube files with the local"// &
1125 " energy. It is valid only for QS with GPW/GAPW formalism."// &
1126 " Meta and hybrid functionals are not possible. For GAPW/GAPW_XC"// &
1127 " and ADMM-GAPW this regular-grid cube keeps the existing soft-grid"// &
1128 " semantics; atom-centered hard one-center terms are not projected"// &
1129 " onto the cube grid.", &
1132 description=
"The stride (X,Y,Z) used to write the cube file "// &
1133 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1134 " 1 number valid for all components.", &
1135 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1139 description=
"append the cube files when they already exist", &
1140 default_l_val=.false., lone_keyword_l_val=.true.)
1143 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
1144 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
1145 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
1153 description=
"Controls the printing of cube files with the local"// &
1154 " stress. It is valid only for QS with GPW/GAPW formalism."// &
1155 " Meta and hybrid functionals are not possible. For GAPW/GAPW_XC"// &
1156 " and ADMM-GAPW this regular-grid cube keeps the existing soft-grid"// &
1157 " semantics; atom-centered hard one-center terms are not projected"// &
1158 " onto the cube grid.", &
1161 description=
"The stride (X,Y,Z) used to write the cube file "// &
1162 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1163 " 1 number valid for all components.", &
1164 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1168 description=
"append the cube files when they already exist", &
1169 default_l_val=.false., lone_keyword_l_val=.true.)
1172 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
1173 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
1174 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
1182 description=
"Print density of states (DOS). "// &
1183 "Projected DOS output can be enabled with PDOS.", &
1189 description=
"Specify a Monkhorst-Pack grid with which to compute the density of states. "// &
1190 "Works only for a k-point calculation", &
1191 usage=
"MP_GRID {integer} {integer} {integer}", default_i_vals=[-1], &
1199 CALL create_wannier_section(print_key)
1206 keyword, __location__, &
1207 name=
"MAX_MOMENT", &
1208 description=
"Maximum moment to be calculated. Values higher than 1 not implemented under periodic boundaries.", &
1209 usage=
"MAX_MOMENT {integer}", &
1218 description=
"Calculate also magnetic moments, only implemented without periodic boundaries", &
1219 usage=
"MAGNETIC yes", &
1222 default_l_val=.false., &
1223 lone_keyword_l_val=.true.)
1228 description=
"Calculate expectation values of the el. multipole moments in their velocity "// &
1229 "representation during RTP. Implemented up to el. quadrupole moment.", &
1230 usage=
"VEL_REPRS yes", &
1233 default_l_val=.false., &
1234 lone_keyword_l_val=.true.)
1239 description=
"Include non local commutator for velocity representations. "// &
1240 "Necessary for origin independent results.", &
1241 usage=
"COM_NL yes", &
1244 default_l_val=.false., &
1245 lone_keyword_l_val=.true.)
1249 name=
"SECOND_REFERENCE_POINT", &
1250 description=
"Use second reference point", &
1251 usage=
"SECOND_REFERENCE_POINT .TRUE.", &
1254 default_l_val=.false., &
1255 lone_keyword_l_val=.true.)
1259 variants=
s2a(
"REF_2"), &
1260 description=
"Define a second reference point for the calculation of the electrostatic moment.", &
1261 usage=
"REFERENCE_2 COM", &
1262 enum_c_vals=
s2a(
"COM",
"COAC",
"USER_DEFINED",
"ZERO"), &
1263 enum_desc=
s2a(
"Use Center of Mass", &
1264 "Use Center of Atomic Charges", &
1265 "Use User Defined Point (Keyword:REF_POINT)", &
1266 "Use Origin of Coordinate System"), &
1274 CALL keyword_create(keyword, __location__, name=
"REFERENCE_POINT_2", &
1275 variants=
s2a(
"REF_POINT_2"), &
1276 description=
"Fixed second reference point for the calculations of the electrostatic moment.", &
1277 usage=
"REFERENCE_POINT_2 x y z", &
1279 n_var=3, default_r_vals=[0._dp, 0._dp, 0._dp], &
1285 description=
"Maximum number of molecular orbitals closest to the Fermi "// &
1286 "level for which dipole matrix elements and Berry curvatures are printed "// &
1287 "per k-point. 0 for all orbitals. Ignored if not a KPOINT calculation.", &
1288 usage=
"MAX_NMO {integer}", &
1290 n_var=1, default_i_val=10, &
1301 description=
"Print the electronic moments separately for KG subsystems", &
1302 usage=
"KG .TRUE.", &
1305 default_l_val=.false., &
1306 lone_keyword_l_val=.true.)
1314 description=
"Controls the printing of the Mulliken (spin) population analysis", &
1316 common_iter_levels=1)
1318 keyword, __location__, &
1320 description=
"Print the gross orbital populations (GOP) in addition to the gross atomic populations (GAP) "// &
1321 "and net charges", &
1322 usage=
"PRINT_GOP yes", &
1325 default_l_val=.false., &
1326 lone_keyword_l_val=.true.)
1330 keyword, __location__, &
1332 description=
"Print all information including the full net AO and overlap population matrix", &
1333 usage=
"PRINT_ALL yes", &
1336 default_l_val=.false., &
1337 lone_keyword_l_val=.true.)
1345 description=
"Controls the printing of the Lowdin (spin) population analysis", &
1347 common_iter_levels=1)
1349 keyword, __location__, &
1351 description=
"Print the orbital populations in addition to the atomic populations and net charges", &
1352 usage=
"PRINT_GOP yes", &
1355 default_l_val=.false., &
1356 lone_keyword_l_val=.true.)
1360 keyword, __location__, &
1362 description=
"Print all information including the full symmetrically orthogonalised density matrix", &
1363 usage=
"PRINT_ALL yes", &
1366 default_l_val=.false., &
1367 lone_keyword_l_val=.true.)
1375 description=
"Controls the printing of the Hirshfeld (spin) population analysis", &
1377 common_iter_levels=1)
1378 CALL keyword_create(keyword, __location__, name=
"SELF_CONSISTENT", &
1379 description=
"Calculate charges from the Hirscheld-I (self_consistent) method."// &
1380 " This scales only the full shape function, not the added charge as in the original scheme.", &
1381 usage=
"SELF_CONSISTENT yes", repeats=.false., n_var=1, &
1382 default_l_val=.false., lone_keyword_l_val=.true.)
1385 CALL keyword_create(keyword, __location__, name=
"SHAPE_FUNCTION", &
1386 description=
"Type of shape function used for Hirshfeld partitioning.", &
1387 usage=
"SHAPE_FUNCTION {Gaussian,Density}", repeats=.false., n_var=1, &
1389 enum_c_vals=
s2a(
"GAUSSIAN",
"DENSITY"), &
1390 enum_desc=
s2a(
"Single Gaussian with Colvalent radius", &
1391 "Atomic density expanded in multiple Gaussians"), &
1395 CALL keyword_create(keyword, __location__, name=
"REFERENCE_CHARGE", &
1396 description=
"Charge of atomic partitioning function for Hirshfeld method.", &
1397 usage=
"REFERENCE_CHARGE {Atomic,Mulliken}", repeats=.false., n_var=1, &
1399 enum_c_vals=
s2a(
"ATOMIC",
"MULLIKEN"), &
1400 enum_desc=
s2a(
"Use atomic core charges",
"Calculate Mulliken charges"), &
1405 description=
"Use user defined radii to generate Gaussians."// &
1406 " These radii are defined by the keyword ATOMIC_RADII", &
1407 usage=
"USER_RADIUS yes", repeats=.false., n_var=1, &
1408 default_l_val=.false., lone_keyword_l_val=.true.)
1411 CALL keyword_create(keyword, __location__, name=
"ATOMIC_RADII", &
1412 description=
"Defines custom radii to setup the spherical Gaussians.", &
1413 usage=
"ATOMIC_RADII {real} {real} {real}", repeats=.false., &
1414 unit_str=
"angstrom", &
1415 type_of_var=
real_t, n_var=-1)
1423 description=
"Controls the printing of the EEQ charges", &
1425 common_iter_levels=1, &
1432 description=
"Controls the printing of the MAO (modified atomic orbital) analysis", &
1434 common_iter_levels=1, &
1437 description=
"Threshold for matrix elements in MAO determination.", &
1438 usage=
"EPS_FILTER reps", repeats=.false., n_var=1, &
1439 default_r_val=1.e-8_dp, type_of_var=
real_t)
1442 CALL keyword_create(keyword, __location__, name=
"REFERENCE_BASIS", &
1443 description=
"Basis set used to construct MAO's.", &
1444 usage=
"REFERENCE_BASIS {ORBITAL,PRIMITIVE,EXTERNAL}", repeats=.false., n_var=1, &
1446 enum_c_vals=
s2a(
"ORBITAL",
"PRIMITIVE",
"EXTERNAL"), &
1447 enum_desc=
s2a(
"Use standard orbital basis set",
"Construct basis from primitives of the orbital basis", &
1448 "Read external basis (MAO)"), &
1453 description=
"Print out MAO reference basis.", &
1454 usage=
"PRINT_BASIS {logical}", repeats=.false., n_var=1, &
1455 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1459 description=
"Print out MAO in PAO format to be used for optimization or learning.", &
1460 usage=
"PRINT_PAO {logical}", repeats=.false., n_var=1, &
1461 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1465 description=
"Threshold for gradient in MAO optimization.", &
1466 usage=
"EPS_GRAD reps", repeats=.false., n_var=1, &
1467 default_r_val=1.e-4_dp, type_of_var=
real_t)
1470 CALL keyword_create(keyword, __location__, name=
"EPS_FUNCTION", &
1471 description=
"Threshold for electron defect in MAO optimization.", &
1472 usage=
"EPS_FUNCTION feps", repeats=.false., n_var=1, &
1473 default_r_val=1.e-3_dp, type_of_var=
real_t)
1477 description=
"Maximum allowed iterations for MAO optimization.", &
1478 usage=
"MAX_ITER iter", repeats=.false., n_var=1, &
1483 description=
"Neglect 3 atom terms in MAO analysis.", &
1484 usage=
"NEGLECT_ABC {logical}", repeats=.false., n_var=1, &
1485 default_l_val=.true., lone_keyword_l_val=.true., type_of_var=
logical_t)
1488 CALL keyword_create(keyword, __location__, name=
"AB_THRESHOLD", &
1489 description=
"Threshold for printing of AB shared electron numbers.", &
1490 usage=
"AB_THRESHOLD thr", repeats=.false., n_var=1, &
1491 default_r_val=1.e-2_dp, type_of_var=
real_t)
1494 CALL keyword_create(keyword, __location__, name=
"ABC_THRESHOLD", &
1495 description=
"Threshold for printing of ABC shared electron numbers.", &
1496 usage=
"ABC_THRESHOLD thr", repeats=.false., n_var=1, &
1497 default_r_val=1.e-5_dp, type_of_var=
real_t)
1500 CALL keyword_create(keyword, __location__, name=
"ANALYZE_UNASSIGNED_CHARGE", &
1501 description=
"Calculate atomic contributions to the unassigned charge.", &
1502 usage=
"ANALYZE_UNASSIGNED_CHARGE {logical}", repeats=.false., n_var=1, &
1503 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1511 description=
"Controls the printing of the minimal localized basis analysis", &
1513 common_iter_levels=1, &
1516 description=
"Threshold for matrix elements in basis determination.", &
1517 usage=
"EPS_FILTER reps", repeats=.false., n_var=1, &
1518 default_r_val=1.e-8_dp, type_of_var=
real_t)
1521 CALL keyword_create(keyword, __location__, name=
"FULL_ORTHOGONALIZATION", &
1522 description=
"Orthogonalize the localized minimal basis.", &
1523 usage=
"FULL_ORTHOGONALIZATION {logical}", repeats=.false., n_var=1, &
1524 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1528 description=
"Calculate Mayer Bond Orders.", &
1529 usage=
"BOND_ORDER {logical}", repeats=.false., n_var=1, &
1530 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1534 NULLIFY (sub_print_key)
1536 description=
"Write the minimal basis on Cube files.", &
1539 description=
"The stride (X,Y,Z) used to write the cube file "// &
1540 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1541 " 1 number valid for all components.", &
1542 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1546 description=
"Indexes of the atoms minimal basis to be printed as cube files "// &
1547 "This keyword can be repeated several times "// &
1548 "(useful if you have to specify many indexes).", &
1549 usage=
"ATOM_LIST 1 2", &
1550 n_var=-1, type_of_var=
integer_t, repeats=.true.)
1556 NULLIFY (sub_print_key)
1558 description=
"Write the minimal basis in Molden file format, for visualisation.", &
1561 description=
"Unit for coordinates and cell in the MOLDEN file.", &
1562 usage=
"UNIT ANGSTROM", &
1563 enum_c_vals=
s2a(
"BOHR",
"ANGSTROM"), &
1564 enum_desc=
s2a(
"Write in Bohr (AU)",
"Write in Angstrom"), &
1565 enum_i_vals=[1, 2], &
1570 description=
"Controls whether the [Cell] block is written to the MOLDEN file.", &
1571 usage=
"WRITE_CELL T", &
1572 default_l_val=.false., lone_keyword_l_val=.true.)
1575 CALL keyword_create(keyword, __location__, name=
"WRITE_PSEUDO", &
1576 description=
"Controls whether the [Pseudo] block is written to the MOLDEN file.", &
1577 usage=
"WRITE_PSEUDO T", &
1578 default_l_val=.false., lone_keyword_l_val=.true.)
1582 description=
"Controls whether ghost atoms are marked in the [Atoms] block by "// &
1583 "setting their atomic number to zero.", &
1584 usage=
"MARK_GHOST T", &
1585 default_l_val=.false., lone_keyword_l_val=.true.)
1589 description=
"Specifies the number of significant digits retained. 3 is OK for visualization.", &
1590 usage=
"NDIGITS {int}", &
1595 description=
"Representation of Gaussian-type orbitals", &
1597 enum_c_vals=
s2a(
"CARTESIAN",
"SPHERICAL"), &
1599 "Cartesian Gaussian orbitals. Use with caution", &
1600 "Spherical Gaussian orbitals. Incompatible with VMD"), &
1612 description=
"Controls energy decomposition analysis", &
1614 common_iter_levels=1, &
1616 CALL keyword_create(keyword, __location__, name=
"REFERENCE_ORB_CANONICAL", &
1617 description=
"Use reference orbitals in canonical form.", &
1618 usage=
"REFERENCE_ORB_CANONICAL {logical}", repeats=.false., n_var=1, &
1619 default_l_val=.true., lone_keyword_l_val=.true., type_of_var=
logical_t)
1622 CALL keyword_create(keyword, __location__, name=
"SKIP_LOCALIZATION", &
1623 description=
"Don't localize the MOs.", &
1624 usage=
"SKIP_LOCALIZATION {logical}", repeats=.false., n_var=1, &
1625 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1628 CALL keyword_create(keyword, __location__, name=
"DETAILED_ENERGY", &
1629 description=
"Calculate detailed atomic decomposition energies.", &
1630 usage=
"DETAILED_ENERGY {logical}", repeats=.false., n_var=1, &
1631 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1634 CALL keyword_create(keyword, __location__, name=
"EWALD_ALPHA_PARAMETER", &
1635 description=
"Calculate Energy Decomposition for a specific alpha value. "// &
1636 "alpha = 1/(2*rc**2), see GTH pseudopotentials.", &
1637 usage=
"EWALD_ALPHA_PARAMETER alpha", repeats=.false., n_var=1, &
1638 default_r_val=0.0_dp, type_of_var=
real_t)
1647 description=
"Controls the printing of the IAO (intrinsic atomic orbital) analysis", &
1649 common_iter_levels=1, &
1652 description=
"Threshold for matrix inversion eigenvalues.", &
1653 usage=
"EPS_SVD reps", repeats=.false., n_var=1, &
1654 default_r_val=0.0_dp, type_of_var=
real_t)
1658 description=
"Threshold in occupation for vectors included.", &
1659 usage=
"EPS_OCC reps", repeats=.false., n_var=1, &
1660 default_r_val=0.0_dp, type_of_var=
real_t)
1663 CALL keyword_create(keyword, __location__, name=
"ATOMIC_CHARGES", &
1664 description=
"Calculate atomic charges from IAO.", &
1665 usage=
"ATOMIC_CHARGES {logical}", repeats=.false., n_var=1, &
1666 default_l_val=.true., lone_keyword_l_val=.true., type_of_var=
logical_t)
1670 NULLIFY (sub_print_key)
1672 description=
"Write the IAO basis in Molden file format, for visualisation.", &
1675 description=
"Unit for coordinates and cell in the MOLDEN file.", &
1676 usage=
"UNIT ANGSTROM", &
1677 enum_c_vals=
s2a(
"BOHR",
"ANGSTROM"), &
1678 enum_desc=
s2a(
"Write in Bohr (AU)",
"Write in Angstrom"), &
1679 enum_i_vals=[1, 2], &
1684 description=
"Controls whether the [Cell] block is written to the MOLDEN file.", &
1685 usage=
"WRITE_CELL T", &
1686 default_l_val=.false., lone_keyword_l_val=.true.)
1689 CALL keyword_create(keyword, __location__, name=
"WRITE_PSEUDO", &
1690 description=
"Controls whether the [Pseudo] block is written to the MOLDEN file.", &
1691 usage=
"WRITE_PSEUDO T", &
1692 default_l_val=.false., lone_keyword_l_val=.true.)
1696 description=
"Controls whether ghost atoms are marked in the [Atoms] block by "// &
1697 "setting their atomic number to zero.", &
1698 usage=
"MARK_GHOST T", &
1699 default_l_val=.false., lone_keyword_l_val=.true.)
1703 description=
"Specifies the number of significant digits retained. 3 is OK for visualization.", &
1704 usage=
"NDIGITS {int}", &
1709 description=
"Representation of Gaussian-type orbitals", &
1711 enum_c_vals=
s2a(
"CARTESIAN",
"SPHERICAL"), &
1713 "Cartesian Gaussian orbitals. Use with caution", &
1714 "Spherical Gaussian orbitals. Incompatible with VMD"), &
1721 NULLIFY (sub_print_key)
1723 description=
"Controls the printing of the IAO basis "// &
1724 "as *.cube files.", &
1728 description=
"The stride (X,Y,Z) used to write the cube file "// &
1729 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1730 " 1 number valid for all components.", &
1731 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1735 description=
"append the cube files when they already exist", &
1736 default_l_val=.false., lone_keyword_l_val=.true.)
1740 description=
"Indices of the atoms to be included in basis CUBE file printing. ", &
1741 usage=
"ATOM_LIST {integer} {integer} .. {integer} ", &
1742 n_var=-1, type_of_var=
integer_t, repeats=.true.)
1748 NULLIFY (sub_print_key)
1750 description=
"Calculates single center expansion of IAOs ", &
1754 description=
"Maximum l quantum number used in the expansion.", &
1755 usage=
"LMAX 2", n_var=1, default_i_val=3, type_of_var=
integer_t)
1759 description=
"Max number of basis functions used in the expansion."// &
1760 " Default is determined by the orbital basis set.", &
1761 usage=
"NBAS 10", n_var=1, default_i_val=-1, type_of_var=
integer_t)
1765 description=
"Append the OCE basis files when it already exists", &
1766 default_l_val=.false., lone_keyword_l_val=.true.)
1772 NULLIFY (sub_print_key)
1774 description=
"Calculate intrinsic bond orbitals using "// &
1775 "localized MOs in IAO basis.", &
1779 CALL keyword_create(keyword, __location__, name=
"LOCALIZATION_OPERATOR", &
1780 description=
"Operator to be optimized for orbital localization", &
1781 enum_c_vals=
s2a(
"PIPEK_MEZEY",
"PIPEK_MEZEY_4",
"L1NORM"), &
1783 enum_desc=
s2a(
"Use Pipek-Mezey operator (order 2)", &
1784 "Use Pipek-Mezey operator (order 4)", &
1789 CALL keyword_create(keyword, __location__, name=
"ENERGY_LOCALIZATION_FUNCTION", &
1790 description=
"Function for energy localization: f(e_i), e_i orbital energy", &
1791 enum_c_vals=
s2a(
"NONE",
"ENERGY",
"OCCUPATION"), &
1793 enum_desc=
s2a(
"Don't use energy localization.", &
1794 "Use orbital energies for localization.", &
1795 "Use occupation numbers for localization."), &
1799 CALL keyword_create(keyword, __location__, name=
"ENERGY_LOCALIZATION_WEIGHT", &
1800 description=
"Weight given to energy localization, using f(e_i) function", &
1801 usage=
"ENERGY_LOCALIZATION_WEIGHT 0.1", n_var=1, &
1802 default_r_val=0.0_dp, type_of_var=
real_t)
1807 NULLIFY (subsection)
1809 description=
"Calculation and printing of centers and spreads "// &
1810 "of localized orbitals.", &
1813 CALL keyword_create(keyword, __location__, name=
"POSITION_OPERATOR_BERRY", &
1814 description=
"Use Berry phase position operator.", &
1815 usage=
"POSITION_OPERATOR_BERRY T", n_var=1, &
1816 default_l_val=.true., lone_keyword_l_val=.true.)
1822 NULLIFY (subsection)
1824 description=
"Write the IBO orbitals in Molden file format, for visualisation.", &
1827 description=
"Unit for coordinates and cell in the MOLDEN file.", &
1828 usage=
"UNIT ANGSTROM", &
1829 enum_c_vals=
s2a(
"BOHR",
"ANGSTROM"), &
1830 enum_desc=
s2a(
"Write in Bohr (AU)",
"Write in Angstrom"), &
1831 enum_i_vals=[1, 2], &
1836 description=
"Controls whether the [Cell] block is written to the MOLDEN file.", &
1837 usage=
"WRITE_CELL T", &
1838 default_l_val=.false., lone_keyword_l_val=.true.)
1841 CALL keyword_create(keyword, __location__, name=
"WRITE_PSEUDO", &
1842 description=
"Controls whether the [Pseudo] block is written to the MOLDEN file.", &
1843 usage=
"WRITE_PSEUDO T", &
1844 default_l_val=.false., lone_keyword_l_val=.true.)
1848 description=
"Controls whether ghost atoms are marked in the [Atoms] block by "// &
1849 "setting their atomic number to zero.", &
1850 usage=
"MARK_GHOST T", &
1851 default_l_val=.false., lone_keyword_l_val=.true.)
1855 description=
"Specifies the number of significant digits retained. 3 is OK for visualization.", &
1856 usage=
"NDIGITS {int}", &
1861 description=
"Representation of Gaussian-type orbitals", &
1863 enum_c_vals=
s2a(
"CARTESIAN",
"SPHERICAL"), &
1865 "Cartesian Gaussian orbitals. Use with caution", &
1866 "Spherical Gaussian orbitals. Incompatible with VMD"), &
1873 NULLIFY (subsection)
1875 description=
"Controls the printing of the IBO orbitals "// &
1876 "as *.cube files.", &
1880 description=
"The stride (X,Y,Z) used to write the cube file "// &
1881 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1882 " 1 number valid for all components.", &
1883 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1887 description=
"append the cube files when they already exist", &
1888 default_l_val=.false., lone_keyword_l_val=.true.)
1892 description=
"Indices of the orbitals to be included in IBO CUBE file printing. ", &
1893 usage=
"STATE_LIST {integer} {integer} .. {integer} ", &
1894 n_var=-1, type_of_var=
integer_t, repeats=.true.)
1903 NULLIFY (sub_print_key)
1905 description=
"Controls the printout required for ROSE.", &
1908 description=
"Specify the number of digits used to print the MO information.", &
1921 description=
"Controls the printing of the DOS from the density matrix. "// &
1922 "This allows the calculation of the DOS even in density matrix based "// &
1923 "REAL_TIME_PROPAGATION and LS_SCF. "// &
1924 "However, it requires a cubically scaling diagonalization of the Hamiltonian. "// &
1925 "Hartree-Fock NYI, values will be wrong. "// &
1926 "Careful, the orbitals in rtp/emd are not actually eigenstates of the Hamiltonian. "// &
1927 "Assumes absence of spin polarization (so far).", &
1929 each_iter_names=
s2a(
"MD"), each_iter_values=[100], &
1932 description=
"The number of energy windows.", &
1933 usage=
"N_WINDOWS 200", &
1938 description=
"Filtering threshold for sparse matrix operations.", &
1939 usage=
"EPS_FILTER 1.0E-6", &
1940 default_r_val=1.0e-14_dp)
1943 CALL keyword_create(keyword, __location__, name=
"RESTRICT_RANGE", &
1944 description=
"Restricts the energy windows to states close to the fermi level", &
1945 usage=
"RESTRICT_RANGE .TRUE.", &
1946 default_l_val=.false., lone_keyword_l_val=.true.)
1950 description=
"If the RESTRICT_RANGE keyword is set, then all energy widnows will"// &
1951 " be placed in an interval from from the fermi level minus to the fermi level plus this keyword", &
1953 default_r_val=1.0_dp)
1957 description=
"Print the energy windows to cube files", &
1958 usage=
"PRINT_CUBES .TRUE.", &
1959 default_l_val=.false., lone_keyword_l_val=.true.)
1963 description=
"The stride (X,Y,Z) used to write the energy windows cube files (if enabled) "// &
1964 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1965 " 1 number valid for all components.", &
1966 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1974 description=
"Write the KS matrix in CSR format into a file.", &
1977 description=
"Threshold on the absolute value of the elements to be printed out. "// &
1978 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
1979 "if the block contains at least one non-zero element.", &
1980 usage=
"THRESHOLD {real}", &
1982 default_r_val=0.0_dp)
1985 CALL keyword_create(keyword, __location__, name=
"Upper_triangular", &
1986 description=
"Print only the upper triangular part of the matrix. ", &
1987 usage=
"UPPER_TRIANGULAR {logical}", &
1989 default_l_val=.false., &
1990 lone_keyword_l_val=.true.)
1994 description=
"Whether or not to generate the file in a binary format. ", &
1995 usage=
"BINARY {logical}", &
1997 default_l_val=.false., &
1998 lone_keyword_l_val=.true.)
2002 description=
"Print the KS matrix in real-space instead of k-space.. ", &
2003 usage=
"REAL_SPACE {logical}", &
2005 default_l_val=.false., &
2006 lone_keyword_l_val=.true.)
2014 description=
"Write the overlap matrix in CSR format into a file.", &
2017 description=
"Threshold on the absolute value of the elements to be printed out. "// &
2018 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
2019 "if the block contains at least one non-zero element.", &
2020 usage=
"THRESHOLD {real}", &
2022 default_r_val=0.0_dp)
2025 CALL keyword_create(keyword, __location__, name=
"Upper_triangular", &
2026 description=
"Print only the upper triangular part of the matrix. ", &
2027 usage=
"UPPER_TRIANGULAR {logical}", &
2029 default_l_val=.false., &
2030 lone_keyword_l_val=.true.)
2034 description=
"Whether or not to generate the file in a binary format. ", &
2035 usage=
"BINARY {logical}", &
2037 default_l_val=.false., &
2038 lone_keyword_l_val=.true.)
2042 description=
"Print the overlap matrix in real-space instead of k-space.. ", &
2043 usage=
"REAL_SPACE {logical}", &
2045 default_l_val=.false., &
2046 lone_keyword_l_val=.true.)
2054 description=
"Write the core Hamiltonian matrix in CSR format into a file.", &
2057 description=
"Threshold on the absolute value of the elements to be printed out. "// &
2058 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
2059 "if the block contains at least one non-zero element.", &
2060 usage=
"THRESHOLD {real}", &
2062 default_r_val=0.0_dp)
2065 CALL keyword_create(keyword, __location__, name=
"Upper_triangular", &
2066 description=
"Print only the upper triangular part of the matrix. ", &
2067 usage=
"UPPER_TRIANGULAR {logical}", &
2069 default_l_val=.false., &
2070 lone_keyword_l_val=.true.)
2074 description=
"Whether or not to generate the file in a binary format. ", &
2075 usage=
"BINARY {logical}", &
2077 default_l_val=.false., &
2078 lone_keyword_l_val=.true.)
2082 description=
"Print the core Hamiltonian matrix in real-space instead of k-space.. ", &
2083 usage=
"REAL_SPACE {logical}", &
2085 default_l_val=.false., &
2086 lone_keyword_l_val=.true.)
2094 description=
"Write the density matrix in CSR format into a file.", &
2097 description=
"Threshold on the absolute value of the elements to be printed out. "// &
2098 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
2099 "if the block contains at least one non-zero element.", &
2100 usage=
"THRESHOLD {real}", &
2102 default_r_val=0.0_dp)
2105 CALL keyword_create(keyword, __location__, name=
"Upper_triangular", &
2106 description=
"Print only the upper triangular part of the matrix. ", &
2107 usage=
"UPPER_TRIANGULAR {logical}", &
2109 default_l_val=.false., &
2110 lone_keyword_l_val=.true.)
2114 description=
"Whether or not to generate the file in a binary format. ", &
2115 usage=
"BINARY {logical}", &
2117 default_l_val=.false., &
2118 lone_keyword_l_val=.true.)
2122 description=
"Print the density matrix in real-space instead of k-space.. ", &
2123 usage=
"REAL_SPACE {logical}", &
2125 default_l_val=.false., &
2126 lone_keyword_l_val=.true.)
2134 description=
"Writes an (upper-triangular) adjacency matrix indicating the "// &
2135 "interaction between atoms (according to overlapping basis functions). The "// &
2136 "columns are: iatom, jatom, ikind, jkind; where iatom and jatom are the atom "// &
2137 "indices (based on the coordinate file), ikind and jkind are the atomic kinds "// &
2138 "(indeces as shown in the ATOMIC KIND INFORMATION section of a CP2K output). ", &
2145 print_key, __location__, name=
"XRAY_DIFFRACTION_SPECTRUM", &
2146 description=
"Calculate and print the coherent X-ray "// &
2147 "diffraction spectrum", &
2152 keyword, __location__, &
2154 variants=[
"Q_MAXIMUM"], &
2155 description=
"Maximum Q value calculated for the spectrum", &
2156 usage=
"Q_MAX {real}", &
2161 unit_str=
"angstrom^-1"), &
2162 unit_str=
"angstrom^-1")
2169 description=
"Calculate and print the electric field gradients "// &
2170 "at atomic positions", &
2172 filename=
"__STD_OUT__")
2175 name=
"INTERPOLATION", &
2176 description=
"Use interpolation method from real space grid", &
2177 usage=
"INTERPOLATION {logical}", &
2180 default_l_val=.false., lone_keyword_l_val=.true.)
2185 name=
"GSPACE_SMOOTHING", &
2186 description=
"Use a G-space smoothing function", &
2187 usage=
"GSPACE_SMOOTHING cutoff {real}, width {real}", &
2189 n_var=2, default_r_vals=[-1._dp, -1._dp], &
2196 description=
"Print additional debug output", &
2197 usage=
"DEBUG {logical}", &
2200 default_l_val=.false., lone_keyword_l_val=.true.)
2212 description=
"Print the two quantities needed in the basis molopt generation:"// &
2213 " total energy and condition number of the overlap matrix (S matrix)", &
2215 filename=
"__STD_OUT__")
2220 description=
"Calculate and print the EPR hyperfine coupling tensor"// &
2221 " at atomic positions", &
2223 filename=
"__STD_OUT__")
2226 name=
"INTERACTION_RADIUS", &
2227 description=
"Radius of interaction for EPR hyperfine tensor calculation", &
2228 usage=
"INTERACTION_RADIUS radius {real}", &
2230 n_var=1, default_r_val=10._dp, &
2239 description=
"Optimize the exponents of the LRI basis set", &
2241 filename=
"OPTIMIZED_LRI_BASIS")
2246 print_key, __location__, name=
"PLUS_U", &
2247 description=
"Controls the printing for the DFT+U methods", &
2249 filename=
"__STD_OUT__", &
2250 each_iter_names=
s2a(
"QS_SCF"), &
2251 each_iter_values=[0], &
2257 print_key, __location__, name=
"CHARGEMOL", &
2258 description=
"Write .wfx input file for Chargemol", &
2260 filename=
"CHARGEMOL", &
2262 CALL keyword_create(keyword, __location__, name=
"BACKUP_COPIES", &
2263 description=
"Specifies the maximum number of backup copies.", &
2264 usage=
"BACKUP_COPIES {int}", &
2269 description=
"Write information about cell periodicity.", &
2270 usage=
"PERIODIC {LOGICAL}", &
2271 default_l_val=.false., lone_keyword_l_val=.true.)
2278 print_key, __location__, name=
"SCCS", &
2279 description=
"Controls the printing for the SCCS models", &
2281 filename=
"__STD_OUT__", &
2282 each_iter_names=
s2a(
"QS_SCF"), &
2283 each_iter_values=[0], &
2286 NULLIFY (sub_print_key)
2289 sub_print_key, __location__, name=
"DENSITY_GRADIENT", &
2290 description=
"Controls the printing of the cube files with "// &
2291 "the norm of the density gradient |∇ρ| "// &
2292 "used by the SCCS model.", &
2295 each_iter_names=
s2a(
"QS_SCF"), &
2296 each_iter_values=[0])
2298 description=
"The stride (X,Y,Z) used to write the cube file "// &
2299 "(larger values result in smaller cube files). You can provide 3 "// &
2300 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2302 default_i_vals=[2, 2, 2], &
2308 description=
"Append the cube files when they already exist", &
2309 default_l_val=.false., &
2310 lone_keyword_l_val=.true., &
2318 sub_print_key, __location__, name=
"DIELECTRIC_FUNCTION", &
2319 description=
"Controls the printing of the cube files with "// &
2320 "the dielectric function used by the SCCS model. "// &
2321 "This function determines the cavity formed by a solute in "// &
2322 "a solvent and thus it can be used for the visualisaton of the cavity.", &
2325 each_iter_names=
s2a(
"QS_SCF"), &
2326 each_iter_values=[0], &
2329 description=
"The stride (X,Y,Z) used to write the cube file "// &
2330 "(larger values result in smaller cube files). You can provide 3 "// &
2331 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2333 default_i_vals=[2, 2, 2], &
2339 description=
"Append the cube files when they already exist", &
2340 default_l_val=.false., &
2341 lone_keyword_l_val=.true., &
2349 sub_print_key, __location__, name=
"TOTAL_CHARGE_DENSITY", &
2350 description=
"Controls the printing of the cube files with the "// &
2351 "total charge density $\rho^\text{tot}$ used by the SCCS model.", &
2354 each_iter_names=
s2a(
"QS_SCF"), &
2355 each_iter_values=[0], &
2358 description=
"The stride (X,Y,Z) used to write the cube file "// &
2359 "(larger values result in smaller cube files). You can provide 3 "// &
2360 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2362 default_i_vals=[2, 2, 2], &
2368 description=
"Append the cube files when they already exist", &
2369 default_l_val=.false., &
2370 lone_keyword_l_val=.true., &
2378 sub_print_key, __location__, name=
"POLARISATION_CHARGE_DENSITY", &
2379 description=
"Controls the printing of the cube files with the "// &
2380 "polarisation charge density $\rho^\text{pol}$ used by the SCCS model with the "// &
2381 "total charge density $\rho^\text{tot} = \rho^\text{sol} + \rho^\text{pol}", &
2384 each_iter_names=
s2a(
"QS_SCF"), &
2385 each_iter_values=[0], &
2388 description=
"The stride (X,Y,Z) used to write the cube file "// &
2389 "(larger values result in smaller cube files). You can provide 3 "// &
2390 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2392 default_i_vals=[2, 2, 2], &
2398 description=
"Append the cube files when they already exist", &
2399 default_l_val=.false., &
2400 lone_keyword_l_val=.true., &
2408 sub_print_key, __location__, name=
"POLARISATION_POTENTIAL", &
2409 description=
"Controls the printing of the cube files with the "// &
2410 "polarisation potential $\phi^\text{pol}$ used by the SCCS model with the "// &
2411 "total potential $\phi^\text{tot} = \phi^\text{sol} + \phi^\text{pol}$", &
2414 each_iter_names=
s2a(
"QS_SCF"), &
2415 each_iter_values=[0], &
2418 description=
"The stride (X,Y,Z) used to write the cube file "// &
2419 "(larger values result in smaller cube files). You can provide 3 "// &
2420 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2422 default_i_vals=[2, 2, 2], &
2428 description=
"Append the cube files when they already exist", &
2429 default_l_val=.false., &
2430 lone_keyword_l_val=.true., &
2447 SUBROUTINE create_bandstructure_section(section)
2453 cpassert(.NOT.
ASSOCIATED(section))
2454 CALL section_create(section, __location__, name=
"BAND_STRUCTURE", &
2455 description=
"Specifies the k-points used in band structure calculation.", &
2456 n_keywords=0, n_subsections=0, repeats=.false.)
2460 description=
"File name used for band structure", &
2461 usage=
"FILE_NAME <filename>", default_c_val=
"", &
2462 type_of_var=
char_t, n_var=1)
2467 variants=[
"ADDED_BANDS"], &
2468 description=
"Number of MOs/Bands added to the Band Structure calculation.", &
2473 NULLIFY (subsection)
2478 END SUBROUTINE create_bandstructure_section
2480 SUBROUTINE add_generic_openpmd_arguments(print_key)
2486 CALL keyword_create(keyword, __location__, name=
"OPENPMD_EXTENSION", &
2487 description=
"Filename extension for openPMD files, including the dot and "// &
2488 "(for optionally activating file encoding) a file expansion pattern.", &
2495 description=
"Inline runtime config for openPMD output. Note that inline "// &
2496 "specifications are subject to restrictions imposed by the input "// &
2497 "file format, making this option useful only for very simple use cases. "// &
2498 "Refer to OPENPMD_CFG_FILE for anything else.", &
2499 default_c_val=
"{}", type_of_var=
char_t)
2503 CALL keyword_create(keyword, __location__, name=
"OPENPMD_CFG_FILE", &
2504 description=
"Runtime config file for openPMD output. This parameter takes precedence over OPENPMD_CFG.", default_c_val=
"", &
2509 END SUBROUTINE add_generic_openpmd_arguments
2515 SUBROUTINE create_mo_section( &
2516 print_key, section_name, description, stride_default, stride_usage, &
2517 print_level, do_write_keyname)
2520 CHARACTER(len=*),
INTENT(IN) :: section_name, description, stride_usage, do_write_keyname
2521 INTEGER,
DIMENSION(3),
INTENT(IN) :: stride_default
2522 INTEGER,
INTENT(IN) :: print_level
2529 description=
"Controls the printing of the molecular orbitals (MOs) as " &
2530 //trim(adjustl(description))// &
2532 " It can be used during a Real Time calculation to print the MOs."// &
2533 " In this case, the density corresponding to the time dependent MO is printed"// &
2534 " instead of the wave-function.", &
2535 print_level=print_level, filename=
"")
2538 description=
"The stride (X,Y,Z) used to write the "//trim(adjustl(description))//
" file "// &
2539 "(larger values result in smaller "// &
2540 trim(adjustl(description))// &
2541 " files). You can provide 3 numbers (for X,Y,Z) or"// &
2542 " 1 number valid for all components.", &
2543 usage=stride_usage, n_var=-1, default_i_vals=stride_default, type_of_var=
integer_t)
2547 CALL keyword_create(keyword, __location__, name=do_write_keyname, &
2548 description=
"If the MO " &
2549 //trim(adjustl(description)) &
2550 //
" file should be written. If false, the eigenvalues are still computed."// &
2551 " Can also be useful in combination with STM calculations", &
2552 default_l_val=.true., lone_keyword_l_val=.true.)
2557 description=
"If the printkey is activated controls the number of lumos"// &
2558 " that are printed and dumped as "//trim(adjustl(description))//
" (-1=all)", &
2564 keyword, __location__, name=
"nhomo", &
2565 description=
"If the printkey is activated controls the number of homos that dumped as "// &
2566 trim(adjustl(description))// &
2568 " eigenvalues are always all dumped", &
2574 keyword, __location__, name=
"homo_list", &
2575 description=
"If the printkey is activated controls the index of homos dumped as openPMD,"// &
2576 " eigenvalues are always all dumped. It overrides nhomo.", &
2577 usage=
"HOMO_LIST {integer} {integer} .. {integer} ", type_of_var=
integer_t, &
2578 n_var=-1, repeats=.true.)
2582 END SUBROUTINE create_mo_section
2584 SUBROUTINE create_e_density_section( &
2585 print_key, section_name, description, stride_default, &
2586 stride_usage, print_level)
2589 CHARACTER(len=*),
INTENT(IN) :: section_name, description, stride_usage
2590 INTEGER,
DIMENSION(3),
INTENT(IN) :: stride_default
2591 INTEGER,
INTENT(IN) :: print_level
2598 description=
"Controls the printing of "//trim(adjustl(description))//
" files with "// &
2599 "the electronic density and, for LSD calculations, the spin density.", &
2600 print_level=print_level, filename=
"")
2602 description=
"The stride (X,Y,Z) used to write the "//trim(adjustl(description))//
" file "// &
2603 "(larger values result in smaller "// &
2604 trim(adjustl(description))// &
2605 " files). You can provide 3 numbers (for X,Y,Z) or"// &
2606 " 1 number valid for all components.", &
2607 usage=stride_usage, n_var=-1, default_i_vals=stride_default, type_of_var=
integer_t)
2611 CALL keyword_create(keyword, __location__, name=
"DENSITY_INCLUDE", &
2612 description=
"Which parts of the density to include. In GAPW the electronic density "// &
2613 "is divided into a hard and a soft component, and the default (TOTAL_HARD_APPROX) "// &
2614 "is to approximate the hard density as a spherical gaussian and to print the smooth "// &
2615 "density accurately. This avoids potential artefacts originating from the hard density. "// &
2616 "If the TOTAL_DENSITY keyword is used the hard density will be computed more accurately "// &
2617 "but may introduce non-physical features. The SOFT_DENSITY keyword will lead to only the "// &
2618 "soft density being printed. In GPW these options have no effect and the cube file will "// &
2619 "only contain the valence electron density.", &
2620 usage=
"DENSITY_INCLUDE TOTAL_HARD_APPROX", &
2621 enum_c_vals=
s2a(
"TOTAL_HARD_APPROX",
"TOTAL_DENSITY",
"SOFT_DENSITY"), &
2622 enum_desc=
s2a(
"Print (hard+soft) density where the hard components shape is approximated", &
2623 "Print (hard+soft) density. Only has an effect "// &
2624 "if PAW atoms are present. NOTE: The total "// &
2625 "in real space might exhibit unphysical features "// &
2626 "like spikes due to the finite and thus "// &
2627 "truncated g vector", &
2628 "Print only the soft density"), &
2636 END SUBROUTINE create_e_density_section
2647 SUBROUTINE create_elf_print_section( &
2648 print_key, section_name, description, stride_default, stride_usage, print_level, filename)
2651 CHARACTER(len=*),
INTENT(IN) :: section_name, description, stride_usage, filename
2652 INTEGER,
DIMENSION(3),
INTENT(IN) :: stride_default
2653 INTEGER,
INTENT(IN) :: print_level
2659 description=
"Controls printing of "//trim(adjustl(description))// &
2660 " files with the electron localization function (ELF). "// &
2661 "Note that the value of ELF is defined between 0 and 1: "// &
2662 "Pauli kinetic energy density normalized by the kinetic energy density "// &
2663 "of a uniform el. gas of same density.", print_level=print_level, filename=filename)
2666 description=
"The stride (X,Y,Z) used to write the file (larger values result in smaller files). "// &
2667 "You can provide 3 numbers (for X,Y,Z) or 1 number valid for all components.", &
2668 usage=stride_usage, n_var=-1, default_i_vals=stride_default, type_of_var=
integer_t)
2672 CALL keyword_create(keyword, __location__, name=
"density_cutoff", &
2673 description=
" ", usage=
"density_cutoff 0.0001", repeats=.false., n_var=1, &
2674 type_of_var=
real_t, default_r_val=1.0e-10_dp)
2677 END SUBROUTINE create_elf_print_section
2687 LOGICAL,
INTENT(IN) :: xas_mode
2692 NULLIFY (subsection)
2696 description=
"Append the DOS/PDOS obtained at different iterations to the output file. "// &
2697 "By default the file is overwritten", &
2698 usage=
"APPEND", default_l_val=.false., lone_keyword_l_val=.true.)
2703 description=
"Energy spacing of the broadened DOS/PDOS output grid.", &
2704 usage=
"DELTA_E 0.0005", type_of_var=
real_t, default_r_val=0.001_dp)
2709 description=
"Energy unit used for the printed DOS/PDOS energy axis. "// &
2710 "For broadened spectra, intensities are converted consistently to the selected energy unit.", &
2711 usage=
"ENERGY_UNIT HARTREE", type_of_var=
enum_t, &
2712 enum_c_vals=
s2a(
"HARTREE",
"EV"), &
2713 enum_i_vals=[1, 2], &
2714 enum_desc=
s2a(
"Print energies in Hartree (a.u.).", &
2715 "Print energies in electronvolt."), &
2721 description=
"Reference energy used for the printed DOS/PDOS energy axis. "// &
2722 "With AUTO, the Fermi energy is used if smearing is enabled or fractional "// &
2723 "occupations are found; otherwise the highest occupied crystal orbital is used.", &
2724 usage=
"ENERGY_ZERO AUTO", type_of_var=
enum_t, &
2725 enum_c_vals=
s2a(
"AUTO",
"ABSOLUTE",
"FERMI",
"HOCO"), &
2726 enum_i_vals=[1, 2, 3, 4], &
2727 enum_desc=
s2a(
"Choose FERMI for smeared or fractionally occupied systems, otherwise HOCO.", &
2728 "Print absolute orbital energies.", &
2729 "Shift orbital energies by the Fermi energy.", &
2730 "Shift orbital energies by the highest occupied crystal orbital."), &
2735 CALL keyword_create(keyword, __location__, name=
"BROADEN_TYPE", &
2736 description=
"Type of broadening function used to produce the DOS/PDOS curve.", &
2737 usage=
"BROADEN_TYPE GAUSSIAN", type_of_var=
enum_t, &
2738 enum_c_vals=
s2a(
"GAUSSIAN",
"LORENTZIAN",
"PSEUDO_VOIGT"), &
2739 enum_i_vals=[1, 2, 3], &
2740 enum_desc=
s2a(
"Use a Gaussian broadening function.", &
2741 "Use a Lorentzian broadening function.", &
2742 "Use a pseudo-Voigt mixture of Lorentzian and Gaussian functions."), &
2747 CALL keyword_create(keyword, __location__, name=
"BROADEN_WIDTH", &
2748 description=
"Full width at half maximum (FWHM) of the DOS/PDOS broadening function.", &
2749 usage=
"BROADEN_WIDTH [eV] 0.1", type_of_var=
real_t, &
2750 default_r_val=
cp_unit_to_cp2k(
value=0.1_dp, unit_str=
"eV"), unit_str=
"eV")
2754 CALL keyword_create(keyword, __location__, name=
"VOIGT_MIXING", &
2755 description=
"Lorentzian fraction of the pseudo-Voigt broadening function.", &
2756 usage=
"VOIGT_MIXING 0.5", type_of_var=
real_t, default_r_val=0.5_dp)
2761 description=
"Specify the number of digits used to print DOS/PDOS values.", &
2767 description=
"Number of unoccupied orbitals to include in the DOS/PDOS (-1=all). "// &
2768 "For OT calculations, the requested virtual orbitals are generated after SCF using the "// &
2769 "OT eigensolver. For diagonalization calculations, SCF%ADDED_MOS is increased if needed "// &
2770 "to make the requested unoccupied orbitals available.", &
2771 usage=
"NLUMO integer", default_i_val=0)
2775 IF (.NOT. xas_mode)
THEN
2777 description=
"Controls the printing of kind-resolved projected DOS.", &
2778 n_keywords=2, n_subsections=0)
2780 description=
"Print out PDOS distinguishing all angular momentum components.", &
2781 usage=
"COMPONENTS", default_l_val=.false., lone_keyword_l_val=.true.)
2786 description=
"Print MO-resolved projected DOS weights to *.pdos_raw.", &
2787 usage=
"RAW", default_l_val=.false., lone_keyword_l_val=.true.)
2794 description=
"Print out PDOS distinguishing all angular momentum components.", &
2795 usage=
"COMPONENTS", default_l_val=.false., lone_keyword_l_val=.true.)
2800 CALL keyword_create(keyword, __location__, name=
"OUT_EACH_STATE", &
2801 variants=[
"OUT_EACH_MO"], &
2802 description=
"Output on the status of the calculation every OUT_EACH_MO states. If -1 no output", &
2803 usage=
"OUT_EACH_STATE integer", default_i_val=-1)
2808 description=
"Controls the printing of local PDOS, projected on subsets"// &
2809 " of atoms given through lists", &
2810 n_keywords=4, n_subsections=0, repeats=.true.)
2812 description=
"Print out PDOS distinguishing all angular momentum components.", &
2813 usage=
"COMPONENTS", default_l_val=.false., lone_keyword_l_val=.true.)
2817 description=
"Specifies a list of indexes of atoms where to project the DOS", &
2818 usage=
"LIST {integer} {integer} .. {integer}", type_of_var=
integer_t, &
2819 n_var=-1, repeats=.true.)
2826 description=
"Controls the printing of local PDOS, projected on 3D volume in real space, "// &
2827 "the volume is defined in terms of position with respect to atoms in the lists", &
2828 n_keywords=4, n_subsections=0, repeats=.true.)
2830 description=
"Specifies a list of indexes of atoms used to define the real space volume", &
2831 usage=
"LIST {integer} {integer} .. {integer}", type_of_var=
integer_t, &
2832 n_var=-1, repeats=.true.)
2836 description=
"range of positions in Cartesian direction x: all grid points within "// &
2837 "this range from at least one atom of the list are considered", &
2838 usage=
"XRANGE -10.0 10.0", unit_str=
"angstrom", n_var=2, type_of_var=
real_t)
2842 description=
"range of positions in Cartesian direction y: all grid points within "// &
2843 "this range from at least one atom of the list are considered", &
2844 usage=
"YRANGE -10.0 10.0", unit_str=
"angstrom", n_var=2, type_of_var=
real_t)
2848 description=
"range of positions in Cartesian direction z: all grid points within "// &
2849 "this range from at least one atom of the list are considered", &
2850 usage=
"ZRANGE -10.0 10.0", unit_str=
"angstrom", n_var=2, type_of_var=
real_t)
2854 description=
"Only project states with the energy values in the given interval. "// &
2855 "Default is all states.", &
2856 usage=
"ERANGE -1.0 1.0", unit_str=
"hartree", n_var=2, type_of_var=
real_t)
2868 SUBROUTINE create_wannier_section(print_key)
2877 description=
"Interface to Wannier90 code. (EXPERIMENTAL)", &
2881 description=
"The seedname for the Wannier90 calculation (body of filenames).", &
2882 usage=
"SEED_NAME filename", default_c_val=
"wannier90", &
2883 n_var=1, type_of_var=
char_t)
2888 description=
"The dimensions of the Monkhorst-Pack k-point grid. ", &
2889 usage=
"MP_GRID 6 6 6", n_var=-1, default_i_vals=[10, 10, 10], type_of_var=
integer_t)
2893 CALL keyword_create(keyword, __location__, name=
"KPOINTS_SOURCE", &
2894 description=
"Select the k-point source for the Wannier90 export. MP_GRID keeps "// &
2895 "the historical behavior and builds a full grid from WANNIER90%MP_GRID. SCF uses "// &
2896 "the full k-point mesh from DFT%KPOINTS for Monkhorst-Pack, MacDonald, Gamma, or "// &
2897 "explicit GENERAL k-points. If the SCF calculation uses K290 or SPGLIB symmetry "// &
2898 "reduction, the corresponding unreduced mesh is used for Wannier90 because "// &
2899 "Wannier90 requires a complete mesh.", &
2900 usage=
"KPOINTS_SOURCE MP_GRID", type_of_var=
enum_t, &
2901 enum_c_vals=
s2a(
"MP_GRID",
"SCF"), &
2902 enum_i_vals=[0, 1], &
2903 enum_desc=
s2a(
"Build the Wannier90 k-point mesh from WANNIER90%MP_GRID.", &
2904 "Use the full k-point mesh from DFT%KPOINTS."), &
2909 CALL keyword_create(keyword, __location__, name=
"REUSE_SCF_MOS", &
2910 description=
"Try to reuse the SCF k-point MO coefficients when KPOINTS_SOURCE SCF "// &
2911 "is active. CP2K can directly reuse full SCF meshes, time-reversal partners, "// &
2912 "non-degenerate atom/AO symmetry images, and atom/AO symmetry images whose "// &
2913 "degenerate band subspaces are fully contained in the exported Wannier90 band "// &
2914 "window. If the Wannier90 band window cuts through a degenerate subspace, CP2K "// &
2915 "falls back to the historical full-mesh diagonalization.", &
2916 usage=
"REUSE_SCF_MOS T", default_l_val=.true.)
2920 CALL keyword_create(keyword, __location__, name=
"VALIDATE_REUSE_SCF_MOS", &
2921 description=
"When KPOINTS_SOURCE SCF and REUSE_SCF_MOS are active, first build a "// &
2922 "full-mesh diagonalization reference and validate the reconstructed SCF MO "// &
2923 "subspaces against it before writing Wannier90 files. This diagnostic option is "// &
2924 "expensive and intended for development of symmetry-reconstructed Wannier90 "// &
2926 usage=
"VALIDATE_REUSE_SCF_MOS T", default_l_val=.false.)
2930 CALL keyword_create(keyword, __location__, name=
"USE_BLOCH_PHASES", &
2931 description=
"Apply the CP2K Bloch-phase gauge to complete exported band subspaces "// &
2932 "and write an explicit identity .amn projection file for Wannier90. It is only "// &
2933 "valid when WANNIER_FUNCTIONS matches the number of exported bands; disentangled "// &
2934 "Wannier90 calculations still need explicit projections.", &
2935 usage=
"USE_BLOCH_PHASES T", default_l_val=.false.)
2940 variants=[
"ADDED_BANDS"], &
2941 description=
"Number of MOs/Bands added to the Band Structure calculation.", &
2946 CALL keyword_create(keyword, __location__, name=
"EXCLUDE_BANDS", &
2947 description=
"List of Bands excluded in the Wannier calculation.", &
2948 usage=
"EXCLUDE_BANDS b1 b2 ...", n_var=-1, repeats=.true., &
2953 CALL keyword_create(keyword, __location__, name=
"WANNIER_FUNCTIONS", &
2954 description=
"Number of Wannier functions to be calculated. ", &
2955 usage=
"WANNIER_FUNCTIONS 6", n_var=1, default_i_val=0, &
2960 END SUBROUTINE create_wannier_section
2966 SUBROUTINE create_stm_section(print_key)
2974 description=
"Controls the printing of cubes for the generation of STM images.", &
2977 description=
"The stride (X,Y,Z) used to write the cube file "// &
2978 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
2979 " 1 number valid for all components.", &
2980 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
2985 description=
"If the printkey is activated controls the number of additional lumos"// &
2986 " that are computed to be able to reproduce STM images obtained"// &
2987 " from positive bias (imaging unoccupied states)", &
2993 description=
"Bias energy for scanning tunneling microscopy (STM) image generation. "// &
2994 "Orbital densities are summed according to the bias energy. "// &
2995 "For negative values, states in the range ]EF+bias,EF] are summed, "// &
2996 "While positive values sum states in the range [EF,EF+bias[. "// &
2997 "If positive biases are used, sufficiently many unoccupied stated "// &
2998 "(see ADDED_MOS and NLUMO ) should be computed.", &
2999 n_var=-1, type_of_var=
real_t, default_r_vals=[0.0_dp], unit_str=
'eV')
3004 description=
"Tip orbital symmetry in Tersoff-Hamann approximation to compute STM images", &
3006 default_i_val=
orb_s, &
3007 usage=
"TH_TORB s dz2", &
3008 enum_c_vals=
s2a(
"S",
"PX",
"PY",
"PZ",
"DXY",
"DYZ",
"DZX",
"DX2",
"DY2",
"DZ2"), &
3009 enum_i_vals=[
orb_s,
orb_px,
orb_py,
orb_pz,
orb_dxy,
orb_dyz,
orb_dzx,
orb_dx2,
orb_dy2,
orb_dz2], &
3010 enum_desc=
s2a(
"s orbital",
"px orbital",
"py orbital",
"pz orbital", &
3011 "dxy orbital",
"dyz orbital",
"dzx orbital",
"x^2 orbital",
"y^2 orbital",
"z^2 orbital"))
3016 description=
"By default the reference energy is the Fermi energy. In order to compare"// &
3017 " with STS experiments, where specific energy ranges are addressed, here"// &
3018 " one can set a different reference energy."// &
3019 " The energy range is anyway controlled by the BIAS", &
3020 type_of_var=
real_t, default_r_val=0.0_dp, unit_str=
'eV')
3025 description=
"append the cube files when they already exist", &
3026 default_l_val=.false., lone_keyword_l_val=.true.)
3030 END SUBROUTINE create_stm_section
3036 SUBROUTINE create_wfn_mix_section(section)
3043 NULLIFY (subsection)
3046 cpassert(.NOT.
ASSOCIATED(section))
3049 description=
"A section that allows manipulation of the MO coeffs, "// &
3050 "e.g. for changing a ground state into an excited state. "// &
3051 "Starting from a copy of the original MOs, changes can be made "// &
3052 "by adding linear combinations of HOMO/LUMO of the original MOs to the result MOs. "// &
3053 "This method is called after an SCF optimization or before an RTP run if "// &
3054 "INITIAL_WFN=RESTART_WFN. Note that if called after an SCF optimization, a restart file "// &
3055 "with the mixed MOs is saved. This is not the case for an RTP with "// &
3056 "INITIAL_WFN=RESTART_WFN.", &
3057 n_keywords=1, n_subsections=0, repeats=.false.)
3059 CALL keyword_create(keyword, __location__, name=
"OVERWRITE_MOS", &
3060 description=
"If set to True, the active molecular orbitals in memory will be replaced by the mixed wfn "// &
3061 "at the end of the wfn mixing procedure. For instance, you can then use this new set of MOs to perform "// &
3062 "RTP or EMD directly. Note that in the case of an RTP run with INITIAL_WFN=RESTART_WFN, the OVERWRITE_MOS "// &
3063 "keyword is not used.", &
3064 default_l_val=.false., lone_keyword_l_val=.true.)
3069 description=
"Update a result MO with with a linear combination of original MOs."// &
3070 " This section can be repeated to build arbitrary linear combinations using repeatedly y=a*y+b*x. "// &
3071 "RESULT is (y), RESULT_SCALE is (a), ORIG is (x), ORIG_SCALE is (b)", &
3072 n_keywords=1, n_subsections=0, repeats=.true.)
3074 CALL keyword_create(keyword, __location__, name=
"RESULT_MO_INDEX", &
3075 description=
"Index of the MO (y) to be modified. Counting down in energy: "// &
3076 "set to 1 for the highest MO, to 3 for the highest MO-2.", &
3077 usage=
"RESULT_MO_INDEX 1", type_of_var=
integer_t, default_i_val=0)
3081 CALL keyword_create(keyword, __location__, name=
"RESULT_MARKED_STATE", &
3082 description=
"Specifies the MO according to "// &
3083 "the marks set in MOLECULAR_STATES. The value corresponds to the repetition "// &
3084 "of MARK_STATES in MOLECULAR_STATES", &
3085 usage=
"RESULT_MARKED_STATE 1", type_of_var=
integer_t, default_i_val=0)
3089 CALL keyword_create(keyword, __location__, name=
"REVERSE_MO_INDEX", &
3090 description=
"Reverses the index order of the OCCUPIED and EXTERNAL MOs. With this keyword "// &
3091 "ORIG_MO_INDEX/RESULT_MO_INDEX 1 point to the lowest energy MO (instead of the highest) "// &
3092 "and counts up in energy. The VIRTUAL MOs indexing is unchanged.", &
3093 default_l_val=.false., lone_keyword_l_val=.true.)
3097 CALL keyword_create(keyword, __location__, name=
"RESULT_SPIN_INDEX", &
3098 description=
"Spin of the MO (y) to be modified.", &
3099 enum_c_vals=
s2a(
"Alpha",
"Beta"), &
3100 enum_i_vals=[1, 2], &
3102 enum_desc=
s2a(
"Majority spin",
"Minority spin"))
3106 CALL keyword_create(keyword, __location__, name=
"RESULT_SCALE", &
3107 description=
"Scaling factor of the result variable (a).", &
3108 usage=
"RESULT_SCALE 0.0", type_of_var=
real_t)
3112 CALL keyword_create(keyword, __location__, name=
"ORIG_MO_INDEX", &
3113 description=
"Index of the original MO (x). "// &
3114 "If ORIG_TYPE is OCCUPIED, it counts down in energy: set to 1 to point to "// &
3115 "the highest MO and to 3 for the highest MO-2. "// &
3116 "If ORIG_TYPE is VIRTUAL, it counts up in energy: set to 1 to point to "// &
3117 "the lowest virtual MO and to 3 for the lowest MO+2. "// &
3118 "If ORIG_TYPE is EXTERNAL, it counts down in energy for the external "// &
3119 "set of MOs: set to 1 to point to the highest MO and to 3 for the highest MO-2. "// &
3120 "Do not set to zero or negative values.", &
3121 usage=
"ORIG_MO_INDEX 1", type_of_var=
integer_t, default_i_val=0)
3125 CALL keyword_create(keyword, __location__, name=
"ORIG_MARKED_STATE", &
3126 description=
"Specifies the MO according to "// &
3127 "the marks set in MOLECULAR_STATES. The value corresponds to the repetition "// &
3128 "of MARK_STATES in MOLECULAR_STATES", &
3129 usage=
"ORIG_MARKED_STATE 1", type_of_var=
integer_t, default_i_val=0)
3133 CALL keyword_create(keyword, __location__, name=
"ORIG_SPIN_INDEX", &
3134 description=
"Spin of the MO (x) to be modified.", &
3135 enum_c_vals=
s2a(
"Alpha",
"Beta"), &
3136 enum_i_vals=[1, 2], &
3138 enum_desc=
s2a(
"Majority spin",
"Minority spin"))
3143 description=
"Scaling factor of the original variable (b).", &
3144 usage=
"ORIG_SCALE 0.0", type_of_var=
real_t)
3149 description=
"Type of the original MO. Note that if ADDED_MOS was used in the "// &
3150 "SCF construction of the MO matrix, these extra MOs are also treated as OCCUPIED. ", &
3151 enum_c_vals=
s2a(
"OCCUPIED",
"VIRTUAL",
'EXTERNAL'), &
3152 usage=
"ORIG_TYPE OCCUPIED", &
3154 enum_desc=
s2a(
"The original MO is the result of the SCF procedure. This can also contain "// &
3155 "unoccupied MOs if the SCF%ADDED_MOS keyword was used.", &
3156 "The original MO is taken from the result of additional MOs calculated a "// &
3157 "posteriori of the SCF by request of the user. E.g. by specifying print%mo_cubes%nlumo. ", &
3158 "The orginal MO is from an external .wfn file. Use the keyword "// &
3159 "ORIG_EXT_FILE_NAME to define its name."), &
3164 CALL keyword_create(keyword, __location__, name=
"ORIG_EXT_FILE_NAME", &
3165 description=
"Name of the wavefunction file to read the original MO from. "// &
3166 "For instance, a restart wfn file from SCF calculation or an excited state from XAS_TDP calculation. "// &
3167 "If no file is specified, the run will crash. "// &
3168 "Currently, a RTP restart file (.rtpwfn) cannot be used as reference. "// &
3169 "Currently, this file SHALL have the basis set, number of MO and the same number of spin as the one "// &
3170 "from the SCF cycle.", &
3171 usage=
"ORIG_EXT_FILE_NAME <FILENAME>", &
3172 default_lc_val=
"EMPTY")
3179 END SUBROUTINE create_wfn_mix_section
3188 SUBROUTINE create_implicit_psolver_section(section)
3194 cpassert(.NOT.
ASSOCIATED(section))
3195 CALL section_create(section, __location__, name=
"IMPLICIT_PSOLVER", &
3196 description=
"Controls printing of cube files for data from the implicit "// &
3197 "(generalized) Poisson solver.", &
3199 n_keywords=0, n_subsections=3, repeats=.false.)
3201 NULLIFY (keyword, print_key)
3205 description=
"Controls the printing of a cube file with dielectric constant from "// &
3206 "the implicit (generalized) Poisson solver.", &
3210 description=
"The stride (X,Y,Z) used to write the cube file "// &
3211 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
3212 " 1 number valid for all components.", &
3213 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
3217 description=
"append the cube files when they already exist", &
3218 default_l_val=.false., lone_keyword_l_val=.true.)
3221 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
3222 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
3223 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
3232 print_key, __location__,
"DIRICHLET_BC_CUBE", &
3233 description=
"Controls the printing of cube files with unit step functions (constraints)"// &
3234 " representing Dirichlet-type (boundary) regions defined in the implicit (generalized) Poisson"// &
3235 " solver section. The regions remain unchanged throughout the calculations. If the Dirichlet"// &
3236 " regions are relatively large and/or the number of partitions is quite high, in order to save memory,"// &
3237 " generate the cube files in early steps and perform the rest of the calculations with this keyword"// &
3242 description=
"Print tiles that tessellate the Dirichlet regions into cube files. If TRUE, "// &
3243 "generates cube files as many as the total number of tiles.", &
3244 usage=
"TILE_CUBES <logical>", &
3245 default_l_val=.false., lone_keyword_l_val=.true.)
3249 description=
"The stride (X,Y,Z) used to write the cube file "// &
3250 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
3251 " 1 number valid for all components.", &
3252 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
3256 description=
"append the cube files when they already exist", &
3257 default_l_val=.false., lone_keyword_l_val=.true.)
3260 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
3261 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
3262 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
3271 description=
"Controls the printing of cube files with penalty charges induced to "// &
3272 "Dirichlet regions by Lagrange multipliers (implicit Poisson solver).", &
3276 description=
"The stride (X,Y,Z) used to write the cube file "// &
3277 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
3278 " 1 number valid for all components.", &
3279 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
3283 description=
"append the cube files when they already exist", &
3284 default_l_val=.false., lone_keyword_l_val=.true.)
3287 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
3288 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
3289 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
3296 END SUBROUTINE create_implicit_psolver_section
3309 cpassert(.NOT.
ASSOCIATED(section))
3310 CALL section_create(section, __location__, name=
"interpolator", &
3311 description=
"controls the interpolation for the G-space term", &
3312 n_keywords=5, n_subsections=0, repeats=.false.)
3314 NULLIFY (keyword, print_key)
3316 CALL keyword_create(keyword, __location__, name=
"aint_precond", &
3317 description=
"the approximate inverse to use to get the starting point"// &
3318 " for the linear solver of the spline3 methods", &
3319 usage=
"aint_precond copy", &
3321 enum_c_vals=
s2a(
"copy",
"spl3_nopbc_aint1",
"spl3_nopbc_precond1", &
3322 "spl3_nopbc_aint2",
"spl3_nopbc_precond2",
"spl3_nopbc_precond3"), &
3329 description=
"The preconditioner used"// &
3330 " for the linear solver of the spline3 methods", &
3331 usage=
"precond copy", &
3333 enum_c_vals=
s2a(
"copy",
"spl3_nopbc_aint1",
"spl3_nopbc_precond1", &
3334 "spl3_nopbc_aint2",
"spl3_nopbc_precond2",
"spl3_nopbc_precond3"), &
3341 description=
"accuracy on the solution for spline3 the interpolators", &
3342 usage=
"eps_x 1.e-15", default_r_val=1.e-10_dp)
3347 description=
"accuracy on the residual for spline3 the interpolators", &
3348 usage=
"eps_r 1.e-15", default_r_val=1.e-10_dp)
3353 variants=[
'maxiter'], &
3354 description=
"the maximum number of iterations", &
3355 usage=
"max_iter 200", default_i_val=100)
3361 description=
"if convergence information about the linear solver"// &
3362 " of the spline methods should be printed", &
3364 each_iter_values=[10], filename=
"__STD_OUT__", &
integer, parameter, public basis_sort_zet
integer, parameter, public basis_sort_default
collects all references to literature in CP2K as new algorithms / method are included from literature...
integer, save, public vandevondele2005b
integer, save, public blochl1995
integer, save, public guidon2010
integer, save, public vandevondele2003
integer, save, public bengtsson1999
integer, save, public kunert2003
integer, save, public iannuzzi2007
integer, save, public yin2017
integer, save, public stewart2007
integer, save, public holmberg2017
integer, save, public vandevondele2006
integer, save, public golze2017b
integer, save, public caldeweyher2020
integer, save, public krack2002
integer, save, public vandevondele2005a
integer, save, public caldeweyher2019
integer, save, public kuhne2007
integer, save, public golze2017a
integer, save, public schiffmann2015
integer, save, public lippert1999
integer, save, public eriksen2020
integer, save, public dewar1977
integer, save, public avezac2005
integer, save, public vanvoorhis2015
integer, save, public repasky2002
integer, save, public weber2008
integer, save, public andreussi2012
integer, save, public iannuzzi2006
integer, save, public iannuzzi2005
integer, save, public rocha2006
integer, save, public lippert1997
integer, save, public holmberg2018
integer, save, public fattebert2002
integer, save, public andermatt2016
integer, save, public merlot2014
integer, save, public thiel1992
integer, save, public pracht2019
integer, save, public ehrhardt1985
integer, save, public becke1988b
integer, save, public perdew1981
integer, save, public knizia2013
integer, save, public shigeta2001
integer, save, public stewart1982
integer, save, public schenter2008
integer, save, public lu2004
integer, save, public dudarev1997
integer, save, public heinzmann1976
integer, save, public brelaz1979
integer, save, public krack2000
integer, save, public dewar1985
integer, save, public banihashemian2016
integer, save, public stewart1989
integer, save, public brehm2018
integer, save, public kolafa2004
integer, save, public dudarev1998
routines to handle the output, The idea is to remove the decision of wheter to output and what to out...
character(len=default_string_length) function, public cp_openpmd_get_default_extension()
routines to handle the output, The idea is to remove the decision of wheter to output and what to out...
integer, parameter, public debug_print_level
integer, parameter, public low_print_level
integer, parameter, public medium_print_level
integer, parameter, public high_print_level
integer, parameter, public add_last_numeric
integer, parameter, public silent_print_level
subroutine, public cp_print_key_section_create(print_key_section, location, name, description, print_level, each_iter_names, each_iter_values, add_last, filename, common_iter_levels, citations, unit_str)
creates a print_key section
utils to manipulate splines on the regular grid of a pw
integer, parameter, public pw_interp
integer, parameter, public spline3_nopbc_interp
integer, parameter, public spline3_pbc_interp
real(kind=dp) function, public cp_unit_to_cp2k(value, unit_str, defaults, power)
converts to the internal cp2k units to the given unit
Defines the basic variable types.
integer, parameter, public dp
K-point MO wavefunction dump to TEXT file for post-processing (PDOS, etc.)
integer, parameter, public mokp_ao_gto_basis
integer, parameter, public mokp_ao_overlap_matrix
This module defines the grid data type and some basic operations on it.
integer, parameter, public do_pw_grid_blocked_false
integer, parameter, public do_pw_grid_blocked_true
integer, parameter, public do_pw_grid_blocked_free
different utils that are useful to manipulate splines on the regular grid of a pw
integer, parameter, public precond_spl3_3
integer, parameter, public precond_spl3_aint
integer, parameter, public no_precond
integer, parameter, public precond_spl3_2
integer, parameter, public precond_spl3_aint2
integer, parameter, public precond_spl3_1
module that contains the definitions of the scf types
subroutine, public create_mixing_section(section, ls_scf)
Create CP2K input section for the mixing of the density matrix to be used only with diagonalization m...
manage control variables for the maximum overlap method
subroutine, public create_mom_section(section)
Create CP2K input section for variable occupancy using the Maximum Overlap Method....
Utilities for string manipulations.