79 numerical,
oe_gllb,
oe_lb,
oe_none,
oe_saop,
oe_sic,
orb_dx2,
orb_dxy,
orb_dy2,
orb_dyz, &
172#include "./base/base_uses.f90"
177 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'input_cp2k_print_dft'
192 TYPE(
section_type),
POINTER :: print_key, sub_print_key, subsection
194 cpassert(.NOT.
ASSOCIATED(section))
196 description=
"Section of possible print options in DFT code.", &
197 n_keywords=0, n_subsections=1, repeats=.false.)
199 NULLIFY (print_key, keyword, subsection)
202 description=
"Controls the printing of the banner of the MM program", &
208 description=
"Controls the printing of a file with all basis sets used.", &
214 description=
"Controls the printing of the kinetic energy", &
220 description=
"Print all derivatives after the DFT calculation", &
224 description=
"Specify the number of digits used to print derivatives", &
233 description=
"Controls the printing of the neighbor lists", &
237 description=
"Activates the printing of the orbital "// &
238 "orbital neighbor lists, "// &
239 "i.e. the overlap neighbor lists", &
240 default_l_val=.false., &
241 lone_keyword_l_val=.true.)
246 name=
"sab_aux_fit", &
247 description=
"Activates the printing of the orbital "// &
248 "orbital neighbor lists wavefunction fitting basis, "// &
249 "i.e. the overlap neighbor lists", &
250 default_l_val=.false., &
251 lone_keyword_l_val=.true.)
256 name=
"sab_aux_fit_vs_orb", &
257 description=
"Activates the printing of the orbital "// &
258 "orbital mixed neighbor lists of wavefunction fitting basis, "// &
259 "and the orbital basis, i.e. the overlap neighbor lists", &
260 default_l_val=.false., &
261 lone_keyword_l_val=.true.)
267 description=
"Activates the printing of the vdW SCP "// &
269 default_l_val=.false., &
270 lone_keyword_l_val=.true.)
276 description=
"Activates the printing of the vdW "// &
277 "neighbor lists (from DFT, DFTB, SE), "// &
278 "i.e. the dispersion neighbor lists", &
279 default_l_val=.false., &
280 lone_keyword_l_val=.true.)
286 description=
"Activates the printing of the "// &
287 "neighbor lists used for coordination numbers in vdW DFT-D3", &
288 default_l_val=.false., &
289 lone_keyword_l_val=.true.)
295 description=
"Activates the printing of the orbital "// &
296 "nuclear attraction neighbor lists (erfc potential)", &
297 default_l_val=.false., &
298 lone_keyword_l_val=.true.)
304 description=
"Activates the printing of the orbital "// &
305 "GTH-PPL neighbor lists (local part of the "// &
306 "Goedecker-Teter-Hutter pseudo potentials)", &
307 default_l_val=.false., &
308 lone_keyword_l_val=.true.)
314 description=
"Activates the printing of the orbital "// &
315 "GTH-PPNL neighbor lists (non-local part of the "// &
316 "Goedecker-Teter-Hutter pseudo potentials)", &
317 default_l_val=.false., &
318 lone_keyword_l_val=.true.)
324 description=
"Activates the printing of the orbital "// &
325 "PAW-projector neighbor lists (only GAPW)", &
326 default_l_val=.false., &
327 lone_keyword_l_val=.true.)
333 description=
"Activates the printing of the two-center "// &
334 "neighbor lists for Coulomb type interactions in NDDO ", &
335 default_l_val=.false., &
336 lone_keyword_l_val=.true.)
342 description=
"Activates the printing of the long-range SE correction "// &
343 "neighbor lists (only when doing long-range SE with integral scheme KDSO and KDSO-d)", &
344 default_l_val=.false., lone_keyword_l_val=.true.)
350 description=
"Activates the printing of the DFTB Ewald "// &
352 default_l_val=.false., &
353 lone_keyword_l_val=.true.)
359 description=
"Activates the printing of the xTB sr-Coulomb "// &
361 default_l_val=.false., &
362 lone_keyword_l_val=.true.)
368 description=
"Activates the printing of core interaction "// &
370 default_l_val=.false., &
371 lone_keyword_l_val=.true.)
377 description=
"Activates the printing of XB interaction from (xTB) "// &
379 default_l_val=.false., &
380 lone_keyword_l_val=.true.)
385 name=
"sab_xtb_nonbond", &
386 description=
"Activates the printing of nonbonded interaction from (xTB) "// &
388 default_l_val=.false., &
389 lone_keyword_l_val=.true.)
395 description=
"Activates the printing of RI orbital-orbital "// &
397 default_l_val=.false., &
398 lone_keyword_l_val=.true.)
404 description=
"Activates the printing of RI basis-projector interaction "// &
406 default_l_val=.false., &
407 lone_keyword_l_val=.true.)
413 description=
"Activates the printing of the nuclear orbital "// &
414 "nuclear repulsion neighbor lists (erfc potential)", &
415 default_l_val=.false., &
416 lone_keyword_l_val=.true.)
424 description=
"Activates the printing of the subcells used for the "// &
425 "generation of neighbor lists.", unit_str=
"angstrom", &
431 description=
"Controls the printing of the ao (i.e. contracted gaussian) matrices (debug).", &
434 description=
"Print only the matrix data, not the row and column headers", &
435 default_l_val=.false., lone_keyword_l_val=.true.)
440 description=
"Specify the number of digits used to print the AO matrices", &
444 CALL keyword_create(keyword, __location__, name=
"CORE_HAMILTONIAN", &
445 description=
"If the printkey is activated controls the printing of the hamiltonian matrix", &
446 default_l_val=.false., lone_keyword_l_val=.true.)
450 description=
"If the printkey is activated controls the printing of the density (P) matrix", &
451 default_l_val=.false., lone_keyword_l_val=.true.)
455 CALL keyword_create(keyword, __location__, name=
"KINETIC_ENERGY", &
456 description=
"If the printkey is activated controls the printing of the kinetic energy matrix", &
457 default_l_val=.false., lone_keyword_l_val=.true.)
460 CALL keyword_create(keyword, __location__, name=
"KOHN_SHAM_MATRIX", &
461 description=
"If the printkey is activated controls the printing of the Kohn-Sham matrix", &
462 default_l_val=.false., lone_keyword_l_val=.true.)
466 keyword, __location__, name=
"MATRIX_VXC", &
467 description=
"If the printkey is activated compute and print the matrix of the exchange and correlation potential. "// &
468 "Only the GGA part for GPW is printed", &
469 default_l_val=.false., lone_keyword_l_val=.true.)
473 description=
"If the printkey is activated controls the printing of the orthogonalization matrix", &
474 default_l_val=.false., lone_keyword_l_val=.true.)
478 description=
"If the printkey is activated controls the printing of the overlap matrix", &
479 default_l_val=.false., lone_keyword_l_val=.true.)
483 CALL keyword_create(keyword, __location__, name=
"COMMUTATOR_HR", &
484 description=
"Controls the printing of the [H,r] commutator matrix", &
485 default_l_val=.false., lone_keyword_l_val=.true.)
489 CALL keyword_create(keyword, __location__, name=
"FERMI_CONTACT", &
490 description=
"If the printkey is activated controls the printing of the Fermi contact matrix", &
491 default_l_val=.false., lone_keyword_l_val=.true.)
495 keyword, __location__, name=
"PSO", &
496 description=
"If the printkey is activated controls the printing of the paramagnetic spin-orbit matrices", &
497 default_l_val=.false., lone_keyword_l_val=.true.)
501 keyword, __location__, name=
"EFG", &
502 description=
"If the printkey is activated controls the printing of the electric field gradient matrices", &
503 default_l_val=.false., lone_keyword_l_val=.true.)
506 CALL keyword_create(keyword, __location__, name=
"POTENTIAL_ENERGY", &
507 description=
"If the printkey is activated controls the printing of the potential energy matrix", &
508 default_l_val=.false., lone_keyword_l_val=.true.)
512 description=
"If the printkey is activated controls the printing of the OCE HARD matrix", &
513 default_l_val=.false., lone_keyword_l_val=.true.)
517 description=
"If the printkey is activated controls the printing of the OCE SOFT matrix", &
518 default_l_val=.false., lone_keyword_l_val=.true.)
522 description=
"If the printkey is activated controls the printing of the w matrix", &
523 default_l_val=.false., lone_keyword_l_val=.true.)
526 CALL keyword_create(keyword, __location__, name=
"W_MATRIX_AUX_FIT", &
527 description=
"If the printkey is activated controls the printing of the w matrix", &
528 default_l_val=.false., lone_keyword_l_val=.true.)
532 description=
"If the printkey is activated controls the printing "// &
533 "of derivatives (for the matrixes that support this)", &
534 default_l_val=.false., lone_keyword_l_val=.true.)
541 print_key, __location__,
"MO", &
542 description=
"Controls the printing of the molecular orbital (MO) information. The requested MO information "// &
543 "is printed for all occupied MOs by default. Use the MO_INDEX_RANGE keyword to restrict the number "// &
544 "of the MOs or to print the MO information for unoccupied MOs. With diagonalization, an explicit "// &
545 "positive range or -1 as its last index makes the requested MOs available automatically, up to the "// &
546 "AO basis size. ADDED_MOS can make extra MOs available independently of this print request. With OT, "// &
547 "it is sufficient to specify the desired MO_INDEX_RANGE. The OT eigensolver can be controlled with "// &
548 "the EPS_LUMO and MAX_ITER_LUMO keywords in the SCF section.", &
551 description=
"Print the MOs in the Cartesian basis instead of the default spherical basis.", &
552 default_l_val=.false., lone_keyword_l_val=.true.)
555 CALL keyword_create(keyword, __location__, name=
"CARTESIAN_OVERLAP", &
556 description=
"Print the Cartesian overlap matrix in line with Cartesian MO coefficients.", &
557 default_l_val=.false., lone_keyword_l_val=.true.)
561 variants=
s2a(
"EIGENVALUES",
"EIGVALS"), &
562 description=
"Print the MO energies (eigenvalues).", &
563 default_l_val=.false., lone_keyword_l_val=.true.)
567 variants=
s2a(
"EIGENVECTORS",
"EIGVECS"), &
568 description=
"Print the MO coefficients (eigenvectors).", &
569 default_l_val=.false., lone_keyword_l_val=.true.)
572 CALL keyword_create(keyword, __location__, name=
"OCCUPATION_NUMBERS", &
573 variants=
s2a(
"OCCNUMS"), &
574 description=
"Print the MO occupation numbers.", &
575 default_l_val=.false., lone_keyword_l_val=.true.)
578 CALL keyword_create(keyword, __location__, name=
"OCCUPATION_NUMBERS_STATS", &
579 variants=
s2a(
"OCCNUMSTATS"), &
580 description=
"Print some stats (max number of occupied MOs, etc.) of the MO occupation numbers."// &
581 " First logical toggles stats printing, first real is the occupied threshold.", &
582 type_of_var=
char_t, n_var=-1, &
583 default_c_vals=[
".FALSE.",
"1.0E-6 "], &
584 lone_keyword_c_vals=[
".TRUE."], &
585 usage=
"OCCUPATION_NUMBERS_STATS {Logical} [{Real}]")
589 description=
"Specify the number of digits used to print the MO information.", &
594 name=
"MO_INDEX_RANGE", &
595 variants=
s2a(
"MO_RANGE",
"RANGE"), &
596 description=
"Print only the requested subset of MOs. The indices of the first and "// &
597 "the last MO have to be specified to define the range. A positive range makes the "// &
598 "requested MOs available automatically. -1 as the last MO index makes and prints all "// &
599 "available orbitals with diagonalization and all orbitals with OT.", &
603 default_i_vals=[0, 0], &
604 usage=
"MO_INDEX_RANGE 10 15")
611 description=
"Write the molecular orbitals in Molden file format, for visualisation.", &
614 description=
"Unit for coordinates and cell in the MOLDEN file.", &
615 usage=
"UNIT ANGSTROM", &
616 enum_c_vals=
s2a(
"BOHR",
"ANGSTROM"), &
617 enum_desc=
s2a(
"Write in Bohr (AU)",
"Write in Angstrom"), &
618 enum_i_vals=[1, 2], &
623 description=
"Controls whether the [Cell] block is written to the MOLDEN file.", &
624 usage=
"WRITE_CELL T", &
625 default_l_val=.false., lone_keyword_l_val=.true.)
629 description=
"Controls whether the [Pseudo] block is written to the MOLDEN file.", &
630 usage=
"WRITE_PSEUDO T", &
631 default_l_val=.false., lone_keyword_l_val=.true.)
635 description=
"Controls whether ghost atoms are marked in the [Atoms] block by "// &
636 "setting their atomic number to zero.", &
637 usage=
"MARK_GHOST T", &
638 default_l_val=.false., lone_keyword_l_val=.true.)
642 description=
"Specifies the number of significant digits retained. 3 is OK for visualization.", &
643 usage=
"NDIGITS {int}", &
648 description=
"Representation of Gaussian-type orbitals", &
650 enum_c_vals=
s2a(
"CARTESIAN",
"SPHERICAL"), &
652 "Cartesian Gaussian orbitals. Use with caution", &
653 "Spherical Gaussian orbitals. Incompatible with VMD"), &
658 description=
"Number of unoccupied orbitals to include in the Molden file. "// &
659 "For OT calculations, the requested virtual orbitals are generated after "// &
660 "SCF using the OT eigensolver. For diagonalization calculations, "// &
661 "SCF%ADDED_MOS is increased if needed to make the requested unoccupied "// &
662 "orbitals available. 0 means no virtual orbitals, -1 means all available.", &
663 usage=
"NLUMO integer", &
671 description=
"Write k-point MO information to `.mokp` file. "// &
672 "The information of cell and k-points is given at first. Then, "// &
673 "the coefficients of molecular orbitals are always written, "// &
674 "while users can choose whether to write GTO basis information "// &
675 "or explicit overlap matrices through the `AO_EXPORT_TYPE` keyword.", &
678 description=
"Unit for coordinates and cell in the .mokp file.", &
679 usage=
"UNIT ANGSTROM", &
680 enum_c_vals=
s2a(
"BOHR",
"ANGSTROM"), &
681 enum_desc=
s2a(
"Write in Bohr (AU)",
"Write in Angstrom"), &
682 enum_i_vals=[1, 2], &
687 description=
"Specifies the number of significant digits retained.", &
688 usage=
"NDIGITS {int}", &
692 CALL keyword_create(keyword, __location__, name=
"AO_EXPORT_TYPE", &
693 description=
"How AO information is provided for interpreting MO coefficients. "// &
694 "GTO_BASIS writes basis set exponents/coefficients (compact, post-processing reconstructs S(k)). "// &
695 "OVERLAP_MATRIX writes S(k) directly (larger file, ready to use).", &
697 enum_c_vals=
s2a(
"GTO_BASIS",
"OVERLAP_MATRIX"), &
698 enum_desc=
s2a(
"Write GTO basis set definition (MOLDEN denormalization convention)", &
699 "Write explicit overlap matrices S(k) for all k-points"), &
706 CALL create_mo_section(print_key,
"MO_CUBES",
"cube", [2, 2, 2],
"STRIDE 1 1 1",
high_print_level,
"write_cube")
708 description=
"append the cube files when they already exist", &
709 default_l_val=.false., lone_keyword_l_val=.true.)
712 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
713 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
714 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
720 CALL create_mo_section( &
721 print_key,
"MO_OPENPMD",
"openPMD", [1, 1, 1],
"STRIDE 2 2 2",
debug_print_level + 1,
"write_openpmd")
722 CALL add_generic_openpmd_arguments(print_key)
726 CALL create_stm_section(print_key)
730 CALL create_wfn_mix_section(subsection)
735 description=
"Write a TREXIO file to disk.", &
736 n_keywords=4, n_subsections=0, repeats=.false.)
738 description=
"Body of Filename for the trexio file.", &
739 usage=
"FILENAME {name}", default_c_val=
"TREXIO", &
744 description=
"Store the MOs in the Cartesian basis instead of the default spherical basis.", &
745 default_l_val=.false., lone_keyword_l_val=.true.)
748 CALL keyword_create(keyword, __location__, name=
"FULL_KPOINT_GRID", &
749 description=
"For symmetry-reduced k-point SCF calculations, export MOs on the "// &
750 "full unreduced k-point grid instead of the irreducible grid.", &
751 usage=
"FULL_KPOINT_GRID <LOGICAL>", default_l_val=.false., &
752 lone_keyword_l_val=.true.)
755 CALL keyword_create(keyword, __location__, name=
"REUSE_SCF_MOS", &
756 description=
"When FULL_KPOINT_GRID is active, try to reconstruct the full-grid "// &
757 "MO coefficients from the symmetry-reduced SCF orbitals before falling back to "// &
758 "a full-grid diagonalization.", &
759 usage=
"REUSE_SCF_MOS T", default_l_val=.true.)
766 description=
"Write a CASINO gwfn.data file to disk.", &
767 n_keywords=5, n_subsections=0, repeats=.false.)
769 description=
"Filename for the CASINO gwfn.data file.", &
770 usage=
"FILENAME {name}", default_c_val=
"gwfn.data", &
774 CALL keyword_create(keyword, __location__, name=
"EPS_KPOINT_REAL", &
775 description=
"Tolerance for detecting Gamma/BZ-edge k-points with real orbitals.", &
776 usage=
"EPS_KPOINT_REAL 1.0E-10", default_r_val=1.0e-10_dp)
779 CALL keyword_create(keyword, __location__, name=
"FULL_KPOINT_GRID", &
780 description=
"For symmetry-reduced k-point SCF calculations, export orbitals on the "// &
781 "full unreduced k-point grid required by CASINO.", &
782 usage=
"FULL_KPOINT_GRID <LOGICAL>", default_l_val=.true., &
783 lone_keyword_l_val=.true.)
786 CALL keyword_create(keyword, __location__, name=
"REUSE_SCF_MOS", &
787 description=
"When FULL_KPOINT_GRID is active, try to reconstruct the full-grid "// &
788 "MO coefficients from the symmetry-reduced SCF orbitals before falling back to "// &
789 "a full-grid diagonalization.", &
790 usage=
"REUSE_SCF_MOS T", default_l_val=.true.)
793 CALL keyword_create(keyword, __location__, name=
"WRITE_PSEUDOPOTENTIALS", &
794 description=
"Write CASINO *_pp.data files for CP2K semilocal ECP potentials. "// &
795 "GTH pseudopotentials are marked in gwfn.data, but require externally supplied "// &
796 "CASINO pseudopotential files.", &
797 usage=
"WRITE_PSEUDOPOTENTIALS T", default_l_val=.true., &
798 lone_keyword_l_val=.true.)
805 description=
"Controls the printing of some gapw related information (debug).", &
806 n_keywords=0, n_subsections=1, repeats=.false.)
808 description=
"If the printkey is activated controls if information on"// &
809 " the projectors is printed.", &
814 description=
"If the printkey is activated controls if information on rho0 is printed.", &
822 description=
"Controls the printing of dft control parameters.", &
828 description=
"Controls the printing of kpoint information.", &
834 CALL create_bandstructure_section(subsection)
839 description=
"Controls the checking and printing of an estimate "// &
840 "of the overlap matrix condition number", &
843 description=
"Calculate an estimate of the 1-norm condition number", &
844 default_l_val=.true., lone_keyword_l_val=.true.)
847 CALL keyword_create(keyword, __location__, name=
"DIAGONALIZATION", &
848 description=
"Calculate the 1- and 2-norm condition numbers using diagonalization", &
849 default_l_val=.false., lone_keyword_l_val=.true.)
853 description=
"Calculate the 2-norm condition number using the Arnoldi code (may not be reliable)", &
854 default_l_val=.false., lone_keyword_l_val=.true.)
860 CALL create_e_density_section( &
862 "E_DENSITY_OPENPMD", &
867 CALL add_generic_openpmd_arguments(print_key)
871 CALL create_e_density_section(print_key,
"E_DENSITY_CUBE",
"cube", [2, 2, 2],
"STRIDE 2 2 2",
high_print_level)
873 description=
"append the cube files when they already exist", &
874 default_l_val=.false., lone_keyword_l_val=.true.)
878 CALL keyword_create(keyword, __location__, name=
"XRD_INTERFACE", &
879 description=
"It activates the print out of exponents and coefficients for the"// &
880 " Gaussian expansion of the core densities, based on atom calculations for each kind."// &
881 " The resulting core dansities are needed to compute the form factors."// &
882 " If GAPW the local densities are also given in terms of a Gaussian expansion,"// &
883 " by fitting the difference between local-fhard and local-soft density for each atom."// &
884 " In this case the keyword SOFT_DENSITY is enabled.", &
885 default_l_val=.false., lone_keyword_l_val=.true.)
890 description=
"Number of Gaussian functions used in the expansion of atomic (core) density", &
891 usage=
"NGAUSS 10", n_var=1, default_i_val=12, type_of_var=
integer_t)
899 description=
"Controls printing of cube files with "// &
900 "the total density (electrons+atomic core). Note that "// &
901 "the value of the total density is positive where the "// &
902 "electron density dominates and negative where the core is. "// &
903 "When GPW is enabled this will simply print the combined density "// &
904 "of the valence electrons and charge-balanced core. In GAPW the "// &
905 "electronic density (hard+soft plus a correction term) is printed "// &
906 "together with the charge-balanced core density to produce a complete "// &
907 "representation of the total density.", &
910 description=
"The stride (X,Y,Z) used to write the cube file "// &
911 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
912 " 1 number valid for all components.", &
913 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
918 description=
"append the cube files when they already exist", &
919 default_l_val=.false., lone_keyword_l_val=.true.)
923 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
924 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
925 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
933 description=
"Controls the printing of a cube file with eletrostatic"// &
934 " potential generated by the total density (electrons+ions). It is"// &
935 " valid only for QS with GPW formalism."// &
936 " Note that by convention the potential has opposite sign than the expected physical one.", &
939 description=
"The stride (X,Y,Z) used to write the cube file "// &
940 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
941 " 1 number valid for all components.", &
942 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
946 description=
"append the cube files when they already exist", &
947 default_l_val=.false., lone_keyword_l_val=.true.)
950 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
951 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
952 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
960 description=
"Controls the printing of a cube file with external"// &
961 " potential from the DFT%EXTERNAL_POTENTIAL section only.", &
964 description=
"The stride (X,Y,Z) used to write the cube file "// &
965 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
966 " 1 number valid for all components.", &
967 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
971 description=
"append the cube files when they already exist", &
972 default_l_val=.false., lone_keyword_l_val=.true.)
975 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
976 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
977 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
985 description=
"Controls the output of the electron density to the losslessly"// &
986 " compressed BQB file format, see [Brehm2018]"// &
987 " (via LibBQB see <https://brehm-research.de/bqb>)."// &
988 " Currently does not work with changing cell vector (NpT ensemble).", &
993 description=
"Skips the first step of a MD run (avoids duplicate step if restarted).", &
994 usage=
"SKIP_FIRST T", default_l_val=.false., lone_keyword_l_val=.true.)
998 CALL keyword_create(keyword, __location__, name=
"STORE_STEP_NUMBER", &
999 description=
"Stores the step number and simulation time in the comment line of each BQB"// &
1000 " frame. Switch it off for binary compatibility with original CP2k CUBE files.", &
1001 usage=
"STORE_STEP_NUMBER F", default_l_val=.true., lone_keyword_l_val=.true.)
1006 description=
"Performs an on-the-fly decompression of each compressed BQB frame to check"// &
1007 " whether the volumetric data exactly matches, and aborts the run if not so.", &
1008 usage=
"CHECK T", default_l_val=.false., lone_keyword_l_val=.true.)
1013 description=
"Specify this keyword to overwrite the output BQB file if"// &
1014 " it already exists. By default, the data is appended to an existing file.", &
1015 usage=
"OVERWRITE T", default_l_val=.false., lone_keyword_l_val=.true.)
1020 description=
"Controls how many previous steps are taken into account for extrapolation in"// &
1021 " compression. Use a value of 1 to compress the frames independently.", &
1022 usage=
"HISTORY 10", n_var=1, default_i_val=10, type_of_var=
integer_t)
1026 CALL keyword_create(keyword, __location__, name=
"PARAMETER_KEY", &
1027 description=
"Allows to supply previously optimized compression parameters via a"// &
1028 " parameter key (alphanumeric character sequence starting with 'at')."// &
1029 " Just leave away the 'at' sign here, because CP2k will otherwise"// &
1030 " assume it is a variable name in the input", &
1031 usage=
"PARAMETER_KEY <KEY>", n_var=1, default_c_val=
"", type_of_var=
char_t)
1036 description=
"Controls the time spent to optimize the parameters for compression efficiency.", &
1037 usage=
"OPTIMIZE {OFF,QUICK,NORMAL,PATIENT,EXHAUSTIVE}", repeats=.false., n_var=1, &
1039 enum_c_vals=
s2a(
"OFF",
"QUICK",
"NORMAL",
"PATIENT",
"EXHAUSTIVE"), &
1040 enum_desc=
s2a(
"No optimization (use defaults)",
"Quick optimization", &
1041 "Standard optimization",
"Precise optimization",
"Exhaustive optimization"), &
1055 CALL create_implicit_psolver_section(subsection)
1061 description=
"Controls the printing of a cube file with xc"// &
1062 " potential generated by the ZMP method (for the moment). It is"// &
1063 " valid only for QS with GPW formalism .", &
1066 description=
"The stride (X,Y,Z) used to write the cube file "// &
1067 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1068 " 1 number valid for all components.", &
1069 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1073 description=
"append the cube files when they already exist", &
1074 default_l_val=.false., lone_keyword_l_val=.true.)
1082 description=
"Controls the printing of cube files with electric"// &
1083 " field generated by the total density (electrons+ions). It is"// &
1084 " valid only for QS with GPW formalism.", &
1087 description=
"The stride (X,Y,Z) used to write the cube file "// &
1088 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1089 " 1 number valid for all components.", &
1090 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1094 description=
"append the cube files when they already exist", &
1095 default_l_val=.false., lone_keyword_l_val=.true.)
1098 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
1099 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
1100 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
1107 CALL create_elf_print_section(print_key,
"ELF_CUBE", &
1111 description=
"append the cube files when they already exist", &
1112 default_l_val=.false., lone_keyword_l_val=.true.)
1119 CALL create_elf_print_section(print_key,
"ELF_OPENPMD", &
1122 CALL add_generic_openpmd_arguments(print_key)
1127 description=
"Controls the printing of cube files with the local"// &
1128 " energy. It is valid only for QS with GPW/GAPW formalism."// &
1129 " Meta and hybrid functionals are not possible. For GAPW/GAPW_XC"// &
1130 " and ADMM-GAPW this regular-grid cube keeps the existing soft-grid"// &
1131 " semantics; atom-centered hard one-center terms are not projected"// &
1132 " onto the cube grid.", &
1135 description=
"The stride (X,Y,Z) used to write the cube file "// &
1136 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1137 " 1 number valid for all components.", &
1138 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1142 description=
"append the cube files when they already exist", &
1143 default_l_val=.false., lone_keyword_l_val=.true.)
1146 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
1147 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
1148 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
1156 description=
"Controls the printing of cube files with the local"// &
1157 " stress. It is valid only for QS with GPW/GAPW formalism."// &
1158 " Meta and hybrid functionals are not possible. For GAPW/GAPW_XC"// &
1159 " and ADMM-GAPW this regular-grid cube keeps the existing soft-grid"// &
1160 " semantics; atom-centered hard one-center terms are not projected"// &
1161 " onto the cube grid.", &
1164 description=
"The stride (X,Y,Z) used to write the cube file "// &
1165 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1166 " 1 number valid for all components.", &
1167 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1171 description=
"append the cube files when they already exist", &
1172 default_l_val=.false., lone_keyword_l_val=.true.)
1175 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
1176 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
1177 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
1185 description=
"Print density of states (DOS). "// &
1186 "Projected DOS output can be enabled with PDOS.", &
1192 description=
"Specify a Monkhorst-Pack grid with which to compute the density of states. "// &
1193 "Works only for a k-point calculation", &
1194 usage=
"MP_GRID {integer} {integer} {integer}", default_i_vals=[-1], &
1202 CALL create_wannier_section(print_key)
1209 keyword, __location__, &
1210 name=
"MAX_MOMENT", &
1211 description=
"Maximum moment to be calculated. Values higher than 1 not implemented under periodic boundaries.", &
1212 usage=
"MAX_MOMENT {integer}", &
1220 keyword, __location__, &
1222 description=
"Format of the moments output. DETAILED prints the traditional multi-line report. "// &
1223 "TRAJECTORY prints one machine-readable electric-dipole record per iteration. For periodic "// &
1224 "calculations each record also contains the cell matrix in Debye, which is required to unwrap "// &
1225 "Berry-phase jumps in variable cells.", &
1226 usage=
"FORMAT {DETAILED|TRAJECTORY}", &
1227 enum_c_vals=
s2a(
"DETAILED",
"TRAJECTORY"), &
1228 enum_desc=
s2a(
"Traditional multi-line moments report", &
1229 "One electric-dipole record per iteration"), &
1236 description=
"Calculate also magnetic moments, only implemented without periodic boundaries", &
1237 usage=
"MAGNETIC yes", &
1240 default_l_val=.false., &
1241 lone_keyword_l_val=.true.)
1246 description=
"Calculate expectation values of the el. multipole moments in their velocity "// &
1247 "representation during RTP. Implemented up to el. quadrupole moment.", &
1248 usage=
"VEL_REPRS yes", &
1251 default_l_val=.false., &
1252 lone_keyword_l_val=.true.)
1257 description=
"Include non local commutator for velocity representations. "// &
1258 "Necessary for origin independent results.", &
1259 usage=
"COM_NL yes", &
1262 default_l_val=.false., &
1263 lone_keyword_l_val=.true.)
1267 name=
"SECOND_REFERENCE_POINT", &
1268 description=
"Use second reference point", &
1269 usage=
"SECOND_REFERENCE_POINT .TRUE.", &
1272 default_l_val=.false., &
1273 lone_keyword_l_val=.true.)
1277 variants=
s2a(
"REF_2"), &
1278 description=
"Define a second reference point for the calculation of the electrostatic moment.", &
1279 usage=
"REFERENCE_2 COM", &
1280 enum_c_vals=
s2a(
"COM",
"COAC",
"USER_DEFINED",
"ZERO"), &
1281 enum_desc=
s2a(
"Use Center of Mass", &
1282 "Use Center of Atomic Charges", &
1283 "Use User Defined Point (Keyword:REF_POINT)", &
1284 "Use Origin of Coordinate System"), &
1292 CALL keyword_create(keyword, __location__, name=
"REFERENCE_POINT_2", &
1293 variants=
s2a(
"REF_POINT_2"), &
1294 description=
"Fixed second reference point for the calculations of the electrostatic moment.", &
1295 usage=
"REFERENCE_POINT_2 x y z", &
1297 n_var=3, default_r_vals=[0._dp, 0._dp, 0._dp], &
1303 description=
"Maximum number of molecular orbitals closest to the Fermi "// &
1304 "level for which dipole matrix elements and Berry curvatures are printed "// &
1305 "per k-point. 0 for all orbitals. Ignored if not a KPOINT calculation.", &
1306 usage=
"MAX_NMO {integer}", &
1308 n_var=1, default_i_val=10, &
1319 description=
"Print the electronic moments separately for KG subsystems", &
1320 usage=
"KG .TRUE.", &
1323 default_l_val=.false., &
1324 lone_keyword_l_val=.true.)
1332 description=
"Controls the printing of the Mulliken (spin) population analysis", &
1334 common_iter_levels=1)
1336 keyword, __location__, &
1338 description=
"Print the gross orbital populations (GOP) in addition to the gross atomic populations (GAP) "// &
1339 "and net charges", &
1340 usage=
"PRINT_GOP yes", &
1343 default_l_val=.false., &
1344 lone_keyword_l_val=.true.)
1348 keyword, __location__, &
1350 description=
"Print all information including the full net AO and overlap population matrix", &
1351 usage=
"PRINT_ALL yes", &
1354 default_l_val=.false., &
1355 lone_keyword_l_val=.true.)
1363 description=
"Controls the printing of the Lowdin (spin) population analysis", &
1365 common_iter_levels=1)
1367 keyword, __location__, &
1369 description=
"Print the orbital populations in addition to the atomic populations and net charges", &
1370 usage=
"PRINT_GOP yes", &
1373 default_l_val=.false., &
1374 lone_keyword_l_val=.true.)
1378 keyword, __location__, &
1380 description=
"Print all information including the full symmetrically orthogonalised density matrix", &
1381 usage=
"PRINT_ALL yes", &
1384 default_l_val=.false., &
1385 lone_keyword_l_val=.true.)
1393 description=
"Controls the printing of the Hirshfeld (spin) population analysis", &
1395 common_iter_levels=1)
1396 CALL keyword_create(keyword, __location__, name=
"SELF_CONSISTENT", &
1397 description=
"Calculate charges from the Hirscheld-I (self_consistent) method."// &
1398 " This scales only the full shape function, not the added charge as in the original scheme.", &
1399 usage=
"SELF_CONSISTENT yes", repeats=.false., n_var=1, &
1400 default_l_val=.false., lone_keyword_l_val=.true.)
1403 CALL keyword_create(keyword, __location__, name=
"SHAPE_FUNCTION", &
1404 description=
"Type of shape function used for Hirshfeld partitioning.", &
1405 usage=
"SHAPE_FUNCTION {Gaussian,Density}", repeats=.false., n_var=1, &
1407 enum_c_vals=
s2a(
"GAUSSIAN",
"DENSITY"), &
1408 enum_desc=
s2a(
"Single Gaussian with Colvalent radius", &
1409 "Atomic density expanded in multiple Gaussians"), &
1413 CALL keyword_create(keyword, __location__, name=
"REFERENCE_CHARGE", &
1414 description=
"Charge of atomic partitioning function for Hirshfeld method.", &
1415 usage=
"REFERENCE_CHARGE {Atomic,Mulliken}", repeats=.false., n_var=1, &
1417 enum_c_vals=
s2a(
"ATOMIC",
"MULLIKEN"), &
1418 enum_desc=
s2a(
"Use atomic core charges",
"Calculate Mulliken charges"), &
1423 description=
"Use user defined radii to generate Gaussians."// &
1424 " These radii are defined by the keyword ATOMIC_RADII", &
1425 usage=
"USER_RADIUS yes", repeats=.false., n_var=1, &
1426 default_l_val=.false., lone_keyword_l_val=.true.)
1429 CALL keyword_create(keyword, __location__, name=
"ATOMIC_RADII", &
1430 description=
"Defines custom radii to setup the spherical Gaussians.", &
1431 usage=
"ATOMIC_RADII {real} {real} {real}", repeats=.false., &
1432 unit_str=
"angstrom", &
1433 type_of_var=
real_t, n_var=-1)
1441 description=
"Controls the printing of the EEQ charges", &
1443 common_iter_levels=1, &
1450 description=
"Controls the printing of the MAO (modified atomic orbital) analysis", &
1452 common_iter_levels=1, &
1455 description=
"Threshold for matrix elements in MAO determination.", &
1456 usage=
"EPS_FILTER reps", repeats=.false., n_var=1, &
1457 default_r_val=1.e-8_dp, type_of_var=
real_t)
1460 CALL keyword_create(keyword, __location__, name=
"REFERENCE_BASIS", &
1461 description=
"Basis set used to construct MAO's.", &
1462 usage=
"REFERENCE_BASIS {ORBITAL,PRIMITIVE,EXTERNAL}", repeats=.false., n_var=1, &
1464 enum_c_vals=
s2a(
"ORBITAL",
"PRIMITIVE",
"EXTERNAL"), &
1465 enum_desc=
s2a(
"Use standard orbital basis set",
"Construct basis from primitives of the orbital basis", &
1466 "Read external basis (MAO)"), &
1471 description=
"Print out MAO reference basis.", &
1472 usage=
"PRINT_BASIS {logical}", repeats=.false., n_var=1, &
1473 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1477 description=
"Print out MAO in PAO format to be used for optimization or learning.", &
1478 usage=
"PRINT_PAO {logical}", repeats=.false., n_var=1, &
1479 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1483 description=
"Threshold for gradient in MAO optimization.", &
1484 usage=
"EPS_GRAD reps", repeats=.false., n_var=1, &
1485 default_r_val=1.e-4_dp, type_of_var=
real_t)
1488 CALL keyword_create(keyword, __location__, name=
"EPS_FUNCTION", &
1489 description=
"Threshold for electron defect in MAO optimization.", &
1490 usage=
"EPS_FUNCTION feps", repeats=.false., n_var=1, &
1491 default_r_val=1.e-3_dp, type_of_var=
real_t)
1495 description=
"Maximum allowed iterations for MAO optimization.", &
1496 usage=
"MAX_ITER iter", repeats=.false., n_var=1, &
1501 description=
"Neglect 3 atom terms in MAO analysis.", &
1502 usage=
"NEGLECT_ABC {logical}", repeats=.false., n_var=1, &
1503 default_l_val=.true., lone_keyword_l_val=.true., type_of_var=
logical_t)
1506 CALL keyword_create(keyword, __location__, name=
"AB_THRESHOLD", &
1507 description=
"Threshold for printing of AB shared electron numbers.", &
1508 usage=
"AB_THRESHOLD thr", repeats=.false., n_var=1, &
1509 default_r_val=1.e-2_dp, type_of_var=
real_t)
1512 CALL keyword_create(keyword, __location__, name=
"ABC_THRESHOLD", &
1513 description=
"Threshold for printing of ABC shared electron numbers.", &
1514 usage=
"ABC_THRESHOLD thr", repeats=.false., n_var=1, &
1515 default_r_val=1.e-5_dp, type_of_var=
real_t)
1518 CALL keyword_create(keyword, __location__, name=
"ANALYZE_UNASSIGNED_CHARGE", &
1519 description=
"Calculate atomic contributions to the unassigned charge.", &
1520 usage=
"ANALYZE_UNASSIGNED_CHARGE {logical}", repeats=.false., n_var=1, &
1521 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1529 description=
"Controls the printing of the minimal localized basis analysis", &
1531 common_iter_levels=1, &
1534 description=
"Threshold for matrix elements in basis determination.", &
1535 usage=
"EPS_FILTER reps", repeats=.false., n_var=1, &
1536 default_r_val=1.e-8_dp, type_of_var=
real_t)
1539 CALL keyword_create(keyword, __location__, name=
"FULL_ORTHOGONALIZATION", &
1540 description=
"Orthogonalize the localized minimal basis.", &
1541 usage=
"FULL_ORTHOGONALIZATION {logical}", repeats=.false., n_var=1, &
1542 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1546 description=
"Calculate Mayer Bond Orders.", &
1547 usage=
"BOND_ORDER {logical}", repeats=.false., n_var=1, &
1548 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1552 NULLIFY (sub_print_key)
1554 description=
"Write the minimal basis on Cube files.", &
1557 description=
"The stride (X,Y,Z) used to write the cube file "// &
1558 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1559 " 1 number valid for all components.", &
1560 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1564 description=
"Indexes of the atoms minimal basis to be printed as cube files "// &
1565 "This keyword can be repeated several times "// &
1566 "(useful if you have to specify many indexes).", &
1567 usage=
"ATOM_LIST 1 2", &
1568 n_var=-1, type_of_var=
integer_t, repeats=.true.)
1574 NULLIFY (sub_print_key)
1576 description=
"Write the minimal basis in Molden file format, for visualisation.", &
1579 description=
"Unit for coordinates and cell in the MOLDEN file.", &
1580 usage=
"UNIT ANGSTROM", &
1581 enum_c_vals=
s2a(
"BOHR",
"ANGSTROM"), &
1582 enum_desc=
s2a(
"Write in Bohr (AU)",
"Write in Angstrom"), &
1583 enum_i_vals=[1, 2], &
1588 description=
"Controls whether the [Cell] block is written to the MOLDEN file.", &
1589 usage=
"WRITE_CELL T", &
1590 default_l_val=.false., lone_keyword_l_val=.true.)
1593 CALL keyword_create(keyword, __location__, name=
"WRITE_PSEUDO", &
1594 description=
"Controls whether the [Pseudo] block is written to the MOLDEN file.", &
1595 usage=
"WRITE_PSEUDO T", &
1596 default_l_val=.false., lone_keyword_l_val=.true.)
1600 description=
"Controls whether ghost atoms are marked in the [Atoms] block by "// &
1601 "setting their atomic number to zero.", &
1602 usage=
"MARK_GHOST T", &
1603 default_l_val=.false., lone_keyword_l_val=.true.)
1607 description=
"Specifies the number of significant digits retained. 3 is OK for visualization.", &
1608 usage=
"NDIGITS {int}", &
1613 description=
"Representation of Gaussian-type orbitals", &
1615 enum_c_vals=
s2a(
"CARTESIAN",
"SPHERICAL"), &
1617 "Cartesian Gaussian orbitals. Use with caution", &
1618 "Spherical Gaussian orbitals. Incompatible with VMD"), &
1630 description=
"Controls energy decomposition analysis", &
1632 common_iter_levels=1, &
1634 CALL keyword_create(keyword, __location__, name=
"REFERENCE_ORB_CANONICAL", &
1635 description=
"Use reference orbitals in canonical form.", &
1636 usage=
"REFERENCE_ORB_CANONICAL {logical}", repeats=.false., n_var=1, &
1637 default_l_val=.true., lone_keyword_l_val=.true., type_of_var=
logical_t)
1640 CALL keyword_create(keyword, __location__, name=
"SKIP_LOCALIZATION", &
1641 description=
"Don't localize the MOs.", &
1642 usage=
"SKIP_LOCALIZATION {logical}", repeats=.false., n_var=1, &
1643 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1646 CALL keyword_create(keyword, __location__, name=
"DETAILED_ENERGY", &
1647 description=
"Calculate detailed atomic decomposition energies.", &
1648 usage=
"DETAILED_ENERGY {logical}", repeats=.false., n_var=1, &
1649 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1652 CALL keyword_create(keyword, __location__, name=
"EWALD_ALPHA_PARAMETER", &
1653 description=
"Calculate Energy Decomposition for a specific alpha value. "// &
1654 "alpha = 1/(2*rc**2), see GTH pseudopotentials.", &
1655 usage=
"EWALD_ALPHA_PARAMETER alpha", repeats=.false., n_var=1, &
1656 default_r_val=0.0_dp, type_of_var=
real_t)
1665 description=
"Controls the printing of the IAO (intrinsic atomic orbital) analysis", &
1667 common_iter_levels=1, &
1670 description=
"Threshold for matrix inversion eigenvalues.", &
1671 usage=
"EPS_SVD reps", repeats=.false., n_var=1, &
1672 default_r_val=0.0_dp, type_of_var=
real_t)
1676 description=
"Threshold in occupation for vectors included.", &
1677 usage=
"EPS_OCC reps", repeats=.false., n_var=1, &
1678 default_r_val=0.0_dp, type_of_var=
real_t)
1681 CALL keyword_create(keyword, __location__, name=
"ATOMIC_CHARGES", &
1682 description=
"Calculate atomic charges from IAO.", &
1683 usage=
"ATOMIC_CHARGES {logical}", repeats=.false., n_var=1, &
1684 default_l_val=.true., lone_keyword_l_val=.true., type_of_var=
logical_t)
1688 NULLIFY (sub_print_key)
1690 description=
"Write the IAO basis in Molden file format, for visualisation.", &
1693 description=
"Unit for coordinates and cell in the MOLDEN file.", &
1694 usage=
"UNIT ANGSTROM", &
1695 enum_c_vals=
s2a(
"BOHR",
"ANGSTROM"), &
1696 enum_desc=
s2a(
"Write in Bohr (AU)",
"Write in Angstrom"), &
1697 enum_i_vals=[1, 2], &
1702 description=
"Controls whether the [Cell] block is written to the MOLDEN file.", &
1703 usage=
"WRITE_CELL T", &
1704 default_l_val=.false., lone_keyword_l_val=.true.)
1707 CALL keyword_create(keyword, __location__, name=
"WRITE_PSEUDO", &
1708 description=
"Controls whether the [Pseudo] block is written to the MOLDEN file.", &
1709 usage=
"WRITE_PSEUDO T", &
1710 default_l_val=.false., lone_keyword_l_val=.true.)
1714 description=
"Controls whether ghost atoms are marked in the [Atoms] block by "// &
1715 "setting their atomic number to zero.", &
1716 usage=
"MARK_GHOST T", &
1717 default_l_val=.false., lone_keyword_l_val=.true.)
1721 description=
"Specifies the number of significant digits retained. 3 is OK for visualization.", &
1722 usage=
"NDIGITS {int}", &
1727 description=
"Representation of Gaussian-type orbitals", &
1729 enum_c_vals=
s2a(
"CARTESIAN",
"SPHERICAL"), &
1731 "Cartesian Gaussian orbitals. Use with caution", &
1732 "Spherical Gaussian orbitals. Incompatible with VMD"), &
1739 NULLIFY (sub_print_key)
1741 description=
"Controls the printing of the IAO basis "// &
1742 "as *.cube files.", &
1746 description=
"The stride (X,Y,Z) used to write the cube file "// &
1747 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1748 " 1 number valid for all components.", &
1749 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1753 description=
"append the cube files when they already exist", &
1754 default_l_val=.false., lone_keyword_l_val=.true.)
1758 description=
"Indices of the atoms to be included in basis CUBE file printing. ", &
1759 usage=
"ATOM_LIST {integer} {integer} .. {integer} ", &
1760 n_var=-1, type_of_var=
integer_t, repeats=.true.)
1766 NULLIFY (sub_print_key)
1768 description=
"Calculates single center expansion of IAOs ", &
1772 description=
"Maximum l quantum number used in the expansion.", &
1773 usage=
"LMAX 2", n_var=1, default_i_val=3, type_of_var=
integer_t)
1777 description=
"Max number of basis functions used in the expansion."// &
1778 " Default is determined by the orbital basis set.", &
1779 usage=
"NBAS 10", n_var=1, default_i_val=-1, type_of_var=
integer_t)
1783 description=
"Append the OCE basis files when it already exists", &
1784 default_l_val=.false., lone_keyword_l_val=.true.)
1790 NULLIFY (sub_print_key)
1792 description=
"Calculate intrinsic bond orbitals using "// &
1793 "localized MOs in IAO basis.", &
1797 CALL keyword_create(keyword, __location__, name=
"LOCALIZATION_OPERATOR", &
1798 description=
"Operator to be optimized for orbital localization", &
1799 enum_c_vals=
s2a(
"PIPEK_MEZEY",
"PIPEK_MEZEY_4",
"L1NORM"), &
1801 enum_desc=
s2a(
"Use Pipek-Mezey operator (order 2)", &
1802 "Use Pipek-Mezey operator (order 4)", &
1807 CALL keyword_create(keyword, __location__, name=
"ENERGY_LOCALIZATION_FUNCTION", &
1808 description=
"Function for energy localization: f(e_i), e_i orbital energy", &
1809 enum_c_vals=
s2a(
"NONE",
"ENERGY",
"OCCUPATION"), &
1811 enum_desc=
s2a(
"Don't use energy localization.", &
1812 "Use orbital energies for localization.", &
1813 "Use occupation numbers for localization."), &
1817 CALL keyword_create(keyword, __location__, name=
"ENERGY_LOCALIZATION_WEIGHT", &
1818 description=
"Weight given to energy localization, using f(e_i) function", &
1819 usage=
"ENERGY_LOCALIZATION_WEIGHT 0.1", n_var=1, &
1820 default_r_val=0.0_dp, type_of_var=
real_t)
1825 NULLIFY (subsection)
1827 description=
"Calculation and printing of centers and spreads "// &
1828 "of localized orbitals.", &
1831 CALL keyword_create(keyword, __location__, name=
"POSITION_OPERATOR_BERRY", &
1832 description=
"Use Berry phase position operator.", &
1833 usage=
"POSITION_OPERATOR_BERRY T", n_var=1, &
1834 default_l_val=.true., lone_keyword_l_val=.true.)
1840 NULLIFY (subsection)
1842 description=
"Write the IBO orbitals in Molden file format, for visualisation.", &
1845 description=
"Unit for coordinates and cell in the MOLDEN file.", &
1846 usage=
"UNIT ANGSTROM", &
1847 enum_c_vals=
s2a(
"BOHR",
"ANGSTROM"), &
1848 enum_desc=
s2a(
"Write in Bohr (AU)",
"Write in Angstrom"), &
1849 enum_i_vals=[1, 2], &
1854 description=
"Controls whether the [Cell] block is written to the MOLDEN file.", &
1855 usage=
"WRITE_CELL T", &
1856 default_l_val=.false., lone_keyword_l_val=.true.)
1859 CALL keyword_create(keyword, __location__, name=
"WRITE_PSEUDO", &
1860 description=
"Controls whether the [Pseudo] block is written to the MOLDEN file.", &
1861 usage=
"WRITE_PSEUDO T", &
1862 default_l_val=.false., lone_keyword_l_val=.true.)
1866 description=
"Controls whether ghost atoms are marked in the [Atoms] block by "// &
1867 "setting their atomic number to zero.", &
1868 usage=
"MARK_GHOST T", &
1869 default_l_val=.false., lone_keyword_l_val=.true.)
1873 description=
"Specifies the number of significant digits retained. 3 is OK for visualization.", &
1874 usage=
"NDIGITS {int}", &
1879 description=
"Representation of Gaussian-type orbitals", &
1881 enum_c_vals=
s2a(
"CARTESIAN",
"SPHERICAL"), &
1883 "Cartesian Gaussian orbitals. Use with caution", &
1884 "Spherical Gaussian orbitals. Incompatible with VMD"), &
1891 NULLIFY (subsection)
1893 description=
"Controls the printing of the IBO orbitals "// &
1894 "as *.cube files.", &
1898 description=
"The stride (X,Y,Z) used to write the cube file "// &
1899 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1900 " 1 number valid for all components.", &
1901 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1905 description=
"append the cube files when they already exist", &
1906 default_l_val=.false., lone_keyword_l_val=.true.)
1910 description=
"Indices of the orbitals to be included in IBO CUBE file printing. ", &
1911 usage=
"STATE_LIST {integer} {integer} .. {integer} ", &
1912 n_var=-1, type_of_var=
integer_t, repeats=.true.)
1921 NULLIFY (sub_print_key)
1923 description=
"Controls the printout required for ROSE.", &
1926 description=
"Specify the number of digits used to print the MO information.", &
1939 description=
"Controls the printing of the DOS from the density matrix. "// &
1940 "This allows the calculation of the DOS even in density matrix based "// &
1941 "REAL_TIME_PROPAGATION and LS_SCF. "// &
1942 "However, it requires a cubically scaling diagonalization of the Hamiltonian. "// &
1943 "Hartree-Fock NYI, values will be wrong. "// &
1944 "Careful, the orbitals in rtp/emd are not actually eigenstates of the Hamiltonian. "// &
1945 "Assumes absence of spin polarization (so far).", &
1947 each_iter_names=
s2a(
"MD"), each_iter_values=[100], &
1950 description=
"The number of energy windows.", &
1951 usage=
"N_WINDOWS 200", &
1956 description=
"Filtering threshold for sparse matrix operations.", &
1957 usage=
"EPS_FILTER 1.0E-6", &
1958 default_r_val=1.0e-14_dp)
1961 CALL keyword_create(keyword, __location__, name=
"RESTRICT_RANGE", &
1962 description=
"Restricts the energy windows to states close to the fermi level", &
1963 usage=
"RESTRICT_RANGE .TRUE.", &
1964 default_l_val=.false., lone_keyword_l_val=.true.)
1968 description=
"If the RESTRICT_RANGE keyword is set, then all energy widnows will"// &
1969 " be placed in an interval from from the fermi level minus to the fermi level plus this keyword", &
1971 default_r_val=1.0_dp)
1975 description=
"Print the energy windows to cube files", &
1976 usage=
"PRINT_CUBES .TRUE.", &
1977 default_l_val=.false., lone_keyword_l_val=.true.)
1981 description=
"The stride (X,Y,Z) used to write the energy windows cube files (if enabled) "// &
1982 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1983 " 1 number valid for all components.", &
1984 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1992 description=
"Write the KS matrix in CSR format into a file.", &
1995 description=
"Threshold on the absolute value of the elements to be printed out. "// &
1996 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
1997 "if the block contains at least one non-zero element.", &
1998 usage=
"THRESHOLD {real}", &
2000 default_r_val=0.0_dp)
2003 CALL keyword_create(keyword, __location__, name=
"Upper_triangular", &
2004 description=
"Print only the upper triangular part of the matrix. ", &
2005 usage=
"UPPER_TRIANGULAR {logical}", &
2007 default_l_val=.false., &
2008 lone_keyword_l_val=.true.)
2012 description=
"Whether or not to generate the file in a binary format. ", &
2013 usage=
"BINARY {logical}", &
2015 default_l_val=.false., &
2016 lone_keyword_l_val=.true.)
2020 description=
"Print the KS matrix in real-space instead of k-space.. ", &
2021 usage=
"REAL_SPACE {logical}", &
2023 default_l_val=.false., &
2024 lone_keyword_l_val=.true.)
2032 description=
"Write the overlap matrix in CSR format into a file.", &
2035 description=
"Threshold on the absolute value of the elements to be printed out. "// &
2036 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
2037 "if the block contains at least one non-zero element.", &
2038 usage=
"THRESHOLD {real}", &
2040 default_r_val=0.0_dp)
2043 CALL keyword_create(keyword, __location__, name=
"Upper_triangular", &
2044 description=
"Print only the upper triangular part of the matrix. ", &
2045 usage=
"UPPER_TRIANGULAR {logical}", &
2047 default_l_val=.false., &
2048 lone_keyword_l_val=.true.)
2052 description=
"Whether or not to generate the file in a binary format. ", &
2053 usage=
"BINARY {logical}", &
2055 default_l_val=.false., &
2056 lone_keyword_l_val=.true.)
2060 description=
"Print the overlap matrix in real-space instead of k-space.. ", &
2061 usage=
"REAL_SPACE {logical}", &
2063 default_l_val=.false., &
2064 lone_keyword_l_val=.true.)
2072 description=
"Write the core Hamiltonian matrix in CSR format into a file.", &
2075 description=
"Threshold on the absolute value of the elements to be printed out. "// &
2076 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
2077 "if the block contains at least one non-zero element.", &
2078 usage=
"THRESHOLD {real}", &
2080 default_r_val=0.0_dp)
2083 CALL keyword_create(keyword, __location__, name=
"Upper_triangular", &
2084 description=
"Print only the upper triangular part of the matrix. ", &
2085 usage=
"UPPER_TRIANGULAR {logical}", &
2087 default_l_val=.false., &
2088 lone_keyword_l_val=.true.)
2092 description=
"Whether or not to generate the file in a binary format. ", &
2093 usage=
"BINARY {logical}", &
2095 default_l_val=.false., &
2096 lone_keyword_l_val=.true.)
2100 description=
"Print the core Hamiltonian matrix in real-space instead of k-space.. ", &
2101 usage=
"REAL_SPACE {logical}", &
2103 default_l_val=.false., &
2104 lone_keyword_l_val=.true.)
2112 description=
"Write the density matrix in CSR format into a file.", &
2115 description=
"Threshold on the absolute value of the elements to be printed out. "// &
2116 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
2117 "if the block contains at least one non-zero element.", &
2118 usage=
"THRESHOLD {real}", &
2120 default_r_val=0.0_dp)
2123 CALL keyword_create(keyword, __location__, name=
"Upper_triangular", &
2124 description=
"Print only the upper triangular part of the matrix. ", &
2125 usage=
"UPPER_TRIANGULAR {logical}", &
2127 default_l_val=.false., &
2128 lone_keyword_l_val=.true.)
2132 description=
"Whether or not to generate the file in a binary format. ", &
2133 usage=
"BINARY {logical}", &
2135 default_l_val=.false., &
2136 lone_keyword_l_val=.true.)
2140 description=
"Print the density matrix in real-space instead of k-space.. ", &
2141 usage=
"REAL_SPACE {logical}", &
2143 default_l_val=.false., &
2144 lone_keyword_l_val=.true.)
2152 description=
"Writes an (upper-triangular) adjacency matrix indicating the "// &
2153 "interaction between atoms (according to overlapping basis functions). The "// &
2154 "columns are: iatom, jatom, ikind, jkind; where iatom and jatom are the atom "// &
2155 "indices (based on the coordinate file), ikind and jkind are the atomic kinds "// &
2156 "(indeces as shown in the ATOMIC KIND INFORMATION section of a CP2K output). ", &
2163 print_key, __location__, name=
"XRAY_DIFFRACTION_SPECTRUM", &
2164 description=
"Calculate and print the coherent X-ray "// &
2165 "diffraction spectrum", &
2170 keyword, __location__, &
2172 variants=[
"Q_MAXIMUM"], &
2173 description=
"Maximum Q value calculated for the spectrum", &
2174 usage=
"Q_MAX {real}", &
2179 unit_str=
"angstrom^-1"), &
2180 unit_str=
"angstrom^-1")
2187 description=
"Calculate and print the electric field gradients "// &
2188 "at atomic positions", &
2190 filename=
"__STD_OUT__")
2193 name=
"INTERPOLATION", &
2194 description=
"Use interpolation method from real space grid", &
2195 usage=
"INTERPOLATION {logical}", &
2198 default_l_val=.false., lone_keyword_l_val=.true.)
2203 name=
"GSPACE_SMOOTHING", &
2204 description=
"Use a G-space smoothing function", &
2205 usage=
"GSPACE_SMOOTHING cutoff {real}, width {real}", &
2207 n_var=2, default_r_vals=[-1._dp, -1._dp], &
2214 description=
"Print additional debug output", &
2215 usage=
"DEBUG {logical}", &
2218 default_l_val=.false., lone_keyword_l_val=.true.)
2230 description=
"Print the two quantities needed in the basis molopt generation:"// &
2231 " total energy and condition number of the overlap matrix (S matrix)", &
2233 filename=
"__STD_OUT__")
2238 description=
"Calculate and print the EPR hyperfine coupling tensor"// &
2239 " at atomic positions", &
2241 filename=
"__STD_OUT__")
2244 name=
"INTERACTION_RADIUS", &
2245 description=
"Radius of interaction for EPR hyperfine tensor calculation", &
2246 usage=
"INTERACTION_RADIUS radius {real}", &
2248 n_var=1, default_r_val=10._dp, &
2257 description=
"Optimize the exponents of the LRI basis set", &
2259 filename=
"OPTIMIZED_LRI_BASIS")
2264 print_key, __location__, name=
"PLUS_U", &
2265 description=
"Controls the printing for the DFT+U methods", &
2267 filename=
"__STD_OUT__", &
2268 each_iter_names=
s2a(
"QS_SCF"), &
2269 each_iter_values=[0], &
2275 print_key, __location__, name=
"CHARGEMOL", &
2276 description=
"Write .wfx input file for Chargemol", &
2278 filename=
"CHARGEMOL", &
2280 CALL keyword_create(keyword, __location__, name=
"BACKUP_COPIES", &
2281 description=
"Specifies the maximum number of backup copies.", &
2282 usage=
"BACKUP_COPIES {int}", &
2287 description=
"Write information about cell periodicity.", &
2288 usage=
"PERIODIC {LOGICAL}", &
2289 default_l_val=.false., lone_keyword_l_val=.true.)
2296 print_key, __location__, name=
"SCCS", &
2297 description=
"Controls the printing for the SCCS models", &
2299 filename=
"__STD_OUT__", &
2300 each_iter_names=
s2a(
"QS_SCF"), &
2301 each_iter_values=[0], &
2304 NULLIFY (sub_print_key)
2307 sub_print_key, __location__, name=
"DENSITY_GRADIENT", &
2308 description=
"Controls the printing of the cube files with "// &
2309 "the norm of the density gradient |∇ρ| "// &
2310 "used by the SCCS model.", &
2313 each_iter_names=
s2a(
"QS_SCF"), &
2314 each_iter_values=[0])
2316 description=
"The stride (X,Y,Z) used to write the cube file "// &
2317 "(larger values result in smaller cube files). You can provide 3 "// &
2318 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2320 default_i_vals=[2, 2, 2], &
2326 description=
"Append the cube files when they already exist", &
2327 default_l_val=.false., &
2328 lone_keyword_l_val=.true., &
2336 sub_print_key, __location__, name=
"DIELECTRIC_FUNCTION", &
2337 description=
"Controls the printing of the cube files with "// &
2338 "the dielectric function used by the SCCS model. "// &
2339 "This function determines the cavity formed by a solute in "// &
2340 "a solvent and thus it can be used for the visualisaton of the cavity.", &
2343 each_iter_names=
s2a(
"QS_SCF"), &
2344 each_iter_values=[0], &
2347 description=
"The stride (X,Y,Z) used to write the cube file "// &
2348 "(larger values result in smaller cube files). You can provide 3 "// &
2349 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2351 default_i_vals=[2, 2, 2], &
2357 description=
"Append the cube files when they already exist", &
2358 default_l_val=.false., &
2359 lone_keyword_l_val=.true., &
2367 sub_print_key, __location__, name=
"TOTAL_CHARGE_DENSITY", &
2368 description=
"Controls the printing of the cube files with the "// &
2369 "total charge density $\rho^\text{tot}$ used by the SCCS model.", &
2372 each_iter_names=
s2a(
"QS_SCF"), &
2373 each_iter_values=[0], &
2376 description=
"The stride (X,Y,Z) used to write the cube file "// &
2377 "(larger values result in smaller cube files). You can provide 3 "// &
2378 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2380 default_i_vals=[2, 2, 2], &
2386 description=
"Append the cube files when they already exist", &
2387 default_l_val=.false., &
2388 lone_keyword_l_val=.true., &
2396 sub_print_key, __location__, name=
"POLARISATION_CHARGE_DENSITY", &
2397 description=
"Controls the printing of the cube files with the "// &
2398 "polarisation charge density $\rho^\text{pol}$ used by the SCCS model with the "// &
2399 "total charge density $\rho^\text{tot} = \rho^\text{sol} + \rho^\text{pol}", &
2402 each_iter_names=
s2a(
"QS_SCF"), &
2403 each_iter_values=[0], &
2406 description=
"The stride (X,Y,Z) used to write the cube file "// &
2407 "(larger values result in smaller cube files). You can provide 3 "// &
2408 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2410 default_i_vals=[2, 2, 2], &
2416 description=
"Append the cube files when they already exist", &
2417 default_l_val=.false., &
2418 lone_keyword_l_val=.true., &
2426 sub_print_key, __location__, name=
"POLARISATION_POTENTIAL", &
2427 description=
"Controls the printing of the cube files with the "// &
2428 "polarisation potential $\phi^\text{pol}$ used by the SCCS model with the "// &
2429 "total potential $\phi^\text{tot} = \phi^\text{sol} + \phi^\text{pol}$", &
2432 each_iter_names=
s2a(
"QS_SCF"), &
2433 each_iter_values=[0], &
2436 description=
"The stride (X,Y,Z) used to write the cube file "// &
2437 "(larger values result in smaller cube files). You can provide 3 "// &
2438 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2440 default_i_vals=[2, 2, 2], &
2446 description=
"Append the cube files when they already exist", &
2447 default_l_val=.false., &
2448 lone_keyword_l_val=.true., &
2465 SUBROUTINE create_bandstructure_section(section)
2471 cpassert(.NOT.
ASSOCIATED(section))
2472 CALL section_create(section, __location__, name=
"BAND_STRUCTURE", &
2473 description=
"Specifies the k-points used in band structure calculation.", &
2474 n_keywords=0, n_subsections=0, repeats=.false.)
2478 description=
"File name used for band structure", &
2479 usage=
"FILE_NAME <filename>", default_c_val=
"", &
2480 type_of_var=
char_t, n_var=1)
2485 variants=[
"ADDED_BANDS"], &
2486 description=
"Number of MOs/Bands added to the Band Structure calculation.", &
2491 NULLIFY (subsection)
2496 END SUBROUTINE create_bandstructure_section
2498 SUBROUTINE add_generic_openpmd_arguments(print_key)
2504 CALL keyword_create(keyword, __location__, name=
"OPENPMD_EXTENSION", &
2505 description=
"Filename extension for openPMD files, including the dot and "// &
2506 "(for optionally activating file encoding) a file expansion pattern.", &
2513 description=
"Inline runtime config for openPMD output. Note that inline "// &
2514 "specifications are subject to restrictions imposed by the input "// &
2515 "file format, making this option useful only for very simple use cases. "// &
2516 "Refer to OPENPMD_CFG_FILE for anything else.", &
2517 default_c_val=
"{}", type_of_var=
char_t)
2521 CALL keyword_create(keyword, __location__, name=
"OPENPMD_CFG_FILE", &
2522 description=
"Runtime config file for openPMD output. This parameter takes precedence over OPENPMD_CFG.", default_c_val=
"", &
2527 END SUBROUTINE add_generic_openpmd_arguments
2533 SUBROUTINE create_mo_section( &
2534 print_key, section_name, description, stride_default, stride_usage, &
2535 print_level, do_write_keyname)
2538 CHARACTER(len=*),
INTENT(IN) :: section_name, description, stride_usage, do_write_keyname
2539 INTEGER,
DIMENSION(3),
INTENT(IN) :: stride_default
2540 INTEGER,
INTENT(IN) :: print_level
2547 description=
"Controls the printing of the molecular orbitals (MOs) as " &
2548 //trim(adjustl(description))// &
2550 " It can be used during a Real Time calculation to print the MOs."// &
2551 " In this case, the density corresponding to the time dependent MO is printed"// &
2552 " instead of the wave-function.", &
2553 print_level=print_level, filename=
"")
2556 description=
"The stride (X,Y,Z) used to write the "//trim(adjustl(description))//
" file "// &
2557 "(larger values result in smaller "// &
2558 trim(adjustl(description))// &
2559 " files). You can provide 3 numbers (for X,Y,Z) or"// &
2560 " 1 number valid for all components.", &
2561 usage=stride_usage, n_var=-1, default_i_vals=stride_default, type_of_var=
integer_t)
2565 CALL keyword_create(keyword, __location__, name=do_write_keyname, &
2566 description=
"If the MO " &
2567 //trim(adjustl(description)) &
2568 //
" file should be written. If false, the eigenvalues are still computed."// &
2569 " Can also be useful in combination with STM calculations", &
2570 default_l_val=.true., lone_keyword_l_val=.true.)
2575 description=
"If the printkey is activated controls the number of lumos"// &
2576 " that are printed and dumped as "//trim(adjustl(description))//
" (-1=all)", &
2582 keyword, __location__, name=
"nhomo", &
2583 description=
"If the printkey is activated controls the number of homos that dumped as "// &
2584 trim(adjustl(description))// &
2586 " eigenvalues are always all dumped", &
2592 keyword, __location__, name=
"homo_list", &
2593 description=
"If the printkey is activated controls the index of homos dumped as openPMD,"// &
2594 " eigenvalues are always all dumped. It overrides nhomo.", &
2595 usage=
"HOMO_LIST {integer} {integer} .. {integer} ", type_of_var=
integer_t, &
2596 n_var=-1, repeats=.true.)
2600 END SUBROUTINE create_mo_section
2602 SUBROUTINE create_e_density_section( &
2603 print_key, section_name, description, stride_default, &
2604 stride_usage, print_level)
2607 CHARACTER(len=*),
INTENT(IN) :: section_name, description, stride_usage
2608 INTEGER,
DIMENSION(3),
INTENT(IN) :: stride_default
2609 INTEGER,
INTENT(IN) :: print_level
2616 description=
"Controls the printing of "//trim(adjustl(description))//
" files with "// &
2617 "the electronic density and, for LSD calculations, the spin density.", &
2618 print_level=print_level, filename=
"")
2620 description=
"The stride (X,Y,Z) used to write the "//trim(adjustl(description))//
" file "// &
2621 "(larger values result in smaller "// &
2622 trim(adjustl(description))// &
2623 " files). You can provide 3 numbers (for X,Y,Z) or"// &
2624 " 1 number valid for all components.", &
2625 usage=stride_usage, n_var=-1, default_i_vals=stride_default, type_of_var=
integer_t)
2629 CALL keyword_create(keyword, __location__, name=
"DENSITY_INCLUDE", &
2630 description=
"Which parts of the density to include. In GAPW the electronic density "// &
2631 "is divided into a hard and a soft component, and the default (TOTAL_HARD_APPROX) "// &
2632 "is to approximate the hard density as a spherical gaussian and to print the smooth "// &
2633 "density accurately. This avoids potential artefacts originating from the hard density. "// &
2634 "If the TOTAL_DENSITY keyword is used the hard density will be computed more accurately "// &
2635 "but may introduce non-physical features. The SOFT_DENSITY keyword will lead to only the "// &
2636 "soft density being printed. In GPW these options have no effect and the cube file will "// &
2637 "only contain the valence electron density.", &
2638 usage=
"DENSITY_INCLUDE TOTAL_HARD_APPROX", &
2639 enum_c_vals=
s2a(
"TOTAL_HARD_APPROX",
"TOTAL_DENSITY",
"SOFT_DENSITY"), &
2640 enum_desc=
s2a(
"Print (hard+soft) density where the hard components shape is approximated", &
2641 "Print (hard+soft) density. Only has an effect "// &
2642 "if PAW atoms are present. NOTE: The total "// &
2643 "in real space might exhibit unphysical features "// &
2644 "like spikes due to the finite and thus "// &
2645 "truncated g vector", &
2646 "Print only the soft density"), &
2654 END SUBROUTINE create_e_density_section
2665 SUBROUTINE create_elf_print_section( &
2666 print_key, section_name, description, stride_default, stride_usage, print_level, filename)
2669 CHARACTER(len=*),
INTENT(IN) :: section_name, description, stride_usage, filename
2670 INTEGER,
DIMENSION(3),
INTENT(IN) :: stride_default
2671 INTEGER,
INTENT(IN) :: print_level
2677 description=
"Controls printing of "//trim(adjustl(description))// &
2678 " files with the electron localization function (ELF). "// &
2679 "Note that the value of ELF is defined between 0 and 1: "// &
2680 "Pauli kinetic energy density normalized by the kinetic energy density "// &
2681 "of a uniform el. gas of same density.", print_level=print_level, filename=filename)
2684 description=
"The stride (X,Y,Z) used to write the file (larger values result in smaller files). "// &
2685 "You can provide 3 numbers (for X,Y,Z) or 1 number valid for all components.", &
2686 usage=stride_usage, n_var=-1, default_i_vals=stride_default, type_of_var=
integer_t)
2690 CALL keyword_create(keyword, __location__, name=
"density_cutoff", &
2691 description=
" ", usage=
"density_cutoff 0.0001", repeats=.false., n_var=1, &
2692 type_of_var=
real_t, default_r_val=1.0e-10_dp)
2695 END SUBROUTINE create_elf_print_section
2705 LOGICAL,
INTENT(IN) :: xas_mode
2708 TYPE(
section_type),
POINTER :: broaden_subsection, pdos_section, subsection
2710 NULLIFY (broaden_subsection, pdos_section, subsection)
2714 description=
"Append the DOS/PDOS obtained at different iterations to the output file. "// &
2715 "By default the file is overwritten", &
2716 usage=
"APPEND", default_l_val=.false., lone_keyword_l_val=.true.)
2721 description=
"Specify the number of digits used to print DOS/PDOS values.", &
2727 description=
"Energy spacing of the DOS/PDOS output grid.", &
2728 usage=
"DELTA_E 0.0005", type_of_var=
real_t, default_r_val=0.001_dp)
2733 description=
"Number of unoccupied orbitals to include in the DOS/PDOS (-1=all). "// &
2734 "For OT calculations, the requested virtual orbitals are generated after SCF using the "// &
2735 "OT eigensolver. For diagonalization calculations, SCF%ADDED_MOS is increased if needed "// &
2736 "to make the requested unoccupied orbitals available.", &
2737 usage=
"NLUMO integer", default_i_val=0)
2741 IF (.NOT. xas_mode)
THEN
2743 description=
"Controls the printing of kind-resolved projected DOS.", &
2744 n_keywords=1, n_subsections=0)
2746 pdos_section => print_key
2749 description=
"Print out PDOS distinguishing all angular momentum components.", &
2750 usage=
"COMPONENTS", default_l_val=.false., lone_keyword_l_val=.true.)
2753 IF (.NOT. xas_mode)
THEN
2759 description=
"Controls the printing of broadened DOS/PDOS curves.", &
2760 n_keywords=2, n_subsections=1, repeats=.false.)
2762 description=
"Energy unit used for the printed DOS/PDOS energy axis. "// &
2763 "Intensities are converted consistently to the selected energy unit.", &
2764 usage=
"ENERGY_UNIT HARTREE", type_of_var=
enum_t, &
2765 enum_c_vals=
s2a(
"HARTREE",
"EV"), &
2766 enum_i_vals=[1, 2], &
2767 enum_desc=
s2a(
"Print energies in Hartree (a.u.).", &
2768 "Print energies in electronvolt."), &
2773 description=
"Reference energy used for the printed DOS/PDOS energy axis. "// &
2774 "With AUTO, the Fermi energy is used if smearing is enabled or fractional "// &
2775 "occupations are found; otherwise the highest occupied crystal orbital is used.", &
2776 usage=
"ENERGY_ZERO AUTO", type_of_var=
enum_t, &
2777 enum_c_vals=
s2a(
"AUTO",
"ABSOLUTE",
"FERMI",
"HOCO"), &
2778 enum_i_vals=[1, 2, 3, 4], &
2779 enum_desc=
s2a(
"Choose FERMI for smeared or fractionally occupied systems, otherwise HOCO.", &
2780 "Print absolute orbital energies.", &
2781 "Shift orbital energies by the Fermi energy.", &
2782 "Shift orbital energies by the highest occupied crystal orbital."), &
2787 CALL section_create(broaden_subsection, __location__, name=
"BROADEN", &
2788 description=
"Controls the line shape used for broadened DOS/PDOS curves.", &
2789 n_keywords=3, n_subsections=0, repeats=.false.)
2791 description=
"Type of broadening function used to produce the DOS/PDOS curve.", &
2792 usage=
"TYPE GAUSSIAN", type_of_var=
enum_t, &
2793 enum_c_vals=
s2a(
"GAUSSIAN",
"LORENTZIAN",
"PSEUDO_VOIGT"), &
2794 enum_i_vals=[1, 2, 3], &
2795 enum_desc=
s2a(
"Use a Gaussian broadening function.", &
2796 "Use a Lorentzian broadening function.", &
2797 "Use a pseudo-Voigt mixture of Lorentzian and Gaussian functions."), &
2802 description=
"Full width at half maximum (FWHM) of the DOS/PDOS broadening function.", &
2803 usage=
"WIDTH [eV] 0.1", type_of_var=
real_t, &
2804 default_r_val=
cp_unit_to_cp2k(
value=0.1_dp, unit_str=
"eV"), unit_str=
"eV")
2807 CALL keyword_create(keyword, __location__, name=
"VOIGT_MIXING", &
2808 description=
"Lorentzian fraction of the pseudo-Voigt broadening function.", &
2809 usage=
"VOIGT_MIXING 0.5", type_of_var=
real_t, default_r_val=0.5_dp)
2817 CALL keyword_create(keyword, __location__, name=
"OUT_EACH_STATE", &
2818 variants=[
"OUT_EACH_MO"], &
2819 description=
"Output on the status of the calculation every OUT_EACH_MO states. If -1 no output", &
2820 usage=
"OUT_EACH_STATE integer", default_i_val=-1)
2825 description=
"Controls the printing of local PDOS, projected on subsets"// &
2826 " of atoms given through lists", &
2827 n_keywords=4, n_subsections=0, repeats=.true.)
2829 description=
"Print out PDOS distinguishing all angular momentum components.", &
2830 usage=
"COMPONENTS", default_l_val=.false., lone_keyword_l_val=.true.)
2834 description=
"Specifies a list of indexes of atoms where to project the DOS", &
2835 usage=
"LIST {integer} {integer} .. {integer}", type_of_var=
integer_t, &
2836 n_var=-1, repeats=.true.)
2843 description=
"Controls the printing of local PDOS, projected on 3D volume in real space, "// &
2844 "the volume is defined in terms of position with respect to atoms in the lists", &
2845 n_keywords=4, n_subsections=0, repeats=.true.)
2847 description=
"Specifies a list of indexes of atoms used to define the real space volume", &
2848 usage=
"LIST {integer} {integer} .. {integer}", type_of_var=
integer_t, &
2849 n_var=-1, repeats=.true.)
2853 description=
"range of positions in Cartesian direction x: all grid points within "// &
2854 "this range from at least one atom of the list are considered", &
2855 usage=
"XRANGE -10.0 10.0", unit_str=
"angstrom", n_var=2, type_of_var=
real_t)
2859 description=
"range of positions in Cartesian direction y: all grid points within "// &
2860 "this range from at least one atom of the list are considered", &
2861 usage=
"YRANGE -10.0 10.0", unit_str=
"angstrom", n_var=2, type_of_var=
real_t)
2865 description=
"range of positions in Cartesian direction z: all grid points within "// &
2866 "this range from at least one atom of the list are considered", &
2867 usage=
"ZRANGE -10.0 10.0", unit_str=
"angstrom", n_var=2, type_of_var=
real_t)
2871 description=
"Only project states with the energy values in the given interval. "// &
2872 "Default is all states.", &
2873 usage=
"ERANGE -1.0 1.0", unit_str=
"hartree", n_var=2, type_of_var=
real_t)
2885 SUBROUTINE create_wannier_section(print_key)
2894 description=
"Interface to Wannier90 code. (EXPERIMENTAL)", &
2898 description=
"The seedname for the Wannier90 calculation (body of filenames).", &
2899 usage=
"SEED_NAME filename", default_c_val=
"wannier90", &
2900 n_var=1, type_of_var=
char_t)
2905 description=
"The dimensions of the Monkhorst-Pack k-point grid. ", &
2906 usage=
"MP_GRID 6 6 6", n_var=-1, default_i_vals=[10, 10, 10], type_of_var=
integer_t)
2910 CALL keyword_create(keyword, __location__, name=
"KPOINTS_SOURCE", &
2911 description=
"Select the k-point source for the Wannier90 export. MP_GRID keeps "// &
2912 "the historical behavior and builds a full grid from WANNIER90%MP_GRID. SCF uses "// &
2913 "the full k-point mesh from DFT%KPOINTS for Monkhorst-Pack, MacDonald, Gamma, or "// &
2914 "explicit GENERAL k-points. If the SCF calculation uses K290 or SPGLIB symmetry "// &
2915 "reduction, the corresponding unreduced mesh is used for Wannier90 because "// &
2916 "Wannier90 requires a complete mesh.", &
2917 usage=
"KPOINTS_SOURCE MP_GRID", type_of_var=
enum_t, &
2918 enum_c_vals=
s2a(
"MP_GRID",
"SCF"), &
2919 enum_i_vals=[0, 1], &
2920 enum_desc=
s2a(
"Build the Wannier90 k-point mesh from WANNIER90%MP_GRID.", &
2921 "Use the full k-point mesh from DFT%KPOINTS."), &
2926 CALL keyword_create(keyword, __location__, name=
"REUSE_SCF_MOS", &
2927 description=
"Try to reuse the SCF k-point MO coefficients when KPOINTS_SOURCE SCF "// &
2928 "is active. CP2K can directly reuse full SCF meshes, time-reversal partners, "// &
2929 "non-degenerate atom/AO symmetry images, and atom/AO symmetry images whose "// &
2930 "degenerate band subspaces are fully contained in the exported Wannier90 band "// &
2931 "window. If the Wannier90 band window cuts through a degenerate subspace, CP2K "// &
2932 "falls back to the historical full-mesh diagonalization.", &
2933 usage=
"REUSE_SCF_MOS T", default_l_val=.true.)
2937 CALL keyword_create(keyword, __location__, name=
"VALIDATE_REUSE_SCF_MOS", &
2938 description=
"When KPOINTS_SOURCE SCF and REUSE_SCF_MOS are active, first build a "// &
2939 "full-mesh diagonalization reference and validate the reconstructed SCF MO "// &
2940 "subspaces against it before writing Wannier90 files. This diagnostic option is "// &
2941 "expensive and intended for development of symmetry-reconstructed Wannier90 "// &
2943 usage=
"VALIDATE_REUSE_SCF_MOS T", default_l_val=.false.)
2947 CALL keyword_create(keyword, __location__, name=
"USE_BLOCH_PHASES", &
2948 description=
"Apply the CP2K Bloch-phase gauge to complete exported band subspaces "// &
2949 "and write an explicit identity .amn projection file for Wannier90. It is only "// &
2950 "valid when WANNIER_FUNCTIONS matches the number of exported bands; disentangled "// &
2951 "Wannier90 calculations still need explicit projections.", &
2952 usage=
"USE_BLOCH_PHASES T", default_l_val=.false.)
2957 variants=[
"ADDED_BANDS"], &
2958 description=
"Number of MOs/Bands added to the Band Structure calculation.", &
2963 CALL keyword_create(keyword, __location__, name=
"EXCLUDE_BANDS", &
2964 description=
"List of Bands excluded in the Wannier calculation.", &
2965 usage=
"EXCLUDE_BANDS b1 b2 ...", n_var=-1, repeats=.true., &
2970 CALL keyword_create(keyword, __location__, name=
"WANNIER_FUNCTIONS", &
2971 description=
"Number of Wannier functions to be calculated. ", &
2972 usage=
"WANNIER_FUNCTIONS 6", n_var=1, default_i_val=0, &
2977 END SUBROUTINE create_wannier_section
2983 SUBROUTINE create_stm_section(print_key)
2991 description=
"Controls the printing of cubes for the generation of STM images.", &
2994 description=
"The stride (X,Y,Z) used to write the cube file "// &
2995 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
2996 " 1 number valid for all components.", &
2997 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
3002 description=
"If the printkey is activated controls the number of additional lumos"// &
3003 " that are computed to be able to reproduce STM images obtained"// &
3004 " from positive bias (imaging unoccupied states)", &
3010 description=
"Bias energy for scanning tunneling microscopy (STM) image generation. "// &
3011 "Orbital densities are summed according to the bias energy. "// &
3012 "For negative values, states in the range ]EF+bias,EF] are summed, "// &
3013 "While positive values sum states in the range [EF,EF+bias[. "// &
3014 "If positive biases are used, sufficiently many unoccupied stated "// &
3015 "(see ADDED_MOS and NLUMO ) should be computed.", &
3016 n_var=-1, type_of_var=
real_t, default_r_vals=[0.0_dp], unit_str=
'eV')
3021 description=
"Tip orbital symmetry in Tersoff-Hamann approximation to compute STM images", &
3023 default_i_val=
orb_s, &
3024 usage=
"TH_TORB s dz2", &
3025 enum_c_vals=
s2a(
"S",
"PX",
"PY",
"PZ",
"DXY",
"DYZ",
"DZX",
"DX2",
"DY2",
"DZ2"), &
3026 enum_i_vals=[
orb_s,
orb_px,
orb_py,
orb_pz,
orb_dxy,
orb_dyz,
orb_dzx,
orb_dx2,
orb_dy2,
orb_dz2], &
3027 enum_desc=
s2a(
"s orbital",
"px orbital",
"py orbital",
"pz orbital", &
3028 "dxy orbital",
"dyz orbital",
"dzx orbital",
"x^2 orbital",
"y^2 orbital",
"z^2 orbital"))
3033 description=
"By default the reference energy is the Fermi energy. In order to compare"// &
3034 " with STS experiments, where specific energy ranges are addressed, here"// &
3035 " one can set a different reference energy."// &
3036 " The energy range is anyway controlled by the BIAS", &
3037 type_of_var=
real_t, default_r_val=0.0_dp, unit_str=
'eV')
3042 description=
"append the cube files when they already exist", &
3043 default_l_val=.false., lone_keyword_l_val=.true.)
3047 END SUBROUTINE create_stm_section
3053 SUBROUTINE create_wfn_mix_section(section)
3060 NULLIFY (subsection)
3063 cpassert(.NOT.
ASSOCIATED(section))
3066 description=
"A section that allows manipulation of the MO coeffs, "// &
3067 "e.g. for changing a ground state into an excited state. "// &
3068 "Starting from a copy of the original MOs, changes can be made "// &
3069 "by adding linear combinations of HOMO/LUMO of the original MOs to the result MOs. "// &
3070 "This method is called after an SCF optimization or before an RTP run if "// &
3071 "INITIAL_WFN=RESTART_WFN. Note that if called after an SCF optimization, a restart file "// &
3072 "with the mixed MOs is saved. This is not the case for an RTP with "// &
3073 "INITIAL_WFN=RESTART_WFN.", &
3074 n_keywords=1, n_subsections=0, repeats=.false.)
3076 CALL keyword_create(keyword, __location__, name=
"OVERWRITE_MOS", &
3077 description=
"If set to True, the active molecular orbitals in memory will be replaced by the mixed wfn "// &
3078 "at the end of the wfn mixing procedure. For instance, you can then use this new set of MOs to perform "// &
3079 "RTP or EMD directly. Note that in the case of an RTP run with INITIAL_WFN=RESTART_WFN, the OVERWRITE_MOS "// &
3080 "keyword is not used.", &
3081 default_l_val=.false., lone_keyword_l_val=.true.)
3086 description=
"Update a result MO with with a linear combination of original MOs."// &
3087 " This section can be repeated to build arbitrary linear combinations using repeatedly y=a*y+b*x. "// &
3088 "RESULT is (y), RESULT_SCALE is (a), ORIG is (x), ORIG_SCALE is (b)", &
3089 n_keywords=1, n_subsections=0, repeats=.true.)
3091 CALL keyword_create(keyword, __location__, name=
"RESULT_MO_INDEX", &
3092 description=
"Index of the MO (y) to be modified. Counting down in energy: "// &
3093 "set to 1 for the highest MO, to 3 for the highest MO-2.", &
3094 usage=
"RESULT_MO_INDEX 1", type_of_var=
integer_t, default_i_val=0)
3098 CALL keyword_create(keyword, __location__, name=
"RESULT_MARKED_STATE", &
3099 description=
"Specifies the MO according to "// &
3100 "the marks set in MOLECULAR_STATES. The value corresponds to the repetition "// &
3101 "of MARK_STATES in MOLECULAR_STATES", &
3102 usage=
"RESULT_MARKED_STATE 1", type_of_var=
integer_t, default_i_val=0)
3106 CALL keyword_create(keyword, __location__, name=
"REVERSE_MO_INDEX", &
3107 description=
"Reverses the index order of the OCCUPIED and EXTERNAL MOs. With this keyword "// &
3108 "ORIG_MO_INDEX/RESULT_MO_INDEX 1 point to the lowest energy MO (instead of the highest) "// &
3109 "and counts up in energy. The VIRTUAL MOs indexing is unchanged.", &
3110 default_l_val=.false., lone_keyword_l_val=.true.)
3114 CALL keyword_create(keyword, __location__, name=
"RESULT_SPIN_INDEX", &
3115 description=
"Spin of the MO (y) to be modified.", &
3116 enum_c_vals=
s2a(
"Alpha",
"Beta"), &
3117 enum_i_vals=[1, 2], &
3119 enum_desc=
s2a(
"Majority spin",
"Minority spin"))
3123 CALL keyword_create(keyword, __location__, name=
"RESULT_SCALE", &
3124 description=
"Scaling factor of the result variable (a).", &
3125 usage=
"RESULT_SCALE 0.0", type_of_var=
real_t)
3129 CALL keyword_create(keyword, __location__, name=
"ORIG_MO_INDEX", &
3130 description=
"Index of the original MO (x). "// &
3131 "If ORIG_TYPE is OCCUPIED, it counts down in energy: set to 1 to point to "// &
3132 "the highest MO and to 3 for the highest MO-2. "// &
3133 "If ORIG_TYPE is VIRTUAL, it counts up in energy: set to 1 to point to "// &
3134 "the lowest virtual MO and to 3 for the lowest MO+2. "// &
3135 "If ORIG_TYPE is EXTERNAL, it counts down in energy for the external "// &
3136 "set of MOs: set to 1 to point to the highest MO and to 3 for the highest MO-2. "// &
3137 "Do not set to zero or negative values.", &
3138 usage=
"ORIG_MO_INDEX 1", type_of_var=
integer_t, default_i_val=0)
3142 CALL keyword_create(keyword, __location__, name=
"ORIG_MARKED_STATE", &
3143 description=
"Specifies the MO according to "// &
3144 "the marks set in MOLECULAR_STATES. The value corresponds to the repetition "// &
3145 "of MARK_STATES in MOLECULAR_STATES", &
3146 usage=
"ORIG_MARKED_STATE 1", type_of_var=
integer_t, default_i_val=0)
3150 CALL keyword_create(keyword, __location__, name=
"ORIG_SPIN_INDEX", &
3151 description=
"Spin of the MO (x) to be modified.", &
3152 enum_c_vals=
s2a(
"Alpha",
"Beta"), &
3153 enum_i_vals=[1, 2], &
3155 enum_desc=
s2a(
"Majority spin",
"Minority spin"))
3160 description=
"Scaling factor of the original variable (b).", &
3161 usage=
"ORIG_SCALE 0.0", type_of_var=
real_t)
3166 description=
"Type of the original MO. Note that if ADDED_MOS was used in the "// &
3167 "SCF construction of the MO matrix, these extra MOs are also treated as OCCUPIED. ", &
3168 enum_c_vals=
s2a(
"OCCUPIED",
"VIRTUAL",
'EXTERNAL'), &
3169 usage=
"ORIG_TYPE OCCUPIED", &
3171 enum_desc=
s2a(
"The original MO is the result of the SCF procedure. This can also contain "// &
3172 "unoccupied MOs if the SCF%ADDED_MOS keyword was used.", &
3173 "The original MO is taken from the result of additional MOs calculated a "// &
3174 "posteriori of the SCF by request of the user. E.g. by specifying print%mo_cubes%nlumo. ", &
3175 "The orginal MO is from an external .wfn file. Use the keyword "// &
3176 "ORIG_EXT_FILE_NAME to define its name."), &
3181 CALL keyword_create(keyword, __location__, name=
"ORIG_EXT_FILE_NAME", &
3182 description=
"Name of the wavefunction file to read the original MO from. "// &
3183 "For instance, a restart wfn file from SCF calculation or an excited state from XAS_TDP calculation. "// &
3184 "If no file is specified, the run will crash. "// &
3185 "Currently, a RTP restart file (.rtpwfn) cannot be used as reference. "// &
3186 "Currently, this file SHALL have the basis set, number of MO and the same number of spin as the one "// &
3187 "from the SCF cycle.", &
3188 usage=
"ORIG_EXT_FILE_NAME <FILENAME>", &
3189 default_lc_val=
"EMPTY")
3196 END SUBROUTINE create_wfn_mix_section
3205 SUBROUTINE create_implicit_psolver_section(section)
3211 cpassert(.NOT.
ASSOCIATED(section))
3212 CALL section_create(section, __location__, name=
"IMPLICIT_PSOLVER", &
3213 description=
"Controls printing of cube files for data from the implicit "// &
3214 "(generalized) Poisson solver.", &
3216 n_keywords=0, n_subsections=3, repeats=.false.)
3218 NULLIFY (keyword, print_key)
3222 description=
"Controls the printing of a cube file with dielectric constant from "// &
3223 "the implicit (generalized) Poisson solver.", &
3227 description=
"The stride (X,Y,Z) used to write the cube file "// &
3228 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
3229 " 1 number valid for all components.", &
3230 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
3234 description=
"append the cube files when they already exist", &
3235 default_l_val=.false., lone_keyword_l_val=.true.)
3238 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
3239 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
3240 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
3249 print_key, __location__,
"DIRICHLET_BC_CUBE", &
3250 description=
"Controls the printing of cube files with unit step functions (constraints)"// &
3251 " representing Dirichlet-type (boundary) regions defined in the implicit (generalized) Poisson"// &
3252 " solver section. The regions remain unchanged throughout the calculations. If the Dirichlet"// &
3253 " regions are relatively large and/or the number of partitions is quite high, in order to save memory,"// &
3254 " generate the cube files in early steps and perform the rest of the calculations with this keyword"// &
3259 description=
"Print tiles that tessellate the Dirichlet regions into cube files. If TRUE, "// &
3260 "generates cube files as many as the total number of tiles.", &
3261 usage=
"TILE_CUBES <logical>", &
3262 default_l_val=.false., lone_keyword_l_val=.true.)
3266 description=
"The stride (X,Y,Z) used to write the cube file "// &
3267 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
3268 " 1 number valid for all components.", &
3269 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
3273 description=
"append the cube files when they already exist", &
3274 default_l_val=.false., lone_keyword_l_val=.true.)
3277 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
3278 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
3279 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
3288 description=
"Controls the printing of cube files with penalty charges induced to "// &
3289 "Dirichlet regions by Lagrange multipliers (implicit Poisson solver).", &
3293 description=
"The stride (X,Y,Z) used to write the cube file "// &
3294 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
3295 " 1 number valid for all components.", &
3296 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
3300 description=
"append the cube files when they already exist", &
3301 default_l_val=.false., lone_keyword_l_val=.true.)
3304 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
3305 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
3306 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
3313 END SUBROUTINE create_implicit_psolver_section
3326 cpassert(.NOT.
ASSOCIATED(section))
3327 CALL section_create(section, __location__, name=
"interpolator", &
3328 description=
"controls the interpolation for the G-space term", &
3329 n_keywords=5, n_subsections=0, repeats=.false.)
3331 NULLIFY (keyword, print_key)
3333 CALL keyword_create(keyword, __location__, name=
"aint_precond", &
3334 description=
"the approximate inverse to use to get the starting point"// &
3335 " for the linear solver of the spline3 methods", &
3336 usage=
"aint_precond copy", &
3338 enum_c_vals=
s2a(
"copy",
"spl3_nopbc_aint1",
"spl3_nopbc_precond1", &
3339 "spl3_nopbc_aint2",
"spl3_nopbc_precond2",
"spl3_nopbc_precond3"), &
3346 description=
"The preconditioner used"// &
3347 " for the linear solver of the spline3 methods", &
3348 usage=
"precond copy", &
3350 enum_c_vals=
s2a(
"copy",
"spl3_nopbc_aint1",
"spl3_nopbc_precond1", &
3351 "spl3_nopbc_aint2",
"spl3_nopbc_precond2",
"spl3_nopbc_precond3"), &
3358 description=
"accuracy on the solution for spline3 the interpolators", &
3359 usage=
"eps_x 1.e-15", default_r_val=1.e-10_dp)
3364 description=
"accuracy on the residual for spline3 the interpolators", &
3365 usage=
"eps_r 1.e-15", default_r_val=1.e-10_dp)
3370 variants=[
'maxiter'], &
3371 description=
"the maximum number of iterations", &
3372 usage=
"max_iter 200", default_i_val=100)
3378 description=
"if convergence information about the linear solver"// &
3379 " of the spline methods should be printed", &
3381 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.