(git:ed6f26b)
Loading...
Searching...
No Matches
input_cp2k_atom.F
Go to the documentation of this file.
1!--------------------------------------------------------------------------------------------------!
2! CP2K: A general program to perform molecular dynamics simulations !
3! Copyright 2000-2025 CP2K developers group <https://cp2k.org> !
4! !
5! SPDX-License-Identifier: GPL-2.0-or-later !
6!--------------------------------------------------------------------------------------------------!
7
8! **************************************************************************************************
9!> \brief builds the input structure for the ATOM module
10!> \author jgh
11! **************************************************************************************************
18 USE input_constants, ONLY: &
34 USE input_val_types, ONLY: char_t,&
35 integer_t,&
36 lchar_t,&
37 logical_t,&
38 real_t
39 USE kinds, ONLY: dp
40 USE string_utilities, ONLY: s2a
41#include "./base/base_uses.f90"
42
43 IMPLICIT NONE
44 PRIVATE
45
46 LOGICAL, PRIVATE, PARAMETER :: debug_this_module = .true.
47 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'input_cp2k_atom'
48
49 PUBLIC :: create_atom_section
50
51! **************************************************************************************************
52
53CONTAINS
54
55! **************************************************************************************************
56!> \brief Creates the input section for the atom code
57!> \param section the section to create
58!> \author jgh
59! **************************************************************************************************
60 SUBROUTINE create_atom_section(section)
61 TYPE(section_type), POINTER :: section
62
63 TYPE(keyword_type), POINTER :: keyword
64 TYPE(section_type), POINTER :: subsection
65
66 cpassert(.NOT. ASSOCIATED(section))
67 CALL section_create(section, __location__, name="ATOM", &
68 description="Section handling input for atomic calculations.", &
69 n_keywords=1, n_subsections=1, repeats=.false.)
70 NULLIFY (keyword, subsection)
71
72 CALL keyword_create(keyword, __location__, name="ATOMIC_NUMBER", &
73 description="Specify the atomic number", &
74 default_i_val=1)
75 CALL section_add_keyword(section, keyword)
76 CALL keyword_release(keyword)
77
78 CALL keyword_create(keyword, __location__, name="ELEMENT", &
79 description="Specify the element to be calculated", &
80 usage="ELEMENT char", n_var=1, type_of_var=char_t, &
81 default_c_val="H")
82 CALL section_add_keyword(section, keyword)
83 CALL keyword_release(keyword)
84
85 CALL keyword_create(keyword, __location__, name="RUN_TYPE", &
86 description="Type of run that you want to perform "// &
87 "[ENERGY,BASIS_OPTIMIZATION,PSEUDOPOTENTIAL_OPTIMIZATION,,...] ", &
88 usage="RUN_TYPE (NONE|ENERGY|BASIS_OPTIMIZATION|PSEUDOPOTENTIAL_OPTIMIZATION)", &
89 default_i_val=atom_energy_run, &
90 enum_c_vals=s2a("NONE", "ENERGY", "BASIS_OPTIMIZATION", "PSEUDOPOTENTIAL_OPTIMIZATION"), &
92 enum_desc=s2a("Perform no run", &
93 "Perform energy optimization", &
94 "Perform basis optimization", &
95 "Perform pseudopotential optimization"))
96 CALL section_add_keyword(section, keyword)
97 CALL keyword_release(keyword)
98
99 CALL keyword_create(keyword, __location__, name="COULOMB_INTEGRALS", &
100 description="Method to calculate Coulomb integrals", &
101 usage="COULOMB_INTEGRALS (ANALYTIC|SEMI_ANALYTIC|NUMERIC)", &
102 default_i_val=do_numeric, &
103 enum_c_vals=(/"ANALYTIC ", &
104 "SEMI_ANALYTIC ", &
105 "NUMERIC "/), &
106 enum_i_vals=(/do_analytic, do_semi_analytic, do_numeric/), &
107 enum_desc=s2a("Use analytical method", &
108 "Use semi-analytical method", &
109 "Use numerical method"))
110 CALL section_add_keyword(section, keyword)
111 CALL keyword_release(keyword)
112
113 CALL keyword_create(keyword, __location__, name="EXCHANGE_INTEGRALS", &
114 description="Method to calculate Exchange integrals", &
115 usage="EXCHANGE_INTEGRALS (ANALYTIC|SEMI_ANALYTIC|NUMERIC)", &
116 default_i_val=do_numeric, &
117 enum_c_vals=(/"ANALYTIC ", &
118 "SEMI_ANALYTIC ", &
119 "NUMERIC "/), &
120 enum_i_vals=(/do_analytic, do_semi_analytic, do_numeric/), &
121 enum_desc=s2a("Use analytical method. Not available for longrange Hartree-Fock", &
122 "Use semi-analytical method", &
123 "Use numerical method"))
124 CALL section_add_keyword(section, keyword)
125 CALL keyword_release(keyword)
126
127 CALL keyword_create(keyword, __location__, name="CORE", &
128 description="Specifies the core electrons for a pseudopotential", &
129 usage="CORE 1s2 ... or CORE [Ne] or CORE none for 0 electron cores", repeats=.false., &
130 n_var=-1, type_of_var=char_t)
131 CALL section_add_keyword(section, keyword)
132 CALL keyword_release(keyword)
133
134 CALL keyword_create(keyword, __location__, name="ELECTRON_CONFIGURATION", &
135 description="Specifies the electron configuration. "// &
136 "Optional the multiplicity (m) and a core state [XX] can be declared", &
137 usage="ELECTRON_CONFIGURATION (1) [Ne] 3s2 ... ", repeats=.true., &
138 n_var=-1, type_of_var=char_t)
139 CALL section_add_keyword(section, keyword)
140 CALL keyword_release(keyword)
141
142 CALL keyword_create(keyword, __location__, name="MAX_ANGULAR_MOMENTUM", &
143 description="Specifies the largest angular momentum calculated [0-3]", &
144 usage="MAX_ANGULAR_MOMENTUM 3", repeats=.false., &
145 default_i_val=3)
146 CALL section_add_keyword(section, keyword)
147 CALL keyword_release(keyword)
148
149 CALL keyword_create(keyword, __location__, name="CALCULATE_STATES", &
150 description="Specifies the number of states calculated per l value", &
151 usage="CALCULATE_STATES 5 5 5 3 ", repeats=.false., &
152 default_i_val=0, n_var=-1, type_of_var=integer_t)
153 CALL section_add_keyword(section, keyword)
154 CALL keyword_release(keyword)
155
156 CALL keyword_create(keyword, __location__, name="USE_GAUSS_HERMITE", &
157 description="Whether a Gauss-Hermite grid is to be used for the numerical integration of "// &
158 "longrange exchange integrals", &
159 usage="USE_GAUSS_HERMITE TRUE", repeats=.false., &
160 default_l_val=.false.)
161 CALL section_add_keyword(section, keyword)
162 CALL keyword_release(keyword)
163
164 CALL keyword_create(keyword, __location__, name="GRID_POINTS_GH", &
165 description="Number of grid points for Gauss-Hermite grid", &
166 usage="GRID_POINTS_GH 100", repeats=.false., &
167 default_i_val=100)
168 CALL section_add_keyword(section, keyword)
169 CALL keyword_release(keyword)
170
171 CALL create_atom_print_section(subsection)
172 CALL section_add_subsection(section, subsection)
173 CALL section_release(subsection)
174
175 CALL create_atom_aebasis_section(subsection)
176 CALL section_add_subsection(section, subsection)
177 CALL section_release(subsection)
178
179 CALL create_atom_ppbasis_section(subsection)
180 CALL section_add_subsection(section, subsection)
181 CALL section_release(subsection)
182
183 CALL create_atom_method_section(subsection)
184 CALL section_add_subsection(section, subsection)
185 CALL section_release(subsection)
186
187 CALL create_optimization_section(subsection)
188 CALL section_add_subsection(section, subsection)
189 CALL section_release(subsection)
190
191 CALL create_potential_section(subsection)
192 CALL section_add_subsection(section, subsection)
193 CALL section_release(subsection)
194
195 CALL create_powell_section(subsection)
196 CALL section_add_subsection(section, subsection)
197 CALL section_release(subsection)
198
199 END SUBROUTINE create_atom_section
200
201! **************************************************************************************************
202!> \brief Create the print atom section
203!> \param section the section to create
204!> \author jgh
205! **************************************************************************************************
206 SUBROUTINE create_atom_print_section(section)
207 TYPE(section_type), POINTER :: section
208
209 TYPE(keyword_type), POINTER :: keyword
210 TYPE(section_type), POINTER :: print_key, subsection
211
212 cpassert(.NOT. ASSOCIATED(section))
213 CALL section_create(section, __location__, name="print", &
214 description="Section of possible print options specific of the ATOM code.", &
215 n_keywords=0, n_subsections=1, repeats=.false.)
216
217 NULLIFY (print_key, keyword)
218
219 ! Print key section
220 CALL cp_print_key_section_create(print_key, __location__, "PROGRAM_BANNER", &
221 description="Controls the printing of the banner of the ATOM program", &
222 print_level=silent_print_level, filename="__STD_OUT__")
223 CALL section_add_subsection(section, print_key)
224 CALL section_release(print_key)
225
226 ! Print key section
227 CALL cp_print_key_section_create(print_key, __location__, "METHOD_INFO", &
228 description="Controls the printing of method information", &
229 print_level=medium_print_level, filename="__STD_OUT__")
230 CALL section_add_subsection(section, print_key)
231 CALL section_release(print_key)
232
233 ! Print key section
234 CALL cp_print_key_section_create(print_key, __location__, "BASIS_SET", &
235 description="Controls the printing of the basis sets", &
236 print_level=high_print_level, filename="__STD_OUT__")
237 CALL section_add_subsection(section, print_key)
238 CALL section_release(print_key)
239
240 ! Print key section
241 CALL cp_print_key_section_create(print_key, __location__, "POTENTIAL", &
242 description="Controls the printing of the potentials", &
243 print_level=high_print_level, filename="__STD_OUT__")
244 CALL section_add_subsection(section, print_key)
245 CALL section_release(print_key)
246
247 ! Print key section
249 print_key, __location__, "FIT_DENSITY", &
250 description="Fit the total electronic density to a linear combination of Gaussian functions", &
251 print_level=high_print_level, filename="__STD_OUT__")
252 CALL keyword_create(keyword, __location__, name="NUM_GTO", &
253 description="Number of Gaussian type functions for density fit", &
254 usage="NUM_GTO integer ", type_of_var=integer_t, &
255 default_i_val=40)
256 CALL section_add_keyword(print_key, keyword)
257 CALL keyword_release(keyword)
258 CALL section_add_subsection(section, print_key)
259 CALL section_release(print_key)
260
261 ! Print key section
262 CALL cp_print_key_section_create(print_key, __location__, "FIT_KGPOT", &
263 description="Fit an approximation to the non-additive"// &
264 " kinetic energy potential used in KG", &
265 print_level=high_print_level, filename="__STD_OUT__")
266 CALL keyword_create(keyword, __location__, name="NUM_GAUSSIAN", &
267 description="Number of Gaussian terms for the fit", &
268 usage="NUM_GAUSSIAN integer ", type_of_var=integer_t, &
269 default_i_val=1)
270 CALL section_add_keyword(print_key, keyword)
271 CALL keyword_release(keyword)
272 CALL keyword_create(keyword, __location__, name="NUM_POLYNOM", &
273 description="Number of terms in the polynomial expansion", &
274 usage="NUM_POLYNOM integer ", type_of_var=integer_t, &
275 default_i_val=4)
276 CALL section_add_keyword(print_key, keyword)
277 CALL keyword_release(keyword)
278 CALL section_add_subsection(section, print_key)
279 CALL section_release(print_key)
280
281 ! Print key section
282 CALL cp_print_key_section_create(print_key, __location__, "RESPONSE_BASIS", &
283 description="Calculate a response basis set contraction scheme", &
284 print_level=high_print_level, filename="__STD_OUT__")
285 CALL keyword_create(keyword, __location__, name="DELTA_CHARGE", &
286 description="Variation of charge used in finite difference calculation", &
287 usage="DELTA_CHARGE real ", type_of_var=real_t, &
288 default_r_val=0.05_dp)
289 CALL section_add_keyword(print_key, keyword)
290 CALL keyword_release(keyword)
291 CALL keyword_create(keyword, __location__, name="DERIVATIVES", &
292 description="Number of wavefunction derivatives to calculate", &
293 usage="DERIVATIVES integer ", type_of_var=integer_t, &
294 default_i_val=2)
295 CALL section_add_keyword(print_key, keyword)
296 CALL keyword_release(keyword)
297 CALL section_add_subsection(section, print_key)
298 CALL section_release(print_key)
299
300 ! Print key section
301 CALL cp_print_key_section_create(print_key, __location__, "GEOMETRICAL_RESPONSE_BASIS", &
302 description="Calculate a response basis set based on a set of geometrical exponents", &
303 print_level=high_print_level, filename="__STD_OUT__")
304 !
305 CALL keyword_create(keyword, __location__, name="DELTA_CHARGE", &
306 description="Variation of charge used in finite difference calculation", &
307 usage="DELTA_CHARGE real ", type_of_var=real_t, &
308 default_r_val=0.05_dp)
309 CALL section_add_keyword(print_key, keyword)
310 CALL keyword_release(keyword)
311 !
312 CALL keyword_create(keyword, __location__, name="DERIVATIVES", &
313 description="Number of wavefunction derivatives to calculate", &
314 usage="DERIVATIVES integer ", type_of_var=integer_t, &
315 default_i_val=3)
316 CALL section_add_keyword(print_key, keyword)
317 CALL keyword_release(keyword)
318 !
319 CALL keyword_create(keyword, __location__, name="QUADRATURE", &
320 description="Algorithm to construct the atomic radial grids", &
321 usage="QUADRATURE (GC_SIMPLE|GC_TRANSFORMED|GC_LOG)", &
322 enum_c_vals=s2a("GC_SIMPLE", "GC_TRANSFORMED", "GC_LOG"), &
323 enum_i_vals=(/do_gapw_gcs, do_gapw_gct, do_gapw_log/), &
324 enum_desc=s2a("Gauss-Chebyshev quadrature", &
325 "Transformed Gauss-Chebyshev quadrature", &
326 "Logarithmic transformed Gauss-Chebyshev quadrature"), &
327 default_i_val=do_gapw_log)
328 CALL section_add_keyword(print_key, keyword)
329 CALL keyword_release(keyword)
330 !
331 CALL keyword_create(keyword, __location__, name="GRID_POINTS", &
332 description="Number of radial grid points", &
333 usage="GRID_POINTS integer", &
334 default_i_val=400)
335 CALL section_add_keyword(print_key, keyword)
336 CALL keyword_release(keyword)
337 !
338 CALL keyword_create(keyword, __location__, name="NUM_GTO_CORE", &
339 description="Number of Gaussian type functions for s, p, d, ... "// &
340 "for the main body of the basis", &
341 usage="NUM_GTO_CORE 6 ", n_var=1, type_of_var=integer_t, &
342 default_i_val=-1)
343 CALL section_add_keyword(print_key, keyword)
344 CALL keyword_release(keyword)
345 CALL keyword_create(keyword, __location__, name="NUM_GTO_EXTENDED", &
346 description="Number of Gaussian type functions for s, p, d, ... "// &
347 "for the extension set", &
348 usage="NUM_GTO_EXTENDED 4 ", n_var=1, type_of_var=integer_t, &
349 default_i_val=-1)
350 CALL section_add_keyword(print_key, keyword)
351 CALL keyword_release(keyword)
352 CALL keyword_create(keyword, __location__, name="NUM_GTO_POLARIZATION", &
353 description="Number of Gaussian type functions for the polarization set", &
354 usage="NUM_GTO_POLARIZATION 4 ", n_var=1, type_of_var=integer_t, &
355 default_i_val=-1)
356 CALL section_add_keyword(print_key, keyword)
357 CALL keyword_release(keyword)
358 CALL keyword_create(keyword, __location__, name="EXTENSION_BASIS", &
359 description="Number of basis functions for s, p, d, ... "// &
360 "for the extension set", &
361 usage="EXTENSION_BASIS 4 3 2 1 ", n_var=-1, type_of_var=integer_t, &
362 default_i_val=-1)
363 CALL section_add_keyword(print_key, keyword)
364 CALL keyword_release(keyword)
365 CALL keyword_create(keyword, __location__, name="GEOMETRICAL_FACTOR", &
366 description="Geometrical basis: factor C in a*C^k (initial value for optimization)", &
367 usage="GEOMETRICAL_FACTOR real", &
368 default_r_val=2.3_dp)
369 CALL section_add_keyword(print_key, keyword)
370 CALL keyword_release(keyword)
371 CALL keyword_create(keyword, __location__, name="GEO_START_VALUE", &
372 description="Geometrical basis: starting value a in a*C^k (initial value for optimization)", &
373 usage="GEO_START_VALUE real", &
374 default_r_val=0.06_dp)
375 CALL section_add_keyword(print_key, keyword)
376 CALL keyword_release(keyword)
377 CALL keyword_create(keyword, __location__, name="CONFINEMENT", &
378 description="Onset value of barrier confinement potential [Bohr]", &
379 usage="CONFINEMENT real", &
380 default_r_val=8.00_dp)
381 CALL section_add_keyword(print_key, keyword)
382 CALL keyword_release(keyword)
383 CALL keyword_create(keyword, __location__, name="NAME_BODY", &
384 description="Specifies the body of the basis set name ", &
385 usage="NAME_BODY <char>", &
386 type_of_var=char_t, default_c_val="GRB", n_var=-1)
387 CALL section_add_keyword(print_key, keyword)
388 CALL keyword_release(keyword)
389 !
390 CALL section_add_subsection(section, print_key)
391 CALL section_release(print_key)
392
393 ! Print key section
394 CALL cp_print_key_section_create(print_key, __location__, "SCF_INFO", &
395 description="Controls the printing of SCF information", &
396 print_level=medium_print_level, filename="__STD_OUT__")
397 CALL section_add_subsection(section, print_key)
398 CALL section_release(print_key)
399
400 ! Print key section
401 CALL cp_print_key_section_create(print_key, __location__, "ORBITALS", &
402 description="Controls the printing of the optimized orbitals information", &
403 print_level=high_print_level, filename="__STD_OUT__")
404 CALL keyword_create(keyword, __location__, name="XMGRACE", &
405 description="Output Orbitals in Xmgrace Format to Files.", &
406 usage="XMGRACE <logical>", type_of_var=logical_t, default_l_val=.false.)
407 CALL section_add_keyword(print_key, keyword)
408 CALL keyword_release(keyword)
409 CALL section_add_subsection(section, print_key)
410 CALL section_release(print_key)
411
412 ! Print key section
413 CALL cp_print_key_section_create(print_key, __location__, "ANALYZE_BASIS", &
414 description="Calculates some basis set analysis data", &
415 print_level=high_print_level, filename="__STD_OUT__")
416 CALL keyword_create(keyword, __location__, name="OVERLAP_CONDITION_NUMBER", &
417 description="Condition number of the basis set overlap matrix calculated for a cubic crystal", &
418 usage="OVERLAP_CONDITION_NUMBER <logical>", type_of_var=logical_t, default_l_val=.false.)
419 CALL section_add_keyword(print_key, keyword)
420 CALL keyword_release(keyword)
421 CALL keyword_create(keyword, __location__, name="COMPLETENESS", &
422 description="Calculate a completeness estimate for the basis set.", &
423 usage="COMPLETENESS <logical>", type_of_var=logical_t, default_l_val=.false.)
424 CALL section_add_keyword(print_key, keyword)
425 CALL keyword_release(keyword)
426 CALL section_add_subsection(section, print_key)
427 CALL section_release(print_key)
428
429 ! Print key section
430 CALL cp_print_key_section_create(print_key, __location__, "FIT_PSEUDO", &
431 description="Controls the printing of FIT PSEUDO task", &
432 print_level=medium_print_level, filename="__STD_OUT__")
433 CALL section_add_subsection(section, print_key)
434 CALL section_release(print_key)
435
436 ! Print key section
437 CALL cp_print_key_section_create(print_key, __location__, "FIT_BASIS", &
438 description="Controls the printing of FIT BASIS task", &
439 print_level=medium_print_level, filename="__STD_OUT__")
440 CALL section_add_subsection(section, print_key)
441 CALL section_release(print_key)
442
443 ! Print key section
444 CALL cp_print_key_section_create(print_key, __location__, "UPF_FILE", &
445 description="Write GTH pseudopotential in UPF format", &
446 print_level=high_print_level, filename="__STD_OUT__")
447 CALL section_add_subsection(section, print_key)
448 CALL section_release(print_key)
449
450 ! Print key section
451 CALL cp_print_key_section_create(print_key, __location__, "SEPARABLE_GAUSSIAN_PSEUDO", &
452 description="Creates a representation of the pseudopotential in separable "// &
453 "form using Gaussian functions.", &
454 print_level=debug_print_level, filename="__STD_OUT__")
455 CALL section_add_subsection(section, print_key)
456 CALL section_release(print_key)
457
458 ! Print key section: ADMM Analysis
459 CALL cp_print_key_section_create(print_key, __location__, "ADMM", &
460 description="Analysis of ADMM approximation to exact exchange", &
461 print_level=high_print_level, filename="__STD_OUT__")
462
463 NULLIFY (subsection)
464 CALL section_create(subsection, __location__, name="ADMM_BASIS", &
465 description="Section of basis set information for ADMM calculations.", &
466 n_keywords=0, n_subsections=0, repeats=.false.)
467 CALL atom_basis_section(subsection)
468 CALL section_add_subsection(print_key, subsection)
469 CALL section_release(subsection)
470 CALL section_add_subsection(section, print_key)
471 CALL section_release(print_key)
472
473 END SUBROUTINE create_atom_print_section
474
475! **************************************************************************************************
476!> \brief Create the all-electron basis section
477!> \param section the section to create
478!> \author jgh
479! **************************************************************************************************
480 SUBROUTINE create_atom_aebasis_section(section)
481 TYPE(section_type), POINTER :: section
482
483 cpassert(.NOT. ASSOCIATED(section))
484 CALL section_create(section, __location__, name="AE_BASIS", &
485 description="Section of basis set information for all-electron calculations.", &
486 n_keywords=0, n_subsections=0, repeats=.false.)
487
488 CALL atom_basis_section(section)
489
490 END SUBROUTINE create_atom_aebasis_section
491
492! **************************************************************************************************
493!> \brief Create the pseudopotential basis section
494!> \param section the section to create
495!> \author jgh
496! **************************************************************************************************
497 SUBROUTINE create_atom_ppbasis_section(section)
498 TYPE(section_type), POINTER :: section
499
500 cpassert(.NOT. ASSOCIATED(section))
501 CALL section_create(section, __location__, name="PP_BASIS", &
502 description="Section of basis set information for pseudopotential calculations.", &
503 n_keywords=0, n_subsections=0, repeats=.false.)
504
505 CALL atom_basis_section(section)
506
507 END SUBROUTINE create_atom_ppbasis_section
508
509! **************************************************************************************************
510!> \brief Keywords in the atom basis section
511!> \param section the section to fill
512!> \author jgh
513! **************************************************************************************************
514 SUBROUTINE atom_basis_section(section)
515 TYPE(section_type), POINTER :: section
516
517 TYPE(keyword_type), POINTER :: keyword
518 TYPE(section_type), POINTER :: subsection
519
520 cpassert(ASSOCIATED(section))
521 NULLIFY (keyword)
522
523 CALL keyword_create(keyword, __location__, name="BASIS_TYPE", &
524 description="Basis set type", &
525 usage="BASIS_TYPE (GAUSSIAN|GEOMETRICAL_GTO|CONTRACTED_GTO|SLATER|NUMERICAL)", &
526 default_i_val=gaussian, &
527 enum_c_vals=(/"GAUSSIAN ", &
528 "GEOMETRICAL_GTO ", &
529 "CONTRACTED_GTO ", &
530 "SLATER ", &
531 "NUMERICAL "/), &
533 enum_desc=s2a("Gaussian type orbitals", &
534 "Geometrical Gaussian type orbitals", &
535 "Contracted Gaussian type orbitals", &
536 "Slater-type orbitals", &
537 "Numerical basis type"))
538 CALL section_add_keyword(section, keyword)
539 CALL keyword_release(keyword)
540
541 CALL keyword_create(keyword, __location__, name="NUM_GTO", &
542 description="Number of Gaussian type functions for s, p, d, ...", &
543 usage="NUM_GTO 5 5 5 ", n_var=-1, type_of_var=integer_t, &
544 default_i_val=-1)
545 CALL section_add_keyword(section, keyword)
546 CALL keyword_release(keyword)
547
548 CALL keyword_create(keyword, __location__, name="NUM_SLATER", &
549 description="Number of Slater type functions for s, p, d, ...", &
550 usage="NUM_SLATER 5 5 5 ", n_var=-1, type_of_var=integer_t, &
551 default_i_val=-1)
552 CALL section_add_keyword(section, keyword)
553 CALL keyword_release(keyword)
554
555 CALL keyword_create(keyword, __location__, name="START_INDEX", &
556 description="Starting index for Geometrical Basis sets", &
557 usage="START_INDEX 0 2 5 4 ", n_var=-1, type_of_var=integer_t, &
558 default_i_val=0)
559 CALL section_add_keyword(section, keyword)
560 CALL keyword_release(keyword)
561
562 CALL keyword_create(keyword, __location__, name="S_EXPONENTS", &
563 description="Exponents for s functions", &
564 usage="S_EXPONENTS 1.0 2.0 ... ", n_var=-1, type_of_var=real_t)
565 CALL section_add_keyword(section, keyword)
566 CALL keyword_release(keyword)
567 CALL keyword_create(keyword, __location__, name="P_EXPONENTS", &
568 description="Exponents for p functions", &
569 usage="P_EXPONENTS 1.0 2.0 ... ", n_var=-1, type_of_var=real_t)
570 CALL section_add_keyword(section, keyword)
571 CALL keyword_release(keyword)
572 CALL keyword_create(keyword, __location__, name="D_EXPONENTS", &
573 description="Exponents for d functions", &
574 usage="D_EXPONENTS 1.0 2.0 ... ", n_var=-1, type_of_var=real_t)
575 CALL section_add_keyword(section, keyword)
576 CALL keyword_release(keyword)
577 CALL keyword_create(keyword, __location__, name="F_EXPONENTS", &
578 description="Exponents for f functions", &
579 usage="F_EXPONENTS 1.0 2.0 ... ", n_var=-1, type_of_var=real_t)
580 CALL section_add_keyword(section, keyword)
581 CALL keyword_release(keyword)
582
583 CALL keyword_create(keyword, __location__, name="S_QUANTUM_NUMBERS", &
584 description="Main quantum numbers for s functions", &
585 usage="S_QUANTUM_NUMBERS 1 2 ... ", n_var=-1, type_of_var=integer_t)
586 CALL section_add_keyword(section, keyword)
587 CALL keyword_release(keyword)
588 CALL keyword_create(keyword, __location__, name="P_QUANTUM_NUMBERS", &
589 description="Main quantum numbers for p functions", &
590 usage="P_QUANTUM_NUMBERS 2 3 ... ", n_var=-1, type_of_var=integer_t)
591 CALL section_add_keyword(section, keyword)
592 CALL keyword_release(keyword)
593 CALL keyword_create(keyword, __location__, name="D_QUANTUM_NUMBERS", &
594 description="Main quantum numbers for d functions", &
595 usage="D_QUANTUM_NUMBERS 3 4 ... ", n_var=-1, type_of_var=integer_t)
596 CALL section_add_keyword(section, keyword)
597 CALL keyword_release(keyword)
598 CALL keyword_create(keyword, __location__, name="F_QUANTUM_NUMBERS", &
599 description="Main quantum numbers for f functions", &
600 usage="F_QUANTUM_NUMBERS 4 5 ... ", n_var=-1, type_of_var=integer_t)
601 CALL section_add_keyword(section, keyword)
602 CALL keyword_release(keyword)
603
604 CALL keyword_create(keyword, __location__, name="GEOMETRICAL_FACTOR", &
605 description="Geometrical basis: factor C in a*C^k", &
606 usage="GEOMETRICAL_FACTOR real", &
607 default_r_val=2.6_dp)
608 CALL section_add_keyword(section, keyword)
609 CALL keyword_release(keyword)
610
611 CALL keyword_create(keyword, __location__, name="GEO_START_VALUE", &
612 description="Geometrical basis: starting value a in a*C^k", &
613 usage="GEO_START_VALUE real", &
614 default_r_val=0.016_dp)
615 CALL section_add_keyword(section, keyword)
616 CALL keyword_release(keyword)
617
618 CALL keyword_create(keyword, __location__, name="BASIS_SET_FILE_NAME", &
619 description="Name of the basis set file, may include a path", &
620 usage="BASIS_SET_FILE_NAME <FILENAME>", &
621 default_lc_val="BASIS_SET")
622 CALL section_add_keyword(section, keyword)
623 CALL keyword_release(keyword)
624
625 CALL keyword_create(keyword, __location__, name="BASIS_SET", &
626 variants=s2a("ORBITAL_BASIS_SET", "ORB_BASIS"), &
627 description="The contracted Gaussian basis set", &
628 usage="BASIS_SET DZVP", default_c_val=" ", &
629 n_var=1)
630 CALL section_add_keyword(section, keyword)
631 CALL keyword_release(keyword)
632
633 CALL keyword_create(keyword, __location__, name="QUADRATURE", &
634 description="Algorithm to construct the atomic radial grids", &
635 usage="QUADRATURE (GC_SIMPLE|GC_TRANSFORMED|GC_LOG)", &
636 enum_c_vals=s2a("GC_SIMPLE", "GC_TRANSFORMED", "GC_LOG"), &
637 enum_i_vals=(/do_gapw_gcs, do_gapw_gct, do_gapw_log/), &
638 enum_desc=s2a("Gauss-Chebyshev quadrature", &
639 "Transformed Gauss-Chebyshev quadrature", &
640 "Logarithmic transformed Gauss-Chebyshev quadrature"), &
641 default_i_val=do_gapw_log)
642 CALL section_add_keyword(section, keyword)
643 CALL keyword_release(keyword)
644
645 CALL keyword_create(keyword, __location__, name="GRID_POINTS", &
646 description="Number of radial grid points", &
647 usage="GRID_POINTS integer", &
648 default_i_val=400)
649 CALL section_add_keyword(section, keyword)
650 CALL keyword_release(keyword)
651
652 CALL keyword_create(keyword, __location__, name="EPS_EIGENVALUE", &
653 description="Cutoff of overlap matrix eigenvalues included into basis", &
654 usage="EPS_EIGENVALUE real", &
655 default_r_val=1.e-12_dp)
656 CALL section_add_keyword(section, keyword)
657 CALL keyword_release(keyword)
658
659 NULLIFY (subsection)
660 CALL create_basis_section(subsection)
661 CALL section_add_subsection(section, subsection)
662 CALL section_release(subsection)
663
664 END SUBROUTINE atom_basis_section
665
666! **************************************************************************************************
667!> \brief Create the method section for Atom calculations
668!> \param section the section to create
669!> \author jgh
670! **************************************************************************************************
671 SUBROUTINE create_atom_method_section(section)
672 TYPE(section_type), POINTER :: section
673
674 TYPE(keyword_type), POINTER :: keyword
675 TYPE(section_type), POINTER :: subsection
676
677 NULLIFY (subsection, keyword)
678 cpassert(.NOT. ASSOCIATED(section))
679 CALL section_create(section, __location__, name="METHOD", &
680 description="Section of information on method to use.", &
681 n_keywords=0, n_subsections=2, repeats=.true.)
682
683 CALL keyword_create(keyword, __location__, name="METHOD_TYPE", &
684 description="Type of electronic structure method to be used", &
685 usage="METHOD_TYPE (KOHN-SHAM|RKS|UKS|HARTREE-FOCK|RHF|UHF|ROHF)", &
686 default_i_val=do_rks_atom, &
687 enum_c_vals=(/"KOHN-SHAM ", &
688 "RKS ", &
689 "UKS ", &
690 "HARTREE-FOCK ", &
691 "RHF ", &
692 "UHF ", &
693 "ROHF "/), &
696 enum_desc=s2a("Kohn-Sham electronic structure method", &
697 "Restricted Kohn-Sham electronic structure method", &
698 "Unrestricted Kohn-Sham electronic structure method", &
699 "Hartree-Fock electronic structure method", &
700 "Restricted Hartree-Fock electronic structure method", &
701 "Unrestricted Hartree-Fock electronic structure method", &
702 "Restricted open-shell Hartree-Fock electronic structure method"))
703 CALL section_add_keyword(section, keyword)
704 CALL keyword_release(keyword)
705
706 CALL keyword_create(keyword, __location__, name="RELATIVISTIC", &
707 description="Type of scalar relativistic method to be used", &
708 usage="RELATIVISTIC (OFF|ZORA(MP)|scZORA(MP)|DKH(0)|DKH(1)|DKH(2)|DKH(3))", &
709 default_i_val=do_nonrel_atom, &
710 enum_c_vals=(/"OFF ", &
711 "ZORA(MP) ", &
712 "scZORA(MP) ", &
713 "DKH(0) ", &
714 "DKH(1) ", &
715 "DKH(2) ", &
716 "DKH(3) "/), &
719 enum_desc=s2a("Use no scalar relativistic method", &
720 "Use ZORA method with atomic model potential", &
721 "Use scaled ZORA method with atomic model potential", &
722 "Use Douglas-Kroll-Hess Hamiltonian of order 0", &
723 "Use Douglas-Kroll-Hess Hamiltonian of order 1", &
724 "Use Douglas-Kroll-Hess Hamiltonian of order 2", &
725 "Use Douglas-Kroll-Hess Hamiltonian of order 3"))
726 CALL section_add_keyword(section, keyword)
727 CALL keyword_release(keyword)
728
729 CALL create_xc_section(subsection)
730 CALL section_add_subsection(section, subsection)
731 CALL section_release(subsection)
732
733! ZMP creating zubsection for the zmp calculations
734 CALL create_zmp_section(subsection)
735 CALL section_add_subsection(section, subsection)
736 CALL section_release(subsection)
737
738 CALL create_external_vxc(subsection)
739 CALL section_add_subsection(section, subsection)
740 CALL section_release(subsection)
741
742 END SUBROUTINE create_atom_method_section
743
744! **************************************************************************************************
745!> \brief Create the ZMP subsection for Atom calculations
746!>
747!> \param section ...
748!> \author D. Varsano [daniele.varsano@nano.cnr.it]
749! **************************************************************************************************
750 SUBROUTINE create_zmp_section(section)
751 TYPE(section_type), POINTER :: section
752
753 TYPE(keyword_type), POINTER :: keyword
754 TYPE(section_type), POINTER :: subsection
755
756 NULLIFY (subsection, keyword)
757 cpassert(.NOT. ASSOCIATED(section))
758 CALL section_create(section, __location__, name="ZMP", &
759 description="Section used to specify ZMP Potentials.", &
760 n_keywords=3, n_subsections=0, repeats=.false.)
761
762 CALL keyword_create(keyword, __location__, name="FILE_DENSITY", &
763 description="Specifies the filename containing the target density ", &
764 usage="FILE_DENSITY <FILENAME>", &
765 type_of_var=char_t, default_c_val="RHO_O.dat", n_var=-1)
766 CALL section_add_keyword(section, keyword)
767 CALL keyword_release(keyword)
768
769 CALL keyword_create(keyword, __location__, name="GRID_TOL", &
770 description="Tolerance in the equivalence of read-grid in ZMP method", &
771 usage="GRID_TOL <REAL>", default_r_val=1.e-12_dp)
772 CALL section_add_keyword(section, keyword)
773 CALL keyword_release(keyword)
774
775 CALL keyword_create(keyword, __location__, name="LAMBDA", &
776 description="Parameter used for the constraint in ZMP method", &
777 usage="LAMBDA <REAL>", default_r_val=10.0_dp)
778 CALL section_add_keyword(section, keyword)
779 CALL keyword_release(keyword)
780
781 CALL keyword_create(keyword, __location__, name="DM", &
782 description="read external density from density matrix", &
783 usage="DM <LOGICAL>", type_of_var=logical_t, default_l_val=.false.)
784 CALL section_add_keyword(section, keyword)
785 CALL keyword_release(keyword)
786
787 CALL create_zmp_restart_section(subsection)
788 CALL section_add_subsection(section, subsection)
789 CALL section_release(subsection)
790
791 END SUBROUTINE create_zmp_section
792
793! **************************************************************************************************
794!> \brief Create the ZMP restart subsection for Atom calculations
795!>
796!> \param section ...
797!> \author D. Varsano [daniele.varsano@nano.cnr.it]
798! **************************************************************************************************
799 SUBROUTINE create_zmp_restart_section(section)
800 TYPE(section_type), POINTER :: section
801
802 TYPE(keyword_type), POINTER :: keyword
803
804 NULLIFY (keyword)
805 cpassert(.NOT. ASSOCIATED(section))
806 CALL section_create(section, __location__, name="RESTART", &
807 description="Section used to specify the restart option in the ZMP "// &
808 "procedure, and the file that must be read.", &
809 n_keywords=1, n_subsections=0, repeats=.false.)
810
811 CALL keyword_create(keyword, __location__, name="FILE_RESTART", &
812 description="Specifies the filename containing the restart file density ", &
813 usage="FILE_RESTART <FILENAME>", &
814 type_of_var=char_t, default_c_val="RESTART.wfn", n_var=-1)
815 CALL section_add_keyword(section, keyword)
816 CALL keyword_release(keyword)
817
818 END SUBROUTINE create_zmp_restart_section
819
820! **************************************************************************************************
821!> \brief Subroutine to create the external v_xc potential
822!>
823!> \param section ...
824!> \author D. Varsano [daniele.varsano@nano.cnr.it]
825! **************************************************************************************************
826 SUBROUTINE create_external_vxc(section)
827 TYPE(section_type), POINTER :: section
828
829 TYPE(keyword_type), POINTER :: keyword
830
831 NULLIFY (keyword)
832 cpassert(.NOT. ASSOCIATED(section))
833 CALL section_create(section, __location__, name="EXTERNAL_VXC", &
834 description="Section used to specify exernal VXC Potentials.", &
835 n_keywords=1, n_subsections=0, repeats=.false.)
836
837 CALL keyword_create(keyword, __location__, name="FILE_VXC", &
838 description="Specifies the filename containing the external vxc ", &
839 usage="FILE_VXC <FILENAME>", &
840 type_of_var=char_t, default_c_val="VXC.dat", n_var=-1)
841 CALL section_add_keyword(section, keyword)
842 CALL keyword_release(keyword)
843
844 CALL keyword_create(keyword, __location__, name="GRID_TOL", &
845 description="Tolerance in the equivalence of read-grid in ZMP method", &
846 usage="GRID_TOL <REAL>", default_r_val=1.e-12_dp)
847 CALL section_add_keyword(section, keyword)
848 CALL keyword_release(keyword)
849
850 END SUBROUTINE create_external_vxc
851
852! **************************************************************************************************
853!> \brief Create the optimization section for Atom calculations
854!> \param section the section to create
855!> \author jgh
856! **************************************************************************************************
857 SUBROUTINE create_optimization_section(section)
858 TYPE(section_type), POINTER :: section
859
860 TYPE(keyword_type), POINTER :: keyword
861
862 NULLIFY (keyword)
863 cpassert(.NOT. ASSOCIATED(section))
864 CALL section_create(section, __location__, name="OPTIMIZATION", &
865 description="Section of information on optimization thresholds and algorithms.", &
866 n_keywords=0, n_subsections=1, repeats=.false.)
867
868 CALL keyword_create(keyword, __location__, name="MAX_ITER", &
869 description="Maximum number of iterations for optimization", &
870 usage="MAX_ITER 50", default_i_val=200)
871 CALL section_add_keyword(section, keyword)
872 CALL keyword_release(keyword)
873
874 CALL keyword_create(keyword, __location__, name="EPS_SCF", &
875 description="Convergence criterion for SCF", &
876 usage="EPS_SCF 1.e-10", default_r_val=1.e-6_dp)
877 CALL section_add_keyword(section, keyword)
878 CALL keyword_release(keyword)
879
880 CALL keyword_create(keyword, __location__, name="DAMPING", &
881 description="Damping parameter for extrapolation method", &
882 usage="DAMPING 0.4", default_r_val=0.4_dp)
883 CALL section_add_keyword(section, keyword)
884 CALL keyword_release(keyword)
885
886 CALL keyword_create(keyword, __location__, name="EPS_DIIS", &
887 description="Starting DIIS method at convergence to EPS_DIIS", &
888 usage="EPS_DIIS 0.01", default_r_val=10000._dp)
889 CALL section_add_keyword(section, keyword)
890 CALL keyword_release(keyword)
891
892 CALL keyword_create(keyword, __location__, name="N_DIIS", &
893 description="Maximum number of DIIS vectors", &
894 usage="N_DIIS 6", default_i_val=5)
895 CALL section_add_keyword(section, keyword)
896 CALL keyword_release(keyword)
897
898 END SUBROUTINE create_optimization_section
899
900! **************************************************************************************************
901!> \brief Create the potential section for Atom calculations
902!> \param section the section to create
903!> \author jgh
904! **************************************************************************************************
905 SUBROUTINE create_potential_section(section)
906 TYPE(section_type), POINTER :: section
907
908 TYPE(keyword_type), POINTER :: keyword
909 TYPE(section_type), POINTER :: subsection
910
911 NULLIFY (keyword)
912 cpassert(.NOT. ASSOCIATED(section))
913 CALL section_create(section, __location__, name="POTENTIAL", &
914 description="Section of information on potential.", &
915 n_keywords=0, n_subsections=1, repeats=.false.)
916
917 CALL keyword_create(keyword, __location__, name="CONFINEMENT_TYPE", &
918 description="Define functional form of confinement potential.", &
919 usage="CONFINEMENT_TYPE (NONE|POLYNOM|BARRIER)", &
920 default_i_val=poly_conf, &
921 enum_c_vals=(/"NONE ", &
922 "POLYNOM ", &
923 "BARRIER "/), &
924 enum_i_vals=(/no_conf, poly_conf, barrier_conf/), &
925 enum_desc=s2a("Do not use confinement potential", &
926 "Use polynomial confinement potential: a*(R/b)^c", &
927 "Use a smooth barrier potential: a*F[R-c)/b]"))
928 CALL section_add_keyword(section, keyword)
929 CALL keyword_release(keyword)
930
931 CALL keyword_create(keyword, __location__, name="CONFINEMENT", &
932 description="Definition of parameters for confinement potential (a,b,c)", &
933 usage="CONFINEMENT prefactor range exponent (POLYNOM) "// &
934 "CONFINEMENT prefactor range r_onset (BARRIER)", &
935 default_r_vals=(/0._dp, 0._dp, 0._dp/), &
936 repeats=.false., n_var=-1)
937 CALL section_add_keyword(section, keyword)
938 CALL keyword_release(keyword)
939
940 CALL keyword_create(keyword, __location__, name="PSEUDO_TYPE", &
941 description="Pseudopotential type", &
942 usage="PSEUDO_TYPE (NONE|GTH|UPF|ECP)", &
943 default_i_val=no_pseudo, &
944 enum_c_vals=(/"NONE ", &
945 "GTH ", &
946 "UPF ", &
947 "SGP ", &
948 "ECP "/), &
950 enum_desc=s2a("Do not use pseudopotentials", &
951 "Use Goedecker-Teter-Hutter pseudopotentials", &
952 "Use UPF norm-conserving pseudopotentials", &
953 "Use SGP norm-conserving pseudopotentials", &
954 "Use ECP semi-local pseudopotentials"))
955 CALL section_add_keyword(section, keyword)
956 CALL keyword_release(keyword)
957
958 CALL keyword_create(keyword, __location__, name="POTENTIAL_FILE_NAME", &
959 description="Name of the pseudo potential file, may include a path", &
960 usage="POTENTIAL_FILE_NAME <FILENAME>", &
961 default_lc_val="POTENTIAL")
962 CALL section_add_keyword(section, keyword)
963 CALL keyword_release(keyword)
964
965 CALL keyword_create(keyword, __location__, name="POTENTIAL_NAME", &
966 variants=(/"POT_NAME"/), &
967 description="The name of the pseudopotential for the defined kind.", &
968 usage="POTENTIAL_NAME <PSEUDO-POTENTIAL-NAME>", default_c_val=" ", n_var=1)
969 CALL section_add_keyword(section, keyword)
970 CALL keyword_release(keyword)
971
972 NULLIFY (subsection)
973 CALL create_gthpotential_section(subsection)
974 CALL section_add_subsection(section, subsection)
975 CALL section_release(subsection)
976
977 NULLIFY (subsection)
978 CALL create_ecp_section(subsection)
979 CALL section_add_subsection(section, subsection)
980 CALL section_release(subsection)
981
982 END SUBROUTINE create_potential_section
983
984! **************************************************************************************************
985!> \brief Creates the &GTH_POTENTIAL section
986!> \param section the section to create
987!> \author teo
988! **************************************************************************************************
989 SUBROUTINE create_gthpotential_section(section)
990 TYPE(section_type), POINTER :: section
991
992 TYPE(keyword_type), POINTER :: keyword
993
994 CALL section_create(section, __location__, name="GTH_POTENTIAL", &
995 description="Section used to specify Potentials.", &
996 n_keywords=1, n_subsections=0, repeats=.false.)
997 NULLIFY (keyword)
998 CALL keyword_create(keyword, __location__, name="_DEFAULT_KEYWORD_", &
999 description="CP2K Pseudo Potential Standard Format (GTH, ALL or KG)", &
1000 repeats=.true., type_of_var=lchar_t)
1001 CALL section_add_keyword(section, keyword)
1002 CALL keyword_release(keyword)
1003 END SUBROUTINE create_gthpotential_section
1004
1005! **************************************************************************************************
1006!> \brief Creates the &ECP section
1007!> \param section the section to create
1008!> \author jgh
1009! **************************************************************************************************
1010 SUBROUTINE create_ecp_section(section)
1011 TYPE(section_type), POINTER :: section
1012
1013 TYPE(keyword_type), POINTER :: keyword
1014
1015 CALL section_create(section, __location__, name="ECP", &
1016 description="Section used to specify ECP's.", &
1017 n_keywords=1, n_subsections=0, repeats=.false.)
1018 NULLIFY (keyword)
1019 CALL keyword_create(keyword, __location__, name="_DEFAULT_KEYWORD_", &
1020 description="Effective Core Potentials definition", &
1021 repeats=.true., type_of_var=lchar_t)
1022 CALL section_add_keyword(section, keyword)
1023 CALL keyword_release(keyword)
1024 END SUBROUTINE create_ecp_section
1025
1026! **************************************************************************************************
1027!> \brief Creates the &BASIS section
1028!> \param section the section to create
1029!> \author teo
1030! **************************************************************************************************
1031 SUBROUTINE create_basis_section(section)
1032 TYPE(section_type), POINTER :: section
1033
1034 TYPE(keyword_type), POINTER :: keyword
1035
1036 CALL section_create(section, __location__, name="basis", &
1037 description="Section used to specify a general basis set for QM calculations.", &
1038 n_keywords=1, n_subsections=0, repeats=.false.)
1039 NULLIFY (keyword)
1040 CALL keyword_create(keyword, __location__, name="_DEFAULT_KEYWORD_", &
1041 description="CP2K Basis Set Standard Format", repeats=.true., &
1042 type_of_var=lchar_t)
1043 CALL section_add_keyword(section, keyword)
1044 CALL keyword_release(keyword)
1045 END SUBROUTINE create_basis_section
1046
1047! **************************************************************************************************
1048!> \brief Creates the &POWELL section
1049!> \param section the section to create
1050!> \author teo
1051! **************************************************************************************************
1052 SUBROUTINE create_powell_section(section)
1053 TYPE(section_type), POINTER :: section
1054
1055 TYPE(keyword_type), POINTER :: keyword
1056
1057 CALL section_create(section, __location__, name="powell", &
1058 description="Section defines basic parameters for Powell optimization", &
1059 n_keywords=4, n_subsections=0, repeats=.false.)
1060
1061 NULLIFY (keyword)
1062 CALL keyword_create(keyword, __location__, name="ACCURACY", &
1063 description="Final accuracy requested in optimization (RHOEND)", &
1064 usage="ACCURACY 0.00001", &
1065 default_r_val=1.e-6_dp)
1066 CALL section_add_keyword(section, keyword)
1067 CALL keyword_release(keyword)
1068
1069 CALL keyword_create(keyword, __location__, name="STEP_SIZE", &
1070 description="Initial step size for search algorithm (RHOBEG)", &
1071 usage="STEP_SIZE 0.005", &
1072 default_r_val=0.005_dp)
1073 CALL section_add_keyword(section, keyword)
1074 CALL keyword_release(keyword)
1075
1076 CALL keyword_create(keyword, __location__, name="MAX_FUN", &
1077 description="Maximum number of function evaluations", &
1078 usage="MAX_FUN 1000", &
1079 default_i_val=5000)
1080 CALL section_add_keyword(section, keyword)
1081 CALL keyword_release(keyword)
1082
1083 CALL keyword_create(keyword, __location__, name="MAX_INIT", &
1084 description="Maximum number of re-initialization of Powell method", &
1085 usage="MAX_INIT 5", &
1086 default_i_val=1)
1087 CALL section_add_keyword(section, keyword)
1088 CALL keyword_release(keyword)
1089
1090 CALL keyword_create(keyword, __location__, name="STEP_SIZE_SCALING", &
1091 description="Scaling of Step Size on re-initialization of Powell method", &
1092 usage="STEP_SIZE_SCALING 0.80", &
1093 default_r_val=0.75_dp)
1094 CALL section_add_keyword(section, keyword)
1095 CALL keyword_release(keyword)
1096
1097 CALL keyword_create(keyword, __location__, name="WEIGHT_POT_VIRTUAL", &
1098 description="Weight for virtual states in pseudopotential optimization", &
1099 usage="WEIGHT_POT_VIRTUAL 1.0", &
1100 default_r_val=1._dp)
1101 CALL section_add_keyword(section, keyword)
1102 CALL keyword_release(keyword)
1103
1104 CALL keyword_create(keyword, __location__, name="WEIGHT_POT_SEMICORE", &
1105 description="Weight for semi core states in pseudopotential optimization", &
1106 usage="WEIGHT_POT_SEMICORE 1.0", &
1107 default_r_val=1._dp)
1108 CALL section_add_keyword(section, keyword)
1109 CALL keyword_release(keyword)
1110
1111 CALL keyword_create(keyword, __location__, name="WEIGHT_POT_VALENCE", &
1112 description="Weight for valence states in pseudopotential optimization", &
1113 usage="WEIGHT_POT_VALENCE 1.0", &
1114 default_r_val=1.0_dp)
1115 CALL section_add_keyword(section, keyword)
1116 CALL keyword_release(keyword)
1117
1118 CALL keyword_create(keyword, __location__, name="WEIGHT_POT_NODE", &
1119 description="Weight for node mismatch in pseudopotential optimization", &
1120 usage="WEIGHT_POT_NODE 1.0", &
1121 default_r_val=1.0_dp)
1122 CALL section_add_keyword(section, keyword)
1123 CALL keyword_release(keyword)
1124
1125 CALL keyword_create(keyword, __location__, name="WEIGHT_DELTA_ENERGY", &
1126 description="Weight for energy differences in pseudopotential optimization", &
1127 usage="WEIGHT_DELTA_ENERGY 1.0", &
1128 default_r_val=1._dp)
1129 CALL section_add_keyword(section, keyword)
1130 CALL keyword_release(keyword)
1131
1132 CALL keyword_create(keyword, __location__, name="WEIGHT_ELECTRON_CONFIGURATION", &
1133 description="Weight for different electronic states in optimization", &
1134 usage="WEIGHT_ELECTRON_CONFIGURATION 1.0 0.1 ...", &
1135 n_var=-1, type_of_var=real_t, default_r_val=1.0_dp)
1136 CALL section_add_keyword(section, keyword)
1137 CALL keyword_release(keyword)
1138
1139 CALL keyword_create(keyword, __location__, name="WEIGHT_METHOD", &
1140 description="Weight for different methods in optimization", &
1141 usage="WEIGHT_METHOD 1.0 0.1 ...", &
1142 n_var=-1, type_of_var=real_t, default_r_val=1.0_dp)
1143 CALL section_add_keyword(section, keyword)
1144 CALL keyword_release(keyword)
1145
1146 CALL keyword_create(keyword, __location__, name="TARGET_POT_VIRTUAL", &
1147 description="Target accuracy for virtual state eigenvalues in pseudopotential optimization", &
1148 usage="TARGET_POT_VIRTUAL 0.0001", &
1149 default_r_val=1.0e-3_dp, unit_str="hartree")
1150 CALL section_add_keyword(section, keyword)
1151 CALL keyword_release(keyword)
1152
1153 CALL keyword_create(keyword, __location__, name="TARGET_POT_VALENCE", &
1154 description="Target accuracy for valence state eigenvalues in pseudopotential optimization", &
1155 usage="TARGET_POT_VALENCE 0.0001", &
1156 default_r_val=1.0e-5_dp, unit_str="hartree")
1157 CALL section_add_keyword(section, keyword)
1158 CALL keyword_release(keyword)
1159
1160 CALL keyword_create(keyword, __location__, name="TARGET_POT_SEMICORE", &
1161 description="Target accuracy for semicore state eigenvalues in pseudopotential optimization", &
1162 usage="TARGET_POT_SEMICORE 0.01", &
1163 default_r_val=1.0e-3_dp, unit_str="hartree")
1164 CALL section_add_keyword(section, keyword)
1165 CALL keyword_release(keyword)
1166
1167 CALL keyword_create(keyword, __location__, name="TARGET_DELTA_ENERGY", &
1168 description="Target accuracy for energy differences in pseudopotential optimization", &
1169 usage="TARGET_DELTA_ENERGY 0.01", &
1170 default_r_val=1.0e-4_dp, unit_str="hartree")
1171 CALL section_add_keyword(section, keyword)
1172 CALL keyword_release(keyword)
1173
1174 CALL keyword_create(keyword, __location__, name="TARGET_PSIR0", &
1175 description="Minimum value for the wavefunctions at r=0 (only occupied states)"// &
1176 " Value=0 means keeping wfn(r=0)=0", &
1177 usage="TARGET_PSIR0 0.50", &
1178 default_r_val=0._dp)
1179 CALL section_add_keyword(section, keyword)
1180 CALL keyword_release(keyword)
1181
1182 CALL keyword_create(keyword, __location__, name="WEIGHT_PSIR0", &
1183 description="Weight for the wavefunctions at r=0 (only occupied states)", &
1184 usage="WEIGHT_PSIR0 0.01", &
1185 default_r_val=0._dp)
1186 CALL section_add_keyword(section, keyword)
1187 CALL keyword_release(keyword)
1188
1189 CALL keyword_create(keyword, __location__, name="RCOV_MULTIPLICATION", &
1190 description="Multiply Rcov integration limit for charge conservation", &
1191 usage="RCOV_MULTIPLICATION 1.10", &
1192 default_r_val=1._dp)
1193 CALL section_add_keyword(section, keyword)
1194 CALL keyword_release(keyword)
1195
1196 CALL keyword_create(keyword, __location__, name="SEMICORE_LEVEL", &
1197 description="Energy at which to consider a full shell as semicore", &
1198 usage="SEMICORE_LEVEL 1.0", &
1199 default_r_val=1._dp, unit_str="hartree")
1200 CALL section_add_keyword(section, keyword)
1201 CALL keyword_release(keyword)
1202
1203 CALL keyword_create(keyword, __location__, name="NOOPT_NLCC", &
1204 description="Don't optimize NLCC parameters.", &
1205 usage="NOOPT_NLCC T", &
1206 type_of_var=logical_t, &
1207 default_l_val=.false.)
1208 CALL section_add_keyword(section, keyword)
1209 CALL keyword_release(keyword)
1210
1211 CALL keyword_create(keyword, __location__, name="PREOPT_NLCC", &
1212 description="Optimize NLCC parameters by fitting core charge density.", &
1213 usage="PREOPT_NLCC T", &
1214 type_of_var=logical_t, &
1215 default_l_val=.false.)
1216 CALL section_add_keyword(section, keyword)
1217 CALL keyword_release(keyword)
1218
1219 END SUBROUTINE create_powell_section
1220
1221! **************************************************************************************************
1222
1223END MODULE input_cp2k_atom
routines to handle the output, The idea is to remove the decision of wheter to output and what to out...
integer, parameter, public debug_print_level
integer, parameter, public medium_print_level
integer, parameter, public high_print_level
integer, parameter, public silent_print_level
subroutine, public cp_print_key_section_create(print_key_section, location, name, description, print_level, each_iter_names, each_iter_values, add_last, filename, common_iter_levels, citations, unit_str)
creates a print_key section
collects all constants needed in input so that they can be used without circular dependencies
integer, parameter, public do_rhf_atom
integer, parameter, public do_gapw_gct
integer, parameter, public do_gapw_gcs
integer, parameter, public do_rks_atom
integer, parameter, public atom_pseudo_run
integer, parameter, public do_analytic
integer, parameter, public sgp_pseudo
integer, parameter, public do_dkh3_atom
integer, parameter, public atom_no_run
integer, parameter, public gth_pseudo
integer, parameter, public ecp_pseudo
integer, parameter, public do_nonrel_atom
integer, parameter, public do_dkh0_atom
integer, parameter, public no_conf
integer, parameter, public do_uhf_atom
integer, parameter, public upf_pseudo
integer, parameter, public contracted_gto
integer, parameter, public poly_conf
integer, parameter, public do_dkh2_atom
integer, parameter, public no_pseudo
integer, parameter, public do_uks_atom
integer, parameter, public barrier_conf
integer, parameter, public do_numeric
integer, parameter, public atom_basis_run
integer, parameter, public do_zoramp_atom
integer, parameter, public do_gapw_log
integer, parameter, public atom_energy_run
integer, parameter, public gaussian
integer, parameter, public do_dkh1_atom
integer, parameter, public do_rohf_atom
integer, parameter, public do_semi_analytic
integer, parameter, public geometrical_gto
integer, parameter, public numerical
integer, parameter, public do_sczoramp_atom
integer, parameter, public slater
builds the input structure for the ATOM module
subroutine, public create_atom_section(section)
Creates the input section for the atom code.
function that build the xc section of the input
subroutine, public create_xc_section(section)
creates the input section for the xc part
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 lchar_t
integer, parameter, public logical_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.
represent a keyword in the input
represent a section of the input file