(git:916bf6e)
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, &
1107 use_mom_ref_zero/), &
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"), &
1213 enum_i_vals=(/ref_charge_atomic, ref_charge_mulliken/))
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)"), &
1261 enum_i_vals=(/mao_basis_orb, mao_basis_prim, mao_basis_ext/))
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 ! interaction adjacency matrix
1762 CALL cp_print_key_section_create(print_key, __location__, "ADJMAT_WRITE", &
1763 description="Writes an (upper-triangular) adjacency matrix indicating the "// &
1764 "interaction between atoms (according to overlapping basis functions). The "// &
1765 "columns are: iatom, jatom, ikind, jkind; where iatom and jatom are the atom "// &
1766 "indices (based on the coordinate file), ikind and jkind are the atomic kinds "// &
1767 "(indeces as shown in the ATOMIC KIND INFORMATION section of a CP2K output). ", &
1768 print_level=debug_print_level, filename="")
1769 CALL section_add_subsection(section, print_key)
1770 CALL section_release(print_key)
1771
1772 ! Xray diffraction
1774 print_key, __location__, name="XRAY_DIFFRACTION_SPECTRUM", &
1775 description="Calculate and print the coherent X-ray "// &
1776 "diffraction spectrum", &
1777 print_level=debug_print_level, &
1778 filename="", &
1779 citations=(/krack2000, krack2002/))
1780 CALL keyword_create( &
1781 keyword, __location__, &
1782 name="Q_MAX", &
1783 variants=(/"Q_MAXIMUM"/), &
1784 description="Maximum Q value calculated for the spectrum", &
1785 usage="Q_MAX {real}", &
1786 repeats=.false., &
1787 n_var=1, &
1788 type_of_var=real_t, &
1789 default_r_val=cp_unit_to_cp2k(value=20.0_dp, &
1790 unit_str="angstrom^-1"), &
1791 unit_str="angstrom^-1")
1792 CALL section_add_keyword(print_key, keyword)
1793 CALL keyword_release(keyword)
1794 CALL section_add_subsection(section, print_key)
1795 CALL section_release(print_key)
1796
1797 CALL cp_print_key_section_create(print_key, __location__, name="ELECTRIC_FIELD_GRADIENT", &
1798 description="Calculate and print the electric field gradients "// &
1799 "at atomic positions", &
1800 print_level=debug_print_level, &
1801 filename="__STD_OUT__")
1802
1803 CALL keyword_create(keyword, __location__, &
1804 name="INTERPOLATION", &
1805 description="Use interpolation method from real space grid", &
1806 usage="INTERPOLATION {logical}", &
1807 repeats=.false., &
1808 n_var=1, &
1809 default_l_val=.false., lone_keyword_l_val=.true.)
1810 CALL section_add_keyword(print_key, keyword)
1811 CALL keyword_release(keyword)
1812
1813 CALL keyword_create(keyword, __location__, &
1814 name="GSPACE_SMOOTHING", &
1815 description="Use a G-space smoothing function", &
1816 usage="GSPACE_SMOOTHING cutoff {real}, width {real}", &
1817 repeats=.false., &
1818 n_var=2, default_r_vals=(/-1._dp, -1._dp/), &
1819 type_of_var=real_t)
1820 CALL section_add_keyword(print_key, keyword)
1821 CALL keyword_release(keyword)
1822
1823 CALL keyword_create(keyword, __location__, &
1824 name="DEBUG", &
1825 description="Print additional debug output", &
1826 usage="DEBUG {logical}", &
1827 repeats=.false., &
1828 n_var=1, &
1829 default_l_val=.false., lone_keyword_l_val=.true.)
1830 CALL section_add_keyword(print_key, keyword)
1831 CALL keyword_release(keyword)
1832
1833 CALL create_gspace_interp_section(subsection)
1834 CALL section_add_subsection(print_key, subsection)
1835 CALL section_release(subsection)
1836
1837 CALL section_add_subsection(section, print_key)
1838 CALL section_release(print_key)
1839
1840 CALL cp_print_key_section_create(print_key, __location__, name="BASIS_MOLOPT_QUANTITIES", &
1841 description="Print the two quantities needed in the basis molopt generation:"// &
1842 " total energy and condition number of the overlap matrix (S matrix)", &
1843 print_level=debug_print_level, &
1844 filename="__STD_OUT__")
1845 CALL section_add_subsection(section, print_key)
1846 CALL section_release(print_key)
1847
1848 CALL cp_print_key_section_create(print_key, __location__, name="HYPERFINE_COUPLING_TENSOR", &
1849 description="Calculate and print the EPR hyperfine coupling tensor"// &
1850 " at atomic positions", &
1851 print_level=debug_print_level, &
1852 filename="__STD_OUT__")
1853
1854 CALL keyword_create(keyword, __location__, &
1855 name="INTERACTION_RADIUS", &
1856 description="Radius of interaction for EPR hyperfine tensor calculation", &
1857 usage="INTERACTION_RADIUS radius {real}", &
1858 repeats=.false., &
1859 n_var=1, default_r_val=10._dp, &
1860 type_of_var=real_t)
1861 CALL section_add_keyword(print_key, keyword)
1862 CALL keyword_release(keyword)
1863
1864 CALL section_add_subsection(section, print_key)
1865 CALL section_release(print_key)
1866
1867 CALL cp_print_key_section_create(print_key, __location__, name="OPTIMIZE_LRI_BASIS", &
1868 description="Optimize the exponents of the LRI basis set", &
1869 print_level=low_print_level, &
1870 filename="OPTIMIZED_LRI_BASIS")
1871 CALL section_add_subsection(section, print_key)
1872 CALL section_release(print_key)
1873
1875 print_key, __location__, name="PLUS_U", &
1876 description="Controls the printing for the DFT+U methods", &
1877 print_level=high_print_level, &
1878 filename="__STD_OUT__", &
1879 each_iter_names=s2a("QS_SCF"), &
1880 each_iter_values=(/0/), &
1881 citations=(/dudarev1997, dudarev1998/))
1882 CALL section_add_subsection(section, print_key)
1883 CALL section_release(print_key)
1884
1886 print_key, __location__, name="CHARGEMOL", &
1887 description="Write .wfx input file for Chargemol", &
1888 print_level=debug_print_level + 1, &
1889 filename="CHARGEMOL", &
1890 add_last=add_last_numeric)
1891 CALL keyword_create(keyword, __location__, name="BACKUP_COPIES", &
1892 description="Specifies the maximum number of backup copies.", &
1893 usage="BACKUP_COPIES {int}", &
1894 default_i_val=1)
1895 CALL section_add_keyword(print_key, keyword)
1896 CALL keyword_release(keyword)
1897 CALL keyword_create(keyword, __location__, name="PERIODIC", &
1898 description="Write information about cell periodicity.", &
1899 usage="PERIODIC {LOGICAL}", &
1900 default_l_val=.false., lone_keyword_l_val=.true.)
1901 CALL section_add_keyword(print_key, keyword)
1902 CALL keyword_release(keyword)
1903 CALL section_add_subsection(section, print_key)
1904 CALL section_release(print_key)
1905
1907 print_key, __location__, name="SCCS", &
1908 description="Controls the printing for the SCCS models", &
1909 print_level=high_print_level, &
1910 filename="__STD_OUT__", &
1911 each_iter_names=s2a("QS_SCF"), &
1912 each_iter_values=(/0/), &
1913 citations=(/fattebert2002, andreussi2012, yin2017/))
1914
1915 NULLIFY (sub_print_key)
1916
1918 sub_print_key, __location__, name="DENSITY_GRADIENT", &
1919 description="Controls the printing of the cube files with "// &
1920 "the norm of the density gradient |&nabla;&rho;| "// &
1921 "used by the SCCS model.", &
1922 print_level=debug_print_level, &
1923 filename="", &
1924 each_iter_names=s2a("QS_SCF"), &
1925 each_iter_values=(/0/))
1926 CALL keyword_create(keyword, __location__, name="STRIDE", &
1927 description="The stride (X,Y,Z) used to write the cube file "// &
1928 "(larger values result in smaller cube files). You can provide 3 "// &
1929 "numbers (for X,Y,Z) or 1 number valid for all components.", &
1930 n_var=-1, &
1931 default_i_vals=(/2, 2, 2/), &
1932 type_of_var=integer_t, &
1933 repeats=.false.)
1934 CALL section_add_keyword(sub_print_key, keyword)
1935 CALL keyword_release(keyword)
1936 CALL keyword_create(keyword, __location__, name="APPEND", &
1937 description="Append the cube files when they already exist", &
1938 default_l_val=.false., &
1939 lone_keyword_l_val=.true., &
1940 repeats=.false.)
1941 CALL section_add_keyword(sub_print_key, keyword)
1942 CALL keyword_release(keyword)
1943 CALL section_add_subsection(print_key, sub_print_key)
1944 CALL section_release(sub_print_key)
1945
1947 sub_print_key, __location__, name="DIELECTRIC_FUNCTION", &
1948 description="Controls the printing of the cube files with "// &
1949 "the dielectric function used by the SCCS model. "// &
1950 "This function determines the cavity formed by a solute in "// &
1951 "a solvent and thus it can be used for the visualisaton of the cavity.", &
1952 print_level=debug_print_level, &
1953 filename="", &
1954 each_iter_names=s2a("QS_SCF"), &
1955 each_iter_values=(/0/), &
1956 citations=(/fattebert2002, andreussi2012, yin2017/))
1957 CALL keyword_create(keyword, __location__, name="STRIDE", &
1958 description="The stride (X,Y,Z) used to write the cube file "// &
1959 "(larger values result in smaller cube files). You can provide 3 "// &
1960 "numbers (for X,Y,Z) or 1 number valid for all components.", &
1961 n_var=-1, &
1962 default_i_vals=(/2, 2, 2/), &
1963 type_of_var=integer_t, &
1964 repeats=.false.)
1965 CALL section_add_keyword(sub_print_key, keyword)
1966 CALL keyword_release(keyword)
1967 CALL keyword_create(keyword, __location__, name="APPEND", &
1968 description="Append the cube files when they already exist", &
1969 default_l_val=.false., &
1970 lone_keyword_l_val=.true., &
1971 repeats=.false.)
1972 CALL section_add_keyword(sub_print_key, keyword)
1973 CALL keyword_release(keyword)
1974 CALL section_add_subsection(print_key, sub_print_key)
1975 CALL section_release(sub_print_key)
1976
1978 sub_print_key, __location__, name="TOTAL_CHARGE_DENSITY", &
1979 description="Controls the printing of the cube files with the "// &
1980 "total charge density $\rho^\text{tot}$ used by the SCCS model.", &
1981 print_level=debug_print_level, &
1982 filename="", &
1983 each_iter_names=s2a("QS_SCF"), &
1984 each_iter_values=(/0/), &
1985 citations=(/fattebert2002, andreussi2012, yin2017/))
1986 CALL keyword_create(keyword, __location__, name="STRIDE", &
1987 description="The stride (X,Y,Z) used to write the cube file "// &
1988 "(larger values result in smaller cube files). You can provide 3 "// &
1989 "numbers (for X,Y,Z) or 1 number valid for all components.", &
1990 n_var=-1, &
1991 default_i_vals=(/2, 2, 2/), &
1992 type_of_var=integer_t, &
1993 repeats=.false.)
1994 CALL section_add_keyword(sub_print_key, keyword)
1995 CALL keyword_release(keyword)
1996 CALL keyword_create(keyword, __location__, name="APPEND", &
1997 description="Append the cube files when they already exist", &
1998 default_l_val=.false., &
1999 lone_keyword_l_val=.true., &
2000 repeats=.false.)
2001 CALL section_add_keyword(sub_print_key, keyword)
2002 CALL keyword_release(keyword)
2003 CALL section_add_subsection(print_key, sub_print_key)
2004 CALL section_release(sub_print_key)
2005
2007 sub_print_key, __location__, name="POLARISATION_CHARGE_DENSITY", &
2008 description="Controls the printing of the cube files with the "// &
2009 "polarisation charge density $\rho^\text{pol}$ used by the SCCS model with the "// &
2010 "total charge density $\rho^\text{tot} = \rho^\text{sol} + \rho^\text{pol}", &
2011 print_level=debug_print_level, &
2012 filename="", &
2013 each_iter_names=s2a("QS_SCF"), &
2014 each_iter_values=(/0/), &
2015 citations=(/fattebert2002, andreussi2012, yin2017/))
2016 CALL keyword_create(keyword, __location__, name="STRIDE", &
2017 description="The stride (X,Y,Z) used to write the cube file "// &
2018 "(larger values result in smaller cube files). You can provide 3 "// &
2019 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2020 n_var=-1, &
2021 default_i_vals=(/2, 2, 2/), &
2022 type_of_var=integer_t, &
2023 repeats=.false.)
2024 CALL section_add_keyword(sub_print_key, keyword)
2025 CALL keyword_release(keyword)
2026 CALL keyword_create(keyword, __location__, name="APPEND", &
2027 description="Append the cube files when they already exist", &
2028 default_l_val=.false., &
2029 lone_keyword_l_val=.true., &
2030 repeats=.false.)
2031 CALL section_add_keyword(sub_print_key, keyword)
2032 CALL keyword_release(keyword)
2033 CALL section_add_subsection(print_key, sub_print_key)
2034 CALL section_release(sub_print_key)
2035
2037 sub_print_key, __location__, name="POLARISATION_POTENTIAL", &
2038 description="Controls the printing of the cube files with the "// &
2039 "polarisation potential $\phi^\text{pol}$ used by the SCCS model with the "// &
2040 "total potential $\phi^\text{tot} = \phi^\text{sol} + \phi^\text{pol}$", &
2041 print_level=debug_print_level, &
2042 filename="", &
2043 each_iter_names=s2a("QS_SCF"), &
2044 each_iter_values=(/0/), &
2045 citations=(/fattebert2002, andreussi2012, yin2017/))
2046 CALL keyword_create(keyword, __location__, name="STRIDE", &
2047 description="The stride (X,Y,Z) used to write the cube file "// &
2048 "(larger values result in smaller cube files). You can provide 3 "// &
2049 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2050 n_var=-1, &
2051 default_i_vals=(/2, 2, 2/), &
2052 type_of_var=integer_t, &
2053 repeats=.false.)
2054 CALL section_add_keyword(sub_print_key, keyword)
2055 CALL keyword_release(keyword)
2056 CALL keyword_create(keyword, __location__, name="APPEND", &
2057 description="Append the cube files when they already exist", &
2058 default_l_val=.false., &
2059 lone_keyword_l_val=.true., &
2060 repeats=.false.)
2061 CALL section_add_keyword(sub_print_key, keyword)
2062 CALL keyword_release(keyword)
2063 CALL section_add_subsection(print_key, sub_print_key)
2064 CALL section_release(sub_print_key)
2065
2066 CALL section_add_subsection(section, print_key)
2067 CALL section_release(print_key)
2068
2069 END SUBROUTINE create_print_dft_section
2070
2071! **************************************************************************************************
2072!> \brief ...
2073!> \param section ...
2074!> \author JGH
2075! **************************************************************************************************
2076 SUBROUTINE create_bandstructure_section(section)
2077 TYPE(section_type), POINTER :: section
2078
2079 TYPE(keyword_type), POINTER :: keyword
2080 TYPE(section_type), POINTER :: subsection
2081
2082 cpassert(.NOT. ASSOCIATED(section))
2083 CALL section_create(section, __location__, name="BAND_STRUCTURE", &
2084 description="Specifies the k-points used in band structure calculation.", &
2085 n_keywords=0, n_subsections=0, repeats=.false.)
2086
2087 NULLIFY (keyword)
2088 CALL keyword_create(keyword, __location__, name="FILE_NAME", &
2089 description="File name used for band structure", &
2090 usage="FILE_NAME <filename>", default_c_val="", &
2091 type_of_var=char_t, n_var=1)
2092 CALL section_add_keyword(section, keyword)
2093 CALL keyword_release(keyword)
2094
2095 CALL keyword_create(keyword, __location__, name="ADDED_MOS", &
2096 variants=(/"ADDED_BANDS"/), &
2097 description="Number of MOs/Bands added to the Band Structure calculation.", &
2098 default_i_val=0)
2099 CALL section_add_keyword(section, keyword)
2100 CALL keyword_release(keyword)
2101
2102 NULLIFY (subsection)
2103 CALL create_kpoint_set_section(subsection)
2104 CALL section_add_subsection(section, subsection)
2105 CALL section_release(subsection)
2106
2107 END SUBROUTINE create_bandstructure_section
2108
2109! **************************************************************************************************
2110!> \brief creates the input section for dealing with homo lumos, including dumping cubes
2111!> \param print_key ...
2112! **************************************************************************************************
2113 SUBROUTINE create_mo_cubes_section(print_key)
2114 TYPE(section_type), POINTER :: print_key
2115
2116 TYPE(keyword_type), POINTER :: keyword
2117
2118 NULLIFY (keyword)
2119
2120 CALL cp_print_key_section_create(print_key, __location__, "MO_CUBES", &
2121 description="Controls the printing of the molecular orbitals (MOs) as cube files."// &
2122 " It can be used during a Real Time calculation to print the MOs."// &
2123 " In this case, the density corresponding to the time dependent MO is printed"// &
2124 " instead of the wave-function.", &
2125 print_level=high_print_level, filename="")
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 numbers (for X,Y,Z) or"// &
2129 " 1 number valid for all components.", &
2130 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=(/2, 2, 2/), type_of_var=integer_t)
2131 CALL section_add_keyword(print_key, keyword)
2132 CALL keyword_release(keyword)
2133
2134 CALL keyword_create(keyword, __location__, name="write_cube", &
2135 description="If the MO cube file should be written. If false, the eigenvalues are still computed."// &
2136 " Can also be useful in combination with STM calculations", &
2137 default_l_val=.true., lone_keyword_l_val=.true.)
2138 CALL section_add_keyword(print_key, keyword)
2139 CALL keyword_release(keyword)
2140
2141 CALL keyword_create(keyword, __location__, name="nlumo", &
2142 description="If the printkey is activated controls the number of lumos"// &
2143 " that are printed and dumped as a cube (-1=all)", &
2144 default_i_val=0)
2145 CALL section_add_keyword(print_key, keyword)
2146 CALL keyword_release(keyword)
2147 CALL keyword_create( &
2148 keyword, __location__, name="nhomo", &
2149 description="If the printkey is activated controls the number of homos that dumped as a cube (-1=all),"// &
2150 " eigenvalues are always all dumped", &
2151 default_i_val=1)
2152 CALL section_add_keyword(print_key, keyword)
2153 CALL keyword_release(keyword)
2154
2155 CALL keyword_create( &
2156 keyword, __location__, name="homo_list", &
2157 description="If the printkey is activated controls the index of homos dumped as a cube,"// &
2158 " eigenvalues are always all dumped. It overrides nhomo.", &
2159 usage="HOMO_LIST {integer} {integer} .. {integer} ", type_of_var=integer_t, &
2160 n_var=-1, repeats=.true.)
2161 CALL section_add_keyword(print_key, keyword)
2162 CALL keyword_release(keyword)
2163
2164 CALL keyword_create(keyword, __location__, name="APPEND", &
2165 description="append the cube files when they already exist", &
2166 default_l_val=.false., lone_keyword_l_val=.true.)
2167 CALL section_add_keyword(print_key, keyword)
2168 CALL keyword_release(keyword)
2169
2170 END SUBROUTINE create_mo_cubes_section
2171
2172! **************************************************************************************************
2173!> \brief ...
2174!> \param print_key ...
2175! **************************************************************************************************
2176 SUBROUTINE create_dos_section(print_key)
2177
2178 TYPE(section_type), POINTER :: print_key
2179
2180 TYPE(keyword_type), POINTER :: keyword
2181
2182 NULLIFY (keyword)
2183
2184 CALL cp_print_key_section_create(print_key, __location__, "DOS", &
2185 description="Print Density of States (DOS) (only available states from SCF)", &
2186 print_level=debug_print_level, common_iter_levels=1, filename="")
2187
2188 CALL keyword_create(keyword, __location__, name="APPEND", &
2189 description="Append the DOS obtained at different iterations to the output file. "// &
2190 "By default the file is overwritten", &
2191 usage="APPEND", default_l_val=.false., &
2192 lone_keyword_l_val=.true.)
2193 CALL section_add_keyword(print_key, keyword)
2194 CALL keyword_release(keyword)
2195
2196 CALL keyword_create(keyword, __location__, name="DELTA_E", &
2197 description="Histogramm energy spacing.", &
2198 usage="DELTA_E 0.0005", type_of_var=real_t, default_r_val=0.001_dp)
2199 CALL section_add_keyword(print_key, keyword)
2200 CALL keyword_release(keyword)
2201
2202 CALL keyword_create(keyword, __location__, name="NDIGITS", &
2203 description="Specify the number of digits used to print density and occupation", &
2204 default_i_val=4)
2205 CALL section_add_keyword(print_key, keyword)
2206 CALL keyword_release(keyword)
2207
2208 CALL keyword_create(keyword, __location__, name="MP_GRID", &
2209 description="Specify a Monkhorst-Pack grid with which to compute the density of states. "// &
2210 "Works only for a k-point calculation", &
2211 usage="MP_GRID {integer} {integer} {integer}", default_i_vals=(/-1/), &
2212 n_var=3, type_of_var=integer_t)
2213 CALL section_add_keyword(print_key, keyword)
2214 CALL keyword_release(keyword)
2215
2216 END SUBROUTINE create_dos_section
2217
2218! **************************************************************************************************
2219!> \brief ...
2220!> \param print_key ...
2221! **************************************************************************************************
2222 SUBROUTINE create_pdos_section(print_key)
2223
2224 TYPE(section_type), POINTER :: print_key
2225
2226 TYPE(keyword_type), POINTER :: keyword
2227 TYPE(section_type), POINTER :: subsection
2228
2229 NULLIFY (subsection)
2230 NULLIFY (keyword)
2231
2232 CALL cp_print_key_section_create(print_key, __location__, "PDOS", &
2233 description="Print out the DOS projected per kind and angular momentum ", &
2234 print_level=debug_print_level, common_iter_levels=1, filename="")
2235 CALL keyword_create(keyword, __location__, name="COMPONENTS", &
2236 description="Print out PDOS distinguishing all angular momentum components.", &
2237 usage="COMPONENTS", default_l_val=.false., &
2238 lone_keyword_l_val=.true.)
2239 CALL section_add_keyword(print_key, keyword)
2240 CALL keyword_release(keyword)
2241 CALL keyword_create(keyword, __location__, name="APPEND", &
2242 description="Append the PDOS obtained at different iterations to the PDOS output file. "// &
2243 "By default the file is overwritten", &
2244 usage="APPEND", default_l_val=.false., &
2245 lone_keyword_l_val=.true.)
2246 CALL section_add_keyword(print_key, keyword)
2247 CALL keyword_release(keyword)
2248 CALL keyword_create( &
2249 keyword, __location__, name="NLUMO", &
2250 description="Number of virtual orbitals to be added to the MO set (-1=all)."//newline// &
2251 "CAUTION: Setting this value to be higher than the "// &
2252 "number of states present may cause a Cholesky error."//newline// &
2253 "This keyword only applies to MO sets, not to XAS_TDP states.", &
2254 usage="NLUMO integer", default_i_val=0)
2255 CALL section_add_keyword(print_key, keyword)
2256 CALL keyword_release(keyword)
2257 CALL keyword_create(keyword, __location__, name="OUT_EACH_STATE", &
2258 variants=(/"OUT_EACH_MO"/), &
2259 description="Output on the status of the calculation every OUT_EACH_MO states. If -1 no output", &
2260 usage="OUT_EACH_STATE integer", default_i_val=-1)
2261 CALL section_add_keyword(print_key, keyword)
2262 CALL keyword_release(keyword)
2263
2264 CALL section_create(subsection, __location__, name="LDOS", &
2265 description="Controls the printing of local PDOS, projected on subsets"// &
2266 " of atoms given through lists", &
2267 n_keywords=4, n_subsections=0, repeats=.true.)
2268 CALL keyword_create(keyword, __location__, name="COMPONENTS", &
2269 description="Print out PDOS distinguishing all angular momentum components.", &
2270 usage="COMPONENTS", default_l_val=.false., &
2271 lone_keyword_l_val=.true.)
2272 CALL section_add_keyword(subsection, keyword)
2273 CALL keyword_release(keyword)
2274
2275 CALL keyword_create(keyword, __location__, name="LIST", &
2276 description="Specifies a list of indexes of atoms where to project the DOS ", &
2277 usage="LIST {integer} {integer} .. {integer} ", type_of_var=integer_t, &
2278 n_var=-1, repeats=.true.)
2279 CALL section_add_keyword(subsection, keyword)
2280 CALL keyword_release(keyword)
2281
2282 CALL section_add_subsection(print_key, subsection)
2283 CALL section_release(subsection)
2284
2285 CALL section_create(subsection, __location__, name="R_LDOS", &
2286 description="Controls the printing of local PDOS, projected on 3D volume in real space,"// &
2287 " the volume is defined in terms of position with respect to atoms in the lists", &
2288 n_keywords=4, n_subsections=0, repeats=.true.)
2289
2290 CALL keyword_create(keyword, __location__, name="LIST", &
2291 description="Specifies a list of indexes of atoms used to define the real space volume ", &
2292 usage="LIST {integer} {integer} .. {integer} ", type_of_var=integer_t, &
2293 n_var=-1, repeats=.true.)
2294 CALL section_add_keyword(subsection, keyword)
2295 CALL keyword_release(keyword)
2296
2297 CALL keyword_create(keyword, __location__, name="XRANGE", &
2298 description="range of positions in Cartesian direction x: all grid points within "// &
2299 "this range from at least one atom of the list are considered", &
2300 usage="XRANGE -10.0 10.0", unit_str="angstrom", n_var=2, type_of_var=real_t)
2301 CALL section_add_keyword(subsection, keyword)
2302 CALL keyword_release(keyword)
2303 CALL keyword_create(keyword, __location__, name="YRANGE", &
2304 description="range of positions in Cartesian direction y: all grid points within "// &
2305 "this range from at least one atom of the list are considered", &
2306 usage="YRANGE -10.0 10.0", unit_str="angstrom", n_var=2, type_of_var=real_t)
2307 CALL section_add_keyword(subsection, keyword)
2308 CALL keyword_release(keyword)
2309 CALL keyword_create(keyword, __location__, name="ZRANGE", &
2310 description="range of positions in Cartesian direction z: all grid points within "// &
2311 "this range from at least one atom of the list are considered", &
2312 usage="ZRANGE -10.0 10.0", unit_str="angstrom", n_var=2, type_of_var=real_t)
2313 CALL section_add_keyword(subsection, keyword)
2314 CALL keyword_release(keyword)
2315
2316 CALL keyword_create(keyword, __location__, name="ERANGE", &
2317 description="Only project states with the energy values in the given interval. "// &
2318 "Default is all states.", &
2319 usage="ERANGE -1.0 1.0", unit_str="hartree", n_var=2, type_of_var=real_t)
2320 CALL section_add_keyword(subsection, keyword)
2321 CALL keyword_release(keyword)
2322
2323 CALL section_add_subsection(print_key, subsection)
2324 CALL section_release(subsection)
2325
2326 END SUBROUTINE create_pdos_section
2327
2328! **************************************************************************************************
2329!> \brief ...
2330!> \param print_key ...
2331! **************************************************************************************************
2332 SUBROUTINE create_wannier_section(print_key)
2333
2334 TYPE(section_type), POINTER :: print_key
2335
2336 TYPE(keyword_type), POINTER :: keyword
2337
2338 NULLIFY (keyword)
2339
2340 CALL cp_print_key_section_create(print_key, __location__, "WANNIER90", &
2341 description="Interface to Wannier90 code. (EXPERIMENTAL)", &
2342 print_level=debug_print_level, common_iter_levels=1, filename="")
2343
2344 CALL keyword_create(keyword, __location__, name="SEED_NAME", &
2345 description="The seedname for the Wannier90 calculation (body of filenames).", &
2346 usage="SEED_NAME filename", default_c_val="wannier90", &
2347 n_var=1, type_of_var=char_t)
2348 CALL section_add_keyword(print_key, keyword)
2349 CALL keyword_release(keyword)
2350
2351 CALL keyword_create(keyword, __location__, name="MP_GRID", &
2352 description="The dimensions of the Monkhorst-Pack k-point grid. ", &
2353 usage="MP_GRID 6 6 6", n_var=-1, default_i_vals=(/10, 10, 10/), type_of_var=integer_t)
2354 CALL section_add_keyword(print_key, keyword)
2355 CALL keyword_release(keyword)
2356
2357 CALL keyword_create(keyword, __location__, name="ADDED_MOS", &
2358 variants=(/"ADDED_BANDS"/), &
2359 description="Number of MOs/Bands added to the Band Structure calculation.", &
2360 default_i_val=0)
2361 CALL section_add_keyword(print_key, keyword)
2362 CALL keyword_release(keyword)
2363
2364 CALL keyword_create(keyword, __location__, name="EXCLUDE_BANDS", &
2365 description="List of Bands excluded in the Wannier calculation.", &
2366 usage="EXCLUDE_BANDS b1 b2 ...", n_var=-1, repeats=.true., &
2367 type_of_var=integer_t)
2368 CALL section_add_keyword(print_key, keyword)
2369 CALL keyword_release(keyword)
2370
2371 CALL keyword_create(keyword, __location__, name="WANNIER_FUNCTIONS", &
2372 description="Number of Wannier functions to be calculated. ", &
2373 usage="WANNIER_FUNCTIONS 6", n_var=1, default_i_val=0, &
2374 repeats=.true., type_of_var=integer_t)
2375 CALL section_add_keyword(print_key, keyword)
2376 CALL keyword_release(keyword)
2377
2378 END SUBROUTINE create_wannier_section
2379
2380! **************************************************************************************************
2381!> \brief ...
2382!> \param print_key ...
2383! **************************************************************************************************
2384 SUBROUTINE create_stm_section(print_key)
2385 TYPE(section_type), POINTER :: print_key
2386
2387 TYPE(keyword_type), POINTER :: keyword
2388
2389 NULLIFY (keyword)
2390
2391 CALL cp_print_key_section_create(print_key, __location__, "STM", &
2392 description="Controls the printing of cubes for the generation of STM images.", &
2393 print_level=debug_print_level, filename="")
2394 CALL keyword_create(keyword, __location__, name="stride", &
2395 description="The stride (X,Y,Z) used to write the cube file "// &
2396 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
2397 " 1 number valid for all components.", &
2398 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=(/2, 2, 2/), type_of_var=integer_t)
2399 CALL section_add_keyword(print_key, keyword)
2400 CALL keyword_release(keyword)
2401
2402 CALL keyword_create(keyword, __location__, name="nlumo", &
2403 description="If the printkey is activated controls the number of additional lumos"// &
2404 " that are computed to be able to reproduce STM images obtained"// &
2405 " from positive bias (imaging unoccupied states)", &
2406 default_i_val=0)
2407 CALL section_add_keyword(print_key, keyword)
2408 CALL keyword_release(keyword)
2409
2410 CALL keyword_create(keyword, __location__, name="BIAS", &
2411 description="Bias energy for scanning tunneling microscopy (STM) image generation. "// &
2412 "Orbital densities are summed according to the bias energy. "// &
2413 "For negative values, states in the range ]EF+bias,EF] are summed, "// &
2414 "While positive values sum states in the range [EF,EF+bias[. "// &
2415 "If positive biases are used, sufficiently many unoccupied stated "// &
2416 "(see ADDED_MOS and NLUMO ) should be computed.", &
2417 n_var=-1, type_of_var=real_t, default_r_vals=(/0.0_dp/), unit_str='eV')
2418 CALL section_add_keyword(print_key, keyword)
2419 CALL keyword_release(keyword)
2420
2421 CALL keyword_create(keyword, __location__, name="TH_TORB", &
2422 description="Tip orbital symmetry in Tersoff-Hamann approximation to compute STM images", &
2423 repeats=.true., &
2424 default_i_val=orb_s, &
2425 usage="TH_TORB s dz2", &
2426 enum_c_vals=s2a("S", "PX", "PY", "PZ", "DXY", "DYZ", "DZX", "DX2", "DY2", "DZ2"), &
2428 enum_desc=s2a("s orbital", "px orbital", "py orbital", "pz orbital", &
2429 "dxy orbital", "dyz orbital", "dzx orbital", "x^2 orbital", "y^2 orbital", "z^2 orbital"))
2430 CALL section_add_keyword(print_key, keyword)
2431 CALL keyword_release(keyword)
2432
2433 CALL keyword_create(keyword, __location__, name="REF_ENERGY", &
2434 description="By default the reference energy is the Fermi energy. In order to compare"// &
2435 " with STS experiments, where specific energy ranges are addressed, here"// &
2436 " one can set a different reference energy."// &
2437 " The energy range is anyway controlled by the BIAS", &
2438 type_of_var=real_t, default_r_val=0.0_dp, unit_str='eV')
2439 CALL section_add_keyword(print_key, keyword)
2440 CALL keyword_release(keyword)
2441
2442 CALL keyword_create(keyword, __location__, name="APPEND", &
2443 description="append the cube files when they already exist", &
2444 default_l_val=.false., lone_keyword_l_val=.true.)
2445 CALL section_add_keyword(print_key, keyword)
2446 CALL keyword_release(keyword)
2447
2448 END SUBROUTINE create_stm_section
2449
2450! **************************************************************************************************
2451!> \brief ...
2452!> \param section ...
2453! **************************************************************************************************
2454 SUBROUTINE create_wfn_mix_section(section)
2455
2456 TYPE(section_type), POINTER :: section
2457
2458 TYPE(keyword_type), POINTER :: keyword
2459 TYPE(section_type), POINTER :: subsection
2460
2461 NULLIFY (subsection)
2462 NULLIFY (keyword)
2463
2464 cpassert(.NOT. ASSOCIATED(section))
2465
2466 CALL section_create(section, __location__, name="WFN_MIX", &
2467 description="A section that allows manipulation of the MO coeffs, "// &
2468 "e.g. for changing a ground state into an excited state. "// &
2469 "Starting from a copy of the original MOs, changes can be made "// &
2470 "by adding linear combinations of HOMO/LUMO of the original MOs to the result MOs. "// &
2471 "This method is called after an SCF optimization or before an RTP run if "// &
2472 "INITIAL_WFN=RESTART_WFN. Note that if called after an SCF optimization, a restart file "// &
2473 "with the mixed MOs is saved. This is not the case for an RTP with "// &
2474 "INITIAL_WFN=RESTART_WFN.", &
2475 n_keywords=1, n_subsections=0, repeats=.false.)
2476
2477 CALL keyword_create(keyword, __location__, name="OVERWRITE_MOS", &
2478 description="If set to True, the active molecular orbitals in memory will be replaced by the mixed wfn "// &
2479 "at the end of the wfn mixing procedure. For instance, you can then use this new set of MOs to perform "// &
2480 "RTP or EMD directly. Note that in the case of an RTP run with INITIAL_WFN=RESTART_WFN, the OVERWRITE_MOS "// &
2481 "keyword is not used.", &
2482 default_l_val=.false., lone_keyword_l_val=.true.)
2483 CALL section_add_keyword(section, keyword)
2484 CALL keyword_release(keyword)
2485
2486 CALL section_create(subsection, __location__, name="UPDATE", &
2487 description="Update a result MO with with a linear combination of original MOs."// &
2488 " This section can be repeated to build arbitrary linear combinations using repeatedly y=a*y+b*x. "// &
2489 "RESULT is (y), RESULT_SCALE is (a), ORIG is (x), ORIG_SCALE is (b)", &
2490 n_keywords=1, n_subsections=0, repeats=.true.)
2491
2492 CALL keyword_create(keyword, __location__, name="RESULT_MO_INDEX", &
2493 description="Index of the MO (y) to be modified. Counting down in energy: "// &
2494 "set to 1 for the highest MO, to 3 for the highest MO-2.", &
2495 usage="RESULT_MO_INDEX 1", type_of_var=integer_t, default_i_val=0)
2496 CALL section_add_keyword(subsection, keyword)
2497 CALL keyword_release(keyword)
2498
2499 CALL keyword_create(keyword, __location__, name="RESULT_MARKED_STATE", &
2500 description="Specifies the MO according to "// &
2501 "the marks set in MOLECULAR_STATES. The value corresponds to the repetition "// &
2502 "of MARK_STATES in MOLECULAR_STATES", &
2503 usage="RESULT_MARKED_STATE 1", type_of_var=integer_t, default_i_val=0)
2504 CALL section_add_keyword(subsection, keyword)
2505 CALL keyword_release(keyword)
2506
2507 CALL keyword_create(keyword, __location__, name="REVERSE_MO_INDEX", &
2508 description="Reverses the index order of the OCCUPIED and EXTERNAL MOs. With this keyword "// &
2509 "ORIG_MO_INDEX/RESULT_MO_INDEX 1 point to the lowest energy MO (instead of the highest) "// &
2510 "and counts up in energy. The VIRTUAL MOs indexing is unchanged.", &
2511 default_l_val=.false., lone_keyword_l_val=.true.)
2512 CALL section_add_keyword(subsection, keyword)
2513 CALL keyword_release(keyword)
2514
2515 CALL keyword_create(keyword, __location__, name="RESULT_SPIN_INDEX", &
2516 description="Spin of the MO (y) to be modified.", &
2517 enum_c_vals=s2a("Alpha", "Beta"), &
2518 enum_i_vals=(/1, 2/), & ! direct index in array
2519 default_i_val=1, &
2520 enum_desc=s2a("Majority spin", "Minority spin"))
2521 CALL section_add_keyword(subsection, keyword)
2522 CALL keyword_release(keyword)
2523
2524 CALL keyword_create(keyword, __location__, name="RESULT_SCALE", &
2525 description="Scaling factor of the result variable (a).", &
2526 usage="RESULT_SCALE 0.0", type_of_var=real_t)
2527 CALL section_add_keyword(subsection, keyword)
2528 CALL keyword_release(keyword)
2529
2530 CALL keyword_create(keyword, __location__, name="ORIG_MO_INDEX", &
2531 description="Index of the original MO (x). "// &
2532 "If ORIG_TYPE is OCCUPIED, it counts down in energy: set to 1 to point to "// &
2533 "the highest MO and to 3 for the highest MO-2. "// &
2534 "If ORIG_TYPE is VIRTUAL, it counts up in energy: set to 1 to point to "// &
2535 "the lowest virtual MO and to 3 for the lowest MO+2. "// &
2536 "If ORIG_TYPE is EXTERNAL, it counts down in energy for the external "// &
2537 "set of MOs: set to 1 to point to the highest MO and to 3 for the highest MO-2. "// &
2538 "Do not set to zero or negative values.", &
2539 usage="ORIG_MO_INDEX 1", type_of_var=integer_t, default_i_val=0)
2540 CALL section_add_keyword(subsection, keyword)
2541 CALL keyword_release(keyword)
2542
2543 CALL keyword_create(keyword, __location__, name="ORIG_MARKED_STATE", &
2544 description="Specifies the MO according to "// &
2545 "the marks set in MOLECULAR_STATES. The value corresponds to the repetition "// &
2546 "of MARK_STATES in MOLECULAR_STATES", &
2547 usage="ORIG_MARKED_STATE 1", type_of_var=integer_t, default_i_val=0)
2548 CALL section_add_keyword(subsection, keyword)
2549 CALL keyword_release(keyword)
2550
2551 CALL keyword_create(keyword, __location__, name="ORIG_SPIN_INDEX", &
2552 description="Spin of the MO (x) to be modified.", &
2553 enum_c_vals=s2a("Alpha", "Beta"), &
2554 enum_i_vals=(/1, 2/), & ! direct index in array
2555 default_i_val=1, &
2556 enum_desc=s2a("Majority spin", "Minority spin"))
2557 CALL section_add_keyword(subsection, keyword)
2558 CALL keyword_release(keyword)
2559
2560 CALL keyword_create(keyword, __location__, name="ORIG_SCALE", &
2561 description="Scaling factor of the original variable (b).", &
2562 usage="ORIG_SCALE 0.0", type_of_var=real_t)
2563 CALL section_add_keyword(subsection, keyword)
2564 CALL keyword_release(keyword)
2565
2566 CALL keyword_create(keyword, __location__, name="ORIG_TYPE", &
2567 description="Type of the original MO. Note that if ADDED_MOS was used in the "// &
2568 "SCF construction of the MO matrix, these extra MOs are also treated as OCCUPIED. ", &
2569 enum_c_vals=s2a("OCCUPIED", "VIRTUAL", 'EXTERNAL'), &
2570 usage="ORIG_TYPE OCCUPIED", &
2571 default_i_val=wfn_mix_orig_occ, &
2572 enum_desc=s2a("The original MO is the result of the SCF procedure. This can also contain "// &
2573 "unoccupied MOs if the SCF%ADDED_MOS keyword was used.", &
2574 "The original MO is taken from the result of additional MOs calculated a "// &
2575 "posteriori of the SCF by request of the user. E.g. by specifying print%mo_cubes%nlumo. ", &
2576 "The orginal MO is from an external .wfn file. Use the keyword "// &
2577 "ORIG_EXT_FILE_NAME to define its name."), &
2579 CALL section_add_keyword(subsection, keyword)
2580 CALL keyword_release(keyword)
2581
2582 CALL keyword_create(keyword, __location__, name="ORIG_EXT_FILE_NAME", &
2583 description="Name of the wavefunction file to read the original MO from. "// &
2584 "For instance, a restart wfn file from SCF calculation or an excited state from XAS_TDP calculation. "// &
2585 "If no file is specified, the run will crash. "// &
2586 "Currently, a RTP restart file (.rtpwfn) cannot be used as reference. "// &
2587 "Currently, this file SHALL have the basis set, number of MO and the same number of spin as the one "// &
2588 "from the SCF cycle.", &
2589 usage="ORIG_EXT_FILE_NAME <FILENAME>", &
2590 default_lc_val="EMPTY")
2591 CALL section_add_keyword(subsection, keyword)
2592 CALL keyword_release(keyword)
2593
2594 CALL section_add_subsection(section, subsection)
2595 CALL section_release(subsection)
2596
2597 END SUBROUTINE create_wfn_mix_section
2598
2599! **************************************************************************************************
2600!> \brief Creates the section for cube files related to the implicit Poisson solver.
2601!> \param section the section to be created
2602!> \par History
2603!> 03.2016 refactored from create_print_dft_section [Hossein Bani-Hashemian]
2604!> \author Mohammad Hossein Bani-Hashemian
2605! **************************************************************************************************
2606 SUBROUTINE create_implicit_psolver_section(section)
2607 TYPE(section_type), POINTER :: section
2608
2609 TYPE(keyword_type), POINTER :: keyword
2610 TYPE(section_type), POINTER :: print_key
2611
2612 cpassert(.NOT. ASSOCIATED(section))
2613 CALL section_create(section, __location__, name="IMPLICIT_PSOLVER", &
2614 description="Controls printing of cube files for data from the implicit "// &
2615 "(generalized) Poisson solver.", &
2616 citations=(/banihashemian2016/), &
2617 n_keywords=0, n_subsections=3, repeats=.false.)
2618
2619 NULLIFY (keyword, print_key)
2620
2621 ! dielectric constant function
2622 CALL cp_print_key_section_create(print_key, __location__, "DIELECTRIC_CUBE", &
2623 description="Controls the printing of a cube file with dielectric constant from "// &
2624 "the implicit (generalized) Poisson solver.", &
2625 print_level=high_print_level, filename="")
2626
2627 CALL keyword_create(keyword, __location__, name="stride", &
2628 description="The stride (X,Y,Z) used to write the cube file "// &
2629 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
2630 " 1 number valid for all components.", &
2631 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=(/2, 2, 2/), type_of_var=integer_t)
2632 CALL section_add_keyword(print_key, keyword)
2633 CALL keyword_release(keyword)
2634 CALL keyword_create(keyword, __location__, name="APPEND", &
2635 description="append the cube files when they already exist", &
2636 default_l_val=.false., lone_keyword_l_val=.true.)
2637 CALL section_add_keyword(print_key, keyword)
2638 CALL keyword_release(keyword)
2639
2640 CALL section_add_subsection(section, print_key)
2641 CALL section_release(print_key)
2642
2643 ! dirichlet type constraints
2645 print_key, __location__, "DIRICHLET_BC_CUBE", &
2646 description="Controls the printing of cube files with unit step functions (constraints)"// &
2647 " representing Dirichlet-type (boundary) regions defined in the implicit (generalized) Poisson"// &
2648 " solver section. The regions remain unchanged throughout the calculations. If the Dirichlet"// &
2649 " regions are relatively large and/or the number of partitions is quite high, in order to save memory,"// &
2650 " generate the cube files in early steps and perform the rest of the calculations with this keyword"// &
2651 " switched off.", &
2652 print_level=high_print_level, filename="")
2653
2654 CALL keyword_create(keyword, __location__, name="TILE_CUBES", &
2655 description="Print tiles that tessellate the Dirichlet regions into cube files. If TRUE, "// &
2656 "generates cube files as many as the total number of tiles.", &
2657 usage="TILE_CUBES <logical>", &
2658 default_l_val=.false., lone_keyword_l_val=.true.)
2659 CALL section_add_keyword(print_key, keyword)
2660 CALL keyword_release(keyword)
2661 CALL keyword_create(keyword, __location__, name="stride", &
2662 description="The stride (X,Y,Z) used to write the cube file "// &
2663 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
2664 " 1 number valid for all components.", &
2665 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=(/2, 2, 2/), type_of_var=integer_t)
2666 CALL section_add_keyword(print_key, keyword)
2667 CALL keyword_release(keyword)
2668 CALL keyword_create(keyword, __location__, name="APPEND", &
2669 description="append the cube files when they already exist", &
2670 default_l_val=.false., lone_keyword_l_val=.true.)
2671 CALL section_add_keyword(print_key, keyword)
2672 CALL keyword_release(keyword)
2673
2674 CALL section_add_subsection(section, print_key)
2675 CALL section_release(print_key)
2676
2677 ! charge introduced by Lagrange multipliers
2678 CALL cp_print_key_section_create(print_key, __location__, "DIRICHLET_CSTR_CHARGE_CUBE", &
2679 description="Controls the printing of cube files with penalty charges induced to "// &
2680 "Dirichlet regions by Lagrange multipliers (implicit Poisson solver).", &
2681 print_level=high_print_level, filename="")
2682
2683 CALL keyword_create(keyword, __location__, name="stride", &
2684 description="The stride (X,Y,Z) used to write the cube file "// &
2685 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
2686 " 1 number valid for all components.", &
2687 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=(/2, 2, 2/), type_of_var=integer_t)
2688 CALL section_add_keyword(print_key, keyword)
2689 CALL keyword_release(keyword)
2690 CALL keyword_create(keyword, __location__, name="APPEND", &
2691 description="append the cube files when they already exist", &
2692 default_l_val=.false., lone_keyword_l_val=.true.)
2693 CALL section_add_keyword(print_key, keyword)
2694 CALL keyword_release(keyword)
2695
2696 CALL section_add_subsection(section, print_key)
2697 CALL section_release(print_key)
2698
2699 END SUBROUTINE create_implicit_psolver_section
2700
2701! **************************************************************************************************
2702!> \brief creates the interpolation section for the periodic QM/MM
2703!> \param section ...
2704!> \author tlaino
2705! **************************************************************************************************
2706 SUBROUTINE create_gspace_interp_section(section)
2707 TYPE(section_type), POINTER :: section
2708
2709 TYPE(keyword_type), POINTER :: keyword
2710 TYPE(section_type), POINTER :: print_key
2711
2712 cpassert(.NOT. ASSOCIATED(section))
2713 CALL section_create(section, __location__, name="interpolator", &
2714 description="controls the interpolation for the G-space term", &
2715 n_keywords=5, n_subsections=0, repeats=.false.)
2716
2717 NULLIFY (keyword, print_key)
2718
2719 CALL keyword_create(keyword, __location__, name="aint_precond", &
2720 description="the approximate inverse to use to get the starting point"// &
2721 " for the linear solver of the spline3 methods", &
2722 usage="aint_precond copy", &
2723 default_i_val=precond_spl3_aint, &
2724 enum_c_vals=s2a("copy", "spl3_nopbc_aint1", "spl3_nopbc_precond1", &
2725 "spl3_nopbc_aint2", "spl3_nopbc_precond2", "spl3_nopbc_precond3"), &
2728 CALL section_add_keyword(section, keyword)
2729 CALL keyword_release(keyword)
2730
2731 CALL keyword_create(keyword, __location__, name="precond", &
2732 description="The preconditioner used"// &
2733 " for the linear solver of the spline3 methods", &
2734 usage="precond copy", &
2735 default_i_val=precond_spl3_3, &
2736 enum_c_vals=s2a("copy", "spl3_nopbc_aint1", "spl3_nopbc_precond1", &
2737 "spl3_nopbc_aint2", "spl3_nopbc_precond2", "spl3_nopbc_precond3"), &
2740 CALL section_add_keyword(section, keyword)
2741 CALL keyword_release(keyword)
2742
2743 CALL keyword_create(keyword, __location__, name="eps_x", &
2744 description="accuracy on the solution for spline3 the interpolators", &
2745 usage="eps_x 1.e-15", default_r_val=1.e-10_dp)
2746 CALL section_add_keyword(section, keyword)
2747 CALL keyword_release(keyword)
2748
2749 CALL keyword_create(keyword, __location__, name="eps_r", &
2750 description="accuracy on the residual for spline3 the interpolators", &
2751 usage="eps_r 1.e-15", default_r_val=1.e-10_dp)
2752 CALL section_add_keyword(section, keyword)
2753 CALL keyword_release(keyword)
2754
2755 CALL keyword_create(keyword, __location__, name="max_iter", &
2756 variants=(/'maxiter'/), &
2757 description="the maximum number of iterations", &
2758 usage="max_iter 200", default_i_val=100)
2759 CALL section_add_keyword(section, keyword)
2760 CALL keyword_release(keyword)
2761
2762 NULLIFY (print_key)
2763 CALL cp_print_key_section_create(print_key, __location__, "conv_info", &
2764 description="if convergence information about the linear solver"// &
2765 " of the spline methods should be printed", &
2766 print_level=medium_print_level, each_iter_names=s2a("SPLINE_FIND_COEFFS"), &
2767 each_iter_values=(/10/), filename="__STD_OUT__", &
2768 add_last=add_last_numeric)
2769 CALL section_add_subsection(section, print_key)
2770 CALL section_release(print_key)
2771
2772 END SUBROUTINE create_gspace_interp_section
2773
2774END 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