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))
1304 description=
"This section specifies a generic potential function "// &
1305 "between two kinds of atoms (identical or distinct). The VARIABLES "// &
1306 "keyword should define exactly one symbol as the variable in the "// &
1307 "generic function.", &
1312 description=
"Defines the two atomic kinds involved in the generic "// &
1313 "potential function. The kind names are not case sensitive.", &
1314 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, n_var=2)
1319 description=
"Defines the cutoff parameter of the generic potential.", &
1321 unit_str=
"angstrom"), &
1322 unit_str=
"angstrom")
1327 description=
"Defines the lower bound of the potential. If not set the "// &
1328 "range is the full range generated by the spline.", usage=
"RMIN {real}", &
1329 type_of_var=
real_t, unit_str=
"angstrom")
1334 description=
"Defines the upper bound of the potential. If not set the "// &
1335 "range is the full range generated by the spline.", usage=
"RMAX {real}", &
1336 type_of_var=
real_t, unit_str=
"angstrom")
1347 SUBROUTINE create_eam_section(section)
1352 cpassert(.NOT.
ASSOCIATED(section))
1354 description=
"This section specifies the input parameters for EAM potential type.", &
1355 citations=[
foiles1986], n_keywords=1, n_subsections=0, repeats=.true.)
1360 description=
"Defines the atomic kind involved in the nonbond potential", &
1361 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
1366 CALL keyword_create(keyword, __location__, name=
"PARM_FILE_NAME", &
1367 variants=[
"PARMFILE"], &
1368 description=
"Specifies the filename that contains the tabulated EAM potential. "// &
1369 "File structure: the first line of the potential file contains a title. "// &
1370 "The second line contains: atomic number, mass and lattice constant. "// &
1371 "These information are parsed but not used in CP2K. The third line contains: "// &
1372 "dr: increment of r for the tabulated values of density and phi (assuming r starts in 0) [angstrom]; "// &
1373 "drho: increment of density for the tabulated values of the embedding function (assuming rho starts "// &
1374 "in 0) [au_c]; cutoff: cutoff of the EAM potential; npoints: number of points in tabulated. Follow "// &
1375 "in order npoints lines for rho [au_c] and its derivative [au_c*angstrom^-1]; npoints lines for "// &
1376 "PHI [ev] and its derivative [ev*angstrom^-1] and npoint lines for the embedded function [ev] "// &
1377 "and its derivative [ev*au_c^-1].", &
1378 usage=
"PARM_FILE_NAME {FILENAME}", default_lc_val=
" ")
1382 END SUBROUTINE create_eam_section
1389 SUBROUTINE create_nequip_section(section)
1394 cpassert(.NOT.
ASSOCIATED(section))
1396 description=
"This section specifies the input parameters for NEQUIP potential type "// &
1397 "based on equivariant neural networks, and for ALLEGRO, a local large-scale variant. "// &
1398 "Note: To enable the prediction of stress, along with energies and forces, the keyword "// &
1399 "StressForceOutput must be included in the nequip config *.yaml file used to train the "// &
1400 "model, regardless of whether the model has been trained on the stress. "// &
1401 "Requires linking with libtorch library from <https://pytorch.org/cppdocs/installing.html>.", &
1407 description=
"Defines the atomic kinds involved in the NEQUIP potential. "// &
1408 "Provide a list of each element, making sure that the mapping from the ATOMS list "// &
1409 "to NequIP atom types is correct. This mapping should also be consistent for the "// &
1410 "atomic coordinates as specified in the sections COORDS or TOPOLOGY.", &
1411 usage=
"ATOMS {KIND 1} {KIND 2} .. {KIND N}", type_of_var=
char_t, &
1417 variants=[
"MODEL"], &
1418 description=
"Specifies the type of model used. Allowed values are NEQUIP or ALLEGRO.", &
1419 usage=
"MODEL_TYPE {NEQUIP}", default_lc_val=
" ")
1423 CALL keyword_create(keyword, __location__, name=
"POT_FILE_NAME", &
1424 variants=[
"MODEL_FILE_NAME"], &
1425 description=
"Specifies the filename that contains the NEQUIP model.", &
1426 usage=
"POT_FILE_NAME {FILENAME}", default_lc_val=
" ")
1431 description=
"Units of length in the NEQUIP model.pth file. "// &
1432 "The units of positions, cell, energies and forces must be self-consistent: "// &
1433 "e.g. coordinates in Angstrom, energies in eV, forces in eV/Angstrom. ", &
1434 usage=
"UNIT_LENGTH angstrom", default_c_val=
"angstrom")
1439 description=
"Units of energy in the NEQUIP model.pth file. "// &
1440 "The units of positions, energies and forces must be self-consistent: "// &
1441 "e.g. coordinates in Angstrom, energies in eV, forces in eV/Angstrom. ", &
1442 usage=
"UNIT_ENERGY hartree", default_c_val=
"eV")
1447 description=
"Units of the forces in the NEQUIP model.pth file. "// &
1448 "The units of positions, energies and forces must be self-consistent: "// &
1449 "e.g. coordinates in Angstrom, energies in eV, forces in eV/Angstrom. ", &
1450 usage=
"UNIT_FORCES hartree/bohr", default_c_val=
"eV/Angstrom")
1454 END SUBROUTINE create_nequip_section
1461 SUBROUTINE create_mace_section(section)
1466 cpassert(.NOT.
ASSOCIATED(section))
1468 description=
"This section specifies the input parameters for MACE potential type, "// &
1469 "a higher-order equivariant message-passing neural network. "// &
1470 "The MACE model must be exported to a TorchScript file that takes a single "// &
1471 "dictionary argument (see the create_cp2k_model.py helper). "// &
1472 "Requires linking with libtorch library from <https://pytorch.org/cppdocs/installing.html>.", &
1473 citations=[
batatia2022], n_keywords=1, n_subsections=0, repeats=.false.)
1478 description=
"Defines the atomic kinds involved in the MACE potential. "// &
1479 "Provide a list of each element, making sure that the mapping from the ATOMS list "// &
1480 "to MACE atom types is correct. This mapping should also be consistent for the "// &
1481 "atomic coordinates as specified in the sections COORDS or TOPOLOGY.", &
1482 usage=
"ATOMS {KIND 1} {KIND 2} .. {KIND N}", type_of_var=
char_t, &
1487 CALL keyword_create(keyword, __location__, name=
"POT_FILE_NAME", &
1488 variants=[
"MODEL_FILE_NAME"], &
1489 description=
"Specifies the filename that contains the exported MACE model. "// &
1490 "MACE models use standardized units (Angstrom for length, eV for energy, "// &
1491 "eV/Angstrom for forces), so no unit keywords are required.", &
1492 usage=
"POT_FILE_NAME {FILENAME}", default_lc_val=
" ")
1496 END SUBROUTINE create_mace_section
1503 SUBROUTINE create_ace_section(section)
1509 description=
"This section specifies the input parameters for Atomic Cluster Expansion type. "// &
1510 "Mainly intended for accurate representation of "// &
1511 "potential energy surfaces. "// &
1512 "Requires linking with ACE library from "// &
1513 "<a href=""https://github.com/ICAMS/lammps-user-pace"" "// &
1514 "target=""_blank"">https://github.com/ICAMS/lammps-user-pace</a> .", &
1516 n_keywords=1, n_subsections=0, repeats=.false.)
1520 description=
"Defines the atomic species. "// &
1521 "Provide a list of each element, "// &
1522 "making sure that the mapping from the ATOMS list to ACE atom types is correct.", &
1523 usage=
"ATOMS {KIND 1} {KIND 2} .. {KIND N}", type_of_var=
char_t, &
1527 CALL keyword_create(keyword, __location__, name=
"POT_FILE_NAME", &
1528 variants=[
"PARMFILE"], &
1529 description=
"Specifies the filename that contains the ACE potential parameters.", &
1530 usage=
"POT_FILE_NAME {FILENAME}", default_lc_val=
"test.yaml")
1533 END SUBROUTINE create_ace_section
1540 SUBROUTINE create_deepmd_section(section)
1546 description=
"This section specifies the input parameters for Deep Potential type. "// &
1547 "Mainly intended for things like neural network to DFT "// &
1548 "to achieve correlated-wavefunction-like accuracy. "// &
1549 "Requires linking with DeePMD-kit library from "// &
1550 "<a href=""https://docs.deepmodeling.com/projects/deepmd/en/master"" "// &
1551 "target=""_blank"">https://docs.deepmodeling.com/projects/deepmd/en/master</a> .", &
1552 citations=[
wang2018,
zeng2023], n_keywords=1, n_subsections=0, repeats=.false.)
1555 description=
"Defines the atomic kinds involved in the Deep Potential. "// &
1556 "Provide a list of each element, "// &
1557 "making sure that the mapping from the ATOMS list to DeePMD atom types is correct.", &
1558 usage=
"ATOMS {KIND 1} {KIND 2} .. {KIND N}", type_of_var=
char_t, &
1562 CALL keyword_create(keyword, __location__, name=
"POT_FILE_NAME", &
1563 variants=[
"PARMFILE"], &
1564 description=
"Specifies the filename that contains the DeePMD-kit potential.", &
1565 usage=
"POT_FILE_NAME {FILENAME}", default_lc_val=
"graph.pb")
1568 CALL keyword_create(keyword, __location__, name=
"ATOMS_DEEPMD_TYPE", &
1569 description=
"Specifies the atomic TYPE for the DeePMD-kit potential. "// &
1570 "Provide a list of index, making sure that the mapping "// &
1571 "from the ATOMS list to DeePMD atom types is correct. ", &
1572 usage=
"ATOMS_DEEPMD_TYPE {TYPE INTEGER 1} {TYPE INTEGER 2} .. "// &
1573 "{TYPE INTEGER N}", type_of_var=
integer_t, &
1577 END SUBROUTINE create_deepmd_section
1589 cpassert(.NOT.
ASSOCIATED(section))
1590 CALL section_create(section, __location__, name=
"lennard-jones", &
1591 description=
"This section specifies the input parameters for LENNARD-JONES potential type. "// &
1592 "Functional form: V(r) = 4.0 * EPSILON * [(SIGMA/r)^12-(SIGMA/r)^6].", &
1593 n_keywords=1, n_subsections=0, repeats=.true.)
1598 description=
"Defines the atomic kind involved in the nonbond potential", &
1599 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
1605 description=
"Defines the EPSILON parameter of the LJ potential", &
1606 usage=
"EPSILON {real}", type_of_var=
real_t, &
1607 n_var=1, unit_str=
"K_e")
1612 description=
"Defines the SIGMA parameter of the LJ potential", &
1613 usage=
"SIGMA {real}", type_of_var=
real_t, &
1614 n_var=1, unit_str=
"angstrom")
1619 description=
"Defines the cutoff parameter of the LJ potential", &
1621 unit_str=
"angstrom"), &
1622 unit_str=
"angstrom")
1627 description=
"Defines the lower bound of the potential. If not set the range is the"// &
1628 " full range generate by the spline", usage=
"RMIN {real}", &
1629 type_of_var=
real_t, unit_str=
"angstrom")
1634 description=
"Defines the upper bound of the potential. If not set the range is the"// &
1635 " full range generate by the spline", usage=
"RMAX {real}", &
1636 type_of_var=
real_t, unit_str=
"angstrom")
1652 cpassert(.NOT.
ASSOCIATED(section))
1654 description=
"This section specifies the input parameters for WILLIAMS potential type. "// &
1655 "Functional form: V(r) = A*EXP(-B*r) - C / r^6 .", &
1656 n_keywords=1, n_subsections=0, repeats=.true.)
1661 description=
"Defines the atomic kind involved in the nonbond potential", &
1662 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
1668 description=
"Defines the A parameter of the Williams potential", &
1669 usage=
"A {real}", type_of_var=
real_t, &
1670 n_var=1, unit_str=
"K_e")
1675 description=
"Defines the B parameter of the Williams potential", &
1676 usage=
"B {real}", type_of_var=
real_t, &
1677 n_var=1, unit_str=
"angstrom^-1")
1682 description=
"Defines the C parameter of the Williams potential", &
1683 usage=
"C {real}", type_of_var=
real_t, &
1684 n_var=1, unit_str=
"K_e*angstrom^6")
1689 description=
"Defines the cutoff parameter of the Williams potential", &
1691 unit_str=
"angstrom"), &
1692 unit_str=
"angstrom")
1697 description=
"Defines the lower bound of the potential. If not set the range is the"// &
1698 " full range generate by the spline", usage=
"RMIN {real}", &
1699 type_of_var=
real_t, unit_str=
"angstrom")
1704 description=
"Defines the upper bound of the potential. If not set the range is the"// &
1705 " full range generate by the spline", usage=
"RMAX {real}", &
1706 type_of_var=
real_t, unit_str=
"angstrom")
1722 cpassert(.NOT.
ASSOCIATED(section))
1724 description=
"This section specifies the input parameters for GOODWIN potential type. "// &
1725 "Functional form: V(r) = EXP(M*(-(r/DC)**MC+(D/DC)**MC))*VR0*(D/r)**M.", &
1726 n_keywords=1, n_subsections=0, repeats=.true.)
1730 description=
"Defines the atomic kind involved in the nonbond potential", &
1731 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
1737 description=
"Defines the VR0 parameter of the Goodwin potential", &
1738 usage=
"VR0 {real}", type_of_var=
real_t, &
1739 n_var=1, unit_str=
"K_e")
1744 description=
"Defines the D parameter of the Goodwin potential", &
1745 usage=
"D {real}", type_of_var=
real_t, &
1746 n_var=1, unit_str=
"angstrom")
1751 description=
"Defines the DC parameter of the Goodwin potential", &
1752 usage=
"DC {real}", type_of_var=
real_t, &
1753 n_var=1, unit_str=
"angstrom")
1758 description=
"Defines the M parameter of the Goodwin potential", &
1759 usage=
"M {real}", type_of_var=
integer_t, &
1765 description=
"Defines the MC parameter of the Goodwin potential", &
1766 usage=
"MC {real}", type_of_var=
integer_t, &
1772 description=
"Defines the cutoff parameter of the Goodwin potential", &
1774 unit_str=
"angstrom"), &
1775 unit_str=
"angstrom")
1780 description=
"Defines the lower bound of the potential. If not set the range is the"// &
1781 " full range generate by the spline", usage=
"RMIN {real}", &
1782 type_of_var=
real_t, unit_str=
"angstrom")
1787 description=
"Defines the upper bound of the potential. If not set the range is the"// &
1788 " full range generate by the spline", usage=
"RMAX {real}", &
1789 type_of_var=
real_t, unit_str=
"angstrom")
1800 SUBROUTINE create_ipbv_section(section)
1805 cpassert(.NOT.
ASSOCIATED(section))
1807 description=
"This section specifies the input parameters for IPBV potential type. "// &
1808 "Functional form: Implicit table function.", &
1809 n_keywords=1, n_subsections=0, repeats=.true.)
1814 description=
"Defines the atomic kind involved in the IPBV nonbond potential", &
1815 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
1821 description=
"Defines the cutoff parameter of the IPBV potential", &
1823 unit_str=
"angstrom"), &
1824 unit_str=
"angstrom")
1829 description=
"Defines the lower bound of the potential. If not set the range is the"// &
1830 " full range generate by the spline", usage=
"RMIN {real}", &
1831 type_of_var=
real_t, unit_str=
"angstrom")
1836 description=
"Defines the upper bound of the potential. If not set the range is the"// &
1837 " full range generate by the spline", usage=
"RMAX {real}", &
1838 type_of_var=
real_t, unit_str=
"angstrom")
1842 END SUBROUTINE create_ipbv_section
1849 SUBROUTINE create_bmhft_section(section)
1854 cpassert(.NOT.
ASSOCIATED(section))
1856 description=
"This section specifies the input parameters for BMHFT potential type. "// &
1857 "Functional form: V(r) = A * EXP(-B*r) - C/r^6 - D/r^8. "// &
1858 "Values available inside cp2k only for the Na/Cl pair.", &
1864 description=
"Defines the atomic kind involved in the BMHFT nonbond potential", &
1865 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
1871 description=
"Defines the kinds for which internally is defined the BMHFT nonbond potential"// &
1872 " at the moment only Na and Cl.", &
1873 usage=
"MAP_ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
1879 description=
"Defines the cutoff parameter of the BMHFT potential", &
1880 usage=
"RCUT {real}", default_r_val=7.8_dp, &
1881 unit_str=
"angstrom")
1886 description=
"Defines the A parameter of the Fumi-Tosi Potential", &
1887 usage=
"A {real}", type_of_var=
real_t, &
1888 n_var=1, unit_str=
"hartree")
1893 description=
"Defines the B parameter of the Fumi-Tosi Potential", &
1894 usage=
"B {real}", type_of_var=
real_t, &
1895 n_var=1, unit_str=
"angstrom^-1")
1900 description=
"Defines the C parameter of the Fumi-Tosi Potential", &
1901 usage=
"C {real}", type_of_var=
real_t, &
1902 n_var=1, unit_str=
"hartree*angstrom^6")
1907 description=
"Defines the D parameter of the Fumi-Tosi Potential", &
1908 usage=
"D {real}", type_of_var=
real_t, &
1909 n_var=1, unit_str=
"hartree*angstrom^8")
1914 description=
"Defines the lower bound of the potential. If not set the range is the"// &
1915 " full range generate by the spline", usage=
"RMIN {real}", &
1916 type_of_var=
real_t, unit_str=
"angstrom")
1921 description=
"Defines the upper bound of the potential. If not set the range is the"// &
1922 " full range generate by the spline", usage=
"RMAX {real}", &
1923 type_of_var=
real_t, unit_str=
"angstrom")
1927 END SUBROUTINE create_bmhft_section
1936 SUBROUTINE create_bmhftd_section(section)
1941 cpassert(.NOT.
ASSOCIATED(section))
1943 description=
"This section specifies the input parameters for the BMHFTD potential type. "// &
1944 "Functional form: V(r) = A*exp(-B*r) - f_6*(r)C/r^6 - f_8(r)*D/r^8 "// &
1945 "where f_order(r) = 1 - exp(-BD*r)*\sum_{k=0}^order (BD*r)^k/k! "// &
1946 "(Tang-Toennies damping function). No pre-defined parameter values are available.", &
1952 description=
"Defines the atomic kind involved in the BMHFTD nonbond potential", &
1953 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
1959 description=
"Defines the kinds for which internally is defined the BMHFTD nonbond potential"// &
1960 " at the moment no species included.", &
1961 usage=
"MAP_ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
1967 description=
"Defines the cutoff parameter of the BMHFTD potential", &
1968 usage=
"RCUT {real}", default_r_val=7.8_dp, &
1969 unit_str=
"angstrom")
1974 description=
"Defines the A parameter of the dispersion-damped Fumi-Tosi potential", &
1975 usage=
"A {real}", type_of_var=
real_t, &
1976 n_var=1, unit_str=
"hartree")
1981 description=
"Defines the B parameter of the dispersion-damped Fumi-Tosi potential", &
1982 usage=
"B {real}", type_of_var=
real_t, &
1983 n_var=1, unit_str=
"angstrom^-1")
1988 description=
"Defines the C parameter of the dispersion-damped Fumi-Tosi potential", &
1989 usage=
"C {real}", type_of_var=
real_t, &
1990 n_var=1, unit_str=
"hartree*angstrom^6")
1995 description=
"Defines the D parameter of the dispersion-damped Fumi-Tosi potential", &
1996 usage=
"D {real}", type_of_var=
real_t, &
1997 n_var=1, unit_str=
"hartree*angstrom^8")
2002 description=
"Defines the BD parameters of the dispersion-damped Fumi-Tosi potential. "// &
2003 "One or two parameter values are expected. If only one value is provided, then this "// &
2004 "value will be used both for the 6th and the 8th order term.", &
2005 usage=
"BD {real} {real}", type_of_var=
real_t, &
2006 n_var=-1, unit_str=
"angstrom^-1")
2011 description=
"Defines the lower bound of the potential. If not set the range is the"// &
2012 " full range generate by the spline", usage=
"RMIN {real}", &
2013 type_of_var=
real_t, unit_str=
"angstrom")
2018 description=
"Defines the upper bound of the potential. If not set the range is the"// &
2019 " full range generate by the spline", usage=
"RMAX {real}", &
2020 type_of_var=
real_t, unit_str=
"angstrom")
2024 END SUBROUTINE create_bmhftd_section
2031 SUBROUTINE create_buck4r_section(section)
2036 cpassert(.NOT.
ASSOCIATED(section))
2038 description=
"This section specifies the input parameters for the Buckingham 4-ranges"// &
2039 " potential type."//
newline// &
2040 "| Range | Functional Form |"//
newline// &
2041 "| ----- | --------------- |"//
newline// &
2042 "| $ r < r_1 $ | $ V(r) = A\exp(-Br) $ |"//
newline// &
2043 "| $ r_1 \leq r < r_2 $ | $ V(r) = \sum_n \operatorname{POLY1}(n)r_n $ |"//
newline// &
2044 "| $ r_2 \leq r < r_3 $ | $ V(r) = \sum_n \operatorname{POLY2}(n)r_n $ |"//
newline// &
2045 "| $ r \geq r_3 $ | $ V(r) = -C/r_6 $ |"//
newline, &
2046 n_keywords=1, n_subsections=0, repeats=.true.)
2051 description=
"Defines the atomic kind involved in the nonbond potential", &
2052 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
2058 description=
"Defines the A parameter of the Buckingham potential", &
2059 usage=
"A {real}", type_of_var=
real_t, &
2060 n_var=1, unit_str=
"K_e")
2065 description=
"Defines the B parameter of the Buckingham potential", &
2066 usage=
"B {real}", type_of_var=
real_t, &
2067 n_var=1, unit_str=
"angstrom^-1")
2072 description=
"Defines the C parameter of the Buckingham potential", &
2073 usage=
"C {real}", type_of_var=
real_t, &
2074 n_var=1, unit_str=
"K_e*angstrom^6")
2079 description=
"Defines the upper bound of the first range ", &
2080 usage=
"R1 {real}", type_of_var=
real_t, &
2081 n_var=1, unit_str=
"angstrom")
2086 description=
"Defines the upper bound of the second range ", &
2087 usage=
"R2 {real}", type_of_var=
real_t, &
2088 n_var=1, unit_str=
"angstrom")
2093 description=
"Defines the upper bound of the third range ", &
2094 usage=
"R3 {real}", type_of_var=
real_t, &
2095 n_var=1, unit_str=
"angstrom")
2100 description=
"Coefficients of the polynomial used in the second range "// &
2101 "This keyword can be repeated several times.", &
2102 usage=
"POLY1 C1 C2 C3 ..", &
2103 n_var=-1, unit_str=
"K_e", type_of_var=
real_t, repeats=.true.)
2108 description=
"Coefficients of the polynomial used in the third range "// &
2109 "This keyword can be repeated several times.", &
2110 usage=
"POLY2 C1 C2 C3 ..", &
2111 n_var=-1, unit_str=
"K_e", type_of_var=
real_t, repeats=.true.)
2116 description=
"Defines the cutoff parameter of the Buckingham potential", &
2118 unit_str=
"angstrom"), &
2119 unit_str=
"angstrom")
2124 description=
"Defines the lower bound of the potential. If not set the range is the"// &
2125 " full range generate by the spline", usage=
"RMIN {real}", &
2126 type_of_var=
real_t, unit_str=
"angstrom")
2131 description=
"Defines the upper bound of the potential. If not set the range is the"// &
2132 " full range generate by the spline", usage=
"RMAX {real}", &
2133 type_of_var=
real_t, unit_str=
"angstrom")
2137 END SUBROUTINE create_buck4r_section
2144 SUBROUTINE create_buckmorse_section(section)
2149 cpassert(.NOT.
ASSOCIATED(section))
2151 section, __location__, name=
"BUCKMORSE", &
2152 description=
"This section specifies the input parameters for"// &
2153 " Buckingham plus Morse potential type"// &
2154 " 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)]}.", &
2155 citations=[
yamada2000], n_keywords=1, n_subsections=0, repeats=.true.)
2160 description=
"Defines the atomic kind involved in the nonbond potential", &
2161 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
2167 description=
"Defines the f0 parameter of Buckingham+Morse potential", &
2168 usage=
"F0 {real}", type_of_var=
real_t, &
2169 n_var=1, unit_str=
"K_e*angstrom^-1")
2174 description=
"Defines the A1 parameter of Buckingham+Morse potential", &
2175 usage=
"A1 {real}", type_of_var=
real_t, &
2176 n_var=1, unit_str=
"angstrom")
2181 description=
"Defines the A2 parameter of Buckingham+Morse potential", &
2182 usage=
"A2 {real}", type_of_var=
real_t, &
2183 n_var=1, unit_str=
"angstrom")
2188 description=
"Defines the B1 parameter of Buckingham+Morse potential", &
2189 usage=
"B1 {real}", type_of_var=
real_t, &
2190 n_var=1, unit_str=
"angstrom")
2195 description=
"Defines the B2 parameter of Buckingham+Morse potential", &
2196 usage=
"B2 {real}", type_of_var=
real_t, &
2197 n_var=1, unit_str=
"angstrom")
2202 description=
"Defines the C parameter of Buckingham+Morse potential", &
2203 usage=
"C {real}", type_of_var=
real_t, &
2204 n_var=1, unit_str=
"K_e*angstrom^6")
2209 description=
"Defines the amplitude for the Morse part ", &
2210 usage=
"D {real}", type_of_var=
real_t, &
2211 n_var=1, unit_str=
"K_e")
2216 description=
"Defines the equilibrium distance for the Morse part ", &
2217 usage=
"R0 {real}", type_of_var=
real_t, &
2218 n_var=1, unit_str=
"angstrom")
2223 description=
"Defines the width for the Morse part ", &
2224 usage=
"Beta {real}", type_of_var=
real_t, &
2225 n_var=1, unit_str=
"angstrom^-1")
2230 description=
"Defines the cutoff parameter of the Buckingham potential", &
2232 unit_str=
"angstrom"), &
2233 unit_str=
"angstrom")
2238 description=
"Defines the lower bound of the potential. If not set the range is the"// &
2239 " full range generate by the spline", usage=
"RMIN {real}", &
2240 type_of_var=
real_t, unit_str=
"angstrom")
2245 description=
"Defines the upper bound of the potential. If not set the range is the"// &
2246 " full range generate by the spline", usage=
"RMAX {real}", &
2247 type_of_var=
real_t, unit_str=
"angstrom")
2251 END SUBROUTINE create_buckmorse_section
2258 SUBROUTINE create_tersoff_section(section)
2263 cpassert(.NOT.
ASSOCIATED(section))
2265 description=
"This section specifies the input parameters for Tersoff potential type.", &
2266 citations=[
tersoff1988], n_keywords=1, n_subsections=0, repeats=.true.)
2271 description=
"Defines the atomic kind involved in the nonbond potential", &
2272 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
2278 description=
"Defines the A parameter of Tersoff potential", &
2279 usage=
"A {real}", type_of_var=
real_t, &
2282 n_var=1, unit_str=
"eV")
2287 description=
"Defines the B parameter of Tersoff potential", &
2288 usage=
"B {real}", type_of_var=
real_t, &
2291 n_var=1, unit_str=
"eV")
2296 description=
"Defines the lambda1 parameter of Tersoff potential", &
2297 usage=
"lambda1 {real}", type_of_var=
real_t, &
2299 unit_str=
"angstrom^-1"), &
2300 n_var=1, unit_str=
"angstrom^-1")
2305 description=
"Defines the lambda2 parameter of Tersoff potential", &
2306 usage=
"lambda2 {real}", type_of_var=
real_t, &
2308 unit_str=
"angstrom^-1"), &
2309 n_var=1, unit_str=
"angstrom^-1")
2314 description=
"Defines the alpha parameter of Tersoff potential", &
2315 usage=
"alpha {real}", type_of_var=
real_t, &
2316 default_r_val=0.0_dp, &
2322 description=
"Defines the beta parameter of Tersoff potential", &
2323 usage=
"beta {real}", type_of_var=
real_t, &
2324 default_r_val=1.0999e-6_dp, &
2325 n_var=1, unit_str=
"")
2330 description=
"Defines the n parameter of Tersoff potential", &
2331 usage=
"n {real}", type_of_var=
real_t, &
2332 default_r_val=7.8734e-1_dp, &
2333 n_var=1, unit_str=
"")
2338 description=
"Defines the c parameter of Tersoff potential", &
2339 usage=
"c {real}", type_of_var=
real_t, &
2340 default_r_val=1.0039e5_dp, &
2341 n_var=1, unit_str=
"")
2346 description=
"Defines the d parameter of Tersoff potential", &
2347 usage=
"d {real}", type_of_var=
real_t, &
2348 default_r_val=1.6218e1_dp, &
2349 n_var=1, unit_str=
"")
2354 description=
"Defines the h parameter of Tersoff potential", &
2355 usage=
"h {real}", type_of_var=
real_t, &
2356 default_r_val=-5.9826e-1_dp, &
2357 n_var=1, unit_str=
"")
2362 description=
"Defines the lambda3 parameter of Tersoff potential", &
2363 usage=
"lambda3 {real}", type_of_var=
real_t, &
2365 unit_str=
"angstrom^-1"), &
2366 n_var=1, unit_str=
"angstrom^-1")
2371 description=
"Defines the bigR parameter of Tersoff potential", &
2372 usage=
"bigR {real}", type_of_var=
real_t, &
2374 unit_str=
"angstrom"), &
2375 n_var=1, unit_str=
"angstrom")
2380 description=
"Defines the D parameter of Tersoff potential", &
2381 usage=
"bigD {real}", type_of_var=
real_t, &
2383 unit_str=
"angstrom"), &
2384 n_var=1, unit_str=
"angstrom")
2389 description=
"Defines the cutoff parameter of the tersoff potential."// &
2390 " This parameter is in principle already defined by the values of"// &
2391 " bigD and bigR. But it is necessary to define it when using the tersoff"// &
2392 " in conjunction with other potentials (for the same atomic pair) in order to have"// &
2393 " the same consistent definition of RCUT for all potentials.", &
2394 usage=
"RCUT {real}", type_of_var=
real_t, &
2395 n_var=1, unit_str=
"angstrom")
2399 END SUBROUTINE create_tersoff_section
2407 SUBROUTINE create_siepmann_section(section)
2412 cpassert(.NOT.
ASSOCIATED(section))
2414 description=
"This section specifies the input parameters for the"// &
2415 " Siepmann-Sprik potential type. Consists of 4 terms:"// &
2416 " T1+T2+T3+T4. The terms T1=A/rij^alpha and T2=-C/rij^6"// &
2417 " have to be given via the GENPOT section. The terms T3+T4"// &
2418 " are obtained from the SIEPMANN section. The Siepmann-Sprik"// &
2419 " potential is designed for water-metal chemisorption.", &
2420 citations=[
siepmann1995], n_keywords=1, n_subsections=0, repeats=.true.)
2425 description=
"Defines the atomic kind involved in the nonbond potential", &
2426 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
2432 description=
"Defines the B parameter of Siepmann potential", &
2433 usage=
"B {real}", type_of_var=
real_t, &
2435 unit_str=
"angstrom"), &
2436 n_var=1, unit_str=
"angstrom")
2441 description=
"Defines the D parameter of Siepmann potential", &
2442 usage=
"D {real}", type_of_var=
real_t, &
2444 unit_str=
"internal_cp2k"), &
2445 n_var=1, unit_str=
"internal_cp2k")
2450 description=
"Defines the E parameter of Siepmann potential", &
2451 usage=
"E {real}", type_of_var=
real_t, &
2453 unit_str=
"internal_cp2k"), &
2454 n_var=1, unit_str=
"internal_cp2k")
2459 description=
"Defines the F parameter of Siepmann potential", &
2460 usage=
"F {real}", type_of_var=
real_t, &
2461 default_r_val=13.3_dp, n_var=1)
2466 description=
"Defines the beta parameter of Siepmann potential", &
2467 usage=
"beta {real}", type_of_var=
real_t, &
2468 default_r_val=10.0_dp, n_var=1)
2473 description=
"Defines the cutoff parameter of Siepmann potential", &
2474 usage=
"RCUT {real}", type_of_var=
real_t, &
2476 unit_str=
"angstrom"), &
2477 n_var=1, unit_str=
"angstrom")
2481 CALL keyword_create(keyword, __location__, name=
"ALLOW_OH_FORMATION", &
2482 description=
" The Siepmann-Sprik potential is actually designed for intact"// &
2483 " water molecules only. If water is treated at the QM level,"// &
2484 " water molecules can potentially dissociate, i.e."// &
2485 " some O-H bonds might be stretched leading temporarily"// &
2486 " to the formation of OH- ions. This keyword allows the"// &
2487 " the formation of such ions. The T3 term (dipole term)"// &
2488 " is then switched off for evaluating the interaction"// &
2489 " between the OH- ion and the metal.", &
2490 usage=
"ALLOW_OH_FORMATION TRUE", &
2491 default_l_val=.false., lone_keyword_l_val=.true.)
2495 CALL keyword_create(keyword, __location__, name=
"ALLOW_H3O_FORMATION", &
2496 description=
" The Siepmann-Sprik potential is designed for intact water"// &
2497 " molecules only. If water is treated at the QM level"// &
2498 " and an acid is present, hydronium ions might occur."// &
2499 " This keyword allows the formation of hydronium ions."// &
2500 " The T3 term (dipole term) is switched off for evaluating"// &
2501 " the interaction between hydronium and the metal.", &
2502 usage=
"ALLOW_H3O_FORMATION TRUE", &
2503 default_l_val=.false., lone_keyword_l_val=.true.)
2507 CALL keyword_create(keyword, __location__, name=
"ALLOW_O_FORMATION", &
2508 description=
" The Siepmann-Sprik potential is actually designed for intact"// &
2509 " water molecules only. If water is treated at the QM level,"// &
2510 " water molecules can potentially dissociate, i.e."// &
2511 " some O-H bonds might be stretched leading temporarily"// &
2512 " to the formation of O^2- ions. This keyword allows the"// &
2513 " the formation of such ions. The T3 term (dipole term)"// &
2514 " is then switched off for evaluating the interaction"// &
2515 " between the O^2- ion and the metal.", &
2516 usage=
"ALLOW_O_FORMATION .TRUE.", &
2517 default_l_val=.false., lone_keyword_l_val=.true.)
2521 END SUBROUTINE create_siepmann_section
2529 SUBROUTINE create_gal_section(section)
2535 cpassert(.NOT.
ASSOCIATED(section))
2537 description=
"Implementation of the GAL19 forcefield, see associated paper", &
2538 citations=[
clabaut2020], n_keywords=1, n_subsections=1, repeats=.true.)
2540 NULLIFY (keyword, subsection)
2543 description=
"Defines the atomic kind involved in the nonbond potential", &
2544 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
2550 description=
"Defines the two atomic kinds to be considered as part of the metallic phase in the system", &
2551 usage=
"METALS {KIND1} {KIND2} ..", type_of_var=
char_t, &
2557 description=
"Defines the epsilon_a parameter of GAL19 potential", &
2558 usage=
"epsilon {real}", type_of_var=
real_t, &
2560 unit_str=
"kcalmol"), &
2561 n_var=1, unit_str=
"kcalmol")
2566 description=
"Defines the b perpendicular parameter of GAL19 potential", &
2567 usage=
"bxy {real}", type_of_var=
real_t, &
2569 unit_str=
"internal_cp2k"), &
2570 n_var=1, unit_str=
"angstrom^-2")
2575 description=
"Defines the b parallel parameter of GAL19 potential", &
2576 usage=
"bz {real}", type_of_var=
real_t, &
2578 unit_str=
"internal_cp2k"), &
2579 n_var=1, unit_str=
"angstrom^-2")
2584 description=
"Defines the R_0 parameters of GAL19 potential for the two METALS. "// &
2585 "This is the only parameter that is shared between the two section of the "// &
2586 "forcefield in the case of two metals (alloy). "// &
2587 "If one metal only is present, a second number should be given but won't be read", &
2588 usage=
"r {real} {real}", type_of_var=
real_t, n_var=2, unit_str=
"angstrom")
2593 description=
"Defines the a1 parameter of GAL19 potential", &
2594 usage=
"a1 {real}", type_of_var=
real_t, &
2595 default_r_val=10.0_dp, n_var=1, unit_str=
"kcalmol")
2600 description=
"Defines the a2 parameter of GAL19 potential", &
2601 usage=
"a2 {real}", type_of_var=
real_t, &
2602 default_r_val=10.0_dp, n_var=1, unit_str=
"kcalmol")
2607 description=
"Defines the a3 parameter of GAL19 potential", &
2608 usage=
"a3 {real}", type_of_var=
real_t, &
2609 default_r_val=10.0_dp, n_var=1, unit_str=
"kcalmol")
2614 description=
"Defines the a4 parameter of GAL19 potential", &
2615 usage=
"a4 {real}", type_of_var=
real_t, &
2616 default_r_val=10.0_dp, n_var=1, unit_str=
"kcalmol")
2621 description=
"Defines the A parameter of GAL19 potential", &
2622 usage=
"A {real}", type_of_var=
real_t, &
2623 default_r_val=10.0_dp, n_var=1, unit_str=
"kcalmol")
2628 description=
"Defines the B parameter of GAL19 potential", &
2629 usage=
"B {real}", type_of_var=
real_t, &
2630 default_r_val=10.0_dp, n_var=1, unit_str=
"angstrom^-1")
2635 description=
"Defines the C parameter of GAL19 potential", &
2636 usage=
"C {real}", type_of_var=
real_t, &
2637 default_r_val=10.0_dp, n_var=1, unit_str=
"angstrom^6*kcalmol")
2642 description=
"Defines the cutoff parameter of GAL19 potential", &
2643 usage=
"RCUT {real}", type_of_var=
real_t, &
2645 unit_str=
"angstrom"), &
2646 n_var=1, unit_str=
"angstrom")
2650 description=
"Demands the particular output needed to a least square fit", &
2651 usage=
"Fit_express TRUE", &
2652 default_l_val=.false., lone_keyword_l_val=.true.)
2655 CALL create_gcn_section(subsection)
2659 END SUBROUTINE create_gal_section
2667 SUBROUTINE create_gal21_section(section)
2673 cpassert(.NOT.
ASSOCIATED(section))
2675 description=
"Implementation of the GAL21 forcefield, see associated paper", &
2676 citations=[
clabaut2021], n_keywords=1, n_subsections=1, repeats=.true.)
2678 NULLIFY (keyword, subsection)
2681 description=
"Defines the atomic kind involved in the nonbond potential", &
2682 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
2688 description=
"Defines the two atomic kinds to be considered as part of the metallic phase in the system", &
2689 usage=
"METALS {KIND1} {KIND2} ..", type_of_var=
char_t, &
2695 description=
"Defines the epsilon parameter of GAL21 potential", &
2696 usage=
"epsilon {real} {real} {real}", type_of_var=
real_t, &
2697 n_var=3, unit_str=
"kcalmol")
2702 description=
"Defines the b perpendicular parameter of GAL21 potential", &
2703 usage=
"bxy {real} {real}", type_of_var=
real_t, &
2704 n_var=2, unit_str=
"angstrom^-2")
2709 description=
"Defines the b parallel parameter of GAL21 potential", &
2710 usage=
"bz {real} {real}", type_of_var=
real_t, &
2711 n_var=2, unit_str=
"angstrom^-2")
2716 description=
"Defines the R_0 parameters of GAL21 potential for the two METALS. "// &
2717 "This is the only parameter that is shared between the two section of "// &
2718 "the forcefield in the case of two metals (alloy). "// &
2719 "If one metal only is present, a second number should be given but won't be read", &
2720 usage=
"r {real} {real}", type_of_var=
real_t, n_var=2, unit_str=
"angstrom")
2725 description=
"Defines the a1 parameter of GAL21 potential", &
2726 usage=
"a1 {real} {real} {real}", type_of_var=
real_t, &
2727 n_var=3, unit_str=
"kcalmol")
2732 description=
"Defines the a2 parameter of GAL21 potential", &
2733 usage=
"a2 {real} {real} {real}", type_of_var=
real_t, &
2734 n_var=3, unit_str=
"kcalmol")
2739 description=
"Defines the a3 parameter of GAL21 potential", &
2740 usage=
"a3 {real} {real} {real}", type_of_var=
real_t, &
2741 n_var=3, unit_str=
"kcalmol")
2746 description=
"Defines the a4 parameter of GAL21 potential", &
2747 usage=
"a4 {real} {real} {real}", type_of_var=
real_t, &
2748 n_var=3, unit_str=
"kcalmol")
2753 description=
"Defines the A parameter of GAL21 potential", &
2754 usage=
"A {real} {real}", type_of_var=
real_t, &
2755 n_var=2, unit_str=
"kcalmol")
2760 description=
"Defines the B parameter of GAL21 potential", &
2761 usage=
"B {real} {real}", type_of_var=
real_t, &
2762 n_var=2, unit_str=
"angstrom^-1")
2767 description=
"Defines the C parameter of GAL21 potential", &
2768 usage=
"C {real}", type_of_var=
real_t, &
2769 n_var=1, unit_str=
"angstrom^6*kcalmol")
2774 description=
"Defines the AH parameter of GAL21 potential", &
2775 usage=
"AH {real} {real}", type_of_var=
real_t, &
2776 n_var=2, unit_str=
"kcalmol")
2781 description=
"Defines the BH parameter of GAL21 potential", &
2782 usage=
"BH {real} {real}", type_of_var=
real_t, &
2783 n_var=2, unit_str=
"angstrom^-1")
2788 description=
"Defines the cutoff parameter of GAL21 potential", &
2789 usage=
"RCUT {real}", type_of_var=
real_t, &
2791 unit_str=
"angstrom"), &
2792 n_var=1, unit_str=
"angstrom")
2797 description=
"Demands the particular output needed to a least square fit", &
2798 usage=
"Fit_express TRUE", &
2799 default_l_val=.false., lone_keyword_l_val=.true.)
2803 CALL create_gcn_section(subsection)
2807 END SUBROUTINE create_gal21_section
2820 cpassert(.NOT.
ASSOCIATED(section))
2823 description=
"This section specifies the input parameters for TABPOT potential type.", &
2824 n_keywords=1, n_subsections=0, repeats=.true.)
2828 description=
"Defines the atomic kind involved", &
2829 usage=
"ATOMS {KIND1} {KIND2}", type_of_var=
char_t, &
2834 CALL keyword_create(keyword, __location__, name=
"PARM_FILE_NAME", &
2835 variants=[
"PARMFILE"], &
2836 description=
"Specifies the filename that contains the tabulated NONBONDED potential. "// &
2837 "File structure: the third line of the potential file contains a title. "// &
2838 "The 4th line contains: 'N', number of data points, 'R', lower bound of distance, distance cutoff. "// &
2840 "in order npoints lines for index, distance [A], energy [kcal/mol], and force [kcal/mol/A]", &
2841 usage=
"PARM_FILE_NAME {FILENAME}", default_lc_val=
"")
2853 SUBROUTINE create_gcn_section(section)
2858 cpassert(.NOT.
ASSOCIATED(section))
2860 description=
"Allow to specify the generalized coordination number of the atoms. "// &
2861 "Those numbers msust be generated by another program ", &
2862 n_keywords=1, n_subsections=0, repeats=.false.)
2865 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
2866 description=
"Value of the GCN for the individual atom. Order MUST reflect"// &
2867 " the one specified for the geometry.", repeats=.true., usage=
"{Real}", &
2868 default_r_val=0.0_dp, type_of_var=
real_t)
2872 END SUBROUTINE create_gcn_section
2883 CHARACTER(LEN=*),
INTENT(IN) :: label
2884 INTEGER,
INTENT(IN) :: print_level
2888 cpassert(.NOT.
ASSOCIATED(print_key))
2890 description=
"Section controlling the calculation of "//trim(label)//
"."// &
2891 " Note that the result in the periodic case might be defined modulo a certain period,"// &
2892 " determined by the lattice vectors. During MD, this can lead to jumps.", &
2893 print_level=print_level, filename=
"__STD_OUT__")
2898 description=
"Use Berry phase formula (PERIODIC=T) or simple operator (PERIODIC=F). "// &
2899 "For the simple dipole operator, only components perpendicular to the periodic "// &
2900 "lattice vectors are well-defined. All components are well-defined for CELL PERIODIC NONE.", &
2901 usage=
"PERIODIC {logical}", &
2904 default_l_val=.true., lone_keyword_l_val=.true.)
2909 variants=
s2a(
"REF"), &
2910 description=
"Define the reference point for the calculation of the electrostatic moment.", &
2911 usage=
"REFERENCE COM", &
2912 enum_c_vals=
s2a(
"COM",
"COAC",
"USER_DEFINED",
"ZERO"), &
2913 enum_desc=
s2a(
"Use Center of Mass", &
2914 "Use Center of Atomic Charges", &
2915 "Use User Defined Point (Keyword:REF_POINT)", &
2916 "Use Origin of Coordinate System"), &
2925 CALL keyword_create(keyword, __location__, name=
"REFERENCE_POINT", &
2926 variants=
s2a(
"REF_POINT"), &
2927 description=
"Fixed reference point for the calculations of the electrostatic moment.", &
2928 usage=
"REFERENCE_POINT x y z", &
2930 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...
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, do_backup)
creates a print_key section
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
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
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