(git:73f2880)
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>", &
407 type_of_var=logical_t, &
408 default_l_val=.false., &
409 lone_keyword_l_val=.true.)
410 CALL section_add_keyword(print_key, keyword)
411 CALL keyword_release(keyword)
412 CALL section_add_subsection(section, print_key)
413 CALL section_release(print_key)
414
415 ! Print key section
416 CALL cp_print_key_section_create(print_key, __location__, "ANALYZE_BASIS", &
417 description="Calculates some basis set analysis data", &
418 print_level=high_print_level, filename="__STD_OUT__")
419 CALL keyword_create(keyword, __location__, name="OVERLAP_CONDITION_NUMBER", &
420 description="Condition number of the basis set overlap matrix calculated for a cubic crystal", &
421 usage="OVERLAP_CONDITION_NUMBER <logical>", type_of_var=logical_t, default_l_val=.false.)
422 CALL section_add_keyword(print_key, keyword)
423 CALL keyword_release(keyword)
424 CALL keyword_create(keyword, __location__, name="COMPLETENESS", &
425 description="Calculate a completeness estimate for the basis set.", &
426 usage="COMPLETENESS <logical>", type_of_var=logical_t, default_l_val=.false.)
427 CALL section_add_keyword(print_key, keyword)
428 CALL keyword_release(keyword)
429 CALL section_add_subsection(section, print_key)
430 CALL section_release(print_key)
431
432 ! Print key section
433 CALL cp_print_key_section_create(print_key, __location__, "FIT_PSEUDO", &
434 description="Controls the printing of FIT PSEUDO task", &
435 print_level=medium_print_level, filename="__STD_OUT__")
436 CALL section_add_subsection(section, print_key)
437 CALL section_release(print_key)
438
439 ! Print key section
440 CALL cp_print_key_section_create(print_key, __location__, "FIT_BASIS", &
441 description="Controls the printing of FIT BASIS task", &
442 print_level=medium_print_level, filename="__STD_OUT__")
443 CALL section_add_subsection(section, print_key)
444 CALL section_release(print_key)
445
446 ! Print key section
447 CALL cp_print_key_section_create(print_key, __location__, "UPF_FILE", &
448 description="Write GTH pseudopotential in UPF format", &
449 print_level=high_print_level, filename="__STD_OUT__")
450 CALL section_add_subsection(section, print_key)
451 CALL section_release(print_key)
452
453 ! Print key section
454 CALL cp_print_key_section_create(print_key, __location__, "SEPARABLE_GAUSSIAN_PSEUDO", &
455 description="Creates a representation of the pseudopotential in separable "// &
456 "form using Gaussian functions.", &
457 print_level=debug_print_level, filename="__STD_OUT__")
458 CALL section_add_subsection(section, print_key)
459 CALL section_release(print_key)
460
461 ! Print key section: ADMM Analysis
462 CALL cp_print_key_section_create(print_key, __location__, "ADMM", &
463 description="Analysis of ADMM approximation to exact exchange", &
464 print_level=high_print_level, filename="__STD_OUT__")
465
466 NULLIFY (subsection)
467 CALL section_create(subsection, __location__, name="ADMM_BASIS", &
468 description="Section of basis set information for ADMM calculations.", &
469 n_keywords=0, n_subsections=0, repeats=.false.)
470 CALL atom_basis_section(subsection)
471 CALL section_add_subsection(print_key, subsection)
472 CALL section_release(subsection)
473 CALL section_add_subsection(section, print_key)
474 CALL section_release(print_key)
475
476 END SUBROUTINE create_atom_print_section
477
478! **************************************************************************************************
479!> \brief Create the all-electron basis section
480!> \param section the section to create
481!> \author jgh
482! **************************************************************************************************
483 SUBROUTINE create_atom_aebasis_section(section)
484 TYPE(section_type), POINTER :: section
485
486 cpassert(.NOT. ASSOCIATED(section))
487 CALL section_create(section, __location__, name="AE_BASIS", &
488 description="Section of basis set information for all-electron calculations.", &
489 n_keywords=0, n_subsections=0, repeats=.false.)
490
491 CALL atom_basis_section(section)
492
493 END SUBROUTINE create_atom_aebasis_section
494
495! **************************************************************************************************
496!> \brief Create the pseudopotential basis section
497!> \param section the section to create
498!> \author jgh
499! **************************************************************************************************
500 SUBROUTINE create_atom_ppbasis_section(section)
501 TYPE(section_type), POINTER :: section
502
503 cpassert(.NOT. ASSOCIATED(section))
504 CALL section_create(section, __location__, name="PP_BASIS", &
505 description="Section of basis set information for pseudopotential calculations.", &
506 n_keywords=0, n_subsections=0, repeats=.false.)
507
508 CALL atom_basis_section(section)
509
510 END SUBROUTINE create_atom_ppbasis_section
511
512! **************************************************************************************************
513!> \brief Keywords in the atom basis section
514!> \param section the section to fill
515!> \author jgh
516! **************************************************************************************************
517 SUBROUTINE atom_basis_section(section)
518 TYPE(section_type), POINTER :: section
519
520 TYPE(keyword_type), POINTER :: keyword
521 TYPE(section_type), POINTER :: subsection
522
523 cpassert(ASSOCIATED(section))
524 NULLIFY (keyword)
525
526 CALL keyword_create(keyword, __location__, name="BASIS_TYPE", &
527 description="Basis set type", &
528 usage="BASIS_TYPE (GAUSSIAN|GEOMETRICAL_GTO|CONTRACTED_GTO|SLATER|NUMERICAL)", &
529 default_i_val=gaussian, &
530 enum_c_vals=(/"GAUSSIAN ", &
531 "GEOMETRICAL_GTO ", &
532 "CONTRACTED_GTO ", &
533 "SLATER ", &
534 "NUMERICAL "/), &
536 enum_desc=s2a("Gaussian type orbitals", &
537 "Geometrical Gaussian type orbitals", &
538 "Contracted Gaussian type orbitals", &
539 "Slater-type orbitals", &
540 "Numerical basis type"))
541 CALL section_add_keyword(section, keyword)
542 CALL keyword_release(keyword)
543
544 CALL keyword_create(keyword, __location__, name="NUM_GTO", &
545 description="Number of Gaussian type functions for s, p, d, ...", &
546 usage="NUM_GTO 5 5 5 ", n_var=-1, type_of_var=integer_t, &
547 default_i_val=-1)
548 CALL section_add_keyword(section, keyword)
549 CALL keyword_release(keyword)
550
551 CALL keyword_create(keyword, __location__, name="NUM_SLATER", &
552 description="Number of Slater type functions for s, p, d, ...", &
553 usage="NUM_SLATER 5 5 5 ", n_var=-1, type_of_var=integer_t, &
554 default_i_val=-1)
555 CALL section_add_keyword(section, keyword)
556 CALL keyword_release(keyword)
557
558 CALL keyword_create(keyword, __location__, name="START_INDEX", &
559 description="Starting index for Geometrical Basis sets", &
560 usage="START_INDEX 0 2 5 4 ", n_var=-1, type_of_var=integer_t, &
561 default_i_val=0)
562 CALL section_add_keyword(section, keyword)
563 CALL keyword_release(keyword)
564
565 CALL keyword_create(keyword, __location__, name="S_EXPONENTS", &
566 description="Exponents for s functions", &
567 usage="S_EXPONENTS 1.0 2.0 ... ", n_var=-1, type_of_var=real_t)
568 CALL section_add_keyword(section, keyword)
569 CALL keyword_release(keyword)
570 CALL keyword_create(keyword, __location__, name="P_EXPONENTS", &
571 description="Exponents for p functions", &
572 usage="P_EXPONENTS 1.0 2.0 ... ", n_var=-1, type_of_var=real_t)
573 CALL section_add_keyword(section, keyword)
574 CALL keyword_release(keyword)
575 CALL keyword_create(keyword, __location__, name="D_EXPONENTS", &
576 description="Exponents for d functions", &
577 usage="D_EXPONENTS 1.0 2.0 ... ", n_var=-1, type_of_var=real_t)
578 CALL section_add_keyword(section, keyword)
579 CALL keyword_release(keyword)
580 CALL keyword_create(keyword, __location__, name="F_EXPONENTS", &
581 description="Exponents for f functions", &
582 usage="F_EXPONENTS 1.0 2.0 ... ", n_var=-1, type_of_var=real_t)
583 CALL section_add_keyword(section, keyword)
584 CALL keyword_release(keyword)
585
586 CALL keyword_create(keyword, __location__, name="S_QUANTUM_NUMBERS", &
587 description="Main quantum numbers for s functions", &
588 usage="S_QUANTUM_NUMBERS 1 2 ... ", n_var=-1, type_of_var=integer_t)
589 CALL section_add_keyword(section, keyword)
590 CALL keyword_release(keyword)
591 CALL keyword_create(keyword, __location__, name="P_QUANTUM_NUMBERS", &
592 description="Main quantum numbers for p functions", &
593 usage="P_QUANTUM_NUMBERS 2 3 ... ", n_var=-1, type_of_var=integer_t)
594 CALL section_add_keyword(section, keyword)
595 CALL keyword_release(keyword)
596 CALL keyword_create(keyword, __location__, name="D_QUANTUM_NUMBERS", &
597 description="Main quantum numbers for d functions", &
598 usage="D_QUANTUM_NUMBERS 3 4 ... ", n_var=-1, type_of_var=integer_t)
599 CALL section_add_keyword(section, keyword)
600 CALL keyword_release(keyword)
601 CALL keyword_create(keyword, __location__, name="F_QUANTUM_NUMBERS", &
602 description="Main quantum numbers for f functions", &
603 usage="F_QUANTUM_NUMBERS 4 5 ... ", n_var=-1, type_of_var=integer_t)
604 CALL section_add_keyword(section, keyword)
605 CALL keyword_release(keyword)
606
607 CALL keyword_create(keyword, __location__, name="GEOMETRICAL_FACTOR", &
608 description="Geometrical basis: factor C in a*C^k", &
609 usage="GEOMETRICAL_FACTOR real", &
610 default_r_val=2.6_dp)
611 CALL section_add_keyword(section, keyword)
612 CALL keyword_release(keyword)
613
614 CALL keyword_create(keyword, __location__, name="GEO_START_VALUE", &
615 description="Geometrical basis: starting value a in a*C^k", &
616 usage="GEO_START_VALUE real", &
617 default_r_val=0.016_dp)
618 CALL section_add_keyword(section, keyword)
619 CALL keyword_release(keyword)
620
621 CALL keyword_create(keyword, __location__, name="BASIS_SET_FILE_NAME", &
622 description="Name of the basis set file, may include a path", &
623 usage="BASIS_SET_FILE_NAME <FILENAME>", &
624 default_lc_val="BASIS_SET")
625 CALL section_add_keyword(section, keyword)
626 CALL keyword_release(keyword)
627
628 CALL keyword_create(keyword, __location__, name="BASIS_SET", &
629 variants=s2a("ORBITAL_BASIS_SET", "ORB_BASIS"), &
630 description="The contracted Gaussian basis set", &
631 usage="BASIS_SET DZVP", default_c_val=" ", &
632 n_var=1)
633 CALL section_add_keyword(section, keyword)
634 CALL keyword_release(keyword)
635
636 CALL keyword_create(keyword, __location__, name="QUADRATURE", &
637 description="Algorithm to construct the atomic radial grids", &
638 usage="QUADRATURE (GC_SIMPLE|GC_TRANSFORMED|GC_LOG)", &
639 enum_c_vals=s2a("GC_SIMPLE", "GC_TRANSFORMED", "GC_LOG"), &
640 enum_i_vals=(/do_gapw_gcs, do_gapw_gct, do_gapw_log/), &
641 enum_desc=s2a("Gauss-Chebyshev quadrature", &
642 "Transformed Gauss-Chebyshev quadrature", &
643 "Logarithmic transformed Gauss-Chebyshev quadrature"), &
644 default_i_val=do_gapw_log)
645 CALL section_add_keyword(section, keyword)
646 CALL keyword_release(keyword)
647
648 CALL keyword_create(keyword, __location__, name="GRID_POINTS", &
649 description="Number of radial grid points", &
650 usage="GRID_POINTS integer", &
651 default_i_val=400)
652 CALL section_add_keyword(section, keyword)
653 CALL keyword_release(keyword)
654
655 CALL keyword_create(keyword, __location__, name="EPS_EIGENVALUE", &
656 description="Cutoff of overlap matrix eigenvalues included into basis", &
657 usage="EPS_EIGENVALUE real", &
658 default_r_val=1.e-12_dp)
659 CALL section_add_keyword(section, keyword)
660 CALL keyword_release(keyword)
661
662 NULLIFY (subsection)
663 CALL create_basis_section(subsection)
664 CALL section_add_subsection(section, subsection)
665 CALL section_release(subsection)
666
667 END SUBROUTINE atom_basis_section
668
669! **************************************************************************************************
670!> \brief Create the method section for Atom calculations
671!> \param section the section to create
672!> \author jgh
673! **************************************************************************************************
674 SUBROUTINE create_atom_method_section(section)
675 TYPE(section_type), POINTER :: section
676
677 TYPE(keyword_type), POINTER :: keyword
678 TYPE(section_type), POINTER :: subsection
679
680 NULLIFY (subsection, keyword)
681 cpassert(.NOT. ASSOCIATED(section))
682 CALL section_create(section, __location__, name="METHOD", &
683 description="Section of information on method to use.", &
684 n_keywords=0, n_subsections=2, repeats=.true.)
685
686 CALL keyword_create(keyword, __location__, name="METHOD_TYPE", &
687 description="Type of electronic structure method to be used", &
688 usage="METHOD_TYPE (KOHN-SHAM|RKS|UKS|HARTREE-FOCK|RHF|UHF|ROHF)", &
689 default_i_val=do_rks_atom, &
690 enum_c_vals=(/"KOHN-SHAM ", &
691 "RKS ", &
692 "UKS ", &
693 "HARTREE-FOCK ", &
694 "RHF ", &
695 "UHF ", &
696 "ROHF "/), &
699 enum_desc=s2a("Kohn-Sham electronic structure method", &
700 "Restricted Kohn-Sham electronic structure method", &
701 "Unrestricted Kohn-Sham electronic structure method", &
702 "Hartree-Fock electronic structure method", &
703 "Restricted Hartree-Fock electronic structure method", &
704 "Unrestricted Hartree-Fock electronic structure method", &
705 "Restricted open-shell Hartree-Fock electronic structure method"))
706 CALL section_add_keyword(section, keyword)
707 CALL keyword_release(keyword)
708
709 CALL keyword_create(keyword, __location__, name="RELATIVISTIC", &
710 description="Type of scalar relativistic method to be used", &
711 usage="RELATIVISTIC (OFF|ZORA(MP)|scZORA(MP)|DKH(0)|DKH(1)|DKH(2)|DKH(3))", &
712 default_i_val=do_nonrel_atom, &
713 enum_c_vals=(/"OFF ", &
714 "ZORA(MP) ", &
715 "scZORA(MP) ", &
716 "DKH(0) ", &
717 "DKH(1) ", &
718 "DKH(2) ", &
719 "DKH(3) "/), &
722 enum_desc=s2a("Use no scalar relativistic method", &
723 "Use ZORA method with atomic model potential", &
724 "Use scaled ZORA method with atomic model potential", &
725 "Use Douglas-Kroll-Hess Hamiltonian of order 0", &
726 "Use Douglas-Kroll-Hess Hamiltonian of order 1", &
727 "Use Douglas-Kroll-Hess Hamiltonian of order 2", &
728 "Use Douglas-Kroll-Hess Hamiltonian of order 3"))
729 CALL section_add_keyword(section, keyword)
730 CALL keyword_release(keyword)
731
732 CALL create_xc_section(subsection)
733 CALL section_add_subsection(section, subsection)
734 CALL section_release(subsection)
735
736! ZMP creating zubsection for the zmp calculations
737 CALL create_zmp_section(subsection)
738 CALL section_add_subsection(section, subsection)
739 CALL section_release(subsection)
740
741 CALL create_external_vxc(subsection)
742 CALL section_add_subsection(section, subsection)
743 CALL section_release(subsection)
744
745 END SUBROUTINE create_atom_method_section
746
747! **************************************************************************************************
748!> \brief Create the ZMP subsection for Atom calculations
749!>
750!> \param section ...
751!> \author D. Varsano [daniele.varsano@nano.cnr.it]
752! **************************************************************************************************
753 SUBROUTINE create_zmp_section(section)
754 TYPE(section_type), POINTER :: section
755
756 TYPE(keyword_type), POINTER :: keyword
757 TYPE(section_type), POINTER :: subsection
758
759 NULLIFY (subsection, keyword)
760 cpassert(.NOT. ASSOCIATED(section))
761 CALL section_create(section, __location__, name="ZMP", &
762 description="Section used to specify ZMP Potentials.", &
763 n_keywords=3, n_subsections=0, repeats=.false.)
764
765 CALL keyword_create(keyword, __location__, name="FILE_DENSITY", &
766 description="Specifies the filename containing the target density ", &
767 usage="FILE_DENSITY <FILENAME>", &
768 type_of_var=char_t, default_c_val="RHO_O.dat", n_var=-1)
769 CALL section_add_keyword(section, keyword)
770 CALL keyword_release(keyword)
771
772 CALL keyword_create(keyword, __location__, name="GRID_TOL", &
773 description="Tolerance in the equivalence of read-grid in ZMP method", &
774 usage="GRID_TOL <REAL>", default_r_val=1.e-12_dp)
775 CALL section_add_keyword(section, keyword)
776 CALL keyword_release(keyword)
777
778 CALL keyword_create(keyword, __location__, name="LAMBDA", &
779 description="Parameter used for the constraint in ZMP method", &
780 usage="LAMBDA <REAL>", default_r_val=10.0_dp)
781 CALL section_add_keyword(section, keyword)
782 CALL keyword_release(keyword)
783
784 CALL keyword_create(keyword, __location__, name="DM", &
785 description="read external density from density matrix", &
786 usage="DM <LOGICAL>", type_of_var=logical_t, default_l_val=.false.)
787 CALL section_add_keyword(section, keyword)
788 CALL keyword_release(keyword)
789
790 CALL create_zmp_restart_section(subsection)
791 CALL section_add_subsection(section, subsection)
792 CALL section_release(subsection)
793
794 END SUBROUTINE create_zmp_section
795
796! **************************************************************************************************
797!> \brief Create the ZMP restart subsection for Atom calculations
798!>
799!> \param section ...
800!> \author D. Varsano [daniele.varsano@nano.cnr.it]
801! **************************************************************************************************
802 SUBROUTINE create_zmp_restart_section(section)
803 TYPE(section_type), POINTER :: section
804
805 TYPE(keyword_type), POINTER :: keyword
806
807 NULLIFY (keyword)
808 cpassert(.NOT. ASSOCIATED(section))
809 CALL section_create(section, __location__, name="RESTART", &
810 description="Section used to specify the restart option in the ZMP "// &
811 "procedure, and the file that must be read.", &
812 n_keywords=1, n_subsections=0, repeats=.false.)
813
814 CALL keyword_create(keyword, __location__, name="FILE_RESTART", &
815 description="Specifies the filename containing the restart file density ", &
816 usage="FILE_RESTART <FILENAME>", &
817 type_of_var=char_t, default_c_val="RESTART.wfn", n_var=-1)
818 CALL section_add_keyword(section, keyword)
819 CALL keyword_release(keyword)
820
821 END SUBROUTINE create_zmp_restart_section
822
823! **************************************************************************************************
824!> \brief Subroutine to create the external v_xc potential
825!>
826!> \param section ...
827!> \author D. Varsano [daniele.varsano@nano.cnr.it]
828! **************************************************************************************************
829 SUBROUTINE create_external_vxc(section)
830 TYPE(section_type), POINTER :: section
831
832 TYPE(keyword_type), POINTER :: keyword
833
834 NULLIFY (keyword)
835 cpassert(.NOT. ASSOCIATED(section))
836 CALL section_create(section, __location__, name="EXTERNAL_VXC", &
837 description="Section used to specify exernal VXC Potentials.", &
838 n_keywords=1, n_subsections=0, repeats=.false.)
839
840 CALL keyword_create(keyword, __location__, name="FILE_VXC", &
841 description="Specifies the filename containing the external vxc ", &
842 usage="FILE_VXC <FILENAME>", &
843 type_of_var=char_t, default_c_val="VXC.dat", n_var=-1)
844 CALL section_add_keyword(section, keyword)
845 CALL keyword_release(keyword)
846
847 CALL keyword_create(keyword, __location__, name="GRID_TOL", &
848 description="Tolerance in the equivalence of read-grid in ZMP method", &
849 usage="GRID_TOL <REAL>", default_r_val=1.e-12_dp)
850 CALL section_add_keyword(section, keyword)
851 CALL keyword_release(keyword)
852
853 END SUBROUTINE create_external_vxc
854
855! **************************************************************************************************
856!> \brief Create the optimization section for Atom calculations
857!> \param section the section to create
858!> \author jgh
859! **************************************************************************************************
860 SUBROUTINE create_optimization_section(section)
861 TYPE(section_type), POINTER :: section
862
863 TYPE(keyword_type), POINTER :: keyword
864
865 NULLIFY (keyword)
866 cpassert(.NOT. ASSOCIATED(section))
867 CALL section_create(section, __location__, name="OPTIMIZATION", &
868 description="Section of information on optimization thresholds and algorithms.", &
869 n_keywords=0, n_subsections=1, repeats=.false.)
870
871 CALL keyword_create(keyword, __location__, name="MAX_ITER", &
872 description="Maximum number of iterations for optimization", &
873 usage="MAX_ITER 50", default_i_val=200)
874 CALL section_add_keyword(section, keyword)
875 CALL keyword_release(keyword)
876
877 CALL keyword_create(keyword, __location__, name="EPS_SCF", &
878 description="Convergence criterion for SCF", &
879 usage="EPS_SCF 1.e-10", default_r_val=1.e-6_dp)
880 CALL section_add_keyword(section, keyword)
881 CALL keyword_release(keyword)
882
883 CALL keyword_create(keyword, __location__, name="DAMPING", &
884 description="Damping parameter for extrapolation method", &
885 usage="DAMPING 0.4", default_r_val=0.4_dp)
886 CALL section_add_keyword(section, keyword)
887 CALL keyword_release(keyword)
888
889 CALL keyword_create(keyword, __location__, name="EPS_DIIS", &
890 description="Starting DIIS method at convergence to EPS_DIIS", &
891 usage="EPS_DIIS 0.01", default_r_val=10000._dp)
892 CALL section_add_keyword(section, keyword)
893 CALL keyword_release(keyword)
894
895 CALL keyword_create(keyword, __location__, name="N_DIIS", &
896 description="Maximum number of DIIS vectors", &
897 usage="N_DIIS 6", default_i_val=5)
898 CALL section_add_keyword(section, keyword)
899 CALL keyword_release(keyword)
900
901 END SUBROUTINE create_optimization_section
902
903! **************************************************************************************************
904!> \brief Create the potential section for Atom calculations
905!> \param section the section to create
906!> \author jgh
907! **************************************************************************************************
908 SUBROUTINE create_potential_section(section)
909 TYPE(section_type), POINTER :: section
910
911 TYPE(keyword_type), POINTER :: keyword
912 TYPE(section_type), POINTER :: subsection
913
914 NULLIFY (keyword)
915 cpassert(.NOT. ASSOCIATED(section))
916 CALL section_create(section, __location__, name="POTENTIAL", &
917 description="Section of information on potential.", &
918 n_keywords=0, n_subsections=1, repeats=.false.)
919
920 CALL keyword_create(keyword, __location__, name="CONFINEMENT_TYPE", &
921 description="Define functional form of confinement potential.", &
922 usage="CONFINEMENT_TYPE (NONE|POLYNOM|BARRIER)", &
923 default_i_val=poly_conf, &
924 enum_c_vals=(/"NONE ", &
925 "POLYNOM ", &
926 "BARRIER "/), &
927 enum_i_vals=(/no_conf, poly_conf, barrier_conf/), &
928 enum_desc=s2a("Do not use confinement potential", &
929 "Use polynomial confinement potential: a*(R/b)^c", &
930 "Use a smooth barrier potential: a*F[R-c)/b]"))
931 CALL section_add_keyword(section, keyword)
932 CALL keyword_release(keyword)
933
934 CALL keyword_create(keyword, __location__, name="CONFINEMENT", &
935 description="Definition of parameters for confinement potential (a,b,c)", &
936 usage="CONFINEMENT prefactor range exponent (POLYNOM) "// &
937 "CONFINEMENT prefactor range r_onset (BARRIER)", &
938 default_r_vals=(/0._dp, 0._dp, 0._dp/), &
939 repeats=.false., n_var=-1)
940 CALL section_add_keyword(section, keyword)
941 CALL keyword_release(keyword)
942
943 CALL keyword_create(keyword, __location__, name="PSEUDO_TYPE", &
944 description="Pseudopotential type", &
945 usage="PSEUDO_TYPE (NONE|GTH|UPF|ECP)", &
946 default_i_val=no_pseudo, &
947 enum_c_vals=(/"NONE ", &
948 "GTH ", &
949 "UPF ", &
950 "SGP ", &
951 "ECP "/), &
953 enum_desc=s2a("Do not use pseudopotentials", &
954 "Use Goedecker-Teter-Hutter pseudopotentials", &
955 "Use UPF norm-conserving pseudopotentials", &
956 "Use SGP norm-conserving pseudopotentials", &
957 "Use ECP semi-local pseudopotentials"))
958 CALL section_add_keyword(section, keyword)
959 CALL keyword_release(keyword)
960
961 CALL keyword_create(keyword, __location__, name="POTENTIAL_FILE_NAME", &
962 description="Name of the pseudo potential file, may include a path", &
963 usage="POTENTIAL_FILE_NAME <FILENAME>", &
964 default_lc_val="POTENTIAL")
965 CALL section_add_keyword(section, keyword)
966 CALL keyword_release(keyword)
967
968 CALL keyword_create(keyword, __location__, name="POTENTIAL_NAME", &
969 variants=(/"POT_NAME"/), &
970 description="The name of the pseudopotential for the defined kind.", &
971 usage="POTENTIAL_NAME <PSEUDO-POTENTIAL-NAME>", default_c_val=" ", n_var=1)
972 CALL section_add_keyword(section, keyword)
973 CALL keyword_release(keyword)
974
975 NULLIFY (subsection)
976 CALL create_gthpotential_section(subsection)
977 CALL section_add_subsection(section, subsection)
978 CALL section_release(subsection)
979
980 NULLIFY (subsection)
981 CALL create_ecp_section(subsection)
982 CALL section_add_subsection(section, subsection)
983 CALL section_release(subsection)
984
985 END SUBROUTINE create_potential_section
986
987! **************************************************************************************************
988!> \brief Creates the &GTH_POTENTIAL section
989!> \param section the section to create
990!> \author teo
991! **************************************************************************************************
992 SUBROUTINE create_gthpotential_section(section)
993 TYPE(section_type), POINTER :: section
994
995 TYPE(keyword_type), POINTER :: keyword
996
997 CALL section_create(section, __location__, name="GTH_POTENTIAL", &
998 description="Section used to specify Potentials.", &
999 n_keywords=1, n_subsections=0, repeats=.false.)
1000 NULLIFY (keyword)
1001 CALL keyword_create(keyword, __location__, name="_DEFAULT_KEYWORD_", &
1002 description="CP2K Pseudo Potential Standard Format (GTH, ALL or KG)", &
1003 repeats=.true., type_of_var=lchar_t)
1004 CALL section_add_keyword(section, keyword)
1005 CALL keyword_release(keyword)
1006 END SUBROUTINE create_gthpotential_section
1007
1008! **************************************************************************************************
1009!> \brief Creates the &ECP section
1010!> \param section the section to create
1011!> \author jgh
1012! **************************************************************************************************
1013 SUBROUTINE create_ecp_section(section)
1014 TYPE(section_type), POINTER :: section
1015
1016 TYPE(keyword_type), POINTER :: keyword
1017
1018 CALL section_create(section, __location__, name="ECP", &
1019 description="Section used to specify ECP's.", &
1020 n_keywords=1, n_subsections=0, repeats=.false.)
1021 NULLIFY (keyword)
1022 CALL keyword_create(keyword, __location__, name="_DEFAULT_KEYWORD_", &
1023 description="Effective Core Potentials definition", &
1024 repeats=.true., type_of_var=lchar_t)
1025 CALL section_add_keyword(section, keyword)
1026 CALL keyword_release(keyword)
1027 END SUBROUTINE create_ecp_section
1028
1029! **************************************************************************************************
1030!> \brief Creates the &BASIS section
1031!> \param section the section to create
1032!> \author teo
1033! **************************************************************************************************
1034 SUBROUTINE create_basis_section(section)
1035 TYPE(section_type), POINTER :: section
1036
1037 TYPE(keyword_type), POINTER :: keyword
1038
1039 CALL section_create(section, __location__, name="basis", &
1040 description="Section used to specify a general basis set for QM calculations.", &
1041 n_keywords=1, n_subsections=0, repeats=.false.)
1042 NULLIFY (keyword)
1043 CALL keyword_create(keyword, __location__, name="_DEFAULT_KEYWORD_", &
1044 description="CP2K Basis Set Standard Format", repeats=.true., &
1045 type_of_var=lchar_t)
1046 CALL section_add_keyword(section, keyword)
1047 CALL keyword_release(keyword)
1048 END SUBROUTINE create_basis_section
1049
1050! **************************************************************************************************
1051!> \brief Creates the &POWELL section
1052!> \param section the section to create
1053!> \author teo
1054! **************************************************************************************************
1055 SUBROUTINE create_powell_section(section)
1056 TYPE(section_type), POINTER :: section
1057
1058 TYPE(keyword_type), POINTER :: keyword
1059
1060 CALL section_create(section, __location__, name="powell", &
1061 description="Section defines basic parameters for Powell optimization", &
1062 n_keywords=4, n_subsections=0, repeats=.false.)
1063
1064 NULLIFY (keyword)
1065 CALL keyword_create(keyword, __location__, name="ACCURACY", &
1066 description="Final accuracy requested in optimization (RHOEND)", &
1067 usage="ACCURACY 0.00001", &
1068 default_r_val=1.e-6_dp)
1069 CALL section_add_keyword(section, keyword)
1070 CALL keyword_release(keyword)
1071
1072 CALL keyword_create(keyword, __location__, name="STEP_SIZE", &
1073 description="Initial step size for search algorithm (RHOBEG)", &
1074 usage="STEP_SIZE 0.005", &
1075 default_r_val=0.005_dp)
1076 CALL section_add_keyword(section, keyword)
1077 CALL keyword_release(keyword)
1078
1079 CALL keyword_create(keyword, __location__, name="MAX_FUN", &
1080 description="Maximum number of function evaluations", &
1081 usage="MAX_FUN 1000", &
1082 default_i_val=5000)
1083 CALL section_add_keyword(section, keyword)
1084 CALL keyword_release(keyword)
1085
1086 CALL keyword_create(keyword, __location__, name="MAX_INIT", &
1087 description="Maximum number of re-initialization of Powell method", &
1088 usage="MAX_INIT 5", &
1089 default_i_val=1)
1090 CALL section_add_keyword(section, keyword)
1091 CALL keyword_release(keyword)
1092
1093 CALL keyword_create(keyword, __location__, name="STEP_SIZE_SCALING", &
1094 description="Scaling of Step Size on re-initialization of Powell method", &
1095 usage="STEP_SIZE_SCALING 0.80", &
1096 default_r_val=0.75_dp)
1097 CALL section_add_keyword(section, keyword)
1098 CALL keyword_release(keyword)
1099
1100 CALL keyword_create(keyword, __location__, name="WEIGHT_POT_VIRTUAL", &
1101 description="Weight for virtual states in pseudopotential optimization", &
1102 usage="WEIGHT_POT_VIRTUAL 1.0", &
1103 default_r_val=1._dp)
1104 CALL section_add_keyword(section, keyword)
1105 CALL keyword_release(keyword)
1106
1107 CALL keyword_create(keyword, __location__, name="WEIGHT_POT_SEMICORE", &
1108 description="Weight for semi core states in pseudopotential optimization", &
1109 usage="WEIGHT_POT_SEMICORE 1.0", &
1110 default_r_val=1._dp)
1111 CALL section_add_keyword(section, keyword)
1112 CALL keyword_release(keyword)
1113
1114 CALL keyword_create(keyword, __location__, name="WEIGHT_POT_VALENCE", &
1115 description="Weight for valence states in pseudopotential optimization", &
1116 usage="WEIGHT_POT_VALENCE 1.0", &
1117 default_r_val=1.0_dp)
1118 CALL section_add_keyword(section, keyword)
1119 CALL keyword_release(keyword)
1120
1121 CALL keyword_create(keyword, __location__, name="WEIGHT_POT_NODE", &
1122 description="Weight for node mismatch in pseudopotential optimization", &
1123 usage="WEIGHT_POT_NODE 1.0", &
1124 default_r_val=1.0_dp)
1125 CALL section_add_keyword(section, keyword)
1126 CALL keyword_release(keyword)
1127
1128 CALL keyword_create(keyword, __location__, name="WEIGHT_DELTA_ENERGY", &
1129 description="Weight for energy differences in pseudopotential optimization", &
1130 usage="WEIGHT_DELTA_ENERGY 1.0", &
1131 default_r_val=1._dp)
1132 CALL section_add_keyword(section, keyword)
1133 CALL keyword_release(keyword)
1134
1135 CALL keyword_create(keyword, __location__, name="WEIGHT_ELECTRON_CONFIGURATION", &
1136 description="Weight for different electronic states in optimization", &
1137 usage="WEIGHT_ELECTRON_CONFIGURATION 1.0 0.1 ...", &
1138 n_var=-1, type_of_var=real_t, default_r_val=1.0_dp)
1139 CALL section_add_keyword(section, keyword)
1140 CALL keyword_release(keyword)
1141
1142 CALL keyword_create(keyword, __location__, name="WEIGHT_METHOD", &
1143 description="Weight for different methods in optimization", &
1144 usage="WEIGHT_METHOD 1.0 0.1 ...", &
1145 n_var=-1, type_of_var=real_t, default_r_val=1.0_dp)
1146 CALL section_add_keyword(section, keyword)
1147 CALL keyword_release(keyword)
1148
1149 CALL keyword_create(keyword, __location__, name="TARGET_POT_VIRTUAL", &
1150 description="Target accuracy for virtual state eigenvalues in pseudopotential optimization", &
1151 usage="TARGET_POT_VIRTUAL 0.0001", &
1152 default_r_val=1.0e-3_dp, unit_str="hartree")
1153 CALL section_add_keyword(section, keyword)
1154 CALL keyword_release(keyword)
1155
1156 CALL keyword_create(keyword, __location__, name="TARGET_POT_VALENCE", &
1157 description="Target accuracy for valence state eigenvalues in pseudopotential optimization", &
1158 usage="TARGET_POT_VALENCE 0.0001", &
1159 default_r_val=1.0e-5_dp, unit_str="hartree")
1160 CALL section_add_keyword(section, keyword)
1161 CALL keyword_release(keyword)
1162
1163 CALL keyword_create(keyword, __location__, name="TARGET_POT_SEMICORE", &
1164 description="Target accuracy for semicore state eigenvalues in pseudopotential optimization", &
1165 usage="TARGET_POT_SEMICORE 0.01", &
1166 default_r_val=1.0e-3_dp, unit_str="hartree")
1167 CALL section_add_keyword(section, keyword)
1168 CALL keyword_release(keyword)
1169
1170 CALL keyword_create(keyword, __location__, name="TARGET_DELTA_ENERGY", &
1171 description="Target accuracy for energy differences in pseudopotential optimization", &
1172 usage="TARGET_DELTA_ENERGY 0.01", &
1173 default_r_val=1.0e-4_dp, unit_str="hartree")
1174 CALL section_add_keyword(section, keyword)
1175 CALL keyword_release(keyword)
1176
1177 CALL keyword_create(keyword, __location__, name="TARGET_PSIR0", &
1178 description="Minimum value for the wavefunctions at r=0 (only occupied states)"// &
1179 " Value=0 means keeping wfn(r=0)=0", &
1180 usage="TARGET_PSIR0 0.50", &
1181 default_r_val=0._dp)
1182 CALL section_add_keyword(section, keyword)
1183 CALL keyword_release(keyword)
1184
1185 CALL keyword_create(keyword, __location__, name="WEIGHT_PSIR0", &
1186 description="Weight for the wavefunctions at r=0 (only occupied states)", &
1187 usage="WEIGHT_PSIR0 0.01", &
1188 default_r_val=0._dp)
1189 CALL section_add_keyword(section, keyword)
1190 CALL keyword_release(keyword)
1191
1192 CALL keyword_create(keyword, __location__, name="RCOV_MULTIPLICATION", &
1193 description="Multiply Rcov integration limit for charge conservation", &
1194 usage="RCOV_MULTIPLICATION 1.10", &
1195 default_r_val=1._dp)
1196 CALL section_add_keyword(section, keyword)
1197 CALL keyword_release(keyword)
1198
1199 CALL keyword_create(keyword, __location__, name="SEMICORE_LEVEL", &
1200 description="Energy at which to consider a full shell as semicore", &
1201 usage="SEMICORE_LEVEL 1.0", &
1202 default_r_val=1._dp, unit_str="hartree")
1203 CALL section_add_keyword(section, keyword)
1204 CALL keyword_release(keyword)
1205
1206 CALL keyword_create(keyword, __location__, name="NOOPT_NLCC", &
1207 description="Don't optimize NLCC parameters.", &
1208 usage="NOOPT_NLCC T", &
1209 type_of_var=logical_t, &
1210 default_l_val=.false.)
1211 CALL section_add_keyword(section, keyword)
1212 CALL keyword_release(keyword)
1213
1214 CALL keyword_create(keyword, __location__, name="PREOPT_NLCC", &
1215 description="Optimize NLCC parameters by fitting core charge density.", &
1216 usage="PREOPT_NLCC T", &
1217 type_of_var=logical_t, &
1218 default_l_val=.false.)
1219 CALL section_add_keyword(section, keyword)
1220 CALL keyword_release(keyword)
1221
1222 END SUBROUTINE create_powell_section
1223
1224! **************************************************************************************************
1225
1226END 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