79 numerical,
oe_gllb,
oe_lb,
oe_none,
oe_saop,
oe_sic,
orb_dx2,
orb_dxy,
orb_dy2,
orb_dyz, &
166#include "./base/base_uses.f90"
171 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'input_cp2k_print_dft'
186 TYPE(
section_type),
POINTER :: print_key, sub_print_key, subsection
188 cpassert(.NOT.
ASSOCIATED(section))
190 description=
"Section of possible print options in DFT code.", &
191 n_keywords=0, n_subsections=1, repeats=.false.)
193 NULLIFY (print_key, keyword, subsection)
196 description=
"Controls the printing of the banner of the MM program", &
202 description=
"Controls the printing of a file with all basis sets used.", &
208 description=
"Controls the printing of the kinetic energy", &
214 description=
"Print all derivatives after the DFT calculation", &
218 description=
"Specify the number of digits used to print derivatives", &
227 description=
"Controls the printing of the neighbor lists", &
231 description=
"Activates the printing of the orbital "// &
232 "orbital neighbor lists, "// &
233 "i.e. the overlap neighbor lists", &
234 default_l_val=.false., &
235 lone_keyword_l_val=.true.)
240 name=
"sab_aux_fit", &
241 description=
"Activates the printing of the orbital "// &
242 "orbital neighbor lists wavefunction fitting basis, "// &
243 "i.e. the overlap neighbor lists", &
244 default_l_val=.false., &
245 lone_keyword_l_val=.true.)
250 name=
"sab_aux_fit_vs_orb", &
251 description=
"Activates the printing of the orbital "// &
252 "orbital mixed neighbor lists of wavefunction fitting basis, "// &
253 "and the orbital basis, i.e. the overlap neighbor lists", &
254 default_l_val=.false., &
255 lone_keyword_l_val=.true.)
261 description=
"Activates the printing of the vdW SCP "// &
263 default_l_val=.false., &
264 lone_keyword_l_val=.true.)
270 description=
"Activates the printing of the vdW "// &
271 "neighbor lists (from DFT, DFTB, SE), "// &
272 "i.e. the dispersion neighbor lists", &
273 default_l_val=.false., &
274 lone_keyword_l_val=.true.)
280 description=
"Activates the printing of the "// &
281 "neighbor lists used for coordination numbers in vdW DFT-D3", &
282 default_l_val=.false., &
283 lone_keyword_l_val=.true.)
289 description=
"Activates the printing of the orbital "// &
290 "nuclear attraction neighbor lists (erfc potential)", &
291 default_l_val=.false., &
292 lone_keyword_l_val=.true.)
298 description=
"Activates the printing of the orbital "// &
299 "GTH-PPL neighbor lists (local part of the "// &
300 "Goedecker-Teter-Hutter pseudo potentials)", &
301 default_l_val=.false., &
302 lone_keyword_l_val=.true.)
308 description=
"Activates the printing of the orbital "// &
309 "GTH-PPNL neighbor lists (non-local part of the "// &
310 "Goedecker-Teter-Hutter pseudo potentials)", &
311 default_l_val=.false., &
312 lone_keyword_l_val=.true.)
318 description=
"Activates the printing of the orbital "// &
319 "PAW-projector neighbor lists (only GAPW)", &
320 default_l_val=.false., &
321 lone_keyword_l_val=.true.)
327 description=
"Activates the printing of the two-center "// &
328 "neighbor lists for Coulomb type interactions in NDDO ", &
329 default_l_val=.false., &
330 lone_keyword_l_val=.true.)
336 description=
"Activates the printing of the long-range SE correction "// &
337 "neighbor lists (only when doing long-range SE with integral scheme KDSO and KDSO-d)", &
338 default_l_val=.false., lone_keyword_l_val=.true.)
344 description=
"Activates the printing of the DFTB Ewald "// &
346 default_l_val=.false., &
347 lone_keyword_l_val=.true.)
353 description=
"Activates the printing of the xTB sr-Coulomb "// &
355 default_l_val=.false., &
356 lone_keyword_l_val=.true.)
362 description=
"Activates the printing of core interaction "// &
364 default_l_val=.false., &
365 lone_keyword_l_val=.true.)
371 description=
"Activates the printing of XB interaction from (xTB) "// &
373 default_l_val=.false., &
374 lone_keyword_l_val=.true.)
379 name=
"sab_xtb_nonbond", &
380 description=
"Activates the printing of nonbonded interaction from (xTB) "// &
382 default_l_val=.false., &
383 lone_keyword_l_val=.true.)
389 description=
"Activates the printing of RI orbital-orbital "// &
391 default_l_val=.false., &
392 lone_keyword_l_val=.true.)
398 description=
"Activates the printing of RI basis-projector interaction "// &
400 default_l_val=.false., &
401 lone_keyword_l_val=.true.)
407 description=
"Activates the printing of the nuclear orbital "// &
408 "nuclear repulsion neighbor lists (erfc potential)", &
409 default_l_val=.false., &
410 lone_keyword_l_val=.true.)
418 description=
"Activates the printing of the subcells used for the "// &
419 "generation of neighbor lists.", unit_str=
"angstrom", &
425 description=
"Controls the printing of the ao (i.e. contracted gaussian) matrices (debug).", &
428 description=
"Print only the matrix data, not the row and column headers", &
429 default_l_val=.false., lone_keyword_l_val=.true.)
433 description=
"Specify the number of digits used to print the AO matrices", &
437 CALL keyword_create(keyword, __location__, name=
"CORE_HAMILTONIAN", &
438 description=
"If the printkey is activated controls the printing of the hamiltonian matrix", &
439 default_l_val=.false., lone_keyword_l_val=.true.)
443 description=
"If the printkey is activated controls the printing of the density (P) matrix", &
444 default_l_val=.false., lone_keyword_l_val=.true.)
448 CALL keyword_create(keyword, __location__, name=
"KINETIC_ENERGY", &
449 description=
"If the printkey is activated controls the printing of the kinetic energy matrix", &
450 default_l_val=.false., lone_keyword_l_val=.true.)
453 CALL keyword_create(keyword, __location__, name=
"KOHN_SHAM_MATRIX", &
454 description=
"If the printkey is activated controls the printing of the Kohn-Sham matrix", &
455 default_l_val=.false., lone_keyword_l_val=.true.)
459 keyword, __location__, name=
"MATRIX_VXC", &
460 description=
"If the printkey is activated compute and print the matrix of the exchange and correlation potential. "// &
461 "Only the GGA part for GPW is printed", &
462 default_l_val=.false., lone_keyword_l_val=.true.)
466 description=
"If the printkey is activated controls the printing of the orthogonalization matrix", &
467 default_l_val=.false., lone_keyword_l_val=.true.)
471 description=
"If the printkey is activated controls the printing of the overlap matrix", &
472 default_l_val=.false., lone_keyword_l_val=.true.)
475 CALL keyword_create(keyword, __location__, name=
"COMMUTATOR_HR", &
476 description=
"Controls the printing of the [H,r] commutator matrix", &
477 default_l_val=.false., lone_keyword_l_val=.true.)
481 CALL keyword_create(keyword, __location__, name=
"FERMI_CONTACT", &
482 description=
"If the printkey is activated controls the printing of the Fermi contact matrix", &
483 default_l_val=.false., lone_keyword_l_val=.true.)
487 keyword, __location__, name=
"PSO", &
488 description=
"If the printkey is activated controls the printing of the paramagnetic spin-orbit matrices", &
489 default_l_val=.false., lone_keyword_l_val=.true.)
493 keyword, __location__, name=
"EFG", &
494 description=
"If the printkey is activated controls the printing of the electric field gradient matrices", &
495 default_l_val=.false., lone_keyword_l_val=.true.)
498 CALL keyword_create(keyword, __location__, name=
"POTENTIAL_ENERGY", &
499 description=
"If the printkey is activated controls the printing of the potential energy matrix", &
500 default_l_val=.false., lone_keyword_l_val=.true.)
504 description=
"If the printkey is activated controls the printing of the OCE HARD matrix", &
505 default_l_val=.false., lone_keyword_l_val=.true.)
509 description=
"If the printkey is activated controls the printing of the OCE SOFT matrix", &
510 default_l_val=.false., lone_keyword_l_val=.true.)
514 description=
"If the printkey is activated controls the printing of the w matrix", &
515 default_l_val=.false., lone_keyword_l_val=.true.)
518 CALL keyword_create(keyword, __location__, name=
"W_MATRIX_AUX_FIT", &
519 description=
"If the printkey is activated controls the printing of the w matrix", &
520 default_l_val=.false., lone_keyword_l_val=.true.)
524 description=
"If the printkey is activated controls the printing "// &
525 "of derivatives (for the matrixes that support this)", &
526 default_l_val=.false., lone_keyword_l_val=.true.)
533 print_key, __location__,
"MO", &
534 description=
"Controls the printing of the molecular orbital (MO) information. The requested MO information "// &
535 "is printed for all occupied MOs by default. Use the MO_INDEX_RANGE keyword to restrict the number "// &
536 "of the MOs or to print the MO information for unoccupied MOs. With diagonalization, additional MOs "// &
537 "have to be made available for printout using the ADDED_MOS keyword in the SCF section. With OT, "// &
538 "it is sufficient to specify the desired MO_INDEX_RANGE. The OT eigensolver can be controlled with "// &
539 "the EPS_LUMO and MAX_ITER_LUMO keywords in the SCF section.", &
542 description=
"Print the MOs in the Cartesian basis instead of the default spherical basis.", &
543 default_l_val=.false., lone_keyword_l_val=.true.)
547 variants=
s2a(
"EIGENVALUES",
"EIGVALS"), &
548 description=
"Print the MO energies (eigenvalues).", &
549 default_l_val=.false., lone_keyword_l_val=.true.)
553 variants=
s2a(
"EIGENVECTORS",
"EIGVECS"), &
554 description=
"Print the MO coefficients (eigenvectors).", &
555 default_l_val=.false., lone_keyword_l_val=.true.)
558 CALL keyword_create(keyword, __location__, name=
"OCCUPATION_NUMBERS", &
559 variants=
s2a(
"OCCNUMS"), &
560 description=
"Print the MO occupation numbers.", &
561 default_l_val=.false., lone_keyword_l_val=.true.)
564 CALL keyword_create(keyword, __location__, name=
"OCCUPATION_NUMBERS_STATS", &
565 variants=
s2a(
"OCCNUMSTATS"), &
566 description=
"Print some stats (max number of occupied MOs, etc.) of the MO occupation numbers."// &
567 " First logical toggles stats printing, first real is the occupied threshold.", &
568 type_of_var=
char_t, n_var=-1, &
569 default_c_vals=[
".FALSE.",
"1.0E-6 "], &
570 lone_keyword_c_vals=[
".TRUE."], &
571 usage=
"OCCUPATION_NUMBERS_STATS {Logical} [{Real}]")
575 description=
"Specify the number of digits used to print the MO information.", &
580 name=
"MO_INDEX_RANGE", &
581 variants=
s2a(
"MO_RANGE",
"RANGE"), &
582 description=
"Print only the requested subset of MOs. The indices of the first and "// &
583 "the last MO have to be specified to define the range. -1 as the last MO index "// &
584 "prints all available orbitals with diagonalisation (ADDED_MOS) and all orbitals with OT.", &
588 default_i_vals=[0, 0], &
589 usage=
"MO_INDEX_RANGE 10 15")
596 description=
"Write the molecular orbitals in Molden file format, for visualisation.", &
599 description=
"Specifies the number of significant digits retained. 3 is OK for visualization.", &
600 usage=
"NDIGITS {int}", &
605 description=
"Representation of Gaussian-type orbitals", &
607 enum_c_vals=
s2a(
"CARTESIAN",
"SPHERICAL"), &
609 "Cartesian Gaussian orbitals. Use with caution", &
610 "Spherical Gaussian orbitals. Incompatible with VMD"), &
617 CALL create_mo_cubes_section(print_key)
621 CALL create_stm_section(print_key)
625 CALL create_wfn_mix_section(subsection)
630 description=
"Write a TREXIO file to disk.", &
631 n_keywords=1, n_subsections=0, repeats=.false.)
633 description=
"Body of Filename for the trexio file.", &
634 usage=
"FILENAME {name}", default_c_val=
"TREXIO", &
639 description=
"Store the MOs in the Cartesian basis instead of the default spherical basis.", &
640 default_l_val=.false., lone_keyword_l_val=.true.)
647 description=
"Controls the printing of some gapw related information (debug).", &
648 n_keywords=0, n_subsections=1, repeats=.false.)
650 description=
"If the printkey is activated controls if information on"// &
651 " the projectors is printed.", &
656 description=
"If the printkey is activated controls if information on rho0 is printed.", &
664 description=
"Controls the printing of dft control parameters.", &
670 description=
"Controls the printing of kpoint information.", &
676 CALL create_bandstructure_section(subsection)
681 description=
"Controls the checking and printing of an estimate "// &
682 "of the overlap matrix condition number", &
685 description=
"Calculate an estimate of the 1-norm condition number", &
686 default_l_val=.true., lone_keyword_l_val=.true.)
689 CALL keyword_create(keyword, __location__, name=
"DIAGONALIZATION", &
690 description=
"Calculate the 1- and 2-norm condition numbers using diagonalization", &
691 default_l_val=.false., lone_keyword_l_val=.true.)
695 description=
"Calculate the 2-norm condition number using the Arnoldi code (may not be reliable)", &
696 default_l_val=.false., lone_keyword_l_val=.true.)
703 description=
"Controls the printing of cube files with "// &
704 "the electronic density and, for LSD calculations, the spin density.", &
707 description=
"The stride (X,Y,Z) used to write the cube file "// &
708 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
709 " 1 number valid for all components.", &
710 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
714 CALL keyword_create(keyword, __location__, name=
"DENSITY_INCLUDE", &
715 description=
"Which parts of the density to include. In GAPW the electronic density "// &
716 "is divided into a hard and a soft component, and the default (TOTAL_HARD_APPROX) "// &
717 "is to approximate the hard density as a spherical gaussian and to print the smooth "// &
718 "density accurately. This avoids potential artefacts originating from the hard density. "// &
719 "If the TOTAL_DENSITY keyword is used the hard density will be computed more accurately "// &
720 "but may introduce non-physical features. The SOFT_DENSITY keyword will lead to only the "// &
721 "soft density being printed. In GPW these options have no effect and the cube file will "// &
722 "only contain the valence electron density.", &
723 usage=
"DENSITY_INCLUDE TOTAL_HARD_APPROX", &
724 enum_c_vals=
s2a(
"TOTAL_HARD_APPROX",
"TOTAL_DENSITY",
"SOFT_DENSITY"), &
725 enum_desc=
s2a(
"Print (hard+soft) density where the hard components shape is approximated", &
726 "Print (hard+soft) density. Only has an effect "// &
727 "if PAW atoms are present. NOTE: The total "// &
728 "in real space might exhibit unphysical features "// &
729 "like spikes due to the finite and thus "// &
730 "truncated g vector", &
731 "Print only the soft density"), &
740 description=
"append the cube files when they already exist", &
741 default_l_val=.false., lone_keyword_l_val=.true.)
745 CALL keyword_create(keyword, __location__, name=
"XRD_INTERFACE", &
746 description=
"It activates the print out of exponents and coefficients for the"// &
747 " Gaussian expansion of the core densities, based on atom calculations for each kind."// &
748 " The resulting core dansities are needed to compute the form factors."// &
749 " If GAPW the local densities are also given in terms of a Gaussian expansion,"// &
750 " by fitting the difference between local-fhard and local-soft density for each atom."// &
751 " In this case the keyword SOFT_DENSITY is enabled.", &
752 default_l_val=.false., lone_keyword_l_val=.true.)
757 description=
"Number of Gaussian functions used in the expansion of atomic (core) density", &
758 usage=
"NGAUSS 10", n_var=1, default_i_val=12, type_of_var=
integer_t)
766 description=
"Controls printing of cube files with "// &
767 "the total density (electrons+atomic core). Note that "// &
768 "the value of the total density is positive where the "// &
769 "electron density dominates and negative where the core is. "// &
770 "When GPW is enabled this will simply print the combined density "// &
771 "of the valence electrons and charge-balanced core. In GAPW the "// &
772 "electronic density (hard+soft plus a correction term) is printed "// &
773 "together with the charge-balanced core density to produce a complete "// &
774 "representation of the total density.", &
777 description=
"The stride (X,Y,Z) used to write the cube file "// &
778 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
779 " 1 number valid for all components.", &
780 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
785 description=
"append the cube files when they already exist", &
786 default_l_val=.false., lone_keyword_l_val=.true.)
794 description=
"Controls the printing of a cube file with eletrostatic"// &
795 " potential generated by the total density (electrons+ions). It is"// &
796 " valid only for QS with GPW formalism."// &
797 " Note that by convention the potential has opposite sign than the expected physical one.", &
800 description=
"The stride (X,Y,Z) used to write the cube file "// &
801 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
802 " 1 number valid for all components.", &
803 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
807 description=
"append the cube files when they already exist", &
808 default_l_val=.false., lone_keyword_l_val=.true.)
816 description=
"Controls the printing of a cube file with external"// &
817 " potential from the DFT%EXTERNAL_POTENTIAL section only.", &
820 description=
"The stride (X,Y,Z) used to write the cube file "// &
821 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
822 " 1 number valid for all components.", &
823 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
827 description=
"append the cube files when they already exist", &
828 default_l_val=.false., lone_keyword_l_val=.true.)
837 description=
"Controls the output of the electron density to the losslessly"// &
838 " compressed BQB file format, see [Brehm2018]"// &
839 " (via LibBQB see <https://brehm-research.de/bqb>)."// &
840 " Currently does not work with changing cell vector (NpT ensemble).", &
845 description=
"Skips the first step of a MD run (avoids duplicate step if restarted).", &
846 usage=
"SKIP_FIRST T", default_l_val=.false., lone_keyword_l_val=.true.)
850 CALL keyword_create(keyword, __location__, name=
"STORE_STEP_NUMBER", &
851 description=
"Stores the step number and simulation time in the comment line of each BQB"// &
852 " frame. Switch it off for binary compatibility with original CP2k CUBE files.", &
853 usage=
"STORE_STEP_NUMBER F", default_l_val=.true., lone_keyword_l_val=.true.)
858 description=
"Performs an on-the-fly decompression of each compressed BQB frame to check"// &
859 " whether the volumetric data exactly matches, and aborts the run if not so.", &
860 usage=
"CHECK T", default_l_val=.false., lone_keyword_l_val=.true.)
865 description=
"Specify this keyword to overwrite the output BQB file if"// &
866 " it already exists. By default, the data is appended to an existing file.", &
867 usage=
"OVERWRITE T", default_l_val=.false., lone_keyword_l_val=.true.)
872 description=
"Controls how many previous steps are taken into account for extrapolation in"// &
873 " compression. Use a value of 1 to compress the frames independently.", &
874 usage=
"HISTORY 10", n_var=1, default_i_val=10, type_of_var=
integer_t)
878 CALL keyword_create(keyword, __location__, name=
"PARAMETER_KEY", &
879 description=
"Allows to supply previously optimized compression parameters via a"// &
880 " parameter key (alphanumeric character sequence starting with 'at')."// &
881 " Just leave away the 'at' sign here, because CP2k will otherwise"// &
882 " assume it is a variable name in the input", &
883 usage=
"PARAMETER_KEY <KEY>", n_var=1, default_c_val=
"", type_of_var=
char_t)
888 description=
"Controls the time spent to optimize the parameters for compression efficiency.", &
889 usage=
"OPTIMIZE {OFF,QUICK,NORMAL,PATIENT,EXHAUSTIVE}", repeats=.false., n_var=1, &
891 enum_c_vals=
s2a(
"OFF",
"QUICK",
"NORMAL",
"PATIENT",
"EXHAUSTIVE"), &
892 enum_desc=
s2a(
"No optimization (use defaults)",
"Quick optimization", &
893 "Standard optimization",
"Precise optimization",
"Exhaustive optimization"), &
907 CALL create_implicit_psolver_section(subsection)
913 description=
"Controls the printing of a cube file with xc"// &
914 " potential generated by the ZMP method (for the moment). It is"// &
915 " valid only for QS with GPW formalism .", &
918 description=
"The stride (X,Y,Z) used to write the cube file "// &
919 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
920 " 1 number valid for all components.", &
921 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
925 description=
"append the cube files when they already exist", &
926 default_l_val=.false., lone_keyword_l_val=.true.)
934 description=
"Controls the printing of cube files with electric"// &
935 " field generated by the total density (electrons+ions). It is"// &
936 " valid only for QS with GPW formalism.", &
939 description=
"The stride (X,Y,Z) used to write the cube file "// &
940 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
941 " 1 number valid for all components.", &
942 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
946 description=
"append the cube files when they already exist", &
947 default_l_val=.false., lone_keyword_l_val=.true.)
955 description=
"Controls printing of cube files with"// &
956 " the electron localization function (ELF). Note that"// &
957 " the value of ELF is defined between 0 and 1: Pauli kinetic energy density normalized"// &
958 " by the kinetic energy density of a uniform el. gas of same density.", &
961 description=
"The stride (X,Y,Z) used to write the cube file "// &
962 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
963 " 1 number valid for all components.", &
964 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
968 description=
"append the cube files when they already exist", &
969 default_l_val=.false., lone_keyword_l_val=.true.)
973 CALL keyword_create(keyword, __location__, name=
"density_cutoff", &
975 usage=
"density_cutoff 0.0001", &
979 default_r_val=1.0e-10_dp)
987 description=
"Controls the printing of cube files with the local"// &
988 " energy. It is valid only for QS with GPW/GAPW formalism."// &
989 " Meta and hybrid functionals are not possible.", &
992 description=
"The stride (X,Y,Z) used to write the cube file "// &
993 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
994 " 1 number valid for all components.", &
995 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
999 description=
"append the cube files when they already exist", &
1000 default_l_val=.false., lone_keyword_l_val=.true.)
1008 description=
"Controls the printing of cube files with the local"// &
1009 " stress. It is valid only for QS with GPW/GAPW formalism."// &
1010 " Meta and hybrid functionals are not possible.", &
1013 description=
"The stride (X,Y,Z) used to write the cube file "// &
1014 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1015 " 1 number valid for all components.", &
1016 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1020 description=
"append the cube files when they already exist", &
1021 default_l_val=.false., lone_keyword_l_val=.true.)
1028 CALL create_dos_section(print_key)
1036 CALL create_wannier_section(print_key)
1043 keyword, __location__, &
1044 name=
"MAX_MOMENT", &
1045 description=
"Maximum moment to be calculated. Values higher than 1 not implemented under periodic boundaries.", &
1046 usage=
"MAX_MOMENT {integer}", &
1055 description=
"Calculate also magnetic moments, only implemented without periodic boundaries", &
1056 usage=
"MAGNETIC yes", &
1059 default_l_val=.false., &
1060 lone_keyword_l_val=.true.)
1065 description=
"Calculate expectation values of the el. multipole moments in their velocity "// &
1066 "representation during RTP. Implemented up to el. quadrupole moment.", &
1067 usage=
"VEL_REPRS yes", &
1070 default_l_val=.false., &
1071 lone_keyword_l_val=.true.)
1076 description=
"Include non local commutator for velocity representations. "// &
1077 "Necessary for origin independent results.", &
1078 usage=
"COM_NL yes", &
1081 default_l_val=.false., &
1082 lone_keyword_l_val=.true.)
1086 name=
"SECOND_REFERENCE_POINT", &
1087 description=
"Use second reference point", &
1088 usage=
"SECOND_REFERENCE_POINT .TRUE.", &
1091 default_l_val=.false., &
1092 lone_keyword_l_val=.true.)
1096 variants=
s2a(
"REF_2"), &
1097 description=
"Define a second reference point for the calculation of the electrostatic moment.", &
1098 usage=
"REFERENCE_2 COM", &
1099 enum_c_vals=
s2a(
"COM",
"COAC",
"USER_DEFINED",
"ZERO"), &
1100 enum_desc=
s2a(
"Use Center of Mass", &
1101 "Use Center of Atomic Charges", &
1102 "Use User Defined Point (Keyword:REF_POINT)", &
1103 "Use Origin of Coordinate System"), &
1111 CALL keyword_create(keyword, __location__, name=
"REFERENCE_POINT_2", &
1112 variants=
s2a(
"REF_POINT_2"), &
1113 description=
"Fixed second reference point for the calculations of the electrostatic moment.", &
1114 usage=
"REFERENCE_POINT_2 x y z", &
1116 n_var=3, default_r_vals=[0._dp, 0._dp, 0._dp], &
1126 description=
"Controls the printing of the Mulliken (spin) population analysis", &
1128 common_iter_levels=1)
1130 keyword, __location__, &
1132 description=
"Print the gross orbital populations (GOP) in addition to the gross atomic populations (GAP) "// &
1133 "and net charges", &
1134 usage=
"PRINT_GOP yes", &
1137 default_l_val=.false., &
1138 lone_keyword_l_val=.true.)
1142 keyword, __location__, &
1144 description=
"Print all information including the full net AO and overlap population matrix", &
1145 usage=
"PRINT_ALL yes", &
1148 default_l_val=.false., &
1149 lone_keyword_l_val=.true.)
1157 description=
"Controls the printing of the Lowdin (spin) population analysis", &
1159 common_iter_levels=1)
1161 keyword, __location__, &
1163 description=
"Print the orbital populations in addition to the atomic populations and net charges", &
1164 usage=
"PRINT_GOP yes", &
1167 default_l_val=.false., &
1168 lone_keyword_l_val=.true.)
1172 keyword, __location__, &
1174 description=
"Print all information including the full symmetrically orthogonalised density matrix", &
1175 usage=
"PRINT_ALL yes", &
1178 default_l_val=.false., &
1179 lone_keyword_l_val=.true.)
1187 description=
"Controls the printing of the Hirshfeld (spin) population analysis", &
1189 common_iter_levels=1)
1190 CALL keyword_create(keyword, __location__, name=
"SELF_CONSISTENT", &
1191 description=
"Calculate charges from the Hirscheld-I (self_consistent) method."// &
1192 " This scales only the full shape function, not the added charge as in the original scheme.", &
1193 usage=
"SELF_CONSISTENT yes", repeats=.false., n_var=1, &
1194 default_l_val=.false., lone_keyword_l_val=.true.)
1197 CALL keyword_create(keyword, __location__, name=
"SHAPE_FUNCTION", &
1198 description=
"Type of shape function used for Hirshfeld partitioning.", &
1199 usage=
"SHAPE_FUNCTION {Gaussian,Density}", repeats=.false., n_var=1, &
1201 enum_c_vals=
s2a(
"GAUSSIAN",
"DENSITY"), &
1202 enum_desc=
s2a(
"Single Gaussian with Colvalent radius", &
1203 "Atomic density expanded in multiple Gaussians"), &
1207 CALL keyword_create(keyword, __location__, name=
"REFERENCE_CHARGE", &
1208 description=
"Charge of atomic partitioning function for Hirshfeld method.", &
1209 usage=
"REFERENCE_CHARGE {Atomic,Mulliken}", repeats=.false., n_var=1, &
1211 enum_c_vals=
s2a(
"ATOMIC",
"MULLIKEN"), &
1212 enum_desc=
s2a(
"Use atomic core charges",
"Calculate Mulliken charges"), &
1217 description=
"Use user defined radii to generate Gaussians."// &
1218 " These radii are defined by the keyword ATOMIC_RADII", &
1219 usage=
"USER_RADIUS yes", repeats=.false., n_var=1, &
1220 default_l_val=.false., lone_keyword_l_val=.true.)
1223 CALL keyword_create(keyword, __location__, name=
"ATOMIC_RADII", &
1224 description=
"Defines custom radii to setup the spherical Gaussians.", &
1225 usage=
"ATOMIC_RADII {real} {real} {real}", repeats=.false., &
1226 unit_str=
"angstrom", &
1227 type_of_var=
real_t, n_var=-1)
1235 description=
"Controls the printing of the EEQ charges", &
1237 common_iter_levels=1, &
1244 description=
"Controls the printing of the MAO (modified atomic orbital) analysis", &
1246 common_iter_levels=1, &
1249 description=
"Threshold for matrix elements in MAO determination.", &
1250 usage=
"EPS_FILTER reps", repeats=.false., n_var=1, &
1251 default_r_val=1.e-8_dp, type_of_var=
real_t)
1254 CALL keyword_create(keyword, __location__, name=
"REFERENCE_BASIS", &
1255 description=
"Basis set used to construct MAO's.", &
1256 usage=
"REFERENCE_BASIS {ORBITAL,PRIMITIVE,EXTERNAL}", repeats=.false., n_var=1, &
1258 enum_c_vals=
s2a(
"ORBITAL",
"PRIMITIVE",
"EXTERNAL"), &
1259 enum_desc=
s2a(
"Use standard orbital basis set",
"Construct basis from primitives of the orbital basis", &
1260 "Read external basis (MAO)"), &
1265 description=
"Print out MAO reference basis.", &
1266 usage=
"PRINT_BASIS {logical}", repeats=.false., n_var=1, &
1267 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1271 description=
"Threshold for gradient in MAO optimization.", &
1272 usage=
"EPS_GRAD reps", repeats=.false., n_var=1, &
1273 default_r_val=1.e-4_dp, type_of_var=
real_t)
1276 CALL keyword_create(keyword, __location__, name=
"EPS_FUNCTION", &
1277 description=
"Threshold for electron defect in MAO optimization.", &
1278 usage=
"EPS_FUNCTION feps", repeats=.false., n_var=1, &
1279 default_r_val=1.e-3_dp, type_of_var=
real_t)
1283 description=
"Maximum allowed iterations for MAO optimization.", &
1284 usage=
"MAX_ITER iter", repeats=.false., n_var=1, &
1289 description=
"Neglect 3 atom terms in MAO analysis.", &
1290 usage=
"NEGLECT_ABC {logical}", repeats=.false., n_var=1, &
1291 default_l_val=.true., lone_keyword_l_val=.true., type_of_var=
logical_t)
1294 CALL keyword_create(keyword, __location__, name=
"AB_THRESHOLD", &
1295 description=
"Threshold for printing of AB shared electron numbers.", &
1296 usage=
"AB_THRESHOLD thr", repeats=.false., n_var=1, &
1297 default_r_val=1.e-2_dp, type_of_var=
real_t)
1300 CALL keyword_create(keyword, __location__, name=
"ABC_THRESHOLD", &
1301 description=
"Threshold for printing of ABC shared electron numbers.", &
1302 usage=
"ABC_THRESHOLD thr", repeats=.false., n_var=1, &
1303 default_r_val=1.e-5_dp, type_of_var=
real_t)
1306 CALL keyword_create(keyword, __location__, name=
"ANALYZE_UNASSIGNED_CHARGE", &
1307 description=
"Calculate atomic contributions to the unassigned charge.", &
1308 usage=
"ANALYZE_UNASSIGNED_CHARGE {logical}", repeats=.false., n_var=1, &
1309 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1317 description=
"Controls the printing of the minimal localized basis analysis", &
1319 common_iter_levels=1, &
1322 description=
"Threshold for matrix elements in basis determination.", &
1323 usage=
"EPS_FILTER reps", repeats=.false., n_var=1, &
1324 default_r_val=1.e-8_dp, type_of_var=
real_t)
1327 CALL keyword_create(keyword, __location__, name=
"FULL_ORTHOGONALIZATION", &
1328 description=
"Orthogonalize the localized minimal basis.", &
1329 usage=
"FULL_ORTHOGONALIZATION {logical}", repeats=.false., n_var=1, &
1330 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1334 description=
"Calculate Mayer Bond Orders.", &
1335 usage=
"BOND_ORDER {logical}", repeats=.false., n_var=1, &
1336 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1340 NULLIFY (sub_print_key)
1342 description=
"Write the minimal basis on Cube files.", &
1345 description=
"The stride (X,Y,Z) used to write the cube file "// &
1346 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1347 " 1 number valid for all components.", &
1348 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1352 description=
"Indexes of the atoms minimal basis to be printed as cube files "// &
1353 "This keyword can be repeated several times "// &
1354 "(useful if you have to specify many indexes).", &
1355 usage=
"ATOM_LIST 1 2", &
1356 n_var=-1, type_of_var=
integer_t, repeats=.true.)
1362 NULLIFY (sub_print_key)
1364 description=
"Write the minimal basis in Molden file format, for visualisation.", &
1367 description=
"Specifies the number of significant digits retained. 3 is OK for visualization.", &
1368 usage=
"NDIGITS {int}", &
1373 description=
"Representation of Gaussian-type orbitals", &
1375 enum_c_vals=
s2a(
"CARTESIAN",
"SPHERICAL"), &
1377 "Cartesian Gaussian orbitals. Use with caution", &
1378 "Spherical Gaussian orbitals. Incompatible with VMD"), &
1390 description=
"Controls energy decomposition analysis", &
1392 common_iter_levels=1, &
1394 CALL keyword_create(keyword, __location__, name=
"REFERENCE_ORB_CANONICAL", &
1395 description=
"Use reference orbitals in canonical form.", &
1396 usage=
"REFERENCE_ORB_CANONICAL {logical}", repeats=.false., n_var=1, &
1397 default_l_val=.true., lone_keyword_l_val=.true., type_of_var=
logical_t)
1400 CALL keyword_create(keyword, __location__, name=
"SKIP_LOCALIZATION", &
1401 description=
"Don't localize the MOs.", &
1402 usage=
"SKIP_LOCALIZATION {logical}", repeats=.false., n_var=1, &
1403 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1406 CALL keyword_create(keyword, __location__, name=
"DETAILED_ENERGY", &
1407 description=
"Calculate detailed atomic decomposition energies.", &
1408 usage=
"DETAILED_ENERGY {logical}", repeats=.false., n_var=1, &
1409 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=
logical_t)
1412 CALL keyword_create(keyword, __location__, name=
"EWALD_ALPHA_PARAMETER", &
1413 description=
"Calculate Energy Decomposition for a specific alpha value. "// &
1414 "alpha = 1/(2*rc**2), see GTH pseudopotentials.", &
1415 usage=
"EWALD_ALPHA_PARAMETER alpha", repeats=.false., n_var=1, &
1416 default_r_val=0.0_dp, type_of_var=
real_t)
1425 description=
"Controls the printing of the IAO (intrinsic atomic orbital) analysis", &
1427 common_iter_levels=1, &
1430 description=
"Threshold for matrix inversion eigenvalues.", &
1431 usage=
"EPS_SVD reps", repeats=.false., n_var=1, &
1432 default_r_val=0.0_dp, type_of_var=
real_t)
1436 description=
"Threshold in occupation for vectors included.", &
1437 usage=
"EPS_OCC reps", repeats=.false., n_var=1, &
1438 default_r_val=0.0_dp, type_of_var=
real_t)
1441 CALL keyword_create(keyword, __location__, name=
"ATOMIC_CHARGES", &
1442 description=
"Calculate atomic charges from IAO.", &
1443 usage=
"ATOMIC_CHARGES {logical}", repeats=.false., n_var=1, &
1444 default_l_val=.true., lone_keyword_l_val=.true., type_of_var=
logical_t)
1448 NULLIFY (sub_print_key)
1450 description=
"Write the IAO basis in Molden file format, for visualisation.", &
1453 description=
"Specifies the number of significant digits retained. 3 is OK for visualization.", &
1454 usage=
"NDIGITS {int}", &
1459 description=
"Representation of Gaussian-type orbitals", &
1461 enum_c_vals=
s2a(
"CARTESIAN",
"SPHERICAL"), &
1463 "Cartesian Gaussian orbitals. Use with caution", &
1464 "Spherical Gaussian orbitals. Incompatible with VMD"), &
1471 NULLIFY (sub_print_key)
1473 description=
"Controls the printing of the IAO basis "// &
1474 "as *.cube files.", &
1478 description=
"The stride (X,Y,Z) used to write the cube file "// &
1479 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1480 " 1 number valid for all components.", &
1481 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1485 description=
"append the cube files when they already exist", &
1486 default_l_val=.false., lone_keyword_l_val=.true.)
1490 description=
"Indices of the atoms to be included in basis CUBE file printing. ", &
1491 usage=
"ATOM_LIST {integer} {integer} .. {integer} ", &
1492 n_var=-1, type_of_var=
integer_t, repeats=.true.)
1498 NULLIFY (sub_print_key)
1500 description=
"Calculates single center expansion of IAOs ", &
1504 description=
"Maximum l quantum number used in the expansion.", &
1505 usage=
"LMAX 2", n_var=1, default_i_val=3, type_of_var=
integer_t)
1509 description=
"Max number of basis functions used in the expansion."// &
1510 " Default is determined by the orbital basis set.", &
1511 usage=
"NBAS 10", n_var=1, default_i_val=-1, type_of_var=
integer_t)
1515 description=
"Append the OCE basis files when it already exists", &
1516 default_l_val=.false., lone_keyword_l_val=.true.)
1522 NULLIFY (sub_print_key)
1524 description=
"Calculate intrinsic bond orbitals using "// &
1525 "localized MOs in IAO basis.", &
1529 CALL keyword_create(keyword, __location__, name=
"LOCALIZATION_OPERATOR", &
1530 description=
"Operator to be optimized for orbital localization", &
1531 enum_c_vals=
s2a(
"PIPEK_MEZEY",
"PIPEK_MEZEY_4",
"L1NORM"), &
1533 enum_desc=
s2a(
"Use Pipek-Mezey operator (order 2)", &
1534 "Use Pipek-Mezey operator (order 4)", &
1539 CALL keyword_create(keyword, __location__, name=
"ENERGY_LOCALIZATION_FUNCTION", &
1540 description=
"Function for energy localization: f(e_i), e_i orbital energy", &
1541 enum_c_vals=
s2a(
"NONE",
"ENERGY",
"OCCUPATION"), &
1543 enum_desc=
s2a(
"Don't use energy localization.", &
1544 "Use orbital energies for localization.", &
1545 "Use occupation numbers for localization."), &
1549 CALL keyword_create(keyword, __location__, name=
"ENERGY_LOCALIZATION_WEIGHT", &
1550 description=
"Weight given to energy localization, using f(e_i) function", &
1551 usage=
"ENERGY_LOCALIZATION_WEIGHT 0.1", n_var=1, &
1552 default_r_val=0.0_dp, type_of_var=
real_t)
1557 NULLIFY (subsection)
1559 description=
"Calculation and printing of centers and spreads "// &
1560 "of localized orbitals.", &
1563 CALL keyword_create(keyword, __location__, name=
"POSITION_OPERATOR_BERRY", &
1564 description=
"Use Berry phase position operator.", &
1565 usage=
"POSITION_OPERATOR_BERRY T", n_var=1, &
1566 default_l_val=.true., lone_keyword_l_val=.true.)
1572 NULLIFY (subsection)
1574 description=
"Write the IBO orbitals in Molden file format, for visualisation.", &
1577 description=
"Specifies the number of significant digits retained. 3 is OK for visualization.", &
1578 usage=
"NDIGITS {int}", &
1583 description=
"Representation of Gaussian-type orbitals", &
1585 enum_c_vals=
s2a(
"CARTESIAN",
"SPHERICAL"), &
1587 "Cartesian Gaussian orbitals. Use with caution", &
1588 "Spherical Gaussian orbitals. Incompatible with VMD"), &
1595 NULLIFY (subsection)
1597 description=
"Controls the printing of the IBO orbitals "// &
1598 "as *.cube files.", &
1602 description=
"The stride (X,Y,Z) used to write the cube file "// &
1603 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1604 " 1 number valid for all components.", &
1605 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1609 description=
"append the cube files when they already exist", &
1610 default_l_val=.false., lone_keyword_l_val=.true.)
1614 description=
"Indices of the orbitals to be included in IBO CUBE file printing. ", &
1615 usage=
"STATE_LIST {integer} {integer} .. {integer} ", &
1616 n_var=-1, type_of_var=
integer_t, repeats=.true.)
1630 description=
"Controls the printing of the DOS from the density matrix. "// &
1631 "This allows the calculation of the DOS even in density matrix based "// &
1632 "REAL_TIME_PROPAGATION and LS_SCF. "// &
1633 "However, it requires a cubically scaling diagonalization of the Hamiltonian. "// &
1634 "Hartree-Fock NYI, values will be wrong. "// &
1635 "Careful, the orbitals in rtp/emd are not actually eigenstates of the Hamiltonian. "// &
1636 "Assumes absence of spin polarization (so far).", &
1638 each_iter_names=
s2a(
"MD"), each_iter_values=[100], &
1641 description=
"The number of energy windows.", &
1642 usage=
"N_WINDOWS 200", &
1647 description=
"Filtering threshold for sparse matrix operations.", &
1648 usage=
"EPS_FILTER 1.0E-6", &
1649 default_r_val=1.0e-14_dp)
1652 CALL keyword_create(keyword, __location__, name=
"RESTRICT_RANGE", &
1653 description=
"Restricts the energy windows to states close to the fermi level", &
1654 usage=
"RESTRICT_RANGE .TRUE.", &
1655 default_l_val=.false., lone_keyword_l_val=.true.)
1659 description=
"If the RESTRICT_RANGE keyword is set, then all energy widnows will"// &
1660 " be placed in an interval from from the fermi level minus to the fermi level plus this keyword", &
1662 default_r_val=1.0_dp)
1666 description=
"Print the energy windows to cube files", &
1667 usage=
"PRINT_CUBES .TRUE.", &
1668 default_l_val=.false., lone_keyword_l_val=.true.)
1672 description=
"The stride (X,Y,Z) used to write the energy windows cube files (if enabled) "// &
1673 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1674 " 1 number valid for all components.", &
1675 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1683 description=
"Write the KS matrix in CSR format into a file.", &
1686 description=
"Threshold on the absolute value of the elements to be printed out. "// &
1687 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
1688 "if the block contains at least one non-zero element.", &
1689 usage=
"THRESHOLD {real}", &
1691 default_r_val=0.0_dp)
1694 CALL keyword_create(keyword, __location__, name=
"Upper_triangular", &
1695 description=
"Print only the upper triangular part of the matrix. ", &
1696 usage=
"UPPER_TRIANGULAR {logical}", &
1698 default_l_val=.false., &
1699 lone_keyword_l_val=.true.)
1703 description=
"Whether or not to generate the file in a binary format. ", &
1704 usage=
"BINARY {logical}", &
1706 default_l_val=.false., &
1707 lone_keyword_l_val=.true.)
1711 description=
"Print the KS matrix in real-space instead of k-space.. ", &
1712 usage=
"REAL_SPACE {logical}", &
1714 default_l_val=.false., &
1715 lone_keyword_l_val=.true.)
1723 description=
"Write the overlap matrix in CSR format into a file.", &
1726 description=
"Threshold on the absolute value of the elements to be printed out. "// &
1727 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
1728 "if the block contains at least one non-zero element.", &
1729 usage=
"THRESHOLD {real}", &
1731 default_r_val=0.0_dp)
1734 CALL keyword_create(keyword, __location__, name=
"Upper_triangular", &
1735 description=
"Print only the upper triangular part of the matrix. ", &
1736 usage=
"UPPER_TRIANGULAR {logical}", &
1738 default_l_val=.false., &
1739 lone_keyword_l_val=.true.)
1743 description=
"Whether or not to generate the file in a binary format. ", &
1744 usage=
"BINARY {logical}", &
1746 default_l_val=.false., &
1747 lone_keyword_l_val=.true.)
1751 description=
"Print the overlap matrix in real-space instead of k-space.. ", &
1752 usage=
"REAL_SPACE {logical}", &
1754 default_l_val=.false., &
1755 lone_keyword_l_val=.true.)
1763 description=
"Write the core Hamiltonian matrix in CSR format into a file.", &
1766 description=
"Threshold on the absolute value of the elements to be printed out. "// &
1767 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
1768 "if the block contains at least one non-zero element.", &
1769 usage=
"THRESHOLD {real}", &
1771 default_r_val=0.0_dp)
1774 CALL keyword_create(keyword, __location__, name=
"Upper_triangular", &
1775 description=
"Print only the upper triangular part of the matrix. ", &
1776 usage=
"UPPER_TRIANGULAR {logical}", &
1778 default_l_val=.false., &
1779 lone_keyword_l_val=.true.)
1783 description=
"Whether or not to generate the file in a binary format. ", &
1784 usage=
"BINARY {logical}", &
1786 default_l_val=.false., &
1787 lone_keyword_l_val=.true.)
1791 description=
"Print the core Hamiltonian matrix in real-space instead of k-space.. ", &
1792 usage=
"REAL_SPACE {logical}", &
1794 default_l_val=.false., &
1795 lone_keyword_l_val=.true.)
1803 description=
"Write the density matrix in CSR format into a file.", &
1806 description=
"Threshold on the absolute value of the elements to be printed out. "// &
1807 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
1808 "if the block contains at least one non-zero element.", &
1809 usage=
"THRESHOLD {real}", &
1811 default_r_val=0.0_dp)
1814 CALL keyword_create(keyword, __location__, name=
"Upper_triangular", &
1815 description=
"Print only the upper triangular part of the matrix. ", &
1816 usage=
"UPPER_TRIANGULAR {logical}", &
1818 default_l_val=.false., &
1819 lone_keyword_l_val=.true.)
1823 description=
"Whether or not to generate the file in a binary format. ", &
1824 usage=
"BINARY {logical}", &
1826 default_l_val=.false., &
1827 lone_keyword_l_val=.true.)
1831 description=
"Print the density matrix in real-space instead of k-space.. ", &
1832 usage=
"REAL_SPACE {logical}", &
1834 default_l_val=.false., &
1835 lone_keyword_l_val=.true.)
1843 description=
"Writes an (upper-triangular) adjacency matrix indicating the "// &
1844 "interaction between atoms (according to overlapping basis functions). The "// &
1845 "columns are: iatom, jatom, ikind, jkind; where iatom and jatom are the atom "// &
1846 "indices (based on the coordinate file), ikind and jkind are the atomic kinds "// &
1847 "(indeces as shown in the ATOMIC KIND INFORMATION section of a CP2K output). ", &
1854 print_key, __location__, name=
"XRAY_DIFFRACTION_SPECTRUM", &
1855 description=
"Calculate and print the coherent X-ray "// &
1856 "diffraction spectrum", &
1861 keyword, __location__, &
1863 variants=[
"Q_MAXIMUM"], &
1864 description=
"Maximum Q value calculated for the spectrum", &
1865 usage=
"Q_MAX {real}", &
1870 unit_str=
"angstrom^-1"), &
1871 unit_str=
"angstrom^-1")
1878 description=
"Calculate and print the electric field gradients "// &
1879 "at atomic positions", &
1881 filename=
"__STD_OUT__")
1884 name=
"INTERPOLATION", &
1885 description=
"Use interpolation method from real space grid", &
1886 usage=
"INTERPOLATION {logical}", &
1889 default_l_val=.false., lone_keyword_l_val=.true.)
1894 name=
"GSPACE_SMOOTHING", &
1895 description=
"Use a G-space smoothing function", &
1896 usage=
"GSPACE_SMOOTHING cutoff {real}, width {real}", &
1898 n_var=2, default_r_vals=[-1._dp, -1._dp], &
1905 description=
"Print additional debug output", &
1906 usage=
"DEBUG {logical}", &
1909 default_l_val=.false., lone_keyword_l_val=.true.)
1921 description=
"Print the two quantities needed in the basis molopt generation:"// &
1922 " total energy and condition number of the overlap matrix (S matrix)", &
1924 filename=
"__STD_OUT__")
1929 description=
"Calculate and print the EPR hyperfine coupling tensor"// &
1930 " at atomic positions", &
1932 filename=
"__STD_OUT__")
1935 name=
"INTERACTION_RADIUS", &
1936 description=
"Radius of interaction for EPR hyperfine tensor calculation", &
1937 usage=
"INTERACTION_RADIUS radius {real}", &
1939 n_var=1, default_r_val=10._dp, &
1948 description=
"Optimize the exponents of the LRI basis set", &
1950 filename=
"OPTIMIZED_LRI_BASIS")
1955 print_key, __location__, name=
"PLUS_U", &
1956 description=
"Controls the printing for the DFT+U methods", &
1958 filename=
"__STD_OUT__", &
1959 each_iter_names=
s2a(
"QS_SCF"), &
1960 each_iter_values=[0], &
1966 print_key, __location__, name=
"CHARGEMOL", &
1967 description=
"Write .wfx input file for Chargemol", &
1969 filename=
"CHARGEMOL", &
1971 CALL keyword_create(keyword, __location__, name=
"BACKUP_COPIES", &
1972 description=
"Specifies the maximum number of backup copies.", &
1973 usage=
"BACKUP_COPIES {int}", &
1978 description=
"Write information about cell periodicity.", &
1979 usage=
"PERIODIC {LOGICAL}", &
1980 default_l_val=.false., lone_keyword_l_val=.true.)
1987 print_key, __location__, name=
"SCCS", &
1988 description=
"Controls the printing for the SCCS models", &
1990 filename=
"__STD_OUT__", &
1991 each_iter_names=
s2a(
"QS_SCF"), &
1992 each_iter_values=[0], &
1995 NULLIFY (sub_print_key)
1998 sub_print_key, __location__, name=
"DENSITY_GRADIENT", &
1999 description=
"Controls the printing of the cube files with "// &
2000 "the norm of the density gradient |∇ρ| "// &
2001 "used by the SCCS model.", &
2004 each_iter_names=
s2a(
"QS_SCF"), &
2005 each_iter_values=[0])
2007 description=
"The stride (X,Y,Z) used to write the cube file "// &
2008 "(larger values result in smaller cube files). You can provide 3 "// &
2009 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2011 default_i_vals=[2, 2, 2], &
2017 description=
"Append the cube files when they already exist", &
2018 default_l_val=.false., &
2019 lone_keyword_l_val=.true., &
2027 sub_print_key, __location__, name=
"DIELECTRIC_FUNCTION", &
2028 description=
"Controls the printing of the cube files with "// &
2029 "the dielectric function used by the SCCS model. "// &
2030 "This function determines the cavity formed by a solute in "// &
2031 "a solvent and thus it can be used for the visualisaton of the cavity.", &
2034 each_iter_names=
s2a(
"QS_SCF"), &
2035 each_iter_values=[0], &
2038 description=
"The stride (X,Y,Z) used to write the cube file "// &
2039 "(larger values result in smaller cube files). You can provide 3 "// &
2040 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2042 default_i_vals=[2, 2, 2], &
2048 description=
"Append the cube files when they already exist", &
2049 default_l_val=.false., &
2050 lone_keyword_l_val=.true., &
2058 sub_print_key, __location__, name=
"TOTAL_CHARGE_DENSITY", &
2059 description=
"Controls the printing of the cube files with the "// &
2060 "total charge density $\rho^\text{tot}$ used by the SCCS model.", &
2063 each_iter_names=
s2a(
"QS_SCF"), &
2064 each_iter_values=[0], &
2067 description=
"The stride (X,Y,Z) used to write the cube file "// &
2068 "(larger values result in smaller cube files). You can provide 3 "// &
2069 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2071 default_i_vals=[2, 2, 2], &
2077 description=
"Append the cube files when they already exist", &
2078 default_l_val=.false., &
2079 lone_keyword_l_val=.true., &
2087 sub_print_key, __location__, name=
"POLARISATION_CHARGE_DENSITY", &
2088 description=
"Controls the printing of the cube files with the "// &
2089 "polarisation charge density $\rho^\text{pol}$ used by the SCCS model with the "// &
2090 "total charge density $\rho^\text{tot} = \rho^\text{sol} + \rho^\text{pol}", &
2093 each_iter_names=
s2a(
"QS_SCF"), &
2094 each_iter_values=[0], &
2097 description=
"The stride (X,Y,Z) used to write the cube file "// &
2098 "(larger values result in smaller cube files). You can provide 3 "// &
2099 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2101 default_i_vals=[2, 2, 2], &
2107 description=
"Append the cube files when they already exist", &
2108 default_l_val=.false., &
2109 lone_keyword_l_val=.true., &
2117 sub_print_key, __location__, name=
"POLARISATION_POTENTIAL", &
2118 description=
"Controls the printing of the cube files with the "// &
2119 "polarisation potential $\phi^\text{pol}$ used by the SCCS model with the "// &
2120 "total potential $\phi^\text{tot} = \phi^\text{sol} + \phi^\text{pol}$", &
2123 each_iter_names=
s2a(
"QS_SCF"), &
2124 each_iter_values=[0], &
2127 description=
"The stride (X,Y,Z) used to write the cube file "// &
2128 "(larger values result in smaller cube files). You can provide 3 "// &
2129 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2131 default_i_vals=[2, 2, 2], &
2137 description=
"Append the cube files when they already exist", &
2138 default_l_val=.false., &
2139 lone_keyword_l_val=.true., &
2156 SUBROUTINE create_bandstructure_section(section)
2162 cpassert(.NOT.
ASSOCIATED(section))
2163 CALL section_create(section, __location__, name=
"BAND_STRUCTURE", &
2164 description=
"Specifies the k-points used in band structure calculation.", &
2165 n_keywords=0, n_subsections=0, repeats=.false.)
2169 description=
"File name used for band structure", &
2170 usage=
"FILE_NAME <filename>", default_c_val=
"", &
2171 type_of_var=
char_t, n_var=1)
2176 variants=[
"ADDED_BANDS"], &
2177 description=
"Number of MOs/Bands added to the Band Structure calculation.", &
2182 NULLIFY (subsection)
2187 END SUBROUTINE create_bandstructure_section
2193 SUBROUTINE create_mo_cubes_section(print_key)
2201 description=
"Controls the printing of the molecular orbitals (MOs) as cube files."// &
2202 " It can be used during a Real Time calculation to print the MOs."// &
2203 " In this case, the density corresponding to the time dependent MO is printed"// &
2204 " instead of the wave-function.", &
2208 description=
"The stride (X,Y,Z) used to write the cube file "// &
2209 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
2210 " 1 number valid for all components.", &
2211 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
2215 CALL keyword_create(keyword, __location__, name=
"max_file_size_mb", &
2216 description=
"Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
2217 usage=
"MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
2222 description=
"If the MO cube file should be written. If false, the eigenvalues are still computed."// &
2223 " Can also be useful in combination with STM calculations", &
2224 default_l_val=.true., lone_keyword_l_val=.true.)
2229 description=
"If the printkey is activated controls the number of lumos"// &
2230 " that are printed and dumped as a cube (-1=all)", &
2236 keyword, __location__, name=
"nhomo", &
2237 description=
"If the printkey is activated controls the number of homos that dumped as a cube (-1=all),"// &
2238 " eigenvalues are always all dumped", &
2244 keyword, __location__, name=
"homo_list", &
2245 description=
"If the printkey is activated controls the index of homos dumped as a cube,"// &
2246 " eigenvalues are always all dumped. It overrides nhomo.", &
2247 usage=
"HOMO_LIST {integer} {integer} .. {integer} ", type_of_var=
integer_t, &
2248 n_var=-1, repeats=.true.)
2253 description=
"append the cube files when they already exist", &
2254 default_l_val=.false., lone_keyword_l_val=.true.)
2258 END SUBROUTINE create_mo_cubes_section
2264 SUBROUTINE create_dos_section(print_key)
2273 description=
"Print Density of States (DOS) (only available states from SCF)", &
2277 description=
"Append the DOS obtained at different iterations to the output file. "// &
2278 "By default the file is overwritten", &
2279 usage=
"APPEND", default_l_val=.false., &
2280 lone_keyword_l_val=.true.)
2285 description=
"Histogramm energy spacing.", &
2286 usage=
"DELTA_E 0.0005", type_of_var=
real_t, default_r_val=0.001_dp)
2291 description=
"Specify the number of digits used to print density and occupation", &
2297 description=
"Specify a Monkhorst-Pack grid with which to compute the density of states. "// &
2298 "Works only for a k-point calculation", &
2299 usage=
"MP_GRID {integer} {integer} {integer}", default_i_vals=[-1], &
2304 END SUBROUTINE create_dos_section
2317 NULLIFY (subsection)
2321 description=
"Print out the DOS projected per kind and angular momentum ", &
2324 description=
"Print out PDOS distinguishing all angular momentum components.", &
2325 usage=
"COMPONENTS", default_l_val=.false., &
2326 lone_keyword_l_val=.true.)
2330 description=
"Append the PDOS obtained at different iterations to the PDOS output file. "// &
2331 "By default the file is overwritten", &
2332 usage=
"APPEND", default_l_val=.false., &
2333 lone_keyword_l_val=.true.)
2337 keyword, __location__, name=
"NLUMO", &
2338 description=
"Number of virtual orbitals to be added to the MO set (-1=all)."//
newline// &
2339 "CAUTION: Setting this value to be higher than the "// &
2340 "number of states present may cause a Cholesky error."//
newline// &
2341 "This keyword only applies to MO sets, not to XAS_TDP states.", &
2342 usage=
"NLUMO integer", default_i_val=0)
2345 CALL keyword_create(keyword, __location__, name=
"OUT_EACH_STATE", &
2346 variants=[
"OUT_EACH_MO"], &
2347 description=
"Output on the status of the calculation every OUT_EACH_MO states. If -1 no output", &
2348 usage=
"OUT_EACH_STATE integer", default_i_val=-1)
2353 description=
"Controls the printing of local PDOS, projected on subsets"// &
2354 " of atoms given through lists", &
2355 n_keywords=4, n_subsections=0, repeats=.true.)
2357 description=
"Print out PDOS distinguishing all angular momentum components.", &
2358 usage=
"COMPONENTS", default_l_val=.false., &
2359 lone_keyword_l_val=.true.)
2364 description=
"Specifies a list of indexes of atoms where to project the DOS ", &
2365 usage=
"LIST {integer} {integer} .. {integer} ", type_of_var=
integer_t, &
2366 n_var=-1, repeats=.true.)
2374 description=
"Controls the printing of local PDOS, projected on 3D volume in real space,"// &
2375 " the volume is defined in terms of position with respect to atoms in the lists", &
2376 n_keywords=4, n_subsections=0, repeats=.true.)
2379 description=
"Specifies a list of indexes of atoms used to define the real space volume ", &
2380 usage=
"LIST {integer} {integer} .. {integer} ", type_of_var=
integer_t, &
2381 n_var=-1, repeats=.true.)
2386 description=
"range of positions in Cartesian direction x: all grid points within "// &
2387 "this range from at least one atom of the list are considered", &
2388 usage=
"XRANGE -10.0 10.0", unit_str=
"angstrom", n_var=2, type_of_var=
real_t)
2392 description=
"range of positions in Cartesian direction y: all grid points within "// &
2393 "this range from at least one atom of the list are considered", &
2394 usage=
"YRANGE -10.0 10.0", unit_str=
"angstrom", n_var=2, type_of_var=
real_t)
2398 description=
"range of positions in Cartesian direction z: all grid points within "// &
2399 "this range from at least one atom of the list are considered", &
2400 usage=
"ZRANGE -10.0 10.0", unit_str=
"angstrom", n_var=2, type_of_var=
real_t)
2405 description=
"Only project states with the energy values in the given interval. "// &
2406 "Default is all states.", &
2407 usage=
"ERANGE -1.0 1.0", unit_str=
"hartree", n_var=2, type_of_var=
real_t)
2420 SUBROUTINE create_wannier_section(print_key)
2429 description=
"Interface to Wannier90 code. (EXPERIMENTAL)", &
2433 description=
"The seedname for the Wannier90 calculation (body of filenames).", &
2434 usage=
"SEED_NAME filename", default_c_val=
"wannier90", &
2435 n_var=1, type_of_var=
char_t)
2440 description=
"The dimensions of the Monkhorst-Pack k-point grid. ", &
2441 usage=
"MP_GRID 6 6 6", n_var=-1, default_i_vals=[10, 10, 10], type_of_var=
integer_t)
2446 variants=[
"ADDED_BANDS"], &
2447 description=
"Number of MOs/Bands added to the Band Structure calculation.", &
2452 CALL keyword_create(keyword, __location__, name=
"EXCLUDE_BANDS", &
2453 description=
"List of Bands excluded in the Wannier calculation.", &
2454 usage=
"EXCLUDE_BANDS b1 b2 ...", n_var=-1, repeats=.true., &
2459 CALL keyword_create(keyword, __location__, name=
"WANNIER_FUNCTIONS", &
2460 description=
"Number of Wannier functions to be calculated. ", &
2461 usage=
"WANNIER_FUNCTIONS 6", n_var=1, default_i_val=0, &
2466 END SUBROUTINE create_wannier_section
2472 SUBROUTINE create_stm_section(print_key)
2480 description=
"Controls the printing of cubes for the generation of STM images.", &
2483 description=
"The stride (X,Y,Z) used to write the cube file "// &
2484 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
2485 " 1 number valid for all components.", &
2486 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
2491 description=
"If the printkey is activated controls the number of additional lumos"// &
2492 " that are computed to be able to reproduce STM images obtained"// &
2493 " from positive bias (imaging unoccupied states)", &
2499 description=
"Bias energy for scanning tunneling microscopy (STM) image generation. "// &
2500 "Orbital densities are summed according to the bias energy. "// &
2501 "For negative values, states in the range ]EF+bias,EF] are summed, "// &
2502 "While positive values sum states in the range [EF,EF+bias[. "// &
2503 "If positive biases are used, sufficiently many unoccupied stated "// &
2504 "(see ADDED_MOS and NLUMO ) should be computed.", &
2505 n_var=-1, type_of_var=
real_t, default_r_vals=[0.0_dp], unit_str=
'eV')
2510 description=
"Tip orbital symmetry in Tersoff-Hamann approximation to compute STM images", &
2512 default_i_val=
orb_s, &
2513 usage=
"TH_TORB s dz2", &
2514 enum_c_vals=
s2a(
"S",
"PX",
"PY",
"PZ",
"DXY",
"DYZ",
"DZX",
"DX2",
"DY2",
"DZ2"), &
2515 enum_i_vals=[
orb_s,
orb_px,
orb_py,
orb_pz,
orb_dxy,
orb_dyz,
orb_dzx,
orb_dx2,
orb_dy2,
orb_dz2], &
2516 enum_desc=
s2a(
"s orbital",
"px orbital",
"py orbital",
"pz orbital", &
2517 "dxy orbital",
"dyz orbital",
"dzx orbital",
"x^2 orbital",
"y^2 orbital",
"z^2 orbital"))
2522 description=
"By default the reference energy is the Fermi energy. In order to compare"// &
2523 " with STS experiments, where specific energy ranges are addressed, here"// &
2524 " one can set a different reference energy."// &
2525 " The energy range is anyway controlled by the BIAS", &
2526 type_of_var=
real_t, default_r_val=0.0_dp, unit_str=
'eV')
2531 description=
"append the cube files when they already exist", &
2532 default_l_val=.false., lone_keyword_l_val=.true.)
2536 END SUBROUTINE create_stm_section
2542 SUBROUTINE create_wfn_mix_section(section)
2549 NULLIFY (subsection)
2552 cpassert(.NOT.
ASSOCIATED(section))
2555 description=
"A section that allows manipulation of the MO coeffs, "// &
2556 "e.g. for changing a ground state into an excited state. "// &
2557 "Starting from a copy of the original MOs, changes can be made "// &
2558 "by adding linear combinations of HOMO/LUMO of the original MOs to the result MOs. "// &
2559 "This method is called after an SCF optimization or before an RTP run if "// &
2560 "INITIAL_WFN=RESTART_WFN. Note that if called after an SCF optimization, a restart file "// &
2561 "with the mixed MOs is saved. This is not the case for an RTP with "// &
2562 "INITIAL_WFN=RESTART_WFN.", &
2563 n_keywords=1, n_subsections=0, repeats=.false.)
2565 CALL keyword_create(keyword, __location__, name=
"OVERWRITE_MOS", &
2566 description=
"If set to True, the active molecular orbitals in memory will be replaced by the mixed wfn "// &
2567 "at the end of the wfn mixing procedure. For instance, you can then use this new set of MOs to perform "// &
2568 "RTP or EMD directly. Note that in the case of an RTP run with INITIAL_WFN=RESTART_WFN, the OVERWRITE_MOS "// &
2569 "keyword is not used.", &
2570 default_l_val=.false., lone_keyword_l_val=.true.)
2575 description=
"Update a result MO with with a linear combination of original MOs."// &
2576 " This section can be repeated to build arbitrary linear combinations using repeatedly y=a*y+b*x. "// &
2577 "RESULT is (y), RESULT_SCALE is (a), ORIG is (x), ORIG_SCALE is (b)", &
2578 n_keywords=1, n_subsections=0, repeats=.true.)
2580 CALL keyword_create(keyword, __location__, name=
"RESULT_MO_INDEX", &
2581 description=
"Index of the MO (y) to be modified. Counting down in energy: "// &
2582 "set to 1 for the highest MO, to 3 for the highest MO-2.", &
2583 usage=
"RESULT_MO_INDEX 1", type_of_var=
integer_t, default_i_val=0)
2587 CALL keyword_create(keyword, __location__, name=
"RESULT_MARKED_STATE", &
2588 description=
"Specifies the MO according to "// &
2589 "the marks set in MOLECULAR_STATES. The value corresponds to the repetition "// &
2590 "of MARK_STATES in MOLECULAR_STATES", &
2591 usage=
"RESULT_MARKED_STATE 1", type_of_var=
integer_t, default_i_val=0)
2595 CALL keyword_create(keyword, __location__, name=
"REVERSE_MO_INDEX", &
2596 description=
"Reverses the index order of the OCCUPIED and EXTERNAL MOs. With this keyword "// &
2597 "ORIG_MO_INDEX/RESULT_MO_INDEX 1 point to the lowest energy MO (instead of the highest) "// &
2598 "and counts up in energy. The VIRTUAL MOs indexing is unchanged.", &
2599 default_l_val=.false., lone_keyword_l_val=.true.)
2603 CALL keyword_create(keyword, __location__, name=
"RESULT_SPIN_INDEX", &
2604 description=
"Spin of the MO (y) to be modified.", &
2605 enum_c_vals=
s2a(
"Alpha",
"Beta"), &
2606 enum_i_vals=[1, 2], &
2608 enum_desc=
s2a(
"Majority spin",
"Minority spin"))
2612 CALL keyword_create(keyword, __location__, name=
"RESULT_SCALE", &
2613 description=
"Scaling factor of the result variable (a).", &
2614 usage=
"RESULT_SCALE 0.0", type_of_var=
real_t)
2618 CALL keyword_create(keyword, __location__, name=
"ORIG_MO_INDEX", &
2619 description=
"Index of the original MO (x). "// &
2620 "If ORIG_TYPE is OCCUPIED, it counts down in energy: set to 1 to point to "// &
2621 "the highest MO and to 3 for the highest MO-2. "// &
2622 "If ORIG_TYPE is VIRTUAL, it counts up in energy: set to 1 to point to "// &
2623 "the lowest virtual MO and to 3 for the lowest MO+2. "// &
2624 "If ORIG_TYPE is EXTERNAL, it counts down in energy for the external "// &
2625 "set of MOs: set to 1 to point to the highest MO and to 3 for the highest MO-2. "// &
2626 "Do not set to zero or negative values.", &
2627 usage=
"ORIG_MO_INDEX 1", type_of_var=
integer_t, default_i_val=0)
2631 CALL keyword_create(keyword, __location__, name=
"ORIG_MARKED_STATE", &
2632 description=
"Specifies the MO according to "// &
2633 "the marks set in MOLECULAR_STATES. The value corresponds to the repetition "// &
2634 "of MARK_STATES in MOLECULAR_STATES", &
2635 usage=
"ORIG_MARKED_STATE 1", type_of_var=
integer_t, default_i_val=0)
2639 CALL keyword_create(keyword, __location__, name=
"ORIG_SPIN_INDEX", &
2640 description=
"Spin of the MO (x) to be modified.", &
2641 enum_c_vals=
s2a(
"Alpha",
"Beta"), &
2642 enum_i_vals=[1, 2], &
2644 enum_desc=
s2a(
"Majority spin",
"Minority spin"))
2649 description=
"Scaling factor of the original variable (b).", &
2650 usage=
"ORIG_SCALE 0.0", type_of_var=
real_t)
2655 description=
"Type of the original MO. Note that if ADDED_MOS was used in the "// &
2656 "SCF construction of the MO matrix, these extra MOs are also treated as OCCUPIED. ", &
2657 enum_c_vals=
s2a(
"OCCUPIED",
"VIRTUAL",
'EXTERNAL'), &
2658 usage=
"ORIG_TYPE OCCUPIED", &
2660 enum_desc=
s2a(
"The original MO is the result of the SCF procedure. This can also contain "// &
2661 "unoccupied MOs if the SCF%ADDED_MOS keyword was used.", &
2662 "The original MO is taken from the result of additional MOs calculated a "// &
2663 "posteriori of the SCF by request of the user. E.g. by specifying print%mo_cubes%nlumo. ", &
2664 "The orginal MO is from an external .wfn file. Use the keyword "// &
2665 "ORIG_EXT_FILE_NAME to define its name."), &
2670 CALL keyword_create(keyword, __location__, name=
"ORIG_EXT_FILE_NAME", &
2671 description=
"Name of the wavefunction file to read the original MO from. "// &
2672 "For instance, a restart wfn file from SCF calculation or an excited state from XAS_TDP calculation. "// &
2673 "If no file is specified, the run will crash. "// &
2674 "Currently, a RTP restart file (.rtpwfn) cannot be used as reference. "// &
2675 "Currently, this file SHALL have the basis set, number of MO and the same number of spin as the one "// &
2676 "from the SCF cycle.", &
2677 usage=
"ORIG_EXT_FILE_NAME <FILENAME>", &
2678 default_lc_val=
"EMPTY")
2685 END SUBROUTINE create_wfn_mix_section
2694 SUBROUTINE create_implicit_psolver_section(section)
2700 cpassert(.NOT.
ASSOCIATED(section))
2701 CALL section_create(section, __location__, name=
"IMPLICIT_PSOLVER", &
2702 description=
"Controls printing of cube files for data from the implicit "// &
2703 "(generalized) Poisson solver.", &
2705 n_keywords=0, n_subsections=3, repeats=.false.)
2707 NULLIFY (keyword, print_key)
2711 description=
"Controls the printing of a cube file with dielectric constant from "// &
2712 "the implicit (generalized) Poisson solver.", &
2716 description=
"The stride (X,Y,Z) used to write the cube file "// &
2717 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
2718 " 1 number valid for all components.", &
2719 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
2723 description=
"append the cube files when they already exist", &
2724 default_l_val=.false., lone_keyword_l_val=.true.)
2733 print_key, __location__,
"DIRICHLET_BC_CUBE", &
2734 description=
"Controls the printing of cube files with unit step functions (constraints)"// &
2735 " representing Dirichlet-type (boundary) regions defined in the implicit (generalized) Poisson"// &
2736 " solver section. The regions remain unchanged throughout the calculations. If the Dirichlet"// &
2737 " regions are relatively large and/or the number of partitions is quite high, in order to save memory,"// &
2738 " generate the cube files in early steps and perform the rest of the calculations with this keyword"// &
2743 description=
"Print tiles that tessellate the Dirichlet regions into cube files. If TRUE, "// &
2744 "generates cube files as many as the total number of tiles.", &
2745 usage=
"TILE_CUBES <logical>", &
2746 default_l_val=.false., lone_keyword_l_val=.true.)
2750 description=
"The stride (X,Y,Z) used to write the cube file "// &
2751 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
2752 " 1 number valid for all components.", &
2753 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
2757 description=
"append the cube files when they already exist", &
2758 default_l_val=.false., lone_keyword_l_val=.true.)
2767 description=
"Controls the printing of cube files with penalty charges induced to "// &
2768 "Dirichlet regions by Lagrange multipliers (implicit Poisson solver).", &
2772 description=
"The stride (X,Y,Z) used to write the cube file "// &
2773 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
2774 " 1 number valid for all components.", &
2775 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
2779 description=
"append the cube files when they already exist", &
2780 default_l_val=.false., lone_keyword_l_val=.true.)
2787 END SUBROUTINE create_implicit_psolver_section
2800 cpassert(.NOT.
ASSOCIATED(section))
2801 CALL section_create(section, __location__, name=
"interpolator", &
2802 description=
"controls the interpolation for the G-space term", &
2803 n_keywords=5, n_subsections=0, repeats=.false.)
2805 NULLIFY (keyword, print_key)
2807 CALL keyword_create(keyword, __location__, name=
"aint_precond", &
2808 description=
"the approximate inverse to use to get the starting point"// &
2809 " for the linear solver of the spline3 methods", &
2810 usage=
"aint_precond copy", &
2812 enum_c_vals=
s2a(
"copy",
"spl3_nopbc_aint1",
"spl3_nopbc_precond1", &
2813 "spl3_nopbc_aint2",
"spl3_nopbc_precond2",
"spl3_nopbc_precond3"), &
2820 description=
"The preconditioner used"// &
2821 " for the linear solver of the spline3 methods", &
2822 usage=
"precond copy", &
2824 enum_c_vals=
s2a(
"copy",
"spl3_nopbc_aint1",
"spl3_nopbc_precond1", &
2825 "spl3_nopbc_aint2",
"spl3_nopbc_precond2",
"spl3_nopbc_precond3"), &
2832 description=
"accuracy on the solution for spline3 the interpolators", &
2833 usage=
"eps_x 1.e-15", default_r_val=1.e-10_dp)
2838 description=
"accuracy on the residual for spline3 the interpolators", &
2839 usage=
"eps_r 1.e-15", default_r_val=1.e-10_dp)
2844 variants=[
'maxiter'], &
2845 description=
"the maximum number of iterations", &
2846 usage=
"max_iter 200", default_i_val=100)
2852 description=
"if convergence information about the linear solver"// &
2853 " of the spline methods should be printed", &
2855 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...
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