33 #include "./base/base_uses.f90"
38 LOGICAL,
PRIVATE,
PARAMETER :: debug_this_module = .true.
39 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'input_cp2k_nnp'
52 TYPE(section_type),
POINTER :: section
54 TYPE(keyword_type),
POINTER :: keyword
55 TYPE(section_type),
POINTER :: subsection, subsubsection
57 cpassert(.NOT.
ASSOCIATED(section))
59 description=
"This section contains all information to run a "// &
60 "Neural Network Potential (NNP) calculation.", &
61 n_keywords=3, n_subsections=3, repeats=.false., &
64 NULLIFY (subsection, subsubsection, keyword)
66 CALL keyword_create(keyword, __location__, name=
"NNP_INPUT_FILE_NAME", &
67 description=
"File containing the input information for "// &
68 "the setup of the NNP (n2p2/RuNNer format).", &
69 repeats=.false., default_lc_val=
"input.nn")
72 CALL keyword_create(keyword, __location__, name=
"SCALE_FILE_NAME", &
73 description=
"File containing the scaling information for "// &
74 "the symmetry functions of the NNP.", &
75 repeats=.false., default_lc_val=
"scaling.data")
81 description=
"Section to bias the committee disagreement (sigma) by "// &
82 "E = 0.5 * K_B * (sigma - SIGMA_0)**2, if sigma > SIGMA_0.", &
83 n_keywords=2, n_subsections=0, repeats=.false., &
86 description=
"Harmonic spring constant of the bias potential [1/hartree].", &
91 unit_str=
"hartree^-1", &
92 usage=
"K_B [hartree^-1] 0.1")
96 description=
"Shift of the harmonic bias potential.", &
101 unit_str=
"hartree", &
102 usage=
"SIGMA_0 [hartree] 0.1")
105 CALL keyword_create(keyword, __location__, name=
"ALIGN_NNP_ENERGIES", &
106 description=
"Remove PES shifts within the committee by "// &
107 "subtracting energy for each committee member. Provide "// &
108 "one number per C-NNP member.", &
112 usage=
"ALIGN_NNP_ENERGIES <REAL> <REAL> ... <REAL>")
116 CALL create_nnp_bias_print_section(subsubsection)
125 description=
"Section for a single NNP model. "// &
126 "If this section is repeated, a committee model (C-NNP) "// &
127 "is used where the NNP members share the same symmetry functions.", &
128 n_keywords=1, n_subsections=0, repeats=.true.)
130 description=
"File containing the weights for the "// &
131 "artificial neural networks of the NNP. "// &
132 "The specified name is extended by .XXX.data", &
133 repeats=.false., default_lc_val=
"weights")
139 CALL create_nnp_print_section(subsection)
151 SUBROUTINE create_nnp_print_section(section)
152 TYPE(section_type),
POINTER :: section
154 TYPE(keyword_type),
POINTER :: keyword
155 TYPE(section_type),
POINTER :: print_key
157 cpassert(.NOT.
ASSOCIATED(section))
159 description=
"Section of possible print options in NNP code.", &
160 n_keywords=0, n_subsections=5, repeats=.false.)
162 NULLIFY (print_key, keyword)
165 description=
"Controls the printing of the NNP energies.", &
171 description=
"Controls the printing of the NNP forces.", &
177 description=
"Controls the printing of the STD per atom of the NNP forces.", &
183 description=
"If activated, output structures with extrapolation "// &
184 "warning in xyz-format", &
190 description=
"If activated, output summed force over specified atoms. "// &
191 "Used in Green-Kubo relation for friction at liquid-solid interfaces.", &
195 description=
"List of atoms over which to calculate summed force", &
196 usage=
"ATOM_LISTS {O} {H} .. {X}", repeats=.false., &
197 n_var=-1, type_of_var=
char_t)
204 END SUBROUTINE create_nnp_print_section
212 SUBROUTINE create_nnp_bias_print_section(section)
213 TYPE(section_type),
POINTER :: section
215 TYPE(section_type),
POINTER :: print_key
217 cpassert(.NOT.
ASSOCIATED(section))
219 description=
"Section of possible print options in NNP code.", &
220 n_keywords=0, n_subsections=3, repeats=.false.)
225 description=
"Controls the printing of the BIAS energy.", &
231 description=
"Controls the printing of the BIAS forces.", &
236 END SUBROUTINE create_nnp_bias_print_section
collects all references to literature in CP2K as new algorithms / method are included from literature...
integer, save, public schran2020b
integer, save, public schran2020a
integer, save, public behler2011
integer, save, public behler2007
routines to handle the output, The idea is to remove the decision of wheter to output and what to out...
integer, parameter, public medium_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
Defines the basic variable types.
integer, parameter, public dp