(git:9aade48)
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 create_gauxc_section(subsection)
554 CALL section_add_subsection(section, subsection)
555 CALL section_release(subsection)
556
557 CALL section_create(subsection, __location__, name="XWPBE", &
558 description="Uses the short range PBE functional", &
559 n_keywords=0, n_subsections=0, repeats=.false., &
560 citations=[heyd2004])
561 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
562 description="activates the functional", &
563 lone_keyword_l_val=.true., default_l_val=.false.)
564 CALL section_add_keyword(subsection, keyword)
565 CALL keyword_release(keyword)
566 CALL keyword_create(keyword, __location__, name="scale_x", &
567 description="scales the exchange part of the functional", &
568 default_r_val=1._dp)
569 CALL section_add_keyword(subsection, keyword)
570 CALL keyword_release(keyword)
571 CALL keyword_create(keyword, __location__, name="scale_x0", &
572 description="scales the exchange part of the original hole PBE-functional", &
573 default_r_val=0.0_dp)
574 CALL section_add_keyword(subsection, keyword)
575 CALL keyword_release(keyword)
576 CALL keyword_create(keyword, __location__, name="omega", &
577 description="screening parameter", &
578 default_r_val=1._dp)
579 CALL section_add_keyword(subsection, keyword)
580 CALL keyword_release(keyword)
581 CALL section_add_subsection(section, subsection)
582 CALL section_release(subsection)
583
584 CALL section_create(subsection, __location__, name="BECKE97", &
585 description="Uses the Becke 97 exchange correlation functional", &
586 n_keywords=0, n_subsections=0, repeats=.false., &
587 citations=[becke1997, grimme2006])
588 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
589 description="activates the functional", &
590 lone_keyword_l_val=.true., default_l_val=.false.)
591 CALL section_add_keyword(subsection, keyword)
592 CALL keyword_release(keyword)
593 CALL keyword_create(keyword, __location__, name="scale_x", &
594 description="scales the exchange part of the functional, if -1 the default for the given parametrization is used", &
595 default_r_val=-1._dp)
596 CALL section_add_keyword(subsection, keyword)
597 CALL keyword_release(keyword)
598 CALL keyword_create(keyword, __location__, name="scale_c", &
599 description="scales the correlation part of the functional", &
600 default_r_val=1._dp)
601 CALL section_add_keyword(subsection, keyword)
602 CALL keyword_release(keyword)
603 CALL keyword_create(keyword, __location__, name="parametrization", &
604 description="switches between the B97 and Grimme parametrization ", &
606 enum_c_vals=["ORIG ", "B97GRIMME ", "B97_GRIMME", "wB97X-V ", "B97-3c "], &
607 default_i_val=xc_b97_orig)
608 CALL section_add_keyword(subsection, keyword)
609 CALL keyword_release(keyword)
610
611 CALL section_add_subsection(section, subsection)
612 CALL section_release(subsection)
613
614 CALL section_create(subsection, __location__, name="BECKE_ROUSSEL", &
615 description="Becke Roussel exchange hole model. Can be used "// &
616 "as long range correction with a truncated coulomb potential", &
617 n_keywords=0, n_subsections=0, repeats=.false., &
618 citations=[beckeroussel1989, proynov2007])
619 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
620 description="activates the functional", &
621 lone_keyword_l_val=.true., default_l_val=.false.)
622 CALL section_add_keyword(subsection, keyword)
623 CALL keyword_release(keyword)
624 CALL keyword_create(keyword, __location__, name="scale_x", &
625 description="scales the exchange part of the functional", &
626 default_r_val=1._dp)
627 CALL section_add_keyword(subsection, keyword)
628 CALL keyword_release(keyword)
629 CALL keyword_create(keyword, __location__, name="CUTOFF_RADIUS", &
630 description="Defines the cutoff radius for the truncation. "// &
631 "If put to zero, the standard full range potential will be used", &
632 usage="CUTOFF_RADIUS 2.0", default_r_val=0.0_dp)
633 CALL section_add_keyword(subsection, keyword)
634 CALL keyword_release(keyword)
635 CALL keyword_create(keyword, __location__, name="GAMMA", &
636 description="Parameter in the exchange hole. "// &
637 "Usually this is put to 1.0 or 0.8", &
638 usage="GAMMA 0.8", default_r_val=1.0_dp)
639 CALL section_add_keyword(subsection, keyword)
640 CALL keyword_release(keyword)
641 CALL section_add_subsection(section, subsection)
642 CALL section_release(subsection)
643
644 CALL section_create(subsection, __location__, name="LDA_HOLE_T_C_LR", &
645 description="LDA exchange hole model in truncated coulomb potential", &
646 n_keywords=0, n_subsections=0, repeats=.false.)
647 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
648 description="activates the functional", &
649 lone_keyword_l_val=.true., default_l_val=.false.)
650 CALL section_add_keyword(subsection, keyword)
651 CALL keyword_release(keyword)
652 CALL keyword_create(keyword, __location__, name="SCALE_X", &
653 description="scales the exchange part of the functional", &
654 default_r_val=1._dp)
655 CALL section_add_keyword(subsection, keyword)
656 CALL keyword_release(keyword)
657 CALL keyword_create(keyword, __location__, name="CUTOFF_RADIUS", &
658 description="Defines cutoff for lower integration boundary", &
659 default_r_val=0.0_dp, unit_str="angstrom")
660 CALL section_add_keyword(subsection, keyword)
661 CALL keyword_release(keyword)
662 CALL section_add_subsection(section, subsection)
663 CALL section_release(subsection)
664
665 CALL section_create(subsection, __location__, name="PBE_HOLE_T_C_LR", &
666 description="PBE exchange hole model in trucanted coulomb potential", &
667 n_keywords=0, n_subsections=0, repeats=.false.)
668 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
669 description="activates the functional", &
670 lone_keyword_l_val=.true., default_l_val=.false.)
671 CALL section_add_keyword(subsection, keyword)
672 CALL keyword_release(keyword)
673 CALL keyword_create(keyword, __location__, name="SCALE_X", &
674 description="scales the exchange part of the functional", &
675 default_r_val=1._dp)
676 CALL section_add_keyword(subsection, keyword)
677 CALL keyword_release(keyword)
678 CALL keyword_create(keyword, __location__, name="CUTOFF_RADIUS", &
679 description="Defines cutoff for lower integration boundary", &
680 default_r_val=1.0_dp, unit_str="angstrom")
681 CALL section_add_keyword(subsection, keyword)
682 CALL keyword_release(keyword)
683 CALL section_add_subsection(section, subsection)
684 CALL section_release(subsection)
685
686 CALL section_create(subsection, __location__, name="GV09", &
687 description="Combination of three different exchange hole models", &
688 n_keywords=0, n_subsections=0, repeats=.false.)
689 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
690 description="activates the functional", &
691 lone_keyword_l_val=.true., default_l_val=.false.)
692 CALL section_add_keyword(subsection, keyword)
693 CALL keyword_release(keyword)
694 CALL keyword_create(keyword, __location__, name="SCALE_X", &
695 description="scales the exchange part of the functional", &
696 default_r_val=1._dp)
697 CALL section_add_keyword(subsection, keyword)
698 CALL keyword_release(keyword)
699 CALL keyword_create(keyword, __location__, name="CUTOFF_RADIUS", &
700 description="Defines cutoff for lower integration boundary", &
701 default_r_val=0.0_dp, unit_str="angstrom")
702 CALL section_add_keyword(subsection, keyword)
703 CALL keyword_release(keyword)
704 CALL keyword_create(keyword, __location__, name="GAMMA", &
705 description="Parameter for Becke Roussel hole", &
706 default_r_val=1.0_dp)
707 CALL section_add_keyword(subsection, keyword)
708 CALL keyword_release(keyword)
709 CALL section_add_subsection(section, subsection)
710 CALL section_release(subsection)
711
712 CALL section_create(subsection, __location__, name="BEEF", & !rk: BEEF Exchange
713 description="Uses the BEEFvdW exchange functional", &
714 n_keywords=0, n_subsections=0, repeats=.false., &
715 citations=[wellendorff2012])
716 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
717 description="activates the functional", &
718 lone_keyword_l_val=.true., default_l_val=.false.)
719 CALL section_add_keyword(subsection, keyword)
720 CALL keyword_release(keyword)
721 CALL keyword_create(keyword, __location__, name="scale_x", &
722 description="scales the exchange part of the functional", &
723 default_r_val=1._dp)
724 CALL section_add_keyword(subsection, keyword)
725 CALL keyword_release(keyword)
726 CALL section_add_subsection(section, subsection)
727 CALL section_release(subsection)
728
729 END SUBROUTINE create_xc_fun_section
730
731! **************************************************************************************************
732!> \brief creates the structure of the section needed to select an xc potential
733!> \param section the section that will be created
734!> \author thomas chassaing
735! **************************************************************************************************
736 SUBROUTINE create_xc_potential_section(section)
737 TYPE(section_type), POINTER :: section
738
739 TYPE(keyword_type), POINTER :: keyword
740 TYPE(section_type), POINTER :: subsection
741
742 cpassert(.NOT. ASSOCIATED(section))
743 CALL section_create(section, __location__, name="xc_potential", &
744 description="The xc potential to use (CAREFUL: xc potential here refers "// &
745 "to potentials that are not derived from an xc functional, but rather are "// &
746 "modelled directly. Therefore there is no consistent xc energy available. "// &
747 "To still get an energy expression, see ENERGY below", &
748 n_keywords=1, n_subsections=1, repeats=.false.)
749
750 NULLIFY (subsection, keyword)
751 CALL section_create(subsection, __location__, name="SAOP", &
752 description="Uses the SAOP potential", &
753 n_keywords=3, n_subsections=0, repeats=.true.)
754 CALL keyword_create(keyword, __location__, name="ALPHA", &
755 description="Value of the alpha parameter (default = 1.19).", &
756 usage="ALPHA 1.19", default_r_val=1.19_dp)
757 CALL section_add_keyword(subsection, keyword)
758 CALL keyword_release(keyword)
759 CALL keyword_create(keyword, __location__, name="BETA", &
760 description="Value of the beta parameter (default = 0.01).", &
761 usage="BETA 0.01", default_r_val=0.01_dp)
762 CALL section_add_keyword(subsection, keyword)
763 CALL keyword_release(keyword)
764 CALL keyword_create(keyword, __location__, name="K_RHO", &
765 description="Value of the K_rho parameter (default = 0.42).", &
766 usage="K_RHO 0.42", default_r_val=0.42_dp)
767 CALL section_add_keyword(subsection, keyword)
768 CALL keyword_release(keyword)
769 CALL section_add_subsection(section, subsection)
770 CALL section_release(subsection)
771
772 CALL keyword_create(keyword, __location__, name="ENERGY", &
773 description="How to determine the total energy.", &
774 usage="ENERGY [NONE,XC_FUNCTIONAL,SUM_EIGENVALUES", &
775 enum_c_vals=s2a("NONE", "XC_FUNCTIONAL", "FUNCTIONAL", "SUM_EIGENVALUES", "SOE"), &
776 enum_i_vals=[xc_pot_energy_none, &
781 default_i_val=xc_pot_energy_none)
782 CALL section_add_keyword(section, keyword)
783 CALL keyword_release(keyword)
784
785 END SUBROUTINE create_xc_potential_section
786
787! **************************************************************************************************
788!> \brief creates the structure of the section needed to select an xc kernel
789!> \param section the section that will be created
790!> \author JGH
791! **************************************************************************************************
792 SUBROUTINE create_xc_kernel_section(section)
793 TYPE(section_type), POINTER :: section
794
795 TYPE(keyword_type), POINTER :: keyword
796
797 cpassert(.NOT. ASSOCIATED(section))
798 CALL section_create(section, __location__, name="XC_KERNEL", &
799 description="The xc kernel to use (CAREFUL: xc kernel here refers "// &
800 "to kernels that are not derived from an xc functional, but rather are "// &
801 "modelled directly. This kernel will be used in a TDDFPT calculation. "// &
802 "Cannot be combined with XC_FUNCTIONAL or XC_POTENTIAL.", &
803 n_keywords=1, n_subsections=1, repeats=.false.)
804
805 NULLIFY (keyword)
806 CALL keyword_create( &
807 keyword, __location__, name="_SECTION_PARAMETERS_", &
808 description="Selection of kernel functionals.", &
809 usage="&XC_KERNEL LDAfxc", &
810 enum_c_vals=s2a("PADEfxc", "LDAfxc", "GGAfxc", "NONE"), &
812 enum_desc=s2a("Fxc based on LDA PADE approximation", &
813 "Fxc based on LDA functionals", &
814 "Fxc model from fit to PBE functional", &
815 "NONE"), &
816 default_i_val=fxc_none, &
817 lone_keyword_i_val=fxc_none)
818 CALL section_add_keyword(section, keyword)
819 CALL keyword_release(keyword)
820
821 CALL keyword_create(keyword, __location__, name="PARAMETER", &
822 description="List of parameters specific to the kernel function", &
823 usage="PARAMETER <REAL> .. <REAL>", &
824 type_of_var=real_t, n_var=-1)
825 CALL section_add_keyword(section, keyword)
826 CALL keyword_release(keyword)
827 CALL keyword_create(keyword, __location__, name="GAMMA", &
828 description="B97 GAMMA parameters [gx, gab, gaa]", &
829 usage="GAMMA <REAL> <REAL> <REAL>", &
830 default_r_vals=[0.004_dp, 0.006_dp, 0.2_dp], &
831 type_of_var=real_t, n_var=3)
832 CALL section_add_keyword(section, keyword)
833 CALL keyword_release(keyword)
834 CALL keyword_create(keyword, __location__, name="C_XAA", &
835 description="B97 C parameters for exchange", &
836 usage="C_XAA <REAL> <REAL> <REAL>", &
837 default_r_vals=[1.0_dp, 0.63_dp, 0.94_dp], &
838 type_of_var=real_t, n_var=3)
839 CALL section_add_keyword(section, keyword)
840 CALL keyword_release(keyword)
841 CALL keyword_create(keyword, __location__, name="C_CAB", &
842 description="B97 C parameters for same spin correlation.", &
843 usage="C_CAB <REAL> <REAL> <REAL>", &
844 default_r_vals=[1.0_dp, 0.75_dp, -4.60_dp], &
845 type_of_var=real_t, n_var=3)
846 CALL section_add_keyword(section, keyword)
847 CALL keyword_release(keyword)
848 CALL keyword_create(keyword, __location__, name="C_CAA", &
849 description="B97 C parameters for opposite spin correlation.", &
850 usage="C_CAA <REAL> <REAL> <REAL>", &
851 default_r_vals=[0.17_dp, 2.35_dp, -2.55_dp], &
852 type_of_var=real_t, n_var=3)
853 CALL section_add_keyword(section, keyword)
854 CALL keyword_release(keyword)
855 CALL keyword_create(keyword, __location__, name="SCALE_X", &
856 description="Scaling parameter for exchange kernel.", &
857 usage="SCALE_X 0.2", default_r_val=1.0_dp)
858 CALL section_add_keyword(section, keyword)
859 CALL keyword_release(keyword)
860 CALL keyword_create(keyword, __location__, name="SCALE_C", &
861 description="Scaling parameter for correlation kernel.", &
862 usage="SCALE_C 0.2", default_r_val=1.0_dp)
863 CALL section_add_keyword(section, keyword)
864 CALL keyword_release(keyword)
865
866 END SUBROUTINE create_xc_kernel_section
867
868! **************************************************************************************************
869!> \brief creates the structure of the section needed to select an hfx kernel
870!> \param section the section that will be created
871!> \author JGH
872! **************************************************************************************************
873 SUBROUTINE create_hfx_kernel_section(section)
874 TYPE(section_type), POINTER :: section
875
876 TYPE(keyword_type), POINTER :: keyword
877 TYPE(section_type), POINTER :: subsection
878
879 cpassert(.NOT. ASSOCIATED(section))
880 CALL section_create(section, __location__, name="HFX_KERNEL", &
881 description="The hfx kernel to use. Cannot be combined with HF section.", &
882 n_keywords=1, n_subsections=2, repeats=.false.)
883
884 NULLIFY (subsection, keyword)
885 CALL keyword_create(keyword, __location__, name="DO_HFXSR", &
886 description="Switch to use the HFXSR (short range) kernel.", &
887 usage="DO_HFXSR T/F", default_l_val=.false., &
888 lone_keyword_l_val=.true.)
889 CALL section_add_keyword(section, keyword)
890 CALL keyword_release(keyword)
891 NULLIFY (subsection, keyword)
892 CALL keyword_create(keyword, __location__, name="HFXSR_PRIMBAS", &
893 description="Default number of primitives in ADMM basis in HFXSR. "// &
894 "0 indicates the use of a contracted minimal basis. ", &
895 usage="HFXSR_PRIMBAS 3", default_i_val=0)
896 CALL section_add_keyword(section, keyword)
897 CALL keyword_release(keyword)
898
899 CALL create_hfx_section(subsection)
900 CALL section_add_subsection(section, subsection)
901 CALL section_release(subsection)
902
903 CALL section_create(subsection, __location__, name="HFXLR", &
904 description="Uses the HFXLR (long range) kernel", &
905 n_keywords=2, n_subsections=0, repeats=.false.)
906 CALL keyword_create(keyword, __location__, name="RCUT", &
907 description="Value of lower range cutoff of interaction [Bohr]", &
908 usage="RCUT 5.00", default_r_val=6.00_dp, unit_str="bohr")
909 CALL section_add_keyword(subsection, keyword)
910 CALL keyword_release(keyword)
911 CALL keyword_create(keyword, __location__, name="SCALE", &
912 description="Scaling parameter for HFX kernel.", &
913 usage="SCALE 0.25", default_r_val=1.00_dp)
914 CALL section_add_keyword(subsection, keyword)
915 CALL keyword_release(keyword)
916 CALL section_add_subsection(section, subsection)
917 CALL section_release(subsection)
918
919 END SUBROUTINE create_hfx_kernel_section
920! **************************************************************************************************
921!> \brief creates the structure of the section needed for vdW potentials
922!> \param section the section that will be created
923!> \author jgh
924! **************************************************************************************************
925 SUBROUTINE create_vdw_potential_section(section)
926 TYPE(section_type), POINTER :: section
927
928 TYPE(keyword_type), POINTER :: keyword
929 TYPE(section_type), POINTER :: newsection, print_key, subsection
930
931 cpassert(.NOT. ASSOCIATED(section))
932 CALL section_create(section, __location__, name="vdw_potential", &
933 description="This section combines all possible additional dispersion "// &
934 "corrections to the normal XC functionals. This can be more functionals "// &
935 "or simple empirical pair potentials. ", &
936 citations=[grimme2006, tran2013], &
937 n_keywords=1, n_subsections=1, repeats=.false.)
938
939 NULLIFY (subsection, keyword)
940 CALL keyword_create(keyword, __location__, name="POTENTIAL_TYPE", &
941 variants=s2a("DISPERSION_FUNCTIONAL"), &
942 description="Type of dispersion/vdW functional or potential to use", &
943 usage="POTENTIAL_TYPE (NONE|PAIR_POTENTIAL|NON_LOCAL)", &
944 enum_c_vals=s2a("NONE", "PAIR_POTENTIAL", "NON_LOCAL"), &
946 enum_desc=s2a("No dispersion/van der Waals functional.", &
947 "Pair potential van der Waals density functional, "// &
948 "including Grimme's empirical DFT-D methods.", &
949 "Nonlocal van der Waals density functional; more "// &
950 "rigorous in principle, but significantly more "// &
951 "time-consuming."), &
952 default_i_val=xc_vdw_fun_none)
953 CALL section_add_keyword(section, keyword)
954 CALL keyword_release(keyword)
955
956 CALL section_create(subsection, __location__, name="PAIR_POTENTIAL", &
957 description="Information on the pair potential to calculate dispersion", &
958 n_keywords=5, n_subsections=0, repeats=.true.)
959 CALL keyword_create(keyword, __location__, name="R_CUTOFF", &
960 variants=s2a("D3_CUTOFF", "D4_3B_CUTOFF"), &
961 description="Range of potential. The cutoff will be 2 times this value. "// &
962 "In the case of D4 it will be used for the 3-body term", &
963 usage="R_CUTOFF 20.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_CUTOFF", &
968 description="Range of potential. The cutoff will be 2 times this value. "// &
969 "Only used for the 2-body term of D4", &
970 usage="D4_CUTOFF 30.0", default_r_val=20.0_dp, &
971 unit_str="angstrom")
972 CALL section_add_keyword(subsection, keyword)
973 CALL keyword_release(keyword)
974 CALL keyword_create(keyword, __location__, name="D4_CN_CUTOFF", &
975 description="Coordination number cutoff for D4", &
976 usage="D4_CN_CUTOFF 30.0", default_r_val=-1.0_dp, &
977 unit_str="angstrom")
978 CALL section_add_keyword(subsection, keyword)
979 CALL keyword_release(keyword)
980 CALL keyword_create(keyword, __location__, name="TYPE", &
981 description="Type of potential", &
983 usage="TYPE (DFTD2|DFTD3|DFTD3(BJ)|DFTD4)", &
984 enum_c_vals=s2a("DFTD2", "DFTD3", "DFTD3(BJ)", "DFTD4"), &
985 enum_i_vals=[vdw_pairpot_dftd2, vdw_pairpot_dftd3, &
987 enum_desc=s2a("Grimme D2 method", &
988 "Grimme D3 method (zero damping)", &
989 "Grimme D3 method (Becke-Johnson damping)", &
990 "Grimme D4 method"), &
991 default_i_val=vdw_pairpot_dftd3bj)
992 CALL section_add_keyword(subsection, keyword)
993 CALL keyword_release(keyword)
994 CALL keyword_create(keyword, __location__, name="PARAMETER_FILE_NAME", &
995 description="Name of the parameter file, may include a path (not used for D4)", &
996 usage="PARAMETER_FILE_NAME <FILENAME>", &
997 default_lc_val="dftd3.dat")
998 CALL section_add_keyword(subsection, keyword)
999 CALL keyword_release(keyword)
1000 CALL keyword_create(keyword, __location__, name="REFERENCE_FUNCTIONAL", &
1001 description="Use parameters for this specific density functional. "// &
1002 "For available DFT-D4 functionals and parameters see: "// &
1003 "<https://github.com/dftd4/dftd4/blob/main/src/dftd4/param.f90>. "// &
1004 "For available D3 and D3(BJ) parameters see: "// &
1005 "<https://www.chemie.uni-bonn.de/grimme/de/software/dft-d3>. "// &
1006 "For Skala with D3(BJ), SKALA selects the B3LYP D3(BJ) parameters.", &
1007 usage="REFERENCE_FUNCTIONAL <functional>", &
1008 type_of_var=char_t)
1009 CALL section_add_keyword(subsection, keyword)
1010 CALL keyword_release(keyword)
1011 CALL keyword_create(keyword, __location__, name="D4_REFERENCE_CODE", &
1012 description="Calculate D4 energy using external library entirely. "// &
1013 "Not recommended if you are using an MPI version of CP2K, because "// &
1014 "DFT-D4 package does not support MPI parallelization. However, "// &
1015 "if D4_DEBUG is triggered, you will need to switch this on. Note "// &
1016 "that the external library is always needed no matter if this "// &
1017 "option is triggered or not.", &
1018 usage="D4_REFERENCE_CODE", default_l_val=.false., &
1019 lone_keyword_l_val=.true.)
1020 CALL section_add_keyword(subsection, keyword)
1021 CALL keyword_release(keyword)
1022 CALL keyword_create(keyword, __location__, name="D4_DEBUG", &
1023 description="Debug output for D4 method using reference code.", &
1024 usage="D4_DEBUG", default_l_val=.false., &
1025 lone_keyword_l_val=.true.)
1026 CALL section_add_keyword(subsection, keyword)
1027 CALL keyword_release(keyword)
1028 CALL keyword_create(keyword, __location__, name="D3_REFERENCE_CODE", &
1029 description="Use D3 damping parameters from s-dftd3 library instead of built-in values. "// &
1030 "Requires s-dftd3 library to be compiled in.", &
1031 usage="D3_REFERENCE_CODE", default_l_val=.false., &
1032 lone_keyword_l_val=.true.)
1033 CALL section_add_keyword(subsection, keyword)
1034 CALL keyword_release(keyword)
1035 CALL keyword_create(keyword, __location__, name="D2_SCALING", &
1036 variants=["SCALING"], &
1037 description="XC Functional dependent scaling parameter. If omitted, CP2K attempts"// &
1038 " to guess the xc functional that is in use and sets the associated scaling parameter.", &
1039 usage="SCALING 0.2", default_r_val=0._dp)
1040 CALL section_add_keyword(subsection, keyword)
1041 CALL keyword_release(keyword)
1042 CALL keyword_create(keyword, __location__, name="D2_EXP_PRE", &
1043 variants=["EXP_PRE"], &
1044 description="Prefactor in exponential damping factor (DFT-D2 potential)", &
1045 usage="D2_EXP_PRE 20.", default_r_val=20._dp)
1046 CALL section_add_keyword(subsection, keyword)
1047 CALL keyword_release(keyword)
1048 CALL keyword_create(keyword, __location__, name="EPS_CN", &
1049 description="Cutoff value for coordination number function (DFT-D3 method)", &
1050 usage="EPS_CN 1.e-6_dp", default_r_val=1.e-6_dp)
1051 CALL section_add_keyword(subsection, keyword)
1052 CALL keyword_release(keyword)
1053 CALL keyword_create(keyword, __location__, name="D3_SCALING", &
1054 description="XC Functional dependent scaling parameters (s6,sr6,s8) for the DFT-D3 method."// &
1055 " If omitted, CP2K attempts"// &
1056 " to guess the xc functional from REFERENCE_FUNCTIONAL and sets the associated scaling parameter.", &
1057 usage="D3_SCALING 1.0 1.0 1.0", n_var=3, &
1058 default_r_vals=[0.0_dp, 0.0_dp, 0.0_dp])
1059 CALL section_add_keyword(subsection, keyword)
1060 CALL keyword_release(keyword)
1061 CALL keyword_create(keyword, __location__, name="D3BJ_SCALING", &
1062 description="XC Functional dependent scaling parameters (s6,a1,s8,a2) for the DFT-D3(BJ) method."// &
1063 " If omitted, CP2K attempts"// &
1064 " to guess the xc functional from REFERENCE_FUNCTIONAL and sets the associated scaling parameter.", &
1065 usage="D3BJ_SCALING 1.0 1.0 1.0 1.0", n_var=4, &
1066 default_r_vals=[0.0_dp, 0.0_dp, 0.0_dp, 0.0_dp])
1067 CALL section_add_keyword(subsection, keyword)
1068 CALL keyword_release(keyword)
1069 CALL keyword_create(keyword, __location__, name="D4_SCALING", &
1070 description="XC Functional dependent scaling parameters (s6,a1,s8,a2) for the DFT-D4 method."// &
1071 " If omitted, CP2K attempts"// &
1072 " to guess the xc functional from REFERENCE_FUNCTIONAL and sets the associated scaling parameter.", &
1073 usage="D4_SCALING 1.0 1.0 1.0 1.0", n_var=4, &
1074 default_r_vals=[0.0_dp, 0.0_dp, 0.0_dp, 0.0_dp])
1075 CALL section_add_keyword(subsection, keyword)
1076 CALL keyword_release(keyword)
1077 CALL keyword_create(keyword, __location__, name="CALCULATE_C9_TERM", &
1078 description="Calculate C9 terms in DFT-D3 model", &
1079 usage="CALCULATE_C9_TERM", default_l_val=.false., &
1080 lone_keyword_l_val=.true.)
1081 CALL section_add_keyword(subsection, keyword)
1082 CALL keyword_release(keyword)
1083 CALL keyword_create(keyword, __location__, name="REFERENCE_C9_TERM", &
1084 description="Calculate C9 terms in DFT-D3 model using reference coordination numbers", &
1085 usage="REFERENCE_C9_TERM", default_l_val=.false., &
1086 lone_keyword_l_val=.true.)
1087 CALL section_add_keyword(subsection, keyword)
1088 CALL keyword_release(keyword)
1089 CALL keyword_create(keyword, __location__, name="FACTOR_S9_TERM", &
1090 description="S9 prefactor of the many-body term in the DFT-D4 method.", &
1091 usage="FACTOR_S9_TERM 1.e-0", default_r_val=1.00_dp)
1092 CALL section_add_keyword(subsection, keyword)
1093 CALL keyword_release(keyword)
1094 CALL keyword_create(keyword, __location__, name="LONG_RANGE_CORRECTION", &
1095 description="Calculate a long range correction to the DFT-D3 model."// &
1096 " WARNING: Use with care! Only for isotropic dense systems.", &
1097 usage="LONG_RANGE_CORRECTION", default_l_val=.false., &
1098 lone_keyword_l_val=.true.)
1099 CALL section_add_keyword(subsection, keyword)
1100 CALL keyword_release(keyword)
1101 CALL keyword_create(keyword, __location__, name="SHORT_RANGE_CORRECTION", &
1102 description="Calculate a short-range bond correction to the DFT-D3 model", &
1103 usage="SHORT_RANGE_CORRECTION", default_l_val=.false., &
1104 lone_keyword_l_val=.true.)
1105 CALL section_add_keyword(subsection, keyword)
1106 CALL keyword_release(keyword)
1107 CALL keyword_create(keyword, __location__, name="SHORT_RANGE_CORRECTION_PARAMETERS", &
1108 description="Parameters for the short-range bond correction to the DFT-D3 model. "// &
1109 "s*(za*zb)^t1*EXP(-g*dr*r0ab^t2), parameters: s, g, t1, t2 "// &
1110 "Defaults: s=0.08, g=10.0, t1=0.5, t2=-1.0 ", &
1111 usage="SHORT_RANGE_CORRECTION_PARAMETERS", default_r_vals=[0.08_dp, 10.0_dp, 0.5_dp, -1.0_dp], &
1112 n_var=4, type_of_var=real_t)
1113 CALL section_add_keyword(subsection, keyword)
1114 CALL keyword_release(keyword)
1115 ! KG molecular corrections
1116 CALL keyword_create(keyword, __location__, name="MOLECULE_CORRECTION", &
1117 description="Calculate a intermolecular correction to the DFT-D3 model", &
1118 usage="MOLECULE_CORRECTION", default_l_val=.false., &
1119 lone_keyword_l_val=.true.)
1120 CALL section_add_keyword(subsection, keyword)
1121 CALL keyword_release(keyword)
1122 CALL keyword_create(keyword, __location__, name="MOLECULE_CORRECTION_C8", &
1123 description="Calculate a intermolecular correction to the C8 term in the DFT-D3 model", &
1124 usage="MOLECULE_CORRECTION_C8 1.0 ", default_r_val=0.0_dp)
1125 CALL section_add_keyword(subsection, keyword)
1126 CALL keyword_release(keyword)
1127 CALL keyword_create(keyword, __location__, name="VERBOSE_OUTPUT", &
1128 description="Extensive output for the DFT-D2 and DFT-D3 models."// &
1129 " Needs PRINT_DFTD section to be specified.", &
1130 usage="VERBOSE_OUTPUT", default_l_val=.false., &
1131 lone_keyword_l_val=.true.)
1132 CALL section_add_keyword(subsection, keyword)
1133 CALL keyword_release(keyword)
1134
1135 ! Set coordination numbers by atom numbers
1136 CALL keyword_create(keyword, __location__, name="D3_EXCLUDE_KIND", &
1137 description="Specifies the atomic kinds excluded in the DFT-D3 calculation.", &
1138 usage="D3_EXCLUDE_KIND kind1 kind2 ... ", repeats=.false., &
1139 n_var=-1, type_of_var=integer_t)
1140 CALL section_add_keyword(subsection, keyword)
1141 CALL keyword_release(keyword)
1142
1143 ! Ignore selected pair interactins
1144 CALL keyword_create(keyword, __location__, name="D3_EXCLUDE_KIND_PAIR", &
1145 description="Specifies the atomic kinds for interactions excluded from the DFT-D3 calculation.", &
1146 usage="D3_EXCLUDE_KIND_PAIR kind1 kind2 ", repeats=.true., &
1147 n_var=2, type_of_var=integer_t)
1148 CALL section_add_keyword(subsection, keyword)
1149 CALL keyword_release(keyword)
1150
1151 ! Set coordination numbers by atom kinds
1152 CALL keyword_create(keyword, __location__, name="KIND_COORDINATION_NUMBERS", &
1153 description="Specifies the coordination number for a kind for the C9 term in DFT-D3.", &
1154 usage="KIND_COORDINATION_NUMBERS CN kind ", repeats=.true., &
1155 n_var=-1, type_of_var=char_t)
1156 CALL section_add_keyword(subsection, keyword)
1157 CALL keyword_release(keyword)
1158 ! Set coordination numbers by atom numbers
1159 CALL keyword_create(keyword, __location__, name="ATOM_COORDINATION_NUMBERS", &
1160 description="Specifies the coordination number of a set of atoms for the C9 term in DFT-D3.", &
1161 usage="ATOM_COORDINATION_NUMBERS CN atom1 atom2 ... ", repeats=.true., &
1162 n_var=-1, type_of_var=char_t)
1163 CALL section_add_keyword(subsection, keyword)
1164 CALL keyword_release(keyword)
1165
1166 ! parameter specification atom by atom
1167 CALL keyword_create(keyword, __location__, name="ATOMPARM", &
1168 description="Specifies parameters for atom types (in atomic units). If "// &
1169 "not provided default parameters are used (DFT-D2).", &
1170 usage="ATOMPARM <ELEMENT> <C6_parameter> <vdw_radii>", &
1171 repeats=.true., n_var=-1, type_of_var=char_t)
1172 CALL section_add_keyword(subsection, keyword)
1173 CALL keyword_release(keyword)
1174
1175 NULLIFY (print_key)
1176 CALL cp_print_key_section_create(print_key, __location__, "PRINT_DFTD", &
1177 description="Controls the printing of some info about DFTD contributions", &
1178 print_level=high_print_level, add_last=add_last_numeric, filename="")
1179 CALL section_add_subsection(subsection, print_key)
1180 CALL section_release(print_key)
1181
1182 NULLIFY (newsection)
1183 CALL create_eeq_control_section(newsection)
1184 CALL section_add_subsection(subsection, newsection)
1185 CALL section_release(newsection)
1186
1187 CALL section_add_subsection(section, subsection)
1188 CALL section_release(subsection)
1189
1190 ! nonlocal section
1191 NULLIFY (subsection, keyword)
1192 CALL section_create(subsection, __location__, name="NON_LOCAL", &
1193 description="Information on the non local part of dispersion functionals. "// &
1194 "Correct functionals require a corresponding setting of XC_FUNCTIONAL.", &
1195 n_keywords=0, n_subsections=0, repeats=.true.)
1196
1197 CALL keyword_create(keyword, __location__, name="TYPE", &
1198 description="Type of functional (the corresponding kernel data file should be selected). "// &
1199 "Allows for common forms such as vdW-DF, vdW-DF2, optB88-vdW, rVV10.", &
1200 usage="TYPE DRSLL", &
1201 enum_c_vals=s2a("DRSLL", "LMKLL", "RVV10"), &
1202 enum_i_vals=[vdw_nl_drsll, vdw_nl_lmkll, vdw_nl_rvv10], &
1203 enum_desc=s2a("Dion-Rydberg-Schroeder-Langreth-Lundqvist nonlocal van der Waals density functional", &
1204 "Lee-Murray-Kong-Lundqvist-Langreth nonlocal van der Waals density functional", &
1205 "Revised Vydrov-van Voorhis nonlocal van der Waals density functional"), &
1206 citations=[tran2013], &
1207 default_i_val=vdw_nl_drsll)
1208 CALL section_add_keyword(subsection, keyword)
1209 CALL keyword_release(keyword)
1210 CALL keyword_create(keyword, __location__, name="VERBOSE_OUTPUT", &
1211 description="Extensive output for non local functionals", &
1212 usage="VERBOSE_OUTPUT", default_l_val=.false., &
1213 lone_keyword_l_val=.true.)
1214 CALL section_add_keyword(subsection, keyword)
1215 CALL keyword_release(keyword)
1216 CALL keyword_create(keyword, __location__, name="KERNEL_FILE_NAME", &
1217 description="Name of the kernel data file, may include a path. "// &
1218 "vdW_kernel_table.dat is for DRSLL and LMKLL and "// &
1219 "rVV10_kernel_table.dat is for rVV10.", &
1220 usage="KERNEL_FILE_NAME <FILENAME>", &
1221 default_lc_val="vdW_kernel_table.dat")
1222 CALL section_add_keyword(subsection, keyword)
1223 CALL keyword_release(keyword)
1224 CALL keyword_create(keyword, __location__, name="CUTOFF", &
1225 description="The cutoff of the FFT grid used in the calculation "// &
1226 "of the nonlocal vdW functional [Ry].", &
1227 usage="CUTOFF 300", &
1228 default_r_val=-1._dp, unit_str="Ry")
1229 CALL section_add_keyword(subsection, keyword)
1230 CALL keyword_release(keyword)
1231 CALL keyword_create(keyword, __location__, name="PARAMETERS", &
1232 description="Parameters b and C of the rVV10 functional", &
1233 usage="PARAMETERS 6.3 0.0093", &
1234 type_of_var=real_t, default_r_vals=[6.3_dp, 0.0093_dp], n_var=2)
1235 CALL section_add_keyword(subsection, keyword)
1236 CALL keyword_release(keyword)
1237 CALL keyword_create(keyword, __location__, name="SCALE", &
1238 description="Scales the energy contribution of the rVV10 functional", &
1239 usage="SCALE 1.0", &
1240 type_of_var=real_t, default_r_val=1.0_dp)
1241 CALL section_add_keyword(subsection, keyword)
1242 CALL keyword_release(keyword)
1243
1244 CALL section_add_subsection(section, subsection)
1245 CALL section_release(subsection)
1246
1247 END SUBROUTINE create_vdw_potential_section
1248
1249! **************************************************************************************************
1250!> \brief creates the structure of the section needed for gCP potentials
1251!> \param section the section that will be created
1252!> \author jgh
1253! **************************************************************************************************
1254 SUBROUTINE create_gcp_potential_section(section)
1255 TYPE(section_type), POINTER :: section
1256
1257 TYPE(keyword_type), POINTER :: keyword
1258
1259 cpassert(.NOT. ASSOCIATED(section))
1260 CALL section_create(section, __location__, name="gcp_potential", &
1261 description="This section combines geometrical counterpoise potentials."// &
1262 " This is a simple empirical pair potential to correct for BSSE. ", &
1263 citations=[kruse2012], &
1264 n_keywords=1, n_subsections=1, repeats=.false.)
1265
1266 NULLIFY (keyword)
1267 CALL keyword_create(keyword, __location__, name="PARAMETER_FILE_NAME", &
1268 description="Name of the parameter file, may include a path", &
1269 usage="PARAMETER_FILE_NAME <FILENAME>", &
1270 default_lc_val="---")
1271 CALL section_add_keyword(section, keyword)
1272 CALL keyword_release(keyword)
1273
1274 CALL keyword_create(keyword, __location__, name="GLOBAL_PARAMETERS", &
1275 description="Global parameters of the gCP method."// &
1276 " Parameters are sigma, alpha, beta, eta from the original paper.", &
1277 usage="GLOBAL_PARAMETERS 1.0 1.0 1.0 1.0", n_var=4, &
1278 default_r_vals=[0.0_dp, 0.0_dp, 0.0_dp, 0.0_dp])
1279 CALL section_add_keyword(section, keyword)
1280 CALL keyword_release(keyword)
1281
1282 CALL keyword_create(keyword, __location__, name="DELTA_ENERGY", &
1283 description="Specify the delta energy [Hartree] term for an atom kind", &
1284 usage="DELTA_ENERGY type value", &
1285 type_of_var=char_t, repeats=.true., n_var=-1, default_c_vals=["XX ", "0.0"])
1286 CALL section_add_keyword(section, keyword)
1287 CALL keyword_release(keyword)
1288
1289 CALL keyword_create(keyword, __location__, name="VERBOSE", &
1290 description="Verbose output for gCP calculation", &
1291 usage="VERBOSE logical_value", &
1292 default_l_val=.true., lone_keyword_l_val=.true.)
1293 CALL section_add_keyword(section, keyword)
1294 CALL keyword_release(keyword)
1295
1296 END SUBROUTINE create_gcp_potential_section
1297
1298! **************************************************************************************************
1299!> \brief creates the structure of the GAUXC section
1300!> \param section the section that will be created
1301!> \author fawzi
1302! **************************************************************************************************
1303 SUBROUTINE create_gauxc_section(section)
1304 TYPE(section_type), POINTER :: section
1305
1306 TYPE(keyword_type), POINTER :: keyword
1307
1308 cpassert(.NOT. ASSOCIATED(section))
1309 CALL section_create(section, __location__, name="GAUXC", &
1310 description="Use exchange-correlation functionals provided by GauXC. "// &
1311 "The current CP2K bridge uses GauXC's molecular quadrature. Periodic inputs "// &
1312 "are limited to isolated validation cells and are not compact periodic "// &
1313 "material calculations.", &
1314 n_keywords=27, n_subsections=0, repeats=.false.)
1315
1316 NULLIFY (keyword)
1317
1318 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
1319 description="activates the functional", &
1320 lone_keyword_l_val=.true., default_l_val=.false.)
1321 CALL section_add_keyword(section, keyword)
1322 CALL keyword_release(keyword)
1323
1324 CALL keyword_create(keyword, __location__, name="FUNCTIONAL", &
1325 description="Functional name used to create the GauXC integrator. "// &
1326 "If MODEL is set, this optional base functional defaults to PBE and "// &
1327 "does not need to be specified for MODEL SKALA inputs.", &
1328 default_c_val="PBE")
1329 CALL section_add_keyword(section, keyword)
1330 CALL keyword_release(keyword)
1331
1332 CALL keyword_create(keyword, __location__, name="MODEL", &
1333 description="GauXC OneDFT model name or path. Use NONE for conventional GauXC. "// &
1334 "MODEL SKALA selects the installed Skala-1.1 model when available; "// &
1335 "other OneDFT models are supplied as .fun files or model names. "// &
1336 "NLCC pseudopotentials are rejected in the molecular GauXC OneDFT/SKALA "// &
1337 "path; use the CP2K-native SKALA grid path for NLCC calculations.", &
1338 usage="MODEL SKALA", &
1339 default_c_val="NONE")
1340 CALL section_add_keyword(section, keyword)
1341 CALL keyword_release(keyword)
1342
1343 CALL keyword_create(keyword, __location__, name="GRID", &
1344 description="Atomic grid size for GauXC. OneDFT/SKALA defaults to SUPERFINE "// &
1345 "unless this keyword is set explicitly.", &
1346 usage="GRID fine", &
1347 enum_c_vals=s2a("FINE", "ULTRAFINE", "SUPERFINE", "GM3", "GM5"), &
1348 enum_i_vals=[1, 2, 3, 4, 5], &
1349 enum_desc=s2a("Fine grid (default)", &
1350 "Ultra fine grid", &
1351 "Super fine grid", &
1352 "GM3 grid", &
1353 "GM5 grid"), &
1354 default_i_val=1)
1355 CALL section_add_keyword(section, keyword)
1356 CALL keyword_release(keyword)
1357
1358 CALL keyword_create(keyword, __location__, name="RADIAL_QUADRATURE", &
1359 description="Radial quadrature scheme for GauXC", &
1360 usage="RADIAL_QUADRATURE muraknowles", &
1361 enum_c_vals=s2a("MURAKNOWLES", "BECKE", "TREUTLERAHLRICHS", "MURRAYHANDYLAMING"), &
1362 enum_i_vals=[1, 2, 3, 4], &
1363 enum_desc=s2a("Mura-Knowles radial quadrature (default)", &
1364 "Becke radial quadrature", &
1365 "Treutler-Ahlrichs radial quadrature", &
1366 "Murray-Handy-Laming radial quadrature"), &
1367 default_i_val=1)
1368 CALL section_add_keyword(section, keyword)
1369 CALL keyword_release(keyword)
1370
1371 CALL keyword_create(keyword, __location__, name="PRUNING_SCHEME", &
1372 description="Pruning scheme for GauXC. OneDFT/SKALA defaults to UNPRUNED "// &
1373 "unless this keyword is set explicitly.", &
1374 usage="PRUNING_SCHEME robust", &
1375 enum_c_vals=s2a("ROBUST", "TREUTLER", "UNPRUNED"), &
1376 enum_i_vals=[1, 2, 3], &
1377 enum_desc=s2a("Robust pruning (default)", &
1378 "Treutler pruning", &
1379 "Unpruned grid"), &
1380 default_i_val=1)
1381 CALL section_add_keyword(section, keyword)
1382 CALL keyword_release(keyword)
1383
1384 CALL keyword_create(keyword, __location__, name="BATCH_SIZE", &
1385 description="Batch size for GauXC evaluation", &
1386 usage="BATCH_SIZE 512", &
1387 default_i_val=512)
1388 CALL section_add_keyword(section, keyword)
1389 CALL keyword_release(keyword)
1390
1391 CALL keyword_create(keyword, __location__, name="DEVICE_RUNTIME_FILL_FRACTION", &
1392 description="Fraction of currently available GPU memory preallocated by "// &
1393 "a GauXC device runtime. Lower values leave more memory for OneDFT/SKALA "// &
1394 "Torch inference; this keyword is used only with LB_EXECUTION_SPACE DEVICE.", &
1395 usage="DEVICE_RUNTIME_FILL_FRACTION 0.1", &
1396 default_r_val=0.1_dp)
1397 CALL section_add_keyword(section, keyword)
1398 CALL keyword_release(keyword)
1399
1400 CALL keyword_create(keyword, __location__, name="ONEDFT_ATOM_CHUNK_SIZE", &
1401 description="Atom chunk size for GauXC OneDFT/SKALA Torch inference. "// &
1402 "A positive value evaluates the Torch model atom block by atom block; "// &
1403 "zero disables chunking; the default leaves GauXC's model-specific policy "// &
1404 "or the GAUXC_ONEDFT_ATOM_CHUNK_SIZE environment variable in control.", &
1405 usage="ONEDFT_ATOM_CHUNK_SIZE 3", &
1406 default_i_val=-1)
1407 CALL section_add_keyword(section, keyword)
1408 CALL keyword_release(keyword)
1409
1410 CALL keyword_create(keyword, __location__, name="PERIODIC_REFERENCE", &
1411 description="Explicitly opt into the limited isolated-cell GauXC reference "// &
1412 "path for periodic CP2K inputs. This path is restricted to Gamma-only, "// &
1413 "single-image METHOD GPW calculations with GTH pseudopotentials and uses "// &
1414 "GauXC's molecular quadrature; compact periodic materials require a "// &
1415 "dedicated periodic GauXC interface.", &
1416 usage="PERIODIC_REFERENCE T", &
1417 default_l_val=.false., lone_keyword_l_val=.true.)
1418 CALL section_add_keyword(section, keyword)
1419 CALL keyword_release(keyword)
1420
1421 CALL keyword_create(keyword, __location__, name="NATIVE_GRID", &
1422 description="Experimental CP2K-native GPW real-space-grid path for SKALA "// &
1423 "TorchScript models. This bypasses GauXC molecular quadrature and supports "// &
1424 "isolated, partially periodic, and fully periodic METHOD GPW cells with "// &
1425 "GTH/ECP pseudopotentials and METHOD GAPW/GAPW_XC cells. GAPW with "// &
1426 "GTH/ECP pseudopotentials can use KIND%GPW_TYPE regular-grid features or "// &
1427 "the GAPW one-center XC correction; GAPW all-electron uses the "// &
1428 "all-electron regular-grid density. The current implementation is limited "// &
1429 "to a single GAUXC functional and provides energy, VXC, and experimental "// &
1430 "analytical nuclear-gradient/stress evaluations. K-point runs use CP2K's "// &
1431 "standard k-point and symmetry-reduction infrastructure; the CPU "// &
1432 "TorchScript path may require preloading libtorch_cpu.so before OpenBLAS, "// &
1433 "whereas CUDA k-point runs should not preload CPU-only Torch libraries. "// &
1434 "MPI runs collect a global atom-partitioned feature block by default; "// &
1435 "NATIVE_GRID_ATOM_CHUNKS can split the Torch evaluation by atom block. "// &
1436 "PAW/one-center GAPW+GTH/ECP and METHOD GAPW_XC use CP2K's GAPW hard/soft "// &
1437 "one-center XC correction with a selectable "// &
1438 "NATIVE_GRID_GAPW_DENSITY_PARTITION. ROKS, ADMM, and non-k-point "// &
1439 "multiple-image calculations are not implemented.", &
1440 usage="NATIVE_GRID T", &
1441 default_l_val=.false., lone_keyword_l_val=.true.)
1442 CALL section_add_keyword(section, keyword)
1443 CALL keyword_release(keyword)
1444
1445 CALL keyword_create(keyword, __location__, name="NATIVE_GRID_USE_CUDA", &
1446 description="Evaluate the experimental CP2K-native SKALA GPW TorchScript "// &
1447 "model on CUDA when libtorch CUDA support is available. This requires a "// &
1448 "CUDA-compatible SKALA model export; MODEL SKALA first checks "// &
1449 "GAUXC_SKALA_CUDA_MODEL in this mode and otherwise falls back to "// &
1450 "GAUXC_SKALA_MODEL. The portable default uses CPU tensors.", &
1451 usage="NATIVE_GRID_USE_CUDA T", &
1452 default_l_val=.false., lone_keyword_l_val=.true.)
1453 CALL section_add_keyword(section, keyword)
1454 CALL keyword_release(keyword)
1455
1456 CALL keyword_create(keyword, __location__, name="NATIVE_GRID_CUDA_DEVICE", &
1457 description="CUDA device used by the experimental CP2K-native SKALA GPW "// &
1458 "TorchScript path when NATIVE_GRID_USE_CUDA is enabled. A negative value "// &
1459 "maps the MPI-local rank to one of the CUDA devices visible to the process; "// &
1460 "CUDA exports with device-specific TorchScript constants may require a "// &
1461 "rank-local CUDA_VISIBLE_DEVICES list. A non-negative value selects that "// &
1462 "visible CUDA device explicitly.", &
1463 usage="NATIVE_GRID_CUDA_DEVICE -1", &
1464 default_i_val=-1)
1465 CALL section_add_keyword(section, keyword)
1466 CALL keyword_release(keyword)
1467
1468 CALL keyword_create(keyword, __location__, name="NATIVE_GRID_ATOM_PARTITION", &
1469 description="Atom partition used to build the experimental CP2K-native "// &
1470 "SKALA regular-grid feature block. HARD assigns each native grid point to "// &
1471 "the nearest periodic atom and is intended for legacy energy/VXC-only runs. "// &
1472 "SMOOTH uses a Becke-like fuzzy-cell partition on the native grid and creates "// &
1473 "weighted atom rows. Analytical atom forces and stress use the differentiable "// &
1474 "SMOOTH partition internally because the corresponding partition-weight "// &
1475 "derivatives enter the SKALA feature response.", &
1476 usage="NATIVE_GRID_ATOM_PARTITION SMOOTH", &
1477 enum_c_vals=s2a("HARD", "SMOOTH"), &
1478 enum_i_vals=[1, 2], &
1479 enum_desc=s2a("Assign each grid point to the nearest atom", &
1480 "Use a smooth Becke-like native-grid atom partition"), &
1481 default_i_val=2)
1482 CALL section_add_keyword(section, keyword)
1483 CALL keyword_release(keyword)
1484
1485 CALL keyword_create(keyword, __location__, name="NATIVE_GRID_GAPW_DENSITY_PARTITION", &
1486 description="Hard/soft one-center density contribution used by METHOD "// &
1487 "GAPW and METHOD GAPW_XC in OneDFT/SKALA atomic-grid corrections. "// &
1488 "HARD_MINUS_SOFT evaluates the SKALA model on hard and soft atomic "// &
1489 "densities separately and adds the GAPW hard-minus-soft correction; this "// &
1490 "is the default because it follows CP2K's GAPW XC expression. For "// &
1491 "pseudopotential PAW/one-center GAPW this is distinct from KIND%GPW_TYPE, "// &
1492 "which uses the regular-grid valence-density approximation. "// &
1493 "HARD_ONLY, SOFT_ONLY, and NONE are diagnostic variants.", &
1494 usage="NATIVE_GRID_GAPW_DENSITY_PARTITION HARD_MINUS_SOFT", &
1495 enum_c_vals=s2a("HARD_MINUS_SOFT", "HARD_ONLY", "SOFT_ONLY", "NONE"), &
1496 enum_i_vals=[1, 2, 3, 4], &
1497 enum_desc=s2a("Use the hard-minus-soft GAPW one-center correction", &
1498 "Use only the hard one-center density", &
1499 "Use only the soft one-center density with the GAPW sign", &
1500 "Disable the GAPW one-center SKALA correction"), &
1501 default_i_val=1)
1502 CALL section_add_keyword(section, keyword)
1503 CALL keyword_release(keyword)
1504
1505 CALL keyword_create(keyword, __location__, name="NATIVE_GRID_ATOM_CHUNKS", &
1506 description="Split the experimental CP2K-native SKALA GPW TorchScript "// &
1507 "evaluation into contiguous atom blocks. MPI runs evaluate one atom block per "// &
1508 "rank, while single-rank runs can still use atom subchunks to reduce peak CUDA "// &
1509 "memory. Dynamic feature rows and VXC gradients are routed between their "// &
1510 "local grid and atom-block owner ranks. Analytical force and stress runs use "// &
1511 "the full differentiable tensor graph instead of routed atom chunks.", &
1512 usage="NATIVE_GRID_ATOM_CHUNKS T", &
1513 default_l_val=.false., lone_keyword_l_val=.true.)
1514 CALL section_add_keyword(section, keyword)
1515 CALL keyword_release(keyword)
1516
1517 CALL keyword_create(keyword, __location__, name="NATIVE_GRID_ATOM_CHUNK_ROUTING", &
1518 description="Compatibility alias for the routed experimental CP2K-native "// &
1519 "SKALA GPW atom chunks. This implies NATIVE_GRID_ATOM_CHUNKS.", &
1520 usage="NATIVE_GRID_ATOM_CHUNK_ROUTING T", &
1521 default_l_val=.false., lone_keyword_l_val=.true.)
1522 CALL section_add_keyword(section, keyword)
1523 CALL keyword_release(keyword)
1524
1525 CALL keyword_create(keyword, __location__, name="NATIVE_GRID_ATOM_CHUNK_MAX_ROWS", &
1526 description="Maximum number of atom-grid rows evaluated by one TorchScript "// &
1527 "call in the experimental CP2K-native SKALA GPW atom-chunk path. A positive "// &
1528 "value splits each rank-local atom chunk into contiguous atom subchunks to "// &
1529 "reduce peak CUDA memory use; zero disables subchunking; -1 selects an "// &
1530 "automatic CUDA-oriented row cap.", &
1531 usage="NATIVE_GRID_ATOM_CHUNK_MAX_ROWS 250000", &
1532 default_i_val=-1)
1533 CALL section_add_keyword(section, keyword)
1534 CALL keyword_release(keyword)
1535
1536 CALL keyword_create(keyword, __location__, name="NATIVE_GRID_DIAGNOSTICS", &
1537 description="Print diagnostic integrals of the CP2K-native SKALA GPW feature "// &
1538 "block, including electron count, spin moment, and summed grid weights.", &
1539 usage="NATIVE_GRID_DIAGNOSTICS T", &
1540 default_l_val=.false., lone_keyword_l_val=.true.)
1541 CALL section_add_keyword(section, keyword)
1542 CALL keyword_release(keyword)
1543
1544 CALL keyword_create(keyword, __location__, name="MOLECULAR_VIRIAL", &
1545 description="Print a molecular XC virial diagnostic computed from GauXC "// &
1546 "nuclear gradients. This is not an analytical periodic stress tensor.", &
1547 usage="MOLECULAR_VIRIAL T", &
1548 default_l_val=.false., lone_keyword_l_val=.true.)
1549 CALL section_add_keyword(section, keyword)
1550 CALL keyword_release(keyword)
1551
1552 CALL keyword_create(keyword, __location__, name="MOLECULAR_VIRIAL_DEBUG", &
1553 description="Check the GauXC molecular XC virial diagnostic against a "// &
1554 "finite-difference affine scaling of the molecular coordinates.", &
1555 usage="MOLECULAR_VIRIAL_DEBUG T", &
1556 default_l_val=.false., lone_keyword_l_val=.true.)
1557 CALL section_add_keyword(section, keyword)
1558 CALL keyword_release(keyword)
1559
1560 CALL keyword_create(keyword, __location__, name="MOLECULAR_VIRIAL_DEBUG_DX", &
1561 description="Dimensionless finite-difference step for MOLECULAR_VIRIAL_DEBUG.", &
1562 usage="MOLECULAR_VIRIAL_DEBUG_DX 1.0E-4", &
1563 default_r_val=1.0e-4_dp)
1564 CALL section_add_keyword(section, keyword)
1565 CALL keyword_release(keyword)
1566
1567 CALL keyword_create(keyword, __location__, name="LB_EXECUTION_SPACE", &
1568 description="Execution space for load balancer in GauXC", &
1569 usage="LB_EXECUTION_SPACE host", &
1570 enum_c_vals=s2a("HOST", "DEVICE"), &
1571 enum_i_vals=[1, 2], &
1572 enum_desc=s2a("Run on host (default)", &
1573 "Run on device"), &
1574 default_i_val=1)
1575 CALL section_add_keyword(section, keyword)
1576 CALL keyword_release(keyword)
1577
1578 CALL keyword_create(keyword, __location__, name="INT_EXECUTION_SPACE", &
1579 description="Execution space for integrator in GauXC", &
1580 usage="INT_EXECUTION_SPACE host", &
1581 enum_c_vals=s2a("HOST", "DEVICE"), &
1582 enum_i_vals=[1, 2], &
1583 enum_desc=s2a("Run on host (default)", &
1584 "Run on device"), &
1585 default_i_val=1)
1586 CALL section_add_keyword(section, keyword)
1587 CALL keyword_release(keyword)
1588
1589 CALL keyword_create(keyword, __location__, name="LWD_KERNEL", &
1590 description="Local work driver kernel used by the GauXC integrator. "// &
1591 "DEFAULT uses GauXC's default for the selected execution space. "// &
1592 "Device builds with CUTLASS support can use SCHEME1-CUTLASS to run "// &
1593 "the grouped local potential update through CUTLASS.", &
1594 usage="LWD_KERNEL DEFAULT", &
1595 default_c_val="DEFAULT")
1596 CALL section_add_keyword(section, keyword)
1597 CALL keyword_release(keyword)
1598
1599 CALL keyword_create(keyword, __location__, name="SKALA_RUNTIME", &
1600 description="MPI communicator policy for GauXC OneDFT/SKALA. AUTO uses "// &
1601 "the force-evaluation communicator for closed-shell calculations and a "// &
1602 "rank-local replicated runtime for open-shell calculations. MPI forces the "// &
1603 "force-evaluation communicator. SELF forces the previous replicated mode.", &
1604 usage="SKALA_RUNTIME AUTO", &
1605 enum_c_vals=s2a("AUTO", "MPI", "SELF"), &
1606 enum_i_vals=[1, 2, 3], &
1607 enum_desc=s2a("Closed-shell MPI, open-shell replicated (default)", &
1608 "Use the force-evaluation MPI communicator", &
1609 "Use rank-local replicated GauXC runtimes"), &
1610 default_i_val=1)
1611 CALL section_add_keyword(section, keyword)
1612 CALL keyword_release(keyword)
1613
1614 CALL keyword_create(keyword, __location__, name="ONEDFT_GRADIENT_RUNTIME", &
1615 description="MPI communicator policy for GauXC OneDFT/SKALA nuclear gradients. "// &
1616 "AUTO keeps the conservative rank-local gradient runtime when energy/VXC uses "// &
1617 "the MPI communicator. MPI uses the force-evaluation communicator for gradients "// &
1618 "and requires GauXC support for distributed OneDFT/SKALA gradients. SELF forces "// &
1619 "rank-local replicated gradient runtimes.", &
1620 usage="ONEDFT_GRADIENT_RUNTIME AUTO", &
1621 enum_c_vals=s2a("AUTO", "MPI", "SELF"), &
1622 enum_i_vals=[1, 2, 3], &
1623 enum_desc=s2a("Conservative replicated gradient runtime (default)", &
1624 "Use the force-evaluation MPI communicator when supported", &
1625 "Use rank-local replicated gradient runtimes"), &
1626 default_i_val=1)
1627 CALL section_add_keyword(section, keyword)
1628 CALL keyword_release(keyword)
1629
1630 CALL keyword_create(keyword, __location__, name="OUTPUT_PATH", &
1631 description="Optional path to an existing directory for GauXC HDF5 debug output. "// &
1632 "If set, molecule and basis set data are written as separate HDF5 files.", &
1633 usage="OUTPUT_PATH /path/to/output", &
1634 default_c_val="")
1635 CALL section_add_keyword(section, keyword)
1636 CALL keyword_release(keyword)
1637
1638 END SUBROUTINE create_gauxc_section
1639
1640! **************************************************************************************************
1641!> \brief creates the input section for the xc part
1642!> \param section the section to create
1643!> \author fawzi
1644! **************************************************************************************************
1645 SUBROUTINE create_xc_section(section)
1646 TYPE(section_type), POINTER :: section
1647
1648 TYPE(keyword_type), POINTER :: keyword
1649 TYPE(section_type), POINTER :: subsection
1650
1651 cpassert(.NOT. ASSOCIATED(section))
1652 CALL section_create(section, __location__, name="xc", &
1653 description="Parameters needed for the calculation of the eXchange and Correlation potential", &
1654 n_keywords=5, n_subsections=2, repeats=.false.)
1655
1656 NULLIFY (subsection, keyword)
1657
1658 CALL keyword_create(keyword, __location__, name="density_cutoff", &
1659 description="The cutoff on the density used by the xc calculation", &
1660 usage="density_cutoff 1.e-11", default_r_val=1.0e-10_dp)
1661 CALL section_add_keyword(section, keyword)
1662 CALL keyword_release(keyword)
1663
1664 CALL keyword_create(keyword, __location__, name="gradient_cutoff", &
1665 description="The cutoff on the gradient of the density used by the "// &
1666 "xc calculation", &
1667 usage="gradient_cutoff 1.e-11", default_r_val=1.0e-10_dp)
1668 CALL section_add_keyword(section, keyword)
1669 CALL keyword_release(keyword)
1670
1671 CALL keyword_create(keyword, __location__, name="DENSITY_SMOOTH_CUTOFF_RANGE", &
1672 description="Parameter for the smoothing procedure in xc calculation", &
1673 usage="DENSITY_SMOOTH_CUTOFF_RANGE {real}", default_r_val=0.0_dp)
1674 CALL section_add_keyword(section, keyword)
1675 CALL keyword_release(keyword)
1676
1677 CALL keyword_create(keyword, __location__, name="tau_cutoff", &
1678 description="The cutoff on tau used by the xc calculation", &
1679 usage="tau_cutoff 1.e-11", default_r_val=1.0e-10_dp)
1680 CALL section_add_keyword(section, keyword)
1681 CALL keyword_release(keyword)
1682
1683 CALL section_create(subsection, __location__, name="xc_grid", & !FM to do
1684 description="The xc parameters used when calculating the xc on the grid", &
1685 n_keywords=6, n_subsections=0, repeats=.false.)
1686 CALL keyword_create(keyword, __location__, name="xc_smooth_rho", &
1687 description="The density smoothing used for the xc calculation", &
1688 usage="xc_smooth_rho nn10", default_i_val=xc_rho_no_smooth, &
1689 enum_c_vals=s2a("NONE", "NN50", "NN10", "SPLINE2", "NN6", "SPLINE3", "NN4"), &
1690 enum_i_vals=[xc_rho_no_smooth, xc_rho_nn50, xc_rho_nn10, &
1693 CALL section_add_keyword(subsection, keyword)
1694 CALL keyword_release(keyword)
1695
1696 CALL keyword_create(keyword, __location__, name="xc_deriv", &
1697 description="The method used to compute the derivatives", &
1698 usage="xc_deriv NN10_SMOOTH", default_i_val=xc_deriv_pw, &
1699 enum_c_vals=s2a("PW", "SPLINE3", "SPLINE2", "NN50_SMOOTH", "NN10_SMOOTH", &
1700 "SPLINE2_SMOOTH", "NN6_SMOOTH", "SPLINE3_SMOOTH", "NN4_SMOOTH", "COLLOCATE"), &
1705 CALL section_add_keyword(subsection, keyword)
1706 CALL keyword_release(keyword)
1707
1708 CALL keyword_create(keyword, __location__, name="use_finer_grid", &
1709 description="Uses a finer grid only to calculate the xc", &
1710 usage="use_finer_grid", default_l_val=.false., &
1711 lone_keyword_l_val=.true.)
1712 CALL section_add_keyword(subsection, keyword)
1713 CALL keyword_release(keyword)
1714
1715 CALL keyword_create(keyword, __location__, name="fine_grid_factor", &
1716 description="Factor by which the XC grid cutoff is increased when USE_FINER_GRID is active. "// &
1717 "This setting has no effect unless USE_FINER_GRID is enabled. The default of 4.0 preserves "// &
1718 "the historical finer XC grid. Smaller factors can reduce the finer-grid cost, but should "// &
1719 "be checked together with the regular MGRID cutoff convergence.", &
1720 usage="FINE_GRID_FACTOR 4.0", default_r_val=4.0_dp, &
1721 variants=["FINE_XC_FACTOR"])
1722 CALL section_add_keyword(subsection, keyword)
1723 CALL keyword_release(keyword)
1724
1725 CALL keyword_create(keyword, __location__, name="2ND_DERIV_ANALYTICAL", &
1726 description="Use analytical formulas or finite differences for 2nd derivatives of XC", &
1727 usage="2ND_DERIV_ANALYTICAL logical", default_l_val=.true., &
1728 lone_keyword_l_val=.true.)
1729 CALL section_add_keyword(section, keyword)
1730 CALL keyword_release(keyword)
1731
1732 CALL keyword_create(keyword, __location__, name="3RD_DERIV_ANALYTICAL", &
1733 description="Use analytical formulas or finite differences for 3rd derivatives of XC", &
1734 usage="3RD_DERIV_ANALYTICAL logical", default_l_val=.true., &
1735 lone_keyword_l_val=.true.)
1736 CALL section_add_keyword(section, keyword)
1737 CALL keyword_release(keyword)
1738
1739 CALL keyword_create(keyword, __location__, name="STEP_SIZE", &
1740 description="Step size in terms of the first order potential for the numerical "// &
1741 "evaluation of XC derivatives", &
1742 usage="STEP_SIZE 1.0E-3", default_r_val=1e-3_dp)
1743 CALL section_add_keyword(section, keyword)
1744 CALL keyword_release(keyword)
1745
1746 CALL keyword_create(keyword, __location__, name="NSTEPS", &
1747 description="Number of steps to consider in each direction for the numerical "// &
1748 "evaluation of XC derivatives. Must be a value from 1 to 4 (Default: 3).", &
1749 usage="NSTEPS 4", default_i_val=3)
1750 CALL section_add_keyword(section, keyword)
1751 CALL keyword_release(keyword)
1752
1753 CALL section_add_subsection(section, subsection)
1754 CALL section_release(subsection)
1755
1756 CALL create_xc_fun_section(subsection)
1757 CALL section_add_subsection(section, subsection)
1758 CALL section_release(subsection)
1759
1760 CALL create_hfx_section(subsection)
1761 CALL section_add_subsection(section, subsection)
1762 CALL section_release(subsection)
1763
1764 CALL create_mp2_section(subsection)
1765 CALL section_add_subsection(section, subsection)
1766 CALL section_release(subsection)
1767
1768 CALL create_adiabatic_section(subsection)
1769 CALL section_add_subsection(section, subsection)
1770 CALL section_release(subsection)
1771
1772 CALL create_xc_potential_section(subsection)
1773 CALL section_add_subsection(section, subsection)
1774 CALL section_release(subsection)
1775
1776 CALL create_xc_kernel_section(subsection)
1777 CALL section_add_subsection(section, subsection)
1778 CALL section_release(subsection)
1779
1780 CALL create_hfx_kernel_section(subsection)
1781 CALL section_add_subsection(section, subsection)
1782 CALL section_release(subsection)
1783
1784 CALL create_vdw_potential_section(subsection)
1785 CALL section_add_subsection(section, subsection)
1786 CALL section_release(subsection)
1787
1788 CALL create_gcp_potential_section(subsection)
1789 CALL section_add_subsection(section, subsection)
1790 CALL section_release(subsection)
1791
1792 END SUBROUTINE create_xc_section
1793
1794! **************************************************************************************************
1795!> \brief creates the section for adiabatic hybrid functionals
1796!> \param section ...
1797!> \author Manuel Guidon
1798! **************************************************************************************************
1799 SUBROUTINE create_adiabatic_section(section)
1800 TYPE(section_type), POINTER :: section
1801
1802 TYPE(keyword_type), POINTER :: keyword
1803
1804 cpassert(.NOT. ASSOCIATED(section))
1805 CALL section_create(section, __location__, name="ADIABATIC_RESCALING", &
1806 description="Parameters for self interaction corrected hybrid functionals", &
1807 n_keywords=0, n_subsections=0, repeats=.false.)
1808 NULLIFY (keyword)
1809 CALL keyword_create( &
1810 keyword, __location__, &
1811 name="FUNCTIONAL_TYPE", &
1812 description="Which Hybrid functional should be used. "// &
1813 "(Has to be consistent with the definitions in XC and HF).", &
1814 usage="FUNCTIONAL_TYPE MCY3", &
1815 enum_c_vals=s2a("MCY3"), &
1816 enum_i_vals=[do_adiabatic_hybrid_mcy3], &
1817 enum_desc=s2a("Use MCY3 hybrid functional"), &
1818 default_i_val=do_adiabatic_hybrid_mcy3)
1819 CALL section_add_keyword(section, keyword)
1820 CALL keyword_release(keyword)
1821
1822 NULLIFY (keyword)
1823 CALL keyword_create( &
1824 keyword, __location__, &
1825 name="LAMBDA", &
1826 description="The point to be used along the adiabatic curve (0 &lt; &lambda; &lt; 1)", &
1827 usage="LAMBDA 0.71", &
1828 default_r_val=0.71_dp)
1829 CALL section_add_keyword(section, keyword)
1830 CALL keyword_release(keyword)
1831
1832 NULLIFY (keyword)
1833 CALL keyword_create( &
1834 keyword, __location__, &
1835 name="OMEGA", &
1836 description="Long-range parameter", &
1837 usage="OMEGA 0.2", &
1838 default_r_val=0.2_dp)
1839 CALL section_add_keyword(section, keyword)
1840 CALL keyword_release(keyword)
1841
1842 NULLIFY (keyword)
1843 CALL keyword_create( &
1844 keyword, __location__, &
1845 name="FUNCTIONAL_MODEL", &
1846 description="Which model for the coupling constant integration should be used. ", &
1847 usage="FUNCTIONAL_MODEL PADE", &
1848 enum_c_vals=s2a("PADE"), &
1849 enum_i_vals=[do_adiabatic_model_pade], &
1850 enum_desc=s2a("Use pade model: W(lambda)=a+(b*lambda)/(1+c*lambda)"), &
1851 default_i_val=do_adiabatic_model_pade)
1852 CALL section_add_keyword(section, keyword)
1853 CALL keyword_release(keyword)
1854 END SUBROUTINE create_adiabatic_section
1855
1856END 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