Line data Source code
1 : !--------------------------------------------------------------------------------------------------!
2 : ! CP2K: A general program to perform molecular dynamics simulations !
3 : ! Copyright 2000-2025 CP2K developers group <https://cp2k.org> !
4 : ! !
5 : ! SPDX-License-Identifier: GPL-2.0-or-later !
6 : !--------------------------------------------------------------------------------------------------!
7 :
8 : ! **************************************************************************************************
9 : !> \brief function that build the dft section of the input
10 : !> \par History
11 : !> 10.2005 moved out of input_cp2k [fawzi]
12 : !> \author fawzi
13 : ! **************************************************************************************************
14 : MODULE input_cp2k_tb
15 : USE bibliography, ONLY: Elstner1998,&
16 : Grimme2017,&
17 : Hu2007,&
18 : Porezag1995,&
19 : Seifert1996,&
20 : Zhechkov2005
21 : USE eeq_input, ONLY: create_eeq_control_section
22 : USE input_constants, ONLY: dispersion_d2,&
23 : dispersion_d3,&
24 : dispersion_d3bj,&
25 : dispersion_uff,&
26 : slater
27 : USE input_cp2k_mm, ONLY: create_GENPOT_section
28 : USE input_keyword_types, ONLY: keyword_create,&
29 : keyword_release,&
30 : keyword_type
31 : USE input_section_types, ONLY: section_add_keyword,&
32 : section_add_subsection,&
33 : section_create,&
34 : section_release,&
35 : section_type
36 : USE input_val_types, ONLY: char_t
37 : USE kinds, ONLY: dp
38 : USE string_utilities, ONLY: s2a
39 : #include "./base/base_uses.f90"
40 :
41 : IMPLICIT NONE
42 : PRIVATE
43 :
44 : CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'input_cp2k_tb'
45 :
46 : PUBLIC :: create_dftb_control_section, create_xtb_control_section
47 :
48 : CONTAINS
49 :
50 : ! **************************************************************************************************
51 : !> \brief ...
52 : !> \param section ...
53 : ! **************************************************************************************************
54 9220 : SUBROUTINE create_dftb_control_section(section)
55 : TYPE(section_type), POINTER :: section
56 :
57 : TYPE(keyword_type), POINTER :: keyword
58 : TYPE(section_type), POINTER :: subsection
59 :
60 9220 : CPASSERT(.NOT. ASSOCIATED(section))
61 : CALL section_create(section, __LOCATION__, name="DFTB", &
62 : description="Parameters needed to set up the DFTB methods", &
63 : n_keywords=1, n_subsections=1, repeats=.FALSE., &
64 46100 : citations=(/Porezag1995, Seifert1996, Elstner1998, Zhechkov2005/))
65 :
66 9220 : NULLIFY (subsection)
67 9220 : CALL create_dftb_parameter_section(subsection)
68 9220 : CALL section_add_subsection(section, subsection)
69 9220 : CALL section_release(subsection)
70 :
71 9220 : NULLIFY (keyword)
72 : CALL keyword_create(keyword, __LOCATION__, name="self_consistent", &
73 : description="Use self-consistent method", &
74 : citations=(/Elstner1998/), &
75 18440 : usage="SELF_CONSISTENT", default_l_val=.TRUE.)
76 9220 : CALL section_add_keyword(section, keyword)
77 9220 : CALL keyword_release(keyword)
78 :
79 : CALL keyword_create(keyword, __LOCATION__, name="orthogonal_basis", &
80 : description="Assume orthogonal basis set", &
81 9220 : usage="ORTHOGONAL_BASIS", default_l_val=.FALSE.)
82 9220 : CALL section_add_keyword(section, keyword)
83 9220 : CALL keyword_release(keyword)
84 :
85 : CALL keyword_create(keyword, __LOCATION__, name="do_ewald", &
86 : description="Use Ewald type method instead of direct sum for Coulomb interaction", &
87 9220 : usage="DO_EWALD", default_l_val=.FALSE., lone_keyword_l_val=.TRUE.)
88 9220 : CALL section_add_keyword(section, keyword)
89 9220 : CALL keyword_release(keyword)
90 :
91 : CALL keyword_create(keyword, __LOCATION__, name="dispersion", &
92 : description="Use dispersion correction", &
93 : citations=(/Zhechkov2005/), lone_keyword_l_val=.TRUE., &
94 18440 : usage="DISPERSION", default_l_val=.FALSE.)
95 9220 : CALL section_add_keyword(section, keyword)
96 9220 : CALL keyword_release(keyword)
97 :
98 : CALL keyword_create(keyword, __LOCATION__, name="DIAGONAL_DFTB3", &
99 : description="Use a diagonal version of the 3rd order energy correction (DFTB3) ", &
100 : lone_keyword_l_val=.TRUE., &
101 9220 : usage="DIAGONAL_DFTB3", default_l_val=.FALSE.)
102 9220 : CALL section_add_keyword(section, keyword)
103 9220 : CALL keyword_release(keyword)
104 :
105 : CALL keyword_create(keyword, __LOCATION__, name="HB_SR_GAMMA", &
106 : description="Uses a modified version for the GAMMA within the SCC-DFTB scheme, "// &
107 : "specifically tuned for hydrogen bonds.", &
108 : citations=(/Hu2007/), lone_keyword_l_val=.TRUE., &
109 18440 : usage="HB_SR_GAMMA", default_l_val=.FALSE.)
110 9220 : CALL section_add_keyword(section, keyword)
111 9220 : CALL keyword_release(keyword)
112 :
113 : CALL keyword_create(keyword, __LOCATION__, name="eps_disp", &
114 : description="Define accuracy of dispersion interaction", &
115 9220 : usage="EPS_DISP", default_r_val=0.0001_dp)
116 9220 : CALL section_add_keyword(section, keyword)
117 9220 : CALL keyword_release(keyword)
118 :
119 9220 : END SUBROUTINE create_dftb_control_section
120 :
121 : ! **************************************************************************************************
122 : !> \brief ...
123 : !> \param section ...
124 : ! **************************************************************************************************
125 9220 : SUBROUTINE create_xtb_control_section(section)
126 : TYPE(section_type), POINTER :: section
127 :
128 : TYPE(keyword_type), POINTER :: keyword
129 : TYPE(section_type), POINTER :: subsection
130 :
131 9220 : CPASSERT(.NOT. ASSOCIATED(section))
132 : CALL section_create(section, __LOCATION__, name="xTB", &
133 : description="Parameters needed to set up the xTB methods", &
134 : n_keywords=1, n_subsections=1, repeats=.FALSE., &
135 18440 : citations=(/GRIMME2017/))
136 :
137 9220 : NULLIFY (subsection)
138 9220 : CALL create_xtb_parameter_section(subsection)
139 9220 : CALL section_add_subsection(section, subsection)
140 9220 : CALL section_release(subsection)
141 :
142 9220 : CALL create_xtb_nonbonded_section(subsection)
143 9220 : CALL section_add_subsection(section, subsection)
144 9220 : CALL section_release(subsection)
145 :
146 9220 : CALL create_eeq_control_section(subsection)
147 9220 : CALL section_add_subsection(section, subsection)
148 9220 : CALL section_release(subsection)
149 :
150 9220 : NULLIFY (keyword)
151 : CALL keyword_create(keyword, __LOCATION__, name="GFN_TYPE", &
152 : description="Which GFN xTB method should be used.", &
153 9220 : usage="GFN_TYPE 1", default_i_val=1)
154 9220 : CALL section_add_keyword(section, keyword)
155 9220 : CALL keyword_release(keyword)
156 :
157 : CALL keyword_create(keyword, __LOCATION__, name="DO_EWALD", &
158 : description="Use Ewald type method instead of direct sum for Coulomb interaction", &
159 9220 : usage="DO_EWALD", default_l_val=.FALSE., lone_keyword_l_val=.TRUE.)
160 9220 : CALL section_add_keyword(section, keyword)
161 9220 : CALL keyword_release(keyword)
162 :
163 : CALL keyword_create(keyword, __LOCATION__, name="STO_NG", &
164 : description="Provides the order of the Slater orbital expansion in GTOs.", &
165 9220 : usage="STO_NG 3", default_i_val=6)
166 9220 : CALL section_add_keyword(section, keyword)
167 9220 : CALL keyword_release(keyword)
168 :
169 : CALL keyword_create(keyword, __LOCATION__, name="HYDROGEN_STO_NG", &
170 : description="Number of GTOs for Hydrogen basis expansion.", &
171 9220 : usage="HYDROGEN_STO_NG 3", default_i_val=4)
172 9220 : CALL section_add_keyword(section, keyword)
173 9220 : CALL keyword_release(keyword)
174 :
175 : CALL keyword_create(keyword, __LOCATION__, name="USE_HALOGEN_CORRECTION", &
176 : description="Use XB interaction term", &
177 9220 : usage="USE_HALOGEN_CORRECTION T", default_l_val=.TRUE., lone_keyword_l_val=.TRUE.)
178 9220 : CALL section_add_keyword(section, keyword)
179 9220 : CALL keyword_release(keyword)
180 :
181 : CALL keyword_create(keyword, __LOCATION__, name="DO_NONBONDED", &
182 : description="Controls the computation of real-space "// &
183 : "(short-range) nonbonded interactions as correction to xTB.", &
184 9220 : usage="DO_NONBONDED T", default_l_val=.FALSE., lone_keyword_l_val=.TRUE.)
185 9220 : CALL section_add_keyword(section, keyword)
186 9220 : CALL keyword_release(keyword)
187 :
188 : CALL keyword_create(keyword, __LOCATION__, name="VDW_POTENTIAL", &
189 : description="vdW potential to be used: NONE, DFTD3, DFTD4. "// &
190 : "Defaults: DFTD3(gfn1), DFTD4(gfn0, gfn2).", &
191 9220 : usage="VDW_POTENTIAL type", default_c_val="")
192 9220 : CALL section_add_keyword(section, keyword)
193 9220 : CALL keyword_release(keyword)
194 :
195 : CALL keyword_create(keyword, __LOCATION__, name="COULOMB_INTERACTION", &
196 : description="Use Coulomb interaction terms (electrostatics + TB3); for debug only", &
197 9220 : usage="COULOMB_INTERACTION T", default_l_val=.TRUE., lone_keyword_l_val=.TRUE.)
198 9220 : CALL section_add_keyword(section, keyword)
199 9220 : CALL keyword_release(keyword)
200 :
201 : CALL keyword_create(keyword, __LOCATION__, name="COULOMB_LR", &
202 : description="Use Coulomb LR (1/r) interaction terms; for debug only", &
203 9220 : usage="COULOMB_LR T", default_l_val=.TRUE., lone_keyword_l_val=.TRUE.)
204 9220 : CALL section_add_keyword(section, keyword)
205 9220 : CALL keyword_release(keyword)
206 :
207 : CALL keyword_create(keyword, __LOCATION__, name="TB3_INTERACTION", &
208 : description="Use TB3 interaction terms; for debug only", &
209 9220 : usage="TB3_INTERACTION T", default_l_val=.TRUE., lone_keyword_l_val=.TRUE.)
210 9220 : CALL section_add_keyword(section, keyword)
211 9220 : CALL keyword_release(keyword)
212 :
213 : CALL keyword_create(keyword, __LOCATION__, name="CHECK_ATOMIC_CHARGES", &
214 : description="Stop calculation if atomic charges are outside chemical range.", &
215 9220 : usage="CHECK_ATOMIC_CHARGES T", default_l_val=.TRUE., lone_keyword_l_val=.TRUE.)
216 9220 : CALL section_add_keyword(section, keyword)
217 9220 : CALL keyword_release(keyword)
218 :
219 : CALL keyword_create(keyword, __LOCATION__, name="VARIATIONAL_DIPOLE", &
220 : description="gfn0-xTB use dipole definition from energy derivative.", &
221 9220 : usage="VARIATIONAL_DIPOLE T", default_l_val=.FALSE., lone_keyword_l_val=.TRUE.)
222 9220 : CALL section_add_keyword(section, keyword)
223 9220 : CALL keyword_release(keyword)
224 :
225 : CALL keyword_create(keyword, __LOCATION__, name="EPS_PAIRPOTENTIAL", &
226 : description="Accuracy for the repulsive pair potential.", &
227 9220 : usage="EPS_PAIRPOTENTIAL 1.0E-8", default_r_val=1.0e-10_dp)
228 9220 : CALL section_add_keyword(section, keyword)
229 9220 : CALL keyword_release(keyword)
230 :
231 : CALL keyword_create(keyword, __LOCATION__, name="EN_SHIFT_TYPE", &
232 : description="Shift function for electronegativity in EEQ method. "// &
233 : "[Select/Molecule/Crystal] Default Select from periodicity.", &
234 : usage="EN_SHIFT_TYPE [Select/Molecule/Crystal]", &
235 9220 : n_var=1, type_of_var=char_t, default_c_val="Molecule")
236 9220 : CALL section_add_keyword(section, keyword)
237 9220 : CALL keyword_release(keyword)
238 :
239 9220 : END SUBROUTINE create_xtb_control_section
240 :
241 : ! **************************************************************************************************
242 : !> \brief ...
243 : !> \param section ...
244 : ! **************************************************************************************************
245 9220 : SUBROUTINE create_dftb_parameter_section(section)
246 :
247 : TYPE(section_type), POINTER :: section
248 :
249 : TYPE(keyword_type), POINTER :: keyword
250 :
251 9220 : CPASSERT(.NOT. ASSOCIATED(section))
252 :
253 : CALL section_create(section, __LOCATION__, name="PARAMETER", &
254 : description="Information on where to find DFTB parameters", &
255 9220 : n_keywords=1, n_subsections=0, repeats=.FALSE.)
256 :
257 9220 : NULLIFY (keyword)
258 : CALL keyword_create(keyword, __LOCATION__, name="SK_FILE", &
259 : description="Define parameter file for atom pair", &
260 : usage="SK_FILE a1 a2 filename", &
261 9220 : n_var=3, type_of_var=char_t, repeats=.TRUE.)
262 9220 : CALL section_add_keyword(section, keyword)
263 9220 : CALL keyword_release(keyword)
264 :
265 : CALL keyword_create(keyword, __LOCATION__, name="PARAM_FILE_PATH", &
266 : description="Specify the directory with the DFTB parameter files. "// &
267 : "Used in combination with the filenames specified in the file "// &
268 : "given in PARAM_FILE_NAME.", usage="PARAM_FILE_PATH pathname", &
269 9220 : n_var=1, type_of_var=char_t, default_c_val="./")
270 9220 : CALL section_add_keyword(section, keyword)
271 9220 : CALL keyword_release(keyword)
272 :
273 : CALL keyword_create(keyword, __LOCATION__, name="PARAM_FILE_NAME", &
274 : description="Specify file that contains the names of "// &
275 : "Slater-Koster tables: A plain text file, each line has the "// &
276 : 'format "ATOM1 ATOM2 filename.spl".', &
277 : usage="PARAM_FILE_NAME filename", &
278 9220 : n_var=1, type_of_var=char_t, default_c_val="")
279 9220 : CALL section_add_keyword(section, keyword)
280 9220 : CALL keyword_release(keyword)
281 :
282 : CALL keyword_create(keyword, __LOCATION__, name="DISPERSION_TYPE", &
283 : description="Use dispersion correction of the specified type."// &
284 : " Dispersion correction has to be switched on in the DFTB section.", &
285 : usage="DISPERSION_TYPE (UFF|D3|D3(BJ)|D2)", &
286 : enum_c_vals=s2a("UFF", "D3", "D3(BJ)", "D2"), &
287 : enum_i_vals=(/dispersion_uff, dispersion_d3, dispersion_d3bj, dispersion_d2/), &
288 : enum_desc=s2a("Uses the UFF force field for a pair potential dispersion correction.", &
289 : "Uses the Grimme D3 method (simplified) for a pair potential dispersion correction.", &
290 : "Uses the Grimme D3 method (simplified) with Becke-Johnson attenuation.", &
291 : "Uses the Grimme D2 method for pair potential dispersion correction."), &
292 9220 : default_i_val=dispersion_uff)
293 9220 : CALL section_add_keyword(section, keyword)
294 9220 : CALL keyword_release(keyword)
295 :
296 : CALL keyword_create(keyword, __LOCATION__, name="UFF_FORCE_FIELD", &
297 : description="Name of file with UFF parameters that will be used "// &
298 : "for the dispersion correction. Needs to be specified when "// &
299 : "DISPERSION==.TRUE., otherwise cp2k crashes with a Segmentation "// &
300 : "Fault.", usage="UFF_FORCE_FIELD filename", &
301 9220 : n_var=1, type_of_var=char_t, default_c_val="")
302 9220 : CALL section_add_keyword(section, keyword)
303 9220 : CALL keyword_release(keyword)
304 :
305 : CALL keyword_create(keyword, __LOCATION__, name="DISPERSION_PARAMETER_FILE", &
306 : description="Specify file that contains the atomic dispersion "// &
307 : "parameters for the D3 method", &
308 : usage="DISPERSION_PARAMETER_FILE filename", &
309 9220 : n_var=1, type_of_var=char_t, default_c_val="")
310 9220 : CALL section_add_keyword(section, keyword)
311 9220 : CALL keyword_release(keyword)
312 :
313 : CALL keyword_create(keyword, __LOCATION__, name="DISPERSION_RADIUS", &
314 : description="Define radius of dispersion interaction", &
315 9220 : usage="DISPERSION_RADIUS", default_r_val=15._dp)
316 9220 : CALL section_add_keyword(section, keyword)
317 9220 : CALL keyword_release(keyword)
318 :
319 : CALL keyword_create(keyword, __LOCATION__, name="COORDINATION_CUTOFF", &
320 : description="Define cutoff for coordination number calculation", &
321 9220 : usage="COORDINATION_CUTOFF", default_r_val=1.e-6_dp)
322 9220 : CALL section_add_keyword(section, keyword)
323 9220 : CALL keyword_release(keyword)
324 :
325 : CALL keyword_create(keyword, __LOCATION__, name="D3_SCALING", &
326 : description="Scaling parameters (s6,sr6,s8) for the D3 dispersion method,", &
327 9220 : usage="D3_SCALING 1.0 1.0 1.0", n_var=3, default_r_vals=(/0.0_dp, 0.0_dp, 0.0_dp/))
328 9220 : CALL section_add_keyword(section, keyword)
329 9220 : CALL keyword_release(keyword)
330 :
331 : CALL keyword_create(keyword, __LOCATION__, name="D3BJ_SCALING", &
332 : description="Scaling parameters (s6,a1,s8,a2) for the D3(BJ) dispersion method,", &
333 : usage="D3BJ_SCALING 1.0 1.0 1.0 1.0", n_var=4, &
334 9220 : default_r_vals=(/0.0_dp, 0.0_dp, 0.0_dp, 0.0_dp/))
335 9220 : CALL section_add_keyword(section, keyword)
336 9220 : CALL keyword_release(keyword)
337 :
338 : CALL keyword_create(keyword, __LOCATION__, name="D2_SCALING", &
339 : description="Scaling parameter for the D2 dispersion method,", &
340 9220 : usage="D2_SCALING 1.0", default_r_val=1.0_dp)
341 9220 : CALL section_add_keyword(section, keyword)
342 9220 : CALL keyword_release(keyword)
343 :
344 : CALL keyword_create(keyword, __LOCATION__, name="D2_EXP_PRE", &
345 : description="Exp prefactor for damping for the D2 dispersion method,", &
346 9220 : usage="EXP_PRE 2.0", default_r_val=2.0_dp)
347 9220 : CALL section_add_keyword(section, keyword)
348 9220 : CALL keyword_release(keyword)
349 :
350 : CALL keyword_create(keyword, __LOCATION__, name="HB_SR_PARAM", &
351 : description="Uses a modified version for the GAMMA within the SCC-DFTB scheme, "// &
352 : "specifically tuned for hydrogen bonds. Specify the exponent used in the exponential.", &
353 9220 : usage="HB_SR_PARAM {real}", default_r_val=4.0_dp)
354 9220 : CALL section_add_keyword(section, keyword)
355 9220 : CALL keyword_release(keyword)
356 :
357 9220 : END SUBROUTINE create_dftb_parameter_section
358 :
359 : ! **************************************************************************************************
360 : !> \brief ...
361 : !> \param section ...
362 : ! **************************************************************************************************
363 9220 : SUBROUTINE create_xtb_parameter_section(section)
364 :
365 : TYPE(section_type), POINTER :: section
366 :
367 : TYPE(keyword_type), POINTER :: keyword
368 :
369 9220 : CPASSERT(.NOT. ASSOCIATED(section))
370 :
371 : CALL section_create(section, __LOCATION__, name="PARAMETER", &
372 : description="Information on and where to find xTB parameters", &
373 9220 : n_keywords=1, n_subsections=0, repeats=.FALSE.)
374 :
375 9220 : NULLIFY (keyword)
376 : CALL keyword_create(keyword, __LOCATION__, name="PARAM_FILE_PATH", &
377 : description="Specify the directory with the xTB parameter file. ", &
378 : usage="PARAM_FILE_PATH pathname", &
379 9220 : n_var=1, type_of_var=char_t, default_c_val="")
380 9220 : CALL section_add_keyword(section, keyword)
381 9220 : CALL keyword_release(keyword)
382 :
383 : CALL keyword_create(keyword, __LOCATION__, name="PARAM_FILE_NAME", &
384 : description="Specify file that contains all xTB default parameters. ", &
385 : usage="PARAM_FILE_NAME filename", &
386 9220 : n_var=1, type_of_var=char_t, default_c_val="xTB_parameters")
387 9220 : CALL section_add_keyword(section, keyword)
388 9220 : CALL keyword_release(keyword)
389 :
390 : CALL keyword_create(keyword, __LOCATION__, name="DISPERSION_PARAMETER_FILE", &
391 : description="Specify file that contains the atomic dispersion "// &
392 : "parameters for the D3 method", &
393 : usage="DISPERSION_PARAMETER_FILE filename", &
394 9220 : n_var=1, type_of_var=char_t, default_c_val="dftd3.dat")
395 9220 : CALL section_add_keyword(section, keyword)
396 9220 : CALL keyword_release(keyword)
397 :
398 : CALL keyword_create(keyword, __LOCATION__, name="DISPERSION_RADIUS", &
399 : description="Define radius of dispersion interaction", &
400 9220 : usage="DISPERSION_RADIUS", default_r_val=15._dp)
401 9220 : CALL section_add_keyword(section, keyword)
402 9220 : CALL keyword_release(keyword)
403 :
404 : CALL keyword_create(keyword, __LOCATION__, name="COORDINATION_CUTOFF", &
405 : description="Define cutoff for coordination number calculation", &
406 9220 : usage="COORDINATION_CUTOFF", default_r_val=1.e-6_dp)
407 9220 : CALL section_add_keyword(section, keyword)
408 9220 : CALL keyword_release(keyword)
409 :
410 : CALL keyword_create(keyword, __LOCATION__, name="D3BJ_SCALING", &
411 : description="Scaling parameters (s6,s8) for the D3 dispersion method.", &
412 9220 : usage="D3BJ_SCALING 1.0 2.4", n_var=2, default_r_vals=(/1.0_dp, 2.4_dp/))
413 9220 : CALL section_add_keyword(section, keyword)
414 9220 : CALL keyword_release(keyword)
415 :
416 : CALL keyword_create(keyword, __LOCATION__, name="D3BJ_PARAM", &
417 : description="Becke-Johnson parameters (a1, a2 for the D3 dispersion method.", &
418 9220 : usage="D3BJ_PARAM 0.63 5.0", n_var=2, default_r_vals=(/0.63_dp, 5.0_dp/))
419 9220 : CALL section_add_keyword(section, keyword)
420 9220 : CALL keyword_release(keyword)
421 :
422 : CALL keyword_create(keyword, __LOCATION__, name="HUCKEL_CONSTANTS", &
423 : description="Huckel parameters (s, p, d, sp, 2sH).", &
424 : usage="HUCKEL_CONSTANTS 1.85 2.25 2.00 2.08 2.85", n_var=5, &
425 9220 : default_r_vals=(/1.85_dp, 2.25_dp, 2.00_dp, 2.08_dp, 2.85_dp/))
426 9220 : CALL section_add_keyword(section, keyword)
427 9220 : CALL keyword_release(keyword)
428 :
429 : CALL keyword_create(keyword, __LOCATION__, name="COULOMB_CONSTANTS", &
430 : description="Scaling parameters for Coulomb interactions (electrons, nuclei).", &
431 : usage="COULOMB_CONSTANTS 2.00 1.50", n_var=2, &
432 9220 : default_r_vals=(/2.00_dp, 1.50_dp/))
433 9220 : CALL section_add_keyword(section, keyword)
434 9220 : CALL keyword_release(keyword)
435 :
436 : CALL keyword_create(keyword, __LOCATION__, name="CN_CONSTANTS", &
437 : description="Scaling parameters for Coordination number correction term.", &
438 : usage="CN_CONSTANTS 0.006 -0.003 -0.005", n_var=3, &
439 9220 : default_r_vals=(/0.006_dp, -0.003_dp, -0.005_dp/))
440 9220 : CALL section_add_keyword(section, keyword)
441 9220 : CALL keyword_release(keyword)
442 :
443 : CALL keyword_create(keyword, __LOCATION__, name="EN_CONSTANTS", &
444 : description="Scaling parameters for electronegativity correction term.", &
445 : usage="EN_CONSTANTS -0.007 0.000 0.000", n_var=3, &
446 9220 : default_r_vals=(/-0.007_dp, 0.000_dp, 0.000_dp/))
447 9220 : CALL section_add_keyword(section, keyword)
448 9220 : CALL keyword_release(keyword)
449 :
450 : CALL keyword_create(keyword, __LOCATION__, name="BEN_CONSTANT", &
451 : description="Scaling parameter for electronegativity correction term.", &
452 : usage="BEN_CONSTANT 4.0", n_var=1, &
453 9220 : default_r_val=4.0_dp)
454 9220 : CALL section_add_keyword(section, keyword)
455 9220 : CALL keyword_release(keyword)
456 :
457 : CALL keyword_create(keyword, __LOCATION__, name="ENSCALE", &
458 : description="Scaling parameter repulsive energy (dEN in exponential).", &
459 : usage="ENSCALE 0.01", n_var=1, &
460 9220 : default_r_val=0.0_dp)
461 9220 : CALL section_add_keyword(section, keyword)
462 9220 : CALL keyword_release(keyword)
463 :
464 : CALL keyword_create(keyword, __LOCATION__, name="HALOGEN_BINDING", &
465 : description="Scaling parameters for electronegativity correction term.", &
466 9220 : usage="HALOGEN_BINDING 1.30 0.44", n_var=2, default_r_vals=(/1.30_dp, 0.44_dp/))
467 9220 : CALL section_add_keyword(section, keyword)
468 9220 : CALL keyword_release(keyword)
469 :
470 : CALL keyword_create(keyword, __LOCATION__, name="KAB_PARAM", &
471 : description="Specifies the specific Kab value for types A and B.", &
472 : usage="KAB_PARAM kind1 kind2 value ", repeats=.TRUE., &
473 9220 : n_var=-1, type_of_var=char_t)
474 9220 : CALL section_add_keyword(section, keyword)
475 9220 : CALL keyword_release(keyword)
476 :
477 : CALL keyword_create(keyword, __LOCATION__, name="XB_RADIUS", &
478 : description="Specifies the radius [Bohr] of the XB pair interaction in xTB.", &
479 : usage="XB_RADIUS 20.0 ", repeats=.FALSE., &
480 9220 : n_var=1, default_r_val=20.0_dp)
481 9220 : CALL section_add_keyword(section, keyword)
482 9220 : CALL keyword_release(keyword)
483 :
484 : CALL keyword_create(keyword, __LOCATION__, name="COULOMB_SR_CUT", &
485 : description="Maximum range of short range part of Coulomb interaction.", &
486 : usage="COULOMB_SR_CUT 20.0 ", repeats=.FALSE., &
487 9220 : n_var=1, default_r_val=20.0_dp)
488 9220 : CALL section_add_keyword(section, keyword)
489 9220 : CALL keyword_release(keyword)
490 :
491 : CALL keyword_create(keyword, __LOCATION__, name="COULOMB_SR_EPS", &
492 : description="Cutoff for short range part of Coulomb interaction.", &
493 : usage="COULOMB_SR_EPS 1.E-3 ", repeats=.FALSE., &
494 9220 : n_var=1, default_r_val=1.0E-03_dp)
495 9220 : CALL section_add_keyword(section, keyword)
496 9220 : CALL keyword_release(keyword)
497 :
498 : CALL keyword_create(keyword, __LOCATION__, name="SRB_PARAMETER", &
499 : description="SRB parameters (ksrb, esrb, gscal, c1, c2, shift).", &
500 : usage="SRB_PARAMETER -0.0129 3.48 0.51 -1.71 2.11 0.0537", n_var=6, &
501 : default_r_vals=(/-0.0129_dp, 3.4847_dp, 0.5097_dp, &
502 9220 : -1.70549806_dp, 2.10878369_dp, 0.0537_dp/))
503 9220 : CALL section_add_keyword(section, keyword)
504 9220 : CALL keyword_release(keyword)
505 :
506 9220 : END SUBROUTINE create_xtb_parameter_section
507 : ! **************************************************************************************************
508 : !> \brief ...
509 : !> \param section ...
510 : ! **************************************************************************************************
511 9220 : SUBROUTINE create_xtb_nonbonded_section(section)
512 : TYPE(section_type), POINTER :: section
513 :
514 : TYPE(keyword_type), POINTER :: keyword
515 : TYPE(section_type), POINTER :: subsection
516 :
517 9220 : CPASSERT(.NOT. ASSOCIATED(section))
518 : CALL section_create(section, __LOCATION__, name="NONBONDED", &
519 : description="This section specifies the input parameters for NON-BONDED interactions.", &
520 9220 : n_keywords=1, n_subsections=0, repeats=.FALSE.)
521 9220 : NULLIFY (subsection)
522 :
523 9220 : CALL create_GENPOT_section(subsection)
524 9220 : CALL section_add_subsection(section, subsection)
525 9220 : CALL section_release(subsection)
526 :
527 9220 : NULLIFY (keyword)
528 : CALL keyword_create(keyword, __LOCATION__, name="DX", &
529 : description="Parameter used for computing the derivative with the Ridders' method.", &
530 9220 : usage="DX <REAL>", default_r_val=0.1_dp, unit_str="bohr")
531 9220 : CALL section_add_keyword(section, keyword)
532 9220 : CALL keyword_release(keyword)
533 :
534 : CALL keyword_create(keyword, __LOCATION__, name="ERROR_LIMIT", &
535 : description="Checks that the error in computing the derivative is not larger than "// &
536 : "the value set; in case error is larger a warning message is printed.", &
537 9220 : usage="ERROR_LIMIT <REAL>", default_r_val=1.0E-12_dp)
538 9220 : CALL section_add_keyword(section, keyword)
539 9220 : CALL keyword_release(keyword)
540 :
541 9220 : END SUBROUTINE create_xtb_nonbonded_section
542 :
543 : END MODULE input_cp2k_tb
|