(git:9782eda)
Loading...
Searching...
No Matches
input_cp2k_xc.F
Go to the documentation of this file.
1!--------------------------------------------------------------------------------------------------!
2! CP2K: A general program to perform molecular dynamics simulations !
3! Copyright 2000-2026 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 xc section of the input
10!> \par History
11!> 10.2009 moved out of input_cp2k_dft [jgh]
12!> \author fawzi
13! **************************************************************************************************
15 USE bibliography, ONLY: &
23 USE input_constants, ONLY: &
41 USE input_val_types, ONLY: char_t,&
42 integer_t,&
43 real_t
44 USE kinds, ONLY: dp
45 USE string_utilities, ONLY: s2a
46 USE xc_input_constants, ONLY: &
55#include "./base/base_uses.f90"
56
57 IMPLICIT NONE
58 PRIVATE
59
60 LOGICAL, PRIVATE, PARAMETER :: debug_this_module = .true.
61 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'input_cp2k_xc'
62
64
65CONTAINS
66
67! **************************************************************************************************
68!> \brief creates the structure of the section needed to select the xc functional
69!> \param section the section that will be created
70!> \author fawzi
71! **************************************************************************************************
72 SUBROUTINE create_xc_fun_section(section)
73 TYPE(section_type), POINTER :: section
74
75 TYPE(keyword_type), POINTER :: keyword
76 TYPE(section_type), POINTER :: subsection
77
78 cpassert(.NOT. ASSOCIATED(section))
79 CALL section_create(section, __location__, name="xc_functional", &
80 description="The eXchange-Correlation functional to use. In case of hybrid functionals, all scaling "// &
81 "parameters and potential types have to be specified in the HF section except from a few "// &
82 "predefined combinations (see _SECTION_PARAMETERS_ below). CP2K does NOT set it up "// &
83 "automatically not even for LibXC functionals.", &
84 n_keywords=0, n_subsections=4, repeats=.false., &
88
89 NULLIFY (subsection, keyword)
90 CALL keyword_create( &
91 keyword, __location__, name="_SECTION_PARAMETERS_", &
92 description="Shortcut for the most common functional combinations. These make use of the implementations provided by "// &
93 "native CP2K (without LibXC). In case of hybrid functionals (B3LYP, PBE0), set the "// &
94 "accuracy-related and system-dependent parameters in the HF section (especially MAX_MEMORY, EPS_SCHWARZ, "// &
95 "CUTOFF_RADIUS, POTENTIAL_TYPE) as these are not set automatically.", &
96 usage="&xc_functional BLYP", &
97 enum_c_vals=s2a("B3LYP", "PBE0", "BLYP", "BP", "PADE", "LDA", "PBE", &
98 "TPSS", "HCTH120", "OLYP", "BEEFVDW", "NO_SHORTCUT", "NONE"), &
101 enum_desc=s2a("B3LYP", &
102 "PBE0 (see note in section XC/XC_FUNCTIONAL/PBE)", &
103 "BLYP", "BP", "PADE", "Alias for PADE", &
104 "PBE (see note in section XC/XC_FUNCTIONAL/PBE)", &
105 "TPSS (not available with LSD, use LIBXC version instead)", "HCTH120", "OLYP", &
106 "BEEFVDW", "NO_SHORTCUT", "NONE"), &
107 default_i_val=xc_funct_no_shortcut, &
108 lone_keyword_i_val=xc_funct_no_shortcut)
109 CALL section_add_keyword(section, keyword)
110 CALL keyword_release(keyword)
111
112 CALL section_create(subsection, __location__, name="BECKE88", &
113 description="Uses the Becke 88 exchange functional", &
114 n_keywords=0, n_subsections=0, repeats=.false., &
115 citations=[becke1988])
116 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
117 description="activates the functional", &
118 lone_keyword_l_val=.true., default_l_val=.false.)
119 CALL section_add_keyword(subsection, keyword)
120 CALL keyword_release(keyword)
121 CALL keyword_create( &
122 keyword, __location__, name="scale_x", &
123 description="scales the exchange part of the functional", &
124 default_r_val=1._dp)
125 CALL section_add_keyword(subsection, keyword)
126 CALL keyword_release(keyword)
127
128 CALL section_add_subsection(section, subsection)
129 CALL section_release(subsection)
130
131 CALL section_create(subsection, __location__, name="LYP_ADIABATIC", &
132 description="Uses the LYP correlation functional in an adiabatic fashion", &
133 n_keywords=0, n_subsections=0, repeats=.false., &
134 citations=[lee1988])
135 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
136 description="activates the functional", &
137 lone_keyword_l_val=.true., default_l_val=.false.)
138 CALL section_add_keyword(subsection, keyword)
139 CALL keyword_release(keyword)
140 CALL keyword_create(keyword, __location__, name="LAMBDA", &
141 description="Defines the parameter of the adiabatic curve.", &
142 default_r_val=1._dp)
143 CALL section_add_keyword(subsection, keyword)
144 CALL keyword_release(keyword)
145
146 CALL section_add_subsection(section, subsection)
147 CALL section_release(subsection)
148
149 CALL section_create(subsection, __location__, name="BECKE88_LR_ADIABATIC", &
150 description="Uses the Becke 88 longrange exchange functional in an adiabatic fashion", &
151 n_keywords=0, n_subsections=0, repeats=.false., &
152 citations=[becke1988])
153 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
154 description="activates the functional", &
155 lone_keyword_l_val=.true., default_l_val=.false.)
156 CALL section_add_keyword(subsection, keyword)
157 CALL keyword_release(keyword)
158 CALL keyword_create(keyword, __location__, name="scale_x", &
159 description="scales the exchange part of the functional", &
160 default_r_val=1._dp)
161 CALL section_add_keyword(subsection, keyword)
162 CALL keyword_release(keyword)
163 CALL keyword_create(keyword, __location__, name="OMEGA", &
164 description="Potential parameter in erf(omega*r)/r", &
165 default_r_val=1._dp)
166 CALL section_add_keyword(subsection, keyword)
167 CALL keyword_release(keyword)
168 CALL keyword_create(keyword, __location__, name="LAMBDA", &
169 description="Defines the parameter of the adiabatic curve", &
170 default_r_val=1._dp)
171 CALL section_add_keyword(subsection, keyword)
172 CALL keyword_release(keyword)
173
174 CALL section_add_subsection(section, subsection)
175 CALL section_release(subsection)
176
177 CALL section_create(subsection, __location__, name="BECKE88_LR", &
178 description="Uses the Becke 88 longrange exchange functional", &
179 n_keywords=0, n_subsections=0, repeats=.false., &
180 citations=[becke1988])
181 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
182 description="activates the functional", &
183 lone_keyword_l_val=.true., default_l_val=.false.)
184 CALL section_add_keyword(subsection, keyword)
185 CALL keyword_release(keyword)
186 CALL keyword_create(keyword, __location__, name="scale_x", &
187 description="scales the exchange part of the functional", &
188 default_r_val=1._dp)
189 CALL section_add_keyword(subsection, keyword)
190 CALL keyword_release(keyword)
191 CALL keyword_create(keyword, __location__, name="OMEGA", &
192 description="Potential parameter in erf(omega*r)/r", &
193 default_r_val=1._dp)
194 CALL section_add_keyword(subsection, keyword)
195 CALL keyword_release(keyword)
196
197 CALL section_add_subsection(section, subsection)
198 CALL section_release(subsection)
199
200 CALL section_create(subsection, __location__, name="LYP", &
201 description="Uses the LYP functional", &
202 n_keywords=0, n_subsections=0, repeats=.false., &
203 citations=[lee1988])
204 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
205 description="activates the functional", &
206 lone_keyword_l_val=.true., default_l_val=.false.)
207 CALL section_add_keyword(subsection, keyword)
208 CALL keyword_release(keyword)
209 CALL keyword_create(keyword, __location__, name="scale_c", &
210 description="scales the correlation part of the functional", &
211 default_r_val=1._dp)
212 CALL section_add_keyword(subsection, keyword)
213 CALL keyword_release(keyword)
214 CALL section_add_subsection(section, subsection)
215 CALL section_release(subsection)
216
217 CALL section_create(subsection, __location__, name="PADE", &
218 description="Uses the PADE functional", &
219 n_keywords=0, n_subsections=0, repeats=.false., &
220 citations=[goedecker1996])
221 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
222 description="activates the functional", &
223 lone_keyword_l_val=.true., default_l_val=.false.)
224 CALL section_add_keyword(subsection, keyword)
225 CALL keyword_release(keyword)
226 CALL section_add_subsection(section, subsection)
227 CALL section_release(subsection)
228
229 CALL section_create(subsection, __location__, name="HCTH", &
230 description="Uses the HCTH class of functionals", &
231 n_keywords=0, n_subsections=0, repeats=.false.)
232 CALL keyword_create(keyword, __location__, name="PARAMETER_SET", &
233 description="Which version of the parameters should be used", &
234 usage="PARAMETER_SET 407", &
235 enum_c_vals=["93 ", "120", "147", "407", "HLE"], &
236 enum_i_vals=[93, 120, 147, 407, 408], &
237 default_i_val=120)
238 CALL section_add_keyword(subsection, keyword)
239 CALL keyword_release(keyword)
240 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
241 description="activates the functional", &
242 lone_keyword_l_val=.true., default_l_val=.false.)
243 CALL section_add_keyword(subsection, keyword)
244 CALL keyword_release(keyword)
245 CALL section_add_subsection(section, subsection)
246 CALL section_release(subsection)
247
248 CALL section_create(subsection, __location__, name="OPTX", &
249 description="Uses the OPTX functional", &
250 n_keywords=0, n_subsections=0, repeats=.false.)
251 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
252 description="activates the functional", &
253 lone_keyword_l_val=.true., default_l_val=.false.)
254 CALL section_add_keyword(subsection, keyword)
255 CALL keyword_release(keyword)
256 CALL keyword_create(keyword, __location__, name="scale_x", &
257 description="scales the exchange part of the functional", &
258 default_r_val=1._dp)
259 CALL section_add_keyword(subsection, keyword)
260 CALL keyword_release(keyword)
261 CALL keyword_create(keyword, __location__, name="a1", &
262 description="OPTX a1 coefficient", &
263 default_r_val=1.05151_dp)
264 CALL section_add_keyword(subsection, keyword)
265 CALL keyword_release(keyword)
266 CALL keyword_create(keyword, __location__, name="a2", &
267 description="OPTX a2 coefficient", &
268 default_r_val=1.43169_dp)
269 CALL section_add_keyword(subsection, keyword)
270 CALL keyword_release(keyword)
271 CALL keyword_create(keyword, __location__, name="gamma", &
272 description="OPTX gamma coefficient", &
273 default_r_val=0.006_dp)
274 CALL section_add_keyword(subsection, keyword)
275 CALL keyword_release(keyword)
276 CALL section_add_subsection(section, subsection)
277 CALL section_release(subsection)
278
279 CALL libxc_add_sections(section)
280
281 CALL section_create(subsection, __location__, name="CS1", &
282 description="Uses the CS1 functional", &
283 n_keywords=0, n_subsections=0, repeats=.false.)
284 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
285 description="activates the functional", &
286 lone_keyword_l_val=.true., default_l_val=.false.)
287 CALL section_add_keyword(subsection, keyword)
288 CALL keyword_release(keyword)
289 CALL section_add_subsection(section, subsection)
290 CALL section_release(subsection)
291
292 CALL section_create(subsection, __location__, name="XGGA", &
293 description="Uses one of the XGGA functionals (optimized versions of "// &
294 "some of these functionals might be available outside this section).", &
295 n_keywords=1, n_subsections=0, repeats=.false.)
296 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
297 description="activates the functional", &
298 lone_keyword_l_val=.true., default_l_val=.false.)
299 CALL section_add_keyword(subsection, keyword)
300 CALL keyword_release(keyword)
301 CALL keyword_create(keyword, __location__, name="FUNCTIONAL", &
302 description="Which one of the XGGA functionals should be used", &
303 usage="FUNCTIONAL PW86X", &
304 enum_c_vals=[ &
305 "BECKE88X", &
306 "PW86X ", &
307 "PW91X ", &
308 "PBEX ", &
309 "REV_PBEX", &
310 "OPTX ", &
311 "EV93 "], &
313 default_i_val=xgga_b88x)
314 CALL section_add_keyword(subsection, keyword)
315 CALL keyword_release(keyword)
316 CALL section_add_subsection(section, subsection)
317 CALL section_release(subsection)
318
319 CALL section_create(subsection, __location__, name="KE_GGA", &
320 description="Uses one of the KE_GGA functionals (optimized versions of "// &
321 "some of these functionals might be available outside this section). "// &
322 "These functionals are needed for the computation of the kinetic "// &
323 "energy in the Kim-Gordon method.", &
324 n_keywords=1, n_subsections=0, repeats=.false.)
325 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
326 description="activates the functional", &
327 lone_keyword_l_val=.true., default_l_val=.false.)
328 CALL section_add_keyword(subsection, keyword)
329 CALL keyword_release(keyword)
330 CALL keyword_create(keyword, __location__, name="FUNCTIONAL", &
331 description="Which one of the KE_GGA functionals should be used", &
332 usage="FUNCTIONAL (OL1|OL2|LLP|PW86|PW91|LC|T92|PBE)", &
333 enum_c_vals=["OL1 ", "OL2 ", "LLP ", "PW86", "PW91", "LC ", "T92 ", "PBE "], &
334 enum_i_vals=[ke_ol1, ke_ol2, ke_llp, ke_pw86, ke_pw91, ke_lc, ke_t92, ke_pbe], &
335 enum_desc=s2a("Uses first Ou-Yang and Levy functional, currently not producing correct results", &
336 "Uses second Ou-Yang and Levy functional, currently not producing correct results", &
337 "Uses Lee, Lee, and Parr functional", &
338 "Uses Perdew and Wang's 1986 functional", &
339 "Uses Perdew and Wang's 1991 functional", &
340 "Uses Lembarki and Chermette functional", &
341 "Uses Thakkar functional", &
342 "Uses the 1996 functional of Perdew, Burke and Ernzerhof"), &
343 default_i_val=ke_llp)
344 CALL section_add_keyword(subsection, keyword)
345 CALL keyword_release(keyword)
346 CALL section_add_subsection(section, subsection)
347 CALL section_release(subsection)
348
349 CALL section_create(subsection, __location__, name="P86C", &
350 description="Uses the P86C functional", &
351 n_keywords=0, n_subsections=0, repeats=.false.)
352 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
353 description="activates the functional", &
354 lone_keyword_l_val=.true., default_l_val=.false.)
355 CALL section_add_keyword(subsection, keyword)
356 CALL keyword_release(keyword)
357 CALL keyword_create(keyword, __location__, name="scale_c", &
358 description="scales the correlation part of the functional", &
359 default_r_val=1._dp)
360 CALL section_add_keyword(subsection, keyword)
361 CALL keyword_release(keyword)
362 CALL section_add_subsection(section, subsection)
363 CALL section_release(subsection)
364
365 CALL section_create(subsection, __location__, name="PW92", &
366 description="Uses the PerdewWang correlation functional.", &
367 n_keywords=1, n_subsections=0, repeats=.false.)
368 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
369 description="activates the functional", &
370 lone_keyword_l_val=.true., default_l_val=.false.)
371 CALL section_add_keyword(subsection, keyword)
372 CALL keyword_release(keyword)
373 CALL keyword_create(keyword, __location__, name="SCALE", &
374 description="Scaling of the energy functional", &
375 default_r_val=1.0_dp)
376 CALL section_add_keyword(subsection, keyword)
377 CALL keyword_release(keyword)
378 CALL keyword_create(keyword, __location__, name="PARAMETRIZATION", &
379 description="Which one of parametrizations should be used", &
380 usage="PARAMETRIZATION DMC", &
381 enum_c_vals=[ &
382 "ORIGINAL", &
383 "DMC ", &
384 "VMC "], &
385 enum_i_vals=[c_pw92, c_pw92dmc, c_pw92vmc], &
386 default_i_val=c_pw92)
387 CALL section_add_keyword(subsection, keyword)
388 CALL keyword_release(keyword)
389 CALL section_add_subsection(section, subsection)
390 CALL section_release(subsection)
391
392 CALL section_create(subsection, __location__, name="PZ81", &
393 description="Uses the PZ functional.", &
394 n_keywords=1, n_subsections=0, repeats=.false., &
395 citations=[perdew1981, ortiz1994])
396 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
397 description="activates the functional", &
398 lone_keyword_l_val=.true., default_l_val=.false.)
399 CALL section_add_keyword(subsection, keyword)
400 CALL keyword_release(keyword)
401 CALL keyword_create(keyword, __location__, name="PARAMETRIZATION", &
402 description="Which one of parametrizations should be used", &
403 usage="PARAMETRIZATION DMC", &
404 enum_c_vals=[ &
405 "ORIGINAL", &
406 "DMC ", &
407 "VMC "], &
408 enum_i_vals=[c_pz, c_pzdmc, c_pzvmc], &
409 default_i_val=pz_orig)
410 CALL section_add_keyword(subsection, keyword)
411 CALL keyword_release(keyword)
412 CALL keyword_create(keyword, __location__, name="scale_c", &
413 description="scales the correlation part of the functional", &
414 default_r_val=1._dp)
415 CALL section_add_keyword(subsection, keyword)
416 CALL keyword_release(keyword)
417 CALL section_add_subsection(section, subsection)
418 CALL section_release(subsection)
419
420 CALL section_create(subsection, __location__, name="TFW", &
421 description="Uses the TFW functional", &
422 n_keywords=0, n_subsections=0, repeats=.false.)
423 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
424 description="activates the functional", &
425 lone_keyword_l_val=.true., default_l_val=.false.)
426 CALL section_add_keyword(subsection, keyword)
427 CALL keyword_release(keyword)
428 CALL section_add_subsection(section, subsection)
429 CALL section_release(subsection)
430
431 CALL section_create(subsection, __location__, name="TF", &
432 description="Uses the TF functional", &
433 n_keywords=0, n_subsections=0, repeats=.false.)
434 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
435 description="activates the functional", &
436 lone_keyword_l_val=.true., default_l_val=.false.)
437 CALL section_add_keyword(subsection, keyword)
438 CALL keyword_release(keyword)
439 CALL section_add_subsection(section, subsection)
440 CALL section_release(subsection)
441
442 CALL section_create(subsection, __location__, name="VWN", &
443 description="Uses the VWN functional", &
444 n_keywords=0, n_subsections=0, repeats=.false., &
445 citations=[vosko1980])
446 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
447 description="activates the functional", &
448 lone_keyword_l_val=.true., default_l_val=.false.)
449 CALL section_add_keyword(subsection, keyword)
450 CALL keyword_release(keyword)
451 CALL keyword_create(keyword, __location__, name="scale_c", &
452 description="scales the correlation part of the functional", &
453 default_r_val=1._dp)
454 CALL section_add_keyword(subsection, keyword)
455 CALL keyword_release(keyword)
456
457 CALL keyword_create(keyword, __location__, name="FUNCTIONAL_TYPE", &
458 description="Which version of the VWN functional should be used", &
459 usage="FUNCTIONAL_TYPE VWN5", &
460 enum_c_vals=s2a("VWN5", "VWN3"), &
461 enum_i_vals=[do_vwn5, do_vwn3], &
462 enum_desc=s2a("This is the recommended (correct) version of the VWN functional", &
463 "This version is the default in Gaussian, but not recommended. "// &
464 "Notice that it is also employed in Gaussian's default version of B3LYP"), &
465 default_i_val=do_vwn5)
466
467 CALL section_add_keyword(subsection, keyword)
468 CALL keyword_release(keyword)
469 CALL section_add_subsection(section, subsection)
470 CALL section_release(subsection)
471
472 CALL section_create(subsection, __location__, name="XALPHA", &
473 description="Uses the XALPHA (SLATER) functional.", &
474 n_keywords=1, n_subsections=0, repeats=.false.)
475 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
476 description="activates the functional", &
477 lone_keyword_l_val=.true., default_l_val=.false.)
478 CALL section_add_keyword(subsection, keyword)
479 CALL keyword_release(keyword)
480 CALL keyword_create(keyword, __location__, name="XA", &
481 description="Value of the xa parameter (this does not change the exponent, "// &
482 "just the mixing)", &
483 usage="XA 0.7", default_r_val=2._dp/3._dp)
484 CALL section_add_keyword(subsection, keyword)
485 CALL keyword_release(keyword)
486 CALL keyword_create(keyword, __location__, name="scale_x", &
487 description="scales the exchange part of the functional", &
488 default_r_val=1._dp)
489 CALL section_add_keyword(subsection, keyword)
490 CALL keyword_release(keyword)
491 CALL section_add_subsection(section, subsection)
492 CALL section_release(subsection)
493
494 CALL section_create(subsection, __location__, name="TPSS", &
495 description="Uses the TPSS functional. Note, that there is no LSD version available. "// &
496 "In such cases, use the LIBXC version instead.", &
497 n_keywords=0, n_subsections=0, repeats=.false., &
498 citations=[tao2003])
499 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
500 description="Activates the functional", &
501 lone_keyword_l_val=.true., default_l_val=.false.)
502 CALL section_add_keyword(subsection, keyword)
503 CALL keyword_release(keyword)
504 CALL keyword_create(keyword, __location__, name="scale_x", &
505 description="scales the exchange part of the functional", &
506 default_r_val=1._dp)
507 CALL section_add_keyword(subsection, keyword)
508 CALL keyword_release(keyword)
509 CALL keyword_create(keyword, __location__, name="scale_c", &
510 description="scales the correlation part of the functional", &
511 default_r_val=1._dp)
512 CALL section_add_keyword(subsection, keyword)
513 CALL keyword_release(keyword)
514 CALL section_add_subsection(section, subsection)
515 CALL section_release(subsection)
516
517 CALL section_create(subsection, __location__, name="PBE", &
518 description="Uses the PBE functional", &
519 n_keywords=0, n_subsections=0, repeats=.false., &
520 citations=[perdew1996, zhang1998, perdew2008])
521 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
522 description="activates the functional", &
523 lone_keyword_l_val=.true., default_l_val=.false.)
524 CALL section_add_keyword(subsection, keyword)
525 CALL keyword_release(keyword)
526 CALL keyword_create(keyword, __location__, name="parametrization", &
527 description="switches between the different "// &
528 "parametrizations of the functional. "// &
529 "Note: Beta parameters used have only 5 significant digits, "// &
530 "as published. For higher precision and program comparison "// &
531 "use the LIBXC library.", &
532 enum_i_vals=[xc_pbe_orig, xc_pbe_rev, xc_pbe_sol], &
533 enum_c_vals=["ORIG ", "revPBE", "PBEsol"], &
534 enum_desc=["original PBE ", &
535 "revised PBE (revPBE) ", &
536 "PBE for solids and surfaces (PBEsol)"], &
537 default_i_val=xc_pbe_orig)
538 CALL section_add_keyword(subsection, keyword)
539 CALL keyword_release(keyword)
540 CALL keyword_create(keyword, __location__, name="scale_x", &
541 description="scales the exchange part of the functional", &
542 default_r_val=1._dp)
543 CALL section_add_keyword(subsection, keyword)
544 CALL keyword_release(keyword)
545 CALL keyword_create(keyword, __location__, name="scale_c", &
546 description="scales the correlation part of the functional", &
547 default_r_val=1._dp)
548 CALL section_add_keyword(subsection, keyword)
549 CALL keyword_release(keyword)
550 CALL section_add_subsection(section, subsection)
551 CALL section_release(subsection)
552
553 CALL section_create(subsection, __location__, name="XWPBE", &
554 description="Uses the short range PBE functional", &
555 n_keywords=0, n_subsections=0, repeats=.false., &
556 citations=[heyd2004])
557 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
558 description="activates the functional", &
559 lone_keyword_l_val=.true., default_l_val=.false.)
560 CALL section_add_keyword(subsection, keyword)
561 CALL keyword_release(keyword)
562 CALL keyword_create(keyword, __location__, name="scale_x", &
563 description="scales the exchange part of the functional", &
564 default_r_val=1._dp)
565 CALL section_add_keyword(subsection, keyword)
566 CALL keyword_release(keyword)
567 CALL keyword_create(keyword, __location__, name="scale_x0", &
568 description="scales the exchange part of the original hole PBE-functional", &
569 default_r_val=0.0_dp)
570 CALL section_add_keyword(subsection, keyword)
571 CALL keyword_release(keyword)
572 CALL keyword_create(keyword, __location__, name="omega", &
573 description="screening parameter", &
574 default_r_val=1._dp)
575 CALL section_add_keyword(subsection, keyword)
576 CALL keyword_release(keyword)
577 CALL section_add_subsection(section, subsection)
578 CALL section_release(subsection)
579
580 CALL section_create(subsection, __location__, name="BECKE97", &
581 description="Uses the Becke 97 exchange correlation functional", &
582 n_keywords=0, n_subsections=0, repeats=.false., &
583 citations=[becke1997, grimme2006])
584 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
585 description="activates the functional", &
586 lone_keyword_l_val=.true., default_l_val=.false.)
587 CALL section_add_keyword(subsection, keyword)
588 CALL keyword_release(keyword)
589 CALL keyword_create(keyword, __location__, name="scale_x", &
590 description="scales the exchange part of the functional, if -1 the default for the given parametrization is used", &
591 default_r_val=-1._dp)
592 CALL section_add_keyword(subsection, keyword)
593 CALL keyword_release(keyword)
594 CALL keyword_create(keyword, __location__, name="scale_c", &
595 description="scales the correlation part of the functional", &
596 default_r_val=1._dp)
597 CALL section_add_keyword(subsection, keyword)
598 CALL keyword_release(keyword)
599 CALL keyword_create(keyword, __location__, name="parametrization", &
600 description="switches between the B97 and Grimme parametrization ", &
602 enum_c_vals=["ORIG ", "B97GRIMME ", "B97_GRIMME", "wB97X-V ", "B97-3c "], &
603 default_i_val=xc_b97_orig)
604 CALL section_add_keyword(subsection, keyword)
605 CALL keyword_release(keyword)
606
607 CALL section_add_subsection(section, subsection)
608 CALL section_release(subsection)
609
610 CALL section_create(subsection, __location__, name="BECKE_ROUSSEL", &
611 description="Becke Roussel exchange hole model. Can be used "// &
612 "as long range correction with a truncated coulomb potential", &
613 n_keywords=0, n_subsections=0, repeats=.false., &
614 citations=[beckeroussel1989, proynov2007])
615 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
616 description="activates the functional", &
617 lone_keyword_l_val=.true., default_l_val=.false.)
618 CALL section_add_keyword(subsection, keyword)
619 CALL keyword_release(keyword)
620 CALL keyword_create(keyword, __location__, name="scale_x", &
621 description="scales the exchange part of the functional", &
622 default_r_val=1._dp)
623 CALL section_add_keyword(subsection, keyword)
624 CALL keyword_release(keyword)
625 CALL keyword_create(keyword, __location__, name="CUTOFF_RADIUS", &
626 description="Defines the cutoff radius for the truncation. "// &
627 "If put to zero, the standard full range potential will be used", &
628 usage="CUTOFF_RADIUS 2.0", default_r_val=0.0_dp)
629 CALL section_add_keyword(subsection, keyword)
630 CALL keyword_release(keyword)
631 CALL keyword_create(keyword, __location__, name="GAMMA", &
632 description="Parameter in the exchange hole. "// &
633 "Usually this is put to 1.0 or 0.8", &
634 usage="GAMMA 0.8", default_r_val=1.0_dp)
635 CALL section_add_keyword(subsection, keyword)
636 CALL keyword_release(keyword)
637 CALL section_add_subsection(section, subsection)
638 CALL section_release(subsection)
639
640 CALL section_create(subsection, __location__, name="LDA_HOLE_T_C_LR", &
641 description="LDA exchange hole model in truncated coulomb potential", &
642 n_keywords=0, n_subsections=0, repeats=.false.)
643 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
644 description="activates the functional", &
645 lone_keyword_l_val=.true., default_l_val=.false.)
646 CALL section_add_keyword(subsection, keyword)
647 CALL keyword_release(keyword)
648 CALL keyword_create(keyword, __location__, name="SCALE_X", &
649 description="scales the exchange part of the functional", &
650 default_r_val=1._dp)
651 CALL section_add_keyword(subsection, keyword)
652 CALL keyword_release(keyword)
653 CALL keyword_create(keyword, __location__, name="CUTOFF_RADIUS", &
654 description="Defines cutoff for lower integration boundary", &
655 default_r_val=0.0_dp, unit_str="angstrom")
656 CALL section_add_keyword(subsection, keyword)
657 CALL keyword_release(keyword)
658 CALL section_add_subsection(section, subsection)
659 CALL section_release(subsection)
660
661 CALL section_create(subsection, __location__, name="PBE_HOLE_T_C_LR", &
662 description="PBE exchange hole model in trucanted coulomb potential", &
663 n_keywords=0, n_subsections=0, repeats=.false.)
664 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
665 description="activates the functional", &
666 lone_keyword_l_val=.true., default_l_val=.false.)
667 CALL section_add_keyword(subsection, keyword)
668 CALL keyword_release(keyword)
669 CALL keyword_create(keyword, __location__, name="SCALE_X", &
670 description="scales the exchange part of the functional", &
671 default_r_val=1._dp)
672 CALL section_add_keyword(subsection, keyword)
673 CALL keyword_release(keyword)
674 CALL keyword_create(keyword, __location__, name="CUTOFF_RADIUS", &
675 description="Defines cutoff for lower integration boundary", &
676 default_r_val=1.0_dp, unit_str="angstrom")
677 CALL section_add_keyword(subsection, keyword)
678 CALL keyword_release(keyword)
679 CALL section_add_subsection(section, subsection)
680 CALL section_release(subsection)
681
682 CALL section_create(subsection, __location__, name="GV09", &
683 description="Combination of three different exchange hole models", &
684 n_keywords=0, n_subsections=0, repeats=.false.)
685 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
686 description="activates the functional", &
687 lone_keyword_l_val=.true., default_l_val=.false.)
688 CALL section_add_keyword(subsection, keyword)
689 CALL keyword_release(keyword)
690 CALL keyword_create(keyword, __location__, name="SCALE_X", &
691 description="scales the exchange part of the functional", &
692 default_r_val=1._dp)
693 CALL section_add_keyword(subsection, keyword)
694 CALL keyword_release(keyword)
695 CALL keyword_create(keyword, __location__, name="CUTOFF_RADIUS", &
696 description="Defines cutoff for lower integration boundary", &
697 default_r_val=0.0_dp, unit_str="angstrom")
698 CALL section_add_keyword(subsection, keyword)
699 CALL keyword_release(keyword)
700 CALL keyword_create(keyword, __location__, name="GAMMA", &
701 description="Parameter for Becke Roussel hole", &
702 default_r_val=1.0_dp)
703 CALL section_add_keyword(subsection, keyword)
704 CALL keyword_release(keyword)
705 CALL section_add_subsection(section, subsection)
706 CALL section_release(subsection)
707
708 CALL section_create(subsection, __location__, name="BEEF", & !rk: BEEF Exchange
709 description="Uses the BEEFvdW exchange functional", &
710 n_keywords=0, n_subsections=0, repeats=.false., &
711 citations=[wellendorff2012])
712 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
713 description="activates the functional", &
714 lone_keyword_l_val=.true., default_l_val=.false.)
715 CALL section_add_keyword(subsection, keyword)
716 CALL keyword_release(keyword)
717 CALL keyword_create(keyword, __location__, name="scale_x", &
718 description="scales the exchange part of the functional", &
719 default_r_val=1._dp)
720 CALL section_add_keyword(subsection, keyword)
721 CALL keyword_release(keyword)
722 CALL section_add_subsection(section, subsection)
723 CALL section_release(subsection)
724
725 END SUBROUTINE create_xc_fun_section
726
727! **************************************************************************************************
728!> \brief creates the structure of the section needed to select an xc potential
729!> \param section the section that will be created
730!> \author thomas chassaing
731! **************************************************************************************************
732 SUBROUTINE create_xc_potential_section(section)
733 TYPE(section_type), POINTER :: section
734
735 TYPE(keyword_type), POINTER :: keyword
736 TYPE(section_type), POINTER :: subsection
737
738 cpassert(.NOT. ASSOCIATED(section))
739 CALL section_create(section, __location__, name="xc_potential", &
740 description="The xc potential to use (CAREFUL: xc potential here refers "// &
741 "to potentials that are not derived from an xc functional, but rather are "// &
742 "modelled directly. Therefore there is no consistent xc energy available. "// &
743 "To still get an energy expression, see ENERGY below", &
744 n_keywords=1, n_subsections=1, repeats=.false.)
745
746 NULLIFY (subsection, keyword)
747 CALL section_create(subsection, __location__, name="SAOP", &
748 description="Uses the SAOP potential", &
749 n_keywords=3, n_subsections=0, repeats=.true.)
750 CALL keyword_create(keyword, __location__, name="ALPHA", &
751 description="Value of the alpha parameter (default = 1.19).", &
752 usage="ALPHA 1.19", default_r_val=1.19_dp)
753 CALL section_add_keyword(subsection, keyword)
754 CALL keyword_release(keyword)
755 CALL keyword_create(keyword, __location__, name="BETA", &
756 description="Value of the beta parameter (default = 0.01).", &
757 usage="BETA 0.01", default_r_val=0.01_dp)
758 CALL section_add_keyword(subsection, keyword)
759 CALL keyword_release(keyword)
760 CALL keyword_create(keyword, __location__, name="K_RHO", &
761 description="Value of the K_rho parameter (default = 0.42).", &
762 usage="K_RHO 0.42", default_r_val=0.42_dp)
763 CALL section_add_keyword(subsection, keyword)
764 CALL keyword_release(keyword)
765 CALL section_add_subsection(section, subsection)
766 CALL section_release(subsection)
767
768 CALL keyword_create(keyword, __location__, name="ENERGY", &
769 description="How to determine the total energy.", &
770 usage="ENERGY [NONE,XC_FUNCTIONAL,SUM_EIGENVALUES", &
771 enum_c_vals=s2a("NONE", "XC_FUNCTIONAL", "FUNCTIONAL", "SUM_EIGENVALUES", "SOE"), &
772 enum_i_vals=[xc_pot_energy_none, &
777 default_i_val=xc_pot_energy_none)
778 CALL section_add_keyword(section, keyword)
779 CALL keyword_release(keyword)
780
781 END SUBROUTINE create_xc_potential_section
782
783! **************************************************************************************************
784!> \brief creates the structure of the section needed to select an xc kernel
785!> \param section the section that will be created
786!> \author JGH
787! **************************************************************************************************
788 SUBROUTINE create_xc_kernel_section(section)
789 TYPE(section_type), POINTER :: section
790
791 TYPE(keyword_type), POINTER :: keyword
792
793 cpassert(.NOT. ASSOCIATED(section))
794 CALL section_create(section, __location__, name="XC_KERNEL", &
795 description="The xc kernel to use (CAREFUL: xc kernel here refers "// &
796 "to kernels that are not derived from an xc functional, but rather are "// &
797 "modelled directly. This kernel will be used in a TDDFPT calculation. "// &
798 "Cannot be combined with XC_FUNCTIONAL or XC_POTENTIAL.", &
799 n_keywords=1, n_subsections=1, repeats=.false.)
800
801 NULLIFY (keyword)
802 CALL keyword_create( &
803 keyword, __location__, name="_SECTION_PARAMETERS_", &
804 description="Selection of kernel functionals.", &
805 usage="&XC_KERNEL LDAfxc", &
806 enum_c_vals=s2a("PADEfxc", "LDAfxc", "GGAfxc", "NONE"), &
808 enum_desc=s2a("Fxc based on LDA PADE approximation", &
809 "Fxc based on LDA functionals", &
810 "Fxc model from fit to PBE functional", &
811 "NONE"), &
812 default_i_val=fxc_none, &
813 lone_keyword_i_val=fxc_none)
814 CALL section_add_keyword(section, keyword)
815 CALL keyword_release(keyword)
816
817 CALL keyword_create(keyword, __location__, name="PARAMETER", &
818 description="List of parameters specific to the kernel function", &
819 usage="PARAMETER <REAL> .. <REAL>", &
820 type_of_var=real_t, n_var=-1)
821 CALL section_add_keyword(section, keyword)
822 CALL keyword_release(keyword)
823 CALL keyword_create(keyword, __location__, name="GAMMA", &
824 description="B97 GAMMA parameters [gx, gab, gaa]", &
825 usage="GAMMA <REAL> <REAL> <REAL>", &
826 default_r_vals=[0.004_dp, 0.006_dp, 0.2_dp], &
827 type_of_var=real_t, n_var=3)
828 CALL section_add_keyword(section, keyword)
829 CALL keyword_release(keyword)
830 CALL keyword_create(keyword, __location__, name="C_XAA", &
831 description="B97 C parameters for exchange", &
832 usage="C_XAA <REAL> <REAL> <REAL>", &
833 default_r_vals=[1.0_dp, 0.63_dp, 0.94_dp], &
834 type_of_var=real_t, n_var=3)
835 CALL section_add_keyword(section, keyword)
836 CALL keyword_release(keyword)
837 CALL keyword_create(keyword, __location__, name="C_CAB", &
838 description="B97 C parameters for same spin correlation.", &
839 usage="C_CAB <REAL> <REAL> <REAL>", &
840 default_r_vals=[1.0_dp, 0.75_dp, -4.60_dp], &
841 type_of_var=real_t, n_var=3)
842 CALL section_add_keyword(section, keyword)
843 CALL keyword_release(keyword)
844 CALL keyword_create(keyword, __location__, name="C_CAA", &
845 description="B97 C parameters for opposite spin correlation.", &
846 usage="C_CAA <REAL> <REAL> <REAL>", &
847 default_r_vals=[0.17_dp, 2.35_dp, -2.55_dp], &
848 type_of_var=real_t, n_var=3)
849 CALL section_add_keyword(section, keyword)
850 CALL keyword_release(keyword)
851 CALL keyword_create(keyword, __location__, name="SCALE_X", &
852 description="Scaling parameter for exchange kernel.", &
853 usage="SCALE_X 0.2", default_r_val=1.0_dp)
854 CALL section_add_keyword(section, keyword)
855 CALL keyword_release(keyword)
856 CALL keyword_create(keyword, __location__, name="SCALE_C", &
857 description="Scaling parameter for correlation kernel.", &
858 usage="SCALE_C 0.2", default_r_val=1.0_dp)
859 CALL section_add_keyword(section, keyword)
860 CALL keyword_release(keyword)
861
862 END SUBROUTINE create_xc_kernel_section
863
864! **************************************************************************************************
865!> \brief creates the structure of the section needed to select an hfx kernel
866!> \param section the section that will be created
867!> \author JGH
868! **************************************************************************************************
869 SUBROUTINE create_hfx_kernel_section(section)
870 TYPE(section_type), POINTER :: section
871
872 TYPE(keyword_type), POINTER :: keyword
873 TYPE(section_type), POINTER :: subsection
874
875 cpassert(.NOT. ASSOCIATED(section))
876 CALL section_create(section, __location__, name="HFX_KERNEL", &
877 description="The hfx kernel to use. Cannot be combined with HF section.", &
878 n_keywords=1, n_subsections=2, repeats=.false.)
879
880 NULLIFY (subsection, keyword)
881 CALL keyword_create(keyword, __location__, name="DO_HFXSR", &
882 description="Switch to use the HFXSR (short range) kernel.", &
883 usage="DO_HFXSR T/F", default_l_val=.false., &
884 lone_keyword_l_val=.true.)
885 CALL section_add_keyword(section, keyword)
886 CALL keyword_release(keyword)
887 NULLIFY (subsection, keyword)
888 CALL keyword_create(keyword, __location__, name="HFXSR_PRIMBAS", &
889 description="Default number of primitives in ADMM basis in HFXSR. "// &
890 "0 indicates the use of a contracted minimal basis. ", &
891 usage="HFXSR_PRIMBAS 3", default_i_val=0)
892 CALL section_add_keyword(section, keyword)
893 CALL keyword_release(keyword)
894
895 CALL create_hfx_section(subsection)
896 CALL section_add_subsection(section, subsection)
897 CALL section_release(subsection)
898
899 CALL section_create(subsection, __location__, name="HFXLR", &
900 description="Uses the HFXLR (long range) kernel", &
901 n_keywords=2, n_subsections=0, repeats=.false.)
902 CALL keyword_create(keyword, __location__, name="RCUT", &
903 description="Value of lower range cutoff of interaction [Bohr]", &
904 usage="RCUT 5.00", default_r_val=6.00_dp, unit_str="bohr")
905 CALL section_add_keyword(subsection, keyword)
906 CALL keyword_release(keyword)
907 CALL keyword_create(keyword, __location__, name="SCALE", &
908 description="Scaling parameter for HFX kernel.", &
909 usage="SCALE 0.25", default_r_val=1.00_dp)
910 CALL section_add_keyword(subsection, keyword)
911 CALL keyword_release(keyword)
912 CALL section_add_subsection(section, subsection)
913 CALL section_release(subsection)
914
915 END SUBROUTINE create_hfx_kernel_section
916! **************************************************************************************************
917!> \brief creates the structure of the section needed for vdW potentials
918!> \param section the section that will be created
919!> \author jgh
920! **************************************************************************************************
921 SUBROUTINE create_vdw_potential_section(section)
922 TYPE(section_type), POINTER :: section
923
924 TYPE(keyword_type), POINTER :: keyword
925 TYPE(section_type), POINTER :: newsection, print_key, subsection
926
927 cpassert(.NOT. ASSOCIATED(section))
928 CALL section_create(section, __location__, name="vdw_potential", &
929 description="This section combines all possible additional dispersion "// &
930 "corrections to the normal XC functionals. This can be more functionals "// &
931 "or simple empirical pair potentials. ", &
932 citations=[grimme2006, tran2013], &
933 n_keywords=1, n_subsections=1, repeats=.false.)
934
935 NULLIFY (subsection, keyword)
936 CALL keyword_create(keyword, __location__, name="POTENTIAL_TYPE", &
937 variants=s2a("DISPERSION_FUNCTIONAL"), &
938 description="Type of dispersion/vdW functional or potential to use", &
939 usage="POTENTIAL_TYPE (NONE|PAIR_POTENTIAL|NON_LOCAL)", &
940 enum_c_vals=s2a("NONE", "PAIR_POTENTIAL", "NON_LOCAL"), &
942 enum_desc=s2a("No dispersion/van der Waals functional", &
943 "Pair potential van der Waals density functional", &
944 "Nonlocal van der Waals density functional"), &
945 default_i_val=xc_vdw_fun_none)
946 CALL section_add_keyword(section, keyword)
947 CALL keyword_release(keyword)
948
949 CALL section_create(subsection, __location__, name="PAIR_POTENTIAL", &
950 description="Information on the pair potential to calculate dispersion", &
951 n_keywords=5, n_subsections=0, repeats=.true.)
952 CALL keyword_create(keyword, __location__, name="R_CUTOFF", &
953 variants=s2a("D3_CUTOFF", "D4_3B_CUTOFF"), &
954 description="Range of potential. The cutoff will be 2 times this value. "// &
955 "In the case of D4 it will be used for the 3-body term", &
956 usage="R_CUTOFF 20.0", default_r_val=20.0_dp, &
957 unit_str="angstrom")
958 CALL section_add_keyword(subsection, keyword)
959 CALL keyword_release(keyword)
960 CALL keyword_create(keyword, __location__, name="D4_CUTOFF", &
961 description="Range of potential. The cutoff will be 2 times this value. "// &
962 "Only used for the 2-body term of D4", &
963 usage="D4_CUTOFF 30.0", default_r_val=20.0_dp, &
964 unit_str="angstrom")
965 CALL section_add_keyword(subsection, keyword)
966 CALL keyword_release(keyword)
967 CALL keyword_create(keyword, __location__, name="D4_CN_CUTOFF", &
968 description="Coordination number cutoff for D4", &
969 usage="D4_CN_CUTOFF 30.0", default_r_val=-1.0_dp, &
970 unit_str="angstrom")
971 CALL section_add_keyword(subsection, keyword)
972 CALL keyword_release(keyword)
973 CALL keyword_create(keyword, __location__, name="TYPE", &
974 description="Type of potential", &
976 usage="TYPE (DFTD2|DFTD3|DFTD3(BJ)|DFTD4)", &
977 enum_c_vals=s2a("DFTD2", "DFTD3", "DFTD3(BJ)", "DFTD4"), &
978 enum_i_vals=[vdw_pairpot_dftd2, vdw_pairpot_dftd3, &
980 enum_desc=s2a("Grimme D2 method", &
981 "Grimme D3 method (zero damping)", &
982 "Grimme D3 method (Becke-Johnson damping)", &
983 "Grimme D4 method"), &
984 default_i_val=vdw_pairpot_dftd3)
985 CALL section_add_keyword(subsection, keyword)
986 CALL keyword_release(keyword)
987 CALL keyword_create(keyword, __location__, name="PARAMETER_FILE_NAME", &
988 description="Name of the parameter file, may include a path (not used for D4)", &
989 usage="PARAMETER_FILE_NAME <FILENAME>", &
990 default_lc_val="dftd3.dat")
991 CALL section_add_keyword(subsection, keyword)
992 CALL keyword_release(keyword)
993 CALL keyword_create(keyword, __location__, name="REFERENCE_FUNCTIONAL", &
994 description="Use parameters for this specific density functional. "// &
995 "For available D3 and D3(BJ) parameters see: "// &
996 "<https://www.chemie.uni-bonn.de/grimme/de/software/dft-d3>. "// &
997 "For the defintion of D4 parameters see: "// &
998 "<https://github.com/dftd4/dftd4>.", &
999 usage="REFERENCE_FUNCTIONAL <functional>", &
1000 type_of_var=char_t)
1001 CALL section_add_keyword(subsection, keyword)
1002 CALL keyword_release(keyword)
1003 CALL keyword_create(keyword, __location__, name="D4_REFERENCE_CODE", &
1004 description="Calculate D4 energy using external library.", &
1005 usage="D4_REFERENCE_CODE", default_l_val=.true., &
1006 lone_keyword_l_val=.true.)
1007 CALL section_add_keyword(subsection, keyword)
1008 CALL keyword_release(keyword)
1009 CALL keyword_create(keyword, __location__, name="D4_DEBUG", &
1010 description="Debug output for D4 method using reference code.", &
1011 usage="D4_DEBUG", default_l_val=.false., &
1012 lone_keyword_l_val=.true.)
1013 CALL section_add_keyword(subsection, keyword)
1014 CALL keyword_release(keyword)
1015 CALL keyword_create(keyword, __location__, name="D2_SCALING", &
1016 variants=["SCALING"], &
1017 description="XC Functional dependent scaling parameter. If omitted, CP2K attempts"// &
1018 " to guess the xc functional that is in use and sets the associated scaling parameter.", &
1019 usage="SCALING 0.2", default_r_val=0._dp)
1020 CALL section_add_keyword(subsection, keyword)
1021 CALL keyword_release(keyword)
1022 CALL keyword_create(keyword, __location__, name="D2_EXP_PRE", &
1023 variants=["EXP_PRE"], &
1024 description="Prefactor in exponential damping factor (DFT-D2 potential)", &
1025 usage="D2_EXP_PRE 20.", default_r_val=20._dp)
1026 CALL section_add_keyword(subsection, keyword)
1027 CALL keyword_release(keyword)
1028 CALL keyword_create(keyword, __location__, name="EPS_CN", &
1029 description="Cutoff value for coordination number function (DFT-D3 method)", &
1030 usage="EPS_CN 1.e-6_dp", default_r_val=1.e-6_dp)
1031 CALL section_add_keyword(subsection, keyword)
1032 CALL keyword_release(keyword)
1033 CALL keyword_create(keyword, __location__, name="D3_SCALING", &
1034 description="XC Functional dependent scaling parameters (s6,sr6,s8) for the DFT-D3 method."// &
1035 " If omitted, CP2K attempts"// &
1036 " to guess the xc functional from REFERENCE_FUNCTIONAL and sets the associated scaling parameter.", &
1037 usage="D3_SCALING 1.0 1.0 1.0", n_var=3, &
1038 default_r_vals=[0.0_dp, 0.0_dp, 0.0_dp])
1039 CALL section_add_keyword(subsection, keyword)
1040 CALL keyword_release(keyword)
1041 CALL keyword_create(keyword, __location__, name="D3BJ_SCALING", &
1042 description="XC Functional dependent scaling parameters (s6,a1,s8,a2) for the DFT-D3(BJ) method."// &
1043 " If omitted, CP2K attempts"// &
1044 " to guess the xc functional from REFERENCE_FUNCTIONAL and sets the associated scaling parameter.", &
1045 usage="D3BJ_SCALING 1.0 1.0 1.0 1.0", n_var=4, &
1046 default_r_vals=[0.0_dp, 0.0_dp, 0.0_dp, 0.0_dp])
1047 CALL section_add_keyword(subsection, keyword)
1048 CALL keyword_release(keyword)
1049 CALL keyword_create(keyword, __location__, name="D4_SCALING", &
1050 description="XC Functional dependent scaling parameters (s6,a1,s8,a2) for the DFT-D4 method."// &
1051 " If omitted, CP2K attempts"// &
1052 " to guess the xc functional from REFERENCE_FUNCTIONAL and sets the associated scaling parameter.", &
1053 usage="D4_SCALING 1.0 1.0 1.0 1.0", n_var=4, &
1054 default_r_vals=[0.0_dp, 0.0_dp, 0.0_dp, 0.0_dp])
1055 CALL section_add_keyword(subsection, keyword)
1056 CALL keyword_release(keyword)
1057 CALL keyword_create(keyword, __location__, name="CALCULATE_C9_TERM", &
1058 description="Calculate C9 terms in DFT-D3 model", &
1059 usage="CALCULATE_C9_TERM", default_l_val=.false., &
1060 lone_keyword_l_val=.true.)
1061 CALL section_add_keyword(subsection, keyword)
1062 CALL keyword_release(keyword)
1063 CALL keyword_create(keyword, __location__, name="REFERENCE_C9_TERM", &
1064 description="Calculate C9 terms in DFT-D3 model using reference coordination numbers", &
1065 usage="REFERENCE_C9_TERM", default_l_val=.false., &
1066 lone_keyword_l_val=.true.)
1067 CALL section_add_keyword(subsection, keyword)
1068 CALL keyword_release(keyword)
1069 CALL keyword_create(keyword, __location__, name="FACTOR_S9_TERM", &
1070 description="S9 prefactor of the many-body term in the DFT-D4 method.", &
1071 usage="FACTOR_S9_TERM 1.e-0", default_r_val=1.00_dp)
1072 CALL section_add_keyword(subsection, keyword)
1073 CALL keyword_release(keyword)
1074 CALL keyword_create(keyword, __location__, name="LONG_RANGE_CORRECTION", &
1075 description="Calculate a long range correction to the DFT-D3 model."// &
1076 " WARNING: Use with care! Only for isotropic dense systems.", &
1077 usage="LONG_RANGE_CORRECTION", default_l_val=.false., &
1078 lone_keyword_l_val=.true.)
1079 CALL section_add_keyword(subsection, keyword)
1080 CALL keyword_release(keyword)
1081 CALL keyword_create(keyword, __location__, name="SHORT_RANGE_CORRECTION", &
1082 description="Calculate a short-range bond correction to the DFT-D3 model", &
1083 usage="SHORT_RANGE_CORRECTION", default_l_val=.false., &
1084 lone_keyword_l_val=.true.)
1085 CALL section_add_keyword(subsection, keyword)
1086 CALL keyword_release(keyword)
1087 CALL keyword_create(keyword, __location__, name="SHORT_RANGE_CORRECTION_PARAMETERS", &
1088 description="Parameters for the short-range bond correction to the DFT-D3 model. "// &
1089 "s*(za*zb)^t1*EXP(-g*dr*r0ab^t2), parameters: s, g, t1, t2 "// &
1090 "Defaults: s=0.08, g=10.0, t1=0.5, t2=-1.0 ", &
1091 usage="SHORT_RANGE_CORRECTION_PARAMETERS", default_r_vals=[0.08_dp, 10.0_dp, 0.5_dp, -1.0_dp], &
1092 n_var=4, type_of_var=real_t)
1093 CALL section_add_keyword(subsection, keyword)
1094 CALL keyword_release(keyword)
1095 ! KG molecular corrections
1096 CALL keyword_create(keyword, __location__, name="MOLECULE_CORRECTION", &
1097 description="Calculate a intermolecular correction to the DFT-D3 model", &
1098 usage="MOLECULE_CORRECTION", default_l_val=.false., &
1099 lone_keyword_l_val=.true.)
1100 CALL section_add_keyword(subsection, keyword)
1101 CALL keyword_release(keyword)
1102 CALL keyword_create(keyword, __location__, name="MOLECULE_CORRECTION_C8", &
1103 description="Calculate a intermolecular correction to the C8 term in the DFT-D3 model", &
1104 usage="MOLECULE_CORRECTION_C8 1.0 ", default_r_val=0.0_dp)
1105 CALL section_add_keyword(subsection, keyword)
1106 CALL keyword_release(keyword)
1107 CALL keyword_create(keyword, __location__, name="VERBOSE_OUTPUT", &
1108 description="Extensive output for the DFT-D2 and DFT-D3 models."// &
1109 " Needs PRINT_DFTD section to be specified.", &
1110 usage="VERBOSE_OUTPUT", default_l_val=.false., &
1111 lone_keyword_l_val=.true.)
1112 CALL section_add_keyword(subsection, keyword)
1113 CALL keyword_release(keyword)
1114
1115 ! Set coordination numbers by atom numbers
1116 CALL keyword_create(keyword, __location__, name="D3_EXCLUDE_KIND", &
1117 description="Specifies the atomic kinds excluded in the DFT-D3 calculation.", &
1118 usage="D3_EXCLUDE_KIND kind1 kind2 ... ", repeats=.false., &
1119 n_var=-1, type_of_var=integer_t)
1120 CALL section_add_keyword(subsection, keyword)
1121 CALL keyword_release(keyword)
1122
1123 ! Ignore selected pair interactins
1124 CALL keyword_create(keyword, __location__, name="D3_EXCLUDE_KIND_PAIR", &
1125 description="Specifies the atomic kinds for interactions excluded from the DFT-D3 calculation.", &
1126 usage="D3_EXCLUDE_KIND_PAIR kind1 kind2 ", repeats=.true., &
1127 n_var=2, type_of_var=integer_t)
1128 CALL section_add_keyword(subsection, keyword)
1129 CALL keyword_release(keyword)
1130
1131 ! Set coordination numbers by atom kinds
1132 CALL keyword_create(keyword, __location__, name="KIND_COORDINATION_NUMBERS", &
1133 description="Specifies the coordination number for a kind for the C9 term in DFT-D3.", &
1134 usage="KIND_COORDINATION_NUMBERS CN kind ", repeats=.true., &
1135 n_var=-1, type_of_var=char_t)
1136 CALL section_add_keyword(subsection, keyword)
1137 CALL keyword_release(keyword)
1138 ! Set coordination numbers by atom numbers
1139 CALL keyword_create(keyword, __location__, name="ATOM_COORDINATION_NUMBERS", &
1140 description="Specifies the coordination number of a set of atoms for the C9 term in DFT-D3.", &
1141 usage="ATOM_COORDINATION_NUMBERS CN atom1 atom2 ... ", repeats=.true., &
1142 n_var=-1, type_of_var=char_t)
1143 CALL section_add_keyword(subsection, keyword)
1144 CALL keyword_release(keyword)
1145
1146 ! parameter specification atom by atom
1147 CALL keyword_create(keyword, __location__, name="ATOMPARM", &
1148 description="Specifies parameters for atom types (in atomic units). If "// &
1149 "not provided default parameters are used (DFT-D2).", &
1150 usage="ATOMPARM <ELEMENT> <C6_parameter> <vdw_radii>", &
1151 repeats=.true., n_var=-1, type_of_var=char_t)
1152 CALL section_add_keyword(subsection, keyword)
1153 CALL keyword_release(keyword)
1154
1155 NULLIFY (print_key)
1156 CALL cp_print_key_section_create(print_key, __location__, "PRINT_DFTD", &
1157 description="Controls the printing of some info about DFTD contributions", &
1158 print_level=high_print_level, add_last=add_last_numeric, filename="")
1159 CALL section_add_subsection(subsection, print_key)
1160 CALL section_release(print_key)
1161
1162 NULLIFY (newsection)
1163 CALL create_eeq_control_section(newsection)
1164 CALL section_add_subsection(subsection, newsection)
1165 CALL section_release(newsection)
1166
1167 CALL section_add_subsection(section, subsection)
1168 CALL section_release(subsection)
1169
1170 ! nonlocal section
1171 NULLIFY (subsection, keyword)
1172 CALL section_create(subsection, __location__, name="NON_LOCAL", &
1173 description="Information on the non local part of dispersion functionals. "// &
1174 "Correct functionals require a corresponding setting of XC_FUNCTIONAL.", &
1175 n_keywords=0, n_subsections=0, repeats=.true.)
1176
1177 CALL keyword_create(keyword, __location__, name="TYPE", &
1178 description="Type of functional (the corresponding kernel data file should be selected). "// &
1179 "Allows for common forms such as vdW-DF, vdW-DF2, optB88-vdW, rVV10.", &
1180 usage="TYPE DRSLL", &
1181 enum_c_vals=s2a("DRSLL", "LMKLL", "RVV10"), &
1182 enum_i_vals=[vdw_nl_drsll, vdw_nl_lmkll, vdw_nl_rvv10], &
1183 enum_desc=s2a("Dion-Rydberg-Schroeder-Langreth-Lundqvist nonlocal van der Waals density functional", &
1184 "Lee-Murray-Kong-Lundqvist-Langreth nonlocal van der Waals density functional", &
1185 "Revised Vydrov-van Voorhis nonlocal van der Waals density functional"), &
1186 citations=[tran2013], &
1187 default_i_val=vdw_nl_drsll)
1188 CALL section_add_keyword(subsection, keyword)
1189 CALL keyword_release(keyword)
1190 CALL keyword_create(keyword, __location__, name="VERBOSE_OUTPUT", &
1191 description="Extensive output for non local functionals", &
1192 usage="VERBOSE_OUTPUT", default_l_val=.false., &
1193 lone_keyword_l_val=.true.)
1194 CALL section_add_keyword(subsection, keyword)
1195 CALL keyword_release(keyword)
1196 CALL keyword_create(keyword, __location__, name="KERNEL_FILE_NAME", &
1197 description="Name of the kernel data file, may include a path. "// &
1198 "vdW_kernel_table.dat is for DRSLL and LMKLL and "// &
1199 "rVV10_kernel_table.dat is for rVV10.", &
1200 usage="KERNEL_FILE_NAME <FILENAME>", &
1201 default_lc_val="vdW_kernel_table.dat")
1202 CALL section_add_keyword(subsection, keyword)
1203 CALL keyword_release(keyword)
1204 CALL keyword_create(keyword, __location__, name="CUTOFF", &
1205 description="The cutoff of the FFT grid used in the calculation "// &
1206 "of the nonlocal vdW functional [Ry].", &
1207 usage="CUTOFF 300", &
1208 default_r_val=-1._dp, unit_str="Ry")
1209 CALL section_add_keyword(subsection, keyword)
1210 CALL keyword_release(keyword)
1211 CALL keyword_create(keyword, __location__, name="PARAMETERS", &
1212 description="Parameters b and C of the rVV10 functional", &
1213 usage="PARAMETERS 6.3 0.0093", &
1214 type_of_var=real_t, default_r_vals=[6.3_dp, 0.0093_dp], n_var=2)
1215 CALL section_add_keyword(subsection, keyword)
1216 CALL keyword_release(keyword)
1217 CALL keyword_create(keyword, __location__, name="SCALE", &
1218 description="Scales the energy contribution of the rVV10 functional", &
1219 usage="SCALE 1.0", &
1220 type_of_var=real_t, default_r_val=1.0_dp)
1221 CALL section_add_keyword(subsection, keyword)
1222 CALL keyword_release(keyword)
1223
1224 CALL section_add_subsection(section, subsection)
1225 CALL section_release(subsection)
1226
1227 END SUBROUTINE create_vdw_potential_section
1228
1229! **************************************************************************************************
1230!> \brief creates the structure of the section needed for gCP potentials
1231!> \param section the section that will be created
1232!> \author jgh
1233! **************************************************************************************************
1234 SUBROUTINE create_gcp_potential_section(section)
1235 TYPE(section_type), POINTER :: section
1236
1237 TYPE(keyword_type), POINTER :: keyword
1238
1239 cpassert(.NOT. ASSOCIATED(section))
1240 CALL section_create(section, __location__, name="gcp_potential", &
1241 description="This section combines geometrical counterpoise potentials."// &
1242 " This is a simple empirical pair potential to correct for BSSE. ", &
1243 citations=[kruse2012], &
1244 n_keywords=1, n_subsections=1, repeats=.false.)
1245
1246 NULLIFY (keyword)
1247 CALL keyword_create(keyword, __location__, name="PARAMETER_FILE_NAME", &
1248 description="Name of the parameter file, may include a path", &
1249 usage="PARAMETER_FILE_NAME <FILENAME>", &
1250 default_lc_val="---")
1251 CALL section_add_keyword(section, keyword)
1252 CALL keyword_release(keyword)
1253
1254 CALL keyword_create(keyword, __location__, name="GLOBAL_PARAMETERS", &
1255 description="Global parameters of the gCP method."// &
1256 " Parameters are sigma, alpha, beta, eta from the original paper.", &
1257 usage="GLOBAL_PARAMETERS 1.0 1.0 1.0 1.0", n_var=4, &
1258 default_r_vals=[0.0_dp, 0.0_dp, 0.0_dp, 0.0_dp])
1259 CALL section_add_keyword(section, keyword)
1260 CALL keyword_release(keyword)
1261
1262 CALL keyword_create(keyword, __location__, name="DELTA_ENERGY", &
1263 description="Specify the delta energy [Hartree] term for an atom kind", &
1264 usage="DELTA_ENERGY type value", &
1265 type_of_var=char_t, repeats=.true., n_var=-1, default_c_vals=["XX ", "0.0"])
1266 CALL section_add_keyword(section, keyword)
1267 CALL keyword_release(keyword)
1268
1269 CALL keyword_create(keyword, __location__, name="VERBOSE", &
1270 description="Verbose output for gCP calculation", &
1271 usage="VERBOSE logical_value", &
1272 default_l_val=.true., lone_keyword_l_val=.true.)
1273 CALL section_add_keyword(section, keyword)
1274 CALL keyword_release(keyword)
1275
1276 END SUBROUTINE create_gcp_potential_section
1277
1278! **************************************************************************************************
1279!> \brief creates the input section for the xc part
1280!> \param section the section to create
1281!> \author fawzi
1282! **************************************************************************************************
1283 SUBROUTINE create_xc_section(section)
1284 TYPE(section_type), POINTER :: section
1285
1286 TYPE(keyword_type), POINTER :: keyword
1287 TYPE(section_type), POINTER :: subsection
1288
1289 cpassert(.NOT. ASSOCIATED(section))
1290 CALL section_create(section, __location__, name="xc", &
1291 description="Parameters needed for the calculation of the eXchange and Correlation potential", &
1292 n_keywords=5, n_subsections=2, repeats=.false.)
1293
1294 NULLIFY (subsection, keyword)
1295
1296 CALL keyword_create(keyword, __location__, name="density_cutoff", &
1297 description="The cutoff on the density used by the xc calculation", &
1298 usage="density_cutoff 1.e-11", default_r_val=1.0e-10_dp)
1299 CALL section_add_keyword(section, keyword)
1300 CALL keyword_release(keyword)
1301
1302 CALL keyword_create(keyword, __location__, name="gradient_cutoff", &
1303 description="The cutoff on the gradient of the density used by the "// &
1304 "xc calculation", &
1305 usage="gradient_cutoff 1.e-11", default_r_val=1.0e-10_dp)
1306 CALL section_add_keyword(section, keyword)
1307 CALL keyword_release(keyword)
1308
1309 CALL keyword_create(keyword, __location__, name="DENSITY_SMOOTH_CUTOFF_RANGE", &
1310 description="Parameter for the smoothing procedure in xc calculation", &
1311 usage="DENSITY_SMOOTH_CUTOFF_RANGE {real}", default_r_val=0.0_dp)
1312 CALL section_add_keyword(section, keyword)
1313 CALL keyword_release(keyword)
1314
1315 CALL keyword_create(keyword, __location__, name="tau_cutoff", &
1316 description="The cutoff on tau used by the xc calculation", &
1317 usage="tau_cutoff 1.e-11", default_r_val=1.0e-10_dp)
1318 CALL section_add_keyword(section, keyword)
1319 CALL keyword_release(keyword)
1320
1321 CALL section_create(subsection, __location__, name="xc_grid", & !FM to do
1322 description="The xc parameters used when calculating the xc on the grid", &
1323 n_keywords=5, n_subsections=0, repeats=.false.)
1324 CALL keyword_create(keyword, __location__, name="xc_smooth_rho", &
1325 description="The density smoothing used for the xc calculation", &
1326 usage="xc_smooth_rho nn10", default_i_val=xc_rho_no_smooth, &
1327 enum_c_vals=s2a("NONE", "NN50", "NN10", "SPLINE2", "NN6", "SPLINE3", "NN4"), &
1328 enum_i_vals=[xc_rho_no_smooth, xc_rho_nn50, xc_rho_nn10, &
1331 CALL section_add_keyword(subsection, keyword)
1332 CALL keyword_release(keyword)
1333
1334 CALL keyword_create(keyword, __location__, name="xc_deriv", &
1335 description="The method used to compute the derivatives", &
1336 usage="xc_deriv NN10_SMOOTH", default_i_val=xc_deriv_pw, &
1337 enum_c_vals=s2a("PW", "SPLINE3", "SPLINE2", "NN50_SMOOTH", "NN10_SMOOTH", &
1338 "SPLINE2_SMOOTH", "NN6_SMOOTH", "SPLINE3_SMOOTH", "NN4_SMOOTH", "COLLOCATE"), &
1343 CALL section_add_keyword(subsection, keyword)
1344 CALL keyword_release(keyword)
1345
1346 CALL keyword_create(keyword, __location__, name="use_finer_grid", &
1347 description="Uses a finer grid only to calculate the xc", &
1348 usage="use_finer_grid", default_l_val=.false., &
1349 lone_keyword_l_val=.true.)
1350 CALL section_add_keyword(subsection, keyword)
1351 CALL keyword_release(keyword)
1352
1353 CALL keyword_create(keyword, __location__, name="2ND_DERIV_ANALYTICAL", &
1354 description="Use analytical formulas or finite differences for 2nd derivatives of XC", &
1355 usage="2ND_DERIV_ANALYTICAL logical", default_l_val=.true., &
1356 lone_keyword_l_val=.true.)
1357 CALL section_add_keyword(section, keyword)
1358 CALL keyword_release(keyword)
1359
1360 CALL keyword_create(keyword, __location__, name="3RD_DERIV_ANALYTICAL", &
1361 description="Use analytical formulas or finite differences for 3rd derivatives of XC", &
1362 usage="3RD_DERIV_ANALYTICAL logical", default_l_val=.true., &
1363 lone_keyword_l_val=.true.)
1364 CALL section_add_keyword(section, keyword)
1365 CALL keyword_release(keyword)
1366
1367 CALL keyword_create(keyword, __location__, name="STEP_SIZE", &
1368 description="Step size in terms of the first order potential for the numerical "// &
1369 "evaluation of XC derivatives", &
1370 usage="STEP_SIZE 1.0E-3", default_r_val=1e-3_dp)
1371 CALL section_add_keyword(section, keyword)
1372 CALL keyword_release(keyword)
1373
1374 CALL keyword_create(keyword, __location__, name="NSTEPS", &
1375 description="Number of steps to consider in each direction for the numerical "// &
1376 "evaluation of XC derivatives. Must be a value from 1 to 4 (Default: 3).", &
1377 usage="NSTEPS 4", default_i_val=3)
1378 CALL section_add_keyword(section, keyword)
1379 CALL keyword_release(keyword)
1380
1381 CALL section_add_subsection(section, subsection)
1382 CALL section_release(subsection)
1383
1384 CALL create_xc_fun_section(subsection)
1385 CALL section_add_subsection(section, subsection)
1386 CALL section_release(subsection)
1387
1388 CALL create_hfx_section(subsection)
1389 CALL section_add_subsection(section, subsection)
1390 CALL section_release(subsection)
1391
1392 CALL create_mp2_section(subsection)
1393 CALL section_add_subsection(section, subsection)
1394 CALL section_release(subsection)
1395
1396 CALL create_adiabatic_section(subsection)
1397 CALL section_add_subsection(section, subsection)
1398 CALL section_release(subsection)
1399
1400 CALL create_xc_potential_section(subsection)
1401 CALL section_add_subsection(section, subsection)
1402 CALL section_release(subsection)
1403
1404 CALL create_xc_kernel_section(subsection)
1405 CALL section_add_subsection(section, subsection)
1406 CALL section_release(subsection)
1407
1408 CALL create_hfx_kernel_section(subsection)
1409 CALL section_add_subsection(section, subsection)
1410 CALL section_release(subsection)
1411
1412 CALL create_vdw_potential_section(subsection)
1413 CALL section_add_subsection(section, subsection)
1414 CALL section_release(subsection)
1415
1416 CALL create_gcp_potential_section(subsection)
1417 CALL section_add_subsection(section, subsection)
1418 CALL section_release(subsection)
1419
1420 END SUBROUTINE create_xc_section
1421
1422! **************************************************************************************************
1423!> \brief creates the section for adiabatic hybrid functionals
1424!> \param section ...
1425!> \author Manuel Guidon
1426! **************************************************************************************************
1427 SUBROUTINE create_adiabatic_section(section)
1428 TYPE(section_type), POINTER :: section
1429
1430 TYPE(keyword_type), POINTER :: keyword
1431
1432 cpassert(.NOT. ASSOCIATED(section))
1433 CALL section_create(section, __location__, name="ADIABATIC_RESCALING", &
1434 description="Parameters for self interaction corrected hybrid functionals", &
1435 n_keywords=0, n_subsections=0, repeats=.false.)
1436 NULLIFY (keyword)
1437 CALL keyword_create( &
1438 keyword, __location__, &
1439 name="FUNCTIONAL_TYPE", &
1440 description="Which Hybrid functional should be used. "// &
1441 "(Has to be consistent with the definitions in XC and HF).", &
1442 usage="FUNCTIONAL_TYPE MCY3", &
1443 enum_c_vals=s2a("MCY3"), &
1444 enum_i_vals=[do_adiabatic_hybrid_mcy3], &
1445 enum_desc=s2a("Use MCY3 hybrid functional"), &
1446 default_i_val=do_adiabatic_hybrid_mcy3)
1447 CALL section_add_keyword(section, keyword)
1448 CALL keyword_release(keyword)
1449
1450 NULLIFY (keyword)
1451 CALL keyword_create( &
1452 keyword, __location__, &
1453 name="LAMBDA", &
1454 description="The point to be used along the adiabatic curve (0 &lt; &lambda; &lt; 1)", &
1455 usage="LAMBDA 0.71", &
1456 default_r_val=0.71_dp)
1457 CALL section_add_keyword(section, keyword)
1458 CALL keyword_release(keyword)
1459
1460 NULLIFY (keyword)
1461 CALL keyword_create( &
1462 keyword, __location__, &
1463 name="OMEGA", &
1464 description="Long-range parameter", &
1465 usage="OMEGA 0.2", &
1466 default_r_val=0.2_dp)
1467 CALL section_add_keyword(section, keyword)
1468 CALL keyword_release(keyword)
1469
1470 NULLIFY (keyword)
1471 CALL keyword_create( &
1472 keyword, __location__, &
1473 name="FUNCTIONAL_MODEL", &
1474 description="Which model for the coupling constant integration should be used. ", &
1475 usage="FUNCTIONAL_MODEL PADE", &
1476 enum_c_vals=s2a("PADE"), &
1477 enum_i_vals=[do_adiabatic_model_pade], &
1478 enum_desc=s2a("Use pade model: W(lambda)=a+(b*lambda)/(1+c*lambda)"), &
1479 default_i_val=do_adiabatic_model_pade)
1480 CALL section_add_keyword(section, keyword)
1481 CALL keyword_release(keyword)
1482 END SUBROUTINE create_adiabatic_section
1483
1484END MODULE input_cp2k_xc
collects all references to literature in CP2K as new algorithms / method are included from literature...
integer, save, public goedecker1996
integer, save, public perdew1996
integer, save, public proynov2007
integer, save, public heyd2004
integer, save, public wellendorff2012
integer, save, public caldeweyher2020
integer, save, public grimme2006
integer, save, public becke1997
integer, save, public perdew2008
integer, save, public vosko1980
integer, save, public beckeroussel1989
integer, save, public perdew1981
integer, save, public tao2003
integer, save, public tran2013
integer, save, public ortiz1994
integer, save, public lee1988
integer, save, public grimme2011
integer, save, public kruse2012
integer, save, public grimme2010
integer, save, public becke1988
integer, save, public zhang1998
routines to handle the output, The idea is to remove the decision of wheter to output and what to out...
integer, parameter, public high_print_level
integer, parameter, public add_last_numeric
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
Input definition and setup for EEQ model.
Definition eeq_input.F:12
subroutine, public create_eeq_control_section(section)
...
Definition eeq_input.F:50
collects all constants needed in input so that they can be used without circular dependencies
integer, parameter, public xc_funct_tpss
integer, parameter, public xc_funct_bp
integer, parameter, public xc_funct_olyp
integer, parameter, public vdw_nl_rvv10
integer, parameter, public xc_vdw_fun_none
integer, parameter, public xc_funct_pbe
integer, parameter, public fxc_funct_pade
integer, parameter, public fxc_funct_gga
integer, parameter, public vdw_pairpot_dftd3
integer, parameter, public xc_funct_no_shortcut
integer, parameter, public do_adiabatic_hybrid_mcy3
integer, parameter, public xc_vdw_fun_nonloc
integer, parameter, public xc_funct_pbe0
integer, parameter, public fxc_none
integer, parameter, public vdw_pairpot_dftd4
integer, parameter, public xc_funct_beefvdw
integer, parameter, public xc_funct_pade
integer, parameter, public xc_funct_blyp
integer, parameter, public vdw_nl_drsll
integer, parameter, public xc_pot_energy_xc_functional
integer, parameter, public xc_pot_energy_none
integer, parameter, public do_adiabatic_model_pade
integer, parameter, public xc_pot_energy_sum_eigenvalues
integer, parameter, public vdw_nl_lmkll
integer, parameter, public gaussian
integer, parameter, public vdw_pairpot_dftd2
integer, parameter, public fxc_funct_lda
integer, parameter, public xc_vdw_fun_pairpot
integer, parameter, public xc_funct_b3lyp
integer, parameter, public xc_none
integer, parameter, public vdw_pairpot_dftd3bj
integer, parameter, public xc_funct_hcth120
integer, parameter, public slater
function that builds the hartree fock exchange section of the input
subroutine, public create_hfx_section(section)
creates the input section for the hf part
input section for MP2
subroutine, public create_mp2_section(section)
creates the input section for the mp2 part
function that build the xc section of the input
subroutine, public create_xc_section(section)
creates the input section for the xc part
subroutine, public create_xc_fun_section(section)
creates the structure of the section needed to select the xc functional
represents keywords in an input
subroutine, public keyword_release(keyword)
releases the given keyword (see doc/ReferenceCounting.html)
subroutine, public keyword_create(keyword, location, name, description, usage, type_of_var, n_var, repeats, variants, default_val, default_l_val, default_r_val, default_lc_val, default_c_val, default_i_val, default_l_vals, default_r_vals, default_c_vals, default_i_vals, lone_keyword_val, lone_keyword_l_val, lone_keyword_r_val, lone_keyword_c_val, lone_keyword_i_val, lone_keyword_l_vals, lone_keyword_r_vals, lone_keyword_c_vals, lone_keyword_i_vals, enum_c_vals, enum_i_vals, enum, enum_strict, enum_desc, unit_str, citations, deprecation_notice, removed)
creates a keyword object
objects that represent the structure of input sections and the data contained in an input section
subroutine, public section_create(section, location, name, description, n_keywords, n_subsections, repeats, citations, deprecation_notice)
creates a list of keywords
subroutine, public section_add_keyword(section, keyword)
adds a keyword to the given section
subroutine, public section_add_subsection(section, subsection)
adds a subsection to the given section
recursive subroutine, public section_release(section)
releases the given keyword list (see doc/ReferenceCounting.html)
a wrapper for basic fortran types.
integer, parameter, public real_t
integer, parameter, public char_t
integer, parameter, public integer_t
Defines the basic variable types.
Definition kinds.F:23
integer, parameter, public dp
Definition kinds.F:34
Utilities for string manipulations.
input constants for xc
integer, parameter, public xc_deriv_spline2_smooth
integer, parameter, public xc_rho_spline2_smooth
integer, parameter, public c_pw92
integer, parameter, public ke_ol1
integer, parameter, public xc_deriv_collocate
integer, parameter, public ke_ol2
integer, parameter, public xc_rho_spline3_smooth
integer, parameter, public xc_deriv_nn10_smooth
integer, parameter, public xc_pbe_orig
integer, parameter, public xc_deriv_pw
integer, parameter, public xc_pbe_rev
integer, parameter, public xgga_opt
integer, parameter, public xc_b97_mardirossian
integer, parameter, public xc_b97_orig
integer, parameter, public do_vwn5
integer, parameter, public xgga_revpbe
integer, parameter, public ke_pw91
integer, parameter, public ke_pbe
integer, parameter, public xgga_pw86
integer, parameter, public c_pz
integer, parameter, public c_pw92vmc
integer, parameter, public xc_deriv_spline2
integer, parameter, public pz_orig
integer, parameter, public xc_rho_nn10
integer, parameter, public ke_pw86
integer, parameter, public xgga_pw91
integer, parameter, public xc_deriv_nn50_smooth
integer, parameter, public xc_b97_grimme
integer, parameter, public xc_deriv_spline3
integer, parameter, public c_pzvmc
integer, parameter, public xc_pbe_sol
integer, parameter, public xc_rho_nn50
integer, parameter, public ke_lc
integer, parameter, public xgga_ev93
integer, parameter, public xalpha
integer, parameter, public ke_llp
integer, parameter, public xc_deriv_spline3_smooth
integer, parameter, public xc_b97_3c
integer, parameter, public ke_t92
integer, parameter, public xgga_pbex
integer, parameter, public c_pw92dmc
integer, parameter, public do_vwn3
integer, parameter, public xgga_b88x
integer, parameter, public c_pzdmc
integer, parameter, public xc_rho_no_smooth
calculates a functional from libxc and its derivatives
Definition xc_libxc.F:28
subroutine, public libxc_add_sections(section)
...
Definition xc_libxc.F:206
represent a keyword in the input
represent a section of the input file