79 numerical,
oe_gllb,
oe_lb,
oe_none,
oe_saop,
oe_sic,
orb_dx2,
orb_dxy,
orb_dy2,
orb_dyz, &
171#include "./base/base_uses.f90"
176 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'input_cp2k_print_dft'
191 TYPE(
section_type),
POINTER :: print_key, sub_print_key, subsection
193 cpassert(.NOT.
ASSOCIATED(section))
195 description=
"Section of possible print options in DFT code.", &
196 n_keywords=0, n_subsections=1, repeats=.false.)
198 NULLIFY (print_key, keyword, subsection)
201 description=
"Controls the printing of the banner of the MM program", &
207 description=
"Controls the printing of a file with all basis sets used.", &
213 description=
"Controls the printing of the kinetic energy", &
219 description=
"Print all derivatives after the DFT calculation", &
223 description=
"Specify the number of digits used to print derivatives", &
232 description=
"Controls the printing of the neighbor lists", &
236 description=
"Activates the printing of the orbital "// &
237 "orbital neighbor lists, "// &
238 "i.e. the overlap neighbor lists", &
239 default_l_val=.false., &
240 lone_keyword_l_val=.true.)
245 name=
"sab_aux_fit", &
246 description=
"Activates the printing of the orbital "// &
247 "orbital neighbor lists wavefunction fitting basis, "// &
248 "i.e. the overlap neighbor lists", &
249 default_l_val=.false., &
250 lone_keyword_l_val=.true.)
255 name=
"sab_aux_fit_vs_orb", &
256 description=
"Activates the printing of the orbital "// &
257 "orbital mixed neighbor lists of wavefunction fitting basis, "// &
258 "and the orbital basis, i.e. the overlap neighbor lists", &
259 default_l_val=.false., &
260 lone_keyword_l_val=.true.)
266 description=
"Activates the printing of the vdW SCP "// &
268 default_l_val=.false., &
269 lone_keyword_l_val=.true.)
275 description=
"Activates the printing of the vdW "// &
276 "neighbor lists (from DFT, DFTB, SE), "// &
277 "i.e. the dispersion neighbor lists", &
278 default_l_val=.false., &
279 lone_keyword_l_val=.true.)
285 description=
"Activates the printing of the "// &
286 "neighbor lists used for coordination numbers in vdW DFT-D3", &
287 default_l_val=.false., &
288 lone_keyword_l_val=.true.)
294 description=
"Activates the printing of the orbital "// &
295 "nuclear attraction neighbor lists (erfc potential)", &
296 default_l_val=.false., &
297 lone_keyword_l_val=.true.)
303 description=
"Activates the printing of the orbital "// &
304 "GTH-PPL neighbor lists (local part of the "// &
305 "Goedecker-Teter-Hutter pseudo potentials)", &
306 default_l_val=.false., &
307 lone_keyword_l_val=.true.)
313 description=
"Activates the printing of the orbital "// &
314 "GTH-PPNL neighbor lists (non-local part of the "// &
315 "Goedecker-Teter-Hutter pseudo potentials)", &
316 default_l_val=.false., &
317 lone_keyword_l_val=.true.)
323 description=
"Activates the printing of the orbital "// &
324 "PAW-projector neighbor lists (only GAPW)", &
325 default_l_val=.false., &
326 lone_keyword_l_val=.true.)
332 description=
"Activates the printing of the two-center "// &
333 "neighbor lists for Coulomb type interactions in NDDO ", &
334 default_l_val=.false., &
335 lone_keyword_l_val=.true.)
341 description=
"Activates the printing of the long-range SE correction "// &
342 "neighbor lists (only when doing long-range SE with integral scheme KDSO and KDSO-d)", &
343 default_l_val=.false., lone_keyword_l_val=.true.)
349 description=
"Activates the printing of the DFTB Ewald "// &
351 default_l_val=.false., &
352 lone_keyword_l_val=.true.)
358 description=
"Activates the printing of the xTB sr-Coulomb "// &
360 default_l_val=.false., &
361 lone_keyword_l_val=.true.)
367 description=
"Activates the printing of core interaction "// &
369 default_l_val=.false., &
370 lone_keyword_l_val=.true.)
376 description=
"Activates the printing of XB interaction from (xTB) "// &
378 default_l_val=.false., &
379 lone_keyword_l_val=.true.)
384 name=
"sab_xtb_nonbond", &
385 description=
"Activates the printing of nonbonded interaction from (xTB) "// &
387 default_l_val=.false., &
388 lone_keyword_l_val=.true.)
394 description=
"Activates the printing of RI orbital-orbital "// &
396 default_l_val=.false., &
397 lone_keyword_l_val=.true.)
403 description=
"Activates the printing of RI basis-projector interaction "// &
405 default_l_val=.false., &
406 lone_keyword_l_val=.true.)
412 description=
"Activates the printing of the nuclear orbital "// &
413 "nuclear repulsion neighbor lists (erfc potential)", &
414 default_l_val=.false., &
415 lone_keyword_l_val=.true.)
423 description=
"Activates the printing of the subcells used for the "// &
424 "generation of neighbor lists.", unit_str=
"angstrom", &
430 description=
"Controls the printing of the ao (i.e. contracted gaussian) matrices (debug).", &
433 description=
"Print only the matrix data, not the row and column headers", &
434 default_l_val=.false., lone_keyword_l_val=.true.)
438 description=
"Specify the number of digits used to print the AO matrices", &
442 CALL keyword_create(keyword, __location__, name=
"CORE_HAMILTONIAN", &
443 description=
"If the printkey is activated controls the printing of the hamiltonian matrix", &
444 default_l_val=.false., lone_keyword_l_val=.true.)
448 description=
"If the printkey is activated controls the printing of the density (P) matrix", &
449 default_l_val=.false., lone_keyword_l_val=.true.)
453 CALL keyword_create(keyword, __location__, name=
"KINETIC_ENERGY", &
454 description=
"If the printkey is activated controls the printing of the kinetic energy matrix", &
455 default_l_val=.false., lone_keyword_l_val=.true.)
458 CALL keyword_create(keyword, __location__, name=
"KOHN_SHAM_MATRIX", &
459 description=
"If the printkey is activated controls the printing of the Kohn-Sham matrix", &
460 default_l_val=.false., lone_keyword_l_val=.true.)
464 keyword, __location__, name=
"MATRIX_VXC", &
465 description=
"If the printkey is activated compute and print the matrix of the exchange and correlation potential. "// &
466 "Only the GGA part for GPW is printed", &
467 default_l_val=.false., lone_keyword_l_val=.true.)
471 description=
"If the printkey is activated controls the printing of the orthogonalization matrix", &
472 default_l_val=.false., lone_keyword_l_val=.true.)
476 description=
"If the printkey is activated controls the printing of the overlap matrix", &
477 default_l_val=.false., lone_keyword_l_val=.true.)
480 CALL keyword_create(keyword, __location__, name=
"COMMUTATOR_HR", &
481 description=
"Controls the printing of the [H,r] commutator matrix", &
482 default_l_val=.false., lone_keyword_l_val=.true.)
486 CALL keyword_create(keyword, __location__, name=
"FERMI_CONTACT", &
487 description=
"If the printkey is activated controls the printing of the Fermi contact matrix", &
488 default_l_val=.false., lone_keyword_l_val=.true.)
492 keyword, __location__, name=
"PSO", &
493 description=
"If the printkey is activated controls the printing of the paramagnetic spin-orbit matrices", &
494 default_l_val=.false., lone_keyword_l_val=.true.)
498 keyword, __location__, name=
"EFG", &
499 description=
"If the printkey is activated controls the printing of the electric field gradient matrices", &
500 default_l_val=.false., lone_keyword_l_val=.true.)
503 CALL keyword_create(keyword, __location__, name=
"POTENTIAL_ENERGY", &
504 description=
"If the printkey is activated controls the printing of the potential energy matrix", &
505 default_l_val=.false., lone_keyword_l_val=.true.)
509 description=
"If the printkey is activated controls the printing of the OCE HARD matrix", &
510 default_l_val=.false., lone_keyword_l_val=.true.)
514 description=
"If the printkey is activated controls the printing of the OCE SOFT matrix", &
515 default_l_val=.false., lone_keyword_l_val=.true.)
519 description=
"If the printkey is activated controls the printing of the w matrix", &
520 default_l_val=.false., lone_keyword_l_val=.true.)
523 CALL keyword_create(keyword, __location__, name=
"W_MATRIX_AUX_FIT", &
524 description=
"If the printkey is activated controls the printing of the w matrix", &
525 default_l_val=.false., lone_keyword_l_val=.true.)
529 description=
"If the printkey is activated controls the printing "// &
530 "of derivatives (for the matrixes that support this)", &
531 default_l_val=.false., lone_keyword_l_val=.true.)
538 print_key, __location__,
"MO", &
539 description=
"Controls the printing of the molecular orbital (MO) information. The requested MO information "// &
540 "is printed for all occupied MOs by default. Use the MO_INDEX_RANGE keyword to restrict the number "// &
541 "of the MOs or to print the MO information for unoccupied MOs. With diagonalization, additional MOs "// &
542 "have to be made available for printout using the ADDED_MOS keyword in the SCF section. With OT, "// &
543 "it is sufficient to specify the desired MO_INDEX_RANGE. The OT eigensolver can be controlled with "// &
544 "the EPS_LUMO and MAX_ITER_LUMO keywords in the SCF section.", &
547 description=
"Print the MOs in the Cartesian basis instead of the default spherical basis.", &
548 default_l_val=.false., lone_keyword_l_val=.true.)
552 variants=
s2a(
"EIGENVALUES",
"EIGVALS"), &
553 description=
"Print the MO energies (eigenvalues).", &
554 default_l_val=.false., lone_keyword_l_val=.true.)
558 variants=
s2a(
"EIGENVECTORS",
"EIGVECS"), &
559 description=
"Print the MO coefficients (eigenvectors).", &
560 default_l_val=.false., lone_keyword_l_val=.true.)
563 CALL keyword_create(keyword, __location__, name=
"OCCUPATION_NUMBERS", &
564 variants=
s2a(
"OCCNUMS"), &
565 description=
"Print the MO occupation numbers.", &
566 default_l_val=.false., lone_keyword_l_val=.true.)
569 CALL keyword_create(keyword, __location__, name=
"OCCUPATION_NUMBERS_STATS", &
570 variants=
s2a(
"OCCNUMSTATS"), &
571 description=
"Print some stats (max number of occupied MOs, etc.) of the MO occupation numbers."// &
572 " First logical toggles stats printing, first real is the occupied threshold.", &
573 type_of_var=
char_t, n_var=-1, &
574 default_c_vals=[
".FALSE.",
"1.0E-6 "], &
575 lone_keyword_c_vals=[
".TRUE."], &
576 usage=
"OCCUPATION_NUMBERS_STATS {Logical} [{Real}]")
580 description=
"Specify the number of digits used to print the MO information.", &
585 name=
"MO_INDEX_RANGE", &
586 variants=
s2a(
"MO_RANGE",
"RANGE"), &
587 description=
"Print only the requested subset of MOs. The indices of the first and "// &
588 "the last MO have to be specified to define the range. -1 as the last MO index "// &
589 "prints all available orbitals with diagonalisation (ADDED_MOS) and all orbitals with OT.", &
593 default_i_vals=[0, 0], &
594 usage=
"MO_INDEX_RANGE 10 15")
601 description=
"Write the molecular orbitals in Molden file format, for visualisation.", &
604 description=
"Unit for coordinates and cell in the MOLDEN file.", &
605 usage=
"UNIT ANGSTROM", &
606 enum_c_vals=
s2a(
"BOHR",
"ANGSTROM"), &
607 enum_desc=
s2a(
"Write in Bohr (AU)",
"Write in Angstrom"), &
608 enum_i_vals=[1, 2], &
613 description=
"Controls whether the [Cell] block is written to the MOLDEN file.", &
614 usage=
"WRITE_CELL T", &
615 default_l_val=.false., lone_keyword_l_val=.true.)
619 description=
"Controls whether the [Nval] block is written to the MOLDEN file.", &
620 usage=
"WRITE_NVAL T", &
621 default_l_val=.false., lone_keyword_l_val=.true.)
625 description=
"Specifies the number of significant digits retained. 3 is OK for visualization.", &
626 usage=
"NDIGITS {int}", &
631 description=
"Representation of Gaussian-type orbitals", &
633 enum_c_vals=
s2a(
"CARTESIAN",
"SPHERICAL"), &
635 "Cartesian Gaussian orbitals. Use with caution", &
636 "Spherical Gaussian orbitals. Incompatible with VMD"), &
641 description=
"Number of unoccupied orbitals to include in the Molden file. "// &
642 "Triggers a post-SCF eigensolver to obtain virtual orbital energies and "// &
643 "coefficients. Only available with OT method, since diagonalization "// &
644 "can already compute unoccupied orbitals via `ADDED_MOS` during "// &
645 "SCF and output them to the Molden file after convergence. "// &
646 "0 means no virtual orbitals, -1 means all available.", &
647 usage=
"OT_NLUMO {int}", &
655 description=
"Write k-point MO information to `.mokp` file. "// &
656 "The information of cell and k-points is given at first. Then, "// &
657 "the coefficients of molecular orbitals are always written, "// &
658 "while users can choose whether to write GTO basis information "// &
659 "or directly overlap matrices though `OVERLAP_EXPORT_TYPE` keyword.", &
662 description=
"Unit for coordinates and cell in the MOLDEN file.", &
663 usage=
"UNIT ANGSTROM", &
664 enum_c_vals=
s2a(
"BOHR",
"ANGSTROM"), &
665 enum_desc=
s2a(
"Write in Bohr (AU)",
"Write in Angstrom"), &
666 enum_i_vals=[1, 2], &
671 description=
"Specifies the number of significant digits retained.", &
672 usage=
"NDIGITS {int}", &
676 CALL keyword_create(keyword, __location__, name=
"OVERLAP_EXPORT_TYPE", &
677 description=
"How detailed information is provided. "// &
678 "GTO writes basis set exponents/coefficients (compact, post-processing reconstructs S(k)). "// &
679 "MATRIX writes S(k) directly (larger file, ready to use).", &
681 enum_c_vals=
s2a(
"GTO",
"MATRIX"), &
682 enum_desc=
s2a(
"Write GTO basis set definition (MOLDEN denormalization convention)", &
683 "Write explicit overlap matrices S(k) for all k-points"), &
690 CALL create_mo_section(print_key,
"MO_CUBES",
"cube", [2, 2, 2],
"STRIDE 1 1 1",
high_print_level,
"write_cube")
692 description=
"append the cube files when they already exist", &
693 default_l_val=.false., lone_keyword_l_val=.true.)
696 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
697 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
698 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
704 CALL create_mo_section( &
705 print_key,
"MO_OPENPMD",
"openPMD", [1, 1, 1],
"STRIDE 2 2 2",
debug_print_level + 1,
"write_openpmd")
706 CALL add_generic_openpmd_arguments(print_key)
710 CALL create_stm_section(print_key)
714 CALL create_wfn_mix_section(subsection)
719 description=
"Write a TREXIO file to disk.", &
720 n_keywords=1, n_subsections=0, repeats=.false.)
722 description=
"Body of Filename for the trexio file.", &
723 usage=
"FILENAME {name}", default_c_val=
"TREXIO", &
728 description=
"Store the MOs in the Cartesian basis instead of the default spherical basis.", &
729 default_l_val=.false., lone_keyword_l_val=.true.)
736 description=
"Controls the printing of some gapw related information (debug).", &
737 n_keywords=0, n_subsections=1, repeats=.false.)
739 description=
"If the printkey is activated controls if information on"// &
740 " the projectors is printed.", &
745 description=
"If the printkey is activated controls if information on rho0 is printed.", &
753 description=
"Controls the printing of dft control parameters.", &
759 description=
"Controls the printing of kpoint information.", &
765 CALL create_bandstructure_section(subsection)
770 description=
"Controls the checking and printing of an estimate "// &
771 "of the overlap matrix condition number", &
774 description=
"Calculate an estimate of the 1-norm condition number", &
775 default_l_val=.true., lone_keyword_l_val=.true.)
778 CALL keyword_create(keyword, __location__, name=
"DIAGONALIZATION", &
779 description=
"Calculate the 1- and 2-norm condition numbers using diagonalization", &
780 default_l_val=.false., lone_keyword_l_val=.true.)
784 description=
"Calculate the 2-norm condition number using the Arnoldi code (may not be reliable)", &
785 default_l_val=.false., lone_keyword_l_val=.true.)
791 CALL create_e_density_section( &
793 "E_DENSITY_OPENPMD", &
798 CALL add_generic_openpmd_arguments(print_key)
802 CALL create_e_density_section(print_key,
"E_DENSITY_CUBE",
"cube", [2, 2, 2],
"STRIDE 2 2 2",
high_print_level)
804 description=
"append the cube files when they already exist", &
805 default_l_val=.false., lone_keyword_l_val=.true.)
809 CALL keyword_create(keyword, __location__, name=
"XRD_INTERFACE", &
810 description=
"It activates the print out of exponents and coefficients for the"// &
811 " Gaussian expansion of the core densities, based on atom calculations for each kind."// &
812 " The resulting core dansities are needed to compute the form factors."// &
813 " If GAPW the local densities are also given in terms of a Gaussian expansion,"// &
814 " by fitting the difference between local-fhard and local-soft density for each atom."// &
815 " In this case the keyword SOFT_DENSITY is enabled.", &
816 default_l_val=.false., lone_keyword_l_val=.true.)
821 description=
"Number of Gaussian functions used in the expansion of atomic (core) density", &
822 usage=
"NGAUSS 10", n_var=1, default_i_val=12, type_of_var=
integer_t)
830 description=
"Controls printing of cube files with "// &
831 "the total density (electrons+atomic core). Note that "// &
832 "the value of the total density is positive where the "// &
833 "electron density dominates and negative where the core is. "// &
834 "When GPW is enabled this will simply print the combined density "// &
835 "of the valence electrons and charge-balanced core. In GAPW the "// &
836 "electronic density (hard+soft plus a correction term) is printed "// &
837 "together with the charge-balanced core density to produce a complete "// &
838 "representation of the total density.", &
841 description=
"The stride (X,Y,Z) used to write the cube file "// &
842 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
843 " 1 number valid for all components.", &
844 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
849 description=
"append the cube files when they already exist", &
850 default_l_val=.false., lone_keyword_l_val=.true.)
854 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
855 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
856 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
864 description=
"Controls the printing of a cube file with eletrostatic"// &
865 " potential generated by the total density (electrons+ions). It is"// &
866 " valid only for QS with GPW formalism."// &
867 " Note that by convention the potential has opposite sign than the expected physical one.", &
870 description=
"The stride (X,Y,Z) used to write the cube file "// &
871 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
872 " 1 number valid for all components.", &
873 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
877 description=
"append the cube files when they already exist", &
878 default_l_val=.false., lone_keyword_l_val=.true.)
881 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
882 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
883 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
891 description=
"Controls the printing of a cube file with external"// &
892 " potential from the DFT%EXTERNAL_POTENTIAL section only.", &
895 description=
"The stride (X,Y,Z) used to write the cube file "// &
896 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
897 " 1 number valid for all components.", &
898 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
902 description=
"append the cube files when they already exist", &
903 default_l_val=.false., lone_keyword_l_val=.true.)
906 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
907 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
908 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
916 description=
"Controls the output of the electron density to the losslessly"// &
917 " compressed BQB file format, see [Brehm2018]"// &
918 " (via LibBQB see <https://brehm-research.de/bqb>)."// &
919 " Currently does not work with changing cell vector (NpT ensemble).", &
924 description=
"Skips the first step of a MD run (avoids duplicate step if restarted).", &
925 usage=
"SKIP_FIRST T", default_l_val=.false., lone_keyword_l_val=.true.)
929 CALL keyword_create(keyword, __location__, name=
"STORE_STEP_NUMBER", &
930 description=
"Stores the step number and simulation time in the comment line of each BQB"// &
931 " frame. Switch it off for binary compatibility with original CP2k CUBE files.", &
932 usage=
"STORE_STEP_NUMBER F", default_l_val=.true., lone_keyword_l_val=.true.)
937 description=
"Performs an on-the-fly decompression of each compressed BQB frame to check"// &
938 " whether the volumetric data exactly matches, and aborts the run if not so.", &
939 usage=
"CHECK T", default_l_val=.false., lone_keyword_l_val=.true.)
944 description=
"Specify this keyword to overwrite the output BQB file if"// &
945 " it already exists. By default, the data is appended to an existing file.", &
946 usage=
"OVERWRITE T", default_l_val=.false., lone_keyword_l_val=.true.)
951 description=
"Controls how many previous steps are taken into account for extrapolation in"// &
952 " compression. Use a value of 1 to compress the frames independently.", &
953 usage=
"HISTORY 10", n_var=1, default_i_val=10, type_of_var=
integer_t)
957 CALL keyword_create(keyword, __location__, name=
"PARAMETER_KEY", &
958 description=
"Allows to supply previously optimized compression parameters via a"// &
959 " parameter key (alphanumeric character sequence starting with 'at')."// &
960 " Just leave away the 'at' sign here, because CP2k will otherwise"// &
961 " assume it is a variable name in the input", &
962 usage=
"PARAMETER_KEY <KEY>", n_var=1, default_c_val=
"", type_of_var=
char_t)
967 description=
"Controls the time spent to optimize the parameters for compression efficiency.", &
968 usage=
"OPTIMIZE {OFF,QUICK,NORMAL,PATIENT,EXHAUSTIVE}", repeats=.false., n_var=1, &
970 enum_c_vals=
s2a(
"OFF",
"QUICK",
"NORMAL",
"PATIENT",
"EXHAUSTIVE"), &
971 enum_desc=
s2a(
"No optimization (use defaults)",
"Quick optimization", &
972 "Standard optimization",
"Precise optimization",
"Exhaustive optimization"), &
986 CALL create_implicit_psolver_section(subsection)
992 description=
"Controls the printing of a cube file with xc"// &
993 " potential generated by the ZMP method (for the moment). It is"// &
994 " valid only for QS with GPW formalism .", &
997 description=
"The stride (X,Y,Z) used to write the cube file "// &
998 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
999 " 1 number valid for all components.", &
1000 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1004 description=
"append the cube files when they already exist", &
1005 default_l_val=.false., lone_keyword_l_val=.true.)
1013 description=
"Controls the printing of cube files with electric"// &
1014 " field generated by the total density (electrons+ions). It is"// &
1015 " valid only for QS with GPW formalism.", &
1018 description=
"The stride (X,Y,Z) used to write the cube file "// &
1019 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1020 " 1 number valid for all components.", &
1021 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1025 description=
"append the cube files when they already exist", &
1026 default_l_val=.false., lone_keyword_l_val=.true.)
1029 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
1030 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
1031 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
1038 CALL create_elf_print_section(print_key,
"ELF_CUBE", &
1042 description=
"append the cube files when they already exist", &
1043 default_l_val=.false., lone_keyword_l_val=.true.)
1050 CALL create_elf_print_section(print_key,
"ELF_OPENPMD", &
1053 CALL add_generic_openpmd_arguments(print_key)
1058 description=
"Controls the printing of cube files with the local"// &
1059 " energy. It is valid only for QS with GPW/GAPW formalism."// &
1060 " Meta and hybrid functionals are not possible.", &
1063 description=
"The stride (X,Y,Z) used to write the cube file "// &
1064 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1065 " 1 number valid for all components.", &
1066 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1070 description=
"append the cube files when they already exist", &
1071 default_l_val=.false., lone_keyword_l_val=.true.)
1074 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
1075 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
1076 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
1084 description=
"Controls the printing of cube files with the local"// &
1085 " stress. It is valid only for QS with GPW/GAPW formalism."// &
1086 " Meta and hybrid functionals are not possible.", &
1089 description=
"The stride (X,Y,Z) used to write the cube file "// &
1090 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1091 " 1 number valid for all components.", &
1092 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1096 description=
"append the cube files when they already exist", &
1097 default_l_val=.false., lone_keyword_l_val=.true.)
1100 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
1101 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
1102 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
1109 CALL create_dos_section(print_key)
1117 CALL create_wannier_section(print_key)
1124 keyword, __location__, &
1125 name=
"MAX_MOMENT", &
1126 description=
"Maximum moment to be calculated. Values higher than 1 not implemented under periodic boundaries.", &
1127 usage=
"MAX_MOMENT {integer}", &
1136 description=
"Calculate also magnetic moments, only implemented without periodic boundaries", &
1137 usage=
"MAGNETIC yes", &
1140 default_l_val=.false., &
1141 lone_keyword_l_val=.true.)
1146 description=
"Calculate expectation values of the el. multipole moments in their velocity "// &
1147 "representation during RTP. Implemented up to el. quadrupole moment.", &
1148 usage=
"VEL_REPRS yes", &
1151 default_l_val=.false., &
1152 lone_keyword_l_val=.true.)
1157 description=
"Include non local commutator for velocity representations. "// &
1158 "Necessary for origin independent results.", &
1159 usage=
"COM_NL yes", &
1162 default_l_val=.false., &
1163 lone_keyword_l_val=.true.)
1167 name=
"SECOND_REFERENCE_POINT", &
1168 description=
"Use second reference point", &
1169 usage=
"SECOND_REFERENCE_POINT .TRUE.", &
1172 default_l_val=.false., &
1173 lone_keyword_l_val=.true.)
1177 variants=
s2a(
"REF_2"), &
1178 description=
"Define a second reference point for the calculation of the electrostatic moment.", &
1179 usage=
"REFERENCE_2 COM", &
1180 enum_c_vals=
s2a(
"COM",
"COAC",
"USER_DEFINED",
"ZERO"), &
1181 enum_desc=
s2a(
"Use Center of Mass", &
1182 "Use Center of Atomic Charges", &
1183 "Use User Defined Point (Keyword:REF_POINT)", &
1184 "Use Origin of Coordinate System"), &
1192 CALL keyword_create(keyword, __location__, name=
"REFERENCE_POINT_2", &
1193 variants=
s2a(
"REF_POINT_2"), &
1194 description=
"Fixed second reference point for the calculations of the electrostatic moment.", &
1195 usage=
"REFERENCE_POINT_2 x y z", &
1197 n_var=3, default_r_vals=[0._dp, 0._dp, 0._dp], &
1203 description=
"Maximum number of molecular orbitals closest to the Fermi "// &
1204 "level for which dipole matrix elements and Berry curvatures are printed "// &
1205 "per k-point. 0 for all orbitals. Ignored if not a KPOINT calculation.", &
1206 usage=
"MAX_NMO {integer}", &
1208 n_var=1, default_i_val=10, &
1223 description=
"Controls the printing of the Mulliken (spin) population analysis", &
1225 common_iter_levels=1)
1227 keyword, __location__, &
1229 description=
"Print the gross orbital populations (GOP) in addition to the gross atomic populations (GAP) "// &
1230 "and net charges", &
1231 usage=
"PRINT_GOP yes", &
1234 default_l_val=.false., &
1235 lone_keyword_l_val=.true.)
1239 keyword, __location__, &
1241 description=
"Print all information including the full net AO and overlap population matrix", &
1242 usage=
"PRINT_ALL yes", &
1245 default_l_val=.false., &
1246 lone_keyword_l_val=.true.)
1254 description=
"Controls the printing of the Lowdin (spin) population analysis", &
1256 common_iter_levels=1)
1258 keyword, __location__, &
1260 description=
"Print the orbital populations in addition to the atomic populations and net charges", &
1261 usage=
"PRINT_GOP yes", &
1264 default_l_val=.false., &
1265 lone_keyword_l_val=.true.)
1269 keyword, __location__, &
1271 description=
"Print all information including the full symmetrically orthogonalised density matrix", &
1272 usage=
"PRINT_ALL yes", &
1275 default_l_val=.false., &
1276 lone_keyword_l_val=.true.)
1284 description=
"Controls the printing of the Hirshfeld (spin) population analysis", &
1286 common_iter_levels=1)
1287 CALL keyword_create(keyword, __location__, name=
"SELF_CONSISTENT", &
1288 description=
"Calculate charges from the Hirscheld-I (self_consistent) method."// &
1289 " This scales only the full shape function, not the added charge as in the original scheme.", &
1290 usage=
"SELF_CONSISTENT yes", repeats=.false., n_var=1, &
1291 default_l_val=.false., lone_keyword_l_val=.true.)
1294 CALL keyword_create(keyword, __location__, name=
"SHAPE_FUNCTION", &
1295 description=
"Type of shape function used for Hirshfeld partitioning.", &
1296 usage=
"SHAPE_FUNCTION {Gaussian,Density}", repeats=.false., n_var=1, &
1298 enum_c_vals=
s2a(
"GAUSSIAN",
"DENSITY"), &
1299 enum_desc=
s2a(
"Single Gaussian with Colvalent radius", &
1300 "Atomic density expanded in multiple Gaussians"), &
1304 CALL keyword_create(keyword, __location__, name=
"REFERENCE_CHARGE", &
1305 description=
"Charge of atomic partitioning function for Hirshfeld method.", &
1306 usage=
"REFERENCE_CHARGE {Atomic,Mulliken}", repeats=.false., n_var=1, &
1308 enum_c_vals=
s2a(
"ATOMIC",
"MULLIKEN"), &
1309 enum_desc=
s2a(
"Use atomic core charges",
"Calculate Mulliken charges"), &
1314 description=
"Use user defined radii to generate Gaussians."// &
1315 " These radii are defined by the keyword ATOMIC_RADII", &
1316 usage=
"USER_RADIUS yes", repeats=.false., n_var=1, &
1317 default_l_val=.false., lone_keyword_l_val=.true.)
1320 CALL keyword_create(keyword, __location__, name=
"ATOMIC_RADII", &
1321 description=
"Defines custom radii to setup the spherical Gaussians.", &
1322 usage=
"ATOMIC_RADII {real} {real} {real}", repeats=.false., &
1323 unit_str=
"angstrom", &
1324 type_of_var=
real_t, n_var=-1)
1332 description=
"Controls the printing of the EEQ charges", &
1334 common_iter_levels=1, &
1341 description=
"Controls the printing of the MAO (modified atomic orbital) analysis", &
1343 common_iter_levels=1, &
1346 description=
"Threshold for matrix elements in MAO determination.", &
1347 usage=
"EPS_FILTER reps", repeats=.false., n_var=1, &
1348 default_r_val=1.e-8_dp, type_of_var=
real_t)
1351 CALL keyword_create(keyword, __location__, name=
"REFERENCE_BASIS", &
1352 description=
"Basis set used to construct MAO's.", &
1353 usage=
"REFERENCE_BASIS {ORBITAL,PRIMITIVE,EXTERNAL}", repeats=.false., n_var=1, &
1355 enum_c_vals=
s2a(
"ORBITAL",
"PRIMITIVE",
"EXTERNAL"), &
1356 enum_desc=
s2a(
"Use standard orbital basis set",
"Construct basis from primitives of the orbital basis", &
1357 "Read external basis (MAO)"), &
1362 description=
"Print out MAO reference basis.", &
1363 usage=
"PRINT_BASIS {logical}", repeats=.false., n_var=1, &
1364 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1368 description=
"Threshold for gradient in MAO optimization.", &
1369 usage=
"EPS_GRAD reps", repeats=.false., n_var=1, &
1370 default_r_val=1.e-4_dp, type_of_var=
real_t)
1373 CALL keyword_create(keyword, __location__, name=
"EPS_FUNCTION", &
1374 description=
"Threshold for electron defect in MAO optimization.", &
1375 usage=
"EPS_FUNCTION feps", repeats=.false., n_var=1, &
1376 default_r_val=1.e-3_dp, type_of_var=
real_t)
1380 description=
"Maximum allowed iterations for MAO optimization.", &
1381 usage=
"MAX_ITER iter", repeats=.false., n_var=1, &
1386 description=
"Neglect 3 atom terms in MAO analysis.", &
1387 usage=
"NEGLECT_ABC {logical}", repeats=.false., n_var=1, &
1388 default_l_val=.true., lone_keyword_l_val=.true., type_of_var=
logical_t)
1391 CALL keyword_create(keyword, __location__, name=
"AB_THRESHOLD", &
1392 description=
"Threshold for printing of AB shared electron numbers.", &
1393 usage=
"AB_THRESHOLD thr", repeats=.false., n_var=1, &
1394 default_r_val=1.e-2_dp, type_of_var=
real_t)
1397 CALL keyword_create(keyword, __location__, name=
"ABC_THRESHOLD", &
1398 description=
"Threshold for printing of ABC shared electron numbers.", &
1399 usage=
"ABC_THRESHOLD thr", repeats=.false., n_var=1, &
1400 default_r_val=1.e-5_dp, type_of_var=
real_t)
1403 CALL keyword_create(keyword, __location__, name=
"ANALYZE_UNASSIGNED_CHARGE", &
1404 description=
"Calculate atomic contributions to the unassigned charge.", &
1405 usage=
"ANALYZE_UNASSIGNED_CHARGE {logical}", repeats=.false., n_var=1, &
1406 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1414 description=
"Controls the printing of the minimal localized basis analysis", &
1416 common_iter_levels=1, &
1419 description=
"Threshold for matrix elements in basis determination.", &
1420 usage=
"EPS_FILTER reps", repeats=.false., n_var=1, &
1421 default_r_val=1.e-8_dp, type_of_var=
real_t)
1424 CALL keyword_create(keyword, __location__, name=
"FULL_ORTHOGONALIZATION", &
1425 description=
"Orthogonalize the localized minimal basis.", &
1426 usage=
"FULL_ORTHOGONALIZATION {logical}", repeats=.false., n_var=1, &
1427 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1431 description=
"Calculate Mayer Bond Orders.", &
1432 usage=
"BOND_ORDER {logical}", repeats=.false., n_var=1, &
1433 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1437 NULLIFY (sub_print_key)
1439 description=
"Write the minimal basis on Cube files.", &
1442 description=
"The stride (X,Y,Z) used to write the cube file "// &
1443 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1444 " 1 number valid for all components.", &
1445 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1449 description=
"Indexes of the atoms minimal basis to be printed as cube files "// &
1450 "This keyword can be repeated several times "// &
1451 "(useful if you have to specify many indexes).", &
1452 usage=
"ATOM_LIST 1 2", &
1453 n_var=-1, type_of_var=
integer_t, repeats=.true.)
1459 NULLIFY (sub_print_key)
1461 description=
"Write the minimal basis in Molden file format, for visualisation.", &
1464 description=
"Unit for coordinates and cell in the MOLDEN file.", &
1465 usage=
"UNIT ANGSTROM", &
1466 enum_c_vals=
s2a(
"BOHR",
"ANGSTROM"), &
1467 enum_desc=
s2a(
"Write in Bohr (AU)",
"Write in Angstrom"), &
1468 enum_i_vals=[1, 2], &
1473 description=
"Controls whether the [Cell] block is written to the MOLDEN file.", &
1474 usage=
"WRITE_CELL T", &
1475 default_l_val=.false., lone_keyword_l_val=.true.)
1479 description=
"Controls whether the [Nval] block is written to the MOLDEN file.", &
1480 usage=
"WRITE_NVAL T", &
1481 default_l_val=.false., lone_keyword_l_val=.true.)
1485 description=
"Specifies the number of significant digits retained. 3 is OK for visualization.", &
1486 usage=
"NDIGITS {int}", &
1491 description=
"Representation of Gaussian-type orbitals", &
1493 enum_c_vals=
s2a(
"CARTESIAN",
"SPHERICAL"), &
1495 "Cartesian Gaussian orbitals. Use with caution", &
1496 "Spherical Gaussian orbitals. Incompatible with VMD"), &
1508 description=
"Controls energy decomposition analysis", &
1510 common_iter_levels=1, &
1512 CALL keyword_create(keyword, __location__, name=
"REFERENCE_ORB_CANONICAL", &
1513 description=
"Use reference orbitals in canonical form.", &
1514 usage=
"REFERENCE_ORB_CANONICAL {logical}", repeats=.false., n_var=1, &
1515 default_l_val=.true., lone_keyword_l_val=.true., type_of_var=
logical_t)
1518 CALL keyword_create(keyword, __location__, name=
"SKIP_LOCALIZATION", &
1519 description=
"Don't localize the MOs.", &
1520 usage=
"SKIP_LOCALIZATION {logical}", repeats=.false., n_var=1, &
1521 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1524 CALL keyword_create(keyword, __location__, name=
"DETAILED_ENERGY", &
1525 description=
"Calculate detailed atomic decomposition energies.", &
1526 usage=
"DETAILED_ENERGY {logical}", repeats=.false., n_var=1, &
1527 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1530 CALL keyword_create(keyword, __location__, name=
"EWALD_ALPHA_PARAMETER", &
1531 description=
"Calculate Energy Decomposition for a specific alpha value. "// &
1532 "alpha = 1/(2*rc**2), see GTH pseudopotentials.", &
1533 usage=
"EWALD_ALPHA_PARAMETER alpha", repeats=.false., n_var=1, &
1534 default_r_val=0.0_dp, type_of_var=
real_t)
1543 description=
"Controls the printing of the IAO (intrinsic atomic orbital) analysis", &
1545 common_iter_levels=1, &
1548 description=
"Threshold for matrix inversion eigenvalues.", &
1549 usage=
"EPS_SVD reps", repeats=.false., n_var=1, &
1550 default_r_val=0.0_dp, type_of_var=
real_t)
1554 description=
"Threshold in occupation for vectors included.", &
1555 usage=
"EPS_OCC reps", repeats=.false., n_var=1, &
1556 default_r_val=0.0_dp, type_of_var=
real_t)
1559 CALL keyword_create(keyword, __location__, name=
"ATOMIC_CHARGES", &
1560 description=
"Calculate atomic charges from IAO.", &
1561 usage=
"ATOMIC_CHARGES {logical}", repeats=.false., n_var=1, &
1562 default_l_val=.true., lone_keyword_l_val=.true., type_of_var=
logical_t)
1566 NULLIFY (sub_print_key)
1568 description=
"Write the IAO basis in Molden file format, for visualisation.", &
1571 description=
"Unit for coordinates and cell in the MOLDEN file.", &
1572 usage=
"UNIT ANGSTROM", &
1573 enum_c_vals=
s2a(
"BOHR",
"ANGSTROM"), &
1574 enum_desc=
s2a(
"Write in Bohr (AU)",
"Write in Angstrom"), &
1575 enum_i_vals=[1, 2], &
1580 description=
"Controls whether the [Cell] block is written to the MOLDEN file.", &
1581 usage=
"WRITE_CELL T", &
1582 default_l_val=.false., lone_keyword_l_val=.true.)
1586 description=
"Controls whether the [Nval] block is written to the MOLDEN file.", &
1587 usage=
"WRITE_NVAL T", &
1588 default_l_val=.false., lone_keyword_l_val=.true.)
1592 description=
"Specifies the number of significant digits retained. 3 is OK for visualization.", &
1593 usage=
"NDIGITS {int}", &
1598 description=
"Representation of Gaussian-type orbitals", &
1600 enum_c_vals=
s2a(
"CARTESIAN",
"SPHERICAL"), &
1602 "Cartesian Gaussian orbitals. Use with caution", &
1603 "Spherical Gaussian orbitals. Incompatible with VMD"), &
1610 NULLIFY (sub_print_key)
1612 description=
"Controls the printing of the IAO basis "// &
1613 "as *.cube files.", &
1617 description=
"The stride (X,Y,Z) used to write the cube file "// &
1618 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1619 " 1 number valid for all components.", &
1620 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1624 description=
"append the cube files when they already exist", &
1625 default_l_val=.false., lone_keyword_l_val=.true.)
1629 description=
"Indices of the atoms to be included in basis CUBE file printing. ", &
1630 usage=
"ATOM_LIST {integer} {integer} .. {integer} ", &
1631 n_var=-1, type_of_var=
integer_t, repeats=.true.)
1637 NULLIFY (sub_print_key)
1639 description=
"Calculates single center expansion of IAOs ", &
1643 description=
"Maximum l quantum number used in the expansion.", &
1644 usage=
"LMAX 2", n_var=1, default_i_val=3, type_of_var=
integer_t)
1648 description=
"Max number of basis functions used in the expansion."// &
1649 " Default is determined by the orbital basis set.", &
1650 usage=
"NBAS 10", n_var=1, default_i_val=-1, type_of_var=
integer_t)
1654 description=
"Append the OCE basis files when it already exists", &
1655 default_l_val=.false., lone_keyword_l_val=.true.)
1661 NULLIFY (sub_print_key)
1663 description=
"Calculate intrinsic bond orbitals using "// &
1664 "localized MOs in IAO basis.", &
1668 CALL keyword_create(keyword, __location__, name=
"LOCALIZATION_OPERATOR", &
1669 description=
"Operator to be optimized for orbital localization", &
1670 enum_c_vals=
s2a(
"PIPEK_MEZEY",
"PIPEK_MEZEY_4",
"L1NORM"), &
1672 enum_desc=
s2a(
"Use Pipek-Mezey operator (order 2)", &
1673 "Use Pipek-Mezey operator (order 4)", &
1678 CALL keyword_create(keyword, __location__, name=
"ENERGY_LOCALIZATION_FUNCTION", &
1679 description=
"Function for energy localization: f(e_i), e_i orbital energy", &
1680 enum_c_vals=
s2a(
"NONE",
"ENERGY",
"OCCUPATION"), &
1682 enum_desc=
s2a(
"Don't use energy localization.", &
1683 "Use orbital energies for localization.", &
1684 "Use occupation numbers for localization."), &
1688 CALL keyword_create(keyword, __location__, name=
"ENERGY_LOCALIZATION_WEIGHT", &
1689 description=
"Weight given to energy localization, using f(e_i) function", &
1690 usage=
"ENERGY_LOCALIZATION_WEIGHT 0.1", n_var=1, &
1691 default_r_val=0.0_dp, type_of_var=
real_t)
1696 NULLIFY (subsection)
1698 description=
"Calculation and printing of centers and spreads "// &
1699 "of localized orbitals.", &
1702 CALL keyword_create(keyword, __location__, name=
"POSITION_OPERATOR_BERRY", &
1703 description=
"Use Berry phase position operator.", &
1704 usage=
"POSITION_OPERATOR_BERRY T", n_var=1, &
1705 default_l_val=.true., lone_keyword_l_val=.true.)
1711 NULLIFY (subsection)
1713 description=
"Write the IBO orbitals in Molden file format, for visualisation.", &
1716 description=
"Unit for coordinates and cell in the MOLDEN file.", &
1717 usage=
"UNIT ANGSTROM", &
1718 enum_c_vals=
s2a(
"BOHR",
"ANGSTROM"), &
1719 enum_desc=
s2a(
"Write in Bohr (AU)",
"Write in Angstrom"), &
1720 enum_i_vals=[1, 2], &
1725 description=
"Controls whether the [Cell] block is written to the MOLDEN file.", &
1726 usage=
"WRITE_CELL T", &
1727 default_l_val=.false., lone_keyword_l_val=.true.)
1731 description=
"Controls whether the [Nval] block is written to the MOLDEN file.", &
1732 usage=
"WRITE_NVAL T", &
1733 default_l_val=.false., lone_keyword_l_val=.true.)
1737 description=
"Specifies the number of significant digits retained. 3 is OK for visualization.", &
1738 usage=
"NDIGITS {int}", &
1743 description=
"Representation of Gaussian-type orbitals", &
1745 enum_c_vals=
s2a(
"CARTESIAN",
"SPHERICAL"), &
1747 "Cartesian Gaussian orbitals. Use with caution", &
1748 "Spherical Gaussian orbitals. Incompatible with VMD"), &
1755 NULLIFY (subsection)
1757 description=
"Controls the printing of the IBO orbitals "// &
1758 "as *.cube files.", &
1762 description=
"The stride (X,Y,Z) used to write the cube file "// &
1763 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1764 " 1 number valid for all components.", &
1765 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1769 description=
"append the cube files when they already exist", &
1770 default_l_val=.false., lone_keyword_l_val=.true.)
1774 description=
"Indices of the orbitals to be included in IBO CUBE file printing. ", &
1775 usage=
"STATE_LIST {integer} {integer} .. {integer} ", &
1776 n_var=-1, type_of_var=
integer_t, repeats=.true.)
1790 description=
"Controls the printing of the DOS from the density matrix. "// &
1791 "This allows the calculation of the DOS even in density matrix based "// &
1792 "REAL_TIME_PROPAGATION and LS_SCF. "// &
1793 "However, it requires a cubically scaling diagonalization of the Hamiltonian. "// &
1794 "Hartree-Fock NYI, values will be wrong. "// &
1795 "Careful, the orbitals in rtp/emd are not actually eigenstates of the Hamiltonian. "// &
1796 "Assumes absence of spin polarization (so far).", &
1798 each_iter_names=
s2a(
"MD"), each_iter_values=[100], &
1801 description=
"The number of energy windows.", &
1802 usage=
"N_WINDOWS 200", &
1807 description=
"Filtering threshold for sparse matrix operations.", &
1808 usage=
"EPS_FILTER 1.0E-6", &
1809 default_r_val=1.0e-14_dp)
1812 CALL keyword_create(keyword, __location__, name=
"RESTRICT_RANGE", &
1813 description=
"Restricts the energy windows to states close to the fermi level", &
1814 usage=
"RESTRICT_RANGE .TRUE.", &
1815 default_l_val=.false., lone_keyword_l_val=.true.)
1819 description=
"If the RESTRICT_RANGE keyword is set, then all energy widnows will"// &
1820 " be placed in an interval from from the fermi level minus to the fermi level plus this keyword", &
1822 default_r_val=1.0_dp)
1826 description=
"Print the energy windows to cube files", &
1827 usage=
"PRINT_CUBES .TRUE.", &
1828 default_l_val=.false., lone_keyword_l_val=.true.)
1832 description=
"The stride (X,Y,Z) used to write the energy windows cube files (if enabled) "// &
1833 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1834 " 1 number valid for all components.", &
1835 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1843 description=
"Write the KS matrix in CSR format into a file.", &
1846 description=
"Threshold on the absolute value of the elements to be printed out. "// &
1847 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
1848 "if the block contains at least one non-zero element.", &
1849 usage=
"THRESHOLD {real}", &
1851 default_r_val=0.0_dp)
1854 CALL keyword_create(keyword, __location__, name=
"Upper_triangular", &
1855 description=
"Print only the upper triangular part of the matrix. ", &
1856 usage=
"UPPER_TRIANGULAR {logical}", &
1858 default_l_val=.false., &
1859 lone_keyword_l_val=.true.)
1863 description=
"Whether or not to generate the file in a binary format. ", &
1864 usage=
"BINARY {logical}", &
1866 default_l_val=.false., &
1867 lone_keyword_l_val=.true.)
1871 description=
"Print the KS matrix in real-space instead of k-space.. ", &
1872 usage=
"REAL_SPACE {logical}", &
1874 default_l_val=.false., &
1875 lone_keyword_l_val=.true.)
1883 description=
"Write the overlap matrix in CSR format into a file.", &
1886 description=
"Threshold on the absolute value of the elements to be printed out. "// &
1887 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
1888 "if the block contains at least one non-zero element.", &
1889 usage=
"THRESHOLD {real}", &
1891 default_r_val=0.0_dp)
1894 CALL keyword_create(keyword, __location__, name=
"Upper_triangular", &
1895 description=
"Print only the upper triangular part of the matrix. ", &
1896 usage=
"UPPER_TRIANGULAR {logical}", &
1898 default_l_val=.false., &
1899 lone_keyword_l_val=.true.)
1903 description=
"Whether or not to generate the file in a binary format. ", &
1904 usage=
"BINARY {logical}", &
1906 default_l_val=.false., &
1907 lone_keyword_l_val=.true.)
1911 description=
"Print the overlap matrix in real-space instead of k-space.. ", &
1912 usage=
"REAL_SPACE {logical}", &
1914 default_l_val=.false., &
1915 lone_keyword_l_val=.true.)
1923 description=
"Write the core Hamiltonian matrix in CSR format into a file.", &
1926 description=
"Threshold on the absolute value of the elements to be printed out. "// &
1927 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
1928 "if the block contains at least one non-zero element.", &
1929 usage=
"THRESHOLD {real}", &
1931 default_r_val=0.0_dp)
1934 CALL keyword_create(keyword, __location__, name=
"Upper_triangular", &
1935 description=
"Print only the upper triangular part of the matrix. ", &
1936 usage=
"UPPER_TRIANGULAR {logical}", &
1938 default_l_val=.false., &
1939 lone_keyword_l_val=.true.)
1943 description=
"Whether or not to generate the file in a binary format. ", &
1944 usage=
"BINARY {logical}", &
1946 default_l_val=.false., &
1947 lone_keyword_l_val=.true.)
1951 description=
"Print the core Hamiltonian matrix in real-space instead of k-space.. ", &
1952 usage=
"REAL_SPACE {logical}", &
1954 default_l_val=.false., &
1955 lone_keyword_l_val=.true.)
1963 description=
"Write the density matrix in CSR format into a file.", &
1966 description=
"Threshold on the absolute value of the elements to be printed out. "// &
1967 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
1968 "if the block contains at least one non-zero element.", &
1969 usage=
"THRESHOLD {real}", &
1971 default_r_val=0.0_dp)
1974 CALL keyword_create(keyword, __location__, name=
"Upper_triangular", &
1975 description=
"Print only the upper triangular part of the matrix. ", &
1976 usage=
"UPPER_TRIANGULAR {logical}", &
1978 default_l_val=.false., &
1979 lone_keyword_l_val=.true.)
1983 description=
"Whether or not to generate the file in a binary format. ", &
1984 usage=
"BINARY {logical}", &
1986 default_l_val=.false., &
1987 lone_keyword_l_val=.true.)
1991 description=
"Print the density matrix in real-space instead of k-space.. ", &
1992 usage=
"REAL_SPACE {logical}", &
1994 default_l_val=.false., &
1995 lone_keyword_l_val=.true.)
2003 description=
"Writes an (upper-triangular) adjacency matrix indicating the "// &
2004 "interaction between atoms (according to overlapping basis functions). The "// &
2005 "columns are: iatom, jatom, ikind, jkind; where iatom and jatom are the atom "// &
2006 "indices (based on the coordinate file), ikind and jkind are the atomic kinds "// &
2007 "(indeces as shown in the ATOMIC KIND INFORMATION section of a CP2K output). ", &
2014 print_key, __location__, name=
"XRAY_DIFFRACTION_SPECTRUM", &
2015 description=
"Calculate and print the coherent X-ray "// &
2016 "diffraction spectrum", &
2021 keyword, __location__, &
2023 variants=[
"Q_MAXIMUM"], &
2024 description=
"Maximum Q value calculated for the spectrum", &
2025 usage=
"Q_MAX {real}", &
2030 unit_str=
"angstrom^-1"), &
2031 unit_str=
"angstrom^-1")
2038 description=
"Calculate and print the electric field gradients "// &
2039 "at atomic positions", &
2041 filename=
"__STD_OUT__")
2044 name=
"INTERPOLATION", &
2045 description=
"Use interpolation method from real space grid", &
2046 usage=
"INTERPOLATION {logical}", &
2049 default_l_val=.false., lone_keyword_l_val=.true.)
2054 name=
"GSPACE_SMOOTHING", &
2055 description=
"Use a G-space smoothing function", &
2056 usage=
"GSPACE_SMOOTHING cutoff {real}, width {real}", &
2058 n_var=2, default_r_vals=[-1._dp, -1._dp], &
2065 description=
"Print additional debug output", &
2066 usage=
"DEBUG {logical}", &
2069 default_l_val=.false., lone_keyword_l_val=.true.)
2081 description=
"Print the two quantities needed in the basis molopt generation:"// &
2082 " total energy and condition number of the overlap matrix (S matrix)", &
2084 filename=
"__STD_OUT__")
2089 description=
"Calculate and print the EPR hyperfine coupling tensor"// &
2090 " at atomic positions", &
2092 filename=
"__STD_OUT__")
2095 name=
"INTERACTION_RADIUS", &
2096 description=
"Radius of interaction for EPR hyperfine tensor calculation", &
2097 usage=
"INTERACTION_RADIUS radius {real}", &
2099 n_var=1, default_r_val=10._dp, &
2108 description=
"Optimize the exponents of the LRI basis set", &
2110 filename=
"OPTIMIZED_LRI_BASIS")
2115 print_key, __location__, name=
"PLUS_U", &
2116 description=
"Controls the printing for the DFT+U methods", &
2118 filename=
"__STD_OUT__", &
2119 each_iter_names=
s2a(
"QS_SCF"), &
2120 each_iter_values=[0], &
2126 print_key, __location__, name=
"CHARGEMOL", &
2127 description=
"Write .wfx input file for Chargemol", &
2129 filename=
"CHARGEMOL", &
2131 CALL keyword_create(keyword, __location__, name=
"BACKUP_COPIES", &
2132 description=
"Specifies the maximum number of backup copies.", &
2133 usage=
"BACKUP_COPIES {int}", &
2138 description=
"Write information about cell periodicity.", &
2139 usage=
"PERIODIC {LOGICAL}", &
2140 default_l_val=.false., lone_keyword_l_val=.true.)
2147 print_key, __location__, name=
"SCCS", &
2148 description=
"Controls the printing for the SCCS models", &
2150 filename=
"__STD_OUT__", &
2151 each_iter_names=
s2a(
"QS_SCF"), &
2152 each_iter_values=[0], &
2155 NULLIFY (sub_print_key)
2158 sub_print_key, __location__, name=
"DENSITY_GRADIENT", &
2159 description=
"Controls the printing of the cube files with "// &
2160 "the norm of the density gradient |∇ρ| "// &
2161 "used by the SCCS model.", &
2164 each_iter_names=
s2a(
"QS_SCF"), &
2165 each_iter_values=[0])
2167 description=
"The stride (X,Y,Z) used to write the cube file "// &
2168 "(larger values result in smaller cube files). You can provide 3 "// &
2169 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2171 default_i_vals=[2, 2, 2], &
2177 description=
"Append the cube files when they already exist", &
2178 default_l_val=.false., &
2179 lone_keyword_l_val=.true., &
2187 sub_print_key, __location__, name=
"DIELECTRIC_FUNCTION", &
2188 description=
"Controls the printing of the cube files with "// &
2189 "the dielectric function used by the SCCS model. "// &
2190 "This function determines the cavity formed by a solute in "// &
2191 "a solvent and thus it can be used for the visualisaton of the cavity.", &
2194 each_iter_names=
s2a(
"QS_SCF"), &
2195 each_iter_values=[0], &
2198 description=
"The stride (X,Y,Z) used to write the cube file "// &
2199 "(larger values result in smaller cube files). You can provide 3 "// &
2200 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2202 default_i_vals=[2, 2, 2], &
2208 description=
"Append the cube files when they already exist", &
2209 default_l_val=.false., &
2210 lone_keyword_l_val=.true., &
2218 sub_print_key, __location__, name=
"TOTAL_CHARGE_DENSITY", &
2219 description=
"Controls the printing of the cube files with the "// &
2220 "total charge density $\rho^\text{tot}$ used by the SCCS model.", &
2223 each_iter_names=
s2a(
"QS_SCF"), &
2224 each_iter_values=[0], &
2227 description=
"The stride (X,Y,Z) used to write the cube file "// &
2228 "(larger values result in smaller cube files). You can provide 3 "// &
2229 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2231 default_i_vals=[2, 2, 2], &
2237 description=
"Append the cube files when they already exist", &
2238 default_l_val=.false., &
2239 lone_keyword_l_val=.true., &
2247 sub_print_key, __location__, name=
"POLARISATION_CHARGE_DENSITY", &
2248 description=
"Controls the printing of the cube files with the "// &
2249 "polarisation charge density $\rho^\text{pol}$ used by the SCCS model with the "// &
2250 "total charge density $\rho^\text{tot} = \rho^\text{sol} + \rho^\text{pol}", &
2253 each_iter_names=
s2a(
"QS_SCF"), &
2254 each_iter_values=[0], &
2257 description=
"The stride (X,Y,Z) used to write the cube file "// &
2258 "(larger values result in smaller cube files). You can provide 3 "// &
2259 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2261 default_i_vals=[2, 2, 2], &
2267 description=
"Append the cube files when they already exist", &
2268 default_l_val=.false., &
2269 lone_keyword_l_val=.true., &
2277 sub_print_key, __location__, name=
"POLARISATION_POTENTIAL", &
2278 description=
"Controls the printing of the cube files with the "// &
2279 "polarisation potential $\phi^\text{pol}$ used by the SCCS model with the "// &
2280 "total potential $\phi^\text{tot} = \phi^\text{sol} + \phi^\text{pol}$", &
2283 each_iter_names=
s2a(
"QS_SCF"), &
2284 each_iter_values=[0], &
2287 description=
"The stride (X,Y,Z) used to write the cube file "// &
2288 "(larger values result in smaller cube files). You can provide 3 "// &
2289 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2291 default_i_vals=[2, 2, 2], &
2297 description=
"Append the cube files when they already exist", &
2298 default_l_val=.false., &
2299 lone_keyword_l_val=.true., &
2316 SUBROUTINE create_bandstructure_section(section)
2322 cpassert(.NOT.
ASSOCIATED(section))
2323 CALL section_create(section, __location__, name=
"BAND_STRUCTURE", &
2324 description=
"Specifies the k-points used in band structure calculation.", &
2325 n_keywords=0, n_subsections=0, repeats=.false.)
2329 description=
"File name used for band structure", &
2330 usage=
"FILE_NAME <filename>", default_c_val=
"", &
2331 type_of_var=
char_t, n_var=1)
2336 variants=[
"ADDED_BANDS"], &
2337 description=
"Number of MOs/Bands added to the Band Structure calculation.", &
2342 NULLIFY (subsection)
2347 END SUBROUTINE create_bandstructure_section
2349 SUBROUTINE add_generic_openpmd_arguments(print_key)
2355 CALL keyword_create(keyword, __location__, name=
"OPENPMD_EXTENSION", &
2356 description=
"Filename extension for openPMD files, including the dot and "// &
2357 "(for optionally activating file encoding) a file expansion pattern.", &
2364 description=
"Inline runtime config for openPMD output. Note that inline "// &
2365 "specifications are subject to restrictions imposed by the input "// &
2366 "file format, making this option useful only for very simple use cases. "// &
2367 "Refer to OPENPMD_CFG_FILE for anything else.", &
2368 default_c_val=
"{}", type_of_var=
char_t)
2372 CALL keyword_create(keyword, __location__, name=
"OPENPMD_CFG_FILE", &
2373 description=
"Runtime config file for openPMD output. This parameter takes precedence over OPENPMD_CFG.", default_c_val=
"", &
2378 END SUBROUTINE add_generic_openpmd_arguments
2384 SUBROUTINE create_mo_section( &
2385 print_key, section_name, description, stride_default, stride_usage, &
2386 print_level, do_write_keyname)
2389 CHARACTER(len=*),
INTENT(IN) :: section_name, description, stride_usage, do_write_keyname
2390 INTEGER,
DIMENSION(3),
INTENT(IN) :: stride_default
2391 INTEGER,
INTENT(IN) :: print_level
2398 description=
"Controls the printing of the molecular orbitals (MOs) as " &
2399 //trim(adjustl(description))// &
2401 " It can be used during a Real Time calculation to print the MOs."// &
2402 " In this case, the density corresponding to the time dependent MO is printed"// &
2403 " instead of the wave-function.", &
2404 print_level=print_level, filename=
"")
2407 description=
"The stride (X,Y,Z) used to write the "//trim(adjustl(description))//
" file "// &
2408 "(larger values result in smaller "// &
2409 trim(adjustl(description))// &
2410 " files). You can provide 3 numbers (for X,Y,Z) or"// &
2411 " 1 number valid for all components.", &
2412 usage=stride_usage, n_var=-1, default_i_vals=stride_default, type_of_var=
integer_t)
2416 CALL keyword_create(keyword, __location__, name=do_write_keyname, &
2417 description=
"If the MO " &
2418 //trim(adjustl(description)) &
2419 //
" file should be written. If false, the eigenvalues are still computed."// &
2420 " Can also be useful in combination with STM calculations", &
2421 default_l_val=.true., lone_keyword_l_val=.true.)
2426 description=
"If the printkey is activated controls the number of lumos"// &
2427 " that are printed and dumped as "//trim(adjustl(description))//
" (-1=all)", &
2433 keyword, __location__, name=
"nhomo", &
2434 description=
"If the printkey is activated controls the number of homos that dumped as "// &
2435 trim(adjustl(description))// &
2437 " eigenvalues are always all dumped", &
2443 keyword, __location__, name=
"homo_list", &
2444 description=
"If the printkey is activated controls the index of homos dumped as openPMD,"// &
2445 " eigenvalues are always all dumped. It overrides nhomo.", &
2446 usage=
"HOMO_LIST {integer} {integer} .. {integer} ", type_of_var=
integer_t, &
2447 n_var=-1, repeats=.true.)
2451 END SUBROUTINE create_mo_section
2453 SUBROUTINE create_e_density_section( &
2454 print_key, section_name, description, stride_default, &
2455 stride_usage, print_level)
2458 CHARACTER(len=*),
INTENT(IN) :: section_name, description, stride_usage
2459 INTEGER,
DIMENSION(3),
INTENT(IN) :: stride_default
2460 INTEGER,
INTENT(IN) :: print_level
2467 description=
"Controls the printing of "//trim(adjustl(description))//
" files with "// &
2468 "the electronic density and, for LSD calculations, the spin density.", &
2469 print_level=print_level, filename=
"")
2471 description=
"The stride (X,Y,Z) used to write the "//trim(adjustl(description))//
" file "// &
2472 "(larger values result in smaller "// &
2473 trim(adjustl(description))// &
2474 " files). You can provide 3 numbers (for X,Y,Z) or"// &
2475 " 1 number valid for all components.", &
2476 usage=stride_usage, n_var=-1, default_i_vals=stride_default, type_of_var=
integer_t)
2480 CALL keyword_create(keyword, __location__, name=
"DENSITY_INCLUDE", &
2481 description=
"Which parts of the density to include. In GAPW the electronic density "// &
2482 "is divided into a hard and a soft component, and the default (TOTAL_HARD_APPROX) "// &
2483 "is to approximate the hard density as a spherical gaussian and to print the smooth "// &
2484 "density accurately. This avoids potential artefacts originating from the hard density. "// &
2485 "If the TOTAL_DENSITY keyword is used the hard density will be computed more accurately "// &
2486 "but may introduce non-physical features. The SOFT_DENSITY keyword will lead to only the "// &
2487 "soft density being printed. In GPW these options have no effect and the cube file will "// &
2488 "only contain the valence electron density.", &
2489 usage=
"DENSITY_INCLUDE TOTAL_HARD_APPROX", &
2490 enum_c_vals=
s2a(
"TOTAL_HARD_APPROX",
"TOTAL_DENSITY",
"SOFT_DENSITY"), &
2491 enum_desc=
s2a(
"Print (hard+soft) density where the hard components shape is approximated", &
2492 "Print (hard+soft) density. Only has an effect "// &
2493 "if PAW atoms are present. NOTE: The total "// &
2494 "in real space might exhibit unphysical features "// &
2495 "like spikes due to the finite and thus "// &
2496 "truncated g vector", &
2497 "Print only the soft density"), &
2505 END SUBROUTINE create_e_density_section
2516 SUBROUTINE create_elf_print_section( &
2517 print_key, section_name, description, stride_default, stride_usage, print_level, filename)
2520 CHARACTER(len=*),
INTENT(IN) :: section_name, description, stride_usage, filename
2521 INTEGER,
DIMENSION(3),
INTENT(IN) :: stride_default
2522 INTEGER,
INTENT(IN) :: print_level
2528 description=
"Controls printing of "//trim(adjustl(description))// &
2529 " files with the electron localization function (ELF). "// &
2530 "Note that the value of ELF is defined between 0 and 1: "// &
2531 "Pauli kinetic energy density normalized by the kinetic energy density "// &
2532 "of a uniform el. gas of same density.", print_level=print_level, filename=filename)
2535 description=
"The stride (X,Y,Z) used to write the file (larger values result in smaller files). "// &
2536 "You can provide 3 numbers (for X,Y,Z) or 1 number valid for all components.", &
2537 usage=stride_usage, n_var=-1, default_i_vals=stride_default, type_of_var=
integer_t)
2541 CALL keyword_create(keyword, __location__, name=
"density_cutoff", &
2542 description=
" ", usage=
"density_cutoff 0.0001", repeats=.false., n_var=1, &
2543 type_of_var=
real_t, default_r_val=1.0e-10_dp)
2546 END SUBROUTINE create_elf_print_section
2552 SUBROUTINE create_dos_section(print_key)
2561 description=
"Print Density of States (DOS) (only available states from SCF)", &
2565 description=
"Append the DOS obtained at different iterations to the output file. "// &
2566 "By default the file is overwritten", &
2567 usage=
"APPEND", default_l_val=.false., &
2568 lone_keyword_l_val=.true.)
2573 description=
"Histogramm energy spacing.", &
2574 usage=
"DELTA_E 0.0005", type_of_var=
real_t, default_r_val=0.001_dp)
2579 description=
"Specify the number of digits used to print density and occupation", &
2585 description=
"Specify a Monkhorst-Pack grid with which to compute the density of states. "// &
2586 "Works only for a k-point calculation", &
2587 usage=
"MP_GRID {integer} {integer} {integer}", default_i_vals=[-1], &
2592 END SUBROUTINE create_dos_section
2605 NULLIFY (subsection)
2609 description=
"Print out the DOS projected per kind and angular momentum ", &
2612 description=
"Print out PDOS distinguishing all angular momentum components.", &
2613 usage=
"COMPONENTS", default_l_val=.false., &
2614 lone_keyword_l_val=.true.)
2618 description=
"Append the PDOS obtained at different iterations to the PDOS output file. "// &
2619 "By default the file is overwritten", &
2620 usage=
"APPEND", default_l_val=.false., &
2621 lone_keyword_l_val=.true.)
2625 keyword, __location__, name=
"NLUMO", &
2626 description=
"Number of virtual orbitals to be added to the MO set (-1=all)."//
newline// &
2627 "CAUTION: Setting this value to be higher than the "// &
2628 "number of states present may cause a Cholesky error."//
newline// &
2629 "This keyword only applies to MO sets, not to XAS_TDP states.", &
2630 usage=
"NLUMO integer", default_i_val=0)
2633 CALL keyword_create(keyword, __location__, name=
"OUT_EACH_STATE", &
2634 variants=[
"OUT_EACH_MO"], &
2635 description=
"Output on the status of the calculation every OUT_EACH_MO states. If -1 no output", &
2636 usage=
"OUT_EACH_STATE integer", default_i_val=-1)
2641 description=
"Controls the printing of local PDOS, projected on subsets"// &
2642 " of atoms given through lists", &
2643 n_keywords=4, n_subsections=0, repeats=.true.)
2645 description=
"Print out PDOS distinguishing all angular momentum components.", &
2646 usage=
"COMPONENTS", default_l_val=.false., &
2647 lone_keyword_l_val=.true.)
2652 description=
"Specifies a list of indexes of atoms where to project the DOS ", &
2653 usage=
"LIST {integer} {integer} .. {integer} ", type_of_var=
integer_t, &
2654 n_var=-1, repeats=.true.)
2662 description=
"Controls the printing of local PDOS, projected on 3D volume in real space,"// &
2663 " the volume is defined in terms of position with respect to atoms in the lists", &
2664 n_keywords=4, n_subsections=0, repeats=.true.)
2667 description=
"Specifies a list of indexes of atoms used to define the real space volume ", &
2668 usage=
"LIST {integer} {integer} .. {integer} ", type_of_var=
integer_t, &
2669 n_var=-1, repeats=.true.)
2674 description=
"range of positions in Cartesian direction x: all grid points within "// &
2675 "this range from at least one atom of the list are considered", &
2676 usage=
"XRANGE -10.0 10.0", unit_str=
"angstrom", n_var=2, type_of_var=
real_t)
2680 description=
"range of positions in Cartesian direction y: all grid points within "// &
2681 "this range from at least one atom of the list are considered", &
2682 usage=
"YRANGE -10.0 10.0", unit_str=
"angstrom", n_var=2, type_of_var=
real_t)
2686 description=
"range of positions in Cartesian direction z: all grid points within "// &
2687 "this range from at least one atom of the list are considered", &
2688 usage=
"ZRANGE -10.0 10.0", unit_str=
"angstrom", n_var=2, type_of_var=
real_t)
2693 description=
"Only project states with the energy values in the given interval. "// &
2694 "Default is all states.", &
2695 usage=
"ERANGE -1.0 1.0", unit_str=
"hartree", n_var=2, type_of_var=
real_t)
2708 SUBROUTINE create_wannier_section(print_key)
2717 description=
"Interface to Wannier90 code. (EXPERIMENTAL)", &
2721 description=
"The seedname for the Wannier90 calculation (body of filenames).", &
2722 usage=
"SEED_NAME filename", default_c_val=
"wannier90", &
2723 n_var=1, type_of_var=
char_t)
2728 description=
"The dimensions of the Monkhorst-Pack k-point grid. ", &
2729 usage=
"MP_GRID 6 6 6", n_var=-1, default_i_vals=[10, 10, 10], type_of_var=
integer_t)
2734 variants=[
"ADDED_BANDS"], &
2735 description=
"Number of MOs/Bands added to the Band Structure calculation.", &
2740 CALL keyword_create(keyword, __location__, name=
"EXCLUDE_BANDS", &
2741 description=
"List of Bands excluded in the Wannier calculation.", &
2742 usage=
"EXCLUDE_BANDS b1 b2 ...", n_var=-1, repeats=.true., &
2747 CALL keyword_create(keyword, __location__, name=
"WANNIER_FUNCTIONS", &
2748 description=
"Number of Wannier functions to be calculated. ", &
2749 usage=
"WANNIER_FUNCTIONS 6", n_var=1, default_i_val=0, &
2754 END SUBROUTINE create_wannier_section
2760 SUBROUTINE create_stm_section(print_key)
2768 description=
"Controls the printing of cubes for the generation of STM images.", &
2771 description=
"The stride (X,Y,Z) used to write the cube file "// &
2772 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
2773 " 1 number valid for all components.", &
2774 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
2779 description=
"If the printkey is activated controls the number of additional lumos"// &
2780 " that are computed to be able to reproduce STM images obtained"// &
2781 " from positive bias (imaging unoccupied states)", &
2787 description=
"Bias energy for scanning tunneling microscopy (STM) image generation. "// &
2788 "Orbital densities are summed according to the bias energy. "// &
2789 "For negative values, states in the range ]EF+bias,EF] are summed, "// &
2790 "While positive values sum states in the range [EF,EF+bias[. "// &
2791 "If positive biases are used, sufficiently many unoccupied stated "// &
2792 "(see ADDED_MOS and NLUMO ) should be computed.", &
2793 n_var=-1, type_of_var=
real_t, default_r_vals=[0.0_dp], unit_str=
'eV')
2798 description=
"Tip orbital symmetry in Tersoff-Hamann approximation to compute STM images", &
2800 default_i_val=
orb_s, &
2801 usage=
"TH_TORB s dz2", &
2802 enum_c_vals=
s2a(
"S",
"PX",
"PY",
"PZ",
"DXY",
"DYZ",
"DZX",
"DX2",
"DY2",
"DZ2"), &
2803 enum_i_vals=[
orb_s,
orb_px,
orb_py,
orb_pz,
orb_dxy,
orb_dyz,
orb_dzx,
orb_dx2,
orb_dy2,
orb_dz2], &
2804 enum_desc=
s2a(
"s orbital",
"px orbital",
"py orbital",
"pz orbital", &
2805 "dxy orbital",
"dyz orbital",
"dzx orbital",
"x^2 orbital",
"y^2 orbital",
"z^2 orbital"))
2810 description=
"By default the reference energy is the Fermi energy. In order to compare"// &
2811 " with STS experiments, where specific energy ranges are addressed, here"// &
2812 " one can set a different reference energy."// &
2813 " The energy range is anyway controlled by the BIAS", &
2814 type_of_var=
real_t, default_r_val=0.0_dp, unit_str=
'eV')
2819 description=
"append the cube files when they already exist", &
2820 default_l_val=.false., lone_keyword_l_val=.true.)
2824 END SUBROUTINE create_stm_section
2830 SUBROUTINE create_wfn_mix_section(section)
2837 NULLIFY (subsection)
2840 cpassert(.NOT.
ASSOCIATED(section))
2843 description=
"A section that allows manipulation of the MO coeffs, "// &
2844 "e.g. for changing a ground state into an excited state. "// &
2845 "Starting from a copy of the original MOs, changes can be made "// &
2846 "by adding linear combinations of HOMO/LUMO of the original MOs to the result MOs. "// &
2847 "This method is called after an SCF optimization or before an RTP run if "// &
2848 "INITIAL_WFN=RESTART_WFN. Note that if called after an SCF optimization, a restart file "// &
2849 "with the mixed MOs is saved. This is not the case for an RTP with "// &
2850 "INITIAL_WFN=RESTART_WFN.", &
2851 n_keywords=1, n_subsections=0, repeats=.false.)
2853 CALL keyword_create(keyword, __location__, name=
"OVERWRITE_MOS", &
2854 description=
"If set to True, the active molecular orbitals in memory will be replaced by the mixed wfn "// &
2855 "at the end of the wfn mixing procedure. For instance, you can then use this new set of MOs to perform "// &
2856 "RTP or EMD directly. Note that in the case of an RTP run with INITIAL_WFN=RESTART_WFN, the OVERWRITE_MOS "// &
2857 "keyword is not used.", &
2858 default_l_val=.false., lone_keyword_l_val=.true.)
2863 description=
"Update a result MO with with a linear combination of original MOs."// &
2864 " This section can be repeated to build arbitrary linear combinations using repeatedly y=a*y+b*x. "// &
2865 "RESULT is (y), RESULT_SCALE is (a), ORIG is (x), ORIG_SCALE is (b)", &
2866 n_keywords=1, n_subsections=0, repeats=.true.)
2868 CALL keyword_create(keyword, __location__, name=
"RESULT_MO_INDEX", &
2869 description=
"Index of the MO (y) to be modified. Counting down in energy: "// &
2870 "set to 1 for the highest MO, to 3 for the highest MO-2.", &
2871 usage=
"RESULT_MO_INDEX 1", type_of_var=
integer_t, default_i_val=0)
2875 CALL keyword_create(keyword, __location__, name=
"RESULT_MARKED_STATE", &
2876 description=
"Specifies the MO according to "// &
2877 "the marks set in MOLECULAR_STATES. The value corresponds to the repetition "// &
2878 "of MARK_STATES in MOLECULAR_STATES", &
2879 usage=
"RESULT_MARKED_STATE 1", type_of_var=
integer_t, default_i_val=0)
2883 CALL keyword_create(keyword, __location__, name=
"REVERSE_MO_INDEX", &
2884 description=
"Reverses the index order of the OCCUPIED and EXTERNAL MOs. With this keyword "// &
2885 "ORIG_MO_INDEX/RESULT_MO_INDEX 1 point to the lowest energy MO (instead of the highest) "// &
2886 "and counts up in energy. The VIRTUAL MOs indexing is unchanged.", &
2887 default_l_val=.false., lone_keyword_l_val=.true.)
2891 CALL keyword_create(keyword, __location__, name=
"RESULT_SPIN_INDEX", &
2892 description=
"Spin of the MO (y) to be modified.", &
2893 enum_c_vals=
s2a(
"Alpha",
"Beta"), &
2894 enum_i_vals=[1, 2], &
2896 enum_desc=
s2a(
"Majority spin",
"Minority spin"))
2900 CALL keyword_create(keyword, __location__, name=
"RESULT_SCALE", &
2901 description=
"Scaling factor of the result variable (a).", &
2902 usage=
"RESULT_SCALE 0.0", type_of_var=
real_t)
2906 CALL keyword_create(keyword, __location__, name=
"ORIG_MO_INDEX", &
2907 description=
"Index of the original MO (x). "// &
2908 "If ORIG_TYPE is OCCUPIED, it counts down in energy: set to 1 to point to "// &
2909 "the highest MO and to 3 for the highest MO-2. "// &
2910 "If ORIG_TYPE is VIRTUAL, it counts up in energy: set to 1 to point to "// &
2911 "the lowest virtual MO and to 3 for the lowest MO+2. "// &
2912 "If ORIG_TYPE is EXTERNAL, it counts down in energy for the external "// &
2913 "set of MOs: set to 1 to point to the highest MO and to 3 for the highest MO-2. "// &
2914 "Do not set to zero or negative values.", &
2915 usage=
"ORIG_MO_INDEX 1", type_of_var=
integer_t, default_i_val=0)
2919 CALL keyword_create(keyword, __location__, name=
"ORIG_MARKED_STATE", &
2920 description=
"Specifies the MO according to "// &
2921 "the marks set in MOLECULAR_STATES. The value corresponds to the repetition "// &
2922 "of MARK_STATES in MOLECULAR_STATES", &
2923 usage=
"ORIG_MARKED_STATE 1", type_of_var=
integer_t, default_i_val=0)
2927 CALL keyword_create(keyword, __location__, name=
"ORIG_SPIN_INDEX", &
2928 description=
"Spin of the MO (x) to be modified.", &
2929 enum_c_vals=
s2a(
"Alpha",
"Beta"), &
2930 enum_i_vals=[1, 2], &
2932 enum_desc=
s2a(
"Majority spin",
"Minority spin"))
2937 description=
"Scaling factor of the original variable (b).", &
2938 usage=
"ORIG_SCALE 0.0", type_of_var=
real_t)
2943 description=
"Type of the original MO. Note that if ADDED_MOS was used in the "// &
2944 "SCF construction of the MO matrix, these extra MOs are also treated as OCCUPIED. ", &
2945 enum_c_vals=
s2a(
"OCCUPIED",
"VIRTUAL",
'EXTERNAL'), &
2946 usage=
"ORIG_TYPE OCCUPIED", &
2948 enum_desc=
s2a(
"The original MO is the result of the SCF procedure. This can also contain "// &
2949 "unoccupied MOs if the SCF%ADDED_MOS keyword was used.", &
2950 "The original MO is taken from the result of additional MOs calculated a "// &
2951 "posteriori of the SCF by request of the user. E.g. by specifying print%mo_cubes%nlumo. ", &
2952 "The orginal MO is from an external .wfn file. Use the keyword "// &
2953 "ORIG_EXT_FILE_NAME to define its name."), &
2958 CALL keyword_create(keyword, __location__, name=
"ORIG_EXT_FILE_NAME", &
2959 description=
"Name of the wavefunction file to read the original MO from. "// &
2960 "For instance, a restart wfn file from SCF calculation or an excited state from XAS_TDP calculation. "// &
2961 "If no file is specified, the run will crash. "// &
2962 "Currently, a RTP restart file (.rtpwfn) cannot be used as reference. "// &
2963 "Currently, this file SHALL have the basis set, number of MO and the same number of spin as the one "// &
2964 "from the SCF cycle.", &
2965 usage=
"ORIG_EXT_FILE_NAME <FILENAME>", &
2966 default_lc_val=
"EMPTY")
2973 END SUBROUTINE create_wfn_mix_section
2982 SUBROUTINE create_implicit_psolver_section(section)
2988 cpassert(.NOT.
ASSOCIATED(section))
2989 CALL section_create(section, __location__, name=
"IMPLICIT_PSOLVER", &
2990 description=
"Controls printing of cube files for data from the implicit "// &
2991 "(generalized) Poisson solver.", &
2993 n_keywords=0, n_subsections=3, repeats=.false.)
2995 NULLIFY (keyword, print_key)
2999 description=
"Controls the printing of a cube file with dielectric constant from "// &
3000 "the implicit (generalized) Poisson solver.", &
3004 description=
"The stride (X,Y,Z) used to write the cube file "// &
3005 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
3006 " 1 number valid for all components.", &
3007 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
3011 description=
"append the cube files when they already exist", &
3012 default_l_val=.false., lone_keyword_l_val=.true.)
3015 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
3016 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
3017 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
3026 print_key, __location__,
"DIRICHLET_BC_CUBE", &
3027 description=
"Controls the printing of cube files with unit step functions (constraints)"// &
3028 " representing Dirichlet-type (boundary) regions defined in the implicit (generalized) Poisson"// &
3029 " solver section. The regions remain unchanged throughout the calculations. If the Dirichlet"// &
3030 " regions are relatively large and/or the number of partitions is quite high, in order to save memory,"// &
3031 " generate the cube files in early steps and perform the rest of the calculations with this keyword"// &
3036 description=
"Print tiles that tessellate the Dirichlet regions into cube files. If TRUE, "// &
3037 "generates cube files as many as the total number of tiles.", &
3038 usage=
"TILE_CUBES <logical>", &
3039 default_l_val=.false., lone_keyword_l_val=.true.)
3043 description=
"The stride (X,Y,Z) used to write the cube file "// &
3044 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
3045 " 1 number valid for all components.", &
3046 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
3050 description=
"append the cube files when they already exist", &
3051 default_l_val=.false., lone_keyword_l_val=.true.)
3054 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
3055 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
3056 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
3065 description=
"Controls the printing of cube files with penalty charges induced to "// &
3066 "Dirichlet regions by Lagrange multipliers (implicit Poisson solver).", &
3070 description=
"The stride (X,Y,Z) used to write the cube file "// &
3071 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
3072 " 1 number valid for all components.", &
3073 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
3077 description=
"append the cube files when they already exist", &
3078 default_l_val=.false., lone_keyword_l_val=.true.)
3081 CALL keyword_create(keyword, __location__, name=
"MAX_FILE_SIZE_MB", &
3082 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
3083 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
3090 END SUBROUTINE create_implicit_psolver_section
3103 cpassert(.NOT.
ASSOCIATED(section))
3104 CALL section_create(section, __location__, name=
"interpolator", &
3105 description=
"controls the interpolation for the G-space term", &
3106 n_keywords=5, n_subsections=0, repeats=.false.)
3108 NULLIFY (keyword, print_key)
3110 CALL keyword_create(keyword, __location__, name=
"aint_precond", &
3111 description=
"the approximate inverse to use to get the starting point"// &
3112 " for the linear solver of the spline3 methods", &
3113 usage=
"aint_precond copy", &
3115 enum_c_vals=
s2a(
"copy",
"spl3_nopbc_aint1",
"spl3_nopbc_precond1", &
3116 "spl3_nopbc_aint2",
"spl3_nopbc_precond2",
"spl3_nopbc_precond3"), &
3123 description=
"The preconditioner used"// &
3124 " for the linear solver of the spline3 methods", &
3125 usage=
"precond copy", &
3127 enum_c_vals=
s2a(
"copy",
"spl3_nopbc_aint1",
"spl3_nopbc_precond1", &
3128 "spl3_nopbc_aint2",
"spl3_nopbc_precond2",
"spl3_nopbc_precond3"), &
3135 description=
"accuracy on the solution for spline3 the interpolators", &
3136 usage=
"eps_x 1.e-15", default_r_val=1.e-10_dp)
3141 description=
"accuracy on the residual for spline3 the interpolators", &
3142 usage=
"eps_r 1.e-15", default_r_val=1.e-10_dp)
3147 variants=[
'maxiter'], &
3148 description=
"the maximum number of iterations", &
3149 usage=
"max_iter 200", default_i_val=100)
3155 description=
"if convergence information about the linear solver"// &
3156 " of the spline methods should be printed", &
3158 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_overlap_gto
integer, parameter, public mokp_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.
character(len=1), parameter, public newline