102#include "./base/base_uses.f90"
107 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'input_cp2k_dft'
127 cpassert(.NOT.
ASSOCIATED(section))
129 description=
"Controls electronic-structure settings for Quickstep and related "// &
130 "Gaussian-basis DFT methods.", &
131 n_keywords=3, n_subsections=4, repeats=.false.)
134 CALL keyword_create(keyword, __location__, name=
"BASIS_SET_FILE_NAME", &
135 description=
"Name of a basis-set library file, optionally including a path. "// &
136 "This keyword can be repeated to search several basis-set files.", &
137 usage=
"BASIS_SET_FILE_NAME <FILENAME>", &
138 type_of_var=
lchar_t, repeats=.true., &
139 default_lc_val=
"BASIS_SET", n_var=1)
143 CALL keyword_create(keyword, __location__, name=
"POTENTIAL_FILE_NAME", &
144 description=
"Name of the pseudopotential library file, optionally including a path. "// &
145 "This keyword can be repeated to search several pseudopotential files. "// &
146 "Files are searched in input order and the first matching potential is used. "// &
147 "The potential selected for each kind is set with KIND%POTENTIAL.", &
148 usage=
"POTENTIAL_FILE_NAME <FILENAME>", &
149 type_of_var=
lchar_t, repeats=.true., &
150 default_lc_val=
"POTENTIAL", n_var=1)
154 CALL keyword_create(keyword, __location__, name=
"WFN_RESTART_FILE_NAME", &
155 variants=[
"RESTART_FILE_NAME"], &
156 description=
"Name of the wavefunction restart file, may include a path."// &
157 " If no file is specified, the default is to open the file as generated by the wfn restart print key.", &
158 usage=
"WFN_RESTART_FILE_NAME <FILENAME>", &
165 variants=
s2a(
"UNRESTRICTED_KOHN_SHAM", &
168 description=
"Requests a spin-polarized calculation using alpha "// &
169 "and beta orbitals, i.e. no spin restriction is applied", &
171 default_l_val=.false., &
172 lone_keyword_l_val=.true.)
177 variants=[
"RESTRICTED_OPEN_KOHN_SHAM"], &
178 description=
"Requests a restricted open Kohn-Sham calculation", &
180 default_l_val=.false., &
181 lone_keyword_l_val=.true.)
185 name=
"MULTIPLICITY", &
186 variants=[
"MULTIP"], &
187 description=
"Two times the total spin plus one. "// &
188 "Specify 3 for a triplet, 4 for a quartet, "// &
189 "and so on. Default is 1 (singlet) for an "// &
190 "even number and 2 (doublet) for an odd number "// &
192 usage=
"MULTIPLICITY 3", &
197 description=
"The total charge of the system", &
204 name=
"PLUS_U_METHOD", &
205 description=
"Method employed for the calculation of the DFT+U contribution", &
207 enum_c_vals=
s2a(
"LOWDIN",
"MULLIKEN",
"MULLIKEN_CHARGES",
"TENSORIAL"), &
210 enum_desc=
s2a(
"Method based on Lowdin population analysis "// &
211 "(computationally expensive, since the diagonalization of the "// &
212 "overlap matrix is required, but possibly more robust than Mulliken)", &
213 "Method based on Mulliken population analysis using the net AO and "// &
214 "overlap populations (computationally cheap method)", &
215 "Method based on Mulliken gross orbital populations (GOP)", &
216 "Method based on Tensorial population analysis approach"), &
219 usage=
"PLUS_U_METHOD Lowdin")
224 name=
"EPS_U_J_LOOP", &
225 description=
"Convergence threshold for the self-consistent update of U and J parameters "// &
226 "in the minimum tracking linear response calculation.", &
229 unit_str=
"hartree", &
230 default_r_val=1.0e-2_dp, &
231 usage=
"EPS_U_J_LOOP [eV] 0.01")
236 name=
"MTLR_REFERENCE_SCF", &
237 description=
"Controls the unperturbed reference SCF for minimum tracking linear "// &
238 "response. With SCF_GUESS ATOMIC, the default is OFF. If enabled, an unperturbed "// &
239 "reference SCF is first converged and its orbitals initialize every perturbation. "// &
240 "With SCF_GUESS RESTART, a reference SCF is required and uses the standard "// &
241 "restart initial guess.", &
244 lone_keyword_l_val=.true., &
245 usage=
"MTLR_REFERENCE_SCF ON")
250 name=
"MAX_MTLR_LOOP", &
251 description=
"Max number of iterations for calculated self-consistent linear response U and J.", &
254 usage=
"MAX_MTLR_LOOP 10")
259 name=
"RELAX_MULTIPLICITY", &
260 variants=[
"RELAX_MULTIP"], &
261 description=
"Tolerance in Hartrees. Do not enforce the occupation "// &
262 "of alpha and beta MOs due to the initially "// &
263 "defined multiplicity, but rather follow the Aufbau principle. "// &
264 "A value greater than zero activates this option. "// &
265 "If alpha/beta MOs differ in energy less than this tolerance, "// &
266 "then alpha-MO occupation is preferred even if it is higher "// &
267 "in energy (within the tolerance). "// &
268 "Such spin-symmetry broken (spin-polarized) occupation is used "// &
269 "as SCF input, which (is assumed to) bias the SCF "// &
270 "towards a spin-polarized solution. "// &
271 "Thus, larger tolerance increases chances of ending up "// &
272 "with spin-polarization. "// &
273 "This option is only valid for unrestricted (i.e. spin polarised) "// &
274 "Kohn-Sham (UKS) calculations. It also needs non-zero "// &
275 "[ADDED_MOS](#CP2K_INPUT.FORCE_EVAL.DFT.SCF.ADDED_MOS) to actually affect the calculations, "// &
276 "which is why it is not expected to work with [OT](#CP2K_INPUT.FORCE_EVAL.DFT.SCF.OT) "// &
277 "and may raise errors when used with OT. "// &
278 "For more details see [this discussion](https://github.com/cp2k/cp2k/issues/4389).", &
279 usage=
"RELAX_MULTIPLICITY 0.00001", &
281 default_r_val=0.0_dp)
286 description=
"Read the grid size for subcell generation in the construction of "// &
287 "neighbor lists.", usage=
"SUBCELLS 1.5", &
288 n_var=1, default_r_val=2.0_dp)
293 description=
"Specify type and size of automatically generated auxiliary "// &
294 "(RI) basis sets. Exactly two arguments are required for this option. "// &
295 "The first argument of basis type should be one of the following: "// &
296 "`RI_AUX`, `AUX_FIT`, `LRI_AUX`, `P_LRI_AUX`, `RI_HXC`, `RI_XAS`, or "// &
297 "`RI_HFX`. The second argument of basis size should be one of the "// &
298 "following: `SMALL`, `MEDIUM`, `LARGE`, or `HUGE`. The default is not "// &
299 "using any of these basis sets, requested by `AUTO_BASIS X X` (exactly "// &
300 "as written here).", &
301 usage=
"AUTO_BASIS {basis_type} {basis_size}", &
302 type_of_var=
char_t, repeats=.true., n_var=-1, default_c_vals=[
"X",
"X"])
307 name=
"SURFACE_DIPOLE_CORRECTION", &
308 variants=
s2a(
"SURFACE_DIPOLE", &
310 description=
"For slab calculations with asymmetric geometries, activate the correction of "// &
311 "the electrostatic potential with "// &
312 "by compensating for the surface dipole. Implemented only for slabs with normal "// &
313 "parallel to one Cartesian axis. The normal direction is given by the keyword SURF_DIP_DIR", &
315 default_l_val=.false., &
316 lone_keyword_l_val=.true., &
322 name=
"SURF_DIP_DIR", &
323 description=
"Cartesian axis parallel to surface normal.", &
324 enum_c_vals=
s2a(
"X",
"Y",
"Z"), &
325 enum_i_vals=[1, 2, 3], &
326 enum_desc=
s2a(
"Along x",
"Along y",
"Along z"), &
329 usage=
"SURF_DIP_DIR Z")
334 name=
"SURF_DIP_POS", &
335 description=
"This keyword assigns an user defined position in Angstroms "// &
336 "in the direction normal to the surface (given by SURF_DIP_DIR). "// &
337 "The default value is -1.0_dp which appplies the correction at a position "// &
338 "that has minimum electron density on the grid.", &
339 usage=
"SURF_DIP_POS -1.0_dp", &
340 default_r_val=-1.0_dp)
345 name=
"SURF_DIP_SWITCH", &
346 description=
"WARNING: Experimental feature under development that will help the "// &
347 "user to switch parameters to facilitate SCF convergence. In its current form the "// &
348 "surface dipole correction is switched off if the calculation does not converge in "// &
349 "(0.5*MAX_SCF + 1) outer_scf steps. "// &
350 "The default value is .FALSE.", &
351 usage=
"SURF_DIP_SWITCH .TRUE.", &
352 default_l_val=.false., &
353 lone_keyword_l_val=.true.)
358 name=
"CORE_CORR_DIP", &
359 description=
"If the total CORE_CORRECTION is non-zero and surface dipole "// &
360 "correction is switched on, presence of this keyword will adjust electron "// &
361 "density via MO occupation to reflect the total CORE_CORRECTION. "// &
362 "The default value is .FALSE.", &
363 usage=
"CORE_CORR_DIP .TRUE.", &
364 default_l_val=.false., &
365 lone_keyword_l_val=.true.)
371 description=
"Sorts basis functions according to a selected criterion. "// &
372 "Sorting by exponent can improve data locality for selected exact-exchange and RI workflows.", &
373 enum_c_vals=
s2a(
"DEFAULT",
"EXP"), &
375 enum_desc=
s2a(
"don't sort",
"sort w.r.t. exponent"), &
377 usage=
"SORT_BASIS EXP")
394 CALL create_kg_section(subsection)
410 CALL create_admm_section(subsection)
426 CALL create_relativistic_section(subsection)
430 CALL create_sic_section(subsection)
434 CALL create_low_spin_roks_section(subsection)
475 CALL create_implicit_solv_section(subsection)
479 CALL create_density_fitting_section(subsection)
495 CALL create_rtp_section(subsection)
503 CALL create_sccs_section(subsection)
515 CALL create_hairy_probes_section(subsection)
519 CALL create_pcc_section(subsection)
523 CALL create_paep_section(subsection)
535 SUBROUTINE create_hairy_probes_section(section)
541 cpassert(.NOT.
ASSOCIATED(section))
543 name=
"HAIRY_PROBES", &
544 description=
"Sets up a Hairy Probe calculation. ", &
545 n_keywords=0, n_subsections=0, repeats=.true.)
548 name=
"_SECTION_PARAMETERS_", &
549 description=
"Controls the activation of hairy probe", &
550 usage=
"&HAIRY_PROBES ON", &
551 default_l_val=.false., &
552 lone_keyword_l_val=.true.)
557 description=
"Indexes of the atoms to which the probes are attached.", &
558 usage=
"ATOM_IDS <INTEGER> .. <INTEGER>", &
564 description=
"Electronic temperature [K]", &
572 description=
"Chemical potential of the electrons in the probes [eV] ", &
580 description=
"Parameter for solution probes ", &
581 usage=
"ALPHA <REAL>", &
582 default_r_val=1.0_dp)
587 description=
" Tolerance for accuracy checks on occupation numbers "// &
588 "calculated using hair-probes. ", &
589 usage=
"EPS_HP <REAL>", &
590 default_r_val=1.0e-5_dp)
593 END SUBROUTINE create_hairy_probes_section
601 SUBROUTINE create_implicit_solv_section(section)
607 NULLIFY (keyword, subsection, print_key)
608 cpassert(.NOT.
ASSOCIATED(section))
610 description=
"Adds an implicit solvation model to the DFT calculation."// &
611 " Know also as Self Consistent Reaction Field.", &
612 n_keywords=0, n_subsections=0, repeats=.false.)
615 description=
"Value of the dielectric constant outside the sphere", &
616 usage=
"EPS_OUT <REAL>", &
617 default_r_val=1.0_dp)
622 description=
"Maximum value of L used in the multipole expansion", &
623 usage=
"LMAX <INTEGER>", &
628 CALL create_sphere_section(subsection)
633 description=
"Controls the printing basic info about the method", &
638 END SUBROUTINE create_implicit_solv_section
645 SUBROUTINE create_sphere_section(section)
651 NULLIFY (keyword, subsection)
652 cpassert(.NOT.
ASSOCIATED(section))
654 description=
"Treats the implicit solvent environment like a sphere", &
655 n_keywords=0, n_subsections=0, repeats=.false.)
658 description=
"Value of the spherical cavity in the dielectric medium", &
659 usage=
"RADIUS <REAL>", &
660 unit_str=
"angstrom", &
665 CALL create_center_section(subsection)
669 END SUBROUTINE create_sphere_section
676 SUBROUTINE create_center_section(section)
682 cpassert(.NOT.
ASSOCIATED(section))
684 description=
"Defines the center of the sphere.", &
685 n_keywords=0, n_subsections=0, repeats=.false.)
687 description=
"Coordinates of the center of the sphere", &
688 usage=
"XYZ <REAL> <REAL> <REAL>", &
689 unit_str=
"angstrom", &
690 type_of_var=
real_t, n_var=3)
695 description=
"Defines a list of atoms to define the center of the sphere", &
696 usage=
"ATOM_LIST <INTEGER> .. <INTEGER>", &
702 description=
"Defines the weight used to define the center of the sphere"// &
703 " (if ATOM_LIST is provided)", &
704 usage=
"WEIGHT_TYPE (UNIT|MASS)", &
705 enum_c_vals=[
"UNIT",
"MASS"], &
712 description=
"Specify if the center of the sphere should be fixed or"// &
713 " allowed to move", &
714 usage=
"FIXED <LOGICAL>", &
715 default_l_val=.true.)
719 END SUBROUTINE create_center_section
725 SUBROUTINE create_admm_section(section)
731 cpassert(.NOT.
ASSOCIATED(section))
732 CALL section_create(section, __location__, name=
"AUXILIARY_DENSITY_MATRIX_METHOD", &
733 description=
"Controls the auxiliary density matrix method (ADMM), which evaluates "// &
734 "Hartree-Fock exchange on a smaller auxiliary basis and adds an exchange correction.", &
735 n_keywords=1, n_subsections=1, repeats=.false., &
739 keyword, __location__, &
741 description=
"Named ADMM variant from the literature. This shortcut sets METHOD, "// &
742 "ADMM_PURIFICATION_METHOD, and EXCH_SCALING_MODEL consistently for the selected variant.", &
743 enum_c_vals=
s2a(
"NONE",
"ADMM1",
"ADMM2",
"ADMMS",
"ADMMP",
"ADMMQ"), &
744 enum_desc=
s2a(
"No short name is used, use specific definitions (default)", &
745 "ADMM1 method from Guidon2010", &
746 "ADMM2 method from Guidon2010", &
747 "ADMMS method from Merlot2014", &
748 "ADMMP method from Merlot2014", &
749 "ADMMQ method from Merlot2014"), &
757 keyword, __location__, &
758 name=
"ADMM_PURIFICATION_METHOD", &
759 description=
"Method that shall be used for wavefunction fitting. Use MO_DIAG for MD.", &
760 enum_c_vals=
s2a(
"NONE",
"CAUCHY",
"CAUCHY_SUBSPACE",
"MO_DIAG",
"MO_NO_DIAG",
"MCWEENY",
"NONE_DM"), &
764 enum_desc=
s2a(
"Do not apply any purification", &
765 "Perform purification via general Cauchy representation", &
766 "Perform purification via Cauchy representation in occupied subspace", &
767 "Calculate MO derivatives via Cauchy representation by diagonalization", &
768 "Calculate MO derivatives via Cauchy representation by inversion", &
769 "Perform original McWeeny purification via matrix multiplications", &
770 "Do not apply any purification, works directly with density matrix"), &
776 keyword, __location__, &
778 description=
"Method that shall be used for wavefunction fitting. Use BASIS_PROJECTION for MD.", &
779 enum_c_vals=
s2a(
"BASIS_PROJECTION",
"BLOCKED_PROJECTION_PURIFY_FULL",
"BLOCKED_PROJECTION", &
780 "CHARGE_CONSTRAINED_PROJECTION"), &
783 enum_desc=
s2a(
"Construct auxiliary density matrix from auxiliary basis.", &
784 "Construct auxiliary density from a blocked Fock matrix,"// &
785 " but use the original matrix for purification.", &
786 "Construct auxiliary density from a blocked Fock matrix.", &
787 "Construct auxiliary density from auxiliary basis enforcing charge constrain."), &
793 keyword, __location__, &
794 name=
"EXCH_SCALING_MODEL", &
795 description=
"Scaling of the exchange correction calculated by the auxiliary density matrix.", &
796 enum_c_vals=
s2a(
"NONE",
"MERLOT"), &
798 enum_desc=
s2a(
"No scaling is enabled, refers to methods ADMM1, ADMM2 or ADMMQ.", &
799 "Exchange scaling according to Merlot (2014)"), &
805 keyword, __location__, &
806 name=
"EXCH_CORRECTION_FUNC", &
807 description=
"Exchange functional used for the ADMM correction. It should be chosen consistently "// &
808 "with the exchange functional in the main XC setup. LibXC implementations require linking with LibXC.", &
809 enum_c_vals=
s2a(
"DEFAULT",
"PBEX",
"NONE",
"OPTX",
"BECKE88X", &
810 "PBEX_LIBXC",
"BECKE88X_LIBXC",
"OPTX_LIBXC",
"DEFAULT_LIBXC",
"LDA_X_LIBXC"), &
816 enum_desc=
s2a(
"Use PBE-based corrections according to the chosen interaction operator.", &
817 "Use PBEX functional for exchange correction.", &
818 "No correction: X(D)-x(d)-> 0.", &
819 "Use OPTX functional for exchange correction.", &
820 "Use Becke88X functional for exchange correction.", &
821 "Use PBEX functional (LibXC implementation) for exchange correction.", &
822 "Use Becke88X functional (LibXC implementation) for exchange correction.", &
823 "Use OPTX functional (LibXC implementation) for exchange correction.", &
824 "Use PBE-based corrections (LibXC where possible) to the chosen interaction operator.", &
825 "Use Slater X functional (LibXC where possible) for exchange correction."), &
831 description=
"OPTX a1 coefficient", &
832 default_r_val=1.05151_dp)
836 description=
"OPTX a2 coefficient", &
837 default_r_val=1.43169_dp)
841 description=
"OPTX gamma coefficient", &
842 default_r_val=0.006_dp)
847 description=
"Specifies a list of atoms.", &
848 usage=
"BLOCK_LIST {integer} {integer} .. {integer}", &
849 n_var=-1, type_of_var=
integer_t, repeats=.true.)
854 description=
"Define accuracy of DBCSR operations", &
855 usage=
"EPS_FILTER", default_r_val=0.0_dp)
859 END SUBROUTINE create_admm_section
865 SUBROUTINE create_density_fitting_section(section)
871 NULLIFY (keyword, print_key)
872 cpassert(.NOT.
ASSOCIATED(section))
873 CALL section_create(section, __location__, name=
"DENSITY_FITTING", &
874 description=
"Setup parameters for density fitting (Bloechl charges or density derived "// &
875 "atomic point charges (DDAPC) charges)", &
876 n_keywords=7, n_subsections=0, repeats=.false., &
880 description=
"Specifies the numbers of gaussian used to fit the QM density for each atomic site.", &
881 usage=
"NUM_GAUSS {integer}", &
882 n_var=1, type_of_var=
integer_t, default_i_val=3)
887 description=
"Specifies the progression factor for the gaussian exponent for each atomic site.", &
888 usage=
"PFACTOR {real}", &
889 n_var=1, type_of_var=
real_t, default_r_val=1.5_dp)
894 description=
"Specifies the smallest radius of the gaussian used in the fit. All other radius are"// &
895 " obtained with the progression factor.", &
896 usage=
"MIN_RADIUS {real}", &
897 unit_str=
"angstrom", n_var=1, type_of_var=
real_t, default_r_val=0.5_dp)
902 description=
"Specifies all the radius of the gaussian used in the fit for each atomic site. The use"// &
903 " of this keyword disables all other keywords of this section.", &
904 usage=
"RADII {real} {real} .. {real}", &
905 unit_str=
"angstrom", n_var=-1, type_of_var=
real_t)
910 description=
"Cutoff for charge fit in G-space.", &
911 usage=
"GCUT {real}", &
912 n_var=1, type_of_var=
real_t, default_r_val=sqrt(6.0_dp))
917 description=
"Controls the printing of basic information during the run", &
920 CALL keyword_create(keyword, __location__, name=
"CONDITION_NUMBER", &
921 description=
"Prints information regarding the condition numbers of the A matrix (to be inverted)", &
922 usage=
"CONDITION_NUMBER <LOGICAL>", &
923 default_l_val=.false., lone_keyword_l_val=.true.)
930 END SUBROUTINE create_density_fitting_section
937 SUBROUTINE create_relativistic_section(section)
942 cpassert(.NOT.
ASSOCIATED(section))
944 description=
"parameters needed and setup for relativistic calculations", &
945 n_keywords=5, n_subsections=0, repeats=.false.)
950 description=
"type of relativistic correction used", &
951 usage=
"method (NONE|DKH|ZORA)", default_i_val=
rel_none, &
952 enum_c_vals=
s2a(
"NONE",
"DKH",
"ZORA"), &
954 enum_desc=
s2a(
"Use no relativistic correction", &
955 "Use Douglas-Kroll-Hess method", &
961 description=
"The order of the DKH transformation ", &
962 usage=
"DKH_order 2", default_i_val=2)
967 description=
"Type of ZORA method to be used", &
969 enum_c_vals=
s2a(
"FULL",
"MP",
"scMP"), &
970 enum_desc=
s2a(
"Full ZORA method (not implemented)", &
971 "ZORA with atomic model potential", &
972 "Scaled ZORA with atomic model potential"), &
977 CALL keyword_create(keyword, __location__, name=
"transformation", &
978 description=
"Type of DKH transformation", &
979 usage=
"transformation (FULL|MOLECULE|ATOM)", default_i_val=
rel_trans_atom, &
980 enum_c_vals=
s2a(
"FULL",
"MOLECULE",
"ATOM"), &
982 enum_desc=
s2a(
"Use full matrix transformation", &
983 "Use transformation blocked by molecule", &
984 "Use atomic blocks"))
989 description=
"The minimal atomic number considered for atom transformation", &
990 usage=
"z_cutoff 50", default_i_val=1)
995 description=
"External potential used in DKH transformation, full 1/r or erfc(r)/r", &
996 usage=
"POTENTIAL {FULL,ERFC}", default_i_val=
rel_pot_erfc, &
997 enum_c_vals=
s2a(
"FULL",
"ERFC"), &
1002 END SUBROUTINE create_relativistic_section
1009 SUBROUTINE create_kg_section(section)
1015 cpassert(.NOT.
ASSOCIATED(section))
1017 description=
"Specifies the parameters for a Kim-Gordon-like partitioning"// &
1018 " into molecular subunits", &
1019 n_keywords=0, n_subsections=1, repeats=.false., &
1022 NULLIFY (keyword, subsection, print_key)
1034 CALL keyword_create(keyword, __location__, name=
"COLORING_METHOD", &
1035 description=
"Which algorithm to use for coloring.", &
1036 usage=
"COLORING_METHOD GREEDY", &
1038 enum_c_vals=
s2a(
"DSATUR",
"GREEDY"), &
1039 enum_desc=
s2a(
"Maximum degree of saturation, relatively accurate", &
1040 "Greedy, fast coloring, less accurate"), &
1045 CALL keyword_create(keyword, __location__, name=
"TNADD_METHOD", &
1046 description=
"Algorithm to use for the calculation of the nonadditive kinetic energy.", &
1047 usage=
"TNADD_METHOD ATOMIC", &
1049 enum_c_vals=
s2a(
"EMBEDDING",
"RI_EMBEDDING",
"ATOMIC",
"NONE"), &
1050 enum_desc=
s2a(
"Use full embedding potential (see Iannuzzi et al)", &
1051 "Use full embedding potential with RI density fitting", &
1052 "Use sum of atomic model potentials", &
1053 "Do not use kinetic energy embedding"), &
1058 CALL keyword_create(keyword, __location__, name=
"INTEGRATION_GRID", &
1059 description=
"Grid [small,medium,large,huge]to be used for the TNADD integration.", &
1060 usage=
"INTEGRATION_GRID MEDIUM", &
1061 default_c_val=
"MEDIUM")
1066 description=
"Print section", &
1067 n_keywords=0, n_subsections=1, repeats=.false.)
1070 description=
"Controls the printing of the neighbor lists.", &
1071 print_level=
low_print_level, filename=
"__STD_OUT__", unit_str=
"angstrom")
1074 name=
"SAB_ORB_FULL", &
1075 description=
"Activates the printing of the full orbital "// &
1076 "orbital neighbor lists.", &
1077 default_l_val=.false., &
1078 lone_keyword_l_val=.true.)
1083 name=
"SAB_ORB_MOLECULAR", &
1084 description=
"Activates the printing of the orbital "// &
1085 "orbital neighbor lists for molecular subsets.", &
1086 default_l_val=.false., &
1087 lone_keyword_l_val=.true.)
1093 description=
"Activates the printing of the orbital "// &
1094 "atomic potential neighbor list.", &
1095 default_l_val=.false., &
1096 lone_keyword_l_val=.true.)
1106 END SUBROUTINE create_kg_section
1119 cpassert(.NOT.
ASSOCIATED(section))
1121 description=
"This section is used to set up the BSSE calculation. "// &
1122 "It also requires that for each atomic kind X a kind X_ghost is present, "// &
1123 "with the GHOST keyword specified, in addition to the other required fields.", &
1124 n_keywords=3, n_subsections=1, repeats=.false.)
1126 NULLIFY (keyword, subsection)
1129 description=
"Specify the atom number belonging to this fragment.", &
1130 n_keywords=2, n_subsections=0, repeats=.true.)
1133 description=
"Specifies a list of atoms.", &
1134 usage=
"LIST {integer} {integer} .. {integer}", &
1135 repeats=.true., n_var=-1, type_of_var=
integer_t)
1143 CALL section_create(subsection, __location__, name=
"CONFIGURATION", &
1144 description=
"Specify additional parameters for the combinatorial configurations. "// &
1145 "Use this section to manually specify charge and multiplicity of the fragments "// &
1146 "and their combinations.", &
1147 n_keywords=2, n_subsections=0, repeats=.true.)
1150 description=
"Specifies the global configuration using 1 or 0 for each fragment. "// &
1151 "1 specifies the respective fragment as used, 0 as unused.", &
1152 usage=
"GLB_CONF {integer} {integer} .. {integer}", &
1158 description=
"Specifies the subconfiguration using 1 or 0 belonging to the global configuration. "// &
1159 "1 specifies the respective fragment as real, 0 as ghost.", &
1160 usage=
"SUB_CONF {integer} {integer} .. {integer}", &
1166 name=
"MULTIPLICITY", &
1167 variants=[
"MULTIP"], &
1168 description=
"Specify for each fragment the multiplicity. Two times the total spin plus one. "// &
1169 "Specify 3 for a triplet, 4 for a quartet,and so on. Default is 1 (singlet) for an "// &
1170 "even number and 2 (doublet) for an odd number of electrons.", &
1171 usage=
"MULTIPLICITY 3", &
1177 description=
"The total charge for each fragment.", &
1178 usage=
"CHARGE -1", &
1185 CALL section_create(subsection, __location__, name=
"FRAGMENT_ENERGIES", &
1186 description=
"This section contains the energies of the fragments already"// &
1187 " computed. It is useful as a summary and specifically for restarting BSSE runs.", &
1188 n_keywords=2, n_subsections=0, repeats=.true.)
1189 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
1190 description=
"The energy computed for each fragment", repeats=.true., &
1191 usage=
"{REAL}", type_of_var=
real_t)
1197 CALL create_print_bsse_section(subsection)
1208 SUBROUTINE create_print_bsse_section(section)
1213 cpassert(.NOT.
ASSOCIATED(section))
1215 description=
"Section of possible print options in BSSE code.", &
1216 n_keywords=0, n_subsections=1, repeats=.false.)
1220 description=
"Controls the printing of information regarding the run.", &
1226 description=
"Controls the dumping of the restart file during BSSE runs. "// &
1227 "By default the restart is updated after each configuration calculation is "// &
1234 END SUBROUTINE create_print_bsse_section
1241 SUBROUTINE create_rigpw_section(section)
1244 cpassert(.NOT.
ASSOCIATED(section))
1246 description=
"This section specifies optional parameters for RIGPW.", &
1247 n_keywords=1, n_subsections=0, repeats=.false.)
1274 END SUBROUTINE create_rigpw_section
1285 LOGICAL,
INTENT(in) :: create_subsections
1290 cpassert(.NOT.
ASSOCIATED(section))
1292 description=
"Controls the multigrid used by GPW/GAPW to represent densities, "// &
1293 "potentials, and Gaussian products on real-space grids.", &
1294 n_keywords=5, n_subsections=1, repeats=.false.)
1297 description=
"Number of multigrid levels. Smooth Gaussian products can be mapped to "// &
1298 "coarser levels, while sharper products require finer levels.", &
1299 usage=
"ngrids 1", default_i_val=4)
1305 "Plane-wave cutoff of the finest real-space grid level. "// &
1306 "Increasing this value improves the grid representation, but it is "// &
1307 "not a substitute for converging the Gaussian basis set. "// &
1308 "Default value for SE or DFTB calculation is 1.0 [Ry].", &
1309 usage=
"cutoff 300", &
1311 n_var=1, unit_str=
"Ry")
1315 CALL keyword_create(keyword, __location__, name=
"progression_factor", &
1316 description=
"Factor used to derive the cutoff of coarser multigrid levels when "// &
1317 "they are not given explicitly.", &
1318 usage=
"progression_factor <integer>", default_r_val=3._dp)
1322 CALL keyword_create(keyword, __location__, name=
"commensurate", &
1323 description=
"If the grids should be commensurate. If true overrides "// &
1324 "the progression factor and the cutoffs of the sub grids", &
1325 usage=
"commensurate", default_l_val=.false., &
1326 lone_keyword_l_val=.true.)
1331 description=
"If both rho and rho_gspace are needed ", &
1332 usage=
"realspace", default_l_val=.false., &
1333 lone_keyword_l_val=.true.)
1338 variants=[
"RELATIVE_CUTOFF"], &
1339 description=
"Controls to which multigrid level a Gaussian product is mapped. "// &
1340 "It is the reference cutoff for a Gaussian with exponent alpha=1. Larger values "// &
1341 "keep more Gaussian products on finer grids and can be important for accurate "// &
1342 "energies, forces, stress tensors, and variable-cell simulations.", &
1343 usage=
"RELATIVE_CUTOFF real", default_r_val=20.0_dp, &
1348 CALL keyword_create(keyword, __location__, name=
"MULTIGRID_SET", &
1349 description=
"Activate a manual setting of the multigrids", &
1350 usage=
"MULTIGRID_SET", default_l_val=.false.)
1355 name=
"SKIP_LOAD_BALANCE_DISTRIBUTED", &
1356 description=
"Skips load balancing on distributed multigrids. "// &
1357 "Memory usage is O(p) so may be used "// &
1358 "for all but the very largest runs.", &
1359 usage=
"SKIP_LOAD_BALANCE_DISTRIBUTED", &
1360 default_l_val=.false., &
1361 lone_keyword_l_val=.true.)
1370 CALL keyword_create(keyword, __location__, name=
"MULTIGRID_CUTOFF", &
1371 variants=[
"CUTOFF_LIST"], &
1372 description=
"List of cutoff values to set up multigrids manually", &
1373 usage=
"MULTIGRID_CUTOFF 200.0 100.0 ", &
1380 IF (create_subsections)
THEN
1381 NULLIFY (subsection)
1386 NULLIFY (subsection)
1404 cpassert(.NOT.
ASSOCIATED(section))
1405 CALL section_create(section, __location__, name=
"interpolator", &
1406 description=
"kind of interpolation used between the multigrids", &
1407 n_keywords=5, n_subsections=0, repeats=.false.)
1409 NULLIFY (keyword, print_key)
1412 description=
"The interpolator to use. SPLINE3 automatically enables commensurate grids.", &
1413 usage=
"kind spline3", &
1415 enum_c_vals=
s2a(
"pw",
"spline3"), &
1420 CALL keyword_create(keyword, __location__, name=
"safe_computation", &
1421 description=
"if a non unrolled calculation is to be performed in parallel", &
1422 usage=
"safe_computation OFF", &
1423 default_l_val=.false., &
1424 lone_keyword_l_val=.true.)
1428 CALL keyword_create(keyword, __location__, name=
"aint_precond", &
1429 description=
"the approximate inverse to use to get the starting point"// &
1430 " for the linear solver of the spline3 methods", &
1431 usage=
"aint_precond copy", &
1433 enum_c_vals=
s2a(
"copy",
"spl3_nopbc_aint1",
"spl3_nopbc_aint2", &
1434 "spl3_nopbc_precond1",
"spl3_nopbc_precond2",
"spl3_nopbc_precond3"), &
1441 description=
"The preconditioner used"// &
1442 " for the linear solver of the spline3 methods", &
1443 usage=
"PRECOND copy", &
1445 enum_c_vals=
s2a(
"copy",
"spl3_nopbc_aint1",
"spl3_nopbc_aint2", &
1446 "spl3_nopbc_precond1",
"spl3_nopbc_precond2",
"spl3_nopbc_precond3"), &
1453 description=
"accuracy on the solution for spline3 the interpolators", &
1454 usage=
"eps_x 1.e-15", default_r_val=1.e-10_dp)
1459 description=
"accuracy on the residual for spline3 the interpolators", &
1460 usage=
"eps_r 1.e-15", default_r_val=1.e-10_dp)
1465 variants=[
'maxiter'], &
1466 description=
"the maximum number of iterations", &
1467 usage=
"max_iter 200", default_i_val=100)
1473 description=
"if convergence information about the linear solver"// &
1474 " of the spline methods should be printed", &
1476 each_iter_values=[10], filename=
"__STD_OUT__", &
1488 SUBROUTINE create_sic_section(section)
1493 cpassert(.NOT.
ASSOCIATED(section))
1495 description=
"parameters for the self interaction correction", &
1496 n_keywords=6, n_subsections=0, repeats=.false., &
1501 CALL keyword_create(keyword, __location__, name=
"SIC_SCALING_A", &
1502 description=
"Scaling of the coulomb term in sic [experimental]", &
1503 usage=
"SIC_SCALING_A 0.5", &
1505 default_r_val=1.0_dp)
1509 CALL keyword_create(keyword, __location__, name=
"SIC_SCALING_B", &
1510 description=
"Scaling of the xc term in sic [experimental]", &
1511 usage=
"SIC_SCALING_B 0.5", &
1513 default_r_val=1.0_dp)
1518 description=
"Method used to remove the self interaction", &
1519 usage=
"SIC_METHOD MAURI_US", &
1521 enum_c_vals=
s2a(
"NONE",
"MAURI_US",
"MAURI_SPZ",
"AD",
"EXPLICIT_ORBITALS"), &
1523 enum_desc=
s2a(
"Do not apply a sic correction", &
1524 "Employ a (scaled) correction proposed by Mauri and co-workers"// &
1525 " on the spin density / doublet unpaired orbital", &
1526 "Employ a (scaled) Perdew-Zunger expression"// &
1527 " on the spin density / doublet unpaired orbital", &
1528 "The average density correction", &
1529 "(scaled) Perdew-Zunger correction explicitly on a set of orbitals."), &
1535 description=
"Type of orbitals treated with the SIC", &
1536 usage=
"ORBITAL_SET ALL", &
1538 enum_c_vals=
s2a(
"UNPAIRED",
"ALL"), &
1539 enum_desc=
s2a(
"correction for the unpaired orbitals only, requires a restricted open shell calculation", &
1540 "correction for all orbitals, requires a LSD or ROKS calculation"), &
1545 END SUBROUTINE create_sic_section
1552 SUBROUTINE create_low_spin_roks_section(section)
1557 cpassert(.NOT.
ASSOCIATED(section))
1558 CALL section_create(section, __location__, name=
"LOW_SPIN_ROKS", &
1559 description=
"Specify the details of the low spin ROKS method. "// &
1560 "In particular, one can specify various terms added to the energy of the high spin roks configuration"// &
1561 " with a energy scaling factor, and a prescription of the spin state.", &
1562 n_keywords=6, n_subsections=0, repeats=.false.)
1565 CALL keyword_create(keyword, __location__, name=
"ENERGY_SCALING", &
1566 description=
"The scaling factors for each term added to the total energy. "// &
1567 "This list should contain one number for each term added to the total energy.", &
1568 usage=
"ENERGY_SCALING 1.0 -1.0 ", &
1569 n_var=-1, type_of_var=
real_t, repeats=.false.)
1573 keyword, __location__, name=
"SPIN_CONFIGURATION", &
1574 description=
"For each singly occupied orbital, specify if this should be an alpha (=1) or a beta (=2) orbital. "// &
1575 "This keyword should be repeated, each repetition corresponding to an additional term.", &
1576 usage=
"SPIN_CONFIGURATION 1 2", &
1577 n_var=-1, type_of_var=
integer_t, repeats=.true.)
1581 END SUBROUTINE create_low_spin_roks_section
1587 SUBROUTINE create_rtp_section(section)
1591 TYPE(
section_type),
POINTER :: print_key, print_section, subsection
1594 cpassert(.NOT.
ASSOCIATED(section))
1595 CALL section_create(section, __location__, name=
"REAL_TIME_PROPAGATION", &
1596 description=
"Parameters needed to set up the real time propagation"// &
1597 " for the electron dynamics. This currently works only in the NVE ensemble.", &
1598 n_keywords=4, n_subsections=4, repeats=.false., &
1602 description=
"Maximal number of iterations for the self consistent propagator loop.", &
1603 usage=
"MAX_ITER 10", &
1609 description=
"Convergence criterion for the self consistent propagator loop.", &
1610 usage=
"EPS_ITER 1.0E-5", &
1611 default_r_val=1.0e-7_dp)
1616 description=
"Speciefies how many steps will be used for extrapolation. "// &
1617 "One will be always used which is means X(t+dt)=X(t)", &
1618 usage=
"ASPC_ORDER 3", &
1624 description=
"Which method should be used to calculate the exponential"// &
1625 " in the propagator. It is recommended to use BCH when employing density_propagation "// &
1626 "and ARNOLDI otherwise.", &
1627 usage=
"MAT_EXP TAYLOR", default_i_val=
do_arnoldi, &
1628 enum_c_vals=
s2a(
"TAYLOR",
"PADE",
"ARNOLDI",
"BCH",
"EXACT"), &
1630 enum_desc=
s2a(
"exponential is evaluated using scaling and squaring in combination"// &
1631 " with a taylor expansion of the exponential.", &
1632 "uses scaling and squaring together with the pade approximation", &
1633 "uses arnoldi subspace algorithm to compute exp(H)*MO directly, can't be used in "// &
1634 "combination with Crank Nicholson or density propagation", &
1635 "Uses a Baker-Campbell-Hausdorff expansion to propagate the density matrix,"// &
1636 " only works for density propagation", &
1637 "Uses diagonalisation of the exponent matrices to determine the "// &
1638 "matrix exponential exactly. Only implemented for GWBSE."))
1642 CALL keyword_create(keyword, __location__, name=
"DENSITY_PROPAGATION", &
1643 description=
"The density matrix is propagated instead of the molecular orbitals. "// &
1644 "This can allow a linear scaling simulation. The density matrix is filtered with "// &
1645 "the threshold based on the EPS_FILTER keyword from the LS_SCF section", &
1646 usage=
"DENSITY_PROPAGATION .TRUE.", &
1647 default_l_val=.false., lone_keyword_l_val=.true.)
1651 CALL keyword_create(keyword, __location__, name=
"SC_CHECK_START", &
1652 description=
"Speciefies how many iteration steps will be done without "// &
1653 "a check for self consistency. Can save some time in big calculations.", &
1654 usage=
"SC_CHECK_START 3", &
1659 CALL keyword_create(keyword, __location__, name=
"EXP_ACCURACY", &
1660 description=
"Accuracy for the taylor and pade approximation. "// &
1661 "This is only an upper bound bound since the norm used for the guess "// &
1662 "is an upper bound for the needed one.", &
1663 usage=
"EXP_ACCURACY 1.0E-6", &
1664 default_r_val=1.0e-9_dp)
1669 description=
"Which propagator should be used for the orbitals", &
1670 usage=
"PROPAGATOR ETRS", default_i_val=
do_etrs, &
1671 enum_c_vals=
s2a(
"ETRS",
"CN",
"EM"), &
1673 enum_desc=
s2a(
"enforced time reversible symmetry", &
1674 "Crank Nicholson propagator", &
1675 "Exponential midpoint propagator"))
1680 description=
"Controls the initial WFN used for propagation. "// &
1681 "Note that some energy contributions may not be "// &
1682 "initialized in the restart cases, for instance "// &
1683 "electronic entropy energy in the case of smearing.", &
1684 usage=
"INITIAL_WFN SCF_WFN", default_i_val=
use_scf_wfn, &
1685 enum_c_vals=
s2a(
"SCF_WFN",
"RESTART_WFN",
"RT_RESTART"), &
1687 enum_desc=
s2a(
"An SCF run is performed to get the initial state.", &
1688 "A wavefunction from a previous SCF is propagated. Especially useful,"// &
1689 " if electronic constraints or restraints are used in the previous calculation, "// &
1690 "since these do not work in the rtp scheme.", &
1691 "use the wavefunction of a real time propagation/ehrenfest run"))
1695 CALL keyword_create(keyword, __location__, name=
"APPLY_WFN_MIX_INIT_RESTART", &
1696 description=
"If set to True and in the case of INITIAL_WFN=RESTART_WFN, call the "// &
1697 "DFT%PRINT%WFN_MIX section to mix the read initial wfn. The starting wave-function of the "// &
1698 "RTP will be the mixed one. Setting this to True without a defined WFN_MIX section will "// &
1699 "not do anything as defining a WFN_MIX section without this keyword for RTP run with "// &
1700 "INITIAL_WFN=RESTART_WFN. Note that if INITIAL_WFN=SCF_WFN, this keyword is not needed to "// &
1701 "apply the mixing defined in the WFN_MIX section. Default is False.", &
1702 usage=
"APPLY_WFN_MIX_INIT_RESTART", &
1703 default_l_val=.false., lone_keyword_l_val=.true.)
1707 CALL keyword_create(keyword, __location__, name=
"APPLY_DELTA_PULSE", &
1708 description=
"Applies a delta kick to the initial wfn (only RTP for now - the EMD"// &
1709 " case is not yet implemented). Only work for INITIAL_WFN=SCF_WFN", &
1710 usage=
"APPLY_DELTA_PULSE", &
1711 default_l_val=.false., lone_keyword_l_val=.true.)
1715 CALL keyword_create(keyword, __location__, name=
"APPLY_DELTA_PULSE_MAG", &
1716 description=
"Applies a magnetic delta kick to the initial wfn (only RTP for now - the EMD"// &
1717 " case is not yet implemented). Only work for INITIAL_WFN=SCF_WFN", &
1718 usage=
"APPLY_DELTA_PULSE_MAG", &
1719 default_l_val=.false., lone_keyword_l_val=.true.)
1723 CALL keyword_create(keyword, __location__, name=
"VELOCITY_GAUGE", &
1724 description=
"Perform propagation in the velocity gauge using the explicit vector potential"// &
1725 " only a constant vector potential as of now (corresonding to a delta-pulse)."// &
1726 " uses DELTA_PULSE_SCALE and DELTA_PULSE_DIRECTION to define the vector potential", &
1727 usage=
"VELOCITY_GAUGE T", &
1728 default_l_val=.false., lone_keyword_l_val=.true.)
1733 description=
"Define gauge origin for magnetic perturbation", &
1734 usage=
"GAUGE_ORIG COM", &
1735 enum_c_vals=
s2a(
"COM",
"COAC",
"USER_DEFINED",
"ZERO"), &
1736 enum_desc=
s2a(
"Use Center of Mass", &
1737 "Use Center of Atomic Charges", &
1738 "Use User Defined Point (Keyword:REF_POINT)", &
1739 "Use Origin of Coordinate System"), &
1748 CALL keyword_create(keyword, __location__, name=
"GAUGE_ORIG_MANUAL", &
1749 description=
"Manually defined gauge origin for magnetic perturbation [in Bohr!]", &
1750 usage=
"GAUGE_ORIG_MANUAL x y z", &
1752 n_var=3, default_r_vals=[0._dp, 0._dp, 0._dp], &
1759 description=
"apply gauge transformed non-local potential term"// &
1760 " only affects VELOCITY_GAUGE=.TRUE.", &
1761 usage=
"VG_COM_NL T", &
1762 default_l_val=.true., lone_keyword_l_val=.true.)
1767 description=
"Include non-local commutator for periodic delta pulse."// &
1768 " only affects PERIODIC=.TRUE.", &
1770 default_l_val=.true., lone_keyword_l_val=.true.)
1775 description=
"Use length representation delta pulse (in conjunction with PERIODIC T)."// &
1776 " This corresponds to a 1st order perturbation in the length gauge."// &
1777 " Note that this is NOT compatible with a periodic calculation!"// &
1778 " Uses the reference point defined in DFT%PRINT%MOMENTS ", &
1779 usage=
"LEN_REP T", &
1780 default_l_val=.false., lone_keyword_l_val=.true.)
1785 description=
"Apply a delta-kick that is compatible with periodic boundary conditions"// &
1786 " for any value of DELTA_PULSE_SCALE. Uses perturbation theory for the preparation of"// &
1787 " the initial wfn with the velocity operator as perturbation."// &
1788 " If LEN_REP is .FALSE. this corresponds to a first order velocity gauge."// &
1789 " Note that the pulse is only applied when INITIAL_WFN is set to SCF_WFN,"// &
1790 " and not for restarts (RT_RESTART).", &
1792 default_l_val=.true., lone_keyword_l_val=.true.)
1797 description=
"Localise the Molecular orbitals each n steps "// &
1798 "real-time propagated TDDFT, 0 means never localise", &
1799 usage=
"LOCALIZE", default_i_val=0)
1803 CALL keyword_create(keyword, __location__, name=
"DELTA_PULSE_DIRECTION", &
1804 description=
"Direction of the applied electric field. The k vector is given as"// &
1805 " 2*Pi*[i,j,k]*inv(h_mat), which for PERIODIC .FALSE. yields exp(ikr) periodic with"// &
1806 " the unit cell, only if DELTA_PULSE_SCALE is set to unity. For an orthorhombic cell"// &
1807 " [1,0,0] yields [2*Pi/L_x,0,0]. For small cells, this results in a very large kick.", &
1808 usage=
"DELTA_PULSE_DIRECTION 1 1 1", n_var=3, default_i_vals=[1, 0, 0], &
1813 CALL keyword_create(keyword, __location__, name=
"DELTA_PULSE_SCALE", &
1814 description=
"Scale the k vector, which for PERIODIC .FALSE. results in exp(ikr) no"// &
1815 " longer being periodic with the unit cell. The norm of k is the strength of the"// &
1816 " applied electric field in atomic units.", &
1817 usage=
"DELTA_PULSE_SCALE 0.01 ", n_var=1, default_r_val=0.001_dp)
1821 CALL keyword_create(keyword, __location__, name=
"HFX_BALANCE_IN_CORE", &
1822 description=
"If HFX is used, this keyword forces a redistribution/recalculation"// &
1823 " of the integrals, balanced with respect to the in core steps.", &
1824 usage=
"HFX_BALANCE_IN_CORE", &
1825 default_l_val=.false., lone_keyword_l_val=.true.)
1829 CALL keyword_create(keyword, __location__, name=
"MCWEENY_MAX_ITER", &
1830 description=
"Determines the maximum amount of McWeeny steps used after each converged"// &
1831 " step in density propagation", &
1832 usage=
"MCWEENY_MAX_ITER 2", default_i_val=1)
1837 keyword, __location__, name=
"ACCURACY_REFINEMENT", &
1838 description=
"If using density propagation some parts should be calculated with a higher accuracy than the rest"// &
1839 " to reduce numerical noise. This factor determines by how much the filtering threshold is"// &
1840 " reduced for these calculations.", &
1841 usage=
"ACCURACY_REFINEMENT", default_i_val=100)
1846 description=
"Threshold after which McWeeny is terminated", &
1847 usage=
"MCWEENY_EPS 0.00001", &
1848 default_r_val=0.0_dp)
1852 NULLIFY (print_section)
1854 description=
"Section of possible print options for an RTP runs", &
1859 description=
"Controls the printing within real time propagation and Eherenfest dynamics", &
1865 description=
"Controls the dumping of the MO restart file during rtp. "// &
1866 "By default keeps a short history of three restarts. "// &
1867 "See also RESTART_HISTORY. In density propagation this controls the printing of "// &
1868 "density matrix.", &
1870 each_iter_names=
s2a(
"MD"), each_iter_values=[20], &
1872 CALL keyword_create(keyword, __location__, name=
"BACKUP_COPIES", &
1873 description=
"Specifies the maximum number of backup copies.", &
1874 usage=
"BACKUP_COPIES {int}", &
1882 description=
"Dumps unique MO restart files during the run keeping all of them. "// &
1883 "In density propagation it dumps the density matrix instead", &
1885 each_iter_names=
s2a(
"MD"), &
1886 each_iter_values=[500], &
1888 CALL keyword_create(keyword, __location__, name=
"BACKUP_COPIES", &
1889 description=
"Specifies the maximum number of backup copies.", &
1890 usage=
"BACKUP_COPIES {int}", &
1898 description=
"Print the time-dependent field applied during an EMD simulation in "// &
1901 each_iter_names=
s2a(
"MD"), &
1902 each_iter_values=[1], &
1912 description=
"Print the integral of the current density (only if the"// &
1913 " imaginary part of the density is NOT zero.", &
1915 each_iter_names=
s2a(
"MD"), &
1916 each_iter_values=[1], &
1917 filename=
"rtp_j_int")
1922 description=
"Print the current during an EMD simulation to cube files.", &
1924 each_iter_names=
s2a(
"MD"), &
1925 each_iter_values=[20], &
1927 CALL keyword_create(keyword, __location__, name=
"BACKUP_COPIES", &
1928 description=
"Specifies the maximum number of backup copies.", &
1929 usage=
"BACKUP_COPIES {int}", &
1934 description=
"The stride (X,Y,Z) used to write the cube file "// &
1935 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1936 " 1 number valid for all components.", &
1937 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
1946 description=
"Prints the density matrix at iterations in clear text to a file", &
1948 each_iter_names=
s2a(
"MD"), &
1949 each_iter_values=[1], &
1955 description=
"Prints the time-dependent electronic moments at "// &
1956 "iterations in clear text to a file.", &
1958 each_iter_names=
s2a(
"MD"), &
1959 each_iter_values=[1], &
1960 filename=
"__STD_OUT__")
1962 variants=
s2a(
"REF"), &
1963 description=
"Define the reference point for the calculation of the electrostatic moment.", &
1964 usage=
"REFERENCE COM", &
1965 enum_c_vals=
s2a(
"COM",
"COAC",
"USER_DEFINED",
"ZERO"), &
1966 enum_desc=
s2a(
"Use Center of Mass", &
1967 "Use Center of Atomic Charges", &
1968 "Use User Defined Point (Keyword:REFERENCE_POINT)", &
1969 "Use Origin of Coordinate System"), &
1978 CALL keyword_create(keyword, __location__, name=
"REFERENCE_POINT", &
1979 variants=
s2a(
"REF_POINT"), &
1980 description=
"Fixed reference point for the calculations of the electrostatic moment.", &
1981 usage=
"REFERENCE_POINT x y z", &
1983 n_var=3, default_r_vals=[0._dp, 0._dp, 0._dp], &
1985 unit_str=
'angstrom')
1992 description=
"Prints the calculated Fourier transform of "// &
1993 "time-dependent moments. For calculations with real time pulse (not delta kick) "// &
1994 "can be supplied with starting time.", &
1996 each_iter_names=
s2a(
"MD"), &
1997 each_iter_values=[1], &
1998 filename=
"MOMENTS_FT")
2003 description=
"Prints the chosen element of the energy dependent polarizability tensor "// &
2004 "to a specified file. The tensor is calculated as ratio of "// &
2005 "Fourier transform of the dipole "// &
2006 "moment trace and Fourier transform of the applied field "// &
2007 "(for delta kick, constant real field is applied.", &
2009 each_iter_names=
s2a(
"MD"), &
2010 each_iter_values=[1], &
2011 filename=
"POLARIZABILITY")
2013 description=
"Specifies the element of polarizability which is to be printed out "// &
2014 "(indexing starts at 1). If not explicitly provided, RTBSE code tries to guess "// &
2015 "the optimal values - for applied electric field (both delta pulse and RT field) "// &
2016 "with only a single non-zero cartesian component, prints the 3 trivially available elements.", &
2017 type_of_var=
integer_t, default_i_vals=[1, 1], n_var=2, usage=
"ELEMENT 1 1", repeats=.true.)
2024 description=
"Prints the eigenvalues of the linearized RT-BSE "// &
2025 "Liouvillian on the OV subspace, computed once at job init from a "// &
2026 "matrix-free probe of the kernel (no time propagation). In TDA this "// &
2027 "equals the Casida-A eigenvalue problem and gives a broadening-free, "// &
2028 "finite-time-free correctness check against bse_full.F. "// &
2029 "Activated by RTBSE%DIAGNOSE_LIOUVILLIAN_EIG. Output lists "// &
2030 "eigenvalues in atomic units and eV.", &
2032 each_iter_names=
s2a(
"MD"), &
2033 each_iter_values=[1], &
2034 filename=
"LIOUVILLIAN_EIG")
2039 description=
"Print the energy constituents (relevant to RTP) which make up "// &
2040 "the Total Energy", &
2042 each_iter_names=
s2a(
"MD"), &
2043 each_iter_values=[1], &
2052 NULLIFY (subsection)
2053 CALL create_rtbse_section(subsection)
2057 CALL create_ft_section(subsection)
2061 END SUBROUTINE create_rtp_section
2067 SUBROUTINE create_rtbse_section(section)
2073 cpassert(.NOT.
ASSOCIATED(section))
2076 description=
"Controls options for the real-time Bethe-Salpeter (RTBSE) propagation. "// &
2077 "Note that running RTBSE requires previous low-scaling "// &
2078 "[GW](#CP2K_INPUT.FORCE_EVAL.PROPERTIES.BANDSTRUCTURE.GW) calculation. Also note that "// &
2079 "designating this section as RTBSE run but choosing run type ENERGY leads to potential "// &
2080 "deallocation errors. More details (including description of output files) is available in "// &
2081 "the [methods](../../../../methods/properties/optical/rtbse) section of the documentation.", &
2085 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
2086 description=
"Which method is used for the time propagation of electronic structure. "// &
2087 "By default, use the TDDFT method. Can also choose RT-BSE method, which propagates the lesser "// &
2088 "Green's function instead of density matrix/molecular orbitals.", &
2089 usage=
"&RTBSE TDDFT", &
2092 enum_c_vals=
s2a(
"TDDFT",
"RTBSE"), &
2094 enum_desc=
s2a(
"Use TDDFT for density matrix/MO propagation.", &
2095 "Use RT-BSE for Green's function propagation"))
2100 CALL keyword_create(keyword, __location__, name=
"RTBSE_HAMILTONIAN", &
2101 description=
"Which Hamiltonian to use as the single-particle Hamiltonian"// &
2102 " in the Green's propagator.", &
2103 usage=
"RTBSE_HAMILTONIAN GW", &
2105 enum_c_vals=
s2a(
"KS",
"GW"), &
2107 enum_desc=
s2a(
"Use Kohn-Sham Hamiltonian for Green's function propagation.", &
2108 "Use GW Hamiltonian for Green's function propagation. The GW "// &
2109 "eigenvalues from the highest-level GW flavor will be picked."))
2114 CALL keyword_create(keyword, __location__, name=
"LINEARIZED_BSE_PROPAGATION", &
2115 variants=
s2a(
"LRRTBSE"), &
2116 description=
"Linearizes the BSE propagation", &
2117 usage=
"LINEARIZED_BSE_PROPAGATION .T.", &
2118 default_l_val=.false., &
2119 lone_keyword_l_val=.true.)
2124 CALL keyword_create(keyword, __location__, name=
"ENERGY_CUTOFF_OCC", &
2125 description=
"Energy cutoff (relative to HOMO) defining the lowest "// &
2126 "occupied molecular orbital included in the active MO window of the "// &
2127 "linearized RT-BSE propagation. Only used when "// &
2128 "LINEARIZED_BSE_PROPAGATION=.TRUE.. A non-positive value disables the "// &
2129 "occupied truncation.", &
2130 usage=
"ENERGY_CUTOFF_OCC 5.0", &
2132 default_r_val=-1.0_dp/
evolt)
2137 CALL keyword_create(keyword, __location__, name=
"ENERGY_CUTOFF_EMPTY", &
2138 description=
"Energy cutoff (relative to LUMO) defining the highest "// &
2139 "virtual molecular orbital included in the active MO window of the "// &
2140 "linearized RT-BSE propagation. Only used when "// &
2141 "LINEARIZED_BSE_PROPAGATION=.TRUE.. A non-positive value disables the "// &
2142 "virtual truncation.", &
2143 usage=
"ENERGY_CUTOFF_EMPTY 5.0", &
2145 default_r_val=-1.0_dp/
evolt)
2149 CALL keyword_create(keyword, __location__, name=
"ENFORCE_MAX_DT", &
2150 description=
"For linearized RT-BSE, recompute TIMESTEP and STEPS so the same total "// &
2151 "propagation time is covered with the largest timestep that does not exceed the "// &
2152 "estimated RK4 stability limit.", &
2153 usage=
"ENFORCE_MAX_DT", &
2154 default_l_val=.false., &
2155 lone_keyword_l_val=.true.)
2161 description=
"Apply the Tamm-Dancoff approximation to the linearized RT-BSE kernel: "// &
2162 "the Hartree and screened-exchange contributions are restricted so that the OV and VO "// &
2163 "blocks of the density response remain decoupled (i.e. only A-block coupling is kept, "// &
2164 "B-block coupling is dropped). Only effective when "// &
2165 "LINEARIZED_BSE_PROPAGATION=.TRUE..", &
2167 default_l_val=.false., &
2168 lone_keyword_l_val=.true.)
2173 CALL keyword_create(keyword, __location__, name=
"TDA_SHIFT_TO_FIRST_PEAK", &
2174 description=
"For the linearized RT-BSE TDA path, shift the active-MO single-particle "// &
2175 "diagonals by +Omega_0/2 (occupied) and -Omega_0/2 (virtual) with "// &
2176 "Omega_0 = eps_min_ai, so the lowest active OV mode oscillates at zero frequency "// &
2177 "in the rotating frame (RK4-exact for peak 1). omega_max becomes the full active "// &
2178 "OV width Delta = eps_max_ai - eps_min_ai. The rotation is undone at I/O so "// &
2179 "observables remain in the lab frame. Only effective when TDA=.TRUE.. "// &
2180 "Use with caution, additional convergence checks w.r.t. dt needed.", &
2181 usage=
"TDA_SHIFT_TO_FIRST_PEAK", &
2182 default_l_val=.false., &
2183 lone_keyword_l_val=.true.)
2187 CALL keyword_create(keyword, __location__, name=
"DEBUG_DISABLE_HARTREE", &
2188 description=
"Debug option for linearized RT-BSE: disables the Hartree kernel in both "// &
2189 "the static reference initialization and the propagation. The Coulomb RI setup is "// &
2190 "still built so the run stays internally consistent.", &
2191 usage=
"DEBUG_DISABLE_HARTREE", &
2192 default_l_val=.false., &
2193 lone_keyword_l_val=.true.)
2198 description=
"Select the RI framework used to evaluate the linearized RT-BSE "// &
2199 "Hartree and screened-exchange kernels (propagation and reference). "// &
2200 "DEFAULT infers from the GW flavor: RI-RS if the GW_RI_RS section was active, "// &
2201 "AO-RI otherwise. RS/AO force that framework regardless of how GW was run. The "// &
2202 "RI-RS grid (mat_phi_mu_l, mat_Z_lP) and the V_grid/W0_grid kernels are built on "// &
2203 "demand. RI-RS is implemented for linearized RT-BSE only; for full RT-BSE an "// &
2204 "explicit RS is overridden to AO with a warning.", &
2205 usage=
"KERNEL_RI RS", &
2206 enum_c_vals=
s2a(
"DEFAULT",
"RS",
"AO"), &
2208 enum_desc=
s2a(
"Infer from the GW flavor (GW_RI_RS active -> RS, else AO).", &
2209 "Real-space RI grid kernels (linearized RT-BSE only).", &
2210 "AO-RI kernels."), &
2215 CALL keyword_create(keyword, __location__, name=
"DEBUG_DISABLE_SEX", &
2216 description=
"Debug option for linearized RT-BSE: disables the screened-exchange kernel "// &
2217 "in both the static reference initialization and the propagation.", &
2218 usage=
"DEBUG_DISABLE_SEX", &
2219 default_l_val=.false., &
2220 lone_keyword_l_val=.true.)
2225 CALL keyword_create(keyword, __location__, name=
"DIAGNOSE_LIOUVILLIAN_EIG", &
2226 description=
"Diagnostic for linearized RT-BSE: at job initialization, build the "// &
2227 "Liouvillian on the OV subspace by probing the kernel routine with canonical OV basis "// &
2228 "vectors, then diagonalize. In TDA this equals the Casida-A eigenvalue problem, giving a "// &
2229 "broadening-free, finite-time-free correctness check against bse_full.F. "// &
2230 "In ABBA it builds and diagonalizes the full coupled (A, B) Liouvillian via the "// &
2231 "Furche reduction. "// &
2232 "Output is controlled by the LIOUVILLIAN_EIG print key in the parent "// &
2233 "&REAL_TIME_PROPAGATION%&PRINT section.", &
2234 usage=
"DIAGNOSE_LIOUVILLIAN_EIG", &
2235 default_l_val=.false., &
2236 lone_keyword_l_val=.true.)
2240 CALL keyword_create(keyword, __location__, name=
"EPS_FILTER_RHO", &
2241 description=
"RI-RS linearized RT-BSE: block-filter threshold on the propagated "// &
2242 "response density Delta-rho (AO). Applied upstream of the projection the "// &
2243 "Hartree shares, so it cuts the SEX kernel and the Hartree response alike. "// &
2244 "Absolute, so its strength is the ratio to the Delta-rho scale.", &
2245 usage=
"EPS_FILTER_RHO 1.0E-6", &
2246 default_r_val=-1.0_dp)
2250 CALL keyword_create(keyword, __location__, name=
"CUTOFF_RADIUS_W0", &
2251 description=
"RI-RS linearized RT-BSE: real-space truncation radius for the "// &
2252 "grid-basis screened interaction W0. Grid block pairs whose centroids lie "// &
2253 "further apart are dropped at build, and the per-step SEX grid transient is "// &
2254 "built into the same pattern. Affects the BSE kernel only, not the GW "// &
2255 "quasiparticle energies and not the Hartree response. Requires a "// &
2256 "non-periodic cell. Zero or negative disables the truncation.", &
2257 usage=
"CUTOFF_RADIUS_W0 30.0", &
2259 type_of_var=
real_t, unit_str=
"angstrom")
2263 END SUBROUTINE create_rtbse_section
2270 SUBROUTINE create_ft_section(ft_section)
2276 cpassert(.NOT.
ASSOCIATED(ft_section))
2281 description=
"Define parameters for Fourier transforms used in RTP outputs.", &
2287 description=
"The starting time from which damping is applied and from which on the trace is "// &
2288 "considered for the Fourier transform (Fourier transform is used for the calculation of "// &
2289 "MOMENTS_FT and POLARIZABILITY). Useful for real-time pulse - "// &
2290 "one can specify the center of the pulse as the starting point.", &
2293 default_r_val=0.0_dp)
2299 description=
"Numerical Fourier transform (required for calculation of "// &
2300 "MOMENTS_FT and POLARIZABILITY) can oscillate "// &
2301 "when the final time trace values are far away from zero. "// &
2302 "This keyword controls the exponential damping added to the Fourier transform "// &
2303 "(Fourier transform is used for calculation of MOMENTS_FT and POLARIZABILITY). "// &
2304 "For negative values (the default), calculates the damping at the run time so that the last point "// &
2305 "in the time trace is reduced by factor e^(-4). When set manually, determines the time in which "// &
2306 "the moments trace is reduced by factor of e^(-1), except when set to zero, in which case "// &
2307 "the damping is not applied.", &
2315 NULLIFY (subsection)
2317 description=
"Defines the parameters for the Padé interpolation of the "// &
2318 "Fourier transforms used in the output of RTP. Only available with the GreenX library linked to CP2K.", &
2322 CALL keyword_create(keyword, __location__,
"_SECTION_PARAMETERS_", &
2323 description=
"Turns on the Padé interpolation", &
2325 default_l_val=.false., &
2326 lone_keyword_l_val=.true.)
2332 description=
"The minimum energy of the Padé interpolation output.", &
2335 default_r_val=0.0_dp)
2341 description=
"The maximum energy of the Padé interpolation output.", &
2344 default_r_val=100.0_dp)
2350 description=
"The energy resolution of the Padé interpolation output.", &
2353 default_r_val=0.02_dp/
evolt)
2359 description=
"The lower boundary in energy for the points "// &
2360 "used in the fitting of Padé parameters. If negative, uses "// &
2361 "value of E_MIN (default).", &
2364 default_r_val=-1.0_dp)
2370 description=
"The upper boundary in energy for the points "// &
2371 "used in the fitting of Padé parameters. If negative, uses "// &
2372 "the value of E_MAX (default).", &
2375 default_r_val=-1.0_dp)
2382 END SUBROUTINE create_ft_section
2392 SUBROUTINE create_sccs_section(section)
2399 cpassert(.NOT.
ASSOCIATED(section))
2403 description=
"Define the parameters for self-consistent continuum solvation (SCCS) model", &
2412 name=
"_SECTION_PARAMETERS_", &
2413 description=
"Controls the activation of the SCCS section", &
2415 default_l_val=.false., &
2416 lone_keyword_l_val=.true.)
2422 description=
"Solvent specific tunable parameter for the calculation of "// &
2423 "the repulsion term $G^\text{rep} = \alpha S$ "// &
2424 "where $S$ is the (quantum) surface of the cavity", &
2428 default_r_val=0.0_dp, &
2435 description=
"Solvent specific tunable parameter for the calculation of "// &
2436 "the dispersion term $G^\text{dis} = \beta V$ "// &
2437 "where $V$ is the (quantum) volume of the cavity", &
2441 default_r_val=0.0_dp, &
2448 description=
"Numerical increment for the calculation of the (quantum) "// &
2449 "surface of the solute cavity", &
2453 default_r_val=2.0e-5_dp)
2458 name=
"DERIVATIVE_METHOD", &
2459 description=
"Method for the calculation of the numerical derivatives on the real-space grids", &
2460 usage=
"DERIVATIVE_METHOD cd5", &
2464 enum_c_vals=
s2a(
"FFT",
"CD3",
"CD5",
"CD7"), &
2469 enum_desc=
s2a(
"Fast Fourier transformation", &
2470 "3-point stencil central differences", &
2471 "5-point stencil central differences", &
2472 "7-point stencil central differences"))
2477 name=
"RELATIVE_PERMITTIVITY", &
2478 variants=
s2a(
"DIELECTRIC_CONSTANT",
"EPSILON_RELATIVE",
"EPSILON_SOLVENT"), &
2479 description=
"Relative permittivity (dielectric constant) of the solvent (medium)", &
2483 default_r_val=80.0_dp, &
2484 usage=
"RELATIVE_PERMITTIVITY 78.36")
2490 variants=
s2a(
"EPS_ITER",
"TAU_POL"), &
2491 description=
"Tolerance for the convergence of the polarisation density, "// &
2492 "i.e. requested accuracy for the SCCS iteration cycle", &
2496 default_r_val=1.0e-6_dp, &
2497 usage=
"EPS_ITER 1.0E-7")
2503 description=
"The SCCS iteration cycle is activated only if the SCF iteration cycle "// &
2504 "is converged to this threshold value", &
2508 default_r_val=0.5_dp, &
2509 usage=
"EPS_SCF 1.0E-2")
2515 variants=
s2a(
"SURFACE_TENSION"), &
2516 description=
"Surface tension of the solvent used for the calculation of "// &
2517 "the cavitation term $G^\text{cav} = \gamma S$ "// &
2518 "where $S$ is the (quantum) surface of the cavity", &
2522 default_r_val=0.0_dp, &
2529 description=
"Maximum number of SCCS iteration steps performed to converge "// &
2530 "within the given tolerance", &
2534 default_i_val=100, &
2535 usage=
"MAX_ITER 50")
2541 description=
"Method used for the smoothing of the dielectric function", &
2542 usage=
"METHOD Fattebert-Gygi", &
2544 enum_c_vals=
s2a(
"ANDREUSSI",
"FATTEBERT-GYGI",
"SAA_ANDREUSSI"), &
2546 enum_desc=
s2a(
"Smoothing function proposed by Andreussi et al.", &
2547 "Smoothing function proposed by Fattebert and Gygi", &
2548 "Smoothing function of the solvent aware algorithm"))
2555 description=
"Mixing parameter (Hartree damping) employed during the iteration procedure", &
2559 default_r_val=0.6_dp, &
2564 NULLIFY (subsection)
2568 description=
"Define the parameters of the dielectric smoothing function proposed by "// &
2569 "Andreussi et al.", &
2577 description=
"Maximum density value used for the smoothing of the dielectric function", &
2581 default_r_val=0.0035_dp, &
2582 usage=
"RHO_MAX 0.01")
2588 description=
"Minimum density value used for the smoothing of the dielectric function", &
2592 default_r_val=0.0001_dp, &
2593 usage=
"RHO_MIN 0.0003")
2601 name=
"FATTEBERT-GYGI", &
2602 description=
"Define the parameters of the dielectric smoothing function proposed by "// &
2603 "Fattebert and Gygi", &
2611 description=
"Parameter β changes the width of the interface solute-solvent", &
2615 default_r_val=1.7_dp, &
2622 variants=[
"RHO0"], &
2623 description=
"Parameter $\rho_0$ defines the critical density in the middle "// &
2624 "of the interface solute-solvent", &
2628 default_r_val=0.0006_dp, &
2629 usage=
"RHO_ZERO 0.0004")
2637 name=
"SAA_ANDREUSSI", &
2638 description=
"Define the parameters of the dielectric smoothing function of "// &
2639 "the solvent aware algorithm proposed by Andreussi et al.", &
2647 description=
"Maximum density value used for the smoothing of the dielectric function", &
2651 default_r_val=0.0035_dp, &
2652 usage=
"RHO_MAX 0.01")
2658 description=
"Minimum density value used for the smoothing of the dielectric function", &
2662 default_r_val=0.0001_dp, &
2663 usage=
"RHO_MIN 0.0003")
2669 description=
"The threshold of the filled fraction that controls whether a point in space "// &
2670 "needs to be removed from the continuum", &
2674 default_r_val=0.65_dp, &
2681 description=
"Controls the softness of function t(r)", &
2685 default_r_val=0.02_dp, &
2686 usage=
"DELTA_ETA 0.02")
2691 name=
"DELTA_ZETA", &
2692 description=
"Controls the softness of function u(r)", &
2697 default_r_val=0.5_dp, &
2698 usage=
"DELTA_ZETA 0.5")
2703 name=
"ALPHA_ZETA", &
2704 description=
"The scaling factor for R_SOLV", &
2708 default_r_val=2.0_dp, &
2709 usage=
"ALPHA_ZETA 2.0")
2715 description=
"The solvent radius", &
2720 default_r_val=2.6_dp, &
2728 END SUBROUTINE create_sccs_section
2736 SUBROUTINE create_pcc_section(section)
2742 cpassert(.NOT.
ASSOCIATED(section))
2745 name=
"PLANAR_COUNTER_CHARGE", &
2746 description=
"Define the parameters for the planar counter charge density", &
2755 name=
"_SECTION_PARAMETERS_", &
2756 description=
"Controls the activation of the planar counter charge section", &
2757 usage=
"&PLANAR_COUNTER_CHARGE ON", &
2758 default_l_val=.false., &
2759 lone_keyword_l_val=.true.)
2763 CALL keyword_create(keyword, __location__, name=
"PARALLEL_PLANE", &
2764 enum_c_vals=
s2a(
'XY',
'YZ',
'XZ'), &
2765 enum_i_vals=[3, 1, 2], &
2766 description=
"The coordinate plane that the surface is parallel to.", &
2767 enum_desc=
s2a(
"Parallel to XY",
"Parallel to YZ",
"Parallel to XZ"), &
2770 usage=
"PARALLEL_PLANE XY")
2776 description=
"Controls the distance between the center of the Gaussian "// &
2777 "and the cell boundary", &
2778 usage=
"DIST_EDGE 1.0", &
2779 unit_str=
"angstrom", &
2786 description=
"Controls the spread of the Gaussian distribution", &
2787 usage=
"GAU_C 0.1", &
2788 unit_str=
"angstrom", &
2793 END SUBROUTINE create_pcc_section
2802 SUBROUTINE create_paep_section(section)
2808 cpassert(.NOT.
ASSOCIATED(section))
2811 name=
"PLANAR_AVERAGED_V_HARTREE", &
2812 description=
"Define the parameters for calculating and printing the planar "// &
2813 "averaged electrostatic potential (Hartree potential) "// &
2814 "for symmetric slab systems", &
2822 name=
"_SECTION_PARAMETERS_", &
2823 description=
"Controls the activation of the planar averaged electrostatic "// &
2824 "potential (Hartree potential) section", &
2825 usage=
"&PLANAR_AVERAGED_V_HARTREE ON", &
2826 default_l_val=.false., &
2827 lone_keyword_l_val=.true.)
2831 CALL keyword_create(keyword, __location__, name=
"PARALLEL_PLANE", &
2832 enum_c_vals=
s2a(
'XY',
'YZ',
'XZ'), &
2833 enum_i_vals=[3, 1, 2], &
2834 description=
"The coordinate plane that the surface is parallel to.", &
2835 enum_desc=
s2a(
"Parallel to XY",
"Parallel to YZ",
"Parallel to XZ"), &
2838 usage=
"PARALLEL_PLANE XY")
2842 END SUBROUTINE create_paep_section
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 bengtsson1999
integer, save, public kunert2003
integer, save, public yin2017
integer, save, public andreussi2019
integer, save, public avezac2005
integer, save, public andreussi2012
integer, save, public iannuzzi2006
integer, save, public chai2025a
integer, save, public fattebert2002
integer, save, public andermatt2016
integer, save, public merlot2014
integer, save, public perdew1981
integer, save, public marek2025
integer, save, public brelaz1979
integer, save, public chai2024a
routines to handle the output, The idea is to remove the decision of wheter to output and what to out...
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_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
Definition of physical constants:
real(kind=dp), parameter, public femtoseconds
real(kind=dp), parameter, public evolt
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
Utilities for string manipulations.