(git:87fe8d4)
Loading...
Searching...
No Matches
input_cp2k_print_dft.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 function that build the print section of the dft input
10!> \par History
11!> 10.2005 moved out of input_cp2k [fawzi]
12!> 07.2024 moved out of input_cp2k_dft [JGH]
13!> \author fawzi
14! **************************************************************************************************
18 USE bibliography, ONLY: &
35 USE cp_spline_utils, ONLY: pw_interp, &
38 USE cp_units, ONLY: cp_unit_to_cp2k
39 USE input_constants, ONLY: &
146 USE input_val_types, ONLY: char_t, &
147 integer_t, &
148 lchar_t, &
149 logical_t, &
150 real_t
151 USE kinds, ONLY: dp
155 USE pw_spline_utils, ONLY: no_precond, &
164 USE string_utilities, ONLY: newline, &
165 s2a
166#include "./base/base_uses.f90"
167
168 IMPLICIT NONE
169 PRIVATE
170
171 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'input_cp2k_print_dft'
172
174
175CONTAINS
176
177! **************************************************************************************************
178!> \brief Create the print dft section
179!> \param section the section to create
180!> \author teo
181! **************************************************************************************************
182 SUBROUTINE create_print_dft_section(section)
183 TYPE(section_type), POINTER :: section
184
185 TYPE(keyword_type), POINTER :: keyword
186 TYPE(section_type), POINTER :: print_key, sub_print_key, subsection
187
188 cpassert(.NOT. ASSOCIATED(section))
189 CALL section_create(section, __location__, name="PRINT", &
190 description="Section of possible print options in DFT code.", &
191 n_keywords=0, n_subsections=1, repeats=.false.)
192
193 NULLIFY (print_key, keyword, subsection)
194
195 CALL cp_print_key_section_create(print_key, __location__, "PROGRAM_BANNER", &
196 description="Controls the printing of the banner of the MM program", &
197 print_level=silent_print_level, filename="__STD_OUT__")
198 CALL section_add_subsection(section, print_key)
199 CALL section_release(print_key)
200
201 CALL cp_print_key_section_create(print_key, __location__, "BASIS_SET_FILE", &
202 description="Controls the printing of a file with all basis sets used.", &
203 print_level=high_print_level, filename="LOCAL_BASIS_SETS")
204 CALL section_add_subsection(section, print_key)
205 CALL section_release(print_key)
206
207 CALL cp_print_key_section_create(print_key, __location__, "KINETIC_ENERGY", &
208 description="Controls the printing of the kinetic energy", &
209 print_level=high_print_level, filename="__STD_OUT__")
210 CALL section_add_subsection(section, print_key)
211 CALL section_release(print_key)
212
213 CALL cp_print_key_section_create(print_key, __location__, "DERIVATIVES", &
214 description="Print all derivatives after the DFT calculation", &
215 print_level=high_print_level, filename="__STD_OUT__")
216 CALL keyword_create(keyword, __location__, &
217 name="ndigits", &
218 description="Specify the number of digits used to print derivatives", &
219 default_i_val=6)
220 CALL section_add_keyword(print_key, keyword)
221 CALL keyword_release(keyword)
222
223 CALL section_add_subsection(section, print_key)
224 CALL section_release(print_key)
225
226 CALL cp_print_key_section_create(print_key, __location__, name="neighbor_lists", &
227 description="Controls the printing of the neighbor lists", &
228 print_level=debug_print_level, filename="", unit_str="angstrom")
229 CALL keyword_create(keyword, __location__, &
230 name="sab_orb", &
231 description="Activates the printing of the orbital "// &
232 "orbital neighbor lists, "// &
233 "i.e. the overlap neighbor lists", &
234 default_l_val=.false., &
235 lone_keyword_l_val=.true.)
236 CALL section_add_keyword(print_key, keyword)
237 CALL keyword_release(keyword)
238
239 CALL keyword_create(keyword, __location__, &
240 name="sab_aux_fit", &
241 description="Activates the printing of the orbital "// &
242 "orbital neighbor lists wavefunction fitting basis, "// &
243 "i.e. the overlap neighbor lists", &
244 default_l_val=.false., &
245 lone_keyword_l_val=.true.)
246 CALL section_add_keyword(print_key, keyword)
247 CALL keyword_release(keyword)
248
249 CALL keyword_create(keyword, __location__, &
250 name="sab_aux_fit_vs_orb", &
251 description="Activates the printing of the orbital "// &
252 "orbital mixed neighbor lists of wavefunction fitting basis, "// &
253 "and the orbital basis, i.e. the overlap neighbor lists", &
254 default_l_val=.false., &
255 lone_keyword_l_val=.true.)
256 CALL section_add_keyword(print_key, keyword)
257 CALL keyword_release(keyword)
258
259 CALL keyword_create(keyword, __location__, &
260 name="sab_scp", &
261 description="Activates the printing of the vdW SCP "// &
262 "neighbor lists ", &
263 default_l_val=.false., &
264 lone_keyword_l_val=.true.)
265 CALL section_add_keyword(print_key, keyword)
266 CALL keyword_release(keyword)
267
268 CALL keyword_create(keyword, __location__, &
269 name="sab_vdw", &
270 description="Activates the printing of the vdW "// &
271 "neighbor lists (from DFT, DFTB, SE), "// &
272 "i.e. the dispersion neighbor lists", &
273 default_l_val=.false., &
274 lone_keyword_l_val=.true.)
275 CALL section_add_keyword(print_key, keyword)
276 CALL keyword_release(keyword)
277
278 CALL keyword_create(keyword, __location__, &
279 name="sab_cn", &
280 description="Activates the printing of the "// &
281 "neighbor lists used for coordination numbers in vdW DFT-D3", &
282 default_l_val=.false., &
283 lone_keyword_l_val=.true.)
284 CALL section_add_keyword(print_key, keyword)
285 CALL keyword_release(keyword)
286
287 CALL keyword_create(keyword, __location__, &
288 name="sac_ae", &
289 description="Activates the printing of the orbital "// &
290 "nuclear attraction neighbor lists (erfc potential)", &
291 default_l_val=.false., &
292 lone_keyword_l_val=.true.)
293 CALL section_add_keyword(print_key, keyword)
294 CALL keyword_release(keyword)
295
296 CALL keyword_create(keyword, __location__, &
297 name="sac_ppl", &
298 description="Activates the printing of the orbital "// &
299 "GTH-PPL neighbor lists (local part of the "// &
300 "Goedecker-Teter-Hutter pseudo potentials)", &
301 default_l_val=.false., &
302 lone_keyword_l_val=.true.)
303 CALL section_add_keyword(print_key, keyword)
304 CALL keyword_release(keyword)
305
306 CALL keyword_create(keyword, __location__, &
307 name="sap_ppnl", &
308 description="Activates the printing of the orbital "// &
309 "GTH-PPNL neighbor lists (non-local part of the "// &
310 "Goedecker-Teter-Hutter pseudo potentials)", &
311 default_l_val=.false., &
312 lone_keyword_l_val=.true.)
313 CALL section_add_keyword(print_key, keyword)
314 CALL keyword_release(keyword)
315
316 CALL keyword_create(keyword, __location__, &
317 name="sap_oce", &
318 description="Activates the printing of the orbital "// &
319 "PAW-projector neighbor lists (only GAPW)", &
320 default_l_val=.false., &
321 lone_keyword_l_val=.true.)
322 CALL section_add_keyword(print_key, keyword)
323 CALL keyword_release(keyword)
324
325 CALL keyword_create(keyword, __location__, &
326 name="sab_se", &
327 description="Activates the printing of the two-center "// &
328 "neighbor lists for Coulomb type interactions in NDDO ", &
329 default_l_val=.false., &
330 lone_keyword_l_val=.true.)
331 CALL section_add_keyword(print_key, keyword)
332 CALL keyword_release(keyword)
333
334 CALL keyword_create(keyword, __location__, &
335 name="sab_lrc", &
336 description="Activates the printing of the long-range SE correction "// &
337 "neighbor lists (only when doing long-range SE with integral scheme KDSO and KDSO-d)", &
338 default_l_val=.false., lone_keyword_l_val=.true.)
339 CALL section_add_keyword(print_key, keyword)
340 CALL keyword_release(keyword)
341
342 CALL keyword_create(keyword, __location__, &
343 name="sab_tbe", &
344 description="Activates the printing of the DFTB Ewald "// &
345 "neighbor lists ", &
346 default_l_val=.false., &
347 lone_keyword_l_val=.true.)
348 CALL section_add_keyword(print_key, keyword)
349 CALL keyword_release(keyword)
350
351 CALL keyword_create(keyword, __location__, &
352 name="sab_xtbe", &
353 description="Activates the printing of the xTB sr-Coulomb "// &
354 "neighbor lists ", &
355 default_l_val=.false., &
356 lone_keyword_l_val=.true.)
357 CALL section_add_keyword(print_key, keyword)
358 CALL keyword_release(keyword)
359
360 CALL keyword_create(keyword, __location__, &
361 name="sab_core", &
362 description="Activates the printing of core interaction "// &
363 "neighbor lists ", &
364 default_l_val=.false., &
365 lone_keyword_l_val=.true.)
366 CALL section_add_keyword(print_key, keyword)
367 CALL keyword_release(keyword)
368
369 CALL keyword_create(keyword, __location__, &
370 name="sab_xb", &
371 description="Activates the printing of XB interaction from (xTB) "// &
372 "neighbor lists ", &
373 default_l_val=.false., &
374 lone_keyword_l_val=.true.)
375 CALL section_add_keyword(print_key, keyword)
376 CALL keyword_release(keyword)
377
378 CALL keyword_create(keyword, __location__, &
379 name="sab_xtb_nonbond", &
380 description="Activates the printing of nonbonded interaction from (xTB) "// &
381 "neighbor lists ", &
382 default_l_val=.false., &
383 lone_keyword_l_val=.true.)
384 CALL section_add_keyword(print_key, keyword)
385 CALL keyword_release(keyword)
386
387 CALL keyword_create(keyword, __location__, &
388 name="soo_list", &
389 description="Activates the printing of RI orbital-orbital "// &
390 "neighbor lists ", &
391 default_l_val=.false., &
392 lone_keyword_l_val=.true.)
393 CALL section_add_keyword(print_key, keyword)
394 CALL keyword_release(keyword)
395
396 CALL keyword_create(keyword, __location__, &
397 name="sip_list", &
398 description="Activates the printing of RI basis-projector interaction "// &
399 "neighbor lists ", &
400 default_l_val=.false., &
401 lone_keyword_l_val=.true.)
402 CALL section_add_keyword(print_key, keyword)
403 CALL keyword_release(keyword)
404
405 CALL keyword_create(keyword, __location__, &
406 name="sab_cneo", &
407 description="Activates the printing of the nuclear orbital "// &
408 "nuclear repulsion neighbor lists (erfc potential)", &
409 default_l_val=.false., &
410 lone_keyword_l_val=.true.)
411 CALL section_add_keyword(print_key, keyword)
412 CALL keyword_release(keyword)
413
414 CALL section_add_subsection(section, print_key)
415 CALL section_release(print_key)
416
417 CALL cp_print_key_section_create(print_key, __location__, "SUBCELL", &
418 description="Activates the printing of the subcells used for the "// &
419 "generation of neighbor lists.", unit_str="angstrom", &
420 print_level=high_print_level, filename="__STD_OUT__")
421 CALL section_add_subsection(section, print_key)
422 CALL section_release(print_key)
423
424 CALL cp_print_key_section_create(print_key, __location__, "AO_MATRICES", &
425 description="Controls the printing of the ao (i.e. contracted gaussian) matrices (debug).", &
426 print_level=debug_print_level, filename="__STD_OUT__")
427 CALL keyword_create(keyword, __location__, name="OMIT_HEADERS", &
428 description="Print only the matrix data, not the row and column headers", &
429 default_l_val=.false., lone_keyword_l_val=.true.)
430 CALL section_add_keyword(print_key, keyword)
431 CALL keyword_release(keyword)
432 CALL keyword_create(keyword, __location__, name="NDIGITS", &
433 description="Specify the number of digits used to print the AO matrices", &
434 default_i_val=6)
435 CALL section_add_keyword(print_key, keyword)
436 CALL keyword_release(keyword)
437 CALL keyword_create(keyword, __location__, name="CORE_HAMILTONIAN", &
438 description="If the printkey is activated controls the printing of the hamiltonian matrix", &
439 default_l_val=.false., lone_keyword_l_val=.true.)
440 CALL section_add_keyword(print_key, keyword)
441 CALL keyword_release(keyword)
442 CALL keyword_create(keyword, __location__, name="DENSITY", &
443 description="If the printkey is activated controls the printing of the density (P) matrix", &
444 default_l_val=.false., lone_keyword_l_val=.true.)
445 CALL section_add_keyword(print_key, keyword)
446 CALL keyword_release(keyword)
447
448 CALL keyword_create(keyword, __location__, name="KINETIC_ENERGY", &
449 description="If the printkey is activated controls the printing of the kinetic energy matrix", &
450 default_l_val=.false., lone_keyword_l_val=.true.)
451 CALL section_add_keyword(print_key, keyword)
452 CALL keyword_release(keyword)
453 CALL keyword_create(keyword, __location__, name="KOHN_SHAM_MATRIX", &
454 description="If the printkey is activated controls the printing of the Kohn-Sham matrix", &
455 default_l_val=.false., lone_keyword_l_val=.true.)
456 CALL section_add_keyword(print_key, keyword)
457 CALL keyword_release(keyword)
458 CALL keyword_create( &
459 keyword, __location__, name="MATRIX_VXC", &
460 description="If the printkey is activated compute and print the matrix of the exchange and correlation potential. "// &
461 "Only the GGA part for GPW is printed", &
462 default_l_val=.false., lone_keyword_l_val=.true.)
463 CALL section_add_keyword(print_key, keyword)
464 CALL keyword_release(keyword)
465 CALL keyword_create(keyword, __location__, name="ORTHO", &
466 description="If the printkey is activated controls the printing of the orthogonalization matrix", &
467 default_l_val=.false., lone_keyword_l_val=.true.)
468 CALL section_add_keyword(print_key, keyword)
469 CALL keyword_release(keyword)
470 CALL keyword_create(keyword, __location__, name="OVERLAP", &
471 description="If the printkey is activated controls the printing of the overlap matrix", &
472 default_l_val=.false., lone_keyword_l_val=.true.)
473 CALL section_add_keyword(print_key, keyword)
474 CALL keyword_release(keyword)
475 CALL keyword_create(keyword, __location__, name="COMMUTATOR_HR", &
476 description="Controls the printing of the [H,r] commutator matrix", &
477 default_l_val=.false., lone_keyword_l_val=.true.)
478 CALL section_add_keyword(print_key, keyword)
479 CALL keyword_release(keyword)
480
481 CALL keyword_create(keyword, __location__, name="FERMI_CONTACT", &
482 description="If the printkey is activated controls the printing of the Fermi contact matrix", &
483 default_l_val=.false., lone_keyword_l_val=.true.)
484 CALL section_add_keyword(print_key, keyword)
485 CALL keyword_release(keyword)
486 CALL keyword_create( &
487 keyword, __location__, name="PSO", &
488 description="If the printkey is activated controls the printing of the paramagnetic spin-orbit matrices", &
489 default_l_val=.false., lone_keyword_l_val=.true.)
490 CALL section_add_keyword(print_key, keyword)
491 CALL keyword_release(keyword)
492 CALL keyword_create( &
493 keyword, __location__, name="EFG", &
494 description="If the printkey is activated controls the printing of the electric field gradient matrices", &
495 default_l_val=.false., lone_keyword_l_val=.true.)
496 CALL section_add_keyword(print_key, keyword)
497 CALL keyword_release(keyword)
498 CALL keyword_create(keyword, __location__, name="POTENTIAL_ENERGY", &
499 description="If the printkey is activated controls the printing of the potential energy matrix", &
500 default_l_val=.false., lone_keyword_l_val=.true.)
501 CALL section_add_keyword(print_key, keyword)
502 CALL keyword_release(keyword)
503 CALL keyword_create(keyword, __location__, name="OCE_HARD", &
504 description="If the printkey is activated controls the printing of the OCE HARD matrix", &
505 default_l_val=.false., lone_keyword_l_val=.true.)
506 CALL section_add_keyword(print_key, keyword)
507 CALL keyword_release(keyword)
508 CALL keyword_create(keyword, __location__, name="OCE_SOFT", &
509 description="If the printkey is activated controls the printing of the OCE SOFT matrix", &
510 default_l_val=.false., lone_keyword_l_val=.true.)
511 CALL section_add_keyword(print_key, keyword)
512 CALL keyword_release(keyword)
513 CALL keyword_create(keyword, __location__, name="W_MATRIX", &
514 description="If the printkey is activated controls the printing of the w matrix", &
515 default_l_val=.false., lone_keyword_l_val=.true.)
516 CALL section_add_keyword(print_key, keyword)
517 CALL keyword_release(keyword)
518 CALL keyword_create(keyword, __location__, name="W_MATRIX_AUX_FIT", &
519 description="If the printkey is activated controls the printing of the w matrix", &
520 default_l_val=.false., lone_keyword_l_val=.true.)
521 CALL section_add_keyword(print_key, keyword)
522 CALL keyword_release(keyword)
523 CALL keyword_create(keyword, __location__, name="DERIVATIVES", &
524 description="If the printkey is activated controls the printing "// &
525 "of derivatives (for the matrixes that support this)", &
526 default_l_val=.false., lone_keyword_l_val=.true.)
527 CALL section_add_keyword(print_key, keyword)
528 CALL keyword_release(keyword)
529 CALL section_add_subsection(section, print_key)
530 CALL section_release(print_key)
531
533 print_key, __location__, "MO", &
534 description="Controls the printing of the molecular orbital (MO) information. The requested MO information "// &
535 "is printed for all occupied MOs by default. Use the MO_INDEX_RANGE keyword to restrict the number "// &
536 "of the MOs or to print the MO information for unoccupied MOs. With diagonalization, additional MOs "// &
537 "have to be made available for printout using the ADDED_MOS keyword in the SCF section. With OT, "// &
538 "it is sufficient to specify the desired MO_INDEX_RANGE. The OT eigensolver can be controlled with "// &
539 "the EPS_LUMO and MAX_ITER_LUMO keywords in the SCF section.", &
540 print_level=high_print_level, filename="__STD_OUT__")
541 CALL keyword_create(keyword, __location__, name="CARTESIAN", &
542 description="Print the MOs in the Cartesian basis instead of the default spherical basis.", &
543 default_l_val=.false., lone_keyword_l_val=.true.)
544 CALL section_add_keyword(print_key, keyword)
545 CALL keyword_release(keyword)
546 CALL keyword_create(keyword, __location__, name="ENERGIES", &
547 variants=s2a("EIGENVALUES", "EIGVALS"), &
548 description="Print the MO energies (eigenvalues).", &
549 default_l_val=.false., lone_keyword_l_val=.true.)
550 CALL section_add_keyword(print_key, keyword)
551 CALL keyword_release(keyword)
552 CALL keyword_create(keyword, __location__, name="COEFFICIENTS", &
553 variants=s2a("EIGENVECTORS", "EIGVECS"), &
554 description="Print the MO coefficients (eigenvectors).", &
555 default_l_val=.false., lone_keyword_l_val=.true.)
556 CALL section_add_keyword(print_key, keyword)
557 CALL keyword_release(keyword)
558 CALL keyword_create(keyword, __location__, name="OCCUPATION_NUMBERS", &
559 variants=s2a("OCCNUMS"), &
560 description="Print the MO occupation numbers.", &
561 default_l_val=.false., lone_keyword_l_val=.true.)
562 CALL section_add_keyword(print_key, keyword)
563 CALL keyword_release(keyword)
564 CALL keyword_create(keyword, __location__, name="OCCUPATION_NUMBERS_STATS", &
565 variants=s2a("OCCNUMSTATS"), &
566 description="Print some stats (max number of occupied MOs, etc.) of the MO occupation numbers."// &
567 " First logical toggles stats printing, first real is the occupied threshold.", &
568 type_of_var=char_t, n_var=-1, &
569 default_c_vals=[".FALSE.", "1.0E-6 "], &
570 lone_keyword_c_vals=[".TRUE."], &
571 usage="OCCUPATION_NUMBERS_STATS {Logical} [{Real}]")
572 CALL section_add_keyword(print_key, keyword)
573 CALL keyword_release(keyword)
574 CALL keyword_create(keyword, __location__, name="NDIGITS", &
575 description="Specify the number of digits used to print the MO information.", &
576 default_i_val=6)
577 CALL section_add_keyword(print_key, keyword)
578 CALL keyword_release(keyword)
579 CALL keyword_create(keyword, __location__, &
580 name="MO_INDEX_RANGE", &
581 variants=s2a("MO_RANGE", "RANGE"), &
582 description="Print only the requested subset of MOs. The indices of the first and "// &
583 "the last MO have to be specified to define the range. -1 as the last MO index "// &
584 "prints all available orbitals with diagonalisation (ADDED_MOS) and all orbitals with OT.", &
585 repeats=.false., &
586 n_var=2, &
587 type_of_var=integer_t, &
588 default_i_vals=[0, 0], &
589 usage="MO_INDEX_RANGE 10 15")
590 CALL section_add_keyword(print_key, keyword)
591 CALL keyword_release(keyword)
592 CALL section_add_subsection(section, print_key)
593 CALL section_release(print_key)
594
595 CALL cp_print_key_section_create(print_key, __location__, "MO_MOLDEN", &
596 description="Write the molecular orbitals in Molden file format, for visualisation.", &
597 print_level=debug_print_level + 1, add_last=add_last_numeric, filename="MOS")
598 CALL keyword_create(keyword, __location__, name="NDIGITS", &
599 description="Specifies the number of significant digits retained. 3 is OK for visualization.", &
600 usage="NDIGITS {int}", &
601 default_i_val=3)
602 CALL section_add_keyword(print_key, keyword)
603 CALL keyword_release(keyword)
604 CALL keyword_create(keyword, __location__, name="GTO_KIND", &
605 description="Representation of Gaussian-type orbitals", &
606 default_i_val=gto_spherical, &
607 enum_c_vals=s2a("CARTESIAN", "SPHERICAL"), &
608 enum_desc=s2a( &
609 "Cartesian Gaussian orbitals. Use with caution", &
610 "Spherical Gaussian orbitals. Incompatible with VMD"), &
611 enum_i_vals=[gto_cartesian, gto_spherical])
612 CALL section_add_keyword(print_key, keyword)
613 CALL keyword_release(keyword)
614 CALL section_add_subsection(section, print_key)
615 CALL section_release(print_key)
616
617 CALL create_mo_cubes_section(print_key)
618 CALL section_add_subsection(section, print_key)
619 CALL section_release(print_key)
620
621 CALL create_stm_section(print_key)
622 CALL section_add_subsection(section, print_key)
623 CALL section_release(print_key)
624
625 CALL create_wfn_mix_section(subsection)
626 CALL section_add_subsection(section, subsection)
627 CALL section_release(subsection)
628
629 CALL section_create(subsection, __location__, name="TREXIO", &
630 description="Write a TREXIO file to disk.", &
631 n_keywords=1, n_subsections=0, repeats=.false.)
632 CALL keyword_create(keyword, __location__, name="FILENAME", &
633 description="Body of Filename for the trexio file.", &
634 usage="FILENAME {name}", default_c_val="TREXIO", &
635 type_of_var=char_t)
636 CALL section_add_keyword(subsection, keyword)
637 CALL keyword_release(keyword)
638 CALL keyword_create(keyword, __location__, name="CARTESIAN", &
639 description="Store the MOs in the Cartesian basis instead of the default spherical basis.", &
640 default_l_val=.false., lone_keyword_l_val=.true.)
641 CALL section_add_keyword(subsection, keyword)
642 CALL keyword_release(keyword)
643 CALL section_add_subsection(section, subsection)
644 CALL section_release(subsection)
645
646 CALL section_create(subsection, __location__, name="GAPW", &
647 description="Controls the printing of some gapw related information (debug).", &
648 n_keywords=0, n_subsections=1, repeats=.false.)
649 CALL cp_print_key_section_create(print_key, __location__, "projectors", &
650 description="If the printkey is activated controls if information on"// &
651 " the projectors is printed.", &
652 print_level=debug_print_level, filename="__STD_OUT__")
653 CALL section_add_subsection(subsection, print_key)
654 CALL section_release(print_key)
655 CALL cp_print_key_section_create(print_key, __location__, "rho0_information", &
656 description="If the printkey is activated controls if information on rho0 is printed.", &
657 print_level=debug_print_level, filename="__STD_OUT__", unit_str="angstrom")
658 CALL section_add_subsection(subsection, print_key)
659 CALL section_release(print_key)
660 CALL section_add_subsection(section, subsection)
661 CALL section_release(subsection)
662
663 CALL cp_print_key_section_create(print_key, __location__, "dft_control_parameters", &
664 description="Controls the printing of dft control parameters.", &
665 print_level=medium_print_level, filename="__STD_OUT__")
666 CALL section_add_subsection(section, print_key)
667 CALL section_release(print_key)
668
669 CALL cp_print_key_section_create(print_key, __location__, "KPOINTS", &
670 description="Controls the printing of kpoint information.", &
671 print_level=medium_print_level, filename="__STD_OUT__")
672 CALL section_add_subsection(section, print_key)
673 CALL section_release(print_key)
674
675 NULLIFY (subsection)
676 CALL create_bandstructure_section(subsection)
677 CALL section_add_subsection(section, subsection)
678 CALL section_release(subsection)
679
680 CALL cp_print_key_section_create(print_key, __location__, "OVERLAP_CONDITION", &
681 description="Controls the checking and printing of an estimate "// &
682 "of the overlap matrix condition number", &
683 print_level=debug_print_level, filename="__STD_OUT__")
684 CALL keyword_create(keyword, __location__, name="1-NORM", &
685 description="Calculate an estimate of the 1-norm condition number", &
686 default_l_val=.true., lone_keyword_l_val=.true.)
687 CALL section_add_keyword(print_key, keyword)
688 CALL keyword_release(keyword)
689 CALL keyword_create(keyword, __location__, name="DIAGONALIZATION", &
690 description="Calculate the 1- and 2-norm condition numbers using diagonalization", &
691 default_l_val=.false., lone_keyword_l_val=.true.)
692 CALL section_add_keyword(print_key, keyword)
693 CALL keyword_release(keyword)
694 CALL keyword_create(keyword, __location__, name="ARNOLDI", &
695 description="Calculate the 2-norm condition number using the Arnoldi code (may not be reliable)", &
696 default_l_val=.false., lone_keyword_l_val=.true.)
697 CALL section_add_keyword(print_key, keyword)
698 CALL keyword_release(keyword)
699 CALL section_add_subsection(section, print_key)
700 CALL section_release(print_key)
701
702 CALL cp_print_key_section_create(print_key, __location__, name="E_DENSITY_CUBE", &
703 description="Controls the printing of cube files with "// &
704 "the electronic density and, for LSD calculations, the spin density.", &
705 print_level=high_print_level, filename="")
706 CALL keyword_create(keyword, __location__, name="stride", &
707 description="The stride (X,Y,Z) used to write the cube file "// &
708 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
709 " 1 number valid for all components.", &
710 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
711 CALL section_add_keyword(print_key, keyword)
712 CALL keyword_release(keyword)
713
714 CALL keyword_create(keyword, __location__, name="DENSITY_INCLUDE", &
715 description="Which parts of the density to include. In GAPW the electronic density "// &
716 "is divided into a hard and a soft component, and the default (TOTAL_HARD_APPROX) "// &
717 "is to approximate the hard density as a spherical gaussian and to print the smooth "// &
718 "density accurately. This avoids potential artefacts originating from the hard density. "// &
719 "If the TOTAL_DENSITY keyword is used the hard density will be computed more accurately "// &
720 "but may introduce non-physical features. The SOFT_DENSITY keyword will lead to only the "// &
721 "soft density being printed. In GPW these options have no effect and the cube file will "// &
722 "only contain the valence electron density.", &
723 usage="DENSITY_INCLUDE TOTAL_HARD_APPROX", &
724 enum_c_vals=s2a("TOTAL_HARD_APPROX", "TOTAL_DENSITY", "SOFT_DENSITY"), &
725 enum_desc=s2a("Print (hard+soft) density where the hard components shape is approximated", &
726 "Print (hard+soft) density. Only has an effect "// &
727 "if PAW atoms are present. NOTE: The total "// &
728 "in real space might exhibit unphysical features "// &
729 "like spikes due to the finite and thus "// &
730 "truncated g vector", &
731 "Print only the soft density"), &
732 enum_i_vals=[e_dens_total_hard_approx, &
735 default_i_val=e_dens_total_hard_approx)
736 CALL section_add_keyword(print_key, keyword)
737 CALL keyword_release(keyword)
738
739 CALL keyword_create(keyword, __location__, name="APPEND", &
740 description="append the cube files when they already exist", &
741 default_l_val=.false., lone_keyword_l_val=.true.)
742 CALL section_add_keyword(print_key, keyword)
743 CALL keyword_release(keyword)
744
745 CALL keyword_create(keyword, __location__, name="XRD_INTERFACE", &
746 description="It activates the print out of exponents and coefficients for the"// &
747 " Gaussian expansion of the core densities, based on atom calculations for each kind."// &
748 " The resulting core dansities are needed to compute the form factors."// &
749 " If GAPW the local densities are also given in terms of a Gaussian expansion,"// &
750 " by fitting the difference between local-fhard and local-soft density for each atom."// &
751 " In this case the keyword SOFT_DENSITY is enabled.", &
752 default_l_val=.false., lone_keyword_l_val=.true.)
753 CALL section_add_keyword(print_key, keyword)
754 CALL keyword_release(keyword)
755
756 CALL keyword_create(keyword, __location__, name="NGAUSS", &
757 description="Number of Gaussian functions used in the expansion of atomic (core) density", &
758 usage="NGAUSS 10", n_var=1, default_i_val=12, type_of_var=integer_t)
759 CALL section_add_keyword(print_key, keyword)
760 CALL keyword_release(keyword)
761
762 CALL section_add_subsection(section, print_key)
763 CALL section_release(print_key)
764
765 CALL cp_print_key_section_create(print_key, __location__, "tot_density_cube", &
766 description="Controls printing of cube files with "// &
767 "the total density (electrons+atomic core). Note that "// &
768 "the value of the total density is positive where the "// &
769 "electron density dominates and negative where the core is. "// &
770 "When GPW is enabled this will simply print the combined density "// &
771 "of the valence electrons and charge-balanced core. In GAPW the "// &
772 "electronic density (hard+soft plus a correction term) is printed "// &
773 "together with the charge-balanced core density to produce a complete "// &
774 "representation of the total density.", &
775 print_level=high_print_level, filename="")
776 CALL keyword_create(keyword, __location__, name="stride", &
777 description="The stride (X,Y,Z) used to write the cube file "// &
778 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
779 " 1 number valid for all components.", &
780 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
781 CALL section_add_keyword(print_key, keyword)
782 CALL keyword_release(keyword)
783
784 CALL keyword_create(keyword, __location__, name="APPEND", &
785 description="append the cube files when they already exist", &
786 default_l_val=.false., lone_keyword_l_val=.true.)
787 CALL section_add_keyword(print_key, keyword)
788 CALL keyword_release(keyword)
789
790 CALL section_add_subsection(section, print_key)
791 CALL section_release(print_key)
792
793 CALL cp_print_key_section_create(print_key, __location__, "v_hartree_cube", &
794 description="Controls the printing of a cube file with eletrostatic"// &
795 " potential generated by the total density (electrons+ions). It is"// &
796 " valid only for QS with GPW formalism."// &
797 " Note that by convention the potential has opposite sign than the expected physical one.", &
798 print_level=high_print_level, filename="")
799 CALL keyword_create(keyword, __location__, name="stride", &
800 description="The stride (X,Y,Z) used to write the cube file "// &
801 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
802 " 1 number valid for all components.", &
803 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
804 CALL section_add_keyword(print_key, keyword)
805 CALL keyword_release(keyword)
806 CALL keyword_create(keyword, __location__, name="APPEND", &
807 description="append the cube files when they already exist", &
808 default_l_val=.false., lone_keyword_l_val=.true.)
809 CALL section_add_keyword(print_key, keyword)
810 CALL keyword_release(keyword)
811
812 CALL section_add_subsection(section, print_key)
813 CALL section_release(print_key)
814
815 CALL cp_print_key_section_create(print_key, __location__, "external_potential_cube", &
816 description="Controls the printing of a cube file with external"// &
817 " potential from the DFT%EXTERNAL_POTENTIAL section only.", &
818 print_level=high_print_level, filename="")
819 CALL keyword_create(keyword, __location__, name="stride", &
820 description="The stride (X,Y,Z) used to write the cube file "// &
821 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
822 " 1 number valid for all components.", &
823 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
824 CALL section_add_keyword(print_key, keyword)
825 CALL keyword_release(keyword)
826 CALL keyword_create(keyword, __location__, name="APPEND", &
827 description="append the cube files when they already exist", &
828 default_l_val=.false., lone_keyword_l_val=.true.)
829 CALL section_add_keyword(print_key, keyword)
830 CALL keyword_release(keyword)
831
832 CALL section_add_subsection(section, print_key)
833 CALL section_release(print_key)
834
835 ! Output of BQB volumetric files
836 CALL cp_print_key_section_create(print_key, __location__, name="E_DENSITY_BQB", &
837 description="Controls the output of the electron density to the losslessly"// &
838 " compressed BQB file format, see [Brehm2018]"// &
839 " (via LibBQB see <https://brehm-research.de/bqb>)."// &
840 " Currently does not work with changing cell vector (NpT ensemble).", &
841 print_level=debug_print_level + 1, filename="", &
842 citations=[brehm2018])
843
844 CALL keyword_create(keyword, __location__, name="SKIP_FIRST", &
845 description="Skips the first step of a MD run (avoids duplicate step if restarted).", &
846 usage="SKIP_FIRST T", default_l_val=.false., lone_keyword_l_val=.true.)
847 CALL section_add_keyword(print_key, keyword)
848 CALL keyword_release(keyword)
849
850 CALL keyword_create(keyword, __location__, name="STORE_STEP_NUMBER", &
851 description="Stores the step number and simulation time in the comment line of each BQB"// &
852 " frame. Switch it off for binary compatibility with original CP2k CUBE files.", &
853 usage="STORE_STEP_NUMBER F", default_l_val=.true., lone_keyword_l_val=.true.)
854 CALL section_add_keyword(print_key, keyword)
855 CALL keyword_release(keyword)
856
857 CALL keyword_create(keyword, __location__, name="CHECK", &
858 description="Performs an on-the-fly decompression of each compressed BQB frame to check"// &
859 " whether the volumetric data exactly matches, and aborts the run if not so.", &
860 usage="CHECK T", default_l_val=.false., lone_keyword_l_val=.true.)
861 CALL section_add_keyword(print_key, keyword)
862 CALL keyword_release(keyword)
863
864 CALL keyword_create(keyword, __location__, name="OVERWRITE", &
865 description="Specify this keyword to overwrite the output BQB file if"// &
866 " it already exists. By default, the data is appended to an existing file.", &
867 usage="OVERWRITE T", default_l_val=.false., lone_keyword_l_val=.true.)
868 CALL section_add_keyword(print_key, keyword)
869 CALL keyword_release(keyword)
870
871 CALL keyword_create(keyword, __location__, name="HISTORY", &
872 description="Controls how many previous steps are taken into account for extrapolation in"// &
873 " compression. Use a value of 1 to compress the frames independently.", &
874 usage="HISTORY 10", n_var=1, default_i_val=10, type_of_var=integer_t)
875 CALL section_add_keyword(print_key, keyword)
876 CALL keyword_release(keyword)
877
878 CALL keyword_create(keyword, __location__, name="PARAMETER_KEY", &
879 description="Allows to supply previously optimized compression parameters via a"// &
880 " parameter key (alphanumeric character sequence starting with 'at')."// &
881 " Just leave away the 'at' sign here, because CP2k will otherwise"// &
882 " assume it is a variable name in the input", &
883 usage="PARAMETER_KEY <KEY>", n_var=1, default_c_val="", type_of_var=char_t)
884 CALL section_add_keyword(print_key, keyword)
885 CALL keyword_release(keyword)
886
887 CALL keyword_create(keyword, __location__, name="OPTIMIZE", &
888 description="Controls the time spent to optimize the parameters for compression efficiency.", &
889 usage="OPTIMIZE {OFF,QUICK,NORMAL,PATIENT,EXHAUSTIVE}", repeats=.false., n_var=1, &
890 default_i_val=bqb_opt_quick, &
891 enum_c_vals=s2a("OFF", "QUICK", "NORMAL", "PATIENT", "EXHAUSTIVE"), &
892 enum_desc=s2a("No optimization (use defaults)", "Quick optimization", &
893 "Standard optimization", "Precise optimization", "Exhaustive optimization"), &
895 CALL section_add_keyword(print_key, keyword)
896 CALL keyword_release(keyword)
897
898 CALL section_add_subsection(section, print_key)
899 CALL section_release(print_key)
900
901 ! Voronoi Integration via LibVori
902 CALL create_print_voronoi_section(print_key)
903 CALL section_add_subsection(section, print_key)
904 CALL section_release(print_key)
905
906 ! cube files for data generated by the implicit (generalized) Poisson solver
907 CALL create_implicit_psolver_section(subsection)
908 CALL section_add_subsection(section, subsection)
909 CALL section_release(subsection)
910
911 ! ZMP adding the print section for the v_xc cube
912 CALL cp_print_key_section_create(print_key, __location__, "v_xc_cube", &
913 description="Controls the printing of a cube file with xc"// &
914 " potential generated by the ZMP method (for the moment). It is"// &
915 " valid only for QS with GPW formalism .", &
916 print_level=high_print_level, filename="")
917 CALL keyword_create(keyword, __location__, name="stride", &
918 description="The stride (X,Y,Z) used to write the cube file "// &
919 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
920 " 1 number valid for all components.", &
921 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
922 CALL section_add_keyword(print_key, keyword)
923 CALL keyword_release(keyword)
924 CALL keyword_create(keyword, __location__, name="APPEND", &
925 description="append the cube files when they already exist", &
926 default_l_val=.false., lone_keyword_l_val=.true.)
927 CALL section_add_keyword(print_key, keyword)
928 CALL keyword_release(keyword)
929
930 CALL section_add_subsection(section, print_key)
931 CALL section_release(print_key)
932
933 CALL cp_print_key_section_create(print_key, __location__, "efield_cube", &
934 description="Controls the printing of cube files with electric"// &
935 " field generated by the total density (electrons+ions). It is"// &
936 " valid only for QS with GPW formalism.", &
937 print_level=high_print_level, filename="")
938 CALL keyword_create(keyword, __location__, name="stride", &
939 description="The stride (X,Y,Z) used to write the cube file "// &
940 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
941 " 1 number valid for all components.", &
942 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
943 CALL section_add_keyword(print_key, keyword)
944 CALL keyword_release(keyword)
945 CALL keyword_create(keyword, __location__, name="APPEND", &
946 description="append the cube files when they already exist", &
947 default_l_val=.false., lone_keyword_l_val=.true.)
948 CALL section_add_keyword(print_key, keyword)
949 CALL keyword_release(keyword)
950
951 CALL section_add_subsection(section, print_key)
952 CALL section_release(print_key)
953
954 CALL cp_print_key_section_create(print_key, __location__, "ELF_CUBE", &
955 description="Controls printing of cube files with"// &
956 " the electron localization function (ELF). Note that"// &
957 " the value of ELF is defined between 0 and 1: Pauli kinetic energy density normalized"// &
958 " by the kinetic energy density of a uniform el. gas of same density.", &
959 print_level=high_print_level, filename="")
960 CALL keyword_create(keyword, __location__, name="stride", &
961 description="The stride (X,Y,Z) used to write the cube file "// &
962 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
963 " 1 number valid for all components.", &
964 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
965 CALL section_add_keyword(print_key, keyword)
966 CALL keyword_release(keyword)
967 CALL keyword_create(keyword, __location__, name="APPEND", &
968 description="append the cube files when they already exist", &
969 default_l_val=.false., lone_keyword_l_val=.true.)
970 CALL section_add_keyword(print_key, keyword)
971 CALL keyword_release(keyword)
972
973 CALL keyword_create(keyword, __location__, name="density_cutoff", &
974 description=" ", &
975 usage="density_cutoff 0.0001", &
976 repeats=.false., &
977 n_var=1, &
978 type_of_var=real_t, &
979 default_r_val=1.0e-10_dp)
980 CALL section_add_keyword(print_key, keyword)
981 CALL keyword_release(keyword)
982
983 CALL section_add_subsection(section, print_key)
984 CALL section_release(print_key)
985
986 CALL cp_print_key_section_create(print_key, __location__, "LOCAL_ENERGY_CUBE", &
987 description="Controls the printing of cube files with the local"// &
988 " energy. It is valid only for QS with GPW/GAPW formalism."// &
989 " Meta and hybrid functionals are not possible.", &
990 print_level=debug_print_level, filename="")
991 CALL keyword_create(keyword, __location__, name="stride", &
992 description="The stride (X,Y,Z) used to write the cube file "// &
993 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
994 " 1 number valid for all components.", &
995 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
996 CALL section_add_keyword(print_key, keyword)
997 CALL keyword_release(keyword)
998 CALL keyword_create(keyword, __location__, name="APPEND", &
999 description="append the cube files when they already exist", &
1000 default_l_val=.false., lone_keyword_l_val=.true.)
1001 CALL section_add_keyword(print_key, keyword)
1002 CALL keyword_release(keyword)
1003
1004 CALL section_add_subsection(section, print_key)
1005 CALL section_release(print_key)
1006
1007 CALL cp_print_key_section_create(print_key, __location__, "LOCAL_STRESS_CUBE", &
1008 description="Controls the printing of cube files with the local"// &
1009 " stress. It is valid only for QS with GPW/GAPW formalism."// &
1010 " Meta and hybrid functionals are not possible.", &
1011 print_level=debug_print_level, filename="")
1012 CALL keyword_create(keyword, __location__, name="stride", &
1013 description="The stride (X,Y,Z) used to write the cube file "// &
1014 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1015 " 1 number valid for all components.", &
1016 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
1017 CALL section_add_keyword(print_key, keyword)
1018 CALL keyword_release(keyword)
1019 CALL keyword_create(keyword, __location__, name="APPEND", &
1020 description="append the cube files when they already exist", &
1021 default_l_val=.false., lone_keyword_l_val=.true.)
1022 CALL section_add_keyword(print_key, keyword)
1023 CALL keyword_release(keyword)
1024
1025 CALL section_add_subsection(section, print_key)
1026 CALL section_release(print_key)
1027
1028 CALL create_dos_section(print_key)
1029 CALL section_add_subsection(section, print_key)
1030 CALL section_release(print_key)
1031
1032 CALL create_pdos_section(print_key)
1033 CALL section_add_subsection(section, print_key)
1034 CALL section_release(print_key)
1035
1036 CALL create_wannier_section(print_key)
1037 CALL section_add_subsection(section, print_key)
1038 CALL section_release(print_key)
1039
1040 !Printing of Moments
1041 CALL create_dipoles_section(print_key, "MOMENTS", high_print_level)
1042 CALL keyword_create( &
1043 keyword, __location__, &
1044 name="MAX_MOMENT", &
1045 description="Maximum moment to be calculated. Values higher than 1 not implemented under periodic boundaries.", &
1046 usage="MAX_MOMENT {integer}", &
1047 repeats=.false., &
1048 n_var=1, &
1049 type_of_var=integer_t, &
1050 default_i_val=1)
1051 CALL section_add_keyword(print_key, keyword)
1052 CALL keyword_release(keyword)
1053 CALL keyword_create(keyword, __location__, &
1054 name="MAGNETIC", &
1055 description="Calculate also magnetic moments, only implemented without periodic boundaries", &
1056 usage="MAGNETIC yes", &
1057 repeats=.false., &
1058 n_var=1, &
1059 default_l_val=.false., &
1060 lone_keyword_l_val=.true.)
1061 CALL section_add_keyword(print_key, keyword)
1062 CALL keyword_release(keyword)
1063 CALL keyword_create(keyword, __location__, &
1064 name="VEL_REPRS", &
1065 description="Calculate expectation values of the el. multipole moments in their velocity "// &
1066 "representation during RTP. Implemented up to el. quadrupole moment.", &
1067 usage="VEL_REPRS yes", &
1068 repeats=.false., &
1069 n_var=1, &
1070 default_l_val=.false., &
1071 lone_keyword_l_val=.true.)
1072 CALL section_add_keyword(print_key, keyword)
1073 CALL keyword_release(keyword)
1074 CALL keyword_create(keyword, __location__, &
1075 name="COM_NL", &
1076 description="Include non local commutator for velocity representations. "// &
1077 "Necessary for origin independent results.", &
1078 usage="COM_NL yes", &
1079 repeats=.false., &
1080 n_var=1, &
1081 default_l_val=.false., &
1082 lone_keyword_l_val=.true.)
1083 CALL section_add_keyword(print_key, keyword)
1084 CALL keyword_release(keyword)
1085 CALL keyword_create(keyword, __location__, &
1086 name="SECOND_REFERENCE_POINT", &
1087 description="Use second reference point", &
1088 usage="SECOND_REFERENCE_POINT .TRUE.", &
1089 repeats=.false., &
1090 n_var=1, &
1091 default_l_val=.false., &
1092 lone_keyword_l_val=.true.)
1093 CALL section_add_keyword(print_key, keyword)
1094 CALL keyword_release(keyword)
1095 CALL keyword_create(keyword, __location__, name="REFERENCE_2", &
1096 variants=s2a("REF_2"), &
1097 description="Define a second reference point for the calculation of the electrostatic moment.", &
1098 usage="REFERENCE_2 COM", &
1099 enum_c_vals=s2a("COM", "COAC", "USER_DEFINED", "ZERO"), &
1100 enum_desc=s2a("Use Center of Mass", &
1101 "Use Center of Atomic Charges", &
1102 "Use User Defined Point (Keyword:REF_POINT)", &
1103 "Use Origin of Coordinate System"), &
1104 enum_i_vals=[use_mom_ref_com, &
1108 default_i_val=use_mom_ref_zero)
1109 CALL section_add_keyword(print_key, keyword)
1110 CALL keyword_release(keyword)
1111 CALL keyword_create(keyword, __location__, name="REFERENCE_POINT_2", &
1112 variants=s2a("REF_POINT_2"), &
1113 description="Fixed second reference point for the calculations of the electrostatic moment.", &
1114 usage="REFERENCE_POINT_2 x y z", &
1115 repeats=.false., &
1116 n_var=3, default_r_vals=[0._dp, 0._dp, 0._dp], &
1117 type_of_var=real_t, &
1118 unit_str='bohr')
1119 CALL section_add_keyword(print_key, keyword)
1120 CALL keyword_release(keyword)
1121 CALL section_add_subsection(section, print_key)
1122 CALL section_release(print_key)
1123
1124 ! Mulliken population analysis
1125 CALL cp_print_key_section_create(print_key, __location__, "MULLIKEN", &
1126 description="Controls the printing of the Mulliken (spin) population analysis", &
1127 print_level=medium_print_level, filename="__STD_OUT__", &
1128 common_iter_levels=1)
1129 CALL keyword_create( &
1130 keyword, __location__, &
1131 name="PRINT_GOP", &
1132 description="Print the gross orbital populations (GOP) in addition to the gross atomic populations (GAP) "// &
1133 "and net charges", &
1134 usage="PRINT_GOP yes", &
1135 repeats=.false., &
1136 n_var=1, &
1137 default_l_val=.false., &
1138 lone_keyword_l_val=.true.)
1139 CALL section_add_keyword(print_key, keyword)
1140 CALL keyword_release(keyword)
1141 CALL keyword_create( &
1142 keyword, __location__, &
1143 name="PRINT_ALL", &
1144 description="Print all information including the full net AO and overlap population matrix", &
1145 usage="PRINT_ALL yes", &
1146 repeats=.false., &
1147 n_var=1, &
1148 default_l_val=.false., &
1149 lone_keyword_l_val=.true.)
1150 CALL section_add_keyword(print_key, keyword)
1151 CALL keyword_release(keyword)
1152 CALL section_add_subsection(section, print_key)
1153 CALL section_release(print_key)
1154
1155 ! Lowdin population analysis (fairly expensive to compute, so only at high)
1156 CALL cp_print_key_section_create(print_key, __location__, "LOWDIN", &
1157 description="Controls the printing of the Lowdin (spin) population analysis", &
1158 print_level=high_print_level, filename="__STD_OUT__", &
1159 common_iter_levels=1)
1160 CALL keyword_create( &
1161 keyword, __location__, &
1162 name="PRINT_GOP", &
1163 description="Print the orbital populations in addition to the atomic populations and net charges", &
1164 usage="PRINT_GOP yes", &
1165 repeats=.false., &
1166 n_var=1, &
1167 default_l_val=.false., &
1168 lone_keyword_l_val=.true.)
1169 CALL section_add_keyword(print_key, keyword)
1170 CALL keyword_release(keyword)
1171 CALL keyword_create( &
1172 keyword, __location__, &
1173 name="PRINT_ALL", &
1174 description="Print all information including the full symmetrically orthogonalised density matrix", &
1175 usage="PRINT_ALL yes", &
1176 repeats=.false., &
1177 n_var=1, &
1178 default_l_val=.false., &
1179 lone_keyword_l_val=.true.)
1180 CALL section_add_keyword(print_key, keyword)
1181 CALL keyword_release(keyword)
1182 CALL section_add_subsection(section, print_key)
1183 CALL section_release(print_key)
1184
1185 ! Hirshfeld population analysis
1186 CALL cp_print_key_section_create(print_key, __location__, "HIRSHFELD", &
1187 description="Controls the printing of the Hirshfeld (spin) population analysis", &
1188 print_level=medium_print_level, filename="__STD_OUT__", &
1189 common_iter_levels=1)
1190 CALL keyword_create(keyword, __location__, name="SELF_CONSISTENT", &
1191 description="Calculate charges from the Hirscheld-I (self_consistent) method."// &
1192 " This scales only the full shape function, not the added charge as in the original scheme.", &
1193 usage="SELF_CONSISTENT yes", repeats=.false., n_var=1, &
1194 default_l_val=.false., lone_keyword_l_val=.true.)
1195 CALL section_add_keyword(print_key, keyword)
1196 CALL keyword_release(keyword)
1197 CALL keyword_create(keyword, __location__, name="SHAPE_FUNCTION", &
1198 description="Type of shape function used for Hirshfeld partitioning.", &
1199 usage="SHAPE_FUNCTION {Gaussian,Density}", repeats=.false., n_var=1, &
1200 default_i_val=shape_function_gaussian, &
1201 enum_c_vals=s2a("GAUSSIAN", "DENSITY"), &
1202 enum_desc=s2a("Single Gaussian with Colvalent radius", &
1203 "Atomic density expanded in multiple Gaussians"), &
1205 CALL section_add_keyword(print_key, keyword)
1206 CALL keyword_release(keyword)
1207 CALL keyword_create(keyword, __location__, name="REFERENCE_CHARGE", &
1208 description="Charge of atomic partitioning function for Hirshfeld method.", &
1209 usage="REFERENCE_CHARGE {Atomic,Mulliken}", repeats=.false., n_var=1, &
1210 default_i_val=ref_charge_atomic, &
1211 enum_c_vals=s2a("ATOMIC", "MULLIKEN"), &
1212 enum_desc=s2a("Use atomic core charges", "Calculate Mulliken charges"), &
1214 CALL section_add_keyword(print_key, keyword)
1215 CALL keyword_release(keyword)
1216 CALL keyword_create(keyword, __location__, name="USER_RADIUS", &
1217 description="Use user defined radii to generate Gaussians."// &
1218 " These radii are defined by the keyword ATOMIC_RADII", &
1219 usage="USER_RADIUS yes", repeats=.false., n_var=1, &
1220 default_l_val=.false., lone_keyword_l_val=.true.)
1221 CALL section_add_keyword(print_key, keyword)
1222 CALL keyword_release(keyword)
1223 CALL keyword_create(keyword, __location__, name="ATOMIC_RADII", &
1224 description="Defines custom radii to setup the spherical Gaussians.", &
1225 usage="ATOMIC_RADII {real} {real} {real}", repeats=.false., &
1226 unit_str="angstrom", &
1227 type_of_var=real_t, n_var=-1)
1228 CALL section_add_keyword(print_key, keyword)
1229 CALL keyword_release(keyword)
1230 CALL section_add_subsection(section, print_key)
1231 CALL section_release(print_key)
1232
1233 ! Print EEQ Charges
1234 CALL cp_print_key_section_create(print_key, __location__, "EEQ_CHARGES", &
1235 description="Controls the printing of the EEQ charges", &
1236 print_level=debug_print_level, filename="__STD_OUT__", &
1237 common_iter_levels=1, &
1239 CALL section_add_subsection(section, print_key)
1240 CALL section_release(print_key)
1241
1242 ! MAO (modified atomic orbital) analysis
1243 CALL cp_print_key_section_create(print_key, __location__, "MAO_ANALYSIS", &
1244 description="Controls the printing of the MAO (modified atomic orbital) analysis", &
1245 print_level=debug_print_level, filename="__STD_OUT__", &
1246 common_iter_levels=1, &
1247 citations=[heinzmann1976, ehrhardt1985])
1248 CALL keyword_create(keyword, __location__, name="EPS_FILTER", &
1249 description="Threshold for matrix elements in MAO determination.", &
1250 usage="EPS_FILTER reps", repeats=.false., n_var=1, &
1251 default_r_val=1.e-8_dp, type_of_var=real_t)
1252 CALL section_add_keyword(print_key, keyword)
1253 CALL keyword_release(keyword)
1254 CALL keyword_create(keyword, __location__, name="REFERENCE_BASIS", &
1255 description="Basis set used to construct MAO's.", &
1256 usage="REFERENCE_BASIS {ORBITAL,PRIMITIVE,EXTERNAL}", repeats=.false., n_var=1, &
1257 default_i_val=mao_basis_orb, &
1258 enum_c_vals=s2a("ORBITAL", "PRIMITIVE", "EXTERNAL"), &
1259 enum_desc=s2a("Use standard orbital basis set", "Construct basis from primitives of the orbital basis", &
1260 "Read external basis (MAO)"), &
1262 CALL section_add_keyword(print_key, keyword)
1263 CALL keyword_release(keyword)
1264 CALL keyword_create(keyword, __location__, name="PRINT_BASIS", &
1265 description="Print out MAO reference basis.", &
1266 usage="PRINT_BASIS {logical}", repeats=.false., n_var=1, &
1267 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=logical_t)
1268 CALL section_add_keyword(print_key, keyword)
1269 CALL keyword_release(keyword)
1270 CALL keyword_create(keyword, __location__, name="EPS_GRAD", &
1271 description="Threshold for gradient in MAO optimization.", &
1272 usage="EPS_GRAD reps", repeats=.false., n_var=1, &
1273 default_r_val=1.e-4_dp, type_of_var=real_t)
1274 CALL section_add_keyword(print_key, keyword)
1275 CALL keyword_release(keyword)
1276 CALL keyword_create(keyword, __location__, name="EPS_FUNCTION", &
1277 description="Threshold for electron defect in MAO optimization.", &
1278 usage="EPS_FUNCTION feps", repeats=.false., n_var=1, &
1279 default_r_val=1.e-3_dp, type_of_var=real_t)
1280 CALL section_add_keyword(print_key, keyword)
1281 CALL keyword_release(keyword)
1282 CALL keyword_create(keyword, __location__, name="MAX_ITER", &
1283 description="Maximum allowed iterations for MAO optimization.", &
1284 usage="MAX_ITER iter", repeats=.false., n_var=1, &
1285 default_i_val=0, type_of_var=integer_t)
1286 CALL section_add_keyword(print_key, keyword)
1287 CALL keyword_release(keyword)
1288 CALL keyword_create(keyword, __location__, name="NEGLECT_ABC", &
1289 description="Neglect 3 atom terms in MAO analysis.", &
1290 usage="NEGLECT_ABC {logical}", repeats=.false., n_var=1, &
1291 default_l_val=.true., lone_keyword_l_val=.true., type_of_var=logical_t)
1292 CALL section_add_keyword(print_key, keyword)
1293 CALL keyword_release(keyword)
1294 CALL keyword_create(keyword, __location__, name="AB_THRESHOLD", &
1295 description="Threshold for printing of AB shared electron numbers.", &
1296 usage="AB_THRESHOLD thr", repeats=.false., n_var=1, &
1297 default_r_val=1.e-2_dp, type_of_var=real_t)
1298 CALL section_add_keyword(print_key, keyword)
1299 CALL keyword_release(keyword)
1300 CALL keyword_create(keyword, __location__, name="ABC_THRESHOLD", &
1301 description="Threshold for printing of ABC shared electron numbers.", &
1302 usage="ABC_THRESHOLD thr", repeats=.false., n_var=1, &
1303 default_r_val=1.e-5_dp, type_of_var=real_t)
1304 CALL section_add_keyword(print_key, keyword)
1305 CALL keyword_release(keyword)
1306 CALL keyword_create(keyword, __location__, name="ANALYZE_UNASSIGNED_CHARGE", &
1307 description="Calculate atomic contributions to the unassigned charge.", &
1308 usage="ANALYZE_UNASSIGNED_CHARGE {logical}", repeats=.false., n_var=1, &
1309 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=logical_t)
1310 CALL section_add_keyword(print_key, keyword)
1311 CALL keyword_release(keyword)
1312 CALL section_add_subsection(section, print_key)
1313 CALL section_release(print_key)
1314
1315 !Minimal localized basis analysis
1316 CALL cp_print_key_section_create(print_key, __location__, "MINBAS_ANALYSIS", &
1317 description="Controls the printing of the minimal localized basis analysis", &
1318 print_level=debug_print_level, filename="__STD_OUT__", &
1319 common_iter_levels=1, &
1320 citations=[lu2004])
1321 CALL keyword_create(keyword, __location__, name="EPS_FILTER", &
1322 description="Threshold for matrix elements in basis determination.", &
1323 usage="EPS_FILTER reps", repeats=.false., n_var=1, &
1324 default_r_val=1.e-8_dp, type_of_var=real_t)
1325 CALL section_add_keyword(print_key, keyword)
1326 CALL keyword_release(keyword)
1327 CALL keyword_create(keyword, __location__, name="FULL_ORTHOGONALIZATION", &
1328 description="Orthogonalize the localized minimal basis.", &
1329 usage="FULL_ORTHOGONALIZATION {logical}", repeats=.false., n_var=1, &
1330 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=logical_t)
1331 CALL section_add_keyword(print_key, keyword)
1332 CALL keyword_release(keyword)
1333 CALL keyword_create(keyword, __location__, name="BOND_ORDER", &
1334 description="Calculate Mayer Bond Orders.", &
1335 usage="BOND_ORDER {logical}", repeats=.false., n_var=1, &
1336 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=logical_t)
1337 CALL section_add_keyword(print_key, keyword)
1338 CALL keyword_release(keyword)
1339
1340 NULLIFY (sub_print_key)
1341 CALL cp_print_key_section_create(sub_print_key, __location__, "MINBAS_CUBE", &
1342 description="Write the minimal basis on Cube files.", &
1343 print_level=debug_print_level + 1, add_last=add_last_numeric, filename="MINBAS")
1344 CALL keyword_create(keyword, __location__, name="STRIDE", &
1345 description="The stride (X,Y,Z) used to write the cube file "// &
1346 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1347 " 1 number valid for all components.", &
1348 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
1349 CALL section_add_keyword(sub_print_key, keyword)
1350 CALL keyword_release(keyword)
1351 CALL keyword_create(keyword, __location__, name="ATOM_LIST", &
1352 description="Indexes of the atoms minimal basis to be printed as cube files "// &
1353 "This keyword can be repeated several times "// &
1354 "(useful if you have to specify many indexes).", &
1355 usage="ATOM_LIST 1 2", &
1356 n_var=-1, type_of_var=integer_t, repeats=.true.)
1357 CALL section_add_keyword(sub_print_key, keyword)
1358 CALL keyword_release(keyword)
1359 CALL section_add_subsection(print_key, sub_print_key)
1360 CALL section_release(sub_print_key)
1361
1362 NULLIFY (sub_print_key)
1363 CALL cp_print_key_section_create(sub_print_key, __location__, "MINBAS_MOLDEN", &
1364 description="Write the minimal basis in Molden file format, for visualisation.", &
1365 print_level=debug_print_level + 1, add_last=add_last_numeric, filename="MINBAS")
1366 CALL keyword_create(keyword, __location__, name="NDIGITS", &
1367 description="Specifies the number of significant digits retained. 3 is OK for visualization.", &
1368 usage="NDIGITS {int}", &
1369 default_i_val=3)
1370 CALL section_add_keyword(sub_print_key, keyword)
1371 CALL keyword_release(keyword)
1372 CALL keyword_create(keyword, __location__, name="GTO_KIND", &
1373 description="Representation of Gaussian-type orbitals", &
1374 default_i_val=gto_spherical, &
1375 enum_c_vals=s2a("CARTESIAN", "SPHERICAL"), &
1376 enum_desc=s2a( &
1377 "Cartesian Gaussian orbitals. Use with caution", &
1378 "Spherical Gaussian orbitals. Incompatible with VMD"), &
1379 enum_i_vals=[gto_cartesian, gto_spherical])
1380 CALL section_add_keyword(sub_print_key, keyword)
1381 CALL keyword_release(keyword)
1382 CALL section_add_subsection(print_key, sub_print_key)
1383 CALL section_release(sub_print_key)
1384
1385 CALL section_add_subsection(section, print_key)
1386 CALL section_release(print_key)
1387
1388 !Energy Decomposition Analysis
1389 CALL cp_print_key_section_create(print_key, __location__, "ENERGY_DECOMPOSITION_ANALYSIS", &
1390 description="Controls energy decomposition analysis", &
1391 print_level=debug_print_level, filename="__STD_OUT__", &
1392 common_iter_levels=1, &
1393 citations=[eriksen2020])
1394 CALL keyword_create(keyword, __location__, name="REFERENCE_ORB_CANONICAL", &
1395 description="Use reference orbitals in canonical form.", &
1396 usage="REFERENCE_ORB_CANONICAL {logical}", repeats=.false., n_var=1, &
1397 default_l_val=.true., lone_keyword_l_val=.true., type_of_var=logical_t)
1398 CALL section_add_keyword(print_key, keyword)
1399 CALL keyword_release(keyword)
1400 CALL keyword_create(keyword, __location__, name="SKIP_LOCALIZATION", &
1401 description="Don't localize the MOs.", &
1402 usage="SKIP_LOCALIZATION {logical}", repeats=.false., n_var=1, &
1403 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=logical_t)
1404 CALL section_add_keyword(print_key, keyword)
1405 CALL keyword_release(keyword)
1406 CALL keyword_create(keyword, __location__, name="DETAILED_ENERGY", &
1407 description="Calculate detailed atomic decomposition energies.", &
1408 usage="DETAILED_ENERGY {logical}", repeats=.false., n_var=1, &
1409 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=logical_t)
1410 CALL section_add_keyword(print_key, keyword)
1411 CALL keyword_release(keyword)
1412 CALL keyword_create(keyword, __location__, name="EWALD_ALPHA_PARAMETER", &
1413 description="Calculate Energy Decomposition for a specific alpha value. "// &
1414 "alpha = 1/(2*rc**2), see GTH pseudopotentials.", &
1415 usage="EWALD_ALPHA_PARAMETER alpha", repeats=.false., n_var=1, &
1416 default_r_val=0.0_dp, type_of_var=real_t)
1417 CALL section_add_keyword(print_key, keyword)
1418 CALL keyword_release(keyword)
1419
1420 CALL section_add_subsection(section, print_key)
1421 CALL section_release(print_key)
1422
1423 ! IAO (Intrinsic atomic orbital) analysis
1424 CALL cp_print_key_section_create(print_key, __location__, "IAO_ANALYSIS", &
1425 description="Controls the printing of the IAO (intrinsic atomic orbital) analysis", &
1426 print_level=debug_print_level, filename="__STD_OUT__", &
1427 common_iter_levels=1, &
1428 citations=[knizia2013])
1429 CALL keyword_create(keyword, __location__, name="EPS_SVD", &
1430 description="Threshold for matrix inversion eigenvalues.", &
1431 usage="EPS_SVD reps", repeats=.false., n_var=1, &
1432 default_r_val=0.0_dp, type_of_var=real_t)
1433 CALL section_add_keyword(print_key, keyword)
1434 CALL keyword_release(keyword)
1435 CALL keyword_create(keyword, __location__, name="EPS_OCC", &
1436 description="Threshold in occupation for vectors included.", &
1437 usage="EPS_OCC reps", repeats=.false., n_var=1, &
1438 default_r_val=0.0_dp, type_of_var=real_t)
1439 CALL section_add_keyword(print_key, keyword)
1440 CALL keyword_release(keyword)
1441 CALL keyword_create(keyword, __location__, name="ATOMIC_CHARGES", &
1442 description="Calculate atomic charges from IAO.", &
1443 usage="ATOMIC_CHARGES {logical}", repeats=.false., n_var=1, &
1444 default_l_val=.true., lone_keyword_l_val=.true., type_of_var=logical_t)
1445 CALL section_add_keyword(print_key, keyword)
1446 CALL keyword_release(keyword)
1447 ! IAO_MOLDEN
1448 NULLIFY (sub_print_key)
1449 CALL cp_print_key_section_create(sub_print_key, __location__, "IAO_MOLDEN", &
1450 description="Write the IAO basis in Molden file format, for visualisation.", &
1451 print_level=debug_print_level + 1, add_last=add_last_numeric, filename="IAOBAS")
1452 CALL keyword_create(keyword, __location__, name="NDIGITS", &
1453 description="Specifies the number of significant digits retained. 3 is OK for visualization.", &
1454 usage="NDIGITS {int}", &
1455 default_i_val=3)
1456 CALL section_add_keyword(sub_print_key, keyword)
1457 CALL keyword_release(keyword)
1458 CALL keyword_create(keyword, __location__, name="GTO_KIND", &
1459 description="Representation of Gaussian-type orbitals", &
1460 default_i_val=gto_spherical, &
1461 enum_c_vals=s2a("CARTESIAN", "SPHERICAL"), &
1462 enum_desc=s2a( &
1463 "Cartesian Gaussian orbitals. Use with caution", &
1464 "Spherical Gaussian orbitals. Incompatible with VMD"), &
1465 enum_i_vals=[gto_cartesian, gto_spherical])
1466 CALL section_add_keyword(sub_print_key, keyword)
1467 CALL keyword_release(keyword)
1468 CALL section_add_subsection(print_key, sub_print_key)
1469 CALL section_release(sub_print_key)
1470 ! IAO_CUBES
1471 NULLIFY (sub_print_key)
1472 CALL cp_print_key_section_create(sub_print_key, __location__, "IAO_CUBES", &
1473 description="Controls the printing of the IAO basis "// &
1474 "as *.cube files.", &
1475 print_level=high_print_level, common_iter_levels=1, &
1476 add_last=add_last_numeric, filename="")
1477 CALL keyword_create(keyword, __location__, name="STRIDE", &
1478 description="The stride (X,Y,Z) used to write the cube file "// &
1479 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1480 " 1 number valid for all components.", &
1481 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
1482 CALL section_add_keyword(sub_print_key, keyword)
1483 CALL keyword_release(keyword)
1484 CALL keyword_create(keyword, __location__, name="APPEND", &
1485 description="append the cube files when they already exist", &
1486 default_l_val=.false., lone_keyword_l_val=.true.)
1487 CALL section_add_keyword(sub_print_key, keyword)
1488 CALL keyword_release(keyword)
1489 CALL keyword_create(keyword, __location__, name="ATOM_LIST", &
1490 description="Indices of the atoms to be included in basis CUBE file printing. ", &
1491 usage="ATOM_LIST {integer} {integer} .. {integer} ", &
1492 n_var=-1, type_of_var=integer_t, repeats=.true.)
1493 CALL section_add_keyword(sub_print_key, keyword)
1494 CALL keyword_release(keyword)
1495 CALL section_add_subsection(print_key, sub_print_key)
1496 CALL section_release(sub_print_key)
1497 ! One Center Expansion of IAO
1498 NULLIFY (sub_print_key)
1499 CALL cp_print_key_section_create(sub_print_key, __location__, "ONE_CENTER_EXPANSION", &
1500 description="Calculates single center expansion of IAOs ", &
1501 print_level=high_print_level, common_iter_levels=1, &
1502 add_last=add_last_numeric, filename="")
1503 CALL keyword_create(keyword, __location__, name="LMAX", &
1504 description="Maximum l quantum number used in the expansion.", &
1505 usage="LMAX 2", n_var=1, default_i_val=3, type_of_var=integer_t)
1506 CALL section_add_keyword(sub_print_key, keyword)
1507 CALL keyword_release(keyword)
1508 CALL keyword_create(keyword, __location__, name="NBAS", &
1509 description="Max number of basis functions used in the expansion."// &
1510 " Default is determined by the orbital basis set.", &
1511 usage="NBAS 10", n_var=1, default_i_val=-1, type_of_var=integer_t)
1512 CALL section_add_keyword(sub_print_key, keyword)
1513 CALL keyword_release(keyword)
1514 CALL keyword_create(keyword, __location__, name="APPEND", &
1515 description="Append the OCE basis files when it already exists", &
1516 default_l_val=.false., lone_keyword_l_val=.true.)
1517 CALL section_add_keyword(sub_print_key, keyword)
1518 CALL keyword_release(keyword)
1519 CALL section_add_subsection(print_key, sub_print_key)
1520 CALL section_release(sub_print_key)
1521 ! Intrinsic Bond orbitals
1522 NULLIFY (sub_print_key)
1523 CALL cp_print_key_section_create(sub_print_key, __location__, "BOND_ORBITALS", &
1524 description="Calculate intrinsic bond orbitals using "// &
1525 "localized MOs in IAO basis.", &
1526 print_level=high_print_level, common_iter_levels=1, &
1527 add_last=add_last_numeric, filename="")
1528
1529 CALL keyword_create(keyword, __location__, name="LOCALIZATION_OPERATOR", &
1530 description="Operator to be optimized for orbital localization", &
1531 enum_c_vals=s2a("PIPEK_MEZEY", "PIPEK_MEZEY_4", "L1NORM"), &
1532 enum_i_vals=[do_iaoloc_pm2, do_iaoloc_pm4, do_iaoloc_l1], &
1533 enum_desc=s2a("Use Pipek-Mezey operator (order 2)", &
1534 "Use Pipek-Mezey operator (order 4)", &
1535 "Use L1 norm"), &
1536 default_i_val=do_iaoloc_pm2)
1537 CALL section_add_keyword(sub_print_key, keyword)
1538 CALL keyword_release(keyword)
1539 CALL keyword_create(keyword, __location__, name="ENERGY_LOCALIZATION_FUNCTION", &
1540 description="Function for energy localization: f(e_i), e_i orbital energy", &
1541 enum_c_vals=s2a("NONE", "ENERGY", "OCCUPATION"), &
1543 enum_desc=s2a("Don't use energy localization.", &
1544 "Use orbital energies for localization.", &
1545 "Use occupation numbers for localization."), &
1546 default_i_val=do_iaoloc_enone)
1547 CALL section_add_keyword(sub_print_key, keyword)
1548 CALL keyword_release(keyword)
1549 CALL keyword_create(keyword, __location__, name="ENERGY_LOCALIZATION_WEIGHT", &
1550 description="Weight given to energy localization, using f(e_i) function", &
1551 usage="ENERGY_LOCALIZATION_WEIGHT 0.1", n_var=1, &
1552 default_r_val=0.0_dp, type_of_var=real_t)
1553 CALL section_add_keyword(sub_print_key, keyword)
1554 CALL keyword_release(keyword)
1555
1556 ! CHARGE CENTER AND SPREAD
1557 NULLIFY (subsection)
1558 CALL cp_print_key_section_create(subsection, __location__, "CHARGE_CENTER", &
1559 description="Calculation and printing of centers and spreads "// &
1560 "of localized orbitals.", &
1561 print_level=high_print_level, common_iter_levels=1, &
1562 add_last=add_last_numeric, filename="")
1563 CALL keyword_create(keyword, __location__, name="POSITION_OPERATOR_BERRY", &
1564 description="Use Berry phase position operator.", &
1565 usage="POSITION_OPERATOR_BERRY T", n_var=1, &
1566 default_l_val=.true., lone_keyword_l_val=.true.)
1567 CALL section_add_keyword(subsection, keyword)
1568 CALL keyword_release(keyword)
1569 CALL section_add_subsection(sub_print_key, subsection)
1570 CALL section_release(subsection)
1571 ! IBO_MOLDEN
1572 NULLIFY (subsection)
1573 CALL cp_print_key_section_create(subsection, __location__, "IBO_MOLDEN", &
1574 description="Write the IBO orbitals in Molden file format, for visualisation.", &
1575 print_level=debug_print_level + 1, add_last=add_last_numeric, filename="IBOBAS")
1576 CALL keyword_create(keyword, __location__, name="NDIGITS", &
1577 description="Specifies the number of significant digits retained. 3 is OK for visualization.", &
1578 usage="NDIGITS {int}", &
1579 default_i_val=3)
1580 CALL section_add_keyword(subsection, keyword)
1581 CALL keyword_release(keyword)
1582 CALL keyword_create(keyword, __location__, name="GTO_KIND", &
1583 description="Representation of Gaussian-type orbitals", &
1584 default_i_val=gto_spherical, &
1585 enum_c_vals=s2a("CARTESIAN", "SPHERICAL"), &
1586 enum_desc=s2a( &
1587 "Cartesian Gaussian orbitals. Use with caution", &
1588 "Spherical Gaussian orbitals. Incompatible with VMD"), &
1589 enum_i_vals=[gto_cartesian, gto_spherical])
1590 CALL section_add_keyword(subsection, keyword)
1591 CALL keyword_release(keyword)
1592 CALL section_add_subsection(sub_print_key, subsection)
1593 CALL section_release(subsection)
1594 ! IAO_CUBES
1595 NULLIFY (subsection)
1596 CALL cp_print_key_section_create(subsection, __location__, "IBO_CUBES", &
1597 description="Controls the printing of the IBO orbitals "// &
1598 "as *.cube files.", &
1599 print_level=high_print_level, common_iter_levels=1, &
1600 add_last=add_last_numeric, filename="")
1601 CALL keyword_create(keyword, __location__, name="STRIDE", &
1602 description="The stride (X,Y,Z) used to write the cube file "// &
1603 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1604 " 1 number valid for all components.", &
1605 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
1606 CALL section_add_keyword(subsection, keyword)
1607 CALL keyword_release(keyword)
1608 CALL keyword_create(keyword, __location__, name="APPEND", &
1609 description="append the cube files when they already exist", &
1610 default_l_val=.false., lone_keyword_l_val=.true.)
1611 CALL section_add_keyword(subsection, keyword)
1612 CALL keyword_release(keyword)
1613 CALL keyword_create(keyword, __location__, name="STATE_LIST", &
1614 description="Indices of the orbitals to be included in IBO CUBE file printing. ", &
1615 usage="STATE_LIST {integer} {integer} .. {integer} ", &
1616 n_var=-1, type_of_var=integer_t, repeats=.true.)
1617 CALL section_add_keyword(subsection, keyword)
1618 CALL keyword_release(keyword)
1619 CALL section_add_subsection(sub_print_key, subsection)
1620 CALL section_release(subsection)
1621 CALL section_add_subsection(print_key, sub_print_key)
1622 CALL section_release(sub_print_key)
1623
1624 CALL section_add_subsection(section, print_key)
1625 CALL section_release(print_key)
1626 ! END OF IAO_ANALYSIS SECTION
1627
1628 !DOS from density matrix
1629 CALL cp_print_key_section_create(print_key, __location__, "ENERGY_WINDOWS", &
1630 description="Controls the printing of the DOS from the density matrix. "// &
1631 "This allows the calculation of the DOS even in density matrix based "// &
1632 "REAL_TIME_PROPAGATION and LS_SCF. "// &
1633 "However, it requires a cubically scaling diagonalization of the Hamiltonian. "// &
1634 "Hartree-Fock NYI, values will be wrong. "// &
1635 "Careful, the orbitals in rtp/emd are not actually eigenstates of the Hamiltonian. "// &
1636 "Assumes absence of spin polarization (so far).", &
1637 print_level=high_print_level, common_iter_levels=3, &
1638 each_iter_names=s2a("MD"), each_iter_values=[100], &
1639 add_last=add_last_numeric, filename="energy-windows")
1640 CALL keyword_create(keyword, __location__, name="N_WINDOWS", &
1641 description="The number of energy windows.", &
1642 usage="N_WINDOWS 200", &
1643 default_i_val=100)
1644 CALL section_add_keyword(print_key, keyword)
1645 CALL keyword_release(keyword)
1646 CALL keyword_create(keyword, __location__, name="EPS_FILTER", &
1647 description="Filtering threshold for sparse matrix operations.", &
1648 usage="EPS_FILTER 1.0E-6", &
1649 default_r_val=1.0e-14_dp)
1650 CALL section_add_keyword(print_key, keyword)
1651 CALL keyword_release(keyword)
1652 CALL keyword_create(keyword, __location__, name="RESTRICT_RANGE", &
1653 description="Restricts the energy windows to states close to the fermi level", &
1654 usage="RESTRICT_RANGE .TRUE.", &
1655 default_l_val=.false., lone_keyword_l_val=.true.)
1656 CALL section_add_keyword(print_key, keyword)
1657 CALL keyword_release(keyword)
1658 CALL keyword_create(keyword, __location__, name="RANGE", &
1659 description="If the RESTRICT_RANGE keyword is set, then all energy widnows will"// &
1660 " be placed in an interval from from the fermi level minus to the fermi level plus this keyword", &
1661 usage="RANGE 1", &
1662 default_r_val=1.0_dp)
1663 CALL section_add_keyword(print_key, keyword)
1664 CALL keyword_release(keyword)
1665 CALL keyword_create(keyword, __location__, name="PRINT_CUBES", &
1666 description="Print the energy windows to cube files", &
1667 usage="PRINT_CUBES .TRUE.", &
1668 default_l_val=.false., lone_keyword_l_val=.true.)
1669 CALL section_add_keyword(print_key, keyword)
1670 CALL keyword_release(keyword)
1671 CALL keyword_create(keyword, __location__, name="STRIDE", &
1672 description="The stride (X,Y,Z) used to write the energy windows cube files (if enabled) "// &
1673 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1674 " 1 number valid for all components.", &
1675 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
1676 CALL section_add_keyword(print_key, keyword)
1677 CALL keyword_release(keyword)
1678 CALL section_add_subsection(section, print_key)
1679 CALL section_release(print_key)
1680
1681 ! Hamiltonian in CSR format
1682 CALL cp_print_key_section_create(print_key, __location__, "KS_CSR_WRITE", &
1683 description="Write the KS matrix in CSR format into a file.", &
1684 print_level=debug_print_level, filename="")
1685 CALL keyword_create(keyword, __location__, name="Threshold", &
1686 description="Threshold on the absolute value of the elements to be printed out. "// &
1687 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
1688 "if the block contains at least one non-zero element.", &
1689 usage="THRESHOLD {real}", &
1690 repeats=.false., &
1691 default_r_val=0.0_dp)
1692 CALL section_add_keyword(print_key, keyword)
1693 CALL keyword_release(keyword)
1694 CALL keyword_create(keyword, __location__, name="Upper_triangular", &
1695 description="Print only the upper triangular part of the matrix. ", &
1696 usage="UPPER_TRIANGULAR {logical}", &
1697 repeats=.false., &
1698 default_l_val=.false., &
1699 lone_keyword_l_val=.true.)
1700 CALL section_add_keyword(print_key, keyword)
1701 CALL keyword_release(keyword)
1702 CALL keyword_create(keyword, __location__, name="Binary", &
1703 description="Whether or not to generate the file in a binary format. ", &
1704 usage="BINARY {logical}", &
1705 repeats=.false., &
1706 default_l_val=.false., &
1707 lone_keyword_l_val=.true.)
1708 CALL section_add_keyword(print_key, keyword)
1709 CALL keyword_release(keyword)
1710 CALL keyword_create(keyword, __location__, name="Real_space", &
1711 description="Print the KS matrix in real-space instead of k-space.. ", &
1712 usage="REAL_SPACE {logical}", &
1713 repeats=.false., &
1714 default_l_val=.false., &
1715 lone_keyword_l_val=.true.)
1716 CALL section_add_keyword(print_key, keyword)
1717 CALL keyword_release(keyword)
1718 CALL section_add_subsection(section, print_key)
1719 CALL section_release(print_key)
1720
1721 ! Overlap in CSR format
1722 CALL cp_print_key_section_create(print_key, __location__, "S_CSR_WRITE", &
1723 description="Write the overlap matrix in CSR format into a file.", &
1724 print_level=debug_print_level, filename="")
1725 CALL keyword_create(keyword, __location__, name="Threshold", &
1726 description="Threshold on the absolute value of the elements to be printed out. "// &
1727 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
1728 "if the block contains at least one non-zero element.", &
1729 usage="THRESHOLD {real}", &
1730 repeats=.false., &
1731 default_r_val=0.0_dp)
1732 CALL section_add_keyword(print_key, keyword)
1733 CALL keyword_release(keyword)
1734 CALL keyword_create(keyword, __location__, name="Upper_triangular", &
1735 description="Print only the upper triangular part of the matrix. ", &
1736 usage="UPPER_TRIANGULAR {logical}", &
1737 repeats=.false., &
1738 default_l_val=.false., &
1739 lone_keyword_l_val=.true.)
1740 CALL section_add_keyword(print_key, keyword)
1741 CALL keyword_release(keyword)
1742 CALL keyword_create(keyword, __location__, name="Binary", &
1743 description="Whether or not to generate the file in a binary format. ", &
1744 usage="BINARY {logical}", &
1745 repeats=.false., &
1746 default_l_val=.false., &
1747 lone_keyword_l_val=.true.)
1748 CALL section_add_keyword(print_key, keyword)
1749 CALL keyword_release(keyword)
1750 CALL keyword_create(keyword, __location__, name="Real_space", &
1751 description="Print the overlap matrix in real-space instead of k-space.. ", &
1752 usage="REAL_SPACE {logical}", &
1753 repeats=.false., &
1754 default_l_val=.false., &
1755 lone_keyword_l_val=.true.)
1756 CALL section_add_keyword(print_key, keyword)
1757 CALL keyword_release(keyword)
1758 CALL section_add_subsection(section, print_key)
1759 CALL section_release(print_key)
1760
1761 ! Core Hamiltonian in CSR format
1762 CALL cp_print_key_section_create(print_key, __location__, "HCORE_CSR_WRITE", &
1763 description="Write the core Hamiltonian matrix in CSR format into a file.", &
1764 print_level=debug_print_level, filename="")
1765 CALL keyword_create(keyword, __location__, name="Threshold", &
1766 description="Threshold on the absolute value of the elements to be printed out. "// &
1767 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
1768 "if the block contains at least one non-zero element.", &
1769 usage="THRESHOLD {real}", &
1770 repeats=.false., &
1771 default_r_val=0.0_dp)
1772 CALL section_add_keyword(print_key, keyword)
1773 CALL keyword_release(keyword)
1774 CALL keyword_create(keyword, __location__, name="Upper_triangular", &
1775 description="Print only the upper triangular part of the matrix. ", &
1776 usage="UPPER_TRIANGULAR {logical}", &
1777 repeats=.false., &
1778 default_l_val=.false., &
1779 lone_keyword_l_val=.true.)
1780 CALL section_add_keyword(print_key, keyword)
1781 CALL keyword_release(keyword)
1782 CALL keyword_create(keyword, __location__, name="Binary", &
1783 description="Whether or not to generate the file in a binary format. ", &
1784 usage="BINARY {logical}", &
1785 repeats=.false., &
1786 default_l_val=.false., &
1787 lone_keyword_l_val=.true.)
1788 CALL section_add_keyword(print_key, keyword)
1789 CALL keyword_release(keyword)
1790 CALL keyword_create(keyword, __location__, name="Real_space", &
1791 description="Print the core Hamiltonian matrix in real-space instead of k-space.. ", &
1792 usage="REAL_SPACE {logical}", &
1793 repeats=.false., &
1794 default_l_val=.false., &
1795 lone_keyword_l_val=.true.)
1796 CALL section_add_keyword(print_key, keyword)
1797 CALL keyword_release(keyword)
1798 CALL section_add_subsection(section, print_key)
1799 CALL section_release(print_key)
1800
1801 ! Density Matrix in CSR format
1802 CALL cp_print_key_section_create(print_key, __location__, "P_CSR_WRITE", &
1803 description="Write the density matrix in CSR format into a file.", &
1804 print_level=debug_print_level, filename="")
1805 CALL keyword_create(keyword, __location__, name="Threshold", &
1806 description="Threshold on the absolute value of the elements to be printed out. "// &
1807 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
1808 "if the block contains at least one non-zero element.", &
1809 usage="THRESHOLD {real}", &
1810 repeats=.false., &
1811 default_r_val=0.0_dp)
1812 CALL section_add_keyword(print_key, keyword)
1813 CALL keyword_release(keyword)
1814 CALL keyword_create(keyword, __location__, name="Upper_triangular", &
1815 description="Print only the upper triangular part of the matrix. ", &
1816 usage="UPPER_TRIANGULAR {logical}", &
1817 repeats=.false., &
1818 default_l_val=.false., &
1819 lone_keyword_l_val=.true.)
1820 CALL section_add_keyword(print_key, keyword)
1821 CALL keyword_release(keyword)
1822 CALL keyword_create(keyword, __location__, name="Binary", &
1823 description="Whether or not to generate the file in a binary format. ", &
1824 usage="BINARY {logical}", &
1825 repeats=.false., &
1826 default_l_val=.false., &
1827 lone_keyword_l_val=.true.)
1828 CALL section_add_keyword(print_key, keyword)
1829 CALL keyword_release(keyword)
1830 CALL keyword_create(keyword, __location__, name="Real_space", &
1831 description="Print the density matrix in real-space instead of k-space.. ", &
1832 usage="REAL_SPACE {logical}", &
1833 repeats=.false., &
1834 default_l_val=.false., &
1835 lone_keyword_l_val=.true.)
1836 CALL section_add_keyword(print_key, keyword)
1837 CALL keyword_release(keyword)
1838 CALL section_add_subsection(section, print_key)
1839 CALL section_release(print_key)
1840
1841 ! interaction adjacency matrix
1842 CALL cp_print_key_section_create(print_key, __location__, "ADJMAT_WRITE", &
1843 description="Writes an (upper-triangular) adjacency matrix indicating the "// &
1844 "interaction between atoms (according to overlapping basis functions). The "// &
1845 "columns are: iatom, jatom, ikind, jkind; where iatom and jatom are the atom "// &
1846 "indices (based on the coordinate file), ikind and jkind are the atomic kinds "// &
1847 "(indeces as shown in the ATOMIC KIND INFORMATION section of a CP2K output). ", &
1848 print_level=debug_print_level, filename="")
1849 CALL section_add_subsection(section, print_key)
1850 CALL section_release(print_key)
1851
1852 ! Xray diffraction
1854 print_key, __location__, name="XRAY_DIFFRACTION_SPECTRUM", &
1855 description="Calculate and print the coherent X-ray "// &
1856 "diffraction spectrum", &
1857 print_level=debug_print_level, &
1858 filename="", &
1859 citations=[krack2000, krack2002])
1860 CALL keyword_create( &
1861 keyword, __location__, &
1862 name="Q_MAX", &
1863 variants=["Q_MAXIMUM"], &
1864 description="Maximum Q value calculated for the spectrum", &
1865 usage="Q_MAX {real}", &
1866 repeats=.false., &
1867 n_var=1, &
1868 type_of_var=real_t, &
1869 default_r_val=cp_unit_to_cp2k(value=20.0_dp, &
1870 unit_str="angstrom^-1"), &
1871 unit_str="angstrom^-1")
1872 CALL section_add_keyword(print_key, keyword)
1873 CALL keyword_release(keyword)
1874 CALL section_add_subsection(section, print_key)
1875 CALL section_release(print_key)
1876
1877 CALL cp_print_key_section_create(print_key, __location__, name="ELECTRIC_FIELD_GRADIENT", &
1878 description="Calculate and print the electric field gradients "// &
1879 "at atomic positions", &
1880 print_level=debug_print_level, &
1881 filename="__STD_OUT__")
1882
1883 CALL keyword_create(keyword, __location__, &
1884 name="INTERPOLATION", &
1885 description="Use interpolation method from real space grid", &
1886 usage="INTERPOLATION {logical}", &
1887 repeats=.false., &
1888 n_var=1, &
1889 default_l_val=.false., lone_keyword_l_val=.true.)
1890 CALL section_add_keyword(print_key, keyword)
1891 CALL keyword_release(keyword)
1892
1893 CALL keyword_create(keyword, __location__, &
1894 name="GSPACE_SMOOTHING", &
1895 description="Use a G-space smoothing function", &
1896 usage="GSPACE_SMOOTHING cutoff {real}, width {real}", &
1897 repeats=.false., &
1898 n_var=2, default_r_vals=[-1._dp, -1._dp], &
1899 type_of_var=real_t)
1900 CALL section_add_keyword(print_key, keyword)
1901 CALL keyword_release(keyword)
1902
1903 CALL keyword_create(keyword, __location__, &
1904 name="DEBUG", &
1905 description="Print additional debug output", &
1906 usage="DEBUG {logical}", &
1907 repeats=.false., &
1908 n_var=1, &
1909 default_l_val=.false., lone_keyword_l_val=.true.)
1910 CALL section_add_keyword(print_key, keyword)
1911 CALL keyword_release(keyword)
1912
1913 CALL create_gspace_interp_section(subsection)
1914 CALL section_add_subsection(print_key, subsection)
1915 CALL section_release(subsection)
1916
1917 CALL section_add_subsection(section, print_key)
1918 CALL section_release(print_key)
1919
1920 CALL cp_print_key_section_create(print_key, __location__, name="BASIS_MOLOPT_QUANTITIES", &
1921 description="Print the two quantities needed in the basis molopt generation:"// &
1922 " total energy and condition number of the overlap matrix (S matrix)", &
1923 print_level=debug_print_level, &
1924 filename="__STD_OUT__")
1925 CALL section_add_subsection(section, print_key)
1926 CALL section_release(print_key)
1927
1928 CALL cp_print_key_section_create(print_key, __location__, name="HYPERFINE_COUPLING_TENSOR", &
1929 description="Calculate and print the EPR hyperfine coupling tensor"// &
1930 " at atomic positions", &
1931 print_level=debug_print_level, &
1932 filename="__STD_OUT__")
1933
1934 CALL keyword_create(keyword, __location__, &
1935 name="INTERACTION_RADIUS", &
1936 description="Radius of interaction for EPR hyperfine tensor calculation", &
1937 usage="INTERACTION_RADIUS radius {real}", &
1938 repeats=.false., &
1939 n_var=1, default_r_val=10._dp, &
1940 type_of_var=real_t)
1941 CALL section_add_keyword(print_key, keyword)
1942 CALL keyword_release(keyword)
1943
1944 CALL section_add_subsection(section, print_key)
1945 CALL section_release(print_key)
1946
1947 CALL cp_print_key_section_create(print_key, __location__, name="OPTIMIZE_LRI_BASIS", &
1948 description="Optimize the exponents of the LRI basis set", &
1949 print_level=low_print_level, &
1950 filename="OPTIMIZED_LRI_BASIS")
1951 CALL section_add_subsection(section, print_key)
1952 CALL section_release(print_key)
1953
1955 print_key, __location__, name="PLUS_U", &
1956 description="Controls the printing for the DFT+U methods", &
1957 print_level=high_print_level, &
1958 filename="__STD_OUT__", &
1959 each_iter_names=s2a("QS_SCF"), &
1960 each_iter_values=[0], &
1961 citations=[dudarev1997, dudarev1998])
1962 CALL section_add_subsection(section, print_key)
1963 CALL section_release(print_key)
1964
1966 print_key, __location__, name="CHARGEMOL", &
1967 description="Write .wfx input file for Chargemol", &
1968 print_level=debug_print_level + 1, &
1969 filename="CHARGEMOL", &
1970 add_last=add_last_numeric)
1971 CALL keyword_create(keyword, __location__, name="BACKUP_COPIES", &
1972 description="Specifies the maximum number of backup copies.", &
1973 usage="BACKUP_COPIES {int}", &
1974 default_i_val=1)
1975 CALL section_add_keyword(print_key, keyword)
1976 CALL keyword_release(keyword)
1977 CALL keyword_create(keyword, __location__, name="PERIODIC", &
1978 description="Write information about cell periodicity.", &
1979 usage="PERIODIC {LOGICAL}", &
1980 default_l_val=.false., lone_keyword_l_val=.true.)
1981 CALL section_add_keyword(print_key, keyword)
1982 CALL keyword_release(keyword)
1983 CALL section_add_subsection(section, print_key)
1984 CALL section_release(print_key)
1985
1987 print_key, __location__, name="SCCS", &
1988 description="Controls the printing for the SCCS models", &
1989 print_level=high_print_level, &
1990 filename="__STD_OUT__", &
1991 each_iter_names=s2a("QS_SCF"), &
1992 each_iter_values=[0], &
1993 citations=[fattebert2002, andreussi2012, yin2017])
1994
1995 NULLIFY (sub_print_key)
1996
1998 sub_print_key, __location__, name="DENSITY_GRADIENT", &
1999 description="Controls the printing of the cube files with "// &
2000 "the norm of the density gradient |&nabla;&rho;| "// &
2001 "used by the SCCS model.", &
2002 print_level=debug_print_level, &
2003 filename="", &
2004 each_iter_names=s2a("QS_SCF"), &
2005 each_iter_values=[0])
2006 CALL keyword_create(keyword, __location__, name="STRIDE", &
2007 description="The stride (X,Y,Z) used to write the cube file "// &
2008 "(larger values result in smaller cube files). You can provide 3 "// &
2009 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2010 n_var=-1, &
2011 default_i_vals=[2, 2, 2], &
2012 type_of_var=integer_t, &
2013 repeats=.false.)
2014 CALL section_add_keyword(sub_print_key, keyword)
2015 CALL keyword_release(keyword)
2016 CALL keyword_create(keyword, __location__, name="APPEND", &
2017 description="Append the cube files when they already exist", &
2018 default_l_val=.false., &
2019 lone_keyword_l_val=.true., &
2020 repeats=.false.)
2021 CALL section_add_keyword(sub_print_key, keyword)
2022 CALL keyword_release(keyword)
2023 CALL section_add_subsection(print_key, sub_print_key)
2024 CALL section_release(sub_print_key)
2025
2027 sub_print_key, __location__, name="DIELECTRIC_FUNCTION", &
2028 description="Controls the printing of the cube files with "// &
2029 "the dielectric function used by the SCCS model. "// &
2030 "This function determines the cavity formed by a solute in "// &
2031 "a solvent and thus it can be used for the visualisaton of the cavity.", &
2032 print_level=debug_print_level, &
2033 filename="", &
2034 each_iter_names=s2a("QS_SCF"), &
2035 each_iter_values=[0], &
2036 citations=[fattebert2002, andreussi2012, yin2017])
2037 CALL keyword_create(keyword, __location__, name="STRIDE", &
2038 description="The stride (X,Y,Z) used to write the cube file "// &
2039 "(larger values result in smaller cube files). You can provide 3 "// &
2040 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2041 n_var=-1, &
2042 default_i_vals=[2, 2, 2], &
2043 type_of_var=integer_t, &
2044 repeats=.false.)
2045 CALL section_add_keyword(sub_print_key, keyword)
2046 CALL keyword_release(keyword)
2047 CALL keyword_create(keyword, __location__, name="APPEND", &
2048 description="Append the cube files when they already exist", &
2049 default_l_val=.false., &
2050 lone_keyword_l_val=.true., &
2051 repeats=.false.)
2052 CALL section_add_keyword(sub_print_key, keyword)
2053 CALL keyword_release(keyword)
2054 CALL section_add_subsection(print_key, sub_print_key)
2055 CALL section_release(sub_print_key)
2056
2058 sub_print_key, __location__, name="TOTAL_CHARGE_DENSITY", &
2059 description="Controls the printing of the cube files with the "// &
2060 "total charge density $\rho^\text{tot}$ used by the SCCS model.", &
2061 print_level=debug_print_level, &
2062 filename="", &
2063 each_iter_names=s2a("QS_SCF"), &
2064 each_iter_values=[0], &
2065 citations=[fattebert2002, andreussi2012, yin2017])
2066 CALL keyword_create(keyword, __location__, name="STRIDE", &
2067 description="The stride (X,Y,Z) used to write the cube file "// &
2068 "(larger values result in smaller cube files). You can provide 3 "// &
2069 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2070 n_var=-1, &
2071 default_i_vals=[2, 2, 2], &
2072 type_of_var=integer_t, &
2073 repeats=.false.)
2074 CALL section_add_keyword(sub_print_key, keyword)
2075 CALL keyword_release(keyword)
2076 CALL keyword_create(keyword, __location__, name="APPEND", &
2077 description="Append the cube files when they already exist", &
2078 default_l_val=.false., &
2079 lone_keyword_l_val=.true., &
2080 repeats=.false.)
2081 CALL section_add_keyword(sub_print_key, keyword)
2082 CALL keyword_release(keyword)
2083 CALL section_add_subsection(print_key, sub_print_key)
2084 CALL section_release(sub_print_key)
2085
2087 sub_print_key, __location__, name="POLARISATION_CHARGE_DENSITY", &
2088 description="Controls the printing of the cube files with the "// &
2089 "polarisation charge density $\rho^\text{pol}$ used by the SCCS model with the "// &
2090 "total charge density $\rho^\text{tot} = \rho^\text{sol} + \rho^\text{pol}", &
2091 print_level=debug_print_level, &
2092 filename="", &
2093 each_iter_names=s2a("QS_SCF"), &
2094 each_iter_values=[0], &
2095 citations=[fattebert2002, andreussi2012, yin2017])
2096 CALL keyword_create(keyword, __location__, name="STRIDE", &
2097 description="The stride (X,Y,Z) used to write the cube file "// &
2098 "(larger values result in smaller cube files). You can provide 3 "// &
2099 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2100 n_var=-1, &
2101 default_i_vals=[2, 2, 2], &
2102 type_of_var=integer_t, &
2103 repeats=.false.)
2104 CALL section_add_keyword(sub_print_key, keyword)
2105 CALL keyword_release(keyword)
2106 CALL keyword_create(keyword, __location__, name="APPEND", &
2107 description="Append the cube files when they already exist", &
2108 default_l_val=.false., &
2109 lone_keyword_l_val=.true., &
2110 repeats=.false.)
2111 CALL section_add_keyword(sub_print_key, keyword)
2112 CALL keyword_release(keyword)
2113 CALL section_add_subsection(print_key, sub_print_key)
2114 CALL section_release(sub_print_key)
2115
2117 sub_print_key, __location__, name="POLARISATION_POTENTIAL", &
2118 description="Controls the printing of the cube files with the "// &
2119 "polarisation potential $\phi^\text{pol}$ used by the SCCS model with the "// &
2120 "total potential $\phi^\text{tot} = \phi^\text{sol} + \phi^\text{pol}$", &
2121 print_level=debug_print_level, &
2122 filename="", &
2123 each_iter_names=s2a("QS_SCF"), &
2124 each_iter_values=[0], &
2125 citations=[fattebert2002, andreussi2012, yin2017])
2126 CALL keyword_create(keyword, __location__, name="STRIDE", &
2127 description="The stride (X,Y,Z) used to write the cube file "// &
2128 "(larger values result in smaller cube files). You can provide 3 "// &
2129 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2130 n_var=-1, &
2131 default_i_vals=[2, 2, 2], &
2132 type_of_var=integer_t, &
2133 repeats=.false.)
2134 CALL section_add_keyword(sub_print_key, keyword)
2135 CALL keyword_release(keyword)
2136 CALL keyword_create(keyword, __location__, name="APPEND", &
2137 description="Append the cube files when they already exist", &
2138 default_l_val=.false., &
2139 lone_keyword_l_val=.true., &
2140 repeats=.false.)
2141 CALL section_add_keyword(sub_print_key, keyword)
2142 CALL keyword_release(keyword)
2143 CALL section_add_subsection(print_key, sub_print_key)
2144 CALL section_release(sub_print_key)
2145
2146 CALL section_add_subsection(section, print_key)
2147 CALL section_release(print_key)
2148
2149 END SUBROUTINE create_print_dft_section
2150
2151! **************************************************************************************************
2152!> \brief ...
2153!> \param section ...
2154!> \author JGH
2155! **************************************************************************************************
2156 SUBROUTINE create_bandstructure_section(section)
2157 TYPE(section_type), POINTER :: section
2158
2159 TYPE(keyword_type), POINTER :: keyword
2160 TYPE(section_type), POINTER :: subsection
2161
2162 cpassert(.NOT. ASSOCIATED(section))
2163 CALL section_create(section, __location__, name="BAND_STRUCTURE", &
2164 description="Specifies the k-points used in band structure calculation.", &
2165 n_keywords=0, n_subsections=0, repeats=.false.)
2166
2167 NULLIFY (keyword)
2168 CALL keyword_create(keyword, __location__, name="FILE_NAME", &
2169 description="File name used for band structure", &
2170 usage="FILE_NAME <filename>", default_c_val="", &
2171 type_of_var=char_t, n_var=1)
2172 CALL section_add_keyword(section, keyword)
2173 CALL keyword_release(keyword)
2174
2175 CALL keyword_create(keyword, __location__, name="ADDED_MOS", &
2176 variants=["ADDED_BANDS"], &
2177 description="Number of MOs/Bands added to the Band Structure calculation.", &
2178 default_i_val=0)
2179 CALL section_add_keyword(section, keyword)
2180 CALL keyword_release(keyword)
2181
2182 NULLIFY (subsection)
2183 CALL create_kpoint_set_section(subsection)
2184 CALL section_add_subsection(section, subsection)
2185 CALL section_release(subsection)
2186
2187 END SUBROUTINE create_bandstructure_section
2188
2189! **************************************************************************************************
2190!> \brief creates the input section for dealing with homo lumos, including dumping cubes
2191!> \param print_key ...
2192! **************************************************************************************************
2193 SUBROUTINE create_mo_cubes_section(print_key)
2194 TYPE(section_type), POINTER :: print_key
2195
2196 TYPE(keyword_type), POINTER :: keyword
2197
2198 NULLIFY (keyword)
2199
2200 CALL cp_print_key_section_create(print_key, __location__, "MO_CUBES", &
2201 description="Controls the printing of the molecular orbitals (MOs) as cube files."// &
2202 " It can be used during a Real Time calculation to print the MOs."// &
2203 " In this case, the density corresponding to the time dependent MO is printed"// &
2204 " instead of the wave-function.", &
2205 print_level=high_print_level, filename="")
2206
2207 CALL keyword_create(keyword, __location__, name="stride", &
2208 description="The stride (X,Y,Z) used to write the cube file "// &
2209 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
2210 " 1 number valid for all components.", &
2211 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
2212 CALL section_add_keyword(print_key, keyword)
2213 CALL keyword_release(keyword)
2214
2215 CALL keyword_create(keyword, __location__, name="max_file_size_mb", &
2216 description="Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
2217 usage="MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
2218 CALL section_add_keyword(print_key, keyword)
2219 CALL keyword_release(keyword)
2220
2221 CALL keyword_create(keyword, __location__, name="write_cube", &
2222 description="If the MO cube file should be written. If false, the eigenvalues are still computed."// &
2223 " Can also be useful in combination with STM calculations", &
2224 default_l_val=.true., lone_keyword_l_val=.true.)
2225 CALL section_add_keyword(print_key, keyword)
2226 CALL keyword_release(keyword)
2227
2228 CALL keyword_create(keyword, __location__, name="nlumo", &
2229 description="If the printkey is activated controls the number of lumos"// &
2230 " that are printed and dumped as a cube (-1=all)", &
2231 default_i_val=0)
2232 CALL section_add_keyword(print_key, keyword)
2233 CALL keyword_release(keyword)
2234
2235 CALL keyword_create( &
2236 keyword, __location__, name="nhomo", &
2237 description="If the printkey is activated controls the number of homos that dumped as a cube (-1=all),"// &
2238 " eigenvalues are always all dumped", &
2239 default_i_val=1)
2240 CALL section_add_keyword(print_key, keyword)
2241 CALL keyword_release(keyword)
2242
2243 CALL keyword_create( &
2244 keyword, __location__, name="homo_list", &
2245 description="If the printkey is activated controls the index of homos dumped as a cube,"// &
2246 " eigenvalues are always all dumped. It overrides nhomo.", &
2247 usage="HOMO_LIST {integer} {integer} .. {integer} ", type_of_var=integer_t, &
2248 n_var=-1, repeats=.true.)
2249 CALL section_add_keyword(print_key, keyword)
2250 CALL keyword_release(keyword)
2251
2252 CALL keyword_create(keyword, __location__, name="APPEND", &
2253 description="append the cube files when they already exist", &
2254 default_l_val=.false., lone_keyword_l_val=.true.)
2255 CALL section_add_keyword(print_key, keyword)
2256 CALL keyword_release(keyword)
2257
2258 END SUBROUTINE create_mo_cubes_section
2259
2260! **************************************************************************************************
2261!> \brief ...
2262!> \param print_key ...
2263! **************************************************************************************************
2264 SUBROUTINE create_dos_section(print_key)
2265
2266 TYPE(section_type), POINTER :: print_key
2267
2268 TYPE(keyword_type), POINTER :: keyword
2269
2270 NULLIFY (keyword)
2271
2272 CALL cp_print_key_section_create(print_key, __location__, "DOS", &
2273 description="Print Density of States (DOS) (only available states from SCF)", &
2274 print_level=debug_print_level, common_iter_levels=1, filename="")
2275
2276 CALL keyword_create(keyword, __location__, name="APPEND", &
2277 description="Append the DOS obtained at different iterations to the output file. "// &
2278 "By default the file is overwritten", &
2279 usage="APPEND", default_l_val=.false., &
2280 lone_keyword_l_val=.true.)
2281 CALL section_add_keyword(print_key, keyword)
2282 CALL keyword_release(keyword)
2283
2284 CALL keyword_create(keyword, __location__, name="DELTA_E", &
2285 description="Histogramm energy spacing.", &
2286 usage="DELTA_E 0.0005", type_of_var=real_t, default_r_val=0.001_dp)
2287 CALL section_add_keyword(print_key, keyword)
2288 CALL keyword_release(keyword)
2289
2290 CALL keyword_create(keyword, __location__, name="NDIGITS", &
2291 description="Specify the number of digits used to print density and occupation", &
2292 default_i_val=4)
2293 CALL section_add_keyword(print_key, keyword)
2294 CALL keyword_release(keyword)
2295
2296 CALL keyword_create(keyword, __location__, name="MP_GRID", &
2297 description="Specify a Monkhorst-Pack grid with which to compute the density of states. "// &
2298 "Works only for a k-point calculation", &
2299 usage="MP_GRID {integer} {integer} {integer}", default_i_vals=[-1], &
2300 n_var=3, type_of_var=integer_t)
2301 CALL section_add_keyword(print_key, keyword)
2302 CALL keyword_release(keyword)
2303
2304 END SUBROUTINE create_dos_section
2305
2306! **************************************************************************************************
2307!> \brief ...
2308!> \param print_key ...
2309! **************************************************************************************************
2310 SUBROUTINE create_pdos_section(print_key)
2311
2312 TYPE(section_type), POINTER :: print_key
2313
2314 TYPE(keyword_type), POINTER :: keyword
2315 TYPE(section_type), POINTER :: subsection
2316
2317 NULLIFY (subsection)
2318 NULLIFY (keyword)
2319
2320 CALL cp_print_key_section_create(print_key, __location__, "PDOS", &
2321 description="Print out the DOS projected per kind and angular momentum ", &
2322 print_level=debug_print_level, common_iter_levels=1, filename="")
2323 CALL keyword_create(keyword, __location__, name="COMPONENTS", &
2324 description="Print out PDOS distinguishing all angular momentum components.", &
2325 usage="COMPONENTS", default_l_val=.false., &
2326 lone_keyword_l_val=.true.)
2327 CALL section_add_keyword(print_key, keyword)
2328 CALL keyword_release(keyword)
2329 CALL keyword_create(keyword, __location__, name="APPEND", &
2330 description="Append the PDOS obtained at different iterations to the PDOS output file. "// &
2331 "By default the file is overwritten", &
2332 usage="APPEND", default_l_val=.false., &
2333 lone_keyword_l_val=.true.)
2334 CALL section_add_keyword(print_key, keyword)
2335 CALL keyword_release(keyword)
2336 CALL keyword_create( &
2337 keyword, __location__, name="NLUMO", &
2338 description="Number of virtual orbitals to be added to the MO set (-1=all)."//newline// &
2339 "CAUTION: Setting this value to be higher than the "// &
2340 "number of states present may cause a Cholesky error."//newline// &
2341 "This keyword only applies to MO sets, not to XAS_TDP states.", &
2342 usage="NLUMO integer", default_i_val=0)
2343 CALL section_add_keyword(print_key, keyword)
2344 CALL keyword_release(keyword)
2345 CALL keyword_create(keyword, __location__, name="OUT_EACH_STATE", &
2346 variants=["OUT_EACH_MO"], &
2347 description="Output on the status of the calculation every OUT_EACH_MO states. If -1 no output", &
2348 usage="OUT_EACH_STATE integer", default_i_val=-1)
2349 CALL section_add_keyword(print_key, keyword)
2350 CALL keyword_release(keyword)
2351
2352 CALL section_create(subsection, __location__, name="LDOS", &
2353 description="Controls the printing of local PDOS, projected on subsets"// &
2354 " of atoms given through lists", &
2355 n_keywords=4, n_subsections=0, repeats=.true.)
2356 CALL keyword_create(keyword, __location__, name="COMPONENTS", &
2357 description="Print out PDOS distinguishing all angular momentum components.", &
2358 usage="COMPONENTS", default_l_val=.false., &
2359 lone_keyword_l_val=.true.)
2360 CALL section_add_keyword(subsection, keyword)
2361 CALL keyword_release(keyword)
2362
2363 CALL keyword_create(keyword, __location__, name="LIST", &
2364 description="Specifies a list of indexes of atoms where to project the DOS ", &
2365 usage="LIST {integer} {integer} .. {integer} ", type_of_var=integer_t, &
2366 n_var=-1, repeats=.true.)
2367 CALL section_add_keyword(subsection, keyword)
2368 CALL keyword_release(keyword)
2369
2370 CALL section_add_subsection(print_key, subsection)
2371 CALL section_release(subsection)
2372
2373 CALL section_create(subsection, __location__, name="R_LDOS", &
2374 description="Controls the printing of local PDOS, projected on 3D volume in real space,"// &
2375 " the volume is defined in terms of position with respect to atoms in the lists", &
2376 n_keywords=4, n_subsections=0, repeats=.true.)
2377
2378 CALL keyword_create(keyword, __location__, name="LIST", &
2379 description="Specifies a list of indexes of atoms used to define the real space volume ", &
2380 usage="LIST {integer} {integer} .. {integer} ", type_of_var=integer_t, &
2381 n_var=-1, repeats=.true.)
2382 CALL section_add_keyword(subsection, keyword)
2383 CALL keyword_release(keyword)
2384
2385 CALL keyword_create(keyword, __location__, name="XRANGE", &
2386 description="range of positions in Cartesian direction x: all grid points within "// &
2387 "this range from at least one atom of the list are considered", &
2388 usage="XRANGE -10.0 10.0", unit_str="angstrom", n_var=2, type_of_var=real_t)
2389 CALL section_add_keyword(subsection, keyword)
2390 CALL keyword_release(keyword)
2391 CALL keyword_create(keyword, __location__, name="YRANGE", &
2392 description="range of positions in Cartesian direction y: all grid points within "// &
2393 "this range from at least one atom of the list are considered", &
2394 usage="YRANGE -10.0 10.0", unit_str="angstrom", n_var=2, type_of_var=real_t)
2395 CALL section_add_keyword(subsection, keyword)
2396 CALL keyword_release(keyword)
2397 CALL keyword_create(keyword, __location__, name="ZRANGE", &
2398 description="range of positions in Cartesian direction z: all grid points within "// &
2399 "this range from at least one atom of the list are considered", &
2400 usage="ZRANGE -10.0 10.0", unit_str="angstrom", n_var=2, type_of_var=real_t)
2401 CALL section_add_keyword(subsection, keyword)
2402 CALL keyword_release(keyword)
2403
2404 CALL keyword_create(keyword, __location__, name="ERANGE", &
2405 description="Only project states with the energy values in the given interval. "// &
2406 "Default is all states.", &
2407 usage="ERANGE -1.0 1.0", unit_str="hartree", n_var=2, type_of_var=real_t)
2408 CALL section_add_keyword(subsection, keyword)
2409 CALL keyword_release(keyword)
2410
2411 CALL section_add_subsection(print_key, subsection)
2412 CALL section_release(subsection)
2413
2414 END SUBROUTINE create_pdos_section
2415
2416! **************************************************************************************************
2417!> \brief ...
2418!> \param print_key ...
2419! **************************************************************************************************
2420 SUBROUTINE create_wannier_section(print_key)
2421
2422 TYPE(section_type), POINTER :: print_key
2423
2424 TYPE(keyword_type), POINTER :: keyword
2425
2426 NULLIFY (keyword)
2427
2428 CALL cp_print_key_section_create(print_key, __location__, "WANNIER90", &
2429 description="Interface to Wannier90 code. (EXPERIMENTAL)", &
2430 print_level=debug_print_level, common_iter_levels=1, filename="")
2431
2432 CALL keyword_create(keyword, __location__, name="SEED_NAME", &
2433 description="The seedname for the Wannier90 calculation (body of filenames).", &
2434 usage="SEED_NAME filename", default_c_val="wannier90", &
2435 n_var=1, type_of_var=char_t)
2436 CALL section_add_keyword(print_key, keyword)
2437 CALL keyword_release(keyword)
2438
2439 CALL keyword_create(keyword, __location__, name="MP_GRID", &
2440 description="The dimensions of the Monkhorst-Pack k-point grid. ", &
2441 usage="MP_GRID 6 6 6", n_var=-1, default_i_vals=[10, 10, 10], type_of_var=integer_t)
2442 CALL section_add_keyword(print_key, keyword)
2443 CALL keyword_release(keyword)
2444
2445 CALL keyword_create(keyword, __location__, name="ADDED_MOS", &
2446 variants=["ADDED_BANDS"], &
2447 description="Number of MOs/Bands added to the Band Structure calculation.", &
2448 default_i_val=0)
2449 CALL section_add_keyword(print_key, keyword)
2450 CALL keyword_release(keyword)
2451
2452 CALL keyword_create(keyword, __location__, name="EXCLUDE_BANDS", &
2453 description="List of Bands excluded in the Wannier calculation.", &
2454 usage="EXCLUDE_BANDS b1 b2 ...", n_var=-1, repeats=.true., &
2455 type_of_var=integer_t)
2456 CALL section_add_keyword(print_key, keyword)
2457 CALL keyword_release(keyword)
2458
2459 CALL keyword_create(keyword, __location__, name="WANNIER_FUNCTIONS", &
2460 description="Number of Wannier functions to be calculated. ", &
2461 usage="WANNIER_FUNCTIONS 6", n_var=1, default_i_val=0, &
2462 repeats=.true., type_of_var=integer_t)
2463 CALL section_add_keyword(print_key, keyword)
2464 CALL keyword_release(keyword)
2465
2466 END SUBROUTINE create_wannier_section
2467
2468! **************************************************************************************************
2469!> \brief ...
2470!> \param print_key ...
2471! **************************************************************************************************
2472 SUBROUTINE create_stm_section(print_key)
2473 TYPE(section_type), POINTER :: print_key
2474
2475 TYPE(keyword_type), POINTER :: keyword
2476
2477 NULLIFY (keyword)
2478
2479 CALL cp_print_key_section_create(print_key, __location__, "STM", &
2480 description="Controls the printing of cubes for the generation of STM images.", &
2481 print_level=debug_print_level, filename="")
2482 CALL keyword_create(keyword, __location__, name="stride", &
2483 description="The stride (X,Y,Z) used to write the cube file "// &
2484 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
2485 " 1 number valid for all components.", &
2486 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
2487 CALL section_add_keyword(print_key, keyword)
2488 CALL keyword_release(keyword)
2489
2490 CALL keyword_create(keyword, __location__, name="nlumo", &
2491 description="If the printkey is activated controls the number of additional lumos"// &
2492 " that are computed to be able to reproduce STM images obtained"// &
2493 " from positive bias (imaging unoccupied states)", &
2494 default_i_val=0)
2495 CALL section_add_keyword(print_key, keyword)
2496 CALL keyword_release(keyword)
2497
2498 CALL keyword_create(keyword, __location__, name="BIAS", &
2499 description="Bias energy for scanning tunneling microscopy (STM) image generation. "// &
2500 "Orbital densities are summed according to the bias energy. "// &
2501 "For negative values, states in the range ]EF+bias,EF] are summed, "// &
2502 "While positive values sum states in the range [EF,EF+bias[. "// &
2503 "If positive biases are used, sufficiently many unoccupied stated "// &
2504 "(see ADDED_MOS and NLUMO ) should be computed.", &
2505 n_var=-1, type_of_var=real_t, default_r_vals=[0.0_dp], unit_str='eV')
2506 CALL section_add_keyword(print_key, keyword)
2507 CALL keyword_release(keyword)
2508
2509 CALL keyword_create(keyword, __location__, name="TH_TORB", &
2510 description="Tip orbital symmetry in Tersoff-Hamann approximation to compute STM images", &
2511 repeats=.true., &
2512 default_i_val=orb_s, &
2513 usage="TH_TORB s dz2", &
2514 enum_c_vals=s2a("S", "PX", "PY", "PZ", "DXY", "DYZ", "DZX", "DX2", "DY2", "DZ2"), &
2516 enum_desc=s2a("s orbital", "px orbital", "py orbital", "pz orbital", &
2517 "dxy orbital", "dyz orbital", "dzx orbital", "x^2 orbital", "y^2 orbital", "z^2 orbital"))
2518 CALL section_add_keyword(print_key, keyword)
2519 CALL keyword_release(keyword)
2520
2521 CALL keyword_create(keyword, __location__, name="REF_ENERGY", &
2522 description="By default the reference energy is the Fermi energy. In order to compare"// &
2523 " with STS experiments, where specific energy ranges are addressed, here"// &
2524 " one can set a different reference energy."// &
2525 " The energy range is anyway controlled by the BIAS", &
2526 type_of_var=real_t, default_r_val=0.0_dp, unit_str='eV')
2527 CALL section_add_keyword(print_key, keyword)
2528 CALL keyword_release(keyword)
2529
2530 CALL keyword_create(keyword, __location__, name="APPEND", &
2531 description="append the cube files when they already exist", &
2532 default_l_val=.false., lone_keyword_l_val=.true.)
2533 CALL section_add_keyword(print_key, keyword)
2534 CALL keyword_release(keyword)
2535
2536 END SUBROUTINE create_stm_section
2537
2538! **************************************************************************************************
2539!> \brief ...
2540!> \param section ...
2541! **************************************************************************************************
2542 SUBROUTINE create_wfn_mix_section(section)
2543
2544 TYPE(section_type), POINTER :: section
2545
2546 TYPE(keyword_type), POINTER :: keyword
2547 TYPE(section_type), POINTER :: subsection
2548
2549 NULLIFY (subsection)
2550 NULLIFY (keyword)
2551
2552 cpassert(.NOT. ASSOCIATED(section))
2553
2554 CALL section_create(section, __location__, name="WFN_MIX", &
2555 description="A section that allows manipulation of the MO coeffs, "// &
2556 "e.g. for changing a ground state into an excited state. "// &
2557 "Starting from a copy of the original MOs, changes can be made "// &
2558 "by adding linear combinations of HOMO/LUMO of the original MOs to the result MOs. "// &
2559 "This method is called after an SCF optimization or before an RTP run if "// &
2560 "INITIAL_WFN=RESTART_WFN. Note that if called after an SCF optimization, a restart file "// &
2561 "with the mixed MOs is saved. This is not the case for an RTP with "// &
2562 "INITIAL_WFN=RESTART_WFN.", &
2563 n_keywords=1, n_subsections=0, repeats=.false.)
2564
2565 CALL keyword_create(keyword, __location__, name="OVERWRITE_MOS", &
2566 description="If set to True, the active molecular orbitals in memory will be replaced by the mixed wfn "// &
2567 "at the end of the wfn mixing procedure. For instance, you can then use this new set of MOs to perform "// &
2568 "RTP or EMD directly. Note that in the case of an RTP run with INITIAL_WFN=RESTART_WFN, the OVERWRITE_MOS "// &
2569 "keyword is not used.", &
2570 default_l_val=.false., lone_keyword_l_val=.true.)
2571 CALL section_add_keyword(section, keyword)
2572 CALL keyword_release(keyword)
2573
2574 CALL section_create(subsection, __location__, name="UPDATE", &
2575 description="Update a result MO with with a linear combination of original MOs."// &
2576 " This section can be repeated to build arbitrary linear combinations using repeatedly y=a*y+b*x. "// &
2577 "RESULT is (y), RESULT_SCALE is (a), ORIG is (x), ORIG_SCALE is (b)", &
2578 n_keywords=1, n_subsections=0, repeats=.true.)
2579
2580 CALL keyword_create(keyword, __location__, name="RESULT_MO_INDEX", &
2581 description="Index of the MO (y) to be modified. Counting down in energy: "// &
2582 "set to 1 for the highest MO, to 3 for the highest MO-2.", &
2583 usage="RESULT_MO_INDEX 1", type_of_var=integer_t, default_i_val=0)
2584 CALL section_add_keyword(subsection, keyword)
2585 CALL keyword_release(keyword)
2586
2587 CALL keyword_create(keyword, __location__, name="RESULT_MARKED_STATE", &
2588 description="Specifies the MO according to "// &
2589 "the marks set in MOLECULAR_STATES. The value corresponds to the repetition "// &
2590 "of MARK_STATES in MOLECULAR_STATES", &
2591 usage="RESULT_MARKED_STATE 1", type_of_var=integer_t, default_i_val=0)
2592 CALL section_add_keyword(subsection, keyword)
2593 CALL keyword_release(keyword)
2594
2595 CALL keyword_create(keyword, __location__, name="REVERSE_MO_INDEX", &
2596 description="Reverses the index order of the OCCUPIED and EXTERNAL MOs. With this keyword "// &
2597 "ORIG_MO_INDEX/RESULT_MO_INDEX 1 point to the lowest energy MO (instead of the highest) "// &
2598 "and counts up in energy. The VIRTUAL MOs indexing is unchanged.", &
2599 default_l_val=.false., lone_keyword_l_val=.true.)
2600 CALL section_add_keyword(subsection, keyword)
2601 CALL keyword_release(keyword)
2602
2603 CALL keyword_create(keyword, __location__, name="RESULT_SPIN_INDEX", &
2604 description="Spin of the MO (y) to be modified.", &
2605 enum_c_vals=s2a("Alpha", "Beta"), &
2606 enum_i_vals=[1, 2], & ! direct index in array
2607 default_i_val=1, &
2608 enum_desc=s2a("Majority spin", "Minority spin"))
2609 CALL section_add_keyword(subsection, keyword)
2610 CALL keyword_release(keyword)
2611
2612 CALL keyword_create(keyword, __location__, name="RESULT_SCALE", &
2613 description="Scaling factor of the result variable (a).", &
2614 usage="RESULT_SCALE 0.0", type_of_var=real_t)
2615 CALL section_add_keyword(subsection, keyword)
2616 CALL keyword_release(keyword)
2617
2618 CALL keyword_create(keyword, __location__, name="ORIG_MO_INDEX", &
2619 description="Index of the original MO (x). "// &
2620 "If ORIG_TYPE is OCCUPIED, it counts down in energy: set to 1 to point to "// &
2621 "the highest MO and to 3 for the highest MO-2. "// &
2622 "If ORIG_TYPE is VIRTUAL, it counts up in energy: set to 1 to point to "// &
2623 "the lowest virtual MO and to 3 for the lowest MO+2. "// &
2624 "If ORIG_TYPE is EXTERNAL, it counts down in energy for the external "// &
2625 "set of MOs: set to 1 to point to the highest MO and to 3 for the highest MO-2. "// &
2626 "Do not set to zero or negative values.", &
2627 usage="ORIG_MO_INDEX 1", type_of_var=integer_t, default_i_val=0)
2628 CALL section_add_keyword(subsection, keyword)
2629 CALL keyword_release(keyword)
2630
2631 CALL keyword_create(keyword, __location__, name="ORIG_MARKED_STATE", &
2632 description="Specifies the MO according to "// &
2633 "the marks set in MOLECULAR_STATES. The value corresponds to the repetition "// &
2634 "of MARK_STATES in MOLECULAR_STATES", &
2635 usage="ORIG_MARKED_STATE 1", type_of_var=integer_t, default_i_val=0)
2636 CALL section_add_keyword(subsection, keyword)
2637 CALL keyword_release(keyword)
2638
2639 CALL keyword_create(keyword, __location__, name="ORIG_SPIN_INDEX", &
2640 description="Spin of the MO (x) to be modified.", &
2641 enum_c_vals=s2a("Alpha", "Beta"), &
2642 enum_i_vals=[1, 2], & ! direct index in array
2643 default_i_val=1, &
2644 enum_desc=s2a("Majority spin", "Minority spin"))
2645 CALL section_add_keyword(subsection, keyword)
2646 CALL keyword_release(keyword)
2647
2648 CALL keyword_create(keyword, __location__, name="ORIG_SCALE", &
2649 description="Scaling factor of the original variable (b).", &
2650 usage="ORIG_SCALE 0.0", type_of_var=real_t)
2651 CALL section_add_keyword(subsection, keyword)
2652 CALL keyword_release(keyword)
2653
2654 CALL keyword_create(keyword, __location__, name="ORIG_TYPE", &
2655 description="Type of the original MO. Note that if ADDED_MOS was used in the "// &
2656 "SCF construction of the MO matrix, these extra MOs are also treated as OCCUPIED. ", &
2657 enum_c_vals=s2a("OCCUPIED", "VIRTUAL", 'EXTERNAL'), &
2658 usage="ORIG_TYPE OCCUPIED", &
2659 default_i_val=wfn_mix_orig_occ, &
2660 enum_desc=s2a("The original MO is the result of the SCF procedure. This can also contain "// &
2661 "unoccupied MOs if the SCF%ADDED_MOS keyword was used.", &
2662 "The original MO is taken from the result of additional MOs calculated a "// &
2663 "posteriori of the SCF by request of the user. E.g. by specifying print%mo_cubes%nlumo. ", &
2664 "The orginal MO is from an external .wfn file. Use the keyword "// &
2665 "ORIG_EXT_FILE_NAME to define its name."), &
2667 CALL section_add_keyword(subsection, keyword)
2668 CALL keyword_release(keyword)
2669
2670 CALL keyword_create(keyword, __location__, name="ORIG_EXT_FILE_NAME", &
2671 description="Name of the wavefunction file to read the original MO from. "// &
2672 "For instance, a restart wfn file from SCF calculation or an excited state from XAS_TDP calculation. "// &
2673 "If no file is specified, the run will crash. "// &
2674 "Currently, a RTP restart file (.rtpwfn) cannot be used as reference. "// &
2675 "Currently, this file SHALL have the basis set, number of MO and the same number of spin as the one "// &
2676 "from the SCF cycle.", &
2677 usage="ORIG_EXT_FILE_NAME <FILENAME>", &
2678 default_lc_val="EMPTY")
2679 CALL section_add_keyword(subsection, keyword)
2680 CALL keyword_release(keyword)
2681
2682 CALL section_add_subsection(section, subsection)
2683 CALL section_release(subsection)
2684
2685 END SUBROUTINE create_wfn_mix_section
2686
2687! **************************************************************************************************
2688!> \brief Creates the section for cube files related to the implicit Poisson solver.
2689!> \param section the section to be created
2690!> \par History
2691!> 03.2016 refactored from create_print_dft_section [Hossein Bani-Hashemian]
2692!> \author Mohammad Hossein Bani-Hashemian
2693! **************************************************************************************************
2694 SUBROUTINE create_implicit_psolver_section(section)
2695 TYPE(section_type), POINTER :: section
2696
2697 TYPE(keyword_type), POINTER :: keyword
2698 TYPE(section_type), POINTER :: print_key
2699
2700 cpassert(.NOT. ASSOCIATED(section))
2701 CALL section_create(section, __location__, name="IMPLICIT_PSOLVER", &
2702 description="Controls printing of cube files for data from the implicit "// &
2703 "(generalized) Poisson solver.", &
2704 citations=[banihashemian2016], &
2705 n_keywords=0, n_subsections=3, repeats=.false.)
2706
2707 NULLIFY (keyword, print_key)
2708
2709 ! dielectric constant function
2710 CALL cp_print_key_section_create(print_key, __location__, "DIELECTRIC_CUBE", &
2711 description="Controls the printing of a cube file with dielectric constant from "// &
2712 "the implicit (generalized) Poisson solver.", &
2713 print_level=high_print_level, filename="")
2714
2715 CALL keyword_create(keyword, __location__, name="stride", &
2716 description="The stride (X,Y,Z) used to write the cube file "// &
2717 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
2718 " 1 number valid for all components.", &
2719 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
2720 CALL section_add_keyword(print_key, keyword)
2721 CALL keyword_release(keyword)
2722 CALL keyword_create(keyword, __location__, name="APPEND", &
2723 description="append the cube files when they already exist", &
2724 default_l_val=.false., lone_keyword_l_val=.true.)
2725 CALL section_add_keyword(print_key, keyword)
2726 CALL keyword_release(keyword)
2727
2728 CALL section_add_subsection(section, print_key)
2729 CALL section_release(print_key)
2730
2731 ! dirichlet type constraints
2733 print_key, __location__, "DIRICHLET_BC_CUBE", &
2734 description="Controls the printing of cube files with unit step functions (constraints)"// &
2735 " representing Dirichlet-type (boundary) regions defined in the implicit (generalized) Poisson"// &
2736 " solver section. The regions remain unchanged throughout the calculations. If the Dirichlet"// &
2737 " regions are relatively large and/or the number of partitions is quite high, in order to save memory,"// &
2738 " generate the cube files in early steps and perform the rest of the calculations with this keyword"// &
2739 " switched off.", &
2740 print_level=high_print_level, filename="")
2741
2742 CALL keyword_create(keyword, __location__, name="TILE_CUBES", &
2743 description="Print tiles that tessellate the Dirichlet regions into cube files. If TRUE, "// &
2744 "generates cube files as many as the total number of tiles.", &
2745 usage="TILE_CUBES <logical>", &
2746 default_l_val=.false., lone_keyword_l_val=.true.)
2747 CALL section_add_keyword(print_key, keyword)
2748 CALL keyword_release(keyword)
2749 CALL keyword_create(keyword, __location__, name="stride", &
2750 description="The stride (X,Y,Z) used to write the cube file "// &
2751 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
2752 " 1 number valid for all components.", &
2753 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
2754 CALL section_add_keyword(print_key, keyword)
2755 CALL keyword_release(keyword)
2756 CALL keyword_create(keyword, __location__, name="APPEND", &
2757 description="append the cube files when they already exist", &
2758 default_l_val=.false., lone_keyword_l_val=.true.)
2759 CALL section_add_keyword(print_key, keyword)
2760 CALL keyword_release(keyword)
2761
2762 CALL section_add_subsection(section, print_key)
2763 CALL section_release(print_key)
2764
2765 ! charge introduced by Lagrange multipliers
2766 CALL cp_print_key_section_create(print_key, __location__, "DIRICHLET_CSTR_CHARGE_CUBE", &
2767 description="Controls the printing of cube files with penalty charges induced to "// &
2768 "Dirichlet regions by Lagrange multipliers (implicit Poisson solver).", &
2769 print_level=high_print_level, filename="")
2770
2771 CALL keyword_create(keyword, __location__, name="stride", &
2772 description="The stride (X,Y,Z) used to write the cube file "// &
2773 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
2774 " 1 number valid for all components.", &
2775 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
2776 CALL section_add_keyword(print_key, keyword)
2777 CALL keyword_release(keyword)
2778 CALL keyword_create(keyword, __location__, name="APPEND", &
2779 description="append the cube files when they already exist", &
2780 default_l_val=.false., lone_keyword_l_val=.true.)
2781 CALL section_add_keyword(print_key, keyword)
2782 CALL keyword_release(keyword)
2783
2784 CALL section_add_subsection(section, print_key)
2785 CALL section_release(print_key)
2786
2787 END SUBROUTINE create_implicit_psolver_section
2788
2789! **************************************************************************************************
2790!> \brief creates the interpolation section for the periodic QM/MM
2791!> \param section ...
2792!> \author tlaino
2793! **************************************************************************************************
2794 SUBROUTINE create_gspace_interp_section(section)
2795 TYPE(section_type), POINTER :: section
2796
2797 TYPE(keyword_type), POINTER :: keyword
2798 TYPE(section_type), POINTER :: print_key
2799
2800 cpassert(.NOT. ASSOCIATED(section))
2801 CALL section_create(section, __location__, name="interpolator", &
2802 description="controls the interpolation for the G-space term", &
2803 n_keywords=5, n_subsections=0, repeats=.false.)
2804
2805 NULLIFY (keyword, print_key)
2806
2807 CALL keyword_create(keyword, __location__, name="aint_precond", &
2808 description="the approximate inverse to use to get the starting point"// &
2809 " for the linear solver of the spline3 methods", &
2810 usage="aint_precond copy", &
2811 default_i_val=precond_spl3_aint, &
2812 enum_c_vals=s2a("copy", "spl3_nopbc_aint1", "spl3_nopbc_precond1", &
2813 "spl3_nopbc_aint2", "spl3_nopbc_precond2", "spl3_nopbc_precond3"), &
2816 CALL section_add_keyword(section, keyword)
2817 CALL keyword_release(keyword)
2818
2819 CALL keyword_create(keyword, __location__, name="precond", &
2820 description="The preconditioner used"// &
2821 " for the linear solver of the spline3 methods", &
2822 usage="precond copy", &
2823 default_i_val=precond_spl3_3, &
2824 enum_c_vals=s2a("copy", "spl3_nopbc_aint1", "spl3_nopbc_precond1", &
2825 "spl3_nopbc_aint2", "spl3_nopbc_precond2", "spl3_nopbc_precond3"), &
2828 CALL section_add_keyword(section, keyword)
2829 CALL keyword_release(keyword)
2830
2831 CALL keyword_create(keyword, __location__, name="eps_x", &
2832 description="accuracy on the solution for spline3 the interpolators", &
2833 usage="eps_x 1.e-15", default_r_val=1.e-10_dp)
2834 CALL section_add_keyword(section, keyword)
2835 CALL keyword_release(keyword)
2836
2837 CALL keyword_create(keyword, __location__, name="eps_r", &
2838 description="accuracy on the residual for spline3 the interpolators", &
2839 usage="eps_r 1.e-15", default_r_val=1.e-10_dp)
2840 CALL section_add_keyword(section, keyword)
2841 CALL keyword_release(keyword)
2842
2843 CALL keyword_create(keyword, __location__, name="max_iter", &
2844 variants=['maxiter'], &
2845 description="the maximum number of iterations", &
2846 usage="max_iter 200", default_i_val=100)
2847 CALL section_add_keyword(section, keyword)
2848 CALL keyword_release(keyword)
2849
2850 NULLIFY (print_key)
2851 CALL cp_print_key_section_create(print_key, __location__, "conv_info", &
2852 description="if convergence information about the linear solver"// &
2853 " of the spline methods should be printed", &
2854 print_level=medium_print_level, each_iter_names=s2a("SPLINE_FIND_COEFFS"), &
2855 each_iter_values=[10], filename="__STD_OUT__", &
2856 add_last=add_last_numeric)
2857 CALL section_add_subsection(section, print_key)
2858 CALL section_release(print_key)
2859
2860 END SUBROUTINE create_gspace_interp_section
2861
2862END MODULE input_cp2k_print_dft
integer, parameter, public basis_sort_zet
integer, parameter, public basis_sort_default
collects all references to literature in CP2K as new algorithms / method are included from literature...
integer, save, public vandevondele2005b
integer, save, public blochl1995
integer, save, public guidon2010
integer, save, public vandevondele2003
integer, save, public bengtsson1999
integer, save, public kunert2003
integer, save, public iannuzzi2007
integer, save, public yin2017
integer, save, public stewart2007
integer, save, public holmberg2017
integer, save, public vandevondele2006
integer, save, public golze2017b
integer, save, public caldeweyher2020
integer, save, public krack2002
integer, save, public vandevondele2005a
integer, save, public caldeweyher2019
integer, save, public kuhne2007
integer, save, public golze2017a
integer, save, public schiffmann2015
integer, save, public lippert1999
integer, save, public eriksen2020
integer, save, public dewar1977
integer, save, public avezac2005
integer, save, public vanvoorhis2015
integer, save, public repasky2002
integer, save, public weber2008
integer, save, public andreussi2012
integer, save, public iannuzzi2006
integer, save, public iannuzzi2005
integer, save, public rocha2006
integer, save, public lippert1997
integer, save, public holmberg2018
integer, save, public fattebert2002
integer, save, public andermatt2016
integer, save, public merlot2014
integer, save, public thiel1992
integer, save, public pracht2019
integer, save, public ehrhardt1985
integer, save, public becke1988b
integer, save, public perdew1981
integer, save, public knizia2013
integer, save, public shigeta2001
integer, save, public stewart1982
integer, save, public schenter2008
integer, save, public lu2004
integer, save, public dudarev1997
integer, save, public heinzmann1976
integer, save, public brelaz1979
integer, save, public krack2000
integer, save, public dewar1985
integer, save, public banihashemian2016
integer, save, public stewart1989
integer, save, public brehm2018
integer, save, public kolafa2004
integer, save, public dudarev1998
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 low_print_level
integer, parameter, public medium_print_level
integer, parameter, public high_print_level
integer, parameter, public add_last_numeric
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
utils to manipulate splines on the regular grid of a pw
integer, parameter, public pw_interp
integer, parameter, public spline3_nopbc_interp
integer, parameter, public spline3_pbc_interp
unit conversion facility
Definition cp_units.F:30
real(kind=dp) function, public cp_unit_to_cp2k(value, unit_str, defaults, power)
converts to the internal cp2k units to the given unit
Definition cp_units.F:1149
collects all constants needed in input so that they can be used without circular dependencies
integer, parameter, public use_mom_ref_coac
integer, parameter, public sic_list_unpaired
integer, parameter, public sic_mauri_spz
integer, parameter, public jacobian_fd1_central
integer, parameter, public smear_fermi_dirac
integer, parameter, public e_dens_total_hard_approx
integer, parameter, public xas_1s_type
integer, parameter, public core_guess
integer, parameter, public embed_grid_angstrom
integer, parameter, public bqb_opt_quick
integer, parameter, public do_method_ofgpw
integer, parameter, public do_bch
integer, parameter, public do_admm_purify_mo_no_diag
integer, parameter, public do_etrs
integer, parameter, public do_iaoloc_energy
integer, parameter, public xas_4p_type
integer, parameter, public do_se_lr_ewald_gks
integer, parameter, public mopac_guess
integer, parameter, public oe_saop
integer, parameter, public do_admm_aux_exch_func_opt_libxc
integer, parameter, public do_gapw_gct
integer, parameter, public do_gapw_gcs
integer, parameter, public rel_zora_full
integer, parameter, public ref_charge_atomic
integer, parameter, public xas_3s_type
integer, parameter, public do_pade
integer, parameter, public embed_steep_desc
integer, parameter, public radius_vdw
integer, parameter, public eri_operator_erf
integer, parameter, public outer_scf_optimizer_sd
integer, parameter, public do_s2_restraint
integer, parameter, public do_admm_purify_none
integer, parameter, public orb_dxy
integer, parameter, public do_method_rigpw
integer, parameter, public cholesky_restore
integer, parameter, public do_s2_constraint
integer, parameter, public ot_chol_irac
integer, parameter, public cdft_beta_constraint
integer, parameter, public use_mom_ref_user
integer, parameter, public broyden_type_2_explicit_ls
integer, parameter, public rel_pot_full
integer, parameter, public cdft_magnetization_constraint
integer, parameter, public outer_scf_optimizer_bisect
integer, parameter, public outer_scf_optimizer_secant
integer, parameter, public orb_pz
integer, parameter, public wfi_frozen_method_nr
integer, parameter, public smear_energy_window
integer, parameter, public do_method_gpw
integer, parameter, public ls_3pnt
integer, parameter, public diag_block_krylov
integer, parameter, public qiskit_solver
integer, parameter, public becke_cutoff_element
integer, parameter, public gapw_1c_large
integer, parameter, public do_method_pdg
integer, parameter, public do_admm_purify_none_dm
integer, parameter, public wfi_linear_wf_method_nr
integer, parameter, public no_solver
integer, parameter, public xas_3d_type
integer, parameter, public wfi_linear_p_method_nr
integer, parameter, public outer_scf_cdft_constraint
integer, parameter, public wfi_linear_ps_method_nr
integer, parameter, public do_method_pnnl
integer, parameter, public wannier_projection
integer, parameter, public do_ddapc_constraint
integer, parameter, public mao_projection
integer, parameter, public broyden_type_1_explicit
integer, parameter, public xas_not_excited
integer, parameter, public use_mom_ref_com
integer, parameter, public do_se_lr_none
integer, parameter, public ehrenfest
integer, parameter, public no_guess
integer, parameter, public eri_method_full_gpw
integer, parameter, public wfn_mix_orig_virtual
integer, parameter, public xas_dscf
integer, parameter, public casci_canonical
integer, parameter, public wfi_use_prev_rho_r_method_nr
integer, parameter, public broyden_type_2_ls
integer, parameter, public use_restart_wfn
integer, parameter, public do_admm_purify_mcweeny
integer, parameter, public jacobian_fd2
integer, parameter, public broyden_type_1
integer, parameter, public tddfpt_singlet
integer, parameter, public xas_none
integer, parameter, public do_lri_inv_auto
integer, parameter, public radius_default
integer, parameter, public do_se_lr_ewald
integer, parameter, public outer_scf_optimizer_broyden
integer, parameter, public atomic_guess
integer, parameter, public do_admm_blocking_purify_full
integer, parameter, public plus_u_lowdin
integer, parameter, public broyden_type_1_explicit_ls
integer, parameter, public ot_algo_irac
integer, parameter, public gto_cartesian
integer, parameter, public outer_scf_basis_center_opt
integer, parameter, public gto_spherical
integer, parameter, public cholesky_dbcsr
integer, parameter, public broyden_type_2_explicit
integer, parameter, public kg_tnadd_none
integer, parameter, public do_se_is_kdso_d
integer, parameter, public gapw_1c_medium
integer, parameter, public do_admm_aux_exch_func_sx_libxc
integer, parameter, public xas_4s_type
integer, parameter, public admm2_type
integer, parameter, public xas_tp_xhh
integer, parameter, public outer_scf_s2_constraint
integer, parameter, public manual_selection
integer, parameter, public do_lri_opt_coeff
integer, parameter, public ot_algo_taylor_or_diag
integer, parameter, public sic_list_all
integer, parameter, public wfi_use_guess_method_nr
integer, parameter, public ot_poly_irac
integer, parameter, public history_guess
integer, parameter, public cholesky_off
integer, parameter, public cdft_charge_constraint
integer, parameter, public do_cn
integer, parameter, public smear_list
integer, parameter, public kg_tnadd_embed_ri
integer, parameter, public tddfpt_excitations
integer, parameter, public orb_dz2
integer, parameter, public jacobian_fd1
integer, parameter, public oe_none
integer, parameter, public broyden_type_2
integer, parameter, public kg_tnadd_embed
integer, parameter, public sic_eo
integer, parameter, public xas_2p_type
integer, parameter, public sccs_derivative_cd5
integer, parameter, public ot_mini_cg
integer, parameter, public xas_dip_len
integer, parameter, public do_admm_aux_exch_func_bee
integer, parameter, public bqb_opt_normal
integer, parameter, public ot_precond_full_kinetic
integer, parameter, public cholesky_reduce
integer, parameter, public bqb_opt_off
integer, parameter, public xas_dip_vel
integer, parameter, public rel_zora_mp
integer, parameter, public eri_operator_gaussian
integer, parameter, public mao_basis_orb
integer, parameter, public plus_u_mulliken_charges
integer, parameter, public high_spin_roks
integer, parameter, public tddfpt_lanczos
integer, parameter, public tddfpt_triplet
integer, parameter, public use_scf_wfn
integer, parameter, public cholesky_inverse
integer, parameter, public no_admm_type
integer, parameter, public do_lri_opt_all
integer, parameter, public rel_zora
integer, parameter, public do_admm_blocked_projection
integer, parameter, public kg_tnadd_atomic
integer, parameter, public orb_s
integer, parameter, public ot_mini_diis
integer, parameter, public do_admm_basis_projection
integer, parameter, public do_ppl_grid
integer, parameter, public embed_level_shift
integer, parameter, public wfn_mix_orig_external
integer, parameter, public diag_ot
integer, parameter, public xas_2s_type
integer, parameter, public xas_tp_xfh
integer, parameter, public tddfpt_spin_flip
integer, parameter, public do_method_rm1
integer, parameter, public outer_scf_ddapc_constraint
integer, parameter, public orb_py
integer, parameter, public ot_precond_solver_default
integer, parameter, public do_admm_aux_exch_func_default_libxc
integer, parameter, public xas_tdp_by_kind
integer, parameter, public e_dens_total_density
integer, parameter, public do_admm_aux_exch_func_opt
integer, parameter, public gapw_1c_small
integer, parameter, public do_admm_aux_exch_func_none
integer, parameter, public outer_scf_becke_constraint
integer, parameter, public bqb_opt_exhaustive
integer, parameter, public do_admm_purify_cauchy_subspace
integer, parameter, public do_method_pm3
integer, parameter, public plus_u_mulliken
integer, parameter, public mao_basis_ext
integer, parameter, public radius_user
integer, parameter, public embed_resp
integer, parameter, public kg_color_greedy
integer, parameter, public random_guess
integer, parameter, public xas_3p_type
integer, parameter, public xas_tp_fh
integer, parameter, public do_admm_aux_exch_func_bee_libxc
integer, parameter, public eri_method_gpw_ht
integer, parameter, public xas_tp_flex
integer, parameter, public do_iaoloc_pm4
integer, parameter, public ot_precond_full_single
integer, parameter, public admm1_type
integer, parameter, public do_iaoloc_l1
integer, parameter, public embed_quasi_newton
integer, parameter, public do_admm_aux_exch_func_pbex_libxc
integer, parameter, public do_iaoloc_enone
integer, parameter, public xas_4f_type
integer, parameter, public ot_precond_solver_inv_chol
integer, parameter, public kg_color_dsatur
integer, parameter, public do_lri_opt_exps
integer, parameter, public shape_function_density
integer, parameter, public do_method_mndo
integer, parameter, public outer_scf_hirshfeld_constraint
integer, parameter, public radius_covalent
integer, parameter, public gapw_1c_orb
integer, parameter, public do_admm_aux_exch_func_default
integer, parameter, public do_potential_truncated
integer, parameter, public jacobian_fd1_backward
integer, parameter, public do_pwgrid_ns_fullspace
integer, parameter, public mao_basis_prim
integer, parameter, public gapw_1c_very_large
integer, parameter, public orb_dyz
integer, parameter, public weight_type_unit
integer, parameter, public do_method_gapw
integer, parameter, public ot_precond_none
integer, parameter, public admms_type
integer, parameter, public do_admm_charge_constrained_projection
integer, parameter, public jacobian_fd2_backward
integer, parameter, public eri_operator_erfc
integer, parameter, public ls_2pnt
integer, parameter, public rel_dkh
integer, parameter, public ls_none
integer, parameter, public do_admm_purify_cauchy
integer, parameter, public embed_none
integer, parameter, public do_iaoloc_pm2
integer, parameter, public embed_fa
integer, parameter, public ot_precond_full_single_inverse
integer, parameter, public sccs_fattebert_gygi
integer, parameter, public do_potential_id
integer, parameter, public rel_trans_full
integer, parameter, public sccs_derivative_cd7
integer, parameter, public rel_trans_molecule
integer, parameter, public ot_lwdn_irac
integer, parameter, public xas_4d_type
integer, parameter, public tddfpt_davidson
integer, parameter, public diag_filter_matrix
integer, parameter, public do_lri_pseudoinv_svd
integer, parameter, public do_method_mndod
integer, parameter, public rel_trans_atom
integer, parameter, public ls_gold
integer, parameter, public do_gapw_log
integer, parameter, public do_method_am1
integer, parameter, public embed_diff
integer, parameter, public weight_type_mass
integer, parameter, public use_rt_restart
integer, parameter, public xas_tdp_by_index
integer, parameter, public do_method_dftb
integer, parameter, public do_iaoloc_occ
integer, parameter, public sparse_guess
integer, parameter, public orb_px
integer, parameter, public diag_block_davidson
integer, parameter, public shape_function_gaussian
integer, parameter, public wfi_use_prev_wf_method_nr
integer, parameter, public radius_single
integer, parameter, public do_spin_density
integer, parameter, public sccs_derivative_fft
integer, parameter, public use_mom_ref_zero
integer, parameter, public outer_scf_optimizer_newton_ls
integer, parameter, public do_potential_coulomb
integer, parameter, public gaussian
integer, parameter, public outer_scf_optimizer_none
integer, parameter, public outer_scf_optimizer_newton
integer, parameter, public oe_lb
integer, parameter, public rel_pot_erfc
integer, parameter, public wfi_ps_method_nr
integer, parameter, public rel_none
integer, parameter, public do_pwgrid_spherical
integer, parameter, public ref_charge_mulliken
integer, parameter, public general_roks
integer, parameter, public orb_dzx
integer, parameter, public xas_tp_hh
integer, parameter, public do_se_lr_ewald_r3
integer, parameter, public do_taylor
integer, parameter, public eri_operator_trunc
integer, parameter, public do_se_is_kdso
integer, parameter, public embed_grid_bohr
integer, parameter, public outer_scf_none
integer, parameter, public do_admm_purify_mo_diag
integer, parameter, public do_method_lrigpw
integer, parameter, public diag_standard
integer, parameter, public do_em
integer, parameter, public sic_mauri_us
integer, parameter, public orb_dy2
integer, parameter, public do_potential_short
integer, parameter, public sic_none
integer, parameter, public do_ppl_analytic
integer, parameter, public do_se_is_slater
integer, parameter, public eri_operator_coulomb
integer, parameter, public becke_cutoff_global
integer, parameter, public wfi_aspc_nr
integer, parameter, public cdft_alpha_constraint
integer, parameter, public do_lri_inv
integer, parameter, public do_method_xtb
integer, parameter, public broyden_type_1_ls
integer, parameter, public do_ddapc_restraint
integer, parameter, public wfn_mix_orig_occ
integer, parameter, public restart_guess
integer, parameter, public oe_sic
integer, parameter, public bqb_opt_patient
integer, parameter, public do_pwgrid_ns_halfspace
integer, parameter, public eri_operator_yukawa
integer, parameter, public sccs_derivative_cd3
integer, parameter, public do_method_pm6fm
integer, parameter, public rel_sczora_mp
integer, parameter, public tddfpt_spin_cons
integer, parameter, public admmq_type
integer, parameter, public e_dens_soft_density
integer, parameter, public sccs_andreussi
integer, parameter, public ot_precond_s_inverse
integer, parameter, public sic_ad
integer, parameter, public ot_mini_broyden
integer, parameter, public do_admm_exch_scaling_none
integer, parameter, public orb_dx2
integer, parameter, public do_arnoldi
integer, parameter, public ot_precond_solver_update
integer, parameter, public xes_tp_val
integer, parameter, public do_full_density
integer, parameter, public admmp_type
integer, parameter, public do_method_gapw_xc
integer, parameter, public outer_scf_optimizer_diis
integer, parameter, public ot_mini_sd
integer, parameter, public do_admm_exch_scaling_merlot
integer, parameter, public real_time_propagation
integer, parameter, public numerical
integer, parameter, public do_method_pm6
integer, parameter, public oe_gllb
integer, parameter, public ot_precond_full_all
integer, parameter, public ot_precond_solver_direct
integer, parameter, public wfi_use_prev_p_method_nr
integer, parameter, public no_excitations
integer, parameter, public do_lri_pseudoinv_diag
integer, parameter, public do_admm_aux_exch_func_pbex
integer, parameter, public slater
input for the ALMO SCF section
subroutine, public create_almo_scf_section(section)
create the almo scf section
function that builds the distribution section of the input
subroutine, public create_distribution_section(section)
Creates the distribution section.
function that build the dft section of the input
subroutine, public create_ec_section(section)
creates the ENERGY CORRECTION section
Excited state input section.
subroutine, public create_exstate_section(section)
creates the EXCITED ENERGY section
function that build the input sections for external [potential, density VXC]
subroutine, public create_ext_pot_section(section)
Creates the section for applying an electrostatic external potential.
subroutine, public create_ext_vxc_section(section)
ZMP Creates the section for creating the external v_xc.
subroutine, public create_ext_den_section(section)
ZMP Creates the section for reading user supplied external density.
function that build the field section of the input
subroutine, public create_efield_section(section)
creates the section for time dependent nonperiodic fields
subroutine, public create_per_efield_section(section)
creates the section for static periodic fields
function that build the kpoints section of the input
subroutine, public create_kpoint_set_section(section, section_name)
...
subroutine, public create_localize_section(section)
parameters fo the localization of wavefunctions
subroutine, public print_wanniers(section)
Controls the printing of the basic info coming from the LOCALIZE section.
input for the linear scaling (LS) section
subroutine, public create_ls_scf_section(section)
creates the linear scaling scf section
creates the mm section of the input
subroutine, public create_dipoles_section(print_key, label, print_level)
creates the input section for the qs part
subroutine, public create_neighbor_lists_section(section)
This section specifies the input parameters for generation of neighbor lists.
function that build the poisson section of the input
subroutine, public create_poisson_section(section)
Creates the Poisson section.
subroutine, public create_gspace_interp_section(section)
creates the interpolation section for the periodic QM/MM
function that build the print section of the dft input
subroutine, public create_print_dft_section(section)
Create the print dft section.
subroutine, public create_pdos_section(print_key)
...
function that builds the projection of MO in RTP section of the input
subroutine, public create_projection_rtp_section(section)
creates the section for time dependent projection of the MOs
subroutine, public create_rsgrid_section(section)
...
function that build the scf section of the input
subroutine, public create_scf_section(section)
creates the structure of the section with the DFT SCF parameters
subroutine, public create_cdft_control_section(section)
Creates the input section for defining CDFT constraints.
function that build the dft section of the input
subroutine, public create_dftb_control_section(section)
...
subroutine, public create_xtb_control_section(section)
...
input section for NEGF based quantum transport calculations (integration with the quantum transport c...
subroutine, public create_transport_section(section)
creates the TRANSPORT section
function that build the dft section of the input
subroutine, public create_print_voronoi_section(print_key)
Create the print voronoi section.
function that build the xc section of the input
subroutine, public create_xc_section(section)
creates the input section for the xc part
subroutine, public create_xc_fun_section(section)
creates the structure of the section needed to select the xc functional
represents keywords in an input
subroutine, public keyword_release(keyword)
releases the given keyword (see doc/ReferenceCounting.html)
subroutine, public keyword_create(keyword, location, name, description, usage, type_of_var, n_var, repeats, variants, default_val, default_l_val, default_r_val, default_lc_val, default_c_val, default_i_val, default_l_vals, default_r_vals, default_c_vals, default_i_vals, lone_keyword_val, lone_keyword_l_val, lone_keyword_r_val, lone_keyword_c_val, lone_keyword_i_val, lone_keyword_l_vals, lone_keyword_r_vals, lone_keyword_c_vals, lone_keyword_i_vals, enum_c_vals, enum_i_vals, enum, enum_strict, enum_desc, unit_str, citations, deprecation_notice, removed)
creates a keyword object
objects that represent the structure of input sections and the data contained in an input section
subroutine, public section_create(section, location, name, description, n_keywords, n_subsections, repeats, citations, deprecation_notice)
creates a list of keywords
subroutine, public section_add_keyword(section, keyword)
adds a keyword to the given section
subroutine, public section_add_subsection(section, subsection)
adds a subsection to the given section
recursive subroutine, public section_release(section)
releases the given keyword list (see doc/ReferenceCounting.html)
a wrapper for basic fortran types.
integer, parameter, public real_t
integer, parameter, public 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
This module defines the grid data type and some basic operations on it.
Definition pw_grids.F:36
integer, parameter, public do_pw_grid_blocked_false
Definition pw_grids.F:77
integer, parameter, public do_pw_grid_blocked_true
Definition pw_grids.F:77
integer, parameter, public do_pw_grid_blocked_free
Definition pw_grids.F:77
different utils that are useful to manipulate splines on the regular grid of a pw
integer, parameter, public precond_spl3_3
integer, parameter, public precond_spl3_aint
integer, parameter, public no_precond
integer, parameter, public precond_spl3_2
integer, parameter, public precond_spl3_aint2
integer, parameter, public precond_spl3_1
module that contains the definitions of the scf types
subroutine, public create_mixing_section(section, ls_scf)
Create CP2K input section for the mixing of the density matrix to be used only with diagonalization m...
subroutine, public create_filtermatrix_section(section)
Input section for filter matrix diagonalisation method.
Definition qs_fb_input.F:37
manage control variables for the maximum overlap method
subroutine, public create_mom_section(section)
Create CP2K input section for variable occupancy using the Maximum Overlap Method....
Utilities for string manipulations.
character(len=1), parameter, public newline
represent a keyword in the input
represent a section of the input file