79 numerical,
oe_gllb,
oe_lb,
oe_none,
oe_saop,
oe_sic,
orb_dx2,
orb_dxy,
orb_dy2,
orb_dyz, &
170#include "./base/base_uses.f90"
175 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'input_cp2k_print_dft'
190 TYPE(
section_type),
POINTER :: print_key, sub_print_key, subsection
192 cpassert(.NOT.
ASSOCIATED(section))
194 description=
"Section of possible print options in DFT code.", &
195 n_keywords=0, n_subsections=1, repeats=.false.)
197 NULLIFY (print_key, keyword, subsection)
200 description=
"Controls the printing of the banner of the MM program", &
206 description=
"Controls the printing of a file with all basis sets used.", &
212 description=
"Controls the printing of the kinetic energy", &
218 description=
"Print all derivatives after the DFT calculation", &
222 description=
"Specify the number of digits used to print derivatives", &
231 description=
"Controls the printing of the neighbor lists", &
235 description=
"Activates the printing of the orbital "// &
236 "orbital neighbor lists, "// &
237 "i.e. the overlap neighbor lists", &
238 default_l_val=.false., &
239 lone_keyword_l_val=.true.)
244 name=
"sab_aux_fit", &
245 description=
"Activates the printing of the orbital "// &
246 "orbital neighbor lists wavefunction fitting basis, "// &
247 "i.e. the overlap neighbor lists", &
248 default_l_val=.false., &
249 lone_keyword_l_val=.true.)
254 name=
"sab_aux_fit_vs_orb", &
255 description=
"Activates the printing of the orbital "// &
256 "orbital mixed neighbor lists of wavefunction fitting basis, "// &
257 "and the orbital basis, i.e. the overlap neighbor lists", &
258 default_l_val=.false., &
259 lone_keyword_l_val=.true.)
265 description=
"Activates the printing of the vdW SCP "// &
267 default_l_val=.false., &
268 lone_keyword_l_val=.true.)
274 description=
"Activates the printing of the vdW "// &
275 "neighbor lists (from DFT, DFTB, SE), "// &
276 "i.e. the dispersion neighbor lists", &
277 default_l_val=.false., &
278 lone_keyword_l_val=.true.)
284 description=
"Activates the printing of the "// &
285 "neighbor lists used for coordination numbers in vdW DFT-D3", &
286 default_l_val=.false., &
287 lone_keyword_l_val=.true.)
293 description=
"Activates the printing of the orbital "// &
294 "nuclear attraction neighbor lists (erfc potential)", &
295 default_l_val=.false., &
296 lone_keyword_l_val=.true.)
302 description=
"Activates the printing of the orbital "// &
303 "GTH-PPL neighbor lists (local part of the "// &
304 "Goedecker-Teter-Hutter pseudo potentials)", &
305 default_l_val=.false., &
306 lone_keyword_l_val=.true.)
312 description=
"Activates the printing of the orbital "// &
313 "GTH-PPNL neighbor lists (non-local part of the "// &
314 "Goedecker-Teter-Hutter pseudo potentials)", &
315 default_l_val=.false., &
316 lone_keyword_l_val=.true.)
322 description=
"Activates the printing of the orbital "// &
323 "PAW-projector neighbor lists (only GAPW)", &
324 default_l_val=.false., &
325 lone_keyword_l_val=.true.)
331 description=
"Activates the printing of the two-center "// &
332 "neighbor lists for Coulomb type interactions in NDDO ", &
333 default_l_val=.false., &
334 lone_keyword_l_val=.true.)
340 description=
"Activates the printing of the long-range SE correction "// &
341 "neighbor lists (only when doing long-range SE with integral scheme KDSO and KDSO-d)", &
342 default_l_val=.false., lone_keyword_l_val=.true.)
348 description=
"Activates the printing of the DFTB Ewald "// &
350 default_l_val=.false., &
351 lone_keyword_l_val=.true.)
357 description=
"Activates the printing of the xTB sr-Coulomb "// &
359 default_l_val=.false., &
360 lone_keyword_l_val=.true.)
366 description=
"Activates the printing of core interaction "// &
368 default_l_val=.false., &
369 lone_keyword_l_val=.true.)
375 description=
"Activates the printing of XB interaction from (xTB) "// &
377 default_l_val=.false., &
378 lone_keyword_l_val=.true.)
383 name=
"sab_xtb_nonbond", &
384 description=
"Activates the printing of nonbonded interaction from (xTB) "// &
386 default_l_val=.false., &
387 lone_keyword_l_val=.true.)
393 description=
"Activates the printing of RI orbital-orbital "// &
395 default_l_val=.false., &
396 lone_keyword_l_val=.true.)
402 description=
"Activates the printing of RI basis-projector interaction "// &
404 default_l_val=.false., &
405 lone_keyword_l_val=.true.)
411 description=
"Activates the printing of the nuclear orbital "// &
412 "nuclear repulsion neighbor lists (erfc potential)", &
413 default_l_val=.false., &
414 lone_keyword_l_val=.true.)
422 description=
"Activates the printing of the subcells used for the "// &
423 "generation of neighbor lists.", unit_str=
"angstrom", &
429 description=
"Controls the printing of the ao (i.e. contracted gaussian) matrices (debug).", &
432 description=
"Print only the matrix data, not the row and column headers", &
433 default_l_val=.false., lone_keyword_l_val=.true.)
437 description=
"Specify the number of digits used to print the AO matrices", &
441 CALL keyword_create(keyword, __location__, name=
"CORE_HAMILTONIAN", &
442 description=
"If the printkey is activated controls the printing of the hamiltonian matrix", &
443 default_l_val=.false., lone_keyword_l_val=.true.)
447 description=
"If the printkey is activated controls the printing of the density (P) matrix", &
448 default_l_val=.false., lone_keyword_l_val=.true.)
452 CALL keyword_create(keyword, __location__, name=
"KINETIC_ENERGY", &
453 description=
"If the printkey is activated controls the printing of the kinetic energy matrix", &
454 default_l_val=.false., lone_keyword_l_val=.true.)
457 CALL keyword_create(keyword, __location__, name=
"KOHN_SHAM_MATRIX", &
458 description=
"If the printkey is activated controls the printing of the Kohn-Sham matrix", &
459 default_l_val=.false., lone_keyword_l_val=.true.)
463 keyword, __location__, name=
"MATRIX_VXC", &
464 description=
"If the printkey is activated compute and print the matrix of the exchange and correlation potential. "// &
465 "Only the GGA part for GPW is printed", &
466 default_l_val=.false., lone_keyword_l_val=.true.)
470 description=
"If the printkey is activated controls the printing of the orthogonalization matrix", &
471 default_l_val=.false., lone_keyword_l_val=.true.)
475 description=
"If the printkey is activated controls the printing of the overlap matrix", &
476 default_l_val=.false., lone_keyword_l_val=.true.)
479 CALL keyword_create(keyword, __location__, name=
"COMMUTATOR_HR", &
480 description=
"Controls the printing of the [H,r] commutator matrix", &
481 default_l_val=.false., lone_keyword_l_val=.true.)
485 CALL keyword_create(keyword, __location__, name=
"FERMI_CONTACT", &
486 description=
"If the printkey is activated controls the printing of the Fermi contact matrix", &
487 default_l_val=.false., lone_keyword_l_val=.true.)
491 keyword, __location__, name=
"PSO", &
492 description=
"If the printkey is activated controls the printing of the paramagnetic spin-orbit matrices", &
493 default_l_val=.false., lone_keyword_l_val=.true.)
497 keyword, __location__, name=
"EFG", &
498 description=
"If the printkey is activated controls the printing of the electric field gradient matrices", &
499 default_l_val=.false., lone_keyword_l_val=.true.)
502 CALL keyword_create(keyword, __location__, name=
"POTENTIAL_ENERGY", &
503 description=
"If the printkey is activated controls the printing of the potential energy matrix", &
504 default_l_val=.false., lone_keyword_l_val=.true.)
508 description=
"If the printkey is activated controls the printing of the OCE HARD matrix", &
509 default_l_val=.false., lone_keyword_l_val=.true.)
513 description=
"If the printkey is activated controls the printing of the OCE SOFT matrix", &
514 default_l_val=.false., lone_keyword_l_val=.true.)
518 description=
"If the printkey is activated controls the printing of the w matrix", &
519 default_l_val=.false., lone_keyword_l_val=.true.)
522 CALL keyword_create(keyword, __location__, name=
"W_MATRIX_AUX_FIT", &
523 description=
"If the printkey is activated controls the printing of the w matrix", &
524 default_l_val=.false., lone_keyword_l_val=.true.)
528 description=
"If the printkey is activated controls the printing "// &
529 "of derivatives (for the matrixes that support this)", &
530 default_l_val=.false., lone_keyword_l_val=.true.)
537 print_key, __location__,
"MO", &
538 description=
"Controls the printing of the molecular orbital (MO) information. The requested MO information "// &
539 "is printed for all occupied MOs by default. Use the MO_INDEX_RANGE keyword to restrict the number "// &
540 "of the MOs or to print the MO information for unoccupied MOs. With diagonalization, additional MOs "// &
541 "have to be made available for printout using the ADDED_MOS keyword in the SCF section. With OT, "// &
542 "it is sufficient to specify the desired MO_INDEX_RANGE. The OT eigensolver can be controlled with "// &
543 "the EPS_LUMO and MAX_ITER_LUMO keywords in the SCF section.", &
546 description=
"Print the MOs in the Cartesian basis instead of the default spherical basis.", &
547 default_l_val=.false., lone_keyword_l_val=.true.)
551 variants=
s2a(
"EIGENVALUES",
"EIGVALS"), &
552 description=
"Print the MO energies (eigenvalues).", &
553 default_l_val=.false., lone_keyword_l_val=.true.)
557 variants=
s2a(
"EIGENVECTORS",
"EIGVECS"), &
558 description=
"Print the MO coefficients (eigenvectors).", &
559 default_l_val=.false., lone_keyword_l_val=.true.)
562 CALL keyword_create(keyword, __location__, name=
"OCCUPATION_NUMBERS", &
563 variants=
s2a(
"OCCNUMS"), &
564 description=
"Print the MO occupation numbers.", &
565 default_l_val=.false., lone_keyword_l_val=.true.)
568 CALL keyword_create(keyword, __location__, name=
"OCCUPATION_NUMBERS_STATS", &
569 variants=
s2a(
"OCCNUMSTATS"), &
570 description=
"Print some stats (max number of occupied MOs, etc.) of the MO occupation numbers."// &
571 " First logical toggles stats printing, first real is the occupied threshold.", &
572 type_of_var=
char_t, n_var=-1, &
573 default_c_vals=[
".FALSE.",
"1.0E-6 "], &
574 lone_keyword_c_vals=[
".TRUE."], &
575 usage=
"OCCUPATION_NUMBERS_STATS {Logical} [{Real}]")
579 description=
"Specify the number of digits used to print the MO information.", &
584 name=
"MO_INDEX_RANGE", &
585 variants=
s2a(
"MO_RANGE",
"RANGE"), &
586 description=
"Print only the requested subset of MOs. The indices of the first and "// &
587 "the last MO have to be specified to define the range. -1 as the last MO index "// &
588 "prints all available orbitals with diagonalisation (ADDED_MOS) and all orbitals with OT.", &
592 default_i_vals=[0, 0], &
593 usage=
"MO_INDEX_RANGE 10 15")
600 description=
"Write the molecular orbitals in Molden file format, for visualisation.", &
603 description=
"Specifies the number of significant digits retained. 3 is OK for visualization.", &
604 usage=
"NDIGITS {int}", &
609 description=
"Representation of Gaussian-type orbitals", &
611 enum_c_vals=
s2a(
"CARTESIAN",
"SPHERICAL"), &
613 "Cartesian Gaussian orbitals. Use with caution", &
614 "Spherical Gaussian orbitals. Incompatible with VMD"), &
621 CALL create_mo_section(print_key,
"MO_CUBES",
"cube", [2, 2, 2],
"STRIDE 1 1 1",
high_print_level,
"write_cube")
623 description=
"append the cube files when they already exist", &
624 default_l_val=.false., lone_keyword_l_val=.true.)
627 CALL keyword_create(keyword, __location__, name=
"max_file_size_mb", &
628 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
629 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
635 CALL create_mo_section( &
636 print_key,
"MO_OPENPMD",
"openPMD", [1, 1, 1],
"STRIDE 2 2 2",
debug_print_level + 1,
"write_openpmd")
637 CALL add_generic_openpmd_arguments(print_key)
641 CALL create_stm_section(print_key)
645 CALL create_wfn_mix_section(subsection)
650 description=
"Write a TREXIO file to disk.", &
651 n_keywords=1, n_subsections=0, repeats=.false.)
653 description=
"Body of Filename for the trexio file.", &
654 usage=
"FILENAME {name}", default_c_val=
"TREXIO", &
659 description=
"Store the MOs in the Cartesian basis instead of the default spherical basis.", &
660 default_l_val=.false., lone_keyword_l_val=.true.)
667 description=
"Controls the printing of some gapw related information (debug).", &
668 n_keywords=0, n_subsections=1, repeats=.false.)
670 description=
"If the printkey is activated controls if information on"// &
671 " the projectors is printed.", &
676 description=
"If the printkey is activated controls if information on rho0 is printed.", &
684 description=
"Controls the printing of dft control parameters.", &
690 description=
"Controls the printing of kpoint information.", &
696 CALL create_bandstructure_section(subsection)
701 description=
"Controls the checking and printing of an estimate "// &
702 "of the overlap matrix condition number", &
705 description=
"Calculate an estimate of the 1-norm condition number", &
706 default_l_val=.true., lone_keyword_l_val=.true.)
709 CALL keyword_create(keyword, __location__, name=
"DIAGONALIZATION", &
710 description=
"Calculate the 1- and 2-norm condition numbers using diagonalization", &
711 default_l_val=.false., lone_keyword_l_val=.true.)
715 description=
"Calculate the 2-norm condition number using the Arnoldi code (may not be reliable)", &
716 default_l_val=.false., lone_keyword_l_val=.true.)
722 CALL create_e_density_section( &
724 "E_DENSITY_OPENPMD", &
729 CALL add_generic_openpmd_arguments(print_key)
733 CALL create_e_density_section(print_key,
"E_DENSITY_CUBE",
"cube", [2, 2, 2],
"STRIDE 2 2 2",
high_print_level)
735 description=
"append the cube files when they already exist", &
736 default_l_val=.false., lone_keyword_l_val=.true.)
740 CALL keyword_create(keyword, __location__, name=
"XRD_INTERFACE", &
741 description=
"It activates the print out of exponents and coefficients for the"// &
742 " Gaussian expansion of the core densities, based on atom calculations for each kind."// &
743 " The resulting core dansities are needed to compute the form factors."// &
744 " If GAPW the local densities are also given in terms of a Gaussian expansion,"// &
745 " by fitting the difference between local-fhard and local-soft density for each atom."// &
746 " In this case the keyword SOFT_DENSITY is enabled.", &
747 default_l_val=.false., lone_keyword_l_val=.true.)
752 description=
"Number of Gaussian functions used in the expansion of atomic (core) density", &
753 usage=
"NGAUSS 10", n_var=1, default_i_val=12, type_of_var=
integer_t)
761 description=
"Controls printing of cube files with "// &
762 "the total density (electrons+atomic core). Note that "// &
763 "the value of the total density is positive where the "// &
764 "electron density dominates and negative where the core is. "// &
765 "When GPW is enabled this will simply print the combined density "// &
766 "of the valence electrons and charge-balanced core. In GAPW the "// &
767 "electronic density (hard+soft plus a correction term) is printed "// &
768 "together with the charge-balanced core density to produce a complete "// &
769 "representation of the total density.", &
772 description=
"The stride (X,Y,Z) used to write the cube file "// &
773 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
774 " 1 number valid for all components.", &
775 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
780 description=
"append the cube files when they already exist", &
781 default_l_val=.false., lone_keyword_l_val=.true.)
789 description=
"Controls the printing of a cube file with eletrostatic"// &
790 " potential generated by the total density (electrons+ions). It is"// &
791 " valid only for QS with GPW formalism."// &
792 " Note that by convention the potential has opposite sign than the expected physical one.", &
795 description=
"The stride (X,Y,Z) used to write the cube file "// &
796 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
797 " 1 number valid for all components.", &
798 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
802 description=
"append the cube files when they already exist", &
803 default_l_val=.false., lone_keyword_l_val=.true.)
811 description=
"Controls the printing of a cube file with external"// &
812 " potential from the DFT%EXTERNAL_POTENTIAL section only.", &
815 description=
"The stride (X,Y,Z) used to write the cube file "// &
816 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
817 " 1 number valid for all components.", &
818 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
822 description=
"append the cube files when they already exist", &
823 default_l_val=.false., lone_keyword_l_val=.true.)
832 description=
"Controls the output of the electron density to the losslessly"// &
833 " compressed BQB file format, see [Brehm2018]"// &
834 " (via LibBQB see <https://brehm-research.de/bqb>)."// &
835 " Currently does not work with changing cell vector (NpT ensemble).", &
840 description=
"Skips the first step of a MD run (avoids duplicate step if restarted).", &
841 usage=
"SKIP_FIRST T", default_l_val=.false., lone_keyword_l_val=.true.)
845 CALL keyword_create(keyword, __location__, name=
"STORE_STEP_NUMBER", &
846 description=
"Stores the step number and simulation time in the comment line of each BQB"// &
847 " frame. Switch it off for binary compatibility with original CP2k CUBE files.", &
848 usage=
"STORE_STEP_NUMBER F", default_l_val=.true., lone_keyword_l_val=.true.)
853 description=
"Performs an on-the-fly decompression of each compressed BQB frame to check"// &
854 " whether the volumetric data exactly matches, and aborts the run if not so.", &
855 usage=
"CHECK T", default_l_val=.false., lone_keyword_l_val=.true.)
860 description=
"Specify this keyword to overwrite the output BQB file if"// &
861 " it already exists. By default, the data is appended to an existing file.", &
862 usage=
"OVERWRITE T", default_l_val=.false., lone_keyword_l_val=.true.)
867 description=
"Controls how many previous steps are taken into account for extrapolation in"// &
868 " compression. Use a value of 1 to compress the frames independently.", &
869 usage=
"HISTORY 10", n_var=1, default_i_val=10, type_of_var=
integer_t)
873 CALL keyword_create(keyword, __location__, name=
"PARAMETER_KEY", &
874 description=
"Allows to supply previously optimized compression parameters via a"// &
875 " parameter key (alphanumeric character sequence starting with 'at')."// &
876 " Just leave away the 'at' sign here, because CP2k will otherwise"// &
877 " assume it is a variable name in the input", &
878 usage=
"PARAMETER_KEY <KEY>", n_var=1, default_c_val=
"", type_of_var=
char_t)
883 description=
"Controls the time spent to optimize the parameters for compression efficiency.", &
884 usage=
"OPTIMIZE {OFF,QUICK,NORMAL,PATIENT,EXHAUSTIVE}", repeats=.false., n_var=1, &
886 enum_c_vals=
s2a(
"OFF",
"QUICK",
"NORMAL",
"PATIENT",
"EXHAUSTIVE"), &
887 enum_desc=
s2a(
"No optimization (use defaults)",
"Quick optimization", &
888 "Standard optimization",
"Precise optimization",
"Exhaustive optimization"), &
902 CALL create_implicit_psolver_section(subsection)
908 description=
"Controls the printing of a cube file with xc"// &
909 " potential generated by the ZMP method (for the moment). It is"// &
910 " valid only for QS with GPW formalism .", &
913 description=
"The stride (X,Y,Z) used to write the cube file "// &
914 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
915 " 1 number valid for all components.", &
916 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
920 description=
"append the cube files when they already exist", &
921 default_l_val=.false., lone_keyword_l_val=.true.)
929 description=
"Controls the printing of cube files with electric"// &
930 " field generated by the total density (electrons+ions). It is"// &
931 " valid only for QS with GPW formalism.", &
934 description=
"The stride (X,Y,Z) used to write the cube file "// &
935 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
936 " 1 number valid for all components.", &
937 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
941 description=
"append the cube files when they already exist", &
942 default_l_val=.false., lone_keyword_l_val=.true.)
949 CALL create_elf_print_section(print_key,
"ELF_CUBE", &
953 description=
"append the cube files when they already exist", &
954 default_l_val=.false., lone_keyword_l_val=.true.)
961 CALL create_elf_print_section(print_key,
"ELF_OPENPMD", &
964 CALL add_generic_openpmd_arguments(print_key)
969 description=
"Controls the printing of cube files with the local"// &
970 " energy. It is valid only for QS with GPW/GAPW formalism."// &
971 " Meta and hybrid functionals are not possible.", &
974 description=
"The stride (X,Y,Z) used to write the cube file "// &
975 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
976 " 1 number valid for all components.", &
977 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
981 description=
"append the cube files when they already exist", &
982 default_l_val=.false., lone_keyword_l_val=.true.)
990 description=
"Controls the printing of cube files with the local"// &
991 " stress. It is valid only for QS with GPW/GAPW formalism."// &
992 " Meta and hybrid functionals are not possible.", &
995 description=
"The stride (X,Y,Z) used to write the cube file "// &
996 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
997 " 1 number valid for all components.", &
998 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1002 description=
"append the cube files when they already exist", &
1003 default_l_val=.false., lone_keyword_l_val=.true.)
1010 CALL create_dos_section(print_key)
1018 CALL create_wannier_section(print_key)
1025 keyword, __location__, &
1026 name=
"MAX_MOMENT", &
1027 description=
"Maximum moment to be calculated. Values higher than 1 not implemented under periodic boundaries.", &
1028 usage=
"MAX_MOMENT {integer}", &
1037 description=
"Calculate also magnetic moments, only implemented without periodic boundaries", &
1038 usage=
"MAGNETIC yes", &
1041 default_l_val=.false., &
1042 lone_keyword_l_val=.true.)
1047 description=
"Calculate expectation values of the el. multipole moments in their velocity "// &
1048 "representation during RTP. Implemented up to el. quadrupole moment.", &
1049 usage=
"VEL_REPRS yes", &
1052 default_l_val=.false., &
1053 lone_keyword_l_val=.true.)
1058 description=
"Include non local commutator for velocity representations. "// &
1059 "Necessary for origin independent results.", &
1060 usage=
"COM_NL yes", &
1063 default_l_val=.false., &
1064 lone_keyword_l_val=.true.)
1068 name=
"SECOND_REFERENCE_POINT", &
1069 description=
"Use second reference point", &
1070 usage=
"SECOND_REFERENCE_POINT .TRUE.", &
1073 default_l_val=.false., &
1074 lone_keyword_l_val=.true.)
1078 variants=
s2a(
"REF_2"), &
1079 description=
"Define a second reference point for the calculation of the electrostatic moment.", &
1080 usage=
"REFERENCE_2 COM", &
1081 enum_c_vals=
s2a(
"COM",
"COAC",
"USER_DEFINED",
"ZERO"), &
1082 enum_desc=
s2a(
"Use Center of Mass", &
1083 "Use Center of Atomic Charges", &
1084 "Use User Defined Point (Keyword:REF_POINT)", &
1085 "Use Origin of Coordinate System"), &
1093 CALL keyword_create(keyword, __location__, name=
"REFERENCE_POINT_2", &
1094 variants=
s2a(
"REF_POINT_2"), &
1095 description=
"Fixed second reference point for the calculations of the electrostatic moment.", &
1096 usage=
"REFERENCE_POINT_2 x y z", &
1098 n_var=3, default_r_vals=[0._dp, 0._dp, 0._dp], &
1114 description=
"Controls the printing of the Mulliken (spin) population analysis", &
1116 common_iter_levels=1)
1118 keyword, __location__, &
1120 description=
"Print the gross orbital populations (GOP) in addition to the gross atomic populations (GAP) "// &
1121 "and net charges", &
1122 usage=
"PRINT_GOP yes", &
1125 default_l_val=.false., &
1126 lone_keyword_l_val=.true.)
1130 keyword, __location__, &
1132 description=
"Print all information including the full net AO and overlap population matrix", &
1133 usage=
"PRINT_ALL yes", &
1136 default_l_val=.false., &
1137 lone_keyword_l_val=.true.)
1145 description=
"Controls the printing of the Lowdin (spin) population analysis", &
1147 common_iter_levels=1)
1149 keyword, __location__, &
1151 description=
"Print the orbital populations in addition to the atomic populations and net charges", &
1152 usage=
"PRINT_GOP yes", &
1155 default_l_val=.false., &
1156 lone_keyword_l_val=.true.)
1160 keyword, __location__, &
1162 description=
"Print all information including the full symmetrically orthogonalised density matrix", &
1163 usage=
"PRINT_ALL yes", &
1166 default_l_val=.false., &
1167 lone_keyword_l_val=.true.)
1175 description=
"Controls the printing of the Hirshfeld (spin) population analysis", &
1177 common_iter_levels=1)
1178 CALL keyword_create(keyword, __location__, name=
"SELF_CONSISTENT", &
1179 description=
"Calculate charges from the Hirscheld-I (self_consistent) method."// &
1180 " This scales only the full shape function, not the added charge as in the original scheme.", &
1181 usage=
"SELF_CONSISTENT yes", repeats=.false., n_var=1, &
1182 default_l_val=.false., lone_keyword_l_val=.true.)
1185 CALL keyword_create(keyword, __location__, name=
"SHAPE_FUNCTION", &
1186 description=
"Type of shape function used for Hirshfeld partitioning.", &
1187 usage=
"SHAPE_FUNCTION {Gaussian,Density}", repeats=.false., n_var=1, &
1189 enum_c_vals=
s2a(
"GAUSSIAN",
"DENSITY"), &
1190 enum_desc=
s2a(
"Single Gaussian with Colvalent radius", &
1191 "Atomic density expanded in multiple Gaussians"), &
1195 CALL keyword_create(keyword, __location__, name=
"REFERENCE_CHARGE", &
1196 description=
"Charge of atomic partitioning function for Hirshfeld method.", &
1197 usage=
"REFERENCE_CHARGE {Atomic,Mulliken}", repeats=.false., n_var=1, &
1199 enum_c_vals=
s2a(
"ATOMIC",
"MULLIKEN"), &
1200 enum_desc=
s2a(
"Use atomic core charges",
"Calculate Mulliken charges"), &
1205 description=
"Use user defined radii to generate Gaussians."// &
1206 " These radii are defined by the keyword ATOMIC_RADII", &
1207 usage=
"USER_RADIUS yes", repeats=.false., n_var=1, &
1208 default_l_val=.false., lone_keyword_l_val=.true.)
1211 CALL keyword_create(keyword, __location__, name=
"ATOMIC_RADII", &
1212 description=
"Defines custom radii to setup the spherical Gaussians.", &
1213 usage=
"ATOMIC_RADII {real} {real} {real}", repeats=.false., &
1214 unit_str=
"angstrom", &
1215 type_of_var=
real_t, n_var=-1)
1223 description=
"Controls the printing of the EEQ charges", &
1225 common_iter_levels=1, &
1232 description=
"Controls the printing of the MAO (modified atomic orbital) analysis", &
1234 common_iter_levels=1, &
1237 description=
"Threshold for matrix elements in MAO determination.", &
1238 usage=
"EPS_FILTER reps", repeats=.false., n_var=1, &
1239 default_r_val=1.e-8_dp, type_of_var=
real_t)
1242 CALL keyword_create(keyword, __location__, name=
"REFERENCE_BASIS", &
1243 description=
"Basis set used to construct MAO's.", &
1244 usage=
"REFERENCE_BASIS {ORBITAL,PRIMITIVE,EXTERNAL}", repeats=.false., n_var=1, &
1246 enum_c_vals=
s2a(
"ORBITAL",
"PRIMITIVE",
"EXTERNAL"), &
1247 enum_desc=
s2a(
"Use standard orbital basis set",
"Construct basis from primitives of the orbital basis", &
1248 "Read external basis (MAO)"), &
1253 description=
"Print out MAO reference basis.", &
1254 usage=
"PRINT_BASIS {logical}", repeats=.false., n_var=1, &
1255 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1259 description=
"Threshold for gradient in MAO optimization.", &
1260 usage=
"EPS_GRAD reps", repeats=.false., n_var=1, &
1261 default_r_val=1.e-4_dp, type_of_var=
real_t)
1264 CALL keyword_create(keyword, __location__, name=
"EPS_FUNCTION", &
1265 description=
"Threshold for electron defect in MAO optimization.", &
1266 usage=
"EPS_FUNCTION feps", repeats=.false., n_var=1, &
1267 default_r_val=1.e-3_dp, type_of_var=
real_t)
1271 description=
"Maximum allowed iterations for MAO optimization.", &
1272 usage=
"MAX_ITER iter", repeats=.false., n_var=1, &
1277 description=
"Neglect 3 atom terms in MAO analysis.", &
1278 usage=
"NEGLECT_ABC {logical}", repeats=.false., n_var=1, &
1279 default_l_val=.true., lone_keyword_l_val=.true., type_of_var=
logical_t)
1282 CALL keyword_create(keyword, __location__, name=
"AB_THRESHOLD", &
1283 description=
"Threshold for printing of AB shared electron numbers.", &
1284 usage=
"AB_THRESHOLD thr", repeats=.false., n_var=1, &
1285 default_r_val=1.e-2_dp, type_of_var=
real_t)
1288 CALL keyword_create(keyword, __location__, name=
"ABC_THRESHOLD", &
1289 description=
"Threshold for printing of ABC shared electron numbers.", &
1290 usage=
"ABC_THRESHOLD thr", repeats=.false., n_var=1, &
1291 default_r_val=1.e-5_dp, type_of_var=
real_t)
1294 CALL keyword_create(keyword, __location__, name=
"ANALYZE_UNASSIGNED_CHARGE", &
1295 description=
"Calculate atomic contributions to the unassigned charge.", &
1296 usage=
"ANALYZE_UNASSIGNED_CHARGE {logical}", repeats=.false., n_var=1, &
1297 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1305 description=
"Controls the printing of the minimal localized basis analysis", &
1307 common_iter_levels=1, &
1310 description=
"Threshold for matrix elements in basis determination.", &
1311 usage=
"EPS_FILTER reps", repeats=.false., n_var=1, &
1312 default_r_val=1.e-8_dp, type_of_var=
real_t)
1315 CALL keyword_create(keyword, __location__, name=
"FULL_ORTHOGONALIZATION", &
1316 description=
"Orthogonalize the localized minimal basis.", &
1317 usage=
"FULL_ORTHOGONALIZATION {logical}", repeats=.false., n_var=1, &
1318 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1322 description=
"Calculate Mayer Bond Orders.", &
1323 usage=
"BOND_ORDER {logical}", repeats=.false., n_var=1, &
1324 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1328 NULLIFY (sub_print_key)
1330 description=
"Write the minimal basis on Cube files.", &
1333 description=
"The stride (X,Y,Z) used to write the cube file "// &
1334 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1335 " 1 number valid for all components.", &
1336 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1340 description=
"Indexes of the atoms minimal basis to be printed as cube files "// &
1341 "This keyword can be repeated several times "// &
1342 "(useful if you have to specify many indexes).", &
1343 usage=
"ATOM_LIST 1 2", &
1344 n_var=-1, type_of_var=
integer_t, repeats=.true.)
1350 NULLIFY (sub_print_key)
1352 description=
"Write the minimal basis in Molden file format, for visualisation.", &
1355 description=
"Specifies the number of significant digits retained. 3 is OK for visualization.", &
1356 usage=
"NDIGITS {int}", &
1361 description=
"Representation of Gaussian-type orbitals", &
1363 enum_c_vals=
s2a(
"CARTESIAN",
"SPHERICAL"), &
1365 "Cartesian Gaussian orbitals. Use with caution", &
1366 "Spherical Gaussian orbitals. Incompatible with VMD"), &
1378 description=
"Controls energy decomposition analysis", &
1380 common_iter_levels=1, &
1382 CALL keyword_create(keyword, __location__, name=
"REFERENCE_ORB_CANONICAL", &
1383 description=
"Use reference orbitals in canonical form.", &
1384 usage=
"REFERENCE_ORB_CANONICAL {logical}", repeats=.false., n_var=1, &
1385 default_l_val=.true., lone_keyword_l_val=.true., type_of_var=
logical_t)
1388 CALL keyword_create(keyword, __location__, name=
"SKIP_LOCALIZATION", &
1389 description=
"Don't localize the MOs.", &
1390 usage=
"SKIP_LOCALIZATION {logical}", repeats=.false., n_var=1, &
1391 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1394 CALL keyword_create(keyword, __location__, name=
"DETAILED_ENERGY", &
1395 description=
"Calculate detailed atomic decomposition energies.", &
1396 usage=
"DETAILED_ENERGY {logical}", repeats=.false., n_var=1, &
1397 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1400 CALL keyword_create(keyword, __location__, name=
"EWALD_ALPHA_PARAMETER", &
1401 description=
"Calculate Energy Decomposition for a specific alpha value. "// &
1402 "alpha = 1/(2*rc**2), see GTH pseudopotentials.", &
1403 usage=
"EWALD_ALPHA_PARAMETER alpha", repeats=.false., n_var=1, &
1404 default_r_val=0.0_dp, type_of_var=
real_t)
1413 description=
"Controls the printing of the IAO (intrinsic atomic orbital) analysis", &
1415 common_iter_levels=1, &
1418 description=
"Threshold for matrix inversion eigenvalues.", &
1419 usage=
"EPS_SVD reps", repeats=.false., n_var=1, &
1420 default_r_val=0.0_dp, type_of_var=
real_t)
1424 description=
"Threshold in occupation for vectors included.", &
1425 usage=
"EPS_OCC reps", repeats=.false., n_var=1, &
1426 default_r_val=0.0_dp, type_of_var=
real_t)
1429 CALL keyword_create(keyword, __location__, name=
"ATOMIC_CHARGES", &
1430 description=
"Calculate atomic charges from IAO.", &
1431 usage=
"ATOMIC_CHARGES {logical}", repeats=.false., n_var=1, &
1432 default_l_val=.true., lone_keyword_l_val=.true., type_of_var=
logical_t)
1436 NULLIFY (sub_print_key)
1438 description=
"Write the IAO basis in Molden file format, for visualisation.", &
1441 description=
"Specifies the number of significant digits retained. 3 is OK for visualization.", &
1442 usage=
"NDIGITS {int}", &
1447 description=
"Representation of Gaussian-type orbitals", &
1449 enum_c_vals=
s2a(
"CARTESIAN",
"SPHERICAL"), &
1451 "Cartesian Gaussian orbitals. Use with caution", &
1452 "Spherical Gaussian orbitals. Incompatible with VMD"), &
1459 NULLIFY (sub_print_key)
1461 description=
"Controls the printing of the IAO basis "// &
1462 "as *.cube files.", &
1466 description=
"The stride (X,Y,Z) used to write the cube file "// &
1467 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1468 " 1 number valid for all components.", &
1469 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1473 description=
"append the cube files when they already exist", &
1474 default_l_val=.false., lone_keyword_l_val=.true.)
1478 description=
"Indices of the atoms to be included in basis CUBE file printing. ", &
1479 usage=
"ATOM_LIST {integer} {integer} .. {integer} ", &
1480 n_var=-1, type_of_var=
integer_t, repeats=.true.)
1486 NULLIFY (sub_print_key)
1488 description=
"Calculates single center expansion of IAOs ", &
1492 description=
"Maximum l quantum number used in the expansion.", &
1493 usage=
"LMAX 2", n_var=1, default_i_val=3, type_of_var=
integer_t)
1497 description=
"Max number of basis functions used in the expansion."// &
1498 " Default is determined by the orbital basis set.", &
1499 usage=
"NBAS 10", n_var=1, default_i_val=-1, type_of_var=
integer_t)
1503 description=
"Append the OCE basis files when it already exists", &
1504 default_l_val=.false., lone_keyword_l_val=.true.)
1510 NULLIFY (sub_print_key)
1512 description=
"Calculate intrinsic bond orbitals using "// &
1513 "localized MOs in IAO basis.", &
1517 CALL keyword_create(keyword, __location__, name=
"LOCALIZATION_OPERATOR", &
1518 description=
"Operator to be optimized for orbital localization", &
1519 enum_c_vals=
s2a(
"PIPEK_MEZEY",
"PIPEK_MEZEY_4",
"L1NORM"), &
1521 enum_desc=
s2a(
"Use Pipek-Mezey operator (order 2)", &
1522 "Use Pipek-Mezey operator (order 4)", &
1527 CALL keyword_create(keyword, __location__, name=
"ENERGY_LOCALIZATION_FUNCTION", &
1528 description=
"Function for energy localization: f(e_i), e_i orbital energy", &
1529 enum_c_vals=
s2a(
"NONE",
"ENERGY",
"OCCUPATION"), &
1531 enum_desc=
s2a(
"Don't use energy localization.", &
1532 "Use orbital energies for localization.", &
1533 "Use occupation numbers for localization."), &
1537 CALL keyword_create(keyword, __location__, name=
"ENERGY_LOCALIZATION_WEIGHT", &
1538 description=
"Weight given to energy localization, using f(e_i) function", &
1539 usage=
"ENERGY_LOCALIZATION_WEIGHT 0.1", n_var=1, &
1540 default_r_val=0.0_dp, type_of_var=
real_t)
1545 NULLIFY (subsection)
1547 description=
"Calculation and printing of centers and spreads "// &
1548 "of localized orbitals.", &
1551 CALL keyword_create(keyword, __location__, name=
"POSITION_OPERATOR_BERRY", &
1552 description=
"Use Berry phase position operator.", &
1553 usage=
"POSITION_OPERATOR_BERRY T", n_var=1, &
1554 default_l_val=.true., lone_keyword_l_val=.true.)
1560 NULLIFY (subsection)
1562 description=
"Write the IBO orbitals in Molden file format, for visualisation.", &
1565 description=
"Specifies the number of significant digits retained. 3 is OK for visualization.", &
1566 usage=
"NDIGITS {int}", &
1571 description=
"Representation of Gaussian-type orbitals", &
1573 enum_c_vals=
s2a(
"CARTESIAN",
"SPHERICAL"), &
1575 "Cartesian Gaussian orbitals. Use with caution", &
1576 "Spherical Gaussian orbitals. Incompatible with VMD"), &
1583 NULLIFY (subsection)
1585 description=
"Controls the printing of the IBO orbitals "// &
1586 "as *.cube files.", &
1590 description=
"The stride (X,Y,Z) used to write the cube file "// &
1591 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1592 " 1 number valid for all components.", &
1593 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1597 description=
"append the cube files when they already exist", &
1598 default_l_val=.false., lone_keyword_l_val=.true.)
1602 description=
"Indices of the orbitals to be included in IBO CUBE file printing. ", &
1603 usage=
"STATE_LIST {integer} {integer} .. {integer} ", &
1604 n_var=-1, type_of_var=
integer_t, repeats=.true.)
1618 description=
"Controls the printing of the DOS from the density matrix. "// &
1619 "This allows the calculation of the DOS even in density matrix based "// &
1620 "REAL_TIME_PROPAGATION and LS_SCF. "// &
1621 "However, it requires a cubically scaling diagonalization of the Hamiltonian. "// &
1622 "Hartree-Fock NYI, values will be wrong. "// &
1623 "Careful, the orbitals in rtp/emd are not actually eigenstates of the Hamiltonian. "// &
1624 "Assumes absence of spin polarization (so far).", &
1626 each_iter_names=
s2a(
"MD"), each_iter_values=[100], &
1629 description=
"The number of energy windows.", &
1630 usage=
"N_WINDOWS 200", &
1635 description=
"Filtering threshold for sparse matrix operations.", &
1636 usage=
"EPS_FILTER 1.0E-6", &
1637 default_r_val=1.0e-14_dp)
1640 CALL keyword_create(keyword, __location__, name=
"RESTRICT_RANGE", &
1641 description=
"Restricts the energy windows to states close to the fermi level", &
1642 usage=
"RESTRICT_RANGE .TRUE.", &
1643 default_l_val=.false., lone_keyword_l_val=.true.)
1647 description=
"If the RESTRICT_RANGE keyword is set, then all energy widnows will"// &
1648 " be placed in an interval from from the fermi level minus to the fermi level plus this keyword", &
1650 default_r_val=1.0_dp)
1654 description=
"Print the energy windows to cube files", &
1655 usage=
"PRINT_CUBES .TRUE.", &
1656 default_l_val=.false., lone_keyword_l_val=.true.)
1660 description=
"The stride (X,Y,Z) used to write the energy windows cube files (if enabled) "// &
1661 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1662 " 1 number valid for all components.", &
1663 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1671 description=
"Write the KS matrix in CSR format into a file.", &
1674 description=
"Threshold on the absolute value of the elements to be printed out. "// &
1675 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
1676 "if the block contains at least one non-zero element.", &
1677 usage=
"THRESHOLD {real}", &
1679 default_r_val=0.0_dp)
1682 CALL keyword_create(keyword, __location__, name=
"Upper_triangular", &
1683 description=
"Print only the upper triangular part of the matrix. ", &
1684 usage=
"UPPER_TRIANGULAR {logical}", &
1686 default_l_val=.false., &
1687 lone_keyword_l_val=.true.)
1691 description=
"Whether or not to generate the file in a binary format. ", &
1692 usage=
"BINARY {logical}", &
1694 default_l_val=.false., &
1695 lone_keyword_l_val=.true.)
1699 description=
"Print the KS matrix in real-space instead of k-space.. ", &
1700 usage=
"REAL_SPACE {logical}", &
1702 default_l_val=.false., &
1703 lone_keyword_l_val=.true.)
1711 description=
"Write the overlap matrix in CSR format into a file.", &
1714 description=
"Threshold on the absolute value of the elements to be printed out. "// &
1715 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
1716 "if the block contains at least one non-zero element.", &
1717 usage=
"THRESHOLD {real}", &
1719 default_r_val=0.0_dp)
1722 CALL keyword_create(keyword, __location__, name=
"Upper_triangular", &
1723 description=
"Print only the upper triangular part of the matrix. ", &
1724 usage=
"UPPER_TRIANGULAR {logical}", &
1726 default_l_val=.false., &
1727 lone_keyword_l_val=.true.)
1731 description=
"Whether or not to generate the file in a binary format. ", &
1732 usage=
"BINARY {logical}", &
1734 default_l_val=.false., &
1735 lone_keyword_l_val=.true.)
1739 description=
"Print the overlap matrix in real-space instead of k-space.. ", &
1740 usage=
"REAL_SPACE {logical}", &
1742 default_l_val=.false., &
1743 lone_keyword_l_val=.true.)
1751 description=
"Write the core Hamiltonian matrix in CSR format into a file.", &
1754 description=
"Threshold on the absolute value of the elements to be printed out. "// &
1755 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
1756 "if the block contains at least one non-zero element.", &
1757 usage=
"THRESHOLD {real}", &
1759 default_r_val=0.0_dp)
1762 CALL keyword_create(keyword, __location__, name=
"Upper_triangular", &
1763 description=
"Print only the upper triangular part of the matrix. ", &
1764 usage=
"UPPER_TRIANGULAR {logical}", &
1766 default_l_val=.false., &
1767 lone_keyword_l_val=.true.)
1771 description=
"Whether or not to generate the file in a binary format. ", &
1772 usage=
"BINARY {logical}", &
1774 default_l_val=.false., &
1775 lone_keyword_l_val=.true.)
1779 description=
"Print the core Hamiltonian matrix in real-space instead of k-space.. ", &
1780 usage=
"REAL_SPACE {logical}", &
1782 default_l_val=.false., &
1783 lone_keyword_l_val=.true.)
1791 description=
"Write the density matrix in CSR format into a file.", &
1794 description=
"Threshold on the absolute value of the elements to be printed out. "// &
1795 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
1796 "if the block contains at least one non-zero element.", &
1797 usage=
"THRESHOLD {real}", &
1799 default_r_val=0.0_dp)
1802 CALL keyword_create(keyword, __location__, name=
"Upper_triangular", &
1803 description=
"Print only the upper triangular part of the matrix. ", &
1804 usage=
"UPPER_TRIANGULAR {logical}", &
1806 default_l_val=.false., &
1807 lone_keyword_l_val=.true.)
1811 description=
"Whether or not to generate the file in a binary format. ", &
1812 usage=
"BINARY {logical}", &
1814 default_l_val=.false., &
1815 lone_keyword_l_val=.true.)
1819 description=
"Print the density matrix in real-space instead of k-space.. ", &
1820 usage=
"REAL_SPACE {logical}", &
1822 default_l_val=.false., &
1823 lone_keyword_l_val=.true.)
1831 description=
"Writes an (upper-triangular) adjacency matrix indicating the "// &
1832 "interaction between atoms (according to overlapping basis functions). The "// &
1833 "columns are: iatom, jatom, ikind, jkind; where iatom and jatom are the atom "// &
1834 "indices (based on the coordinate file), ikind and jkind are the atomic kinds "// &
1835 "(indeces as shown in the ATOMIC KIND INFORMATION section of a CP2K output). ", &
1842 print_key, __location__, name=
"XRAY_DIFFRACTION_SPECTRUM", &
1843 description=
"Calculate and print the coherent X-ray "// &
1844 "diffraction spectrum", &
1849 keyword, __location__, &
1851 variants=[
"Q_MAXIMUM"], &
1852 description=
"Maximum Q value calculated for the spectrum", &
1853 usage=
"Q_MAX {real}", &
1858 unit_str=
"angstrom^-1"), &
1859 unit_str=
"angstrom^-1")
1866 description=
"Calculate and print the electric field gradients "// &
1867 "at atomic positions", &
1869 filename=
"__STD_OUT__")
1872 name=
"INTERPOLATION", &
1873 description=
"Use interpolation method from real space grid", &
1874 usage=
"INTERPOLATION {logical}", &
1877 default_l_val=.false., lone_keyword_l_val=.true.)
1882 name=
"GSPACE_SMOOTHING", &
1883 description=
"Use a G-space smoothing function", &
1884 usage=
"GSPACE_SMOOTHING cutoff {real}, width {real}", &
1886 n_var=2, default_r_vals=[-1._dp, -1._dp], &
1893 description=
"Print additional debug output", &
1894 usage=
"DEBUG {logical}", &
1897 default_l_val=.false., lone_keyword_l_val=.true.)
1909 description=
"Print the two quantities needed in the basis molopt generation:"// &
1910 " total energy and condition number of the overlap matrix (S matrix)", &
1912 filename=
"__STD_OUT__")
1917 description=
"Calculate and print the EPR hyperfine coupling tensor"// &
1918 " at atomic positions", &
1920 filename=
"__STD_OUT__")
1923 name=
"INTERACTION_RADIUS", &
1924 description=
"Radius of interaction for EPR hyperfine tensor calculation", &
1925 usage=
"INTERACTION_RADIUS radius {real}", &
1927 n_var=1, default_r_val=10._dp, &
1936 description=
"Optimize the exponents of the LRI basis set", &
1938 filename=
"OPTIMIZED_LRI_BASIS")
1943 print_key, __location__, name=
"PLUS_U", &
1944 description=
"Controls the printing for the DFT+U methods", &
1946 filename=
"__STD_OUT__", &
1947 each_iter_names=
s2a(
"QS_SCF"), &
1948 each_iter_values=[0], &
1954 print_key, __location__, name=
"CHARGEMOL", &
1955 description=
"Write .wfx input file for Chargemol", &
1957 filename=
"CHARGEMOL", &
1959 CALL keyword_create(keyword, __location__, name=
"BACKUP_COPIES", &
1960 description=
"Specifies the maximum number of backup copies.", &
1961 usage=
"BACKUP_COPIES {int}", &
1966 description=
"Write information about cell periodicity.", &
1967 usage=
"PERIODIC {LOGICAL}", &
1968 default_l_val=.false., lone_keyword_l_val=.true.)
1975 print_key, __location__, name=
"SCCS", &
1976 description=
"Controls the printing for the SCCS models", &
1978 filename=
"__STD_OUT__", &
1979 each_iter_names=
s2a(
"QS_SCF"), &
1980 each_iter_values=[0], &
1983 NULLIFY (sub_print_key)
1986 sub_print_key, __location__, name=
"DENSITY_GRADIENT", &
1987 description=
"Controls the printing of the cube files with "// &
1988 "the norm of the density gradient |∇ρ| "// &
1989 "used by the SCCS model.", &
1992 each_iter_names=
s2a(
"QS_SCF"), &
1993 each_iter_values=[0])
1995 description=
"The stride (X,Y,Z) used to write the cube file "// &
1996 "(larger values result in smaller cube files). You can provide 3 "// &
1997 "numbers (for X,Y,Z) or 1 number valid for all components.", &
1999 default_i_vals=[2, 2, 2], &
2005 description=
"Append the cube files when they already exist", &
2006 default_l_val=.false., &
2007 lone_keyword_l_val=.true., &
2015 sub_print_key, __location__, name=
"DIELECTRIC_FUNCTION", &
2016 description=
"Controls the printing of the cube files with "// &
2017 "the dielectric function used by the SCCS model. "// &
2018 "This function determines the cavity formed by a solute in "// &
2019 "a solvent and thus it can be used for the visualisaton of the cavity.", &
2022 each_iter_names=
s2a(
"QS_SCF"), &
2023 each_iter_values=[0], &
2026 description=
"The stride (X,Y,Z) used to write the cube file "// &
2027 "(larger values result in smaller cube files). You can provide 3 "// &
2028 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2030 default_i_vals=[2, 2, 2], &
2036 description=
"Append the cube files when they already exist", &
2037 default_l_val=.false., &
2038 lone_keyword_l_val=.true., &
2046 sub_print_key, __location__, name=
"TOTAL_CHARGE_DENSITY", &
2047 description=
"Controls the printing of the cube files with the "// &
2048 "total charge density $\rho^\text{tot}$ used by the SCCS model.", &
2051 each_iter_names=
s2a(
"QS_SCF"), &
2052 each_iter_values=[0], &
2055 description=
"The stride (X,Y,Z) used to write the cube file "// &
2056 "(larger values result in smaller cube files). You can provide 3 "// &
2057 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2059 default_i_vals=[2, 2, 2], &
2065 description=
"Append the cube files when they already exist", &
2066 default_l_val=.false., &
2067 lone_keyword_l_val=.true., &
2075 sub_print_key, __location__, name=
"POLARISATION_CHARGE_DENSITY", &
2076 description=
"Controls the printing of the cube files with the "// &
2077 "polarisation charge density $\rho^\text{pol}$ used by the SCCS model with the "// &
2078 "total charge density $\rho^\text{tot} = \rho^\text{sol} + \rho^\text{pol}", &
2081 each_iter_names=
s2a(
"QS_SCF"), &
2082 each_iter_values=[0], &
2085 description=
"The stride (X,Y,Z) used to write the cube file "// &
2086 "(larger values result in smaller cube files). You can provide 3 "// &
2087 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2089 default_i_vals=[2, 2, 2], &
2095 description=
"Append the cube files when they already exist", &
2096 default_l_val=.false., &
2097 lone_keyword_l_val=.true., &
2105 sub_print_key, __location__, name=
"POLARISATION_POTENTIAL", &
2106 description=
"Controls the printing of the cube files with the "// &
2107 "polarisation potential $\phi^\text{pol}$ used by the SCCS model with the "// &
2108 "total potential $\phi^\text{tot} = \phi^\text{sol} + \phi^\text{pol}$", &
2111 each_iter_names=
s2a(
"QS_SCF"), &
2112 each_iter_values=[0], &
2115 description=
"The stride (X,Y,Z) used to write the cube file "// &
2116 "(larger values result in smaller cube files). You can provide 3 "// &
2117 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2119 default_i_vals=[2, 2, 2], &
2125 description=
"Append the cube files when they already exist", &
2126 default_l_val=.false., &
2127 lone_keyword_l_val=.true., &
2144 SUBROUTINE create_bandstructure_section(section)
2150 cpassert(.NOT.
ASSOCIATED(section))
2151 CALL section_create(section, __location__, name=
"BAND_STRUCTURE", &
2152 description=
"Specifies the k-points used in band structure calculation.", &
2153 n_keywords=0, n_subsections=0, repeats=.false.)
2157 description=
"File name used for band structure", &
2158 usage=
"FILE_NAME <filename>", default_c_val=
"", &
2159 type_of_var=
char_t, n_var=1)
2164 variants=[
"ADDED_BANDS"], &
2165 description=
"Number of MOs/Bands added to the Band Structure calculation.", &
2170 NULLIFY (subsection)
2175 END SUBROUTINE create_bandstructure_section
2177 SUBROUTINE add_generic_openpmd_arguments(print_key)
2183 CALL keyword_create(keyword, __location__, name=
"OPENPMD_EXTENSION", &
2184 description=
"Filename extension for openPMD files, including the dot and "// &
2185 "(for optionally activating file encoding) a file expansion pattern.", &
2192 description=
"Inline runtime config for openPMD output. Note that inline "// &
2193 "specifications are subject to restrictions imposed by the input "// &
2194 "file format, making this option useful only for very simple use cases. "// &
2195 "Refer to OPENPMD_CFG_FILE for anything else.", &
2196 default_c_val=
"{}", type_of_var=
char_t)
2200 CALL keyword_create(keyword, __location__, name=
"OPENPMD_CFG_FILE", &
2201 description=
"Runtime config file for openPMD output. This parameter takes precedence over OPENPMD_CFG.", default_c_val=
"", &
2206 END SUBROUTINE add_generic_openpmd_arguments
2212 SUBROUTINE create_mo_section( &
2213 print_key, section_name, description, stride_default, stride_usage, &
2214 print_level, do_write_keyname)
2217 CHARACTER(len=*),
INTENT(IN) :: section_name, description, stride_usage, do_write_keyname
2218 INTEGER,
DIMENSION(3),
INTENT(IN) :: stride_default
2219 INTEGER,
INTENT(IN) :: print_level
2226 description=
"Controls the printing of the molecular orbitals (MOs) as " &
2227 //trim(adjustl(description))// &
2229 " It can be used during a Real Time calculation to print the MOs."// &
2230 " In this case, the density corresponding to the time dependent MO is printed"// &
2231 " instead of the wave-function.", &
2232 print_level=print_level, filename=
"")
2235 description=
"The stride (X,Y,Z) used to write the "//trim(adjustl(description))//
" file "// &
2236 "(larger values result in smaller "// &
2237 trim(adjustl(description))// &
2238 " files). You can provide 3 numbers (for X,Y,Z) or"// &
2239 " 1 number valid for all components.", &
2240 usage=stride_usage, n_var=-1, default_i_vals=stride_default, type_of_var=
integer_t)
2244 CALL keyword_create(keyword, __location__, name=do_write_keyname, &
2245 description=
"If the MO " &
2246 //trim(adjustl(description)) &
2247 //
" file should be written. If false, the eigenvalues are still computed."// &
2248 " Can also be useful in combination with STM calculations", &
2249 default_l_val=.true., lone_keyword_l_val=.true.)
2254 description=
"If the printkey is activated controls the number of lumos"// &
2255 " that are printed and dumped as "//trim(adjustl(description))//
" (-1=all)", &
2261 keyword, __location__, name=
"nhomo", &
2262 description=
"If the printkey is activated controls the number of homos that dumped as "// &
2263 trim(adjustl(description))// &
2265 " eigenvalues are always all dumped", &
2271 keyword, __location__, name=
"homo_list", &
2272 description=
"If the printkey is activated controls the index of homos dumped as openPMD,"// &
2273 " eigenvalues are always all dumped. It overrides nhomo.", &
2274 usage=
"HOMO_LIST {integer} {integer} .. {integer} ", type_of_var=
integer_t, &
2275 n_var=-1, repeats=.true.)
2279 END SUBROUTINE create_mo_section
2281 SUBROUTINE create_e_density_section( &
2282 print_key, section_name, description, stride_default, &
2283 stride_usage, print_level)
2286 CHARACTER(len=*),
INTENT(IN) :: section_name, description, stride_usage
2287 INTEGER,
DIMENSION(3),
INTENT(IN) :: stride_default
2288 INTEGER,
INTENT(IN) :: print_level
2295 description=
"Controls the printing of "//trim(adjustl(description))//
" files with "// &
2296 "the electronic density and, for LSD calculations, the spin density.", &
2297 print_level=print_level, filename=
"")
2299 description=
"The stride (X,Y,Z) used to write the "//trim(adjustl(description))//
" file "// &
2300 "(larger values result in smaller "// &
2301 trim(adjustl(description))// &
2302 " files). You can provide 3 numbers (for X,Y,Z) or"// &
2303 " 1 number valid for all components.", &
2304 usage=stride_usage, n_var=-1, default_i_vals=stride_default, type_of_var=
integer_t)
2308 CALL keyword_create(keyword, __location__, name=
"DENSITY_INCLUDE", &
2309 description=
"Which parts of the density to include. In GAPW the electronic density "// &
2310 "is divided into a hard and a soft component, and the default (TOTAL_HARD_APPROX) "// &
2311 "is to approximate the hard density as a spherical gaussian and to print the smooth "// &
2312 "density accurately. This avoids potential artefacts originating from the hard density. "// &
2313 "If the TOTAL_DENSITY keyword is used the hard density will be computed more accurately "// &
2314 "but may introduce non-physical features. The SOFT_DENSITY keyword will lead to only the "// &
2315 "soft density being printed. In GPW these options have no effect and the cube file will "// &
2316 "only contain the valence electron density.", &
2317 usage=
"DENSITY_INCLUDE TOTAL_HARD_APPROX", &
2318 enum_c_vals=
s2a(
"TOTAL_HARD_APPROX",
"TOTAL_DENSITY",
"SOFT_DENSITY"), &
2319 enum_desc=
s2a(
"Print (hard+soft) density where the hard components shape is approximated", &
2320 "Print (hard+soft) density. Only has an effect "// &
2321 "if PAW atoms are present. NOTE: The total "// &
2322 "in real space might exhibit unphysical features "// &
2323 "like spikes due to the finite and thus "// &
2324 "truncated g vector", &
2325 "Print only the soft density"), &
2333 END SUBROUTINE create_e_density_section
2344 SUBROUTINE create_elf_print_section( &
2345 print_key, section_name, description, stride_default, stride_usage, print_level, filename)
2348 CHARACTER(len=*),
INTENT(IN) :: section_name, description, stride_usage, filename
2349 INTEGER,
DIMENSION(3),
INTENT(IN) :: stride_default
2350 INTEGER,
INTENT(IN) :: print_level
2356 description=
"Controls printing of "//trim(adjustl(description))// &
2357 " files with the electron localization function (ELF). "// &
2358 "Note that the value of ELF is defined between 0 and 1: "// &
2359 "Pauli kinetic energy density normalized by the kinetic energy density "// &
2360 "of a uniform el. gas of same density.", print_level=print_level, filename=filename)
2363 description=
"The stride (X,Y,Z) used to write the file (larger values result in smaller files). "// &
2364 "You can provide 3 numbers (for X,Y,Z) or 1 number valid for all components.", &
2365 usage=stride_usage, n_var=-1, default_i_vals=stride_default, type_of_var=
integer_t)
2369 CALL keyword_create(keyword, __location__, name=
"density_cutoff", &
2370 description=
" ", usage=
"density_cutoff 0.0001", repeats=.false., n_var=1, &
2371 type_of_var=
real_t, default_r_val=1.0e-10_dp)
2374 END SUBROUTINE create_elf_print_section
2380 SUBROUTINE create_dos_section(print_key)
2389 description=
"Print Density of States (DOS) (only available states from SCF)", &
2393 description=
"Append the DOS obtained at different iterations to the output file. "// &
2394 "By default the file is overwritten", &
2395 usage=
"APPEND", default_l_val=.false., &
2396 lone_keyword_l_val=.true.)
2401 description=
"Histogramm energy spacing.", &
2402 usage=
"DELTA_E 0.0005", type_of_var=
real_t, default_r_val=0.001_dp)
2407 description=
"Specify the number of digits used to print density and occupation", &
2413 description=
"Specify a Monkhorst-Pack grid with which to compute the density of states. "// &
2414 "Works only for a k-point calculation", &
2415 usage=
"MP_GRID {integer} {integer} {integer}", default_i_vals=[-1], &
2420 END SUBROUTINE create_dos_section
2433 NULLIFY (subsection)
2437 description=
"Print out the DOS projected per kind and angular momentum ", &
2440 description=
"Print out PDOS distinguishing all angular momentum components.", &
2441 usage=
"COMPONENTS", default_l_val=.false., &
2442 lone_keyword_l_val=.true.)
2446 description=
"Append the PDOS obtained at different iterations to the PDOS output file. "// &
2447 "By default the file is overwritten", &
2448 usage=
"APPEND", default_l_val=.false., &
2449 lone_keyword_l_val=.true.)
2453 keyword, __location__, name=
"NLUMO", &
2454 description=
"Number of virtual orbitals to be added to the MO set (-1=all)."//
newline// &
2455 "CAUTION: Setting this value to be higher than the "// &
2456 "number of states present may cause a Cholesky error."//
newline// &
2457 "This keyword only applies to MO sets, not to XAS_TDP states.", &
2458 usage=
"NLUMO integer", default_i_val=0)
2461 CALL keyword_create(keyword, __location__, name=
"OUT_EACH_STATE", &
2462 variants=[
"OUT_EACH_MO"], &
2463 description=
"Output on the status of the calculation every OUT_EACH_MO states. If -1 no output", &
2464 usage=
"OUT_EACH_STATE integer", default_i_val=-1)
2469 description=
"Controls the printing of local PDOS, projected on subsets"// &
2470 " of atoms given through lists", &
2471 n_keywords=4, n_subsections=0, repeats=.true.)
2473 description=
"Print out PDOS distinguishing all angular momentum components.", &
2474 usage=
"COMPONENTS", default_l_val=.false., &
2475 lone_keyword_l_val=.true.)
2480 description=
"Specifies a list of indexes of atoms where to project the DOS ", &
2481 usage=
"LIST {integer} {integer} .. {integer} ", type_of_var=
integer_t, &
2482 n_var=-1, repeats=.true.)
2490 description=
"Controls the printing of local PDOS, projected on 3D volume in real space,"// &
2491 " the volume is defined in terms of position with respect to atoms in the lists", &
2492 n_keywords=4, n_subsections=0, repeats=.true.)
2495 description=
"Specifies a list of indexes of atoms used to define the real space volume ", &
2496 usage=
"LIST {integer} {integer} .. {integer} ", type_of_var=
integer_t, &
2497 n_var=-1, repeats=.true.)
2502 description=
"range of positions in Cartesian direction x: all grid points within "// &
2503 "this range from at least one atom of the list are considered", &
2504 usage=
"XRANGE -10.0 10.0", unit_str=
"angstrom", n_var=2, type_of_var=
real_t)
2508 description=
"range of positions in Cartesian direction y: all grid points within "// &
2509 "this range from at least one atom of the list are considered", &
2510 usage=
"YRANGE -10.0 10.0", unit_str=
"angstrom", n_var=2, type_of_var=
real_t)
2514 description=
"range of positions in Cartesian direction z: all grid points within "// &
2515 "this range from at least one atom of the list are considered", &
2516 usage=
"ZRANGE -10.0 10.0", unit_str=
"angstrom", n_var=2, type_of_var=
real_t)
2521 description=
"Only project states with the energy values in the given interval. "// &
2522 "Default is all states.", &
2523 usage=
"ERANGE -1.0 1.0", unit_str=
"hartree", n_var=2, type_of_var=
real_t)
2536 SUBROUTINE create_wannier_section(print_key)
2545 description=
"Interface to Wannier90 code. (EXPERIMENTAL)", &
2549 description=
"The seedname for the Wannier90 calculation (body of filenames).", &
2550 usage=
"SEED_NAME filename", default_c_val=
"wannier90", &
2551 n_var=1, type_of_var=
char_t)
2556 description=
"The dimensions of the Monkhorst-Pack k-point grid. ", &
2557 usage=
"MP_GRID 6 6 6", n_var=-1, default_i_vals=[10, 10, 10], type_of_var=
integer_t)
2562 variants=[
"ADDED_BANDS"], &
2563 description=
"Number of MOs/Bands added to the Band Structure calculation.", &
2568 CALL keyword_create(keyword, __location__, name=
"EXCLUDE_BANDS", &
2569 description=
"List of Bands excluded in the Wannier calculation.", &
2570 usage=
"EXCLUDE_BANDS b1 b2 ...", n_var=-1, repeats=.true., &
2575 CALL keyword_create(keyword, __location__, name=
"WANNIER_FUNCTIONS", &
2576 description=
"Number of Wannier functions to be calculated. ", &
2577 usage=
"WANNIER_FUNCTIONS 6", n_var=1, default_i_val=0, &
2582 END SUBROUTINE create_wannier_section
2588 SUBROUTINE create_stm_section(print_key)
2596 description=
"Controls the printing of cubes for the generation of STM images.", &
2599 description=
"The stride (X,Y,Z) used to write the cube file "// &
2600 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
2601 " 1 number valid for all components.", &
2602 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
2607 description=
"If the printkey is activated controls the number of additional lumos"// &
2608 " that are computed to be able to reproduce STM images obtained"// &
2609 " from positive bias (imaging unoccupied states)", &
2615 description=
"Bias energy for scanning tunneling microscopy (STM) image generation. "// &
2616 "Orbital densities are summed according to the bias energy. "// &
2617 "For negative values, states in the range ]EF+bias,EF] are summed, "// &
2618 "While positive values sum states in the range [EF,EF+bias[. "// &
2619 "If positive biases are used, sufficiently many unoccupied stated "// &
2620 "(see ADDED_MOS and NLUMO ) should be computed.", &
2621 n_var=-1, type_of_var=
real_t, default_r_vals=[0.0_dp], unit_str=
'eV')
2626 description=
"Tip orbital symmetry in Tersoff-Hamann approximation to compute STM images", &
2628 default_i_val=
orb_s, &
2629 usage=
"TH_TORB s dz2", &
2630 enum_c_vals=
s2a(
"S",
"PX",
"PY",
"PZ",
"DXY",
"DYZ",
"DZX",
"DX2",
"DY2",
"DZ2"), &
2631 enum_i_vals=[
orb_s,
orb_px,
orb_py,
orb_pz,
orb_dxy,
orb_dyz,
orb_dzx,
orb_dx2,
orb_dy2,
orb_dz2], &
2632 enum_desc=
s2a(
"s orbital",
"px orbital",
"py orbital",
"pz orbital", &
2633 "dxy orbital",
"dyz orbital",
"dzx orbital",
"x^2 orbital",
"y^2 orbital",
"z^2 orbital"))
2638 description=
"By default the reference energy is the Fermi energy. In order to compare"// &
2639 " with STS experiments, where specific energy ranges are addressed, here"// &
2640 " one can set a different reference energy."// &
2641 " The energy range is anyway controlled by the BIAS", &
2642 type_of_var=
real_t, default_r_val=0.0_dp, unit_str=
'eV')
2647 description=
"append the cube files when they already exist", &
2648 default_l_val=.false., lone_keyword_l_val=.true.)
2652 END SUBROUTINE create_stm_section
2658 SUBROUTINE create_wfn_mix_section(section)
2665 NULLIFY (subsection)
2668 cpassert(.NOT.
ASSOCIATED(section))
2671 description=
"A section that allows manipulation of the MO coeffs, "// &
2672 "e.g. for changing a ground state into an excited state. "// &
2673 "Starting from a copy of the original MOs, changes can be made "// &
2674 "by adding linear combinations of HOMO/LUMO of the original MOs to the result MOs. "// &
2675 "This method is called after an SCF optimization or before an RTP run if "// &
2676 "INITIAL_WFN=RESTART_WFN. Note that if called after an SCF optimization, a restart file "// &
2677 "with the mixed MOs is saved. This is not the case for an RTP with "// &
2678 "INITIAL_WFN=RESTART_WFN.", &
2679 n_keywords=1, n_subsections=0, repeats=.false.)
2681 CALL keyword_create(keyword, __location__, name=
"OVERWRITE_MOS", &
2682 description=
"If set to True, the active molecular orbitals in memory will be replaced by the mixed wfn "// &
2683 "at the end of the wfn mixing procedure. For instance, you can then use this new set of MOs to perform "// &
2684 "RTP or EMD directly. Note that in the case of an RTP run with INITIAL_WFN=RESTART_WFN, the OVERWRITE_MOS "// &
2685 "keyword is not used.", &
2686 default_l_val=.false., lone_keyword_l_val=.true.)
2691 description=
"Update a result MO with with a linear combination of original MOs."// &
2692 " This section can be repeated to build arbitrary linear combinations using repeatedly y=a*y+b*x. "// &
2693 "RESULT is (y), RESULT_SCALE is (a), ORIG is (x), ORIG_SCALE is (b)", &
2694 n_keywords=1, n_subsections=0, repeats=.true.)
2696 CALL keyword_create(keyword, __location__, name=
"RESULT_MO_INDEX", &
2697 description=
"Index of the MO (y) to be modified. Counting down in energy: "// &
2698 "set to 1 for the highest MO, to 3 for the highest MO-2.", &
2699 usage=
"RESULT_MO_INDEX 1", type_of_var=
integer_t, default_i_val=0)
2703 CALL keyword_create(keyword, __location__, name=
"RESULT_MARKED_STATE", &
2704 description=
"Specifies the MO according to "// &
2705 "the marks set in MOLECULAR_STATES. The value corresponds to the repetition "// &
2706 "of MARK_STATES in MOLECULAR_STATES", &
2707 usage=
"RESULT_MARKED_STATE 1", type_of_var=
integer_t, default_i_val=0)
2711 CALL keyword_create(keyword, __location__, name=
"REVERSE_MO_INDEX", &
2712 description=
"Reverses the index order of the OCCUPIED and EXTERNAL MOs. With this keyword "// &
2713 "ORIG_MO_INDEX/RESULT_MO_INDEX 1 point to the lowest energy MO (instead of the highest) "// &
2714 "and counts up in energy. The VIRTUAL MOs indexing is unchanged.", &
2715 default_l_val=.false., lone_keyword_l_val=.true.)
2719 CALL keyword_create(keyword, __location__, name=
"RESULT_SPIN_INDEX", &
2720 description=
"Spin of the MO (y) to be modified.", &
2721 enum_c_vals=
s2a(
"Alpha",
"Beta"), &
2722 enum_i_vals=[1, 2], &
2724 enum_desc=
s2a(
"Majority spin",
"Minority spin"))
2728 CALL keyword_create(keyword, __location__, name=
"RESULT_SCALE", &
2729 description=
"Scaling factor of the result variable (a).", &
2730 usage=
"RESULT_SCALE 0.0", type_of_var=
real_t)
2734 CALL keyword_create(keyword, __location__, name=
"ORIG_MO_INDEX", &
2735 description=
"Index of the original MO (x). "// &
2736 "If ORIG_TYPE is OCCUPIED, it counts down in energy: set to 1 to point to "// &
2737 "the highest MO and to 3 for the highest MO-2. "// &
2738 "If ORIG_TYPE is VIRTUAL, it counts up in energy: set to 1 to point to "// &
2739 "the lowest virtual MO and to 3 for the lowest MO+2. "// &
2740 "If ORIG_TYPE is EXTERNAL, it counts down in energy for the external "// &
2741 "set of MOs: set to 1 to point to the highest MO and to 3 for the highest MO-2. "// &
2742 "Do not set to zero or negative values.", &
2743 usage=
"ORIG_MO_INDEX 1", type_of_var=
integer_t, default_i_val=0)
2747 CALL keyword_create(keyword, __location__, name=
"ORIG_MARKED_STATE", &
2748 description=
"Specifies the MO according to "// &
2749 "the marks set in MOLECULAR_STATES. The value corresponds to the repetition "// &
2750 "of MARK_STATES in MOLECULAR_STATES", &
2751 usage=
"ORIG_MARKED_STATE 1", type_of_var=
integer_t, default_i_val=0)
2755 CALL keyword_create(keyword, __location__, name=
"ORIG_SPIN_INDEX", &
2756 description=
"Spin of the MO (x) to be modified.", &
2757 enum_c_vals=
s2a(
"Alpha",
"Beta"), &
2758 enum_i_vals=[1, 2], &
2760 enum_desc=
s2a(
"Majority spin",
"Minority spin"))
2765 description=
"Scaling factor of the original variable (b).", &
2766 usage=
"ORIG_SCALE 0.0", type_of_var=
real_t)
2771 description=
"Type of the original MO. Note that if ADDED_MOS was used in the "// &
2772 "SCF construction of the MO matrix, these extra MOs are also treated as OCCUPIED. ", &
2773 enum_c_vals=
s2a(
"OCCUPIED",
"VIRTUAL",
'EXTERNAL'), &
2774 usage=
"ORIG_TYPE OCCUPIED", &
2776 enum_desc=
s2a(
"The original MO is the result of the SCF procedure. This can also contain "// &
2777 "unoccupied MOs if the SCF%ADDED_MOS keyword was used.", &
2778 "The original MO is taken from the result of additional MOs calculated a "// &
2779 "posteriori of the SCF by request of the user. E.g. by specifying print%mo_cubes%nlumo. ", &
2780 "The orginal MO is from an external .wfn file. Use the keyword "// &
2781 "ORIG_EXT_FILE_NAME to define its name."), &
2786 CALL keyword_create(keyword, __location__, name=
"ORIG_EXT_FILE_NAME", &
2787 description=
"Name of the wavefunction file to read the original MO from. "// &
2788 "For instance, a restart wfn file from SCF calculation or an excited state from XAS_TDP calculation. "// &
2789 "If no file is specified, the run will crash. "// &
2790 "Currently, a RTP restart file (.rtpwfn) cannot be used as reference. "// &
2791 "Currently, this file SHALL have the basis set, number of MO and the same number of spin as the one "// &
2792 "from the SCF cycle.", &
2793 usage=
"ORIG_EXT_FILE_NAME <FILENAME>", &
2794 default_lc_val=
"EMPTY")
2801 END SUBROUTINE create_wfn_mix_section
2810 SUBROUTINE create_implicit_psolver_section(section)
2816 cpassert(.NOT.
ASSOCIATED(section))
2817 CALL section_create(section, __location__, name=
"IMPLICIT_PSOLVER", &
2818 description=
"Controls printing of cube files for data from the implicit "// &
2819 "(generalized) Poisson solver.", &
2821 n_keywords=0, n_subsections=3, repeats=.false.)
2823 NULLIFY (keyword, print_key)
2827 description=
"Controls the printing of a cube file with dielectric constant from "// &
2828 "the implicit (generalized) Poisson solver.", &
2832 description=
"The stride (X,Y,Z) used to write the cube file "// &
2833 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
2834 " 1 number valid for all components.", &
2835 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
2839 description=
"append the cube files when they already exist", &
2840 default_l_val=.false., lone_keyword_l_val=.true.)
2849 print_key, __location__,
"DIRICHLET_BC_CUBE", &
2850 description=
"Controls the printing of cube files with unit step functions (constraints)"// &
2851 " representing Dirichlet-type (boundary) regions defined in the implicit (generalized) Poisson"// &
2852 " solver section. The regions remain unchanged throughout the calculations. If the Dirichlet"// &
2853 " regions are relatively large and/or the number of partitions is quite high, in order to save memory,"// &
2854 " generate the cube files in early steps and perform the rest of the calculations with this keyword"// &
2859 description=
"Print tiles that tessellate the Dirichlet regions into cube files. If TRUE, "// &
2860 "generates cube files as many as the total number of tiles.", &
2861 usage=
"TILE_CUBES <logical>", &
2862 default_l_val=.false., lone_keyword_l_val=.true.)
2866 description=
"The stride (X,Y,Z) used to write the cube file "// &
2867 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
2868 " 1 number valid for all components.", &
2869 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
2873 description=
"append the cube files when they already exist", &
2874 default_l_val=.false., lone_keyword_l_val=.true.)
2883 description=
"Controls the printing of cube files with penalty charges induced to "// &
2884 "Dirichlet regions by Lagrange multipliers (implicit Poisson solver).", &
2888 description=
"The stride (X,Y,Z) used to write the cube file "// &
2889 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
2890 " 1 number valid for all components.", &
2891 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
2895 description=
"append the cube files when they already exist", &
2896 default_l_val=.false., lone_keyword_l_val=.true.)
2903 END SUBROUTINE create_implicit_psolver_section
2916 cpassert(.NOT.
ASSOCIATED(section))
2917 CALL section_create(section, __location__, name=
"interpolator", &
2918 description=
"controls the interpolation for the G-space term", &
2919 n_keywords=5, n_subsections=0, repeats=.false.)
2921 NULLIFY (keyword, print_key)
2923 CALL keyword_create(keyword, __location__, name=
"aint_precond", &
2924 description=
"the approximate inverse to use to get the starting point"// &
2925 " for the linear solver of the spline3 methods", &
2926 usage=
"aint_precond copy", &
2928 enum_c_vals=
s2a(
"copy",
"spl3_nopbc_aint1",
"spl3_nopbc_precond1", &
2929 "spl3_nopbc_aint2",
"spl3_nopbc_precond2",
"spl3_nopbc_precond3"), &
2936 description=
"The preconditioner used"// &
2937 " for the linear solver of the spline3 methods", &
2938 usage=
"precond copy", &
2940 enum_c_vals=
s2a(
"copy",
"spl3_nopbc_aint1",
"spl3_nopbc_precond1", &
2941 "spl3_nopbc_aint2",
"spl3_nopbc_precond2",
"spl3_nopbc_precond3"), &
2948 description=
"accuracy on the solution for spline3 the interpolators", &
2949 usage=
"eps_x 1.e-15", default_r_val=1.e-10_dp)
2954 description=
"accuracy on the residual for spline3 the interpolators", &
2955 usage=
"eps_r 1.e-15", default_r_val=1.e-10_dp)
2960 variants=[
'maxiter'], &
2961 description=
"the maximum number of iterations", &
2962 usage=
"max_iter 200", default_i_val=100)
2968 description=
"if convergence information about the linear solver"// &
2969 " of the spline methods should be printed", &
2971 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
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