55#include "./base/base_uses.f90"
60 LOGICAL,
PRIVATE,
PARAMETER :: debug_this_module = .true.
61 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'input_cp2k_mm'
81 cpassert(.NOT.
ASSOCIATED(section))
83 description=
"This section contains all information to run a MM calculation.", &
84 n_keywords=5, n_subsections=0, repeats=.false.)
88 CALL create_forcefield_section(subsection)
104 CALL create_print_mm_section(subsection)
115 SUBROUTINE create_print_mm_section(section)
121 cpassert(.NOT.
ASSOCIATED(section))
123 description=
"Section of possible print options in MM code.", &
124 n_keywords=0, n_subsections=1, repeats=.false.)
126 NULLIFY (print_key, keyword)
129 description=
"Controls the printing of derivatives.", &
135 description=
"Controls the printing of Ewald energy components during the "// &
136 "evaluation of the electrostatics.", &
146 description=
"Activates the printing of the neighbor lists.", &
152 description=
"Activates the printing of iteration info during the self-consistent "// &
153 "calculation of a polarizable forcefield.", &
159 description=
"Activates the printing of the subcells used for the "// &
160 "generation of neighbor lists.", &
166 description=
"Controls the printing of the banner of the MM program", &
172 description=
"Controls the printing of information regarding the run.", &
178 "Controls the printing of Force Field parameter file", &
184 "Controls the printing of information in the forcefield settings", &
188 description=
"if the printkey is active prints information regarding the splines"// &
189 " used in the nonbonded interactions", &
190 default_l_val=.true., lone_keyword_l_val=.true.)
195 description=
"if the printkey is active prints on separated files the splined function"// &
196 " together with the reference one. Useful to check the spline behavior.", &
197 default_l_val=.false., lone_keyword_l_val=.true.)
204 END SUBROUTINE create_print_mm_section
212 SUBROUTINE create_forcefield_section(section)
218 cpassert(.NOT.
ASSOCIATED(section))
220 description=
"Section specifying information regarding how to set up properly"// &
221 " a force_field for the classical calculations.", &
222 n_keywords=2, n_subsections=2, repeats=.false.)
224 NULLIFY (subsection, keyword)
227 keyword, __location__, name=
"PARMTYPE", &
228 description=
"Define the kind of torsion potential", &
229 usage=
"PARMTYPE {OFF,CHM,G87,G96}", &
230 enum_c_vals=
s2a(
"OFF",
"CHM",
"G87",
"G96",
"AMBER"), &
231 enum_desc=
s2a(
"Provides force field parameters through the input file", &
232 "Provides force field parameters through an external file with CHARMM format", &
233 "Provides force field parameters through an external file with GROMOS 87 format", &
234 "Provides force field parameters through an external file with GROMOS 96 format", &
235 "Provides force field parameters through an external file with AMBER format (from v.8 on)"), &
245 CALL keyword_create(keyword, __location__, name=
"PARM_FILE_NAME", &
246 description=
"Specifies the filename that contains the parameters of the FF.", &
247 usage=
"PARM_FILE_NAME {FILENAME}", type_of_var=
lchar_t)
252 description=
"Scaling factor for the VDW 1-4 ", &
253 usage=
"VDW_SCALE14 1.0", default_r_val=1.0_dp)
258 description=
"Scaling factor for the electrostatics 1-4 ", &
259 usage=
"EI_SCALE14 1.0", default_r_val=0.0_dp)
264 description=
"Add a constant energy shift to the real-space "// &
265 "non-bonding interactions (both Van der Waals and "// &
266 "electrostatic) such that the energy at the cutoff radius is "// &
267 "zero. This makes the non-bonding interactions continuous at "// &
269 usage=
"SHIFT_CUTOFF <LOGICAL>", default_l_val=.true.)
274 description=
"Controls the computation of all the real-space "// &
275 "(short-range) nonbonded interactions. This also "// &
276 "includes the real-space corrections for excluded "// &
277 "or scaled 1-2, 1-3 and 1-4 interactions. When set "// &
278 "to F, the neighborlists are not created and all "// &
279 "interactions that depend on them are not computed.", &
280 usage=
"DO_NONBONDED T", default_l_val=.true., lone_keyword_l_val=.true.)
284 CALL keyword_create(keyword, __location__, name=
"DO_ELECTROSTATICS", &
285 description=
"Controls the computation of all the real-space "// &
286 "(short-range) electrostatics interactions. This does not "// &
287 "affect the QM/MM electrostatic coupling when turned off.", &
288 usage=
"DO_ELECTROSTATICS T", default_l_val=.true., lone_keyword_l_val=.true.)
292 CALL keyword_create(keyword, __location__, name=
"IGNORE_MISSING_CRITICAL_PARAMS", &
293 description=
"Do not abort when critical force-field parameters "// &
294 "are missing. CP2K will run as if the terms containing the "// &
295 "missing parameters are zero.", &
296 usage=
"IGNORE_MISSING_CRITICAL_PARAMS .TRUE.", default_l_val=.false., &
297 lone_keyword_l_val=.true.)
301 CALL keyword_create(keyword, __location__, name=
"MULTIPLE_POTENTIAL", &
302 description=
"Enables the possibility to define NONBONDED and NONBONDED14 as a"// &
303 " sum of different kinds of potential. Useful for piecewise defined potentials.", &
304 usage=
"MULTIPLE_POTENTIAL T", default_l_val=.false., lone_keyword_l_val=.true.)
308 CALL keyword_create(keyword, __location__, name=
"ZBL_SCATTERING", &
309 description=
"A short range repulsive potential is added, to simulate "// &
310 "collisions and scattering.", &
311 usage=
"ZBL_SCATTERING T", default_l_val=.false., lone_keyword_l_val=.true.)
318 CALL create_spline_section(subsection)
322 CALL create_nonbonded_section(subsection)
334 CALL create_charges_section(subsection)
338 CALL create_shell_section(subsection)
342 CALL create_bond_section(subsection,
"BOND")
346 CALL create_bend_section(subsection)
350 CALL create_torsion_section(subsection)
354 CALL create_improper_section(subsection)
358 CALL create_opbend_section(subsection)
362 CALL create_dipole_section(subsection)
366 CALL create_quadrupole_section(subsection)
370 END SUBROUTINE create_forcefield_section
377 SUBROUTINE create_spline_section(section)
382 cpassert(.NOT.
ASSOCIATED(section))
384 description=
"specifies parameters to set up the splines used in the"// &
385 " nonboned interactions (both pair body potential and many body potential)", &
386 n_keywords=1, n_subsections=0, repeats=.true.)
391 description=
"Specify the minimum value of the distance interval "// &
392 "that brackets the value of emax_spline.", &
400 description=
"Cutoff radius for nonbonded interactions. This value overrides"// &
401 " the value specified in the potential definition and is global for all potentials.", &
403 unit_str=
"angstrom"), &
409 description=
"Specify the maximum value of the potential up to which"// &
410 " splines will be constructed", &
411 usage=
"EMAX_SPLINE <REAL>", &
412 default_r_val=0.5_dp, unit_str=
"hartree")
416 CALL keyword_create(keyword, __location__, name=
"EMAX_ACCURACY", &
417 description=
"Specify the maximum value of energy used to check the accuracy"// &
418 " requested through EPS_SPLINE. Energy values larger than EMAX_ACCURACY"// &
419 " generally do not satisfy the requested accuracy", &
420 usage=
"EMAX_ACCURACY <REAL>", default_r_val=0.02_dp, unit_str=
"hartree")
425 description=
"Specify the threshold for the choice of the number of"// &
426 " points used in the splines (comparing the splined value with the"// &
427 " analytically evaluated one)", &
428 usage=
"EPS_SPLINE <REAL>", default_r_val=1.0e-7_dp, unit_str=
"hartree")
433 keyword, __location__, name=
"NPOINTS", &
434 description=
"Override the default search for an accurate spline by specifying a fixed number of spline points.", &
435 usage=
"NPOINTS 1024", default_i_val=-1)
439 CALL keyword_create(keyword, __location__, name=
"UNIQUE_SPLINE", &
440 description=
"For few potentials (Lennard-Jones) one global optimal spline is generated instead"// &
441 " of different optimal splines for each kind of potential", &
442 usage=
"UNIQUE_SPLINE <LOGICAL>", lone_keyword_l_val=.true., default_l_val=.false.)
446 END SUBROUTINE create_spline_section
453 SUBROUTINE create_torsion_section(section)
458 cpassert(.NOT.
ASSOCIATED(section))
460 description=
"Specifies the torsion potential of the MM system.", &
461 n_keywords=1, n_subsections=0, repeats=.true.)
465 description=
"Defines the atomic kinds involved in the tors.", &
466 usage=
"ATOMS {KIND1} {KIND2} {KIND3} {KIND4}", type_of_var=
char_t, &
472 description=
"Define the kind of torsion potential", &
473 usage=
"KIND CHARMM", &
474 enum_c_vals=
s2a(
"CHARMM",
"G87",
"G96",
"AMBER",
"OPLS"), &
475 enum_desc=
s2a(
"Functional Form (CHARMM|G87|G96|AMBER): K * [ 1 + cos[M*PHI - PHI0]]", &
476 "Functional Form (CHARMM|G87|G96|AMBER): K * [ 1 + cos[M*PHI - PHI0]]", &
477 "Functional Form (CHARMM|G87|G96|AMBER): K * [ 1 + cos[M*PHI - PHI0]]", &
478 "Functional Form (CHARMM|G87|G96|AMBER): K * [ 1 + cos[M*PHI - PHI0]]", &
479 "Functional Form: K / 2 * [ 1 + (-1)^(M-1) * cos[M*PHI]]"), &
490 description=
"Defines the force constant of the potential", &
491 usage=
"K {real}", type_of_var=
real_t, &
492 n_var=1, unit_str=
"hartree")
497 description=
"Defines the phase of the potential.", &
498 usage=
"PHI0 {real}", type_of_var=
real_t, &
499 n_var=1, unit_str=
"rad", default_r_val=0.0_dp)
504 description=
"Defines the multiplicity of the potential.", &
505 usage=
"M {integer}", type_of_var=
integer_t, &
510 END SUBROUTINE create_torsion_section
517 SUBROUTINE create_improper_section(section)
522 cpassert(.NOT.
ASSOCIATED(section))
524 description=
"Specifies the improper torsion potential of the MM system.", &
525 n_keywords=1, n_subsections=0, repeats=.true.)
529 description=
"Defines the atomic kinds involved in the improper tors.", &
530 usage=
"ATOMS {KIND1} {KIND2} {KIND3} {KIND4}", type_of_var=
char_t, &
536 description=
"Define the kind of improper torsion potential", &
537 usage=
"KIND CHARMM", &
538 enum_c_vals=
s2a(
"CHARMM",
"G87",
"G96",
"HARMONIC"), &
539 enum_desc=
s2a(
"Functional Form (CHARMM): K * [ PHI - PHI0 ]**2", &
540 "Functional Form (G87|G96|HARMONIC): 0.5 * K * [ PHI - PHI0 ]**2", &
541 "Functional Form (G87|G96|HARMONIC): 0.5 * K * [ PHI - PHI0 ]**2", &
542 "Functional Form (G87|G96|HARMONIC): 0.5 * K * [ PHI - PHI0 ]**2"), &
552 description=
"Defines the force constant of the potential", &
553 usage=
"K {real}", type_of_var=
real_t, &
554 n_var=1, unit_str=
"hartree*rad^-2")
559 description=
"Defines the phase of the potential.", &
560 usage=
"PHI0 {real}", type_of_var=
real_t, &
561 n_var=1, unit_str=
"rad")
565 END SUBROUTINE create_improper_section
572 SUBROUTINE create_opbend_section(section)
577 cpassert(.NOT.
ASSOCIATED(section))
579 description=
"Specifies the out of plane bend potential of the MM system."// &
580 " (Only defined for atom quadruples which are also defined as an improper"// &
581 " pattern in the topology.)", &
582 n_keywords=1, n_subsections=0, repeats=.true.)
586 description=
"Defines the atomic kinds involved in the opbend.", &
587 usage=
"ATOMS {KIND1} {KIND2} {KIND3} {KIND4}", type_of_var=
char_t, &
593 description=
"Define the kind of out of plane bend potential", &
594 usage=
"KIND HARMONIC", &
595 enum_c_vals=
s2a(
"HARMONIC",
"MM2",
"MM3",
"MM4"), &
596 enum_desc=
s2a(
"Functional Form (HARMONIC): 0.5 * K * [ PHI - PHI0 ]**2", &
597 "Functional Form (MM2|MM3|MM4): K * [ PHI - PHI0 ]**2", &
598 "Functional Form (MM2|MM3|MM4): K * [ PHI - PHI0 ]**2", &
599 "Functional Form (MM2|MM3|MM4): K * [ PHI - PHI0 ]**2"), &
609 description=
"Defines the force constant of the potential", &
610 usage=
"K {real}", type_of_var=
real_t, &
611 n_var=1, unit_str=
"hartree*rad^-2")
616 description=
"Defines the phase of the potential.", &
617 usage=
"PHI0 {real}", type_of_var=
real_t, &
618 n_var=1, unit_str=
"rad")
622 END SUBROUTINE create_opbend_section
629 SUBROUTINE create_bend_section(section)
635 cpassert(.NOT.
ASSOCIATED(section))
637 description=
"Specifies the bend potential of the MM system.", &
638 n_keywords=11, n_subsections=1, repeats=.true.)
640 NULLIFY (keyword, subsection)
643 description=
"Defines the atomic kinds involved in the bend.", &
644 usage=
"ATOMS {KIND1} {KIND2} {KIND3}", type_of_var=
char_t, &
650 keyword, __location__, name=
"KIND", &
651 description=
"Define the kind of bend potential", &
652 usage=
"KIND HARMONIC", &
653 enum_c_vals=
s2a(
"HARMONIC",
"CHARMM",
"AMBER",
"G87",
"G96",
"CUBIC",
"MIXED_BEND_STRETCH",
"MM3", &
655 enum_desc=
s2a(
"Functional Form (HARMONIC|G87): 1/2*K*(THETA-THETA0)^2", &
656 "Functional Form (CHARMM|AMBER): K*(THETA-THETA0)^2", &
657 "Functional Form (CHARMM|AMBER): K*(THETA-THETA0)^2", &
658 "Functional Form (HARMONIC|G87): 1/2*K*(THETA-THETA0)^2", &
659 "Functional Form (G96): 1/2*K*(COS(THETA)-THETA0)^2", &
660 "Functional Form (CUBIC): K*(THETA-THETA0)**2*(1+CB*(THETA-THETA0))", &
661 "Functional Form (MIXED_BEND_STRETCH): K*(THETA-THETA0)**2*(1+CB*(THETA-THETA0))+"// &
662 " KSS*(R12-R012)*(R32-R032)+KBS12*(R12-R012)*(THETA-THETA0)+KBS32*(R32-R032)*(THETA-THETA0)", &
663 "Functional Form (MM3): 1/2*K*(THETA-THETA0)**2*(1-0.014*(THETA-THETA0)+5.6E-5*(THETA-THETA0)**2"// &
664 " -7.0E-7*(THETA-THETA0)**3+9.0E-10*(THETA-THETA0)**4)+KBS12*(R12-R012)*(THETA-THETA0)+"// &
665 " KBS32*(R32-R032)*(THETA-THETA0)", &
666 "Functional Form (LEGENDRE): sum_{i=0}^N c_i*P_i(COS(THETA)) "), &
681 description=
"Defines the force constant of the potential", &
682 usage=
"K {real}", type_of_var=
real_t, &
683 n_var=1, unit_str=
"hartree*rad^-2")
688 description=
"Defines the the cubic force constant of the bend", &
689 usage=
"CB {real}", default_r_val=0.0_dp, type_of_var=
real_t, &
690 n_var=1, unit_str=
"rad^-1")
695 description=
"Mixed bend stretch parameter", &
696 usage=
"R012 {real}", default_r_val=0.0_dp, type_of_var=
real_t, &
697 n_var=1, unit_str=
"bohr")
701 description=
"Mixed bend stretch parameter", &
702 usage=
"R032 {real}", default_r_val=0.0_dp, type_of_var=
real_t, &
703 n_var=1, unit_str=
"bohr")
707 description=
"Mixed bend stretch parameter", &
708 usage=
"KBS12 {real}", default_r_val=0.0_dp, type_of_var=
real_t, &
709 n_var=1, unit_str=
"hartree*bohr^-1*rad^-1")
713 description=
"Mixed bend stretch parameter", &
714 usage=
"KBS32 {real}", default_r_val=0.0_dp, type_of_var=
real_t, &
715 n_var=1, unit_str=
"hartree*bohr^-1*rad^-1")
719 description=
"Mixed bend stretch parameter", &
720 usage=
"KSS {real}", default_r_val=0.0_dp, type_of_var=
real_t, &
721 n_var=1, unit_str=
"hartree*bohr^-2")
726 description=
"Defines the equilibrium angle.", &
727 usage=
"THETA0 {real}", type_of_var=
real_t, &
728 n_var=1, unit_str=
'rad')
733 description=
"Specifies the coefficients for the legendre"// &
734 " expansion of the bending potential."// &
735 " 'THETA0' and 'K' are not used, but need to be specified."// &
736 " Use an arbitrary value.", usage=
"LEGENDRE {REAL} {REAL} ...", &
737 default_r_val=0.0d0, type_of_var=
real_t, &
738 n_var=-1, unit_str=
"hartree")
743 CALL create_bond_section(subsection,
"UB")
747 END SUBROUTINE create_bend_section
755 SUBROUTINE create_bond_section(section, label)
757 CHARACTER(LEN=*),
INTENT(IN) :: label
759 CHARACTER(LEN=default_string_length) :: tag
762 cpassert(.NOT.
ASSOCIATED(section))
765 IF (trim(label) ==
"UB")
THEN
766 tag =
" Urey-Bradley "
768 description=
"Specifies the Urey-Bradley potential between the external atoms"// &
769 " defining the angle", &
770 n_keywords=1, n_subsections=0, repeats=.false.)
775 description=
"Specifies the bond potential", &
776 n_keywords=1, n_subsections=0, repeats=.true.)
779 description=
"Defines the atomic kinds involved in the bond.", &
780 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
787 description=
"Define the kind of"//trim(tag)//
"potential.", &
788 usage=
"KIND HARMONIC", &
789 enum_c_vals=
s2a(
"HARMONIC",
"CHARMM",
"AMBER",
"G87",
"G96",
"QUARTIC", &
790 "MORSE",
"CUBIC",
"FUES"), &
791 enum_desc=
s2a(
"Functional Form (HARMONIC|G87): 1/2*K*(R-R0)^2", &
792 "Functional Form (CHARMM|AMBER): K*(R-R0)^2", &
793 "Functional Form (CHARMM|AMBER): K*(R-R0)^2", &
794 "Functional Form (HARMONIC|G87): 1/2*K*(R-R0)^2", &
795 "Functional Form (G96): 1/4*K*(R^2-R0^2)^2", &
796 "Functional Form (QUARTIC): (1/2*K1+[1/3*K2+1/4*K3*|R-R0|]*|R-R0|)(R-R0)^2", &
797 "Functional Form (MORSE): K1*[(1-exp(-K2*(R-R0)))^2-1])", &
798 "Functional Form (CUBIC): K*(R-R0)^2*(1+cs*(R-R0)+7/12*(cs^2*(R-R0)^2))", &
799 "Functional Form (FUES): 1/2*K*R0^2*(1+R0/R*(R0/R-2))"), &
814 description=
"Defines the force constant of the potential. "// &
815 "For MORSE potentials 2 numbers are expected. "// &
816 "For QUARTIC potentials 3 numbers are expected.", &
817 usage=
"K {real}", type_of_var=
real_t, &
818 n_var=-1, unit_str=
"internal_cp2k")
823 description=
"Defines the cubic stretch term.", &
824 usage=
"CS {real}", default_r_val=0.0_dp, type_of_var=
real_t, &
825 n_var=1, unit_str=
"bohr^-1")
830 description=
"Defines the equilibrium distance.", &
831 usage=
"R0 {real}", type_of_var=
real_t, &
832 n_var=1, unit_str=
"bohr")
836 END SUBROUTINE create_bond_section
843 SUBROUTINE create_charges_section(section)
848 cpassert(.NOT.
ASSOCIATED(section))
850 description=
"Allow to specify an array of classical charges, thus avoiding the"// &
851 " packing and permitting the usage of different charges for same atomic types.", &
852 n_keywords=1, n_subsections=0, repeats=.false.)
855 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
856 description=
"Value of the charge for the individual atom. Order MUST reflect"// &
857 " the one specified for the geometry.", repeats=.true., usage=
"{Real}", &
862 END SUBROUTINE create_charges_section
874 cpassert(.NOT.
ASSOCIATED(section))
876 description=
"This section specifies the charge of the MM atoms", &
877 n_keywords=1, n_subsections=0, repeats=.true.)
882 description=
"Defines the atomic kind of the charge.", &
883 usage=
"ATOM {KIND1}", type_of_var=
char_t, &
889 description=
"Defines the charge of the MM atom in electron charge unit.", &
890 usage=
"CHARGE {real}", type_of_var=
real_t, &
902 SUBROUTINE create_quadrupole_section(section)
907 cpassert(.NOT.
ASSOCIATED(section))
909 section, __location__, name=
"QUADRUPOLE", &
910 description=
"This section specifies that we will perform an SCF quadrupole calculation of the MM atoms. "// &
911 "Needs KEYWORD POL_SCF in POISSON secton", &
912 n_keywords=1, n_subsections=0, repeats=.true.)
917 description=
"Defines the atomic kind of the SCF quadrupole.", &
918 usage=
"ATOM {KIND1}", type_of_var=
char_t, &
924 description=
"Defines the isotropic polarizability of the MM atom.", &
925 usage=
"CPOL {real}", type_of_var=
real_t, &
926 n_var=1, unit_str=
'internal_cp2k')
930 END SUBROUTINE create_quadrupole_section
937 SUBROUTINE create_dipole_section(section)
943 cpassert(.NOT.
ASSOCIATED(section))
945 description=
"This section specifies that we will perform an SCF dipole calculation of the MM atoms. "// &
946 "Needs KEYWORD POL_SCF in POISSON secton", &
947 n_keywords=1, n_subsections=1, repeats=.true.)
949 NULLIFY (subsection, keyword)
952 description=
"Defines the atomic kind of the SCF dipole.", &
953 usage=
"ATOM {KIND1}", type_of_var=
char_t, &
959 description=
"Defines the isotropic polarizability of the MM atom.", &
960 usage=
"APOL {real}", type_of_var=
real_t, &
961 n_var=1, unit_str=
'angstrom^3')
965 CALL create_damping_section(subsection)
968 END SUBROUTINE create_dipole_section
975 SUBROUTINE create_damping_section(section)
980 cpassert(.NOT.
ASSOCIATED(section))
982 description=
"This section specifies optional electric field damping for the polarizable atoms. ", &
983 n_keywords=4, n_subsections=0, repeats=.true.)
988 description=
"Defines the atomic kind for this damping function.", &
989 usage=
"ATOM {KIND1}", type_of_var=
char_t, &
995 description=
"Defines the damping type.", &
996 usage=
"TYPE {string}", type_of_var=
char_t, &
997 n_var=1, default_c_val=
"TANG-TOENNIES")
1002 description=
"Defines the order for this damping.", &
1003 usage=
"ORDER {integer}", type_of_var=
integer_t, &
1004 n_var=1, default_i_val=3)
1009 description=
"Defines the BIJ parameter for this damping.", &
1010 usage=
"BIJ {real}", type_of_var=
real_t, &
1011 n_var=1, unit_str=
'angstrom^-1')
1016 description=
"Defines the CIJ parameter for this damping.", &
1017 usage=
"CIJ {real}", type_of_var=
real_t, &
1018 n_var=1, unit_str=
'')
1022 END SUBROUTINE create_damping_section
1029 SUBROUTINE create_shell_section(section)
1034 cpassert(.NOT.
ASSOCIATED(section))
1036 description=
"This section specifies the parameters for shell-model potentials", &
1037 n_keywords=6, n_subsections=0, repeats=.true., &
1042 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
1043 description=
"The kind for which the shell potential parameters are given ", &
1044 usage=
"H", default_c_val=
"DEFAULT")
1049 variants=[
"CORE"], &
1050 description=
"Partial charge assigned to the core (electron charge units)", &
1051 usage=
"CORE_CHARGE {real}", &
1052 default_r_val=0.0_dp)
1056 CALL keyword_create(keyword, __location__, name=
"SHELL_CHARGE", &
1057 variants=[
"SHELL"], &
1058 description=
"Partial charge assigned to the shell (electron charge units)", &
1059 usage=
"SHELL_CHARGE {real}", &
1060 default_r_val=0.0_dp)
1064 CALL keyword_create(keyword, __location__, name=
"MASS_FRACTION", &
1065 variants=[
"MASS"], &
1066 description=
"Fraction of the mass of the atom to be assigned to the shell", &
1067 usage=
"MASS_FRACTION {real}", &
1068 default_r_val=0.1_dp)
1073 variants=
s2a(
"K2",
"SPRING"), &
1074 description=
"Force constant k2 of the spring potential 1/2*k2*r^2 + 1/24*k4*r^4 "// &
1075 "binding a core-shell pair when a core-shell potential is employed.", &
1077 usage=
"K2_SPRING {real}", &
1078 default_r_val=-1.0_dp, &
1079 unit_str=
"hartree*bohr^-2")
1084 variants=
s2a(
"K4"), &
1085 description=
"Force constant k4 of the spring potential 1/2*k2*r^2 + 1/24*k4*r^4 "// &
1086 "binding a core-shell pair when a core-shell potential is employed. "// &
1087 "By default a harmonic spring potential is used, i.e. k4 is zero.", &
1089 usage=
"K4_SPRING {real}", &
1090 default_r_val=0.0_dp, &
1091 unit_str=
"hartree*bohr^-4")
1095 CALL keyword_create(keyword, __location__, name=
"MAX_DISTANCE", &
1096 description=
"Assign a maximum elongation of the spring, "// &
1097 "if negative no limit is imposed", &
1098 usage=
"MAX_DISTANCE 0.0", &
1099 default_r_val=-1.0_dp, &
1100 unit_str=
"angstrom")
1104 CALL keyword_create(keyword, __location__, name=
"SHELL_CUTOFF", &
1105 description=
"Define a screening function to exclude some neighbors "// &
1106 "of the shell when electrostatic interaction are considered, "// &
1107 "if negative no screening is operated", &
1108 usage=
"SHELL_CUTOFF -1.0", &
1109 default_r_val=-1.0_dp, &
1110 unit_str=
"angstrom")
1114 END SUBROUTINE create_shell_section
1127 cpassert(.NOT.
ASSOCIATED(section))
1129 description=
"This section specifies the input parameters for 1-4 NON-BONDED interactions.", &
1130 n_keywords=1, n_subsections=0, repeats=.false.)
1132 NULLIFY (subsection)
1157 SUBROUTINE create_nonbonded_section(section)
1162 cpassert(.NOT.
ASSOCIATED(section))
1164 description=
"This section specifies the input parameters for NON-BONDED interactions.", &
1165 n_keywords=1, n_subsections=0, repeats=.false.)
1167 NULLIFY (subsection)
1176 CALL create_eam_section(subsection)
1180 CALL create_nequip_section(subsection)
1184 CALL create_ace_section(subsection)
1188 CALL create_mace_section(subsection)
1192 CALL create_deepmd_section(subsection)
1200 CALL create_ipbv_section(subsection)
1204 CALL create_bmhft_section(subsection)
1208 CALL create_bmhftd_section(subsection)
1212 CALL create_buck4r_section(subsection)
1216 CALL create_buckmorse_section(subsection)
1224 CALL create_tersoff_section(subsection)
1228 CALL create_siepmann_section(subsection)
1232 CALL create_gal_section(subsection)
1236 CALL create_gal21_section(subsection)
1244 END SUBROUTINE create_nonbonded_section
1258 cpassert(.NOT.
ASSOCIATED(section))
1259 CALL section_create(section, __location__, name=
"neighbor_lists", &
1260 description=
"This section specifies the input parameters for the construction of"// &
1261 " neighbor lists.", &
1262 n_keywords=1, n_subsections=0, repeats=.false.)
1265 description=
"Defines the Verlet Skin for the generation of the neighbor lists", &
1266 usage=
"VERLET_SKIN {real}", default_r_val=
cp_unit_to_cp2k(
value=1.0_dp, &
1267 unit_str=
"angstrom"), &
1268 unit_str=
"angstrom")
1272 CALL keyword_create(keyword, __location__, name=
"neighbor_lists_from_scratch", &
1273 description=
"This keyword enables the building of the neighbouring list from scratch.", &
1274 usage=
"neighbor_lists_from_scratch logical", &
1275 default_l_val=.false., lone_keyword_l_val=.true.)
1280 description=
"This keyword enables the check that two atoms are never below the minimum"// &
1281 " value used to construct the splines during the construction of the neighbouring list."// &
1282 " Disabling this keyword avoids CP2K to abort in case two atoms are below the minimum"// &
1283 " value of the radius used to generate the splines.", &
1284 usage=
"GEO_CHECK", &
1285 default_l_val=.true., lone_keyword_l_val=.true.)
1301 cpassert(.NOT.
ASSOCIATED(section))
1303 description=
"This section specifies the input parameters for a generic potential type. "// &
1305 n_keywords=1, n_subsections=0, repeats=.true.)
1310 description=
"Defines the atomic kind involved in the generic potential", &
1311 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
1317 description=
"Specifies the functional form in mathematical notation.", &
1318 usage=
"FUNCTION a\*EXP(-b\*x^2)/x+D\*log10(x)", type_of_var=
lchar_t, &
1324 description=
"Defines the variable of the functional form.", &
1325 usage=
"VARIABLES x", type_of_var=
char_t, &
1331 description=
"Defines the parameters of the functional form", &
1332 usage=
"PARAMETERS a b D", type_of_var=
char_t, &
1333 n_var=-1, repeats=.true.)
1338 description=
"Defines the values of parameter of the functional form", &
1339 usage=
"VALUES ", type_of_var=
real_t, &
1340 n_var=-1, repeats=.true., unit_str=
"internal_cp2k")
1345 description=
"Optionally, allows to define valid CP2K unit strings for each parameter value. "// &
1346 "It is assumed that the corresponding parameter value is specified in this unit.", &
1347 usage=
"UNITS angstrom eV*angstrom^-1 angstrom^1 K", type_of_var=
char_t, &
1348 n_var=-1, repeats=.true.)
1353 description=
"Defines the cutoff parameter of the generic potential", &
1355 unit_str=
"angstrom"), &
1356 unit_str=
"angstrom")
1361 description=
"Defines the lower bound of the potential. If not set the range is the"// &
1362 " full range generate by the spline", usage=
"RMIN {real}", &
1363 type_of_var=
real_t, unit_str=
"angstrom")
1368 description=
"Defines the upper bound of the potential. If not set the range is the"// &
1369 " full range generate by the spline", usage=
"RMAX {real}", &
1370 type_of_var=
real_t, unit_str=
"angstrom")
1381 SUBROUTINE create_eam_section(section)
1386 cpassert(.NOT.
ASSOCIATED(section))
1388 description=
"This section specifies the input parameters for EAM potential type.", &
1389 citations=[
foiles1986], n_keywords=1, n_subsections=0, repeats=.true.)
1394 description=
"Defines the atomic kind involved in the nonbond potential", &
1395 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
1400 CALL keyword_create(keyword, __location__, name=
"PARM_FILE_NAME", &
1401 variants=[
"PARMFILE"], &
1402 description=
"Specifies the filename that contains the tabulated EAM potential. "// &
1403 "File structure: the first line of the potential file contains a title. "// &
1404 "The second line contains: atomic number, mass and lattice constant. "// &
1405 "These information are parsed but not used in CP2K. The third line contains: "// &
1406 "dr: increment of r for the tabulated values of density and phi (assuming r starts in 0) [angstrom]; "// &
1407 "drho: increment of density for the tabulated values of the embedding function (assuming rho starts "// &
1408 "in 0) [au_c]; cutoff: cutoff of the EAM potential; npoints: number of points in tabulated. Follow "// &
1409 "in order npoints lines for rho [au_c] and its derivative [au_c*angstrom^-1]; npoints lines for "// &
1410 "PHI [ev] and its derivative [ev*angstrom^-1] and npoint lines for the embedded function [ev] "// &
1411 "and its derivative [ev*au_c^-1].", &
1412 usage=
"PARM_FILE_NAME {FILENAME}", default_lc_val=
" ")
1416 END SUBROUTINE create_eam_section
1423 SUBROUTINE create_nequip_section(section)
1428 cpassert(.NOT.
ASSOCIATED(section))
1430 description=
"This section specifies the input parameters for NEQUIP potential type "// &
1431 "based on equivariant neural networks, and for ALLEGRO, a local large-scale variant. "// &
1432 "Note: To enable the prediction of stress, along with energies and forces, the keyword "// &
1433 "StressForceOutput must be included in the nequip config *.yaml file used to train the "// &
1434 "model, regardless of whether the model has been trained on the stress. "// &
1435 "Requires linking with libtorch library from <https://pytorch.org/cppdocs/installing.html>.", &
1441 description=
"Defines the atomic kinds involved in the NEQUIP potential. "// &
1442 "Provide a list of each element, making sure that the mapping from the ATOMS list "// &
1443 "to NequIP atom types is correct. This mapping should also be consistent for the "// &
1444 "atomic coordinates as specified in the sections COORDS or TOPOLOGY.", &
1445 usage=
"ATOMS {KIND 1} {KIND 2} .. {KIND N}", type_of_var=
char_t, &
1451 variants=[
"MODEL"], &
1452 description=
"Specifies the type of model used. Allowed values are NEQUIP or ALLEGRO.", &
1453 usage=
"MODEL_TYPE {NEQUIP}", default_lc_val=
" ")
1457 CALL keyword_create(keyword, __location__, name=
"POT_FILE_NAME", &
1458 variants=[
"MODEL_FILE_NAME"], &
1459 description=
"Specifies the filename that contains the NEQUIP model.", &
1460 usage=
"POT_FILE_NAME {FILENAME}", default_lc_val=
" ")
1465 description=
"Units of length in the NEQUIP model.pth file. "// &
1466 "The units of positions, cell, energies and forces must be self-consistent: "// &
1467 "e.g. coordinates in Angstrom, energies in eV, forces in eV/Angstrom. ", &
1468 usage=
"UNIT_LENGTH angstrom", default_c_val=
"angstrom")
1473 description=
"Units of energy in the NEQUIP model.pth file. "// &
1474 "The units of positions, energies and forces must be self-consistent: "// &
1475 "e.g. coordinates in Angstrom, energies in eV, forces in eV/Angstrom. ", &
1476 usage=
"UNIT_ENERGY hartree", default_c_val=
"eV")
1481 description=
"Units of the forces in the NEQUIP model.pth file. "// &
1482 "The units of positions, energies and forces must be self-consistent: "// &
1483 "e.g. coordinates in Angstrom, energies in eV, forces in eV/Angstrom. ", &
1484 usage=
"UNIT_FORCES hartree/bohr", default_c_val=
"eV/Angstrom")
1488 END SUBROUTINE create_nequip_section
1495 SUBROUTINE create_mace_section(section)
1500 cpassert(.NOT.
ASSOCIATED(section))
1502 description=
"This section specifies the input parameters for MACE potential type, "// &
1503 "a higher-order equivariant message-passing neural network. "// &
1504 "The MACE model must be exported to a TorchScript file that takes a single "// &
1505 "dictionary argument (see the create_cp2k_model.py helper). "// &
1506 "Requires linking with libtorch library from <https://pytorch.org/cppdocs/installing.html>.", &
1507 citations=[
batatia2022], n_keywords=1, n_subsections=0, repeats=.false.)
1512 description=
"Defines the atomic kinds involved in the MACE potential. "// &
1513 "Provide a list of each element, making sure that the mapping from the ATOMS list "// &
1514 "to MACE atom types is correct. This mapping should also be consistent for the "// &
1515 "atomic coordinates as specified in the sections COORDS or TOPOLOGY.", &
1516 usage=
"ATOMS {KIND 1} {KIND 2} .. {KIND N}", type_of_var=
char_t, &
1521 CALL keyword_create(keyword, __location__, name=
"POT_FILE_NAME", &
1522 variants=[
"MODEL_FILE_NAME"], &
1523 description=
"Specifies the filename that contains the exported MACE model. "// &
1524 "MACE models use standardized units (Angstrom for length, eV for energy, "// &
1525 "eV/Angstrom for forces), so no unit keywords are required.", &
1526 usage=
"POT_FILE_NAME {FILENAME}", default_lc_val=
" ")
1530 END SUBROUTINE create_mace_section
1537 SUBROUTINE create_ace_section(section)
1543 description=
"This section specifies the input parameters for Atomic Cluster Expansion type. "// &
1544 "Mainly intended for accurate representation of "// &
1545 "potential energy surfaces. "// &
1546 "Requires linking with ACE library from "// &
1547 "<a href=""https://github.com/ICAMS/lammps-user-pace"" "// &
1548 "target=""_blank"">https://github.com/ICAMS/lammps-user-pace</a> .", &
1550 n_keywords=1, n_subsections=0, repeats=.false.)
1554 description=
"Defines the atomic species. "// &
1555 "Provide a list of each element, "// &
1556 "making sure that the mapping from the ATOMS list to ACE atom types is correct.", &
1557 usage=
"ATOMS {KIND 1} {KIND 2} .. {KIND N}", type_of_var=
char_t, &
1561 CALL keyword_create(keyword, __location__, name=
"POT_FILE_NAME", &
1562 variants=[
"PARMFILE"], &
1563 description=
"Specifies the filename that contains the ACE potential parameters.", &
1564 usage=
"POT_FILE_NAME {FILENAME}", default_lc_val=
"test.yaml")
1567 END SUBROUTINE create_ace_section
1574 SUBROUTINE create_deepmd_section(section)
1580 description=
"This section specifies the input parameters for Deep Potential type. "// &
1581 "Mainly intended for things like neural network to DFT "// &
1582 "to achieve correlated-wavefunction-like accuracy. "// &
1583 "Requires linking with DeePMD-kit library from "// &
1584 "<a href=""https://docs.deepmodeling.com/projects/deepmd/en/master"" "// &
1585 "target=""_blank"">https://docs.deepmodeling.com/projects/deepmd/en/master</a> .", &
1586 citations=[
wang2018,
zeng2023], n_keywords=1, n_subsections=0, repeats=.false.)
1589 description=
"Defines the atomic kinds involved in the Deep Potential. "// &
1590 "Provide a list of each element, "// &
1591 "making sure that the mapping from the ATOMS list to DeePMD atom types is correct.", &
1592 usage=
"ATOMS {KIND 1} {KIND 2} .. {KIND N}", type_of_var=
char_t, &
1596 CALL keyword_create(keyword, __location__, name=
"POT_FILE_NAME", &
1597 variants=[
"PARMFILE"], &
1598 description=
"Specifies the filename that contains the DeePMD-kit potential.", &
1599 usage=
"POT_FILE_NAME {FILENAME}", default_lc_val=
"graph.pb")
1602 CALL keyword_create(keyword, __location__, name=
"ATOMS_DEEPMD_TYPE", &
1603 description=
"Specifies the atomic TYPE for the DeePMD-kit potential. "// &
1604 "Provide a list of index, making sure that the mapping "// &
1605 "from the ATOMS list to DeePMD atom types is correct. ", &
1606 usage=
"ATOMS_DEEPMD_TYPE {TYPE INTEGER 1} {TYPE INTEGER 2} .. "// &
1607 "{TYPE INTEGER N}", type_of_var=
integer_t, &
1611 END SUBROUTINE create_deepmd_section
1623 cpassert(.NOT.
ASSOCIATED(section))
1624 CALL section_create(section, __location__, name=
"lennard-jones", &
1625 description=
"This section specifies the input parameters for LENNARD-JONES potential type. "// &
1626 "Functional form: V(r) = 4.0 * EPSILON * [(SIGMA/r)^12-(SIGMA/r)^6].", &
1627 n_keywords=1, n_subsections=0, repeats=.true.)
1632 description=
"Defines the atomic kind involved in the nonbond potential", &
1633 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
1639 description=
"Defines the EPSILON parameter of the LJ potential", &
1640 usage=
"EPSILON {real}", type_of_var=
real_t, &
1641 n_var=1, unit_str=
"K_e")
1646 description=
"Defines the SIGMA parameter of the LJ potential", &
1647 usage=
"SIGMA {real}", type_of_var=
real_t, &
1648 n_var=1, unit_str=
"angstrom")
1653 description=
"Defines the cutoff parameter of the LJ potential", &
1655 unit_str=
"angstrom"), &
1656 unit_str=
"angstrom")
1661 description=
"Defines the lower bound of the potential. If not set the range is the"// &
1662 " full range generate by the spline", usage=
"RMIN {real}", &
1663 type_of_var=
real_t, unit_str=
"angstrom")
1668 description=
"Defines the upper bound of the potential. If not set the range is the"// &
1669 " full range generate by the spline", usage=
"RMAX {real}", &
1670 type_of_var=
real_t, unit_str=
"angstrom")
1686 cpassert(.NOT.
ASSOCIATED(section))
1688 description=
"This section specifies the input parameters for WILLIAMS potential type. "// &
1689 "Functional form: V(r) = A*EXP(-B*r) - C / r^6 .", &
1690 n_keywords=1, n_subsections=0, repeats=.true.)
1695 description=
"Defines the atomic kind involved in the nonbond potential", &
1696 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
1702 description=
"Defines the A parameter of the Williams potential", &
1703 usage=
"A {real}", type_of_var=
real_t, &
1704 n_var=1, unit_str=
"K_e")
1709 description=
"Defines the B parameter of the Williams potential", &
1710 usage=
"B {real}", type_of_var=
real_t, &
1711 n_var=1, unit_str=
"angstrom^-1")
1716 description=
"Defines the C parameter of the Williams potential", &
1717 usage=
"C {real}", type_of_var=
real_t, &
1718 n_var=1, unit_str=
"K_e*angstrom^6")
1723 description=
"Defines the cutoff parameter of the Williams potential", &
1725 unit_str=
"angstrom"), &
1726 unit_str=
"angstrom")
1731 description=
"Defines the lower bound of the potential. If not set the range is the"// &
1732 " full range generate by the spline", usage=
"RMIN {real}", &
1733 type_of_var=
real_t, unit_str=
"angstrom")
1738 description=
"Defines the upper bound of the potential. If not set the range is the"// &
1739 " full range generate by the spline", usage=
"RMAX {real}", &
1740 type_of_var=
real_t, unit_str=
"angstrom")
1756 cpassert(.NOT.
ASSOCIATED(section))
1758 description=
"This section specifies the input parameters for GOODWIN potential type. "// &
1759 "Functional form: V(r) = EXP(M*(-(r/DC)**MC+(D/DC)**MC))*VR0*(D/r)**M.", &
1760 n_keywords=1, n_subsections=0, repeats=.true.)
1764 description=
"Defines the atomic kind involved in the nonbond potential", &
1765 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
1771 description=
"Defines the VR0 parameter of the Goodwin potential", &
1772 usage=
"VR0 {real}", type_of_var=
real_t, &
1773 n_var=1, unit_str=
"K_e")
1778 description=
"Defines the D parameter of the Goodwin potential", &
1779 usage=
"D {real}", type_of_var=
real_t, &
1780 n_var=1, unit_str=
"angstrom")
1785 description=
"Defines the DC parameter of the Goodwin potential", &
1786 usage=
"DC {real}", type_of_var=
real_t, &
1787 n_var=1, unit_str=
"angstrom")
1792 description=
"Defines the M parameter of the Goodwin potential", &
1793 usage=
"M {real}", type_of_var=
integer_t, &
1799 description=
"Defines the MC parameter of the Goodwin potential", &
1800 usage=
"MC {real}", type_of_var=
integer_t, &
1806 description=
"Defines the cutoff parameter of the Goodwin potential", &
1808 unit_str=
"angstrom"), &
1809 unit_str=
"angstrom")
1814 description=
"Defines the lower bound of the potential. If not set the range is the"// &
1815 " full range generate by the spline", usage=
"RMIN {real}", &
1816 type_of_var=
real_t, unit_str=
"angstrom")
1821 description=
"Defines the upper bound of the potential. If not set the range is the"// &
1822 " full range generate by the spline", usage=
"RMAX {real}", &
1823 type_of_var=
real_t, unit_str=
"angstrom")
1834 SUBROUTINE create_ipbv_section(section)
1839 cpassert(.NOT.
ASSOCIATED(section))
1841 description=
"This section specifies the input parameters for IPBV potential type. "// &
1842 "Functional form: Implicit table function.", &
1843 n_keywords=1, n_subsections=0, repeats=.true.)
1848 description=
"Defines the atomic kind involved in the IPBV nonbond potential", &
1849 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
1855 description=
"Defines the cutoff parameter of the IPBV potential", &
1857 unit_str=
"angstrom"), &
1858 unit_str=
"angstrom")
1863 description=
"Defines the lower bound of the potential. If not set the range is the"// &
1864 " full range generate by the spline", usage=
"RMIN {real}", &
1865 type_of_var=
real_t, unit_str=
"angstrom")
1870 description=
"Defines the upper bound of the potential. If not set the range is the"// &
1871 " full range generate by the spline", usage=
"RMAX {real}", &
1872 type_of_var=
real_t, unit_str=
"angstrom")
1876 END SUBROUTINE create_ipbv_section
1883 SUBROUTINE create_bmhft_section(section)
1888 cpassert(.NOT.
ASSOCIATED(section))
1890 description=
"This section specifies the input parameters for BMHFT potential type. "// &
1891 "Functional form: V(r) = A * EXP(-B*r) - C/r^6 - D/r^8. "// &
1892 "Values available inside cp2k only for the Na/Cl pair.", &
1898 description=
"Defines the atomic kind involved in the BMHFT nonbond potential", &
1899 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
1905 description=
"Defines the kinds for which internally is defined the BMHFT nonbond potential"// &
1906 " at the moment only Na and Cl.", &
1907 usage=
"MAP_ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
1913 description=
"Defines the cutoff parameter of the BMHFT potential", &
1914 usage=
"RCUT {real}", default_r_val=7.8_dp, &
1915 unit_str=
"angstrom")
1920 description=
"Defines the A parameter of the Fumi-Tosi Potential", &
1921 usage=
"A {real}", type_of_var=
real_t, &
1922 n_var=1, unit_str=
"hartree")
1927 description=
"Defines the B parameter of the Fumi-Tosi Potential", &
1928 usage=
"B {real}", type_of_var=
real_t, &
1929 n_var=1, unit_str=
"angstrom^-1")
1934 description=
"Defines the C parameter of the Fumi-Tosi Potential", &
1935 usage=
"C {real}", type_of_var=
real_t, &
1936 n_var=1, unit_str=
"hartree*angstrom^6")
1941 description=
"Defines the D parameter of the Fumi-Tosi Potential", &
1942 usage=
"D {real}", type_of_var=
real_t, &
1943 n_var=1, unit_str=
"hartree*angstrom^8")
1948 description=
"Defines the lower bound of the potential. If not set the range is the"// &
1949 " full range generate by the spline", usage=
"RMIN {real}", &
1950 type_of_var=
real_t, unit_str=
"angstrom")
1955 description=
"Defines the upper bound of the potential. If not set the range is the"// &
1956 " full range generate by the spline", usage=
"RMAX {real}", &
1957 type_of_var=
real_t, unit_str=
"angstrom")
1961 END SUBROUTINE create_bmhft_section
1970 SUBROUTINE create_bmhftd_section(section)
1975 cpassert(.NOT.
ASSOCIATED(section))
1977 description=
"This section specifies the input parameters for the BMHFTD potential type. "// &
1978 "Functional form: V(r) = A*exp(-B*r) - f_6*(r)C/r^6 - f_8(r)*D/r^8 "// &
1979 "where f_order(r) = 1 - exp(-BD*r)*\sum_{k=0}^order (BD*r)^k/k! "// &
1980 "(Tang-Toennies damping function). No pre-defined parameter values are available.", &
1986 description=
"Defines the atomic kind involved in the BMHFTD nonbond potential", &
1987 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
1993 description=
"Defines the kinds for which internally is defined the BMHFTD nonbond potential"// &
1994 " at the moment no species included.", &
1995 usage=
"MAP_ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
2001 description=
"Defines the cutoff parameter of the BMHFTD potential", &
2002 usage=
"RCUT {real}", default_r_val=7.8_dp, &
2003 unit_str=
"angstrom")
2008 description=
"Defines the A parameter of the dispersion-damped Fumi-Tosi potential", &
2009 usage=
"A {real}", type_of_var=
real_t, &
2010 n_var=1, unit_str=
"hartree")
2015 description=
"Defines the B parameter of the dispersion-damped Fumi-Tosi potential", &
2016 usage=
"B {real}", type_of_var=
real_t, &
2017 n_var=1, unit_str=
"angstrom^-1")
2022 description=
"Defines the C parameter of the dispersion-damped Fumi-Tosi potential", &
2023 usage=
"C {real}", type_of_var=
real_t, &
2024 n_var=1, unit_str=
"hartree*angstrom^6")
2029 description=
"Defines the D parameter of the dispersion-damped Fumi-Tosi potential", &
2030 usage=
"D {real}", type_of_var=
real_t, &
2031 n_var=1, unit_str=
"hartree*angstrom^8")
2036 description=
"Defines the BD parameters of the dispersion-damped Fumi-Tosi potential. "// &
2037 "One or two parameter values are expected. If only one value is provided, then this "// &
2038 "value will be used both for the 6th and the 8th order term.", &
2039 usage=
"BD {real} {real}", type_of_var=
real_t, &
2040 n_var=-1, unit_str=
"angstrom^-1")
2045 description=
"Defines the lower bound of the potential. If not set the range is the"// &
2046 " full range generate by the spline", usage=
"RMIN {real}", &
2047 type_of_var=
real_t, unit_str=
"angstrom")
2052 description=
"Defines the upper bound of the potential. If not set the range is the"// &
2053 " full range generate by the spline", usage=
"RMAX {real}", &
2054 type_of_var=
real_t, unit_str=
"angstrom")
2058 END SUBROUTINE create_bmhftd_section
2065 SUBROUTINE create_buck4r_section(section)
2070 cpassert(.NOT.
ASSOCIATED(section))
2072 description=
"This section specifies the input parameters for the Buckingham 4-ranges"// &
2073 " potential type."//
newline// &
2074 "| Range | Functional Form |"//
newline// &
2075 "| ----- | --------------- |"//
newline// &
2076 "| $ r < r_1 $ | $ V(r) = A\exp(-Br) $ |"//
newline// &
2077 "| $ r_1 \leq r < r_2 $ | $ V(r) = \sum_n \operatorname{POLY1}(n)r_n $ |"//
newline// &
2078 "| $ r_2 \leq r < r_3 $ | $ V(r) = \sum_n \operatorname{POLY2}(n)r_n $ |"//
newline// &
2079 "| $ r \geq r_3 $ | $ V(r) = -C/r_6 $ |"//
newline, &
2080 n_keywords=1, n_subsections=0, repeats=.true.)
2085 description=
"Defines the atomic kind involved in the nonbond potential", &
2086 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
2092 description=
"Defines the A parameter of the Buckingham potential", &
2093 usage=
"A {real}", type_of_var=
real_t, &
2094 n_var=1, unit_str=
"K_e")
2099 description=
"Defines the B parameter of the Buckingham potential", &
2100 usage=
"B {real}", type_of_var=
real_t, &
2101 n_var=1, unit_str=
"angstrom^-1")
2106 description=
"Defines the C parameter of the Buckingham potential", &
2107 usage=
"C {real}", type_of_var=
real_t, &
2108 n_var=1, unit_str=
"K_e*angstrom^6")
2113 description=
"Defines the upper bound of the first range ", &
2114 usage=
"R1 {real}", type_of_var=
real_t, &
2115 n_var=1, unit_str=
"angstrom")
2120 description=
"Defines the upper bound of the second range ", &
2121 usage=
"R2 {real}", type_of_var=
real_t, &
2122 n_var=1, unit_str=
"angstrom")
2127 description=
"Defines the upper bound of the third range ", &
2128 usage=
"R3 {real}", type_of_var=
real_t, &
2129 n_var=1, unit_str=
"angstrom")
2134 description=
"Coefficients of the polynomial used in the second range "// &
2135 "This keyword can be repeated several times.", &
2136 usage=
"POLY1 C1 C2 C3 ..", &
2137 n_var=-1, unit_str=
"K_e", type_of_var=
real_t, repeats=.true.)
2142 description=
"Coefficients of the polynomial used in the third range "// &
2143 "This keyword can be repeated several times.", &
2144 usage=
"POLY2 C1 C2 C3 ..", &
2145 n_var=-1, unit_str=
"K_e", type_of_var=
real_t, repeats=.true.)
2150 description=
"Defines the cutoff parameter of the Buckingham potential", &
2152 unit_str=
"angstrom"), &
2153 unit_str=
"angstrom")
2158 description=
"Defines the lower bound of the potential. If not set the range is the"// &
2159 " full range generate by the spline", usage=
"RMIN {real}", &
2160 type_of_var=
real_t, unit_str=
"angstrom")
2165 description=
"Defines the upper bound of the potential. If not set the range is the"// &
2166 " full range generate by the spline", usage=
"RMAX {real}", &
2167 type_of_var=
real_t, unit_str=
"angstrom")
2171 END SUBROUTINE create_buck4r_section
2178 SUBROUTINE create_buckmorse_section(section)
2183 cpassert(.NOT.
ASSOCIATED(section))
2185 section, __location__, name=
"BUCKMORSE", &
2186 description=
"This section specifies the input parameters for"// &
2187 " Buckingham plus Morse potential type"// &
2188 " Functional Form: V(r) = F0*(B1+B2)*EXP([A1+A2-r]/[B1+B2])-C/r^6+D*{EXP[-2*beta*(r-R0)]-2*EXP[-beta*(r-R0)]}.", &
2189 citations=[
yamada2000], n_keywords=1, n_subsections=0, repeats=.true.)
2194 description=
"Defines the atomic kind involved in the nonbond potential", &
2195 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
2201 description=
"Defines the f0 parameter of Buckingham+Morse potential", &
2202 usage=
"F0 {real}", type_of_var=
real_t, &
2203 n_var=1, unit_str=
"K_e*angstrom^-1")
2208 description=
"Defines the A1 parameter of Buckingham+Morse potential", &
2209 usage=
"A1 {real}", type_of_var=
real_t, &
2210 n_var=1, unit_str=
"angstrom")
2215 description=
"Defines the A2 parameter of Buckingham+Morse potential", &
2216 usage=
"A2 {real}", type_of_var=
real_t, &
2217 n_var=1, unit_str=
"angstrom")
2222 description=
"Defines the B1 parameter of Buckingham+Morse potential", &
2223 usage=
"B1 {real}", type_of_var=
real_t, &
2224 n_var=1, unit_str=
"angstrom")
2229 description=
"Defines the B2 parameter of Buckingham+Morse potential", &
2230 usage=
"B2 {real}", type_of_var=
real_t, &
2231 n_var=1, unit_str=
"angstrom")
2236 description=
"Defines the C parameter of Buckingham+Morse potential", &
2237 usage=
"C {real}", type_of_var=
real_t, &
2238 n_var=1, unit_str=
"K_e*angstrom^6")
2243 description=
"Defines the amplitude for the Morse part ", &
2244 usage=
"D {real}", type_of_var=
real_t, &
2245 n_var=1, unit_str=
"K_e")
2250 description=
"Defines the equilibrium distance for the Morse part ", &
2251 usage=
"R0 {real}", type_of_var=
real_t, &
2252 n_var=1, unit_str=
"angstrom")
2257 description=
"Defines the width for the Morse part ", &
2258 usage=
"Beta {real}", type_of_var=
real_t, &
2259 n_var=1, unit_str=
"angstrom^-1")
2264 description=
"Defines the cutoff parameter of the Buckingham potential", &
2266 unit_str=
"angstrom"), &
2267 unit_str=
"angstrom")
2272 description=
"Defines the lower bound of the potential. If not set the range is the"// &
2273 " full range generate by the spline", usage=
"RMIN {real}", &
2274 type_of_var=
real_t, unit_str=
"angstrom")
2279 description=
"Defines the upper bound of the potential. If not set the range is the"// &
2280 " full range generate by the spline", usage=
"RMAX {real}", &
2281 type_of_var=
real_t, unit_str=
"angstrom")
2285 END SUBROUTINE create_buckmorse_section
2292 SUBROUTINE create_tersoff_section(section)
2297 cpassert(.NOT.
ASSOCIATED(section))
2299 description=
"This section specifies the input parameters for Tersoff potential type.", &
2300 citations=[
tersoff1988], n_keywords=1, n_subsections=0, repeats=.true.)
2305 description=
"Defines the atomic kind involved in the nonbond potential", &
2306 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
2312 description=
"Defines the A parameter of Tersoff potential", &
2313 usage=
"A {real}", type_of_var=
real_t, &
2316 n_var=1, unit_str=
"eV")
2321 description=
"Defines the B parameter of Tersoff potential", &
2322 usage=
"B {real}", type_of_var=
real_t, &
2325 n_var=1, unit_str=
"eV")
2330 description=
"Defines the lambda1 parameter of Tersoff potential", &
2331 usage=
"lambda1 {real}", type_of_var=
real_t, &
2333 unit_str=
"angstrom^-1"), &
2334 n_var=1, unit_str=
"angstrom^-1")
2339 description=
"Defines the lambda2 parameter of Tersoff potential", &
2340 usage=
"lambda2 {real}", type_of_var=
real_t, &
2342 unit_str=
"angstrom^-1"), &
2343 n_var=1, unit_str=
"angstrom^-1")
2348 description=
"Defines the alpha parameter of Tersoff potential", &
2349 usage=
"alpha {real}", type_of_var=
real_t, &
2350 default_r_val=0.0_dp, &
2356 description=
"Defines the beta parameter of Tersoff potential", &
2357 usage=
"beta {real}", type_of_var=
real_t, &
2358 default_r_val=1.0999e-6_dp, &
2359 n_var=1, unit_str=
"")
2364 description=
"Defines the n parameter of Tersoff potential", &
2365 usage=
"n {real}", type_of_var=
real_t, &
2366 default_r_val=7.8734e-1_dp, &
2367 n_var=1, unit_str=
"")
2372 description=
"Defines the c parameter of Tersoff potential", &
2373 usage=
"c {real}", type_of_var=
real_t, &
2374 default_r_val=1.0039e5_dp, &
2375 n_var=1, unit_str=
"")
2380 description=
"Defines the d parameter of Tersoff potential", &
2381 usage=
"d {real}", type_of_var=
real_t, &
2382 default_r_val=1.6218e1_dp, &
2383 n_var=1, unit_str=
"")
2388 description=
"Defines the h parameter of Tersoff potential", &
2389 usage=
"h {real}", type_of_var=
real_t, &
2390 default_r_val=-5.9826e-1_dp, &
2391 n_var=1, unit_str=
"")
2396 description=
"Defines the lambda3 parameter of Tersoff potential", &
2397 usage=
"lambda3 {real}", type_of_var=
real_t, &
2399 unit_str=
"angstrom^-1"), &
2400 n_var=1, unit_str=
"angstrom^-1")
2405 description=
"Defines the bigR parameter of Tersoff potential", &
2406 usage=
"bigR {real}", type_of_var=
real_t, &
2408 unit_str=
"angstrom"), &
2409 n_var=1, unit_str=
"angstrom")
2414 description=
"Defines the D parameter of Tersoff potential", &
2415 usage=
"bigD {real}", type_of_var=
real_t, &
2417 unit_str=
"angstrom"), &
2418 n_var=1, unit_str=
"angstrom")
2423 description=
"Defines the cutoff parameter of the tersoff potential."// &
2424 " This parameter is in principle already defined by the values of"// &
2425 " bigD and bigR. But it is necessary to define it when using the tersoff"// &
2426 " in conjunction with other potentials (for the same atomic pair) in order to have"// &
2427 " the same consistent definition of RCUT for all potentials.", &
2428 usage=
"RCUT {real}", type_of_var=
real_t, &
2429 n_var=1, unit_str=
"angstrom")
2433 END SUBROUTINE create_tersoff_section
2441 SUBROUTINE create_siepmann_section(section)
2446 cpassert(.NOT.
ASSOCIATED(section))
2448 description=
"This section specifies the input parameters for the"// &
2449 " Siepmann-Sprik potential type. Consists of 4 terms:"// &
2450 " T1+T2+T3+T4. The terms T1=A/rij^alpha and T2=-C/rij^6"// &
2451 " have to be given via the GENPOT section. The terms T3+T4"// &
2452 " are obtained from the SIEPMANN section. The Siepmann-Sprik"// &
2453 " potential is designed for water-metal chemisorption.", &
2454 citations=[
siepmann1995], n_keywords=1, n_subsections=0, repeats=.true.)
2459 description=
"Defines the atomic kind involved in the nonbond potential", &
2460 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
2466 description=
"Defines the B parameter of Siepmann potential", &
2467 usage=
"B {real}", type_of_var=
real_t, &
2469 unit_str=
"angstrom"), &
2470 n_var=1, unit_str=
"angstrom")
2475 description=
"Defines the D parameter of Siepmann potential", &
2476 usage=
"D {real}", type_of_var=
real_t, &
2478 unit_str=
"internal_cp2k"), &
2479 n_var=1, unit_str=
"internal_cp2k")
2484 description=
"Defines the E parameter of Siepmann potential", &
2485 usage=
"E {real}", type_of_var=
real_t, &
2487 unit_str=
"internal_cp2k"), &
2488 n_var=1, unit_str=
"internal_cp2k")
2493 description=
"Defines the F parameter of Siepmann potential", &
2494 usage=
"F {real}", type_of_var=
real_t, &
2495 default_r_val=13.3_dp, n_var=1)
2500 description=
"Defines the beta parameter of Siepmann potential", &
2501 usage=
"beta {real}", type_of_var=
real_t, &
2502 default_r_val=10.0_dp, n_var=1)
2507 description=
"Defines the cutoff parameter of Siepmann potential", &
2508 usage=
"RCUT {real}", type_of_var=
real_t, &
2510 unit_str=
"angstrom"), &
2511 n_var=1, unit_str=
"angstrom")
2515 CALL keyword_create(keyword, __location__, name=
"ALLOW_OH_FORMATION", &
2516 description=
" The Siepmann-Sprik potential is actually designed for intact"// &
2517 " water molecules only. If water is treated at the QM level,"// &
2518 " water molecules can potentially dissociate, i.e."// &
2519 " some O-H bonds might be stretched leading temporarily"// &
2520 " to the formation of OH- ions. This keyword allows the"// &
2521 " the formation of such ions. The T3 term (dipole term)"// &
2522 " is then switched off for evaluating the interaction"// &
2523 " between the OH- ion and the metal.", &
2524 usage=
"ALLOW_OH_FORMATION TRUE", &
2525 default_l_val=.false., lone_keyword_l_val=.true.)
2529 CALL keyword_create(keyword, __location__, name=
"ALLOW_H3O_FORMATION", &
2530 description=
" The Siepmann-Sprik potential is designed for intact water"// &
2531 " molecules only. If water is treated at the QM level"// &
2532 " and an acid is present, hydronium ions might occur."// &
2533 " This keyword allows the formation of hydronium ions."// &
2534 " The T3 term (dipole term) is switched off for evaluating"// &
2535 " the interaction between hydronium and the metal.", &
2536 usage=
"ALLOW_H3O_FORMATION TRUE", &
2537 default_l_val=.false., lone_keyword_l_val=.true.)
2541 CALL keyword_create(keyword, __location__, name=
"ALLOW_O_FORMATION", &
2542 description=
" The Siepmann-Sprik potential is actually designed for intact"// &
2543 " water molecules only. If water is treated at the QM level,"// &
2544 " water molecules can potentially dissociate, i.e."// &
2545 " some O-H bonds might be stretched leading temporarily"// &
2546 " to the formation of O^2- ions. This keyword allows the"// &
2547 " the formation of such ions. The T3 term (dipole term)"// &
2548 " is then switched off for evaluating the interaction"// &
2549 " between the O^2- ion and the metal.", &
2550 usage=
"ALLOW_O_FORMATION .TRUE.", &
2551 default_l_val=.false., lone_keyword_l_val=.true.)
2555 END SUBROUTINE create_siepmann_section
2563 SUBROUTINE create_gal_section(section)
2569 cpassert(.NOT.
ASSOCIATED(section))
2571 description=
"Implementation of the GAL19 forcefield, see associated paper", &
2572 citations=[
clabaut2020], n_keywords=1, n_subsections=1, repeats=.true.)
2574 NULLIFY (keyword, subsection)
2577 description=
"Defines the atomic kind involved in the nonbond potential", &
2578 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
2584 description=
"Defines the two atomic kinds to be considered as part of the metallic phase in the system", &
2585 usage=
"METALS {KIND1} {KIND2} ..", type_of_var=
char_t, &
2591 description=
"Defines the epsilon_a parameter of GAL19 potential", &
2592 usage=
"epsilon {real}", type_of_var=
real_t, &
2594 unit_str=
"kcalmol"), &
2595 n_var=1, unit_str=
"kcalmol")
2600 description=
"Defines the b perpendicular parameter of GAL19 potential", &
2601 usage=
"bxy {real}", type_of_var=
real_t, &
2603 unit_str=
"internal_cp2k"), &
2604 n_var=1, unit_str=
"angstrom^-2")
2609 description=
"Defines the b parallel parameter of GAL19 potential", &
2610 usage=
"bz {real}", type_of_var=
real_t, &
2612 unit_str=
"internal_cp2k"), &
2613 n_var=1, unit_str=
"angstrom^-2")
2618 description=
"Defines the R_0 parameters of GAL19 potential for the two METALS. "// &
2619 "This is the only parameter that is shared between the two section of the "// &
2620 "forcefield in the case of two metals (alloy). "// &
2621 "If one metal only is present, a second number should be given but won't be read", &
2622 usage=
"r {real} {real}", type_of_var=
real_t, n_var=2, unit_str=
"angstrom")
2627 description=
"Defines the a1 parameter of GAL19 potential", &
2628 usage=
"a1 {real}", type_of_var=
real_t, &
2629 default_r_val=10.0_dp, n_var=1, unit_str=
"kcalmol")
2634 description=
"Defines the a2 parameter of GAL19 potential", &
2635 usage=
"a2 {real}", type_of_var=
real_t, &
2636 default_r_val=10.0_dp, n_var=1, unit_str=
"kcalmol")
2641 description=
"Defines the a3 parameter of GAL19 potential", &
2642 usage=
"a3 {real}", type_of_var=
real_t, &
2643 default_r_val=10.0_dp, n_var=1, unit_str=
"kcalmol")
2648 description=
"Defines the a4 parameter of GAL19 potential", &
2649 usage=
"a4 {real}", type_of_var=
real_t, &
2650 default_r_val=10.0_dp, n_var=1, unit_str=
"kcalmol")
2655 description=
"Defines the A parameter of GAL19 potential", &
2656 usage=
"A {real}", type_of_var=
real_t, &
2657 default_r_val=10.0_dp, n_var=1, unit_str=
"kcalmol")
2662 description=
"Defines the B parameter of GAL19 potential", &
2663 usage=
"B {real}", type_of_var=
real_t, &
2664 default_r_val=10.0_dp, n_var=1, unit_str=
"angstrom^-1")
2669 description=
"Defines the C parameter of GAL19 potential", &
2670 usage=
"C {real}", type_of_var=
real_t, &
2671 default_r_val=10.0_dp, n_var=1, unit_str=
"angstrom^6*kcalmol")
2676 description=
"Defines the cutoff parameter of GAL19 potential", &
2677 usage=
"RCUT {real}", type_of_var=
real_t, &
2679 unit_str=
"angstrom"), &
2680 n_var=1, unit_str=
"angstrom")
2684 description=
"Demands the particular output needed to a least square fit", &
2685 usage=
"Fit_express TRUE", &
2686 default_l_val=.false., lone_keyword_l_val=.true.)
2689 CALL create_gcn_section(subsection)
2693 END SUBROUTINE create_gal_section
2701 SUBROUTINE create_gal21_section(section)
2707 cpassert(.NOT.
ASSOCIATED(section))
2709 description=
"Implementation of the GAL21 forcefield, see associated paper", &
2710 citations=[
clabaut2021], n_keywords=1, n_subsections=1, repeats=.true.)
2712 NULLIFY (keyword, subsection)
2715 description=
"Defines the atomic kind involved in the nonbond potential", &
2716 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
2722 description=
"Defines the two atomic kinds to be considered as part of the metallic phase in the system", &
2723 usage=
"METALS {KIND1} {KIND2} ..", type_of_var=
char_t, &
2729 description=
"Defines the epsilon parameter of GAL21 potential", &
2730 usage=
"epsilon {real} {real} {real}", type_of_var=
real_t, &
2731 n_var=3, unit_str=
"kcalmol")
2736 description=
"Defines the b perpendicular parameter of GAL21 potential", &
2737 usage=
"bxy {real} {real}", type_of_var=
real_t, &
2738 n_var=2, unit_str=
"angstrom^-2")
2743 description=
"Defines the b parallel parameter of GAL21 potential", &
2744 usage=
"bz {real} {real}", type_of_var=
real_t, &
2745 n_var=2, unit_str=
"angstrom^-2")
2750 description=
"Defines the R_0 parameters of GAL21 potential for the two METALS. "// &
2751 "This is the only parameter that is shared between the two section of "// &
2752 "the forcefield in the case of two metals (alloy). "// &
2753 "If one metal only is present, a second number should be given but won't be read", &
2754 usage=
"r {real} {real}", type_of_var=
real_t, n_var=2, unit_str=
"angstrom")
2759 description=
"Defines the a1 parameter of GAL21 potential", &
2760 usage=
"a1 {real} {real} {real}", type_of_var=
real_t, &
2761 n_var=3, unit_str=
"kcalmol")
2766 description=
"Defines the a2 parameter of GAL21 potential", &
2767 usage=
"a2 {real} {real} {real}", type_of_var=
real_t, &
2768 n_var=3, unit_str=
"kcalmol")
2773 description=
"Defines the a3 parameter of GAL21 potential", &
2774 usage=
"a3 {real} {real} {real}", type_of_var=
real_t, &
2775 n_var=3, unit_str=
"kcalmol")
2780 description=
"Defines the a4 parameter of GAL21 potential", &
2781 usage=
"a4 {real} {real} {real}", type_of_var=
real_t, &
2782 n_var=3, unit_str=
"kcalmol")
2787 description=
"Defines the A parameter of GAL21 potential", &
2788 usage=
"A {real} {real}", type_of_var=
real_t, &
2789 n_var=2, unit_str=
"kcalmol")
2794 description=
"Defines the B parameter of GAL21 potential", &
2795 usage=
"B {real} {real}", type_of_var=
real_t, &
2796 n_var=2, unit_str=
"angstrom^-1")
2801 description=
"Defines the C parameter of GAL21 potential", &
2802 usage=
"C {real}", type_of_var=
real_t, &
2803 n_var=1, unit_str=
"angstrom^6*kcalmol")
2808 description=
"Defines the AH parameter of GAL21 potential", &
2809 usage=
"AH {real} {real}", type_of_var=
real_t, &
2810 n_var=2, unit_str=
"kcalmol")
2815 description=
"Defines the BH parameter of GAL21 potential", &
2816 usage=
"BH {real} {real}", type_of_var=
real_t, &
2817 n_var=2, unit_str=
"angstrom^-1")
2822 description=
"Defines the cutoff parameter of GAL21 potential", &
2823 usage=
"RCUT {real}", type_of_var=
real_t, &
2825 unit_str=
"angstrom"), &
2826 n_var=1, unit_str=
"angstrom")
2831 description=
"Demands the particular output needed to a least square fit", &
2832 usage=
"Fit_express TRUE", &
2833 default_l_val=.false., lone_keyword_l_val=.true.)
2837 CALL create_gcn_section(subsection)
2841 END SUBROUTINE create_gal21_section
2854 cpassert(.NOT.
ASSOCIATED(section))
2857 description=
"This section specifies the input parameters for TABPOT potential type.", &
2858 n_keywords=1, n_subsections=0, repeats=.true.)
2862 description=
"Defines the atomic kind involved", &
2863 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
2868 CALL keyword_create(keyword, __location__, name=
"PARM_FILE_NAME", &
2869 variants=[
"PARMFILE"], &
2870 description=
"Specifies the filename that contains the tabulated NONBONDED potential. "// &
2871 "File structure: the third line of the potential file contains a title. "// &
2872 "The 4th line contains: 'N', number of data points, 'R', lower bound of distance, distance cutoff. "// &
2874 "in order npoints lines for index, distance [A], energy [kcal/mol], and force [kcal/mol/A]", &
2875 usage=
"PARM_FILE_NAME {FILENAME}", default_lc_val=
"")
2887 SUBROUTINE create_gcn_section(section)
2892 cpassert(.NOT.
ASSOCIATED(section))
2894 description=
"Allow to specify the generalized coordination number of the atoms. "// &
2895 "Those numbers msust be generated by another program ", &
2896 n_keywords=1, n_subsections=0, repeats=.false.)
2899 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
2900 description=
"Value of the GCN for the individual atom. Order MUST reflect"// &
2901 " the one specified for the geometry.", repeats=.true., usage=
"{Real}", &
2902 default_r_val=0.0_dp, type_of_var=
real_t)
2906 END SUBROUTINE create_gcn_section
2917 CHARACTER(LEN=*),
INTENT(IN) :: label
2918 INTEGER,
INTENT(IN) :: print_level
2922 cpassert(.NOT.
ASSOCIATED(print_key))
2924 description=
"Section controlling the calculation of "//trim(label)//
"."// &
2925 " Note that the result in the periodic case might be defined modulo a certain period,"// &
2926 " determined by the lattice vectors. During MD, this can lead to jumps.", &
2927 print_level=print_level, filename=
"__STD_OUT__")
2932 description=
"Use Berry phase formula (PERIODIC=T) or simple operator (PERIODIC=F). "// &
2933 "The latter normally requires that the CELL is periodic NONE.", &
2934 usage=
"PERIODIC {logical}", &
2937 default_l_val=.true., lone_keyword_l_val=.true.)
2942 variants=
s2a(
"REF"), &
2943 description=
"Define the reference point for the calculation of the electrostatic moment.", &
2944 usage=
"REFERENCE COM", &
2945 enum_c_vals=
s2a(
"COM",
"COAC",
"USER_DEFINED",
"ZERO"), &
2946 enum_desc=
s2a(
"Use Center of Mass", &
2947 "Use Center of Atomic Charges", &
2948 "Use User Defined Point (Keyword:REF_POINT)", &
2949 "Use Origin of Coordinate System"), &
2958 CALL keyword_create(keyword, __location__, name=
"REFERENCE_POINT", &
2959 variants=
s2a(
"REF_POINT"), &
2960 description=
"Fixed reference point for the calculations of the electrostatic moment.", &
2961 usage=
"REFERENCE_POINT x y z", &
2963 n_var=3, default_r_vals=[0._dp, 0._dp, 0._dp], &
collects all references to literature in CP2K as new algorithms / method are included from literature...
integer, save, public tosi1964b
integer, save, public drautz2019
integer, save, public batatia2022
integer, save, public lysogorskiy2021
integer, save, public tersoff1988
integer, save, public dick1958
integer, save, public foiles1986
integer, save, public devynck2012
integer, save, public tosi1964a
integer, save, public bochkarev2024
integer, save, public siepmann1995
integer, save, public zeng2023
integer, save, public yamada2000
integer, save, public tan2025
integer, save, public batzner2022
integer, save, public mitchell1993
integer, save, public musaelian2023
integer, save, public clabaut2021
integer, save, public wang2018
integer, save, public clabaut2020
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 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
real(kind=dp) function, public cp_unit_to_cp2k(value, unit_str, defaults, power)
converts to the internal cp2k units to the given unit
Define all structure types related to force field kinds.
integer, parameter, public do_ff_legendre
integer, parameter, public do_ff_undef
integer, parameter, public do_ff_mm4
integer, parameter, public do_ff_charmm
integer, parameter, public do_ff_mm3
integer, parameter, public do_ff_g87
integer, parameter, public do_ff_g96
integer, parameter, public do_ff_morse
integer, parameter, public do_ff_mm2
integer, parameter, public do_ff_harmonic
integer, parameter, public do_ff_amber
integer, parameter, public do_ff_mixed_bend_stretch
integer, parameter, public do_ff_cubic
integer, parameter, public do_ff_quartic
integer, parameter, public do_ff_fues
integer, parameter, public do_ff_opls
This public domain function parser module is intended for applications where a set of mathematical ex...
character(len=:) function, allocatable, public docf()
...
Defines the basic variable types.
integer, parameter, public dp
integer, parameter, public default_string_length
Utilities for string manipulations.
character(len=1), parameter, public newline