(git:f2099e5)
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-2026 CP2K developers group <https://cp2k.org> !
4! !
5! SPDX-License-Identifier: GPL-2.0-or-later !
6!--------------------------------------------------------------------------------------------------!
7
8! **************************************************************************************************
9!> \brief function that build the 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: &
148 USE input_val_types, ONLY: char_t, &
149 enum_t, &
150 integer_t, &
151 lchar_t, &
152 logical_t, &
153 real_t
154 USE kinds, ONLY: dp
159 USE pw_spline_utils, ONLY: no_precond, &
168 USE string_utilities, ONLY: s2a
169
171
172#include "./base/base_uses.f90"
173
174 IMPLICIT NONE
175 PRIVATE
176
177 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'input_cp2k_print_dft'
178
180
181CONTAINS
182
183! **************************************************************************************************
184!> \brief Create the print dft section
185!> \param section the section to create
186!> \author teo
187! **************************************************************************************************
188 SUBROUTINE create_print_dft_section(section)
189 TYPE(section_type), POINTER :: section
190
191 TYPE(keyword_type), POINTER :: keyword
192 TYPE(section_type), POINTER :: print_key, sub_print_key, subsection
193
194 cpassert(.NOT. ASSOCIATED(section))
195 CALL section_create(section, __location__, name="PRINT", &
196 description="Section of possible print options in DFT code.", &
197 n_keywords=0, n_subsections=1, repeats=.false.)
198
199 NULLIFY (print_key, keyword, subsection)
200
201 CALL cp_print_key_section_create(print_key, __location__, "PROGRAM_BANNER", &
202 description="Controls the printing of the banner of the MM program", &
203 print_level=silent_print_level, filename="__STD_OUT__")
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__, "BASIS_SET_FILE", &
208 description="Controls the printing of a file with all basis sets used.", &
209 print_level=high_print_level, filename="LOCAL_BASIS_SETS")
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__, "KINETIC_ENERGY", &
214 description="Controls the printing of the kinetic energy", &
215 print_level=high_print_level, filename="__STD_OUT__")
216 CALL section_add_subsection(section, print_key)
217 CALL section_release(print_key)
218
219 CALL cp_print_key_section_create(print_key, __location__, "DERIVATIVES", &
220 description="Print all derivatives after the DFT calculation", &
221 print_level=high_print_level, filename="__STD_OUT__")
222 CALL keyword_create(keyword, __location__, &
223 name="ndigits", &
224 description="Specify the number of digits used to print derivatives", &
225 default_i_val=6)
226 CALL section_add_keyword(print_key, keyword)
227 CALL keyword_release(keyword)
228
229 CALL section_add_subsection(section, print_key)
230 CALL section_release(print_key)
231
232 CALL cp_print_key_section_create(print_key, __location__, name="neighbor_lists", &
233 description="Controls the printing of the neighbor lists", &
234 print_level=debug_print_level, filename="", unit_str="angstrom")
235 CALL keyword_create(keyword, __location__, &
236 name="sab_orb", &
237 description="Activates the printing of the orbital "// &
238 "orbital neighbor lists, "// &
239 "i.e. the overlap neighbor lists", &
240 default_l_val=.false., &
241 lone_keyword_l_val=.true.)
242 CALL section_add_keyword(print_key, keyword)
243 CALL keyword_release(keyword)
244
245 CALL keyword_create(keyword, __location__, &
246 name="sab_aux_fit", &
247 description="Activates the printing of the orbital "// &
248 "orbital neighbor lists wavefunction fitting basis, "// &
249 "i.e. the overlap neighbor lists", &
250 default_l_val=.false., &
251 lone_keyword_l_val=.true.)
252 CALL section_add_keyword(print_key, keyword)
253 CALL keyword_release(keyword)
254
255 CALL keyword_create(keyword, __location__, &
256 name="sab_aux_fit_vs_orb", &
257 description="Activates the printing of the orbital "// &
258 "orbital mixed neighbor lists of wavefunction fitting basis, "// &
259 "and the orbital basis, i.e. the overlap neighbor lists", &
260 default_l_val=.false., &
261 lone_keyword_l_val=.true.)
262 CALL section_add_keyword(print_key, keyword)
263 CALL keyword_release(keyword)
264
265 CALL keyword_create(keyword, __location__, &
266 name="sab_scp", &
267 description="Activates the printing of the vdW SCP "// &
268 "neighbor lists ", &
269 default_l_val=.false., &
270 lone_keyword_l_val=.true.)
271 CALL section_add_keyword(print_key, keyword)
272 CALL keyword_release(keyword)
273
274 CALL keyword_create(keyword, __location__, &
275 name="sab_vdw", &
276 description="Activates the printing of the vdW "// &
277 "neighbor lists (from DFT, DFTB, SE), "// &
278 "i.e. the dispersion neighbor lists", &
279 default_l_val=.false., &
280 lone_keyword_l_val=.true.)
281 CALL section_add_keyword(print_key, keyword)
282 CALL keyword_release(keyword)
283
284 CALL keyword_create(keyword, __location__, &
285 name="sab_cn", &
286 description="Activates the printing of the "// &
287 "neighbor lists used for coordination numbers in vdW DFT-D3", &
288 default_l_val=.false., &
289 lone_keyword_l_val=.true.)
290 CALL section_add_keyword(print_key, keyword)
291 CALL keyword_release(keyword)
292
293 CALL keyword_create(keyword, __location__, &
294 name="sac_ae", &
295 description="Activates the printing of the orbital "// &
296 "nuclear attraction neighbor lists (erfc potential)", &
297 default_l_val=.false., &
298 lone_keyword_l_val=.true.)
299 CALL section_add_keyword(print_key, keyword)
300 CALL keyword_release(keyword)
301
302 CALL keyword_create(keyword, __location__, &
303 name="sac_ppl", &
304 description="Activates the printing of the orbital "// &
305 "GTH-PPL neighbor lists (local part of the "// &
306 "Goedecker-Teter-Hutter pseudo potentials)", &
307 default_l_val=.false., &
308 lone_keyword_l_val=.true.)
309 CALL section_add_keyword(print_key, keyword)
310 CALL keyword_release(keyword)
311
312 CALL keyword_create(keyword, __location__, &
313 name="sap_ppnl", &
314 description="Activates the printing of the orbital "// &
315 "GTH-PPNL neighbor lists (non-local part of the "// &
316 "Goedecker-Teter-Hutter pseudo potentials)", &
317 default_l_val=.false., &
318 lone_keyword_l_val=.true.)
319 CALL section_add_keyword(print_key, keyword)
320 CALL keyword_release(keyword)
321
322 CALL keyword_create(keyword, __location__, &
323 name="sap_oce", &
324 description="Activates the printing of the orbital "// &
325 "PAW-projector neighbor lists (only GAPW)", &
326 default_l_val=.false., &
327 lone_keyword_l_val=.true.)
328 CALL section_add_keyword(print_key, keyword)
329 CALL keyword_release(keyword)
330
331 CALL keyword_create(keyword, __location__, &
332 name="sab_se", &
333 description="Activates the printing of the two-center "// &
334 "neighbor lists for Coulomb type interactions in NDDO ", &
335 default_l_val=.false., &
336 lone_keyword_l_val=.true.)
337 CALL section_add_keyword(print_key, keyword)
338 CALL keyword_release(keyword)
339
340 CALL keyword_create(keyword, __location__, &
341 name="sab_lrc", &
342 description="Activates the printing of the long-range SE correction "// &
343 "neighbor lists (only when doing long-range SE with integral scheme KDSO and KDSO-d)", &
344 default_l_val=.false., lone_keyword_l_val=.true.)
345 CALL section_add_keyword(print_key, keyword)
346 CALL keyword_release(keyword)
347
348 CALL keyword_create(keyword, __location__, &
349 name="sab_tbe", &
350 description="Activates the printing of the DFTB Ewald "// &
351 "neighbor lists ", &
352 default_l_val=.false., &
353 lone_keyword_l_val=.true.)
354 CALL section_add_keyword(print_key, keyword)
355 CALL keyword_release(keyword)
356
357 CALL keyword_create(keyword, __location__, &
358 name="sab_xtbe", &
359 description="Activates the printing of the xTB sr-Coulomb "// &
360 "neighbor lists ", &
361 default_l_val=.false., &
362 lone_keyword_l_val=.true.)
363 CALL section_add_keyword(print_key, keyword)
364 CALL keyword_release(keyword)
365
366 CALL keyword_create(keyword, __location__, &
367 name="sab_core", &
368 description="Activates the printing of core interaction "// &
369 "neighbor lists ", &
370 default_l_val=.false., &
371 lone_keyword_l_val=.true.)
372 CALL section_add_keyword(print_key, keyword)
373 CALL keyword_release(keyword)
374
375 CALL keyword_create(keyword, __location__, &
376 name="sab_xb", &
377 description="Activates the printing of XB interaction from (xTB) "// &
378 "neighbor lists ", &
379 default_l_val=.false., &
380 lone_keyword_l_val=.true.)
381 CALL section_add_keyword(print_key, keyword)
382 CALL keyword_release(keyword)
383
384 CALL keyword_create(keyword, __location__, &
385 name="sab_xtb_nonbond", &
386 description="Activates the printing of nonbonded interaction from (xTB) "// &
387 "neighbor lists ", &
388 default_l_val=.false., &
389 lone_keyword_l_val=.true.)
390 CALL section_add_keyword(print_key, keyword)
391 CALL keyword_release(keyword)
392
393 CALL keyword_create(keyword, __location__, &
394 name="soo_list", &
395 description="Activates the printing of RI orbital-orbital "// &
396 "neighbor lists ", &
397 default_l_val=.false., &
398 lone_keyword_l_val=.true.)
399 CALL section_add_keyword(print_key, keyword)
400 CALL keyword_release(keyword)
401
402 CALL keyword_create(keyword, __location__, &
403 name="sip_list", &
404 description="Activates the printing of RI basis-projector interaction "// &
405 "neighbor lists ", &
406 default_l_val=.false., &
407 lone_keyword_l_val=.true.)
408 CALL section_add_keyword(print_key, keyword)
409 CALL keyword_release(keyword)
410
411 CALL keyword_create(keyword, __location__, &
412 name="sab_cneo", &
413 description="Activates the printing of the nuclear orbital "// &
414 "nuclear repulsion neighbor lists (erfc potential)", &
415 default_l_val=.false., &
416 lone_keyword_l_val=.true.)
417 CALL section_add_keyword(print_key, keyword)
418 CALL keyword_release(keyword)
419
420 CALL section_add_subsection(section, print_key)
421 CALL section_release(print_key)
422
423 CALL cp_print_key_section_create(print_key, __location__, "SUBCELL", &
424 description="Activates the printing of the subcells used for the "// &
425 "generation of neighbor lists.", unit_str="angstrom", &
426 print_level=high_print_level, filename="__STD_OUT__")
427 CALL section_add_subsection(section, print_key)
428 CALL section_release(print_key)
429
430 CALL cp_print_key_section_create(print_key, __location__, "AO_MATRICES", &
431 description="Controls the printing of the ao (i.e. contracted gaussian) matrices (debug).", &
432 print_level=debug_print_level, filename="__STD_OUT__")
433 CALL keyword_create(keyword, __location__, name="OMIT_HEADERS", &
434 description="Print only the matrix data, not the row and column headers", &
435 default_l_val=.false., lone_keyword_l_val=.true.)
436 CALL section_add_keyword(print_key, keyword)
437 CALL keyword_release(keyword)
438
439 CALL keyword_create(keyword, __location__, name="NDIGITS", &
440 description="Specify the number of digits used to print the AO matrices", &
441 default_i_val=6)
442 CALL section_add_keyword(print_key, keyword)
443 CALL keyword_release(keyword)
444 CALL keyword_create(keyword, __location__, name="CORE_HAMILTONIAN", &
445 description="If the printkey is activated controls the printing of the hamiltonian matrix", &
446 default_l_val=.false., lone_keyword_l_val=.true.)
447 CALL section_add_keyword(print_key, keyword)
448 CALL keyword_release(keyword)
449 CALL keyword_create(keyword, __location__, name="DENSITY", &
450 description="If the printkey is activated controls the printing of the density (P) matrix", &
451 default_l_val=.false., lone_keyword_l_val=.true.)
452 CALL section_add_keyword(print_key, keyword)
453 CALL keyword_release(keyword)
454
455 CALL keyword_create(keyword, __location__, name="KINETIC_ENERGY", &
456 description="If the printkey is activated controls the printing of the kinetic energy matrix", &
457 default_l_val=.false., lone_keyword_l_val=.true.)
458 CALL section_add_keyword(print_key, keyword)
459 CALL keyword_release(keyword)
460 CALL keyword_create(keyword, __location__, name="KOHN_SHAM_MATRIX", &
461 description="If the printkey is activated controls the printing of the Kohn-Sham matrix", &
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( &
466 keyword, __location__, name="MATRIX_VXC", &
467 description="If the printkey is activated compute and print the matrix of the exchange and correlation potential. "// &
468 "Only the GGA part for GPW is printed", &
469 default_l_val=.false., lone_keyword_l_val=.true.)
470 CALL section_add_keyword(print_key, keyword)
471 CALL keyword_release(keyword)
472 CALL keyword_create(keyword, __location__, name="ORTHO", &
473 description="If the printkey is activated controls the printing of the orthogonalization matrix", &
474 default_l_val=.false., lone_keyword_l_val=.true.)
475 CALL section_add_keyword(print_key, keyword)
476 CALL keyword_release(keyword)
477 CALL keyword_create(keyword, __location__, name="OVERLAP", &
478 description="If the printkey is activated controls the printing of the overlap matrix", &
479 default_l_val=.false., lone_keyword_l_val=.true.)
480 CALL section_add_keyword(print_key, keyword)
481 CALL keyword_release(keyword)
482
483 CALL keyword_create(keyword, __location__, name="COMMUTATOR_HR", &
484 description="Controls the printing of the [H,r] commutator matrix", &
485 default_l_val=.false., lone_keyword_l_val=.true.)
486 CALL section_add_keyword(print_key, keyword)
487 CALL keyword_release(keyword)
488
489 CALL keyword_create(keyword, __location__, name="FERMI_CONTACT", &
490 description="If the printkey is activated controls the printing of the Fermi contact matrix", &
491 default_l_val=.false., lone_keyword_l_val=.true.)
492 CALL section_add_keyword(print_key, keyword)
493 CALL keyword_release(keyword)
494 CALL keyword_create( &
495 keyword, __location__, name="PSO", &
496 description="If the printkey is activated controls the printing of the paramagnetic spin-orbit matrices", &
497 default_l_val=.false., lone_keyword_l_val=.true.)
498 CALL section_add_keyword(print_key, keyword)
499 CALL keyword_release(keyword)
500 CALL keyword_create( &
501 keyword, __location__, name="EFG", &
502 description="If the printkey is activated controls the printing of the electric field gradient matrices", &
503 default_l_val=.false., lone_keyword_l_val=.true.)
504 CALL section_add_keyword(print_key, keyword)
505 CALL keyword_release(keyword)
506 CALL keyword_create(keyword, __location__, name="POTENTIAL_ENERGY", &
507 description="If the printkey is activated controls the printing of the potential energy matrix", &
508 default_l_val=.false., lone_keyword_l_val=.true.)
509 CALL section_add_keyword(print_key, keyword)
510 CALL keyword_release(keyword)
511 CALL keyword_create(keyword, __location__, name="OCE_HARD", &
512 description="If the printkey is activated controls the printing of the OCE HARD matrix", &
513 default_l_val=.false., lone_keyword_l_val=.true.)
514 CALL section_add_keyword(print_key, keyword)
515 CALL keyword_release(keyword)
516 CALL keyword_create(keyword, __location__, name="OCE_SOFT", &
517 description="If the printkey is activated controls the printing of the OCE SOFT matrix", &
518 default_l_val=.false., lone_keyword_l_val=.true.)
519 CALL section_add_keyword(print_key, keyword)
520 CALL keyword_release(keyword)
521 CALL keyword_create(keyword, __location__, name="W_MATRIX", &
522 description="If the printkey is activated controls the printing of the w matrix", &
523 default_l_val=.false., lone_keyword_l_val=.true.)
524 CALL section_add_keyword(print_key, keyword)
525 CALL keyword_release(keyword)
526 CALL keyword_create(keyword, __location__, name="W_MATRIX_AUX_FIT", &
527 description="If the printkey is activated controls the printing of the w matrix", &
528 default_l_val=.false., lone_keyword_l_val=.true.)
529 CALL section_add_keyword(print_key, keyword)
530 CALL keyword_release(keyword)
531 CALL keyword_create(keyword, __location__, name="DERIVATIVES", &
532 description="If the printkey is activated controls the printing "// &
533 "of derivatives (for the matrixes that support this)", &
534 default_l_val=.false., lone_keyword_l_val=.true.)
535 CALL section_add_keyword(print_key, keyword)
536 CALL keyword_release(keyword)
537 CALL section_add_subsection(section, print_key)
538 CALL section_release(print_key)
539
541 print_key, __location__, "MO", &
542 description="Controls the printing of the molecular orbital (MO) information. The requested MO information "// &
543 "is printed for all occupied MOs by default. Use the MO_INDEX_RANGE keyword to restrict the number "// &
544 "of the MOs or to print the MO information for unoccupied MOs. With diagonalization, an explicit "// &
545 "positive range or -1 as its last index makes the requested MOs available automatically, up to the "// &
546 "AO basis size. ADDED_MOS can make extra MOs available independently of this print request. With OT, "// &
547 "it is sufficient to specify the desired MO_INDEX_RANGE. The OT eigensolver can be controlled with "// &
548 "the EPS_LUMO and MAX_ITER_LUMO keywords in the SCF section.", &
549 print_level=high_print_level, filename="__STD_OUT__")
550 CALL keyword_create(keyword, __location__, name="CARTESIAN", &
551 description="Print the MOs in the Cartesian basis instead of the default spherical basis.", &
552 default_l_val=.false., lone_keyword_l_val=.true.)
553 CALL section_add_keyword(print_key, keyword)
554 CALL keyword_release(keyword)
555 CALL keyword_create(keyword, __location__, name="CARTESIAN_OVERLAP", &
556 description="Print the Cartesian overlap matrix in line with Cartesian MO coefficients.", &
557 default_l_val=.false., lone_keyword_l_val=.true.)
558 CALL section_add_keyword(print_key, keyword)
559 CALL keyword_release(keyword)
560 CALL keyword_create(keyword, __location__, name="ENERGIES", &
561 variants=s2a("EIGENVALUES", "EIGVALS"), &
562 description="Print the MO energies (eigenvalues).", &
563 default_l_val=.false., lone_keyword_l_val=.true.)
564 CALL section_add_keyword(print_key, keyword)
565 CALL keyword_release(keyword)
566 CALL keyword_create(keyword, __location__, name="COEFFICIENTS", &
567 variants=s2a("EIGENVECTORS", "EIGVECS"), &
568 description="Print the MO coefficients (eigenvectors).", &
569 default_l_val=.false., lone_keyword_l_val=.true.)
570 CALL section_add_keyword(print_key, keyword)
571 CALL keyword_release(keyword)
572 CALL keyword_create(keyword, __location__, name="OCCUPATION_NUMBERS", &
573 variants=s2a("OCCNUMS"), &
574 description="Print the MO occupation numbers.", &
575 default_l_val=.false., lone_keyword_l_val=.true.)
576 CALL section_add_keyword(print_key, keyword)
577 CALL keyword_release(keyword)
578 CALL keyword_create(keyword, __location__, name="OCCUPATION_NUMBERS_STATS", &
579 variants=s2a("OCCNUMSTATS"), &
580 description="Print some stats (max number of occupied MOs, etc.) of the MO occupation numbers."// &
581 " First logical toggles stats printing, first real is the occupied threshold.", &
582 type_of_var=char_t, n_var=-1, &
583 default_c_vals=[".FALSE.", "1.0E-6 "], &
584 lone_keyword_c_vals=[".TRUE."], &
585 usage="OCCUPATION_NUMBERS_STATS {Logical} [{Real}]")
586 CALL section_add_keyword(print_key, keyword)
587 CALL keyword_release(keyword)
588 CALL keyword_create(keyword, __location__, name="NDIGITS", &
589 description="Specify the number of digits used to print the MO information.", &
590 default_i_val=6)
591 CALL section_add_keyword(print_key, keyword)
592 CALL keyword_release(keyword)
593 CALL keyword_create(keyword, __location__, &
594 name="MO_INDEX_RANGE", &
595 variants=s2a("MO_RANGE", "RANGE"), &
596 description="Print only the requested subset of MOs. The indices of the first and "// &
597 "the last MO have to be specified to define the range. A positive range makes the "// &
598 "requested MOs available automatically. -1 as the last MO index makes and prints all "// &
599 "available orbitals with diagonalization and all orbitals with OT.", &
600 repeats=.false., &
601 n_var=2, &
602 type_of_var=integer_t, &
603 default_i_vals=[0, 0], &
604 usage="MO_INDEX_RANGE 10 15")
605 CALL section_add_keyword(print_key, keyword)
606 CALL keyword_release(keyword)
607 CALL section_add_subsection(section, print_key)
608 CALL section_release(print_key)
609
610 CALL cp_print_key_section_create(print_key, __location__, "MO_MOLDEN", &
611 description="Write the molecular orbitals in Molden file format, for visualisation.", &
612 print_level=debug_print_level + 1, add_last=add_last_numeric, filename="MOS")
613 CALL keyword_create(keyword, __location__, name="UNIT", &
614 description="Unit for coordinates and cell in the MOLDEN file.", &
615 usage="UNIT ANGSTROM", &
616 enum_c_vals=s2a("BOHR", "ANGSTROM"), &
617 enum_desc=s2a("Write in Bohr (AU)", "Write in Angstrom"), &
618 enum_i_vals=[1, 2], &
619 default_i_val=1)
620 CALL section_add_keyword(print_key, keyword)
621 CALL keyword_release(keyword)
622 CALL keyword_create(keyword, __location__, name="WRITE_CELL", &
623 description="Controls whether the [Cell] block is written to the MOLDEN file.", &
624 usage="WRITE_CELL T", &
625 default_l_val=.false., lone_keyword_l_val=.true.)
626 CALL section_add_keyword(print_key, keyword)
627 CALL keyword_release(keyword)
628 CALL keyword_create(keyword, __location__, name="WRITE_PSEUDO", &
629 description="Controls whether the [Pseudo] block is written to the MOLDEN file.", &
630 usage="WRITE_PSEUDO T", &
631 default_l_val=.false., lone_keyword_l_val=.true.)
632 CALL section_add_keyword(print_key, keyword)
633 CALL keyword_release(keyword)
634 CALL keyword_create(keyword, __location__, name="MARK_GHOST", &
635 description="Controls whether ghost atoms are marked in the [Atoms] block by "// &
636 "setting their atomic number to zero.", &
637 usage="MARK_GHOST T", &
638 default_l_val=.false., lone_keyword_l_val=.true.)
639 CALL section_add_keyword(print_key, keyword)
640 CALL keyword_release(keyword)
641 CALL keyword_create(keyword, __location__, name="NDIGITS", &
642 description="Specifies the number of significant digits retained. 3 is OK for visualization.", &
643 usage="NDIGITS {int}", &
644 default_i_val=3)
645 CALL section_add_keyword(print_key, keyword)
646 CALL keyword_release(keyword)
647 CALL keyword_create(keyword, __location__, name="GTO_KIND", &
648 description="Representation of Gaussian-type orbitals", &
649 default_i_val=gto_spherical, &
650 enum_c_vals=s2a("CARTESIAN", "SPHERICAL"), &
651 enum_desc=s2a( &
652 "Cartesian Gaussian orbitals. Use with caution", &
653 "Spherical Gaussian orbitals. Incompatible with VMD"), &
654 enum_i_vals=[gto_cartesian, gto_spherical])
655 CALL section_add_keyword(print_key, keyword)
656 CALL keyword_release(keyword)
657 CALL keyword_create(keyword, __location__, name="NLUMO", &
658 description="Number of unoccupied orbitals to include in the Molden file. "// &
659 "For OT calculations, the requested virtual orbitals are generated after "// &
660 "SCF using the OT eigensolver. For diagonalization calculations, "// &
661 "SCF%ADDED_MOS is increased if needed to make the requested unoccupied "// &
662 "orbitals available. 0 means no virtual orbitals, -1 means all available.", &
663 usage="NLUMO integer", &
664 default_i_val=0)
665 CALL section_add_keyword(print_key, keyword)
666 CALL keyword_release(keyword)
667 CALL section_add_subsection(section, print_key)
668 CALL section_release(print_key)
669
670 CALL cp_print_key_section_create(print_key, __location__, "MO_KP", &
671 description="Write k-point MO information to `.mokp` file. "// &
672 "The information of cell and k-points is given at first. Then, "// &
673 "the coefficients of molecular orbitals are always written, "// &
674 "while users can choose whether to write GTO basis information "// &
675 "or explicit overlap matrices through the `AO_EXPORT_TYPE` keyword.", &
676 print_level=debug_print_level + 1, add_last=add_last_numeric, filename="")
677 CALL keyword_create(keyword, __location__, name="UNIT", &
678 description="Unit for coordinates and cell in the .mokp file.", &
679 usage="UNIT ANGSTROM", &
680 enum_c_vals=s2a("BOHR", "ANGSTROM"), &
681 enum_desc=s2a("Write in Bohr (AU)", "Write in Angstrom"), &
682 enum_i_vals=[1, 2], &
683 default_i_val=1)
684 CALL section_add_keyword(print_key, keyword)
685 CALL keyword_release(keyword)
686 CALL keyword_create(keyword, __location__, name="NDIGITS", &
687 description="Specifies the number of significant digits retained.", &
688 usage="NDIGITS {int}", &
689 default_i_val=9)
690 CALL section_add_keyword(print_key, keyword)
691 CALL keyword_release(keyword)
692 CALL keyword_create(keyword, __location__, name="AO_EXPORT_TYPE", &
693 description="How AO information is provided for interpreting MO coefficients. "// &
694 "GTO_BASIS writes basis set exponents/coefficients (compact, post-processing reconstructs S(k)). "// &
695 "OVERLAP_MATRIX writes S(k) directly (larger file, ready to use).", &
696 default_i_val=mokp_ao_gto_basis, &
697 enum_c_vals=s2a("GTO_BASIS", "OVERLAP_MATRIX"), &
698 enum_desc=s2a("Write GTO basis set definition (MOLDEN denormalization convention)", &
699 "Write explicit overlap matrices S(k) for all k-points"), &
701 CALL section_add_keyword(print_key, keyword)
702 CALL keyword_release(keyword)
703 CALL section_add_subsection(section, print_key)
704 CALL section_release(print_key)
705
706 CALL create_mo_section(print_key, "MO_CUBES", "cube", [2, 2, 2], "STRIDE 1 1 1", high_print_level, "write_cube")
707 CALL keyword_create(keyword, __location__, name="APPEND", &
708 description="append the cube files when they already exist", &
709 default_l_val=.false., lone_keyword_l_val=.true.)
710 CALL section_add_keyword(print_key, keyword)
711 CALL keyword_release(keyword)
712 CALL keyword_create(keyword, __location__, name="MAX_FILE_SIZE_MB", &
713 description="Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
714 usage="MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
715 CALL section_add_keyword(print_key, keyword)
716 CALL keyword_release(keyword)
717 CALL section_add_subsection(section, print_key)
718 CALL section_release(print_key)
719
720 CALL create_mo_section( &
721 print_key, "MO_OPENPMD", "openPMD", [1, 1, 1], "STRIDE 2 2 2", debug_print_level + 1, "write_openpmd")
722 CALL add_generic_openpmd_arguments(print_key)
723 CALL section_add_subsection(section, print_key)
724 CALL section_release(print_key)
725
726 CALL create_stm_section(print_key)
727 CALL section_add_subsection(section, print_key)
728 CALL section_release(print_key)
729
730 CALL create_wfn_mix_section(subsection)
731 CALL section_add_subsection(section, subsection)
732 CALL section_release(subsection)
733
734 CALL section_create(subsection, __location__, name="TREXIO", &
735 description="Write a TREXIO file to disk.", &
736 n_keywords=4, n_subsections=0, repeats=.false.)
737 CALL keyword_create(keyword, __location__, name="FILENAME", &
738 description="Body of Filename for the trexio file.", &
739 usage="FILENAME {name}", default_c_val="TREXIO", &
740 type_of_var=char_t)
741 CALL section_add_keyword(subsection, keyword)
742 CALL keyword_release(keyword)
743 CALL keyword_create(keyword, __location__, name="CARTESIAN", &
744 description="Store the MOs in the Cartesian basis instead of the default spherical basis.", &
745 default_l_val=.false., lone_keyword_l_val=.true.)
746 CALL section_add_keyword(subsection, keyword)
747 CALL keyword_release(keyword)
748 CALL keyword_create(keyword, __location__, name="FULL_KPOINT_GRID", &
749 description="For symmetry-reduced k-point SCF calculations, export MOs on the "// &
750 "full unreduced k-point grid instead of the irreducible grid.", &
751 usage="FULL_KPOINT_GRID <LOGICAL>", default_l_val=.false., &
752 lone_keyword_l_val=.true.)
753 CALL section_add_keyword(subsection, keyword)
754 CALL keyword_release(keyword)
755 CALL keyword_create(keyword, __location__, name="REUSE_SCF_MOS", &
756 description="When FULL_KPOINT_GRID is active, try to reconstruct the full-grid "// &
757 "MO coefficients from the symmetry-reduced SCF orbitals before falling back to "// &
758 "a full-grid diagonalization.", &
759 usage="REUSE_SCF_MOS T", default_l_val=.true.)
760 CALL section_add_keyword(subsection, keyword)
761 CALL keyword_release(keyword)
762 CALL section_add_subsection(section, subsection)
763 CALL section_release(subsection)
764
765 CALL section_create(subsection, __location__, name="CASINO", &
766 description="Write a CASINO gwfn.data file to disk.", &
767 n_keywords=5, n_subsections=0, repeats=.false.)
768 CALL keyword_create(keyword, __location__, name="FILENAME", &
769 description="Filename for the CASINO gwfn.data file.", &
770 usage="FILENAME {name}", default_c_val="gwfn.data", &
771 type_of_var=char_t)
772 CALL section_add_keyword(subsection, keyword)
773 CALL keyword_release(keyword)
774 CALL keyword_create(keyword, __location__, name="EPS_KPOINT_REAL", &
775 description="Tolerance for detecting Gamma/BZ-edge k-points with real orbitals.", &
776 usage="EPS_KPOINT_REAL 1.0E-10", default_r_val=1.0e-10_dp)
777 CALL section_add_keyword(subsection, keyword)
778 CALL keyword_release(keyword)
779 CALL keyword_create(keyword, __location__, name="FULL_KPOINT_GRID", &
780 description="For symmetry-reduced k-point SCF calculations, export orbitals on the "// &
781 "full unreduced k-point grid required by CASINO.", &
782 usage="FULL_KPOINT_GRID <LOGICAL>", default_l_val=.true., &
783 lone_keyword_l_val=.true.)
784 CALL section_add_keyword(subsection, keyword)
785 CALL keyword_release(keyword)
786 CALL keyword_create(keyword, __location__, name="REUSE_SCF_MOS", &
787 description="When FULL_KPOINT_GRID is active, try to reconstruct the full-grid "// &
788 "MO coefficients from the symmetry-reduced SCF orbitals before falling back to "// &
789 "a full-grid diagonalization.", &
790 usage="REUSE_SCF_MOS T", default_l_val=.true.)
791 CALL section_add_keyword(subsection, keyword)
792 CALL keyword_release(keyword)
793 CALL keyword_create(keyword, __location__, name="WRITE_PSEUDOPOTENTIALS", &
794 description="Write CASINO *_pp.data files for CP2K semilocal ECP potentials. "// &
795 "GTH pseudopotentials are marked in gwfn.data, but require externally supplied "// &
796 "CASINO pseudopotential files.", &
797 usage="WRITE_PSEUDOPOTENTIALS T", default_l_val=.true., &
798 lone_keyword_l_val=.true.)
799 CALL section_add_keyword(subsection, keyword)
800 CALL keyword_release(keyword)
801 CALL section_add_subsection(section, subsection)
802 CALL section_release(subsection)
803
804 CALL section_create(subsection, __location__, name="GAPW", &
805 description="Controls the printing of some gapw related information (debug).", &
806 n_keywords=0, n_subsections=1, repeats=.false.)
807 CALL cp_print_key_section_create(print_key, __location__, "projectors", &
808 description="If the printkey is activated controls if information on"// &
809 " the projectors is printed.", &
810 print_level=debug_print_level, filename="__STD_OUT__")
811 CALL section_add_subsection(subsection, print_key)
812 CALL section_release(print_key)
813 CALL cp_print_key_section_create(print_key, __location__, "rho0_information", &
814 description="If the printkey is activated controls if information on rho0 is printed.", &
815 print_level=debug_print_level, filename="__STD_OUT__", unit_str="angstrom")
816 CALL section_add_subsection(subsection, print_key)
817 CALL section_release(print_key)
818 CALL section_add_subsection(section, subsection)
819 CALL section_release(subsection)
820
821 CALL cp_print_key_section_create(print_key, __location__, "dft_control_parameters", &
822 description="Controls the printing of dft control parameters.", &
823 print_level=medium_print_level, filename="__STD_OUT__")
824 CALL section_add_subsection(section, print_key)
825 CALL section_release(print_key)
826
827 CALL cp_print_key_section_create(print_key, __location__, "KPOINTS", &
828 description="Controls the printing of kpoint information.", &
829 print_level=medium_print_level, filename="__STD_OUT__")
830 CALL section_add_subsection(section, print_key)
831 CALL section_release(print_key)
832
833 NULLIFY (subsection)
834 CALL create_bandstructure_section(subsection)
835 CALL section_add_subsection(section, subsection)
836 CALL section_release(subsection)
837
838 CALL cp_print_key_section_create(print_key, __location__, "OVERLAP_CONDITION", &
839 description="Controls the checking and printing of an estimate "// &
840 "of the overlap matrix condition number", &
841 print_level=debug_print_level, filename="__STD_OUT__")
842 CALL keyword_create(keyword, __location__, name="1-NORM", &
843 description="Calculate an estimate of the 1-norm condition number", &
844 default_l_val=.true., lone_keyword_l_val=.true.)
845 CALL section_add_keyword(print_key, keyword)
846 CALL keyword_release(keyword)
847 CALL keyword_create(keyword, __location__, name="DIAGONALIZATION", &
848 description="Calculate the 1- and 2-norm condition numbers using diagonalization", &
849 default_l_val=.false., lone_keyword_l_val=.true.)
850 CALL section_add_keyword(print_key, keyword)
851 CALL keyword_release(keyword)
852 CALL keyword_create(keyword, __location__, name="ARNOLDI", &
853 description="Calculate the 2-norm condition number using the Arnoldi code (may not be reliable)", &
854 default_l_val=.false., lone_keyword_l_val=.true.)
855 CALL section_add_keyword(print_key, keyword)
856 CALL keyword_release(keyword)
857 CALL section_add_subsection(section, print_key)
858 CALL section_release(print_key)
859
860 CALL create_e_density_section( &
861 print_key, &
862 "E_DENSITY_OPENPMD", &
863 "openPMD", &
864 [1, 1, 1], &
865 "STRIDE 1 1 1", &
867 CALL add_generic_openpmd_arguments(print_key)
868 CALL section_add_subsection(section, print_key)
869 CALL section_release(print_key)
870
871 CALL create_e_density_section(print_key, "E_DENSITY_CUBE", "cube", [2, 2, 2], "STRIDE 2 2 2", high_print_level)
872 CALL keyword_create(keyword, __location__, name="APPEND", &
873 description="append the cube files when they already exist", &
874 default_l_val=.false., lone_keyword_l_val=.true.)
875 CALL section_add_keyword(print_key, keyword)
876 CALL keyword_release(keyword)
877
878 CALL keyword_create(keyword, __location__, name="XRD_INTERFACE", &
879 description="It activates the print out of exponents and coefficients for the"// &
880 " Gaussian expansion of the core densities, based on atom calculations for each kind."// &
881 " The resulting core dansities are needed to compute the form factors."// &
882 " If GAPW the local densities are also given in terms of a Gaussian expansion,"// &
883 " by fitting the difference between local-fhard and local-soft density for each atom."// &
884 " In this case the keyword SOFT_DENSITY is enabled.", &
885 default_l_val=.false., lone_keyword_l_val=.true.)
886 CALL section_add_keyword(print_key, keyword)
887 CALL keyword_release(keyword)
888
889 CALL keyword_create(keyword, __location__, name="NGAUSS", &
890 description="Number of Gaussian functions used in the expansion of atomic (core) density", &
891 usage="NGAUSS 10", n_var=1, default_i_val=12, type_of_var=integer_t)
892 CALL section_add_keyword(print_key, keyword)
893 CALL keyword_release(keyword)
894
895 CALL section_add_subsection(section, print_key)
896 CALL section_release(print_key)
897
898 CALL cp_print_key_section_create(print_key, __location__, "FOD", &
899 description="Fractional occupation number weighted density (FOD) of Grimme and Hansen "// &
900 "[doi:10.1002/anie.201501887]. Prints the orbital sum N_FOD. "// &
901 "Requires GPW at Gamma and positive-temperature Fermi-Dirac smearing. "// &
902 "FOD is a qualitative static-correlation diagnostic, not a proof of "// &
903 "multireference character. Results depend on the functional and electronic "// &
904 "temperature; metallic occupations need a different interpretation.", &
905 print_level=debug_print_level + 1, filename="", citations=[grimme2015fod])
906 CALL keyword_create(keyword, __location__, name="CUBE", &
907 description="Also collocate the FOD density, print its grid integral and write a cube "// &
908 "in electrons/bohr**3. Without this option only the inexpensive orbital sum is computed.", &
909 default_l_val=.false., lone_keyword_l_val=.true.)
910 CALL section_add_keyword(print_key, keyword)
911 CALL keyword_release(keyword)
912 CALL keyword_create(keyword, __location__, name="STRIDE", &
913 description="Cube sampling stride. Supply one value for all directions or three values.", &
914 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
915 CALL section_add_keyword(print_key, keyword)
916 CALL keyword_release(keyword)
917 CALL section_add_subsection(section, print_key)
918 CALL section_release(print_key)
919
920 CALL cp_print_key_section_create(print_key, __location__, "tot_density_cube", &
921 description="Controls printing of cube files with "// &
922 "the total density (electrons+atomic core). Note that "// &
923 "the value of the total density is positive where the "// &
924 "electron density dominates and negative where the core is. "// &
925 "When GPW is enabled this will simply print the combined density "// &
926 "of the valence electrons and charge-balanced core. In GAPW the "// &
927 "electronic density (hard+soft plus a correction term) is printed "// &
928 "together with the charge-balanced core density to produce a complete "// &
929 "representation of the total density.", &
930 print_level=high_print_level, filename="")
931 CALL keyword_create(keyword, __location__, name="stride", &
932 description="The stride (X,Y,Z) used to write the cube file "// &
933 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
934 " 1 number valid for all components.", &
935 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
936 CALL section_add_keyword(print_key, keyword)
937 CALL keyword_release(keyword)
938
939 CALL keyword_create(keyword, __location__, name="APPEND", &
940 description="append the cube files when they already exist", &
941 default_l_val=.false., lone_keyword_l_val=.true.)
942 CALL section_add_keyword(print_key, keyword)
943 CALL keyword_release(keyword)
944
945 CALL keyword_create(keyword, __location__, name="MAX_FILE_SIZE_MB", &
946 description="Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
947 usage="MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
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__, "v_hartree_cube", &
955 description="Controls the printing of a cube file with eletrostatic"// &
956 " potential generated by the total density (electrons+ions). It is"// &
957 " valid only for QS with GPW formalism."// &
958 " Note that by convention the potential has opposite sign than the expected physical one.", &
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 CALL keyword_create(keyword, __location__, name="MAX_FILE_SIZE_MB", &
973 description="Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
974 usage="MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
975 CALL section_add_keyword(print_key, keyword)
976 CALL keyword_release(keyword)
977
978 CALL section_add_subsection(section, print_key)
979 CALL section_release(print_key)
980
981 CALL cp_print_key_section_create(print_key, __location__, "external_potential_cube", &
982 description="Controls the printing of a cube file with external"// &
983 " potential from the DFT%EXTERNAL_POTENTIAL section only.", &
984 print_level=high_print_level, filename="")
985 CALL keyword_create(keyword, __location__, name="stride", &
986 description="The stride (X,Y,Z) used to write the cube file "// &
987 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
988 " 1 number valid for all components.", &
989 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
990 CALL section_add_keyword(print_key, keyword)
991 CALL keyword_release(keyword)
992 CALL keyword_create(keyword, __location__, name="APPEND", &
993 description="append the cube files when they already exist", &
994 default_l_val=.false., lone_keyword_l_val=.true.)
995 CALL section_add_keyword(print_key, keyword)
996 CALL keyword_release(keyword)
997 CALL keyword_create(keyword, __location__, name="MAX_FILE_SIZE_MB", &
998 description="Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
999 usage="MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
1000 CALL section_add_keyword(print_key, keyword)
1001 CALL keyword_release(keyword)
1002 CALL section_add_subsection(section, print_key)
1003 CALL section_release(print_key)
1004
1005 ! Output of BQB volumetric files
1006 CALL cp_print_key_section_create(print_key, __location__, name="E_DENSITY_BQB", &
1007 description="Controls the output of the electron density to the losslessly"// &
1008 " compressed BQB file format, see [Brehm2018]"// &
1009 " (via LibBQB see <https://brehm-research.de/bqb>)."// &
1010 " Currently does not work with changing cell vector (NpT ensemble).", &
1011 print_level=debug_print_level + 1, filename="", &
1012 citations=[brehm2018])
1013
1014 CALL keyword_create(keyword, __location__, name="SKIP_FIRST", &
1015 description="Skips the first step of a MD run (avoids duplicate step if restarted).", &
1016 usage="SKIP_FIRST T", default_l_val=.false., lone_keyword_l_val=.true.)
1017 CALL section_add_keyword(print_key, keyword)
1018 CALL keyword_release(keyword)
1019
1020 CALL keyword_create(keyword, __location__, name="STORE_STEP_NUMBER", &
1021 description="Stores the step number and simulation time in the comment line of each BQB"// &
1022 " frame. Switch it off for binary compatibility with original CP2k CUBE files.", &
1023 usage="STORE_STEP_NUMBER F", default_l_val=.true., lone_keyword_l_val=.true.)
1024 CALL section_add_keyword(print_key, keyword)
1025 CALL keyword_release(keyword)
1026
1027 CALL keyword_create(keyword, __location__, name="CHECK", &
1028 description="Performs an on-the-fly decompression of each compressed BQB frame to check"// &
1029 " whether the volumetric data exactly matches, and aborts the run if not so.", &
1030 usage="CHECK T", default_l_val=.false., lone_keyword_l_val=.true.)
1031 CALL section_add_keyword(print_key, keyword)
1032 CALL keyword_release(keyword)
1033
1034 CALL keyword_create(keyword, __location__, name="OVERWRITE", &
1035 description="Specify this keyword to overwrite the output BQB file if"// &
1036 " it already exists. By default, the data is appended to an existing file.", &
1037 usage="OVERWRITE T", default_l_val=.false., lone_keyword_l_val=.true.)
1038 CALL section_add_keyword(print_key, keyword)
1039 CALL keyword_release(keyword)
1040
1041 CALL keyword_create(keyword, __location__, name="HISTORY", &
1042 description="Controls how many previous steps are taken into account for extrapolation in"// &
1043 " compression. Use a value of 1 to compress the frames independently.", &
1044 usage="HISTORY 10", n_var=1, default_i_val=10, type_of_var=integer_t)
1045 CALL section_add_keyword(print_key, keyword)
1046 CALL keyword_release(keyword)
1047
1048 CALL keyword_create(keyword, __location__, name="PARAMETER_KEY", &
1049 description="Allows to supply previously optimized compression parameters via a"// &
1050 " parameter key (alphanumeric character sequence starting with 'at')."// &
1051 " Just leave away the 'at' sign here, because CP2k will otherwise"// &
1052 " assume it is a variable name in the input", &
1053 usage="PARAMETER_KEY <KEY>", n_var=1, default_c_val="", type_of_var=char_t)
1054 CALL section_add_keyword(print_key, keyword)
1055 CALL keyword_release(keyword)
1056
1057 CALL keyword_create(keyword, __location__, name="OPTIMIZE", &
1058 description="Controls the time spent to optimize the parameters for compression efficiency.", &
1059 usage="OPTIMIZE {OFF,QUICK,NORMAL,PATIENT,EXHAUSTIVE}", repeats=.false., n_var=1, &
1060 default_i_val=bqb_opt_quick, &
1061 enum_c_vals=s2a("OFF", "QUICK", "NORMAL", "PATIENT", "EXHAUSTIVE"), &
1062 enum_desc=s2a("No optimization (use defaults)", "Quick optimization", &
1063 "Standard optimization", "Precise optimization", "Exhaustive optimization"), &
1065 CALL section_add_keyword(print_key, keyword)
1066 CALL keyword_release(keyword)
1067
1068 CALL section_add_subsection(section, print_key)
1069 CALL section_release(print_key)
1070
1071 ! Voronoi Integration via LibVori
1072 CALL create_print_voronoi_section(print_key)
1073 CALL section_add_subsection(section, print_key)
1074 CALL section_release(print_key)
1075
1076 ! cube files for data generated by the implicit (generalized) Poisson solver
1077 CALL create_implicit_psolver_section(subsection)
1078 CALL section_add_subsection(section, subsection)
1079 CALL section_release(subsection)
1080
1081 ! ZMP adding the print section for the v_xc cube
1082 CALL cp_print_key_section_create(print_key, __location__, "v_xc_cube", &
1083 description="Controls the printing of a cube file with xc"// &
1084 " potential generated by the ZMP method (for the moment). It is"// &
1085 " valid only for QS with GPW formalism .", &
1086 print_level=high_print_level, filename="")
1087 CALL keyword_create(keyword, __location__, name="stride", &
1088 description="The stride (X,Y,Z) used to write the cube file "// &
1089 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1090 " 1 number valid for all components.", &
1091 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
1092 CALL section_add_keyword(print_key, keyword)
1093 CALL keyword_release(keyword)
1094 CALL keyword_create(keyword, __location__, name="APPEND", &
1095 description="append the cube files when they already exist", &
1096 default_l_val=.false., lone_keyword_l_val=.true.)
1097 CALL section_add_keyword(print_key, keyword)
1098 CALL keyword_release(keyword)
1099
1100 CALL section_add_subsection(section, print_key)
1101 CALL section_release(print_key)
1102
1103 CALL cp_print_key_section_create(print_key, __location__, "efield_cube", &
1104 description="Controls the printing of cube files with electric"// &
1105 " field generated by the total density (electrons+ions). It is"// &
1106 " valid only for QS with GPW formalism.", &
1107 print_level=high_print_level, filename="")
1108 CALL keyword_create(keyword, __location__, name="stride", &
1109 description="The stride (X,Y,Z) used to write the cube file "// &
1110 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1111 " 1 number valid for all components.", &
1112 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
1113 CALL section_add_keyword(print_key, keyword)
1114 CALL keyword_release(keyword)
1115 CALL keyword_create(keyword, __location__, name="APPEND", &
1116 description="append the cube files when they already exist", &
1117 default_l_val=.false., lone_keyword_l_val=.true.)
1118 CALL section_add_keyword(print_key, keyword)
1119 CALL keyword_release(keyword)
1120 CALL keyword_create(keyword, __location__, name="MAX_FILE_SIZE_MB", &
1121 description="Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
1122 usage="MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
1123 CALL section_add_keyword(print_key, keyword)
1124 CALL keyword_release(keyword)
1125
1126 CALL section_add_subsection(section, print_key)
1127 CALL section_release(print_key)
1128
1129 CALL create_elf_print_section(print_key, "ELF_CUBE", &
1130 "cube", &
1131 [2, 2, 2], "STRIDE 2 2 2", high_print_level, "")
1132 CALL keyword_create(keyword, __location__, name="APPEND", &
1133 description="append the cube files when they already exist", &
1134 default_l_val=.false., lone_keyword_l_val=.true.)
1135 CALL section_add_keyword(print_key, keyword)
1136 CALL keyword_release(keyword)
1137
1138 CALL section_add_subsection(section, print_key)
1139 CALL section_release(print_key)
1140
1141 CALL create_elf_print_section(print_key, "ELF_OPENPMD", &
1142 "openPMD", &
1143 [1, 1, 1], "STRIDE 1 1 1", debug_print_level + 1, "")
1144 CALL add_generic_openpmd_arguments(print_key)
1145 CALL section_add_subsection(section, print_key)
1146 CALL section_release(print_key)
1147
1148 CALL cp_print_key_section_create(print_key, __location__, "LOCAL_ENERGY_CUBE", &
1149 description="Controls the printing of cube files with the local"// &
1150 " energy. It is valid only for QS with GPW/GAPW formalism."// &
1151 " Meta and hybrid functionals are not possible. For GAPW/GAPW_XC"// &
1152 " and ADMM-GAPW this regular-grid cube keeps the existing soft-grid"// &
1153 " semantics; atom-centered hard one-center terms are not projected"// &
1154 " onto the cube grid.", &
1155 print_level=debug_print_level, filename="")
1156 CALL keyword_create(keyword, __location__, name="stride", &
1157 description="The stride (X,Y,Z) used to write the cube file "// &
1158 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1159 " 1 number valid for all components.", &
1160 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
1161 CALL section_add_keyword(print_key, keyword)
1162 CALL keyword_release(keyword)
1163 CALL keyword_create(keyword, __location__, name="APPEND", &
1164 description="append the cube files when they already exist", &
1165 default_l_val=.false., lone_keyword_l_val=.true.)
1166 CALL section_add_keyword(print_key, keyword)
1167 CALL keyword_release(keyword)
1168 CALL keyword_create(keyword, __location__, name="MAX_FILE_SIZE_MB", &
1169 description="Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
1170 usage="MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
1171 CALL section_add_keyword(print_key, keyword)
1172 CALL keyword_release(keyword)
1173
1174 CALL section_add_subsection(section, print_key)
1175 CALL section_release(print_key)
1176
1177 CALL cp_print_key_section_create(print_key, __location__, "LOCAL_STRESS_CUBE", &
1178 description="Controls the printing of cube files with the local"// &
1179 " stress. It is valid only for QS with GPW/GAPW formalism."// &
1180 " Meta and hybrid functionals are not possible. For GAPW/GAPW_XC"// &
1181 " and ADMM-GAPW this regular-grid cube keeps the existing soft-grid"// &
1182 " semantics; atom-centered hard one-center terms are not projected"// &
1183 " onto the cube grid.", &
1184 print_level=debug_print_level, filename="")
1185 CALL keyword_create(keyword, __location__, name="stride", &
1186 description="The stride (X,Y,Z) used to write the cube file "// &
1187 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1188 " 1 number valid for all components.", &
1189 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
1190 CALL section_add_keyword(print_key, keyword)
1191 CALL keyword_release(keyword)
1192 CALL keyword_create(keyword, __location__, name="APPEND", &
1193 description="append the cube files when they already exist", &
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="MAX_FILE_SIZE_MB", &
1198 description="Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
1199 usage="MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
1200 CALL section_add_keyword(print_key, keyword)
1201 CALL keyword_release(keyword)
1202
1203 CALL section_add_subsection(section, print_key)
1204 CALL section_release(print_key)
1205
1206 CALL cp_print_key_section_create(print_key, __location__, "DOS", &
1207 description="Print density of states (DOS). "// &
1208 "Projected DOS output can be enabled with PDOS.", &
1209 print_level=debug_print_level, common_iter_levels=1, filename="")
1210
1211 CALL add_dos_keywords(print_key, xas_mode=.false.)
1212
1213 CALL keyword_create(keyword, __location__, name="MP_GRID", &
1214 description="Specify a Monkhorst-Pack grid with which to compute the density of states. "// &
1215 "Works only for a k-point calculation", &
1216 usage="MP_GRID {integer} {integer} {integer}", default_i_vals=[-1], &
1217 n_var=3, type_of_var=integer_t)
1218 CALL section_add_keyword(print_key, keyword)
1219 CALL keyword_release(keyword)
1220
1221 CALL section_add_subsection(section, print_key)
1222 CALL section_release(print_key)
1223
1224 CALL create_wannier_section(print_key)
1225 CALL section_add_subsection(section, print_key)
1226 CALL section_release(print_key)
1227
1228 !Printing of Moments
1229 CALL create_dipoles_section(print_key, "MOMENTS", high_print_level)
1230 CALL keyword_create( &
1231 keyword, __location__, &
1232 name="MAX_MOMENT", &
1233 description="Maximum moment to be calculated. Values higher than 1 not implemented under periodic boundaries.", &
1234 usage="MAX_MOMENT {integer}", &
1235 repeats=.false., &
1236 n_var=1, &
1237 type_of_var=integer_t, &
1238 default_i_val=1)
1239 CALL section_add_keyword(print_key, keyword)
1240 CALL keyword_release(keyword)
1241 CALL keyword_create( &
1242 keyword, __location__, &
1243 name="FORMAT", &
1244 description="Format of the moments output. DETAILED prints the traditional multi-line report. "// &
1245 "TRAJECTORY prints one machine-readable electric-dipole record per iteration. For periodic "// &
1246 "calculations each record also contains the cell matrix in Debye, which is required to unwrap "// &
1247 "Berry-phase jumps in variable cells.", &
1248 usage="FORMAT {DETAILED|TRAJECTORY}", &
1249 enum_c_vals=s2a("DETAILED", "TRAJECTORY"), &
1250 enum_desc=s2a("Traditional multi-line moments report", &
1251 "One electric-dipole record per iteration"), &
1253 default_i_val=moments_format_detailed)
1254 CALL section_add_keyword(print_key, keyword)
1255 CALL keyword_release(keyword)
1256 CALL keyword_create(keyword, __location__, &
1257 name="MAGNETIC", &
1258 description="Calculate also magnetic moments, only implemented without periodic boundaries", &
1259 usage="MAGNETIC yes", &
1260 repeats=.false., &
1261 n_var=1, &
1262 default_l_val=.false., &
1263 lone_keyword_l_val=.true.)
1264 CALL section_add_keyword(print_key, keyword)
1265 CALL keyword_release(keyword)
1266 CALL keyword_create(keyword, __location__, &
1267 name="VEL_REPRS", &
1268 description="Calculate expectation values of the el. multipole moments in their velocity "// &
1269 "representation during RTP. Implemented up to el. quadrupole moment.", &
1270 usage="VEL_REPRS yes", &
1271 repeats=.false., &
1272 n_var=1, &
1273 default_l_val=.false., &
1274 lone_keyword_l_val=.true.)
1275 CALL section_add_keyword(print_key, keyword)
1276 CALL keyword_release(keyword)
1277 CALL keyword_create(keyword, __location__, &
1278 name="COM_NL", &
1279 description="Include non local commutator for velocity representations. "// &
1280 "Necessary for origin independent results.", &
1281 usage="COM_NL yes", &
1282 repeats=.false., &
1283 n_var=1, &
1284 default_l_val=.false., &
1285 lone_keyword_l_val=.true.)
1286 CALL section_add_keyword(print_key, keyword)
1287 CALL keyword_release(keyword)
1288 CALL keyword_create(keyword, __location__, &
1289 name="SECOND_REFERENCE_POINT", &
1290 description="Use second reference point", &
1291 usage="SECOND_REFERENCE_POINT .TRUE.", &
1292 repeats=.false., &
1293 n_var=1, &
1294 default_l_val=.false., &
1295 lone_keyword_l_val=.true.)
1296 CALL section_add_keyword(print_key, keyword)
1297 CALL keyword_release(keyword)
1298 CALL keyword_create(keyword, __location__, name="REFERENCE_2", &
1299 variants=s2a("REF_2"), &
1300 description="Define a second reference point for the calculation of the electrostatic moment.", &
1301 usage="REFERENCE_2 COM", &
1302 enum_c_vals=s2a("COM", "COAC", "USER_DEFINED", "ZERO"), &
1303 enum_desc=s2a("Use Center of Mass", &
1304 "Use Center of Atomic Charges", &
1305 "Use User Defined Point (Keyword:REF_POINT)", &
1306 "Use Origin of Coordinate System"), &
1307 enum_i_vals=[use_mom_ref_com, &
1311 default_i_val=use_mom_ref_zero)
1312 CALL section_add_keyword(print_key, keyword)
1313 CALL keyword_release(keyword)
1314 CALL keyword_create(keyword, __location__, name="REFERENCE_POINT_2", &
1315 variants=s2a("REF_POINT_2"), &
1316 description="Fixed second reference point for the calculations of the electrostatic moment.", &
1317 usage="REFERENCE_POINT_2 x y z", &
1318 repeats=.false., &
1319 n_var=3, default_r_vals=[0._dp, 0._dp, 0._dp], &
1320 type_of_var=real_t, &
1321 unit_str='bohr')
1322 CALL section_add_keyword(print_key, keyword)
1323 CALL keyword_release(keyword)
1324 CALL keyword_create(keyword, __location__, name="MAX_NMO", &
1325 description="Maximum number of molecular orbitals closest to the Fermi "// &
1326 "level for which dipole matrix elements and Berry curvatures are printed "// &
1327 "per k-point. 0 for all orbitals. Ignored if not a KPOINT calculation.", &
1328 usage="MAX_NMO {integer}", &
1329 repeats=.false., &
1330 n_var=1, default_i_val=10, &
1331 type_of_var=integer_t)
1332 CALL section_add_keyword(print_key, keyword)
1333 CALL keyword_release(keyword)
1334 CALL create_kpoint_set_section(subsection)
1335 CALL section_add_subsection(print_key, subsection)
1336 CALL section_release(subsection)
1337 CALL create_kpoints_section(subsection)
1338 CALL section_add_subsection(print_key, subsection)
1339 CALL section_release(subsection)
1340 CALL keyword_create(keyword, __location__, name="KG", &
1341 description="Print the electronic moments separately for KG subsystems", &
1342 usage="KG .TRUE.", &
1343 repeats=.false., &
1344 n_var=1, &
1345 default_l_val=.false., &
1346 lone_keyword_l_val=.true.)
1347 CALL section_add_keyword(print_key, keyword)
1348 CALL keyword_release(keyword)
1349 CALL section_add_subsection(section, print_key)
1350 CALL section_release(print_key)
1351
1352 ! Mulliken population analysis
1353 CALL cp_print_key_section_create(print_key, __location__, "MULLIKEN", &
1354 description="Controls the printing of the Mulliken (spin) population analysis", &
1355 print_level=medium_print_level, filename="__STD_OUT__", &
1356 common_iter_levels=1)
1357 CALL keyword_create( &
1358 keyword, __location__, &
1359 name="PRINT_GOP", &
1360 description="Print the gross orbital populations (GOP) in addition to the gross atomic populations (GAP) "// &
1361 "and net charges", &
1362 usage="PRINT_GOP yes", &
1363 repeats=.false., &
1364 n_var=1, &
1365 default_l_val=.false., &
1366 lone_keyword_l_val=.true.)
1367 CALL section_add_keyword(print_key, keyword)
1368 CALL keyword_release(keyword)
1369 CALL keyword_create( &
1370 keyword, __location__, &
1371 name="PRINT_ALL", &
1372 description="Print all information including the full net AO and overlap population matrix", &
1373 usage="PRINT_ALL yes", &
1374 repeats=.false., &
1375 n_var=1, &
1376 default_l_val=.false., &
1377 lone_keyword_l_val=.true.)
1378 CALL section_add_keyword(print_key, keyword)
1379 CALL keyword_release(keyword)
1380 CALL section_add_subsection(section, print_key)
1381 CALL section_release(print_key)
1382
1383 ! Lowdin population analysis (fairly expensive to compute, so only at high)
1384 CALL cp_print_key_section_create(print_key, __location__, "LOWDIN", &
1385 description="Controls the printing of the Lowdin (spin) population analysis", &
1386 print_level=high_print_level, filename="__STD_OUT__", &
1387 common_iter_levels=1)
1388 CALL keyword_create( &
1389 keyword, __location__, &
1390 name="PRINT_GOP", &
1391 description="Print the orbital populations in addition to the atomic populations and net charges", &
1392 usage="PRINT_GOP yes", &
1393 repeats=.false., &
1394 n_var=1, &
1395 default_l_val=.false., &
1396 lone_keyword_l_val=.true.)
1397 CALL section_add_keyword(print_key, keyword)
1398 CALL keyword_release(keyword)
1399 CALL keyword_create( &
1400 keyword, __location__, &
1401 name="PRINT_ALL", &
1402 description="Print all information including the full symmetrically orthogonalised density matrix", &
1403 usage="PRINT_ALL yes", &
1404 repeats=.false., &
1405 n_var=1, &
1406 default_l_val=.false., &
1407 lone_keyword_l_val=.true.)
1408 CALL section_add_keyword(print_key, keyword)
1409 CALL keyword_release(keyword)
1410 CALL section_add_subsection(section, print_key)
1411 CALL section_release(print_key)
1412
1413 ! Hirshfeld population analysis
1414 CALL cp_print_key_section_create(print_key, __location__, "HIRSHFELD", &
1415 description="Controls the printing of the Hirshfeld (spin) population analysis", &
1416 print_level=medium_print_level, filename="__STD_OUT__", &
1417 common_iter_levels=1)
1418 CALL keyword_create(keyword, __location__, name="SELF_CONSISTENT", &
1419 description="Calculate charges from the Hirscheld-I (self_consistent) method."// &
1420 " This scales only the full shape function, not the added charge as in the original scheme.", &
1421 usage="SELF_CONSISTENT yes", repeats=.false., n_var=1, &
1422 default_l_val=.false., lone_keyword_l_val=.true.)
1423 CALL section_add_keyword(print_key, keyword)
1424 CALL keyword_release(keyword)
1425 CALL keyword_create(keyword, __location__, name="SHAPE_FUNCTION", &
1426 description="Type of shape function used for Hirshfeld partitioning.", &
1427 usage="SHAPE_FUNCTION {Gaussian,Density}", repeats=.false., n_var=1, &
1428 default_i_val=shape_function_gaussian, &
1429 enum_c_vals=s2a("GAUSSIAN", "DENSITY"), &
1430 enum_desc=s2a("Single Gaussian with Colvalent radius", &
1431 "Atomic density expanded in multiple Gaussians"), &
1433 CALL section_add_keyword(print_key, keyword)
1434 CALL keyword_release(keyword)
1435 CALL keyword_create(keyword, __location__, name="REFERENCE_CHARGE", &
1436 description="Charge of atomic partitioning function for Hirshfeld method.", &
1437 usage="REFERENCE_CHARGE {Atomic,Mulliken}", repeats=.false., n_var=1, &
1438 default_i_val=ref_charge_atomic, &
1439 enum_c_vals=s2a("ATOMIC", "MULLIKEN"), &
1440 enum_desc=s2a("Use atomic core charges", "Calculate Mulliken charges"), &
1442 CALL section_add_keyword(print_key, keyword)
1443 CALL keyword_release(keyword)
1444 CALL keyword_create(keyword, __location__, name="USER_RADIUS", &
1445 description="Use user defined radii to generate Gaussians."// &
1446 " These radii are defined by the keyword ATOMIC_RADII", &
1447 usage="USER_RADIUS yes", repeats=.false., n_var=1, &
1448 default_l_val=.false., lone_keyword_l_val=.true.)
1449 CALL section_add_keyword(print_key, keyword)
1450 CALL keyword_release(keyword)
1451 CALL keyword_create(keyword, __location__, name="ATOMIC_RADII", &
1452 description="Defines custom radii to setup the spherical Gaussians.", &
1453 usage="ATOMIC_RADII {real} {real} {real}", repeats=.false., &
1454 unit_str="angstrom", &
1455 type_of_var=real_t, n_var=-1)
1456 CALL section_add_keyword(print_key, keyword)
1457 CALL keyword_release(keyword)
1458 CALL section_add_subsection(section, print_key)
1459 CALL section_release(print_key)
1460
1461 ! Print EEQ Charges
1462 CALL cp_print_key_section_create(print_key, __location__, "EEQ_CHARGES", &
1463 description="Controls the printing of the EEQ charges", &
1464 print_level=debug_print_level, filename="__STD_OUT__", &
1465 common_iter_levels=1, &
1467 CALL section_add_subsection(section, print_key)
1468 CALL section_release(print_key)
1469
1470 ! MAO (modified atomic orbital) analysis
1471 CALL cp_print_key_section_create(print_key, __location__, "MAO_ANALYSIS", &
1472 description="Controls the printing of the MAO (modified atomic orbital) analysis", &
1473 print_level=debug_print_level, filename="__STD_OUT__", &
1474 common_iter_levels=1, &
1475 citations=[heinzmann1976, ehrhardt1985])
1476 CALL keyword_create(keyword, __location__, name="EPS_FILTER", &
1477 description="Threshold for matrix elements in MAO determination.", &
1478 usage="EPS_FILTER reps", repeats=.false., n_var=1, &
1479 default_r_val=1.e-8_dp, type_of_var=real_t)
1480 CALL section_add_keyword(print_key, keyword)
1481 CALL keyword_release(keyword)
1482 CALL keyword_create(keyword, __location__, name="REFERENCE_BASIS", &
1483 description="Basis set used to construct MAO's.", &
1484 usage="REFERENCE_BASIS {ORBITAL,PRIMITIVE,EXTERNAL}", repeats=.false., n_var=1, &
1485 default_i_val=mao_basis_orb, &
1486 enum_c_vals=s2a("ORBITAL", "PRIMITIVE", "EXTERNAL"), &
1487 enum_desc=s2a("Use standard orbital basis set", "Construct basis from primitives of the orbital basis", &
1488 "Read external basis (MAO)"), &
1490 CALL section_add_keyword(print_key, keyword)
1491 CALL keyword_release(keyword)
1492 CALL keyword_create(keyword, __location__, name="PRINT_BASIS", &
1493 description="Print out MAO reference basis.", &
1494 usage="PRINT_BASIS {logical}", repeats=.false., n_var=1, &
1495 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=logical_t)
1496 CALL section_add_keyword(print_key, keyword)
1497 CALL keyword_release(keyword)
1498 CALL keyword_create(keyword, __location__, name="PRINT_PAO", &
1499 description="Print out MAO in PAO format to be used for optimization or learning.", &
1500 usage="PRINT_PAO {logical}", repeats=.false., n_var=1, &
1501 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=logical_t)
1502 CALL section_add_keyword(print_key, keyword)
1503 CALL keyword_release(keyword)
1504 CALL keyword_create(keyword, __location__, name="EPS_GRAD", &
1505 description="Threshold for gradient in MAO optimization.", &
1506 usage="EPS_GRAD reps", repeats=.false., n_var=1, &
1507 default_r_val=1.e-4_dp, type_of_var=real_t)
1508 CALL section_add_keyword(print_key, keyword)
1509 CALL keyword_release(keyword)
1510 CALL keyword_create(keyword, __location__, name="EPS_FUNCTION", &
1511 description="Threshold for electron defect in MAO optimization.", &
1512 usage="EPS_FUNCTION feps", repeats=.false., n_var=1, &
1513 default_r_val=1.e-3_dp, type_of_var=real_t)
1514 CALL section_add_keyword(print_key, keyword)
1515 CALL keyword_release(keyword)
1516 CALL keyword_create(keyword, __location__, name="MAX_ITER", &
1517 description="Maximum allowed iterations for MAO optimization.", &
1518 usage="MAX_ITER iter", repeats=.false., n_var=1, &
1519 default_i_val=0, type_of_var=integer_t)
1520 CALL section_add_keyword(print_key, keyword)
1521 CALL keyword_release(keyword)
1522 CALL keyword_create(keyword, __location__, name="NEGLECT_ABC", &
1523 description="Neglect 3 atom terms in MAO analysis.", &
1524 usage="NEGLECT_ABC {logical}", repeats=.false., n_var=1, &
1525 default_l_val=.true., lone_keyword_l_val=.true., type_of_var=logical_t)
1526 CALL section_add_keyword(print_key, keyword)
1527 CALL keyword_release(keyword)
1528 CALL keyword_create(keyword, __location__, name="AB_THRESHOLD", &
1529 description="Threshold for printing of AB shared electron numbers.", &
1530 usage="AB_THRESHOLD thr", repeats=.false., n_var=1, &
1531 default_r_val=1.e-2_dp, type_of_var=real_t)
1532 CALL section_add_keyword(print_key, keyword)
1533 CALL keyword_release(keyword)
1534 CALL keyword_create(keyword, __location__, name="ABC_THRESHOLD", &
1535 description="Threshold for printing of ABC shared electron numbers.", &
1536 usage="ABC_THRESHOLD thr", repeats=.false., n_var=1, &
1537 default_r_val=1.e-5_dp, type_of_var=real_t)
1538 CALL section_add_keyword(print_key, keyword)
1539 CALL keyword_release(keyword)
1540 CALL keyword_create(keyword, __location__, name="ANALYZE_UNASSIGNED_CHARGE", &
1541 description="Calculate atomic contributions to the unassigned charge.", &
1542 usage="ANALYZE_UNASSIGNED_CHARGE {logical}", repeats=.false., n_var=1, &
1543 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=logical_t)
1544 CALL section_add_keyword(print_key, keyword)
1545 CALL keyword_release(keyword)
1546 CALL section_add_subsection(section, print_key)
1547 CALL section_release(print_key)
1548
1549 !Minimal localized basis analysis
1550 CALL cp_print_key_section_create(print_key, __location__, "MINBAS_ANALYSIS", &
1551 description="Controls the printing of the minimal localized basis analysis", &
1552 print_level=debug_print_level, filename="__STD_OUT__", &
1553 common_iter_levels=1, &
1554 citations=[lu2004])
1555 CALL keyword_create(keyword, __location__, name="EPS_FILTER", &
1556 description="Threshold for matrix elements in basis determination.", &
1557 usage="EPS_FILTER reps", repeats=.false., n_var=1, &
1558 default_r_val=1.e-8_dp, type_of_var=real_t)
1559 CALL section_add_keyword(print_key, keyword)
1560 CALL keyword_release(keyword)
1561 CALL keyword_create(keyword, __location__, name="FULL_ORTHOGONALIZATION", &
1562 description="Orthogonalize the localized minimal basis.", &
1563 usage="FULL_ORTHOGONALIZATION {logical}", repeats=.false., n_var=1, &
1564 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=logical_t)
1565 CALL section_add_keyword(print_key, keyword)
1566 CALL keyword_release(keyword)
1567 CALL keyword_create(keyword, __location__, name="BOND_ORDER", &
1568 description="Calculate Mayer Bond Orders.", &
1569 usage="BOND_ORDER {logical}", repeats=.false., n_var=1, &
1570 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=logical_t)
1571 CALL section_add_keyword(print_key, keyword)
1572 CALL keyword_release(keyword)
1573
1574 NULLIFY (sub_print_key)
1575 CALL cp_print_key_section_create(sub_print_key, __location__, "MINBAS_CUBE", &
1576 description="Write the minimal basis on Cube files.", &
1577 print_level=debug_print_level + 1, add_last=add_last_numeric, filename="MINBAS")
1578 CALL keyword_create(keyword, __location__, name="STRIDE", &
1579 description="The stride (X,Y,Z) used to write the cube file "// &
1580 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1581 " 1 number valid for all components.", &
1582 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
1583 CALL section_add_keyword(sub_print_key, keyword)
1584 CALL keyword_release(keyword)
1585 CALL keyword_create(keyword, __location__, name="ATOM_LIST", &
1586 description="Indexes of the atoms minimal basis to be printed as cube files "// &
1587 "This keyword can be repeated several times "// &
1588 "(useful if you have to specify many indexes).", &
1589 usage="ATOM_LIST 1 2", &
1590 n_var=-1, type_of_var=integer_t, repeats=.true.)
1591 CALL section_add_keyword(sub_print_key, keyword)
1592 CALL keyword_release(keyword)
1593 CALL section_add_subsection(print_key, sub_print_key)
1594 CALL section_release(sub_print_key)
1595
1596 NULLIFY (sub_print_key)
1597 CALL cp_print_key_section_create(sub_print_key, __location__, "MINBAS_MOLDEN", &
1598 description="Write the minimal basis in Molden file format, for visualisation.", &
1599 print_level=debug_print_level + 1, add_last=add_last_numeric, filename="MINBAS")
1600 CALL keyword_create(keyword, __location__, name="UNIT", &
1601 description="Unit for coordinates and cell in the MOLDEN file.", &
1602 usage="UNIT ANGSTROM", &
1603 enum_c_vals=s2a("BOHR", "ANGSTROM"), &
1604 enum_desc=s2a("Write in Bohr (AU)", "Write in Angstrom"), &
1605 enum_i_vals=[1, 2], &
1606 default_i_val=1)
1607 CALL section_add_keyword(sub_print_key, keyword)
1608 CALL keyword_release(keyword)
1609 CALL keyword_create(keyword, __location__, name="WRITE_CELL", &
1610 description="Controls whether the [Cell] block is written to the MOLDEN file.", &
1611 usage="WRITE_CELL T", &
1612 default_l_val=.false., lone_keyword_l_val=.true.)
1613 CALL section_add_keyword(sub_print_key, keyword)
1614 CALL keyword_release(keyword)
1615 CALL keyword_create(keyword, __location__, name="WRITE_PSEUDO", &
1616 description="Controls whether the [Pseudo] block is written to the MOLDEN file.", &
1617 usage="WRITE_PSEUDO T", &
1618 default_l_val=.false., lone_keyword_l_val=.true.)
1619 CALL section_add_keyword(sub_print_key, keyword)
1620 CALL keyword_release(keyword)
1621 CALL keyword_create(keyword, __location__, name="MARK_GHOST", &
1622 description="Controls whether ghost atoms are marked in the [Atoms] block by "// &
1623 "setting their atomic number to zero.", &
1624 usage="MARK_GHOST T", &
1625 default_l_val=.false., lone_keyword_l_val=.true.)
1626 CALL section_add_keyword(sub_print_key, keyword)
1627 CALL keyword_release(keyword)
1628 CALL keyword_create(keyword, __location__, name="NDIGITS", &
1629 description="Specifies the number of significant digits retained. 3 is OK for visualization.", &
1630 usage="NDIGITS {int}", &
1631 default_i_val=3)
1632 CALL section_add_keyword(sub_print_key, keyword)
1633 CALL keyword_release(keyword)
1634 CALL keyword_create(keyword, __location__, name="GTO_KIND", &
1635 description="Representation of Gaussian-type orbitals", &
1636 default_i_val=gto_spherical, &
1637 enum_c_vals=s2a("CARTESIAN", "SPHERICAL"), &
1638 enum_desc=s2a( &
1639 "Cartesian Gaussian orbitals. Use with caution", &
1640 "Spherical Gaussian orbitals. Incompatible with VMD"), &
1641 enum_i_vals=[gto_cartesian, gto_spherical])
1642 CALL section_add_keyword(sub_print_key, keyword)
1643 CALL keyword_release(keyword)
1644 CALL section_add_subsection(print_key, sub_print_key)
1645 CALL section_release(sub_print_key)
1646
1647 CALL section_add_subsection(section, print_key)
1648 CALL section_release(print_key)
1649
1650 !Energy Decomposition Analysis
1651 CALL cp_print_key_section_create(print_key, __location__, "ENERGY_DECOMPOSITION_ANALYSIS", &
1652 description="Controls energy decomposition analysis", &
1653 print_level=debug_print_level, filename="__STD_OUT__", &
1654 common_iter_levels=1, &
1655 citations=[eriksen2020])
1656 CALL keyword_create(keyword, __location__, name="REFERENCE_ORB_CANONICAL", &
1657 description="Use reference orbitals in canonical form.", &
1658 usage="REFERENCE_ORB_CANONICAL {logical}", repeats=.false., n_var=1, &
1659 default_l_val=.true., lone_keyword_l_val=.true., type_of_var=logical_t)
1660 CALL section_add_keyword(print_key, keyword)
1661 CALL keyword_release(keyword)
1662 CALL keyword_create(keyword, __location__, name="SKIP_LOCALIZATION", &
1663 description="Don't localize the MOs.", &
1664 usage="SKIP_LOCALIZATION {logical}", repeats=.false., n_var=1, &
1665 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=logical_t)
1666 CALL section_add_keyword(print_key, keyword)
1667 CALL keyword_release(keyword)
1668 CALL keyword_create(keyword, __location__, name="DETAILED_ENERGY", &
1669 description="Calculate detailed atomic decomposition energies.", &
1670 usage="DETAILED_ENERGY {logical}", repeats=.false., n_var=1, &
1671 default_l_val=.false., lone_keyword_l_val=.true., type_of_var=logical_t)
1672 CALL section_add_keyword(print_key, keyword)
1673 CALL keyword_release(keyword)
1674 CALL keyword_create(keyword, __location__, name="EWALD_ALPHA_PARAMETER", &
1675 description="Calculate Energy Decomposition for a specific alpha value. "// &
1676 "alpha = 1/(2*rc**2), see GTH pseudopotentials.", &
1677 usage="EWALD_ALPHA_PARAMETER alpha", repeats=.false., n_var=1, &
1678 default_r_val=0.0_dp, type_of_var=real_t)
1679 CALL section_add_keyword(print_key, keyword)
1680 CALL keyword_release(keyword)
1681
1682 CALL section_add_subsection(section, print_key)
1683 CALL section_release(print_key)
1684
1685 ! IAO (Intrinsic atomic orbital) analysis
1686 CALL cp_print_key_section_create(print_key, __location__, "IAO_ANALYSIS", &
1687 description="Controls the printing of the IAO (intrinsic atomic orbital) analysis", &
1688 print_level=debug_print_level, filename="__STD_OUT__", &
1689 common_iter_levels=1, &
1690 citations=[knizia2013])
1691 CALL keyword_create(keyword, __location__, name="EPS_SVD", &
1692 description="Threshold for matrix inversion eigenvalues.", &
1693 usage="EPS_SVD reps", repeats=.false., n_var=1, &
1694 default_r_val=0.0_dp, type_of_var=real_t)
1695 CALL section_add_keyword(print_key, keyword)
1696 CALL keyword_release(keyword)
1697 CALL keyword_create(keyword, __location__, name="EPS_OCC", &
1698 description="Threshold in occupation for vectors included.", &
1699 usage="EPS_OCC reps", repeats=.false., n_var=1, &
1700 default_r_val=0.0_dp, type_of_var=real_t)
1701 CALL section_add_keyword(print_key, keyword)
1702 CALL keyword_release(keyword)
1703 CALL keyword_create(keyword, __location__, name="ATOMIC_CHARGES", &
1704 description="Calculate atomic charges from IAO.", &
1705 usage="ATOMIC_CHARGES {logical}", repeats=.false., n_var=1, &
1706 default_l_val=.true., lone_keyword_l_val=.true., type_of_var=logical_t)
1707 CALL section_add_keyword(print_key, keyword)
1708 CALL keyword_release(keyword)
1709 ! IAO_MOLDEN
1710 NULLIFY (sub_print_key)
1711 CALL cp_print_key_section_create(sub_print_key, __location__, "IAO_MOLDEN", &
1712 description="Write the IAO basis in Molden file format, for visualisation.", &
1713 print_level=debug_print_level + 1, add_last=add_last_numeric, filename="IAOBAS")
1714 CALL keyword_create(keyword, __location__, name="UNIT", &
1715 description="Unit for coordinates and cell in the MOLDEN file.", &
1716 usage="UNIT ANGSTROM", &
1717 enum_c_vals=s2a("BOHR", "ANGSTROM"), &
1718 enum_desc=s2a("Write in Bohr (AU)", "Write in Angstrom"), &
1719 enum_i_vals=[1, 2], &
1720 default_i_val=1)
1721 CALL section_add_keyword(sub_print_key, keyword)
1722 CALL keyword_release(keyword)
1723 CALL keyword_create(keyword, __location__, name="WRITE_CELL", &
1724 description="Controls whether the [Cell] block is written to the MOLDEN file.", &
1725 usage="WRITE_CELL T", &
1726 default_l_val=.false., lone_keyword_l_val=.true.)
1727 CALL section_add_keyword(sub_print_key, keyword)
1728 CALL keyword_release(keyword)
1729 CALL keyword_create(keyword, __location__, name="WRITE_PSEUDO", &
1730 description="Controls whether the [Pseudo] block is written to the MOLDEN file.", &
1731 usage="WRITE_PSEUDO T", &
1732 default_l_val=.false., lone_keyword_l_val=.true.)
1733 CALL section_add_keyword(sub_print_key, keyword)
1734 CALL keyword_release(keyword)
1735 CALL keyword_create(keyword, __location__, name="MARK_GHOST", &
1736 description="Controls whether ghost atoms are marked in the [Atoms] block by "// &
1737 "setting their atomic number to zero.", &
1738 usage="MARK_GHOST T", &
1739 default_l_val=.false., lone_keyword_l_val=.true.)
1740 CALL section_add_keyword(sub_print_key, keyword)
1741 CALL keyword_release(keyword)
1742 CALL keyword_create(keyword, __location__, name="NDIGITS", &
1743 description="Specifies the number of significant digits retained. 3 is OK for visualization.", &
1744 usage="NDIGITS {int}", &
1745 default_i_val=3)
1746 CALL section_add_keyword(sub_print_key, keyword)
1747 CALL keyword_release(keyword)
1748 CALL keyword_create(keyword, __location__, name="GTO_KIND", &
1749 description="Representation of Gaussian-type orbitals", &
1750 default_i_val=gto_spherical, &
1751 enum_c_vals=s2a("CARTESIAN", "SPHERICAL"), &
1752 enum_desc=s2a( &
1753 "Cartesian Gaussian orbitals. Use with caution", &
1754 "Spherical Gaussian orbitals. Incompatible with VMD"), &
1755 enum_i_vals=[gto_cartesian, gto_spherical])
1756 CALL section_add_keyword(sub_print_key, keyword)
1757 CALL keyword_release(keyword)
1758 CALL section_add_subsection(print_key, sub_print_key)
1759 CALL section_release(sub_print_key)
1760 ! IAO_CUBES
1761 NULLIFY (sub_print_key)
1762 CALL cp_print_key_section_create(sub_print_key, __location__, "IAO_CUBES", &
1763 description="Controls the printing of the IAO basis "// &
1764 "as *.cube files.", &
1765 print_level=high_print_level, common_iter_levels=1, &
1766 add_last=add_last_numeric, filename="")
1767 CALL keyword_create(keyword, __location__, name="STRIDE", &
1768 description="The stride (X,Y,Z) used to write the cube file "// &
1769 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1770 " 1 number valid for all components.", &
1771 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
1772 CALL section_add_keyword(sub_print_key, keyword)
1773 CALL keyword_release(keyword)
1774 CALL keyword_create(keyword, __location__, name="APPEND", &
1775 description="append the cube files when they already exist", &
1776 default_l_val=.false., lone_keyword_l_val=.true.)
1777 CALL section_add_keyword(sub_print_key, keyword)
1778 CALL keyword_release(keyword)
1779 CALL keyword_create(keyword, __location__, name="ATOM_LIST", &
1780 description="Indices of the atoms to be included in basis CUBE file printing. ", &
1781 usage="ATOM_LIST {integer} {integer} .. {integer} ", &
1782 n_var=-1, type_of_var=integer_t, repeats=.true.)
1783 CALL section_add_keyword(sub_print_key, keyword)
1784 CALL keyword_release(keyword)
1785 CALL section_add_subsection(print_key, sub_print_key)
1786 CALL section_release(sub_print_key)
1787 ! One Center Expansion of IAO
1788 NULLIFY (sub_print_key)
1789 CALL cp_print_key_section_create(sub_print_key, __location__, "ONE_CENTER_EXPANSION", &
1790 description="Calculates single center expansion of IAOs ", &
1791 print_level=high_print_level, common_iter_levels=1, &
1792 add_last=add_last_numeric, filename="")
1793 CALL keyword_create(keyword, __location__, name="LMAX", &
1794 description="Maximum l quantum number used in the expansion.", &
1795 usage="LMAX 2", n_var=1, default_i_val=3, type_of_var=integer_t)
1796 CALL section_add_keyword(sub_print_key, keyword)
1797 CALL keyword_release(keyword)
1798 CALL keyword_create(keyword, __location__, name="NBAS", &
1799 description="Max number of basis functions used in the expansion."// &
1800 " Default is determined by the orbital basis set.", &
1801 usage="NBAS 10", n_var=1, default_i_val=-1, type_of_var=integer_t)
1802 CALL section_add_keyword(sub_print_key, keyword)
1803 CALL keyword_release(keyword)
1804 CALL keyword_create(keyword, __location__, name="APPEND", &
1805 description="Append the OCE basis files when it already exists", &
1806 default_l_val=.false., lone_keyword_l_val=.true.)
1807 CALL section_add_keyword(sub_print_key, keyword)
1808 CALL keyword_release(keyword)
1809 CALL section_add_subsection(print_key, sub_print_key)
1810 CALL section_release(sub_print_key)
1811 ! Intrinsic Bond orbitals
1812 NULLIFY (sub_print_key)
1813 CALL cp_print_key_section_create(sub_print_key, __location__, "BOND_ORBITALS", &
1814 description="Calculate intrinsic bond orbitals using "// &
1815 "localized MOs in IAO basis.", &
1816 print_level=high_print_level, common_iter_levels=1, &
1817 add_last=add_last_numeric, filename="")
1818
1819 CALL keyword_create(keyword, __location__, name="LOCALIZATION_OPERATOR", &
1820 description="Operator to be optimized for orbital localization", &
1821 enum_c_vals=s2a("PIPEK_MEZEY", "PIPEK_MEZEY_4", "L1NORM"), &
1822 enum_i_vals=[do_iaoloc_pm2, do_iaoloc_pm4, do_iaoloc_l1], &
1823 enum_desc=s2a("Use Pipek-Mezey operator (order 2)", &
1824 "Use Pipek-Mezey operator (order 4)", &
1825 "Use L1 norm"), &
1826 default_i_val=do_iaoloc_pm2)
1827 CALL section_add_keyword(sub_print_key, keyword)
1828 CALL keyword_release(keyword)
1829 CALL keyword_create(keyword, __location__, name="ENERGY_LOCALIZATION_FUNCTION", &
1830 description="Function for energy localization: f(e_i), e_i orbital energy", &
1831 enum_c_vals=s2a("NONE", "ENERGY", "OCCUPATION"), &
1833 enum_desc=s2a("Don't use energy localization.", &
1834 "Use orbital energies for localization.", &
1835 "Use occupation numbers for localization."), &
1836 default_i_val=do_iaoloc_enone)
1837 CALL section_add_keyword(sub_print_key, keyword)
1838 CALL keyword_release(keyword)
1839 CALL keyword_create(keyword, __location__, name="ENERGY_LOCALIZATION_WEIGHT", &
1840 description="Weight given to energy localization, using f(e_i) function", &
1841 usage="ENERGY_LOCALIZATION_WEIGHT 0.1", n_var=1, &
1842 default_r_val=0.0_dp, type_of_var=real_t)
1843 CALL section_add_keyword(sub_print_key, keyword)
1844 CALL keyword_release(keyword)
1845
1846 ! CHARGE CENTER AND SPREAD
1847 NULLIFY (subsection)
1848 CALL cp_print_key_section_create(subsection, __location__, "CHARGE_CENTER", &
1849 description="Calculation and printing of centers and spreads "// &
1850 "of localized orbitals.", &
1851 print_level=high_print_level, common_iter_levels=1, &
1852 add_last=add_last_numeric, filename="")
1853 CALL keyword_create(keyword, __location__, name="POSITION_OPERATOR_BERRY", &
1854 description="Use Berry phase position operator.", &
1855 usage="POSITION_OPERATOR_BERRY T", n_var=1, &
1856 default_l_val=.true., lone_keyword_l_val=.true.)
1857 CALL section_add_keyword(subsection, keyword)
1858 CALL keyword_release(keyword)
1859 CALL section_add_subsection(sub_print_key, subsection)
1860 CALL section_release(subsection)
1861 ! IBO_MOLDEN
1862 NULLIFY (subsection)
1863 CALL cp_print_key_section_create(subsection, __location__, "IBO_MOLDEN", &
1864 description="Write the IBO orbitals in Molden file format, for visualisation.", &
1865 print_level=debug_print_level + 1, add_last=add_last_numeric, filename="IBOBAS")
1866 CALL keyword_create(keyword, __location__, name="UNIT", &
1867 description="Unit for coordinates and cell in the MOLDEN file.", &
1868 usage="UNIT ANGSTROM", &
1869 enum_c_vals=s2a("BOHR", "ANGSTROM"), &
1870 enum_desc=s2a("Write in Bohr (AU)", "Write in Angstrom"), &
1871 enum_i_vals=[1, 2], &
1872 default_i_val=1)
1873 CALL section_add_keyword(subsection, keyword)
1874 CALL keyword_release(keyword)
1875 CALL keyword_create(keyword, __location__, name="WRITE_CELL", &
1876 description="Controls whether the [Cell] block is written to the MOLDEN file.", &
1877 usage="WRITE_CELL T", &
1878 default_l_val=.false., lone_keyword_l_val=.true.)
1879 CALL section_add_keyword(subsection, keyword)
1880 CALL keyword_release(keyword)
1881 CALL keyword_create(keyword, __location__, name="WRITE_PSEUDO", &
1882 description="Controls whether the [Pseudo] block is written to the MOLDEN file.", &
1883 usage="WRITE_PSEUDO T", &
1884 default_l_val=.false., lone_keyword_l_val=.true.)
1885 CALL section_add_keyword(subsection, keyword)
1886 CALL keyword_release(keyword)
1887 CALL keyword_create(keyword, __location__, name="MARK_GHOST", &
1888 description="Controls whether ghost atoms are marked in the [Atoms] block by "// &
1889 "setting their atomic number to zero.", &
1890 usage="MARK_GHOST T", &
1891 default_l_val=.false., lone_keyword_l_val=.true.)
1892 CALL section_add_keyword(subsection, keyword)
1893 CALL keyword_release(keyword)
1894 CALL keyword_create(keyword, __location__, name="NDIGITS", &
1895 description="Specifies the number of significant digits retained. 3 is OK for visualization.", &
1896 usage="NDIGITS {int}", &
1897 default_i_val=3)
1898 CALL section_add_keyword(subsection, keyword)
1899 CALL keyword_release(keyword)
1900 CALL keyword_create(keyword, __location__, name="GTO_KIND", &
1901 description="Representation of Gaussian-type orbitals", &
1902 default_i_val=gto_spherical, &
1903 enum_c_vals=s2a("CARTESIAN", "SPHERICAL"), &
1904 enum_desc=s2a( &
1905 "Cartesian Gaussian orbitals. Use with caution", &
1906 "Spherical Gaussian orbitals. Incompatible with VMD"), &
1907 enum_i_vals=[gto_cartesian, gto_spherical])
1908 CALL section_add_keyword(subsection, keyword)
1909 CALL keyword_release(keyword)
1910 CALL section_add_subsection(sub_print_key, subsection)
1911 CALL section_release(subsection)
1912 ! IAO_CUBES
1913 NULLIFY (subsection)
1914 CALL cp_print_key_section_create(subsection, __location__, "IBO_CUBES", &
1915 description="Controls the printing of the IBO orbitals "// &
1916 "as *.cube files.", &
1917 print_level=high_print_level, common_iter_levels=1, &
1918 add_last=add_last_numeric, filename="")
1919 CALL keyword_create(keyword, __location__, name="STRIDE", &
1920 description="The stride (X,Y,Z) used to write the cube file "// &
1921 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
1922 " 1 number valid for all components.", &
1923 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
1924 CALL section_add_keyword(subsection, keyword)
1925 CALL keyword_release(keyword)
1926 CALL keyword_create(keyword, __location__, name="APPEND", &
1927 description="append the cube files when they already exist", &
1928 default_l_val=.false., lone_keyword_l_val=.true.)
1929 CALL section_add_keyword(subsection, keyword)
1930 CALL keyword_release(keyword)
1931 CALL keyword_create(keyword, __location__, name="STATE_LIST", &
1932 description="Indices of the orbitals to be included in IBO CUBE file printing. ", &
1933 usage="STATE_LIST {integer} {integer} .. {integer} ", &
1934 n_var=-1, type_of_var=integer_t, repeats=.true.)
1935 CALL section_add_keyword(subsection, keyword)
1936 CALL keyword_release(keyword)
1937
1938 CALL section_add_subsection(sub_print_key, subsection)
1939 CALL section_release(subsection)
1940 CALL section_add_subsection(print_key, sub_print_key)
1941 CALL section_release(sub_print_key)
1942
1943 NULLIFY (sub_print_key)
1944 CALL cp_print_key_section_create(sub_print_key, __location__, name="IAO_OVERLAP", &
1945 description="Controls the printout required for ROSE.", &
1946 print_level=debug_print_level, filename="CP2K_ROSE")
1947 CALL keyword_create(keyword, __location__, name="NDIGITS", &
1948 description="Specify the number of digits used to print the MO information.", &
1949 default_i_val=6)
1950 CALL section_add_keyword(sub_print_key, keyword)
1951 CALL keyword_release(keyword)
1952 CALL section_add_subsection(print_key, sub_print_key)
1953 CALL section_release(sub_print_key)
1954
1955 CALL section_add_subsection(section, print_key)
1956 CALL section_release(print_key)
1957 ! END OF IAO_ANALYSIS SECTION
1958
1959 !DOS from density matrix
1960 CALL cp_print_key_section_create(print_key, __location__, "ENERGY_WINDOWS", &
1961 description="Controls the printing of the DOS from the density matrix. "// &
1962 "This allows the calculation of the DOS even in density matrix based "// &
1963 "REAL_TIME_PROPAGATION and LS_SCF. "// &
1964 "However, it requires a cubically scaling diagonalization of the Hamiltonian. "// &
1965 "Hartree-Fock NYI, values will be wrong. "// &
1966 "Careful, the orbitals in rtp/emd are not actually eigenstates of the Hamiltonian. "// &
1967 "Assumes absence of spin polarization (so far).", &
1968 print_level=high_print_level, common_iter_levels=3, &
1969 each_iter_names=s2a("MD"), each_iter_values=[100], &
1970 add_last=add_last_numeric, filename="energy-windows")
1971 CALL keyword_create(keyword, __location__, name="N_WINDOWS", &
1972 description="The number of energy windows.", &
1973 usage="N_WINDOWS 200", &
1974 default_i_val=100)
1975 CALL section_add_keyword(print_key, keyword)
1976 CALL keyword_release(keyword)
1977 CALL keyword_create(keyword, __location__, name="EPS_FILTER", &
1978 description="Filtering threshold for sparse matrix operations.", &
1979 usage="EPS_FILTER 1.0E-6", &
1980 default_r_val=1.0e-14_dp)
1981 CALL section_add_keyword(print_key, keyword)
1982 CALL keyword_release(keyword)
1983 CALL keyword_create(keyword, __location__, name="RESTRICT_RANGE", &
1984 description="Restricts the energy windows to states close to the fermi level", &
1985 usage="RESTRICT_RANGE .TRUE.", &
1986 default_l_val=.false., lone_keyword_l_val=.true.)
1987 CALL section_add_keyword(print_key, keyword)
1988 CALL keyword_release(keyword)
1989 CALL keyword_create(keyword, __location__, name="RANGE", &
1990 description="If the RESTRICT_RANGE keyword is set, then all energy widnows will"// &
1991 " be placed in an interval from from the fermi level minus to the fermi level plus this keyword", &
1992 usage="RANGE 1", &
1993 default_r_val=1.0_dp)
1994 CALL section_add_keyword(print_key, keyword)
1995 CALL keyword_release(keyword)
1996 CALL keyword_create(keyword, __location__, name="PRINT_CUBES", &
1997 description="Print the energy windows to cube files", &
1998 usage="PRINT_CUBES .TRUE.", &
1999 default_l_val=.false., lone_keyword_l_val=.true.)
2000 CALL section_add_keyword(print_key, keyword)
2001 CALL keyword_release(keyword)
2002 CALL keyword_create(keyword, __location__, name="STRIDE", &
2003 description="The stride (X,Y,Z) used to write the energy windows cube files (if enabled) "// &
2004 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
2005 " 1 number valid for all components.", &
2006 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
2007 CALL section_add_keyword(print_key, keyword)
2008 CALL keyword_release(keyword)
2009 CALL section_add_subsection(section, print_key)
2010 CALL section_release(print_key)
2011
2012 ! Hamiltonian in CSR format
2013 CALL cp_print_key_section_create(print_key, __location__, "KS_CSR_WRITE", &
2014 description="Write the KS matrix in CSR format into a file.", &
2015 print_level=debug_print_level, filename="")
2016 CALL keyword_create(keyword, __location__, name="Threshold", &
2017 description="Threshold on the absolute value of the elements to be printed out. "// &
2018 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
2019 "if the block contains at least one non-zero element.", &
2020 usage="THRESHOLD {real}", &
2021 repeats=.false., &
2022 default_r_val=0.0_dp)
2023 CALL section_add_keyword(print_key, keyword)
2024 CALL keyword_release(keyword)
2025 CALL keyword_create(keyword, __location__, name="Upper_triangular", &
2026 description="Print only the upper triangular part of the matrix. ", &
2027 usage="UPPER_TRIANGULAR {logical}", &
2028 repeats=.false., &
2029 default_l_val=.false., &
2030 lone_keyword_l_val=.true.)
2031 CALL section_add_keyword(print_key, keyword)
2032 CALL keyword_release(keyword)
2033 CALL keyword_create(keyword, __location__, name="Binary", &
2034 description="Whether or not to generate the file in a binary format. ", &
2035 usage="BINARY {logical}", &
2036 repeats=.false., &
2037 default_l_val=.false., &
2038 lone_keyword_l_val=.true.)
2039 CALL section_add_keyword(print_key, keyword)
2040 CALL keyword_release(keyword)
2041 CALL keyword_create(keyword, __location__, name="Real_space", &
2042 description="Print the KS matrix in real-space instead of k-space.. ", &
2043 usage="REAL_SPACE {logical}", &
2044 repeats=.false., &
2045 default_l_val=.false., &
2046 lone_keyword_l_val=.true.)
2047 CALL section_add_keyword(print_key, keyword)
2048 CALL keyword_release(keyword)
2049 CALL section_add_subsection(section, print_key)
2050 CALL section_release(print_key)
2051
2052 ! Overlap in CSR format
2053 CALL cp_print_key_section_create(print_key, __location__, "S_CSR_WRITE", &
2054 description="Write the overlap matrix in CSR format into a file.", &
2055 print_level=debug_print_level, filename="")
2056 CALL keyword_create(keyword, __location__, name="Threshold", &
2057 description="Threshold on the absolute value of the elements to be printed out. "// &
2058 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
2059 "if the block contains at least one non-zero element.", &
2060 usage="THRESHOLD {real}", &
2061 repeats=.false., &
2062 default_r_val=0.0_dp)
2063 CALL section_add_keyword(print_key, keyword)
2064 CALL keyword_release(keyword)
2065 CALL keyword_create(keyword, __location__, name="Upper_triangular", &
2066 description="Print only the upper triangular part of the matrix. ", &
2067 usage="UPPER_TRIANGULAR {logical}", &
2068 repeats=.false., &
2069 default_l_val=.false., &
2070 lone_keyword_l_val=.true.)
2071 CALL section_add_keyword(print_key, keyword)
2072 CALL keyword_release(keyword)
2073 CALL keyword_create(keyword, __location__, name="Binary", &
2074 description="Whether or not to generate the file in a binary format. ", &
2075 usage="BINARY {logical}", &
2076 repeats=.false., &
2077 default_l_val=.false., &
2078 lone_keyword_l_val=.true.)
2079 CALL section_add_keyword(print_key, keyword)
2080 CALL keyword_release(keyword)
2081 CALL keyword_create(keyword, __location__, name="Real_space", &
2082 description="Print the overlap matrix in real-space instead of k-space.. ", &
2083 usage="REAL_SPACE {logical}", &
2084 repeats=.false., &
2085 default_l_val=.false., &
2086 lone_keyword_l_val=.true.)
2087 CALL section_add_keyword(print_key, keyword)
2088 CALL keyword_release(keyword)
2089 CALL section_add_subsection(section, print_key)
2090 CALL section_release(print_key)
2091
2092 ! Core Hamiltonian in CSR format
2093 CALL cp_print_key_section_create(print_key, __location__, "HCORE_CSR_WRITE", &
2094 description="Write the core Hamiltonian matrix in CSR format into a file.", &
2095 print_level=debug_print_level, filename="")
2096 CALL keyword_create(keyword, __location__, name="Threshold", &
2097 description="Threshold on the absolute value of the elements to be printed out. "// &
2098 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
2099 "if the block contains at least one non-zero element.", &
2100 usage="THRESHOLD {real}", &
2101 repeats=.false., &
2102 default_r_val=0.0_dp)
2103 CALL section_add_keyword(print_key, keyword)
2104 CALL keyword_release(keyword)
2105 CALL keyword_create(keyword, __location__, name="Upper_triangular", &
2106 description="Print only the upper triangular part of the matrix. ", &
2107 usage="UPPER_TRIANGULAR {logical}", &
2108 repeats=.false., &
2109 default_l_val=.false., &
2110 lone_keyword_l_val=.true.)
2111 CALL section_add_keyword(print_key, keyword)
2112 CALL keyword_release(keyword)
2113 CALL keyword_create(keyword, __location__, name="Binary", &
2114 description="Whether or not to generate the file in a binary format. ", &
2115 usage="BINARY {logical}", &
2116 repeats=.false., &
2117 default_l_val=.false., &
2118 lone_keyword_l_val=.true.)
2119 CALL section_add_keyword(print_key, keyword)
2120 CALL keyword_release(keyword)
2121 CALL keyword_create(keyword, __location__, name="Real_space", &
2122 description="Print the core Hamiltonian matrix in real-space instead of k-space.. ", &
2123 usage="REAL_SPACE {logical}", &
2124 repeats=.false., &
2125 default_l_val=.false., &
2126 lone_keyword_l_val=.true.)
2127 CALL section_add_keyword(print_key, keyword)
2128 CALL keyword_release(keyword)
2129 CALL section_add_subsection(section, print_key)
2130 CALL section_release(print_key)
2131
2132 ! Density Matrix in CSR format
2133 CALL cp_print_key_section_create(print_key, __location__, "P_CSR_WRITE", &
2134 description="Write the density matrix in CSR format into a file.", &
2135 print_level=debug_print_level, filename="")
2136 CALL keyword_create(keyword, __location__, name="Threshold", &
2137 description="Threshold on the absolute value of the elements to be printed out. "// &
2138 "In CP2K all the elements in a (atomic) matrix block are considered non-zero, "// &
2139 "if the block contains at least one non-zero element.", &
2140 usage="THRESHOLD {real}", &
2141 repeats=.false., &
2142 default_r_val=0.0_dp)
2143 CALL section_add_keyword(print_key, keyword)
2144 CALL keyword_release(keyword)
2145 CALL keyword_create(keyword, __location__, name="Upper_triangular", &
2146 description="Print only the upper triangular part of the matrix. ", &
2147 usage="UPPER_TRIANGULAR {logical}", &
2148 repeats=.false., &
2149 default_l_val=.false., &
2150 lone_keyword_l_val=.true.)
2151 CALL section_add_keyword(print_key, keyword)
2152 CALL keyword_release(keyword)
2153 CALL keyword_create(keyword, __location__, name="Binary", &
2154 description="Whether or not to generate the file in a binary format. ", &
2155 usage="BINARY {logical}", &
2156 repeats=.false., &
2157 default_l_val=.false., &
2158 lone_keyword_l_val=.true.)
2159 CALL section_add_keyword(print_key, keyword)
2160 CALL keyword_release(keyword)
2161 CALL keyword_create(keyword, __location__, name="Real_space", &
2162 description="Print the density matrix in real-space instead of k-space.. ", &
2163 usage="REAL_SPACE {logical}", &
2164 repeats=.false., &
2165 default_l_val=.false., &
2166 lone_keyword_l_val=.true.)
2167 CALL section_add_keyword(print_key, keyword)
2168 CALL keyword_release(keyword)
2169 CALL section_add_subsection(section, print_key)
2170 CALL section_release(print_key)
2171
2172 ! interaction adjacency matrix
2173 CALL cp_print_key_section_create(print_key, __location__, "ADJMAT_WRITE", &
2174 description="Writes an (upper-triangular) adjacency matrix indicating the "// &
2175 "interaction between atoms (according to overlapping basis functions). The "// &
2176 "columns are: iatom, jatom, ikind, jkind; where iatom and jatom are the atom "// &
2177 "indices (based on the coordinate file), ikind and jkind are the atomic kinds "// &
2178 "(indeces as shown in the ATOMIC KIND INFORMATION section of a CP2K output). ", &
2179 print_level=debug_print_level, filename="")
2180 CALL section_add_subsection(section, print_key)
2181 CALL section_release(print_key)
2182
2183 ! Xray diffraction
2185 print_key, __location__, name="XRAY_DIFFRACTION_SPECTRUM", &
2186 description="Calculate and print the coherent X-ray "// &
2187 "diffraction spectrum", &
2188 print_level=debug_print_level, &
2189 filename="", &
2190 citations=[krack2000, krack2002])
2191 CALL keyword_create( &
2192 keyword, __location__, &
2193 name="Q_MAX", &
2194 variants=["Q_MAXIMUM"], &
2195 description="Maximum Q value calculated for the spectrum", &
2196 usage="Q_MAX {real}", &
2197 repeats=.false., &
2198 n_var=1, &
2199 type_of_var=real_t, &
2200 default_r_val=cp_unit_to_cp2k(value=20.0_dp, &
2201 unit_str="angstrom^-1"), &
2202 unit_str="angstrom^-1")
2203 CALL section_add_keyword(print_key, keyword)
2204 CALL keyword_release(keyword)
2205 CALL section_add_subsection(section, print_key)
2206 CALL section_release(print_key)
2207
2208 CALL cp_print_key_section_create(print_key, __location__, name="ELECTRIC_FIELD_GRADIENT", &
2209 description="Calculate and print the electric field gradients "// &
2210 "at atomic positions", &
2211 print_level=debug_print_level, &
2212 filename="__STD_OUT__")
2213
2214 CALL keyword_create(keyword, __location__, &
2215 name="INTERPOLATION", &
2216 description="Use interpolation method from real space grid", &
2217 usage="INTERPOLATION {logical}", &
2218 repeats=.false., &
2219 n_var=1, &
2220 default_l_val=.false., lone_keyword_l_val=.true.)
2221 CALL section_add_keyword(print_key, keyword)
2222 CALL keyword_release(keyword)
2223
2224 CALL keyword_create(keyword, __location__, &
2225 name="GSPACE_SMOOTHING", &
2226 description="Use a G-space smoothing function", &
2227 usage="GSPACE_SMOOTHING cutoff {real}, width {real}", &
2228 repeats=.false., &
2229 n_var=2, default_r_vals=[-1._dp, -1._dp], &
2230 type_of_var=real_t)
2231 CALL section_add_keyword(print_key, keyword)
2232 CALL keyword_release(keyword)
2233
2234 CALL keyword_create(keyword, __location__, &
2235 name="DEBUG", &
2236 description="Print additional debug output", &
2237 usage="DEBUG {logical}", &
2238 repeats=.false., &
2239 n_var=1, &
2240 default_l_val=.false., lone_keyword_l_val=.true.)
2241 CALL section_add_keyword(print_key, keyword)
2242 CALL keyword_release(keyword)
2243
2244 CALL create_gspace_interp_section(subsection)
2245 CALL section_add_subsection(print_key, subsection)
2246 CALL section_release(subsection)
2247
2248 CALL section_add_subsection(section, print_key)
2249 CALL section_release(print_key)
2250
2251 CALL cp_print_key_section_create(print_key, __location__, name="BASIS_MOLOPT_QUANTITIES", &
2252 description="Print the two quantities needed in the basis molopt generation:"// &
2253 " total energy and condition number of the overlap matrix (S matrix)", &
2254 print_level=debug_print_level, &
2255 filename="__STD_OUT__")
2256 CALL section_add_subsection(section, print_key)
2257 CALL section_release(print_key)
2258
2259 CALL cp_print_key_section_create(print_key, __location__, name="HYPERFINE_COUPLING_TENSOR", &
2260 description="Calculate and print the EPR hyperfine coupling tensor"// &
2261 " at atomic positions", &
2262 print_level=debug_print_level, &
2263 filename="__STD_OUT__")
2264
2265 CALL keyword_create(keyword, __location__, &
2266 name="INTERACTION_RADIUS", &
2267 description="Radius of interaction for EPR hyperfine tensor calculation", &
2268 usage="INTERACTION_RADIUS radius {real}", &
2269 repeats=.false., &
2270 n_var=1, default_r_val=10._dp, &
2271 type_of_var=real_t)
2272 CALL section_add_keyword(print_key, keyword)
2273 CALL keyword_release(keyword)
2274
2275 CALL section_add_subsection(section, print_key)
2276 CALL section_release(print_key)
2277
2278 CALL cp_print_key_section_create(print_key, __location__, name="OPTIMIZE_LRI_BASIS", &
2279 description="Optimize the exponents of the LRI basis set", &
2280 print_level=low_print_level, &
2281 filename="OPTIMIZED_LRI_BASIS")
2282 CALL section_add_subsection(section, print_key)
2283 CALL section_release(print_key)
2284
2286 print_key, __location__, name="PLUS_U", &
2287 description="Controls the printing for the DFT+U methods", &
2288 print_level=high_print_level, &
2289 filename="__STD_OUT__", &
2290 each_iter_names=s2a("QS_SCF"), &
2291 each_iter_values=[0], &
2292 citations=[dudarev1997, dudarev1998])
2293 CALL section_add_subsection(section, print_key)
2294 CALL section_release(print_key)
2295
2297 print_key, __location__, name="CHARGEMOL", &
2298 description="Write .wfx input file for Chargemol", &
2299 print_level=debug_print_level + 1, &
2300 filename="CHARGEMOL", &
2301 add_last=add_last_numeric)
2302 CALL keyword_create(keyword, __location__, name="BACKUP_COPIES", &
2303 description="Specifies the maximum number of backup copies.", &
2304 usage="BACKUP_COPIES {int}", &
2305 default_i_val=1)
2306 CALL section_add_keyword(print_key, keyword)
2307 CALL keyword_release(keyword)
2308 CALL keyword_create(keyword, __location__, name="PERIODIC", &
2309 description="Write information about cell periodicity.", &
2310 usage="PERIODIC {LOGICAL}", &
2311 default_l_val=.false., lone_keyword_l_val=.true.)
2312 CALL section_add_keyword(print_key, keyword)
2313 CALL keyword_release(keyword)
2314 CALL section_add_subsection(section, print_key)
2315 CALL section_release(print_key)
2316
2318 print_key, __location__, name="SCCS", &
2319 description="Controls the printing for the SCCS models", &
2320 print_level=high_print_level, &
2321 filename="__STD_OUT__", &
2322 each_iter_names=s2a("QS_SCF"), &
2323 each_iter_values=[0], &
2324 citations=[fattebert2002, andreussi2012, yin2017])
2325
2326 NULLIFY (sub_print_key)
2327
2329 sub_print_key, __location__, name="DENSITY_GRADIENT", &
2330 description="Controls the printing of the cube files with "// &
2331 "the norm of the density gradient |&nabla;&rho;| "// &
2332 "used by the SCCS model.", &
2333 print_level=debug_print_level, &
2334 filename="", &
2335 each_iter_names=s2a("QS_SCF"), &
2336 each_iter_values=[0])
2337 CALL keyword_create(keyword, __location__, name="STRIDE", &
2338 description="The stride (X,Y,Z) used to write the cube file "// &
2339 "(larger values result in smaller cube files). You can provide 3 "// &
2340 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2341 n_var=-1, &
2342 default_i_vals=[2, 2, 2], &
2343 type_of_var=integer_t, &
2344 repeats=.false.)
2345 CALL section_add_keyword(sub_print_key, keyword)
2346 CALL keyword_release(keyword)
2347 CALL keyword_create(keyword, __location__, name="APPEND", &
2348 description="Append the cube files when they already exist", &
2349 default_l_val=.false., &
2350 lone_keyword_l_val=.true., &
2351 repeats=.false.)
2352 CALL section_add_keyword(sub_print_key, keyword)
2353 CALL keyword_release(keyword)
2354 CALL section_add_subsection(print_key, sub_print_key)
2355 CALL section_release(sub_print_key)
2356
2358 sub_print_key, __location__, name="DIELECTRIC_FUNCTION", &
2359 description="Controls the printing of the cube files with "// &
2360 "the dielectric function used by the SCCS model. "// &
2361 "This function determines the cavity formed by a solute in "// &
2362 "a solvent and thus it can be used for the visualisaton of the cavity.", &
2363 print_level=debug_print_level, &
2364 filename="", &
2365 each_iter_names=s2a("QS_SCF"), &
2366 each_iter_values=[0], &
2367 citations=[fattebert2002, andreussi2012, yin2017])
2368 CALL keyword_create(keyword, __location__, name="STRIDE", &
2369 description="The stride (X,Y,Z) used to write the cube file "// &
2370 "(larger values result in smaller cube files). You can provide 3 "// &
2371 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2372 n_var=-1, &
2373 default_i_vals=[2, 2, 2], &
2374 type_of_var=integer_t, &
2375 repeats=.false.)
2376 CALL section_add_keyword(sub_print_key, keyword)
2377 CALL keyword_release(keyword)
2378 CALL keyword_create(keyword, __location__, name="APPEND", &
2379 description="Append the cube files when they already exist", &
2380 default_l_val=.false., &
2381 lone_keyword_l_val=.true., &
2382 repeats=.false.)
2383 CALL section_add_keyword(sub_print_key, keyword)
2384 CALL keyword_release(keyword)
2385 CALL section_add_subsection(print_key, sub_print_key)
2386 CALL section_release(sub_print_key)
2387
2389 sub_print_key, __location__, name="TOTAL_CHARGE_DENSITY", &
2390 description="Controls the printing of the cube files with the "// &
2391 "total charge density $\rho^\text{tot}$ used by the SCCS model.", &
2392 print_level=debug_print_level, &
2393 filename="", &
2394 each_iter_names=s2a("QS_SCF"), &
2395 each_iter_values=[0], &
2396 citations=[fattebert2002, andreussi2012, yin2017])
2397 CALL keyword_create(keyword, __location__, name="STRIDE", &
2398 description="The stride (X,Y,Z) used to write the cube file "// &
2399 "(larger values result in smaller cube files). You can provide 3 "// &
2400 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2401 n_var=-1, &
2402 default_i_vals=[2, 2, 2], &
2403 type_of_var=integer_t, &
2404 repeats=.false.)
2405 CALL section_add_keyword(sub_print_key, keyword)
2406 CALL keyword_release(keyword)
2407 CALL keyword_create(keyword, __location__, name="APPEND", &
2408 description="Append the cube files when they already exist", &
2409 default_l_val=.false., &
2410 lone_keyword_l_val=.true., &
2411 repeats=.false.)
2412 CALL section_add_keyword(sub_print_key, keyword)
2413 CALL keyword_release(keyword)
2414 CALL section_add_subsection(print_key, sub_print_key)
2415 CALL section_release(sub_print_key)
2416
2418 sub_print_key, __location__, name="POLARISATION_CHARGE_DENSITY", &
2419 description="Controls the printing of the cube files with the "// &
2420 "polarisation charge density $\rho^\text{pol}$ used by the SCCS model with the "// &
2421 "total charge density $\rho^\text{tot} = \rho^\text{sol} + \rho^\text{pol}", &
2422 print_level=debug_print_level, &
2423 filename="", &
2424 each_iter_names=s2a("QS_SCF"), &
2425 each_iter_values=[0], &
2426 citations=[fattebert2002, andreussi2012, yin2017])
2427 CALL keyword_create(keyword, __location__, name="STRIDE", &
2428 description="The stride (X,Y,Z) used to write the cube file "// &
2429 "(larger values result in smaller cube files). You can provide 3 "// &
2430 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2431 n_var=-1, &
2432 default_i_vals=[2, 2, 2], &
2433 type_of_var=integer_t, &
2434 repeats=.false.)
2435 CALL section_add_keyword(sub_print_key, keyword)
2436 CALL keyword_release(keyword)
2437 CALL keyword_create(keyword, __location__, name="APPEND", &
2438 description="Append the cube files when they already exist", &
2439 default_l_val=.false., &
2440 lone_keyword_l_val=.true., &
2441 repeats=.false.)
2442 CALL section_add_keyword(sub_print_key, keyword)
2443 CALL keyword_release(keyword)
2444 CALL section_add_subsection(print_key, sub_print_key)
2445 CALL section_release(sub_print_key)
2446
2448 sub_print_key, __location__, name="POLARISATION_POTENTIAL", &
2449 description="Controls the printing of the cube files with the "// &
2450 "polarisation potential $\phi^\text{pol}$ used by the SCCS model with the "// &
2451 "total potential $\phi^\text{tot} = \phi^\text{sol} + \phi^\text{pol}$", &
2452 print_level=debug_print_level, &
2453 filename="", &
2454 each_iter_names=s2a("QS_SCF"), &
2455 each_iter_values=[0], &
2456 citations=[fattebert2002, andreussi2012, yin2017])
2457 CALL keyword_create(keyword, __location__, name="STRIDE", &
2458 description="The stride (X,Y,Z) used to write the cube file "// &
2459 "(larger values result in smaller cube files). You can provide 3 "// &
2460 "numbers (for X,Y,Z) or 1 number valid for all components.", &
2461 n_var=-1, &
2462 default_i_vals=[2, 2, 2], &
2463 type_of_var=integer_t, &
2464 repeats=.false.)
2465 CALL section_add_keyword(sub_print_key, keyword)
2466 CALL keyword_release(keyword)
2467 CALL keyword_create(keyword, __location__, name="APPEND", &
2468 description="Append the cube files when they already exist", &
2469 default_l_val=.false., &
2470 lone_keyword_l_val=.true., &
2471 repeats=.false.)
2472 CALL section_add_keyword(sub_print_key, keyword)
2473 CALL keyword_release(keyword)
2474 CALL section_add_subsection(print_key, sub_print_key)
2475 CALL section_release(sub_print_key)
2476
2477 CALL section_add_subsection(section, print_key)
2478 CALL section_release(print_key)
2479
2480 END SUBROUTINE create_print_dft_section
2481
2482! **************************************************************************************************
2483!> \brief ...
2484!> \param section ...
2485!> \author JGH
2486! **************************************************************************************************
2487 SUBROUTINE create_bandstructure_section(section)
2488 TYPE(section_type), POINTER :: section
2489
2490 TYPE(keyword_type), POINTER :: keyword
2491 TYPE(section_type), POINTER :: subsection
2492
2493 cpassert(.NOT. ASSOCIATED(section))
2494 CALL section_create(section, __location__, name="BAND_STRUCTURE", &
2495 description="Specifies the k-points used in band structure calculation.", &
2496 n_keywords=0, n_subsections=0, repeats=.false.)
2497
2498 NULLIFY (keyword)
2499 CALL keyword_create(keyword, __location__, name="FILE_NAME", &
2500 description="File name used for band structure", &
2501 usage="FILE_NAME <filename>", default_c_val="", &
2502 type_of_var=char_t, n_var=1)
2503 CALL section_add_keyword(section, keyword)
2504 CALL keyword_release(keyword)
2505
2506 CALL keyword_create(keyword, __location__, name="ADDED_MOS", &
2507 variants=["ADDED_BANDS"], &
2508 description="Number of MOs/Bands added to the Band Structure calculation.", &
2509 default_i_val=0)
2510 CALL section_add_keyword(section, keyword)
2511 CALL keyword_release(keyword)
2512
2513 NULLIFY (subsection)
2514 CALL create_kpoint_set_section(subsection)
2515 CALL section_add_subsection(section, subsection)
2516 CALL section_release(subsection)
2517
2518 END SUBROUTINE create_bandstructure_section
2519
2520 SUBROUTINE add_generic_openpmd_arguments(print_key)
2521 TYPE(section_type), POINTER :: print_key
2522
2523 TYPE(keyword_type), POINTER :: keyword
2524 NULLIFY (keyword)
2525
2526 CALL keyword_create(keyword, __location__, name="OPENPMD_EXTENSION", &
2527 description="Filename extension for openPMD files, including the dot and "// &
2528 "(for optionally activating file encoding) a file expansion pattern.", &
2529 default_c_val="_%06T."//cp_openpmd_get_default_extension(), &
2530 type_of_var=char_t)
2531 CALL section_add_keyword(print_key, keyword)
2532 CALL keyword_release(keyword)
2533
2534 CALL keyword_create(keyword, __location__, name="OPENPMD_CFG", &
2535 description="Inline runtime config for openPMD output. Note that inline "// &
2536 "specifications are subject to restrictions imposed by the input "// &
2537 "file format, making this option useful only for very simple use cases. "// &
2538 "Refer to OPENPMD_CFG_FILE for anything else.", &
2539 default_c_val="{}", type_of_var=char_t)
2540 CALL section_add_keyword(print_key, keyword)
2541 CALL keyword_release(keyword)
2542
2543 CALL keyword_create(keyword, __location__, name="OPENPMD_CFG_FILE", &
2544 description="Runtime config file for openPMD output. This parameter takes precedence over OPENPMD_CFG.", default_c_val="", &
2545 type_of_var=char_t)
2546 CALL section_add_keyword(print_key, keyword)
2547 CALL keyword_release(keyword)
2548
2549 END SUBROUTINE add_generic_openpmd_arguments
2550
2551! **************************************************************************************************
2552!> \brief creates the input section for dealing with homo lumos, including dumping cubes
2553!> \param print_key ...
2554! **************************************************************************************************
2555 SUBROUTINE create_mo_section( &
2556 print_key, section_name, description, stride_default, stride_usage, &
2557 print_level, do_write_keyname)
2558
2559 TYPE(section_type), POINTER :: print_key
2560 CHARACTER(len=*), INTENT(IN) :: section_name, description, stride_usage, do_write_keyname
2561 INTEGER, DIMENSION(3), INTENT(IN) :: stride_default
2562 INTEGER, INTENT(IN) :: print_level
2563
2564 TYPE(keyword_type), POINTER :: keyword
2565
2566 NULLIFY (keyword)
2567
2568 CALL cp_print_key_section_create(print_key, __location__, section_name, &
2569 description="Controls the printing of the molecular orbitals (MOs) as " &
2570 //trim(adjustl(description))// &
2571 " files."// &
2572 " It can be used during a Real Time calculation to print the MOs."// &
2573 " In this case, the density corresponding to the time dependent MO is printed"// &
2574 " instead of the wave-function.", &
2575 print_level=print_level, filename="")
2576
2577 CALL keyword_create(keyword, __location__, name="stride", &
2578 description="The stride (X,Y,Z) used to write the "//trim(adjustl(description))//" file "// &
2579 "(larger values result in smaller "// &
2580 trim(adjustl(description))// &
2581 " files). You can provide 3 numbers (for X,Y,Z) or"// &
2582 " 1 number valid for all components.", &
2583 usage=stride_usage, n_var=-1, default_i_vals=stride_default, type_of_var=integer_t)
2584 CALL section_add_keyword(print_key, keyword)
2585 CALL keyword_release(keyword)
2586
2587 CALL keyword_create(keyword, __location__, name=do_write_keyname, &
2588 description="If the MO " &
2589 //trim(adjustl(description)) &
2590 //" file should be written. If false, the eigenvalues are still computed."// &
2591 " Can also be useful in combination with STM calculations", &
2592 default_l_val=.true., lone_keyword_l_val=.true.)
2593 CALL section_add_keyword(print_key, keyword)
2594 CALL keyword_release(keyword)
2595
2596 CALL keyword_create(keyword, __location__, name="nlumo", &
2597 description="If the printkey is activated controls the number of lumos"// &
2598 " that are printed and dumped as "//trim(adjustl(description))//" (-1=all)", &
2599 default_i_val=0)
2600 CALL section_add_keyword(print_key, keyword)
2601 CALL keyword_release(keyword)
2602
2603 CALL keyword_create( &
2604 keyword, __location__, name="nhomo", &
2605 description="If the printkey is activated controls the number of homos that dumped as "// &
2606 trim(adjustl(description))// &
2607 " (-1=all),"// &
2608 " eigenvalues are always all dumped", &
2609 default_i_val=1)
2610 CALL section_add_keyword(print_key, keyword)
2611 CALL keyword_release(keyword)
2612
2613 CALL keyword_create( &
2614 keyword, __location__, name="homo_list", &
2615 description="If the printkey is activated controls the index of homos dumped as openPMD,"// &
2616 " eigenvalues are always all dumped. It overrides nhomo.", &
2617 usage="HOMO_LIST {integer} {integer} .. {integer} ", type_of_var=integer_t, &
2618 n_var=-1, repeats=.true.)
2619 CALL section_add_keyword(print_key, keyword)
2620 CALL keyword_release(keyword)
2621
2622 END SUBROUTINE create_mo_section
2623
2624 SUBROUTINE create_e_density_section( &
2625 print_key, section_name, description, stride_default, &
2626 stride_usage, print_level)
2627
2628 TYPE(section_type), POINTER :: print_key
2629 CHARACTER(len=*), INTENT(IN) :: section_name, description, stride_usage
2630 INTEGER, DIMENSION(3), INTENT(IN) :: stride_default
2631 INTEGER, INTENT(IN) :: print_level
2632
2633 TYPE(keyword_type), POINTER :: keyword
2634
2635 NULLIFY (keyword)
2636
2637 CALL cp_print_key_section_create(print_key, __location__, name=section_name, &
2638 description="Controls the printing of "//trim(adjustl(description))//" files with "// &
2639 "the electronic density and, for LSD calculations, the spin density.", &
2640 print_level=print_level, filename="")
2641 CALL keyword_create(keyword, __location__, name="stride", &
2642 description="The stride (X,Y,Z) used to write the "//trim(adjustl(description))//" file "// &
2643 "(larger values result in smaller "// &
2644 trim(adjustl(description))// &
2645 " files). You can provide 3 numbers (for X,Y,Z) or"// &
2646 " 1 number valid for all components.", &
2647 usage=stride_usage, n_var=-1, default_i_vals=stride_default, type_of_var=integer_t)
2648 CALL section_add_keyword(print_key, keyword)
2649 CALL keyword_release(keyword)
2650
2651 CALL keyword_create(keyword, __location__, name="DENSITY_INCLUDE", &
2652 description="Which parts of the density to include. In GAPW the electronic density "// &
2653 "is divided into a hard and a soft component, and the default (TOTAL_HARD_APPROX) "// &
2654 "is to approximate the hard density as a spherical gaussian and to print the smooth "// &
2655 "density accurately. This avoids potential artefacts originating from the hard density. "// &
2656 "If the TOTAL_DENSITY keyword is used the hard density will be computed more accurately "// &
2657 "but may introduce non-physical features. The SOFT_DENSITY keyword will lead to only the "// &
2658 "soft density being printed. In GPW these options have no effect and the cube file will "// &
2659 "only contain the valence electron density.", &
2660 usage="DENSITY_INCLUDE TOTAL_HARD_APPROX", &
2661 enum_c_vals=s2a("TOTAL_HARD_APPROX", "TOTAL_DENSITY", "SOFT_DENSITY"), &
2662 enum_desc=s2a("Print (hard+soft) density where the hard components shape is approximated", &
2663 "Print (hard+soft) density. Only has an effect "// &
2664 "if PAW atoms are present. NOTE: The total "// &
2665 "in real space might exhibit unphysical features "// &
2666 "like spikes due to the finite and thus "// &
2667 "truncated g vector", &
2668 "Print only the soft density"), &
2669 enum_i_vals=[e_dens_total_hard_approx, &
2672 default_i_val=e_dens_total_hard_approx)
2673 CALL section_add_keyword(print_key, keyword)
2674 CALL keyword_release(keyword)
2675
2676 END SUBROUTINE create_e_density_section
2677
2678 ! **************************************************************************************************
2679!> \brief Helper to create ELF print sections (cube or openPMD)
2680!> \param print_key section handle (output)
2681!> \param section_name name of the section (e.g. "ELF_CUBE" or "ELF_OPENPMD")
2682!> \param description Either "cube" or "openPMD", for the descriptions.
2683!> \param stride_default default stride values
2684!> \param stride_usage usage string for stride
2685!> \param print_level print level
2686!> \param filename output filename (empty string for default)
2687 SUBROUTINE create_elf_print_section( &
2688 print_key, section_name, description, stride_default, stride_usage, print_level, filename)
2689
2690 TYPE(section_type), POINTER :: print_key
2691 CHARACTER(len=*), INTENT(IN) :: section_name, description, stride_usage, filename
2692 INTEGER, DIMENSION(3), INTENT(IN) :: stride_default
2693 INTEGER, INTENT(IN) :: print_level
2694 TYPE(keyword_type), POINTER :: keyword
2695
2696 NULLIFY (keyword)
2697
2698 CALL cp_print_key_section_create(print_key, __location__, section_name, &
2699 description="Controls printing of "//trim(adjustl(description))// &
2700 " files with the electron localization function (ELF). "// &
2701 "Note that the value of ELF is defined between 0 and 1: "// &
2702 "Pauli kinetic energy density normalized by the kinetic energy density "// &
2703 "of a uniform el. gas of same density.", print_level=print_level, filename=filename)
2704
2705 CALL keyword_create(keyword, __location__, name="stride", &
2706 description="The stride (X,Y,Z) used to write the file (larger values result in smaller files). "// &
2707 "You can provide 3 numbers (for X,Y,Z) or 1 number valid for all components.", &
2708 usage=stride_usage, n_var=-1, default_i_vals=stride_default, type_of_var=integer_t)
2709 CALL section_add_keyword(print_key, keyword)
2710 CALL keyword_release(keyword)
2711
2712 CALL keyword_create(keyword, __location__, name="density_cutoff", &
2713 description=" ", usage="density_cutoff 0.0001", repeats=.false., n_var=1, &
2714 type_of_var=real_t, default_r_val=1.0e-10_dp)
2715 CALL section_add_keyword(print_key, keyword)
2716 CALL keyword_release(keyword)
2717 END SUBROUTINE create_elf_print_section
2718
2719! **************************************************************************************************
2720!> \brief Add projected-DOS related keywords to a DOS or XAS PDOS print section.
2721!> \param print_key print key section to add keywords to
2722!> \param xas_mode if true, add keywords for the XAS-specific standalone PDOS section
2723! **************************************************************************************************
2724 SUBROUTINE add_dos_keywords(print_key, xas_mode)
2725
2726 TYPE(section_type), POINTER :: print_key
2727 LOGICAL, INTENT(IN) :: xas_mode
2728
2729 TYPE(keyword_type), POINTER :: keyword
2730 TYPE(section_type), POINTER :: broaden_subsection, pdos_section, subsection
2731
2732 NULLIFY (broaden_subsection, pdos_section, subsection)
2733 NULLIFY (keyword)
2734
2735 CALL keyword_create(keyword, __location__, name="APPEND", &
2736 description="Append the DOS/PDOS obtained at different iterations to the output file. "// &
2737 "By default the file is overwritten", &
2738 usage="APPEND", default_l_val=.false., lone_keyword_l_val=.true.)
2739 CALL section_add_keyword(print_key, keyword)
2740 CALL keyword_release(keyword)
2741
2742 CALL keyword_create(keyword, __location__, name="NDIGITS", &
2743 description="Specify the number of digits used to print DOS/PDOS values.", &
2744 default_i_val=6)
2745 CALL section_add_keyword(print_key, keyword)
2746 CALL keyword_release(keyword)
2747
2748 CALL keyword_create(keyword, __location__, name="DELTA_E", &
2749 description="Energy spacing of the DOS/PDOS output grid.", &
2750 usage="DELTA_E 0.0005", type_of_var=real_t, default_r_val=0.001_dp)
2751 CALL section_add_keyword(print_key, keyword)
2752 CALL keyword_release(keyword)
2753
2754 CALL keyword_create(keyword, __location__, name="NLUMO", &
2755 description="Number of unoccupied orbitals to include in the DOS/PDOS (-1=all). "// &
2756 "For OT calculations, the requested virtual orbitals are generated after SCF using the "// &
2757 "OT eigensolver. For diagonalization calculations, SCF%ADDED_MOS is increased if needed "// &
2758 "to make the requested unoccupied orbitals available.", &
2759 usage="NLUMO integer", default_i_val=0)
2760 CALL section_add_keyword(print_key, keyword)
2761 CALL keyword_release(keyword)
2762
2763 IF (.NOT. xas_mode) THEN
2764 CALL section_create(pdos_section, __location__, name="PDOS", &
2765 description="Controls the printing of kind-resolved projected DOS.", &
2766 n_keywords=1, n_subsections=0)
2767 ELSE
2768 pdos_section => print_key
2769 END IF
2770 CALL keyword_create(keyword, __location__, name="COMPONENTS", &
2771 description="Print out PDOS distinguishing all angular momentum components.", &
2772 usage="COMPONENTS", default_l_val=.false., lone_keyword_l_val=.true.)
2773 CALL section_add_keyword(pdos_section, keyword)
2774 CALL keyword_release(keyword)
2775 IF (.NOT. xas_mode) THEN
2776 CALL section_add_subsection(print_key, pdos_section)
2777 CALL section_release(pdos_section)
2778 END IF
2779
2780 CALL section_create(subsection, __location__, name="CURVE", &
2781 description="Controls the printing of broadened DOS/PDOS curves.", &
2782 n_keywords=2, n_subsections=1, repeats=.false.)
2783 CALL keyword_create(keyword, __location__, name="ENERGY_UNIT", &
2784 description="Energy unit used for the printed DOS/PDOS energy axis. "// &
2785 "Intensities are converted consistently to the selected energy unit.", &
2786 usage="ENERGY_UNIT HARTREE", type_of_var=enum_t, &
2787 enum_c_vals=s2a("HARTREE", "EV"), &
2788 enum_i_vals=[1, 2], &
2789 enum_desc=s2a("Print energies in Hartree (a.u.).", &
2790 "Print energies in electronvolt."), &
2791 default_i_val=1)
2792 CALL section_add_keyword(subsection, keyword)
2793 CALL keyword_release(keyword)
2794 CALL keyword_create(keyword, __location__, name="ENERGY_ZERO", &
2795 description="Reference energy used for the printed DOS/PDOS energy axis. "// &
2796 "With AUTO, the Fermi energy is used if smearing is enabled or fractional "// &
2797 "occupations are found; otherwise the highest occupied crystal orbital is used.", &
2798 usage="ENERGY_ZERO AUTO", type_of_var=enum_t, &
2799 enum_c_vals=s2a("AUTO", "ABSOLUTE", "FERMI", "HOCO"), &
2800 enum_i_vals=[1, 2, 3, 4], &
2801 enum_desc=s2a("Choose FERMI for smeared or fractionally occupied systems, otherwise HOCO.", &
2802 "Print absolute orbital energies.", &
2803 "Shift orbital energies by the Fermi energy.", &
2804 "Shift orbital energies by the highest occupied crystal orbital."), &
2805 default_i_val=1)
2806 CALL section_add_keyword(subsection, keyword)
2807 CALL keyword_release(keyword)
2808
2809 CALL section_create(broaden_subsection, __location__, name="BROADEN", &
2810 description="Controls the line shape used for broadened DOS/PDOS curves.", &
2811 n_keywords=3, n_subsections=0, repeats=.false.)
2812 CALL keyword_create(keyword, __location__, name="TYPE", &
2813 description="Type of broadening function used to produce the DOS/PDOS curve.", &
2814 usage="TYPE GAUSSIAN", type_of_var=enum_t, &
2815 enum_c_vals=s2a("GAUSSIAN", "LORENTZIAN", "PSEUDO_VOIGT"), &
2816 enum_i_vals=[1, 2, 3], &
2817 enum_desc=s2a("Use a Gaussian broadening function.", &
2818 "Use a Lorentzian broadening function.", &
2819 "Use a pseudo-Voigt mixture of Lorentzian and Gaussian functions."), &
2820 default_i_val=1)
2821 CALL section_add_keyword(broaden_subsection, keyword)
2822 CALL keyword_release(keyword)
2823 CALL keyword_create(keyword, __location__, name="WIDTH", &
2824 description="Full width at half maximum (FWHM) of the DOS/PDOS broadening function.", &
2825 usage="WIDTH [eV] 0.1", type_of_var=real_t, &
2826 default_r_val=cp_unit_to_cp2k(value=0.1_dp, unit_str="eV"), unit_str="eV")
2827 CALL section_add_keyword(broaden_subsection, keyword)
2828 CALL keyword_release(keyword)
2829 CALL keyword_create(keyword, __location__, name="VOIGT_MIXING", &
2830 description="Lorentzian fraction of the pseudo-Voigt broadening function.", &
2831 usage="VOIGT_MIXING 0.5", type_of_var=real_t, default_r_val=0.5_dp)
2832 CALL section_add_keyword(broaden_subsection, keyword)
2833 CALL keyword_release(keyword)
2834 CALL section_add_subsection(subsection, broaden_subsection)
2835 CALL section_release(broaden_subsection)
2836 CALL section_add_subsection(print_key, subsection)
2837 CALL section_release(subsection)
2838
2839 CALL keyword_create(keyword, __location__, name="OUT_EACH_STATE", &
2840 variants=["OUT_EACH_MO"], &
2841 description="Output on the status of the calculation every OUT_EACH_MO states. If -1 no output", &
2842 usage="OUT_EACH_STATE integer", default_i_val=-1)
2843 CALL section_add_keyword(print_key, keyword)
2844 CALL keyword_release(keyword)
2845
2846 CALL section_create(subsection, __location__, name="LDOS", &
2847 description="Controls the printing of local PDOS, projected on subsets"// &
2848 " of atoms given through lists", &
2849 n_keywords=4, n_subsections=0, repeats=.true.)
2850 CALL keyword_create(keyword, __location__, name="COMPONENTS", &
2851 description="Print out PDOS distinguishing all angular momentum components.", &
2852 usage="COMPONENTS", default_l_val=.false., lone_keyword_l_val=.true.)
2853 CALL section_add_keyword(subsection, keyword)
2854 CALL keyword_release(keyword)
2855 CALL keyword_create(keyword, __location__, name="LIST", &
2856 description="Specifies a list of indexes of atoms where to project the DOS", &
2857 usage="LIST {integer} {integer} .. {integer}", type_of_var=integer_t, &
2858 n_var=-1, repeats=.true.)
2859 CALL section_add_keyword(subsection, keyword)
2860 CALL keyword_release(keyword)
2861 CALL section_add_subsection(print_key, subsection)
2862 CALL section_release(subsection)
2863
2864 CALL section_create(subsection, __location__, name="R_LDOS", &
2865 description="Controls the printing of local PDOS, projected on 3D volume in real space, "// &
2866 "the volume is defined in terms of position with respect to atoms in the lists", &
2867 n_keywords=4, n_subsections=0, repeats=.true.)
2868 CALL keyword_create(keyword, __location__, name="LIST", &
2869 description="Specifies a list of indexes of atoms used to define the real space volume", &
2870 usage="LIST {integer} {integer} .. {integer}", type_of_var=integer_t, &
2871 n_var=-1, repeats=.true.)
2872 CALL section_add_keyword(subsection, keyword)
2873 CALL keyword_release(keyword)
2874 CALL keyword_create(keyword, __location__, name="XRANGE", &
2875 description="range of positions in Cartesian direction x: all grid points within "// &
2876 "this range from at least one atom of the list are considered", &
2877 usage="XRANGE -10.0 10.0", unit_str="angstrom", n_var=2, type_of_var=real_t)
2878 CALL section_add_keyword(subsection, keyword)
2879 CALL keyword_release(keyword)
2880 CALL keyword_create(keyword, __location__, name="YRANGE", &
2881 description="range of positions in Cartesian direction y: all grid points within "// &
2882 "this range from at least one atom of the list are considered", &
2883 usage="YRANGE -10.0 10.0", unit_str="angstrom", n_var=2, type_of_var=real_t)
2884 CALL section_add_keyword(subsection, keyword)
2885 CALL keyword_release(keyword)
2886 CALL keyword_create(keyword, __location__, name="ZRANGE", &
2887 description="range of positions in Cartesian direction z: all grid points within "// &
2888 "this range from at least one atom of the list are considered", &
2889 usage="ZRANGE -10.0 10.0", unit_str="angstrom", n_var=2, type_of_var=real_t)
2890 CALL section_add_keyword(subsection, keyword)
2891 CALL keyword_release(keyword)
2892 CALL keyword_create(keyword, __location__, name="ERANGE", &
2893 description="Only project states with the energy values in the given interval. "// &
2894 "Default is all states.", &
2895 usage="ERANGE -1.0 1.0", unit_str="hartree", n_var=2, type_of_var=real_t)
2896 CALL section_add_keyword(subsection, keyword)
2897 CALL keyword_release(keyword)
2898 CALL section_add_subsection(print_key, subsection)
2899 CALL section_release(subsection)
2900
2901 END SUBROUTINE add_dos_keywords
2902
2903! **************************************************************************************************
2904!> \brief Create WANNIER90 print section.
2905!> \param print_key print key section to create
2906! **************************************************************************************************
2907 SUBROUTINE create_wannier_section(print_key)
2908
2909 TYPE(section_type), POINTER :: print_key
2910
2911 TYPE(keyword_type), POINTER :: keyword
2912
2913 NULLIFY (keyword)
2914
2915 CALL cp_print_key_section_create(print_key, __location__, "WANNIER90", &
2916 description="Interface to Wannier90 code. (EXPERIMENTAL)", &
2917 print_level=debug_print_level, common_iter_levels=1, filename="")
2918
2919 CALL keyword_create(keyword, __location__, name="SEED_NAME", &
2920 description="The seedname for the Wannier90 calculation (body of filenames).", &
2921 usage="SEED_NAME filename", default_c_val="wannier90", &
2922 n_var=1, type_of_var=char_t)
2923 CALL section_add_keyword(print_key, keyword)
2924 CALL keyword_release(keyword)
2925
2926 CALL keyword_create(keyword, __location__, name="MP_GRID", &
2927 description="The dimensions of the Monkhorst-Pack k-point grid. ", &
2928 usage="MP_GRID 6 6 6", n_var=-1, default_i_vals=[10, 10, 10], type_of_var=integer_t)
2929 CALL section_add_keyword(print_key, keyword)
2930 CALL keyword_release(keyword)
2931
2932 CALL keyword_create(keyword, __location__, name="KPOINTS_SOURCE", &
2933 description="Select the k-point source for the Wannier90 export. MP_GRID keeps "// &
2934 "the historical behavior and builds a full grid from WANNIER90%MP_GRID. SCF uses "// &
2935 "the full k-point mesh from DFT%KPOINTS for Monkhorst-Pack, MacDonald, Gamma, or "// &
2936 "explicit GENERAL k-points. If the SCF calculation uses K290 or SPGLIB symmetry "// &
2937 "reduction, the corresponding unreduced mesh is used for Wannier90 because "// &
2938 "Wannier90 requires a complete mesh. NNKP reads explicit k-points and directed "// &
2939 "overlap connections from NNKP_FILE, without a regular-mesh requirement. "// &
2940 "WILSON generates and refines a surface of closed loops at the SCF potential. "// &
2941 "TRIM generates four or eight time-reversal-invariant points for native parity analysis.", &
2942 usage="KPOINTS_SOURCE MP_GRID", type_of_var=enum_t, &
2943 enum_c_vals=s2a("MP_GRID", "SCF", "NNKP", "WILSON", "TRIM"), &
2944 enum_i_vals=[0, 1, 2, 3, 4], &
2945 enum_desc=s2a("Build the Wannier90 k-point mesh from WANNIER90%MP_GRID.", &
2946 "Use the full k-point mesh from DFT%KPOINTS.", &
2947 "Read explicit k-points and connections from NNKP_FILE.", &
2948 "Generate a family of closed Wilson loops.", &
2949 "Generate TRIM and enable native inversion-parity analysis."), &
2950 default_i_val=0)
2951 CALL section_add_keyword(print_key, keyword)
2952 CALL keyword_release(keyword)
2953
2954 CALL keyword_create(keyword, __location__, name="NNKP_FILE", &
2955 description="Wannier90 nnkp file for KPOINTS_SOURCE NNKP. Required literal block names: "// &
2956 "real_lattice (Angstrom), recip_lattice (2*pi/Angstrom), kpoints (fractional), "// &
2957 "and nnkpts (nearest-neighbour point indices and reciprocal lattice shifts). Nonzero exclusions "// &
2958 "in the file are unsupported; use EXCLUDE_BANDS in CP2K instead.", &
2959 usage="NNKP_FILE loop.nnkp", default_c_val="wannier90.nnkp", &
2960 n_var=1, type_of_var=char_t)
2961 CALL section_add_keyword(print_key, keyword)
2962 CALL keyword_release(keyword)
2963
2964 CALL keyword_create(keyword, __location__, name="SPIN_CHANNEL", &
2965 description="Collinear spin channel exported to the Wannier90 files (1 or 2). "// &
2966 "Each scalar export contains one channel. With SOC, use the restricted channel 1.", &
2967 usage="SPIN_CHANNEL 1", default_i_val=1)
2968 CALL section_add_keyword(print_key, keyword)
2969 CALL keyword_release(keyword)
2970
2971 CALL keyword_create(keyword, __location__, name="WILSON_LOOP", &
2972 description="Compute native SVD-unitarized Wilson loops for NNKP connections. "// &
2973 "Requires one directed neighbour per point and contiguous, closed loops. "// &
2974 "Automatically enabled by KPOINTS_SOURCE WILSON.", default_l_val=.false., &
2975 citations=[gresch2017])
2976 CALL section_add_keyword(print_key, keyword)
2977 CALL keyword_release(keyword)
2978 CALL keyword_create(keyword, __location__, name="WILSON_MESH", &
2979 description="Points per closed loop and number of transverse loops. "// &
2980 "Only for KPOINTS_SOURCE WILSON; loops include both transverse endpoints.", &
2981 n_var=2, default_i_vals=[16, 9], type_of_var=integer_t)
2982 CALL section_add_keyword(print_key, keyword)
2983 CALL keyword_release(keyword)
2984 CALL keyword_create(keyword, __location__, name="WILSON_ORIGIN", &
2985 description="Origin of Wilson surface in fractional reciprocal coordinates.", &
2986 n_var=3, default_r_vals=[0.0_dp, 0.0_dp, 0.0_dp], type_of_var=real_t)
2987 CALL section_add_keyword(print_key, keyword)
2988 CALL keyword_release(keyword)
2989 CALL keyword_create(keyword, __location__, name="WILSON_DIRECTION", &
2990 description="Integer reciprocal vector along each closed Wilson loop.", &
2991 n_var=3, default_i_vals=[1, 0, 0], type_of_var=integer_t)
2992 CALL section_add_keyword(print_key, keyword)
2993 CALL keyword_release(keyword)
2994 CALL keyword_create(keyword, __location__, name="WILSON_TRANSVERSE", &
2995 description="Fractional reciprocal vector spanning the transverse surface. "// &
2996 "For Z2 choose a time-reversal half-plane, e.g. 0 0.5 0.", &
2997 n_var=3, default_r_vals=[0.0_dp, 0.5_dp, 0.0_dp], type_of_var=real_t)
2998 CALL section_add_keyword(print_key, keyword)
2999 CALL keyword_release(keyword)
3000 CALL keyword_create(keyword, __location__, name="Z2", &
3001 description="Compute native largest-gap crossing parity on a WILSON half-surface. "// &
3002 "Requires SOC, a nonmagnetic time-reversal-invariant Hamiltonian, an isolated "// &
3003 "occupied subspace, and converged Wilson spectra. TIME_REVERSAL must be set.", &
3004 default_l_val=.false., citations=[soluyanov2011, gresch2017])
3005 CALL section_add_keyword(print_key, keyword)
3006 CALL keyword_release(keyword)
3007 CALL keyword_create(keyword, __location__, name="CHERN", &
3008 description="Compute the native first Chern number from determinant Wilson winding. "// &
3009 "Requires KPOINTS_SOURCE WILSON and a closed full surface with integer transverse "// &
3010 "winding, e.g. WILSON_TRANSVERSE 0 1 0. Not compatible with Z2 half-surfaces. "// &
3011 "The selected bands must be isolated; SOC and time reversal are not required.", &
3012 default_l_val=.false., citations=[gresch2017])
3013 CALL section_add_keyword(print_key, keyword)
3014 CALL keyword_release(keyword)
3015 CALL keyword_create(keyword, __location__, name="PARITY", &
3016 description="Compute native even/odd inversion irreps at explicit TRIM. Uses the Gaussian "// &
3017 "AO metric, orbital parities, atom permutations and Bloch lattice phases. Validates the "// &
3018 "selected representation and its energy commutator. No Z2Pack or Wannier fit is needed.", &
3019 default_l_val=.false.)
3020 CALL section_add_keyword(print_key, keyword)
3021 CALL keyword_release(keyword)
3022 CALL keyword_create(keyword, __location__, name="INVERSION_TQC", &
3023 description="Enable PARITY and classify the inversion-subgroup symmetry signature of "// &
3024 "the occupied spinor bands. Requires SOC and TIME_REVERSAL and all four/eight TRIM. "// &
3025 "Reports Fu-Kane indices, 3D Z4, and an exact signed/nonnegative atomic EBR-signature test. "// &
3026 "Not a full-space-group TQC classifier or a certificate of a bulk gap/trivial topology.", &
3027 default_l_val=.false.)
3028 CALL section_add_keyword(print_key, keyword)
3029 CALL keyword_release(keyword)
3030 CALL keyword_create(keyword, __location__, name="TQC_DIMENSION", &
3031 description="Dimension of the inversion analysis: 2 uses the four kz=0 TRIM; "// &
3032 "3 uses all eight TRIM of the supplied reciprocal cell. All cell directions must be periodic.", &
3033 default_i_val=3)
3034 CALL section_add_keyword(print_key, keyword)
3035 CALL keyword_release(keyword)
3036 CALL keyword_create(keyword, __location__, name="PARITY_ORIGIN", &
3037 description="Inversion center in fractional direct-cell coordinates. The operation is "// &
3038 "r -> 2*center-r. Atomic kinds, basis and the selected Hamiltonian subspace must be invariant.", &
3039 n_var=3, default_r_vals=[0.0_dp, 0.0_dp, 0.0_dp], type_of_var=real_t)
3040 CALL section_add_keyword(print_key, keyword)
3041 CALL keyword_release(keyword)
3042 CALL keyword_create(keyword, __location__, name="PARITY_TOLERANCE", &
3043 description="Tolerance for parity metric, subspace and character checks. Also used "// &
3044 "as the inversion geometry tolerance in Bohr. Tighten with numerical convergence.", &
3045 default_r_val=1.e-6_dp)
3046 CALL section_add_keyword(print_key, keyword)
3047 CALL keyword_release(keyword)
3048 CALL keyword_create(keyword, __location__, name="PARITY_ENERGY_TOL", &
3049 description="Maximum projected symmetry/eigenvalue commutator in Hartree.", &
3050 default_r_val=1.e-6_dp)
3051 CALL section_add_keyword(print_key, keyword)
3052 CALL keyword_release(keyword)
3053 CALL keyword_create(keyword, __location__, name="REQUIRE_GLOBAL_GAP", &
3054 description="Require a positive sampled indirect gap above the lowest selected bands. "// &
3055 "Unlike the direct subspace gap this tests a common energy interval over all sampled "// &
3056 "points. A finite sampling does not prove a bulk gap. No per-point Fermi shifts are applied.", &
3057 default_l_val=.false.)
3058 CALL section_add_keyword(print_key, keyword)
3059 CALL keyword_release(keyword)
3060 CALL keyword_create(keyword, __location__, name="STATE_EXPORT", &
3061 description="Export selected complex AO states, all eigenvalues and full contracted "// &
3062 "Gaussian basis to SEED_NAME.topology for cross-geometry/phason overlaps. "// &
3063 "Requires NNKP, WILSON or TRIM, uses atomic units, and can generate large files. "// &
3064 "Spinor coefficients include second-variational SOC when enabled. "// &
3065 "No Wannier fit or Fermi-energy alignment is performed.", default_l_val=.false.)
3066 CALL section_add_keyword(print_key, keyword)
3067 CALL keyword_release(keyword)
3068 CALL keyword_create(keyword, __location__, name="TIME_REVERSAL", &
3069 description="User confirmation that the Hamiltonian is time-reversal invariant. "// &
3070 "Boundary Kramers degeneracy is additionally checked; it is not a proof of TR symmetry.", &
3071 default_l_val=.false.)
3072 CALL section_add_keyword(print_key, keyword)
3073 CALL keyword_release(keyword)
3074 CALL keyword_create(keyword, __location__, name="SOC", &
3075 description="Second-variational pseudopotential SOC for explicit-loop exports. "// &
3076 "Requires a restricted SCF and SOC-capable pseudopotentials. ADDED_MOS controls "// &
3077 "the scalar basis; EXCLUDE_BANDS then refers to spinor bands. Converge ADDED_MOS.", &
3078 default_l_val=.false.)
3079 CALL section_add_keyword(print_key, keyword)
3080 CALL keyword_release(keyword)
3081 CALL keyword_create(keyword, __location__, name="WILSON_MAX_REFINEMENT", &
3082 description="Maximum joint doublings of loop and transverse resolution; at least "// &
3083 "one doubling is required for generated WILSON surfaces.", default_i_val=3)
3084 CALL section_add_keyword(print_key, keyword)
3085 CALL keyword_release(keyword)
3086 CALL keyword_create(keyword, __location__, name="WILSON_TOL", &
3087 description="Tolerance of Wilson centres between successive meshes (reduced units).", &
3088 default_r_val=1.e-3_dp)
3089 CALL section_add_keyword(print_key, keyword)
3090 CALL keyword_release(keyword)
3091 CALL keyword_create(keyword, __location__, name="WILSON_GAP_TOL", &
3092 description="Minimum sampled separation from excluded bands in Hartree.", &
3093 default_r_val=1.e-7_dp)
3094 CALL section_add_keyword(print_key, keyword)
3095 CALL keyword_release(keyword)
3096
3097 CALL keyword_create(keyword, __location__, name="REUSE_SCF_MOS", &
3098 description="Try to reuse the SCF k-point MO coefficients when KPOINTS_SOURCE SCF "// &
3099 "is active. CP2K can directly reuse full SCF meshes, time-reversal partners, "// &
3100 "non-degenerate atom/AO symmetry images, and atom/AO symmetry images whose "// &
3101 "degenerate band subspaces are fully contained in the exported Wannier90 band "// &
3102 "window. If the Wannier90 band window cuts through a degenerate subspace, CP2K "// &
3103 "falls back to the historical full-mesh diagonalization.", &
3104 usage="REUSE_SCF_MOS T", default_l_val=.true.)
3105 CALL section_add_keyword(print_key, keyword)
3106 CALL keyword_release(keyword)
3107
3108 CALL keyword_create(keyword, __location__, name="VALIDATE_REUSE_SCF_MOS", &
3109 description="When KPOINTS_SOURCE SCF and REUSE_SCF_MOS are active, first build a "// &
3110 "full-mesh diagonalization reference and validate the reconstructed SCF MO "// &
3111 "subspaces against it before writing Wannier90 files. This diagnostic option is "// &
3112 "expensive and intended for development of symmetry-reconstructed Wannier90 "// &
3113 "exports.", &
3114 usage="VALIDATE_REUSE_SCF_MOS T", default_l_val=.false.)
3115 CALL section_add_keyword(print_key, keyword)
3116 CALL keyword_release(keyword)
3117
3118 CALL keyword_create(keyword, __location__, name="USE_BLOCH_PHASES", &
3119 description="Apply the CP2K Bloch-phase gauge to complete exported band subspaces "// &
3120 "and write an explicit identity .amn projection file for Wannier90. It is only "// &
3121 "valid when WANNIER_FUNCTIONS matches the number of exported bands; disentangled "// &
3122 "Wannier90 calculations still need explicit projections.", &
3123 usage="USE_BLOCH_PHASES T", default_l_val=.false.)
3124 CALL section_add_keyword(print_key, keyword)
3125 CALL keyword_release(keyword)
3126
3127 CALL keyword_create(keyword, __location__, name="ADDED_MOS", &
3128 variants=["ADDED_BANDS"], &
3129 description="Number of MOs/Bands added to the Band Structure calculation.", &
3130 default_i_val=0)
3131 CALL section_add_keyword(print_key, keyword)
3132 CALL keyword_release(keyword)
3133
3134 CALL keyword_create(keyword, __location__, name="EXCLUDE_BANDS", &
3135 description="List of Bands excluded in the Wannier calculation.", &
3136 usage="EXCLUDE_BANDS b1 b2 ...", n_var=-1, repeats=.true., &
3137 type_of_var=integer_t)
3138 CALL section_add_keyword(print_key, keyword)
3139 CALL keyword_release(keyword)
3140
3141 CALL keyword_create(keyword, __location__, name="WANNIER_FUNCTIONS", &
3142 description="Number of Wannier functions to be calculated. ", &
3143 usage="WANNIER_FUNCTIONS 6", n_var=1, default_i_val=0, &
3144 repeats=.true., type_of_var=integer_t)
3145 CALL section_add_keyword(print_key, keyword)
3146 CALL keyword_release(keyword)
3147
3148 END SUBROUTINE create_wannier_section
3149
3150! **************************************************************************************************
3151!> \brief ...
3152!> \param print_key ...
3153! **************************************************************************************************
3154 SUBROUTINE create_stm_section(print_key)
3155 TYPE(section_type), POINTER :: print_key
3156
3157 TYPE(keyword_type), POINTER :: keyword
3158
3159 NULLIFY (keyword)
3160
3161 CALL cp_print_key_section_create(print_key, __location__, "STM", &
3162 description="Controls the printing of cubes for the generation of STM images.", &
3163 print_level=debug_print_level, filename="")
3164 CALL keyword_create(keyword, __location__, name="stride", &
3165 description="The stride (X,Y,Z) used to write the cube file "// &
3166 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
3167 " 1 number valid for all components.", &
3168 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
3169 CALL section_add_keyword(print_key, keyword)
3170 CALL keyword_release(keyword)
3171
3172 CALL keyword_create(keyword, __location__, name="nlumo", &
3173 description="If the printkey is activated controls the number of additional lumos"// &
3174 " that are computed to be able to reproduce STM images obtained"// &
3175 " from positive bias (imaging unoccupied states)", &
3176 default_i_val=0)
3177 CALL section_add_keyword(print_key, keyword)
3178 CALL keyword_release(keyword)
3179
3180 CALL keyword_create(keyword, __location__, name="BIAS", &
3181 description="Bias energy for scanning tunneling microscopy (STM) image generation. "// &
3182 "Orbital densities are summed according to the bias energy. "// &
3183 "For negative values, states in the range ]EF+bias,EF] are summed, "// &
3184 "While positive values sum states in the range [EF,EF+bias[. "// &
3185 "If positive biases are used, sufficiently many unoccupied stated "// &
3186 "(see ADDED_MOS and NLUMO ) should be computed.", &
3187 n_var=-1, type_of_var=real_t, default_r_vals=[0.0_dp], unit_str='eV')
3188 CALL section_add_keyword(print_key, keyword)
3189 CALL keyword_release(keyword)
3190
3191 CALL keyword_create(keyword, __location__, name="TH_TORB", &
3192 description="Tip orbital symmetry in Tersoff-Hamann approximation to compute STM images", &
3193 repeats=.true., &
3194 default_i_val=orb_s, &
3195 usage="TH_TORB s dz2", &
3196 enum_c_vals=s2a("S", "PX", "PY", "PZ", "DXY", "DYZ", "DZX", "DX2", "DY2", "DZ2"), &
3198 enum_desc=s2a("s orbital", "px orbital", "py orbital", "pz orbital", &
3199 "dxy orbital", "dyz orbital", "dzx orbital", "x^2 orbital", "y^2 orbital", "z^2 orbital"))
3200 CALL section_add_keyword(print_key, keyword)
3201 CALL keyword_release(keyword)
3202
3203 CALL keyword_create(keyword, __location__, name="REF_ENERGY", &
3204 description="By default the reference energy is the Fermi energy. In order to compare"// &
3205 " with STS experiments, where specific energy ranges are addressed, here"// &
3206 " one can set a different reference energy."// &
3207 " The energy range is anyway controlled by the BIAS", &
3208 type_of_var=real_t, default_r_val=0.0_dp, unit_str='eV')
3209 CALL section_add_keyword(print_key, keyword)
3210 CALL keyword_release(keyword)
3211
3212 CALL keyword_create(keyword, __location__, name="APPEND", &
3213 description="append the cube files when they already exist", &
3214 default_l_val=.false., lone_keyword_l_val=.true.)
3215 CALL section_add_keyword(print_key, keyword)
3216 CALL keyword_release(keyword)
3217
3218 END SUBROUTINE create_stm_section
3219
3220! **************************************************************************************************
3221!> \brief ...
3222!> \param section ...
3223! **************************************************************************************************
3224 SUBROUTINE create_wfn_mix_section(section)
3225
3226 TYPE(section_type), POINTER :: section
3227
3228 TYPE(keyword_type), POINTER :: keyword
3229 TYPE(section_type), POINTER :: subsection
3230
3231 NULLIFY (subsection)
3232 NULLIFY (keyword)
3233
3234 cpassert(.NOT. ASSOCIATED(section))
3235
3236 CALL section_create(section, __location__, name="WFN_MIX", &
3237 description="A section that allows manipulation of the MO coeffs, "// &
3238 "e.g. for changing a ground state into an excited state. "// &
3239 "Starting from a copy of the original MOs, changes can be made "// &
3240 "by adding linear combinations of HOMO/LUMO of the original MOs to the result MOs. "// &
3241 "This method is called after an SCF optimization or before an RTP run if "// &
3242 "INITIAL_WFN=RESTART_WFN. Note that if called after an SCF optimization, a restart file "// &
3243 "with the mixed MOs is saved. This is not the case for an RTP with "// &
3244 "INITIAL_WFN=RESTART_WFN.", &
3245 n_keywords=1, n_subsections=0, repeats=.false.)
3246
3247 CALL keyword_create(keyword, __location__, name="OVERWRITE_MOS", &
3248 description="If set to True, the active molecular orbitals in memory will be replaced by the mixed wfn "// &
3249 "at the end of the wfn mixing procedure. For instance, you can then use this new set of MOs to perform "// &
3250 "RTP or EMD directly. Note that in the case of an RTP run with INITIAL_WFN=RESTART_WFN, the OVERWRITE_MOS "// &
3251 "keyword is not used.", &
3252 default_l_val=.false., lone_keyword_l_val=.true.)
3253 CALL section_add_keyword(section, keyword)
3254 CALL keyword_release(keyword)
3255
3256 CALL section_create(subsection, __location__, name="UPDATE", &
3257 description="Update a result MO with with a linear combination of original MOs."// &
3258 " This section can be repeated to build arbitrary linear combinations using repeatedly y=a*y+b*x. "// &
3259 "RESULT is (y), RESULT_SCALE is (a), ORIG is (x), ORIG_SCALE is (b)", &
3260 n_keywords=1, n_subsections=0, repeats=.true.)
3261
3262 CALL keyword_create(keyword, __location__, name="RESULT_MO_INDEX", &
3263 description="Index of the MO (y) to be modified. Counting down in energy: "// &
3264 "set to 1 for the highest MO, to 3 for the highest MO-2.", &
3265 usage="RESULT_MO_INDEX 1", type_of_var=integer_t, default_i_val=0)
3266 CALL section_add_keyword(subsection, keyword)
3267 CALL keyword_release(keyword)
3268
3269 CALL keyword_create(keyword, __location__, name="RESULT_MARKED_STATE", &
3270 description="Specifies the MO according to "// &
3271 "the marks set in MOLECULAR_STATES. The value corresponds to the repetition "// &
3272 "of MARK_STATES in MOLECULAR_STATES", &
3273 usage="RESULT_MARKED_STATE 1", type_of_var=integer_t, default_i_val=0)
3274 CALL section_add_keyword(subsection, keyword)
3275 CALL keyword_release(keyword)
3276
3277 CALL keyword_create(keyword, __location__, name="REVERSE_MO_INDEX", &
3278 description="Reverses the index order of the OCCUPIED and EXTERNAL MOs. With this keyword "// &
3279 "ORIG_MO_INDEX/RESULT_MO_INDEX 1 point to the lowest energy MO (instead of the highest) "// &
3280 "and counts up in energy. The VIRTUAL MOs indexing is unchanged.", &
3281 default_l_val=.false., lone_keyword_l_val=.true.)
3282 CALL section_add_keyword(subsection, keyword)
3283 CALL keyword_release(keyword)
3284
3285 CALL keyword_create(keyword, __location__, name="RESULT_SPIN_INDEX", &
3286 description="Spin of the MO (y) to be modified.", &
3287 enum_c_vals=s2a("Alpha", "Beta"), &
3288 enum_i_vals=[1, 2], & ! direct index in array
3289 default_i_val=1, &
3290 enum_desc=s2a("Majority spin", "Minority spin"))
3291 CALL section_add_keyword(subsection, keyword)
3292 CALL keyword_release(keyword)
3293
3294 CALL keyword_create(keyword, __location__, name="RESULT_SCALE", &
3295 description="Scaling factor of the result variable (a).", &
3296 usage="RESULT_SCALE 0.0", type_of_var=real_t)
3297 CALL section_add_keyword(subsection, keyword)
3298 CALL keyword_release(keyword)
3299
3300 CALL keyword_create(keyword, __location__, name="ORIG_MO_INDEX", &
3301 description="Index of the original MO (x). "// &
3302 "If ORIG_TYPE is OCCUPIED, it counts down in energy: set to 1 to point to "// &
3303 "the highest MO and to 3 for the highest MO-2. "// &
3304 "If ORIG_TYPE is VIRTUAL, it counts up in energy: set to 1 to point to "// &
3305 "the lowest virtual MO and to 3 for the lowest MO+2. "// &
3306 "If ORIG_TYPE is EXTERNAL, it counts down in energy for the external "// &
3307 "set of MOs: set to 1 to point to the highest MO and to 3 for the highest MO-2. "// &
3308 "Do not set to zero or negative values.", &
3309 usage="ORIG_MO_INDEX 1", type_of_var=integer_t, default_i_val=0)
3310 CALL section_add_keyword(subsection, keyword)
3311 CALL keyword_release(keyword)
3312
3313 CALL keyword_create(keyword, __location__, name="ORIG_MARKED_STATE", &
3314 description="Specifies the MO according to "// &
3315 "the marks set in MOLECULAR_STATES. The value corresponds to the repetition "// &
3316 "of MARK_STATES in MOLECULAR_STATES", &
3317 usage="ORIG_MARKED_STATE 1", type_of_var=integer_t, default_i_val=0)
3318 CALL section_add_keyword(subsection, keyword)
3319 CALL keyword_release(keyword)
3320
3321 CALL keyword_create(keyword, __location__, name="ORIG_SPIN_INDEX", &
3322 description="Spin of the MO (x) to be modified.", &
3323 enum_c_vals=s2a("Alpha", "Beta"), &
3324 enum_i_vals=[1, 2], & ! direct index in array
3325 default_i_val=1, &
3326 enum_desc=s2a("Majority spin", "Minority spin"))
3327 CALL section_add_keyword(subsection, keyword)
3328 CALL keyword_release(keyword)
3329
3330 CALL keyword_create(keyword, __location__, name="ORIG_SCALE", &
3331 description="Scaling factor of the original variable (b).", &
3332 usage="ORIG_SCALE 0.0", type_of_var=real_t)
3333 CALL section_add_keyword(subsection, keyword)
3334 CALL keyword_release(keyword)
3335
3336 CALL keyword_create(keyword, __location__, name="ORIG_TYPE", &
3337 description="Type of the original MO. Note that if ADDED_MOS was used in the "// &
3338 "SCF construction of the MO matrix, these extra MOs are also treated as OCCUPIED. ", &
3339 enum_c_vals=s2a("OCCUPIED", "VIRTUAL", 'EXTERNAL'), &
3340 usage="ORIG_TYPE OCCUPIED", &
3341 default_i_val=wfn_mix_orig_occ, &
3342 enum_desc=s2a("The original MO is the result of the SCF procedure. This can also contain "// &
3343 "unoccupied MOs if the SCF%ADDED_MOS keyword was used.", &
3344 "The original MO is taken from the result of additional MOs calculated a "// &
3345 "posteriori of the SCF by request of the user. E.g. by specifying print%mo_cubes%nlumo. ", &
3346 "The orginal MO is from an external .wfn file. Use the keyword "// &
3347 "ORIG_EXT_FILE_NAME to define its name."), &
3349 CALL section_add_keyword(subsection, keyword)
3350 CALL keyword_release(keyword)
3351
3352 CALL keyword_create(keyword, __location__, name="ORIG_EXT_FILE_NAME", &
3353 description="Name of the wavefunction file to read the original MO from. "// &
3354 "For instance, a restart wfn file from SCF calculation or an excited state from XAS_TDP calculation. "// &
3355 "If no file is specified, the run will crash. "// &
3356 "Currently, a RTP restart file (.rtpwfn) cannot be used as reference. "// &
3357 "Currently, this file SHALL have the basis set, number of MO and the same number of spin as the one "// &
3358 "from the SCF cycle.", &
3359 usage="ORIG_EXT_FILE_NAME <FILENAME>", &
3360 default_lc_val="EMPTY")
3361 CALL section_add_keyword(subsection, keyword)
3362 CALL keyword_release(keyword)
3363
3364 CALL section_add_subsection(section, subsection)
3365 CALL section_release(subsection)
3366
3367 END SUBROUTINE create_wfn_mix_section
3368
3369! **************************************************************************************************
3370!> \brief Creates the section for cube files related to the implicit Poisson solver.
3371!> \param section the section to be created
3372!> \par History
3373!> 03.2016 refactored from create_print_dft_section [Hossein Bani-Hashemian]
3374!> \author Mohammad Hossein Bani-Hashemian
3375! **************************************************************************************************
3376 SUBROUTINE create_implicit_psolver_section(section)
3377 TYPE(section_type), POINTER :: section
3378
3379 TYPE(keyword_type), POINTER :: keyword
3380 TYPE(section_type), POINTER :: print_key
3381
3382 cpassert(.NOT. ASSOCIATED(section))
3383 CALL section_create(section, __location__, name="IMPLICIT_PSOLVER", &
3384 description="Controls printing of cube files for data from the implicit "// &
3385 "(generalized) Poisson solver.", &
3386 citations=[banihashemian2016], &
3387 n_keywords=0, n_subsections=3, repeats=.false.)
3388
3389 NULLIFY (keyword, print_key)
3390
3391 ! dielectric constant function
3392 CALL cp_print_key_section_create(print_key, __location__, "DIELECTRIC_CUBE", &
3393 description="Controls the printing of a cube file with dielectric constant from "// &
3394 "the implicit (generalized) Poisson solver.", &
3395 print_level=high_print_level, filename="")
3396
3397 CALL keyword_create(keyword, __location__, name="stride", &
3398 description="The stride (X,Y,Z) used to write the cube file "// &
3399 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
3400 " 1 number valid for all components.", &
3401 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
3402 CALL section_add_keyword(print_key, keyword)
3403 CALL keyword_release(keyword)
3404 CALL keyword_create(keyword, __location__, name="APPEND", &
3405 description="append the cube files when they already exist", &
3406 default_l_val=.false., lone_keyword_l_val=.true.)
3407 CALL section_add_keyword(print_key, keyword)
3408 CALL keyword_release(keyword)
3409 CALL keyword_create(keyword, __location__, name="MAX_FILE_SIZE_MB", &
3410 description="Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
3411 usage="MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
3412 CALL section_add_keyword(print_key, keyword)
3413 CALL keyword_release(keyword)
3414
3415 CALL section_add_subsection(section, print_key)
3416 CALL section_release(print_key)
3417
3418 ! dirichlet type constraints
3420 print_key, __location__, "DIRICHLET_BC_CUBE", &
3421 description="Controls the printing of cube files with unit step functions (constraints)"// &
3422 " representing Dirichlet-type (boundary) regions defined in the implicit (generalized) Poisson"// &
3423 " solver section. The regions remain unchanged throughout the calculations. If the Dirichlet"// &
3424 " regions are relatively large and/or the number of partitions is quite high, in order to save memory,"// &
3425 " generate the cube files in early steps and perform the rest of the calculations with this keyword"// &
3426 " switched off.", &
3427 print_level=high_print_level, filename="")
3428
3429 CALL keyword_create(keyword, __location__, name="TILE_CUBES", &
3430 description="Print tiles that tessellate the Dirichlet regions into cube files. If TRUE, "// &
3431 "generates cube files as many as the total number of tiles.", &
3432 usage="TILE_CUBES <logical>", &
3433 default_l_val=.false., lone_keyword_l_val=.true.)
3434 CALL section_add_keyword(print_key, keyword)
3435 CALL keyword_release(keyword)
3436 CALL keyword_create(keyword, __location__, name="stride", &
3437 description="The stride (X,Y,Z) used to write the cube file "// &
3438 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
3439 " 1 number valid for all components.", &
3440 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
3441 CALL section_add_keyword(print_key, keyword)
3442 CALL keyword_release(keyword)
3443 CALL keyword_create(keyword, __location__, name="APPEND", &
3444 description="append the cube files when they already exist", &
3445 default_l_val=.false., lone_keyword_l_val=.true.)
3446 CALL section_add_keyword(print_key, keyword)
3447 CALL keyword_release(keyword)
3448 CALL keyword_create(keyword, __location__, name="MAX_FILE_SIZE_MB", &
3449 description="Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
3450 usage="MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
3451 CALL section_add_keyword(print_key, keyword)
3452 CALL keyword_release(keyword)
3453
3454 CALL section_add_subsection(section, print_key)
3455 CALL section_release(print_key)
3456
3457 ! charge introduced by Lagrange multipliers
3458 CALL cp_print_key_section_create(print_key, __location__, "DIRICHLET_CSTR_CHARGE_CUBE", &
3459 description="Controls the printing of cube files with penalty charges induced to "// &
3460 "Dirichlet regions by Lagrange multipliers (implicit Poisson solver).", &
3461 print_level=high_print_level, filename="")
3462
3463 CALL keyword_create(keyword, __location__, name="stride", &
3464 description="The stride (X,Y,Z) used to write the cube file "// &
3465 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
3466 " 1 number valid for all components.", &
3467 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=integer_t)
3468 CALL section_add_keyword(print_key, keyword)
3469 CALL keyword_release(keyword)
3470 CALL keyword_create(keyword, __location__, name="APPEND", &
3471 description="append the cube files when they already exist", &
3472 default_l_val=.false., lone_keyword_l_val=.true.)
3473 CALL section_add_keyword(print_key, keyword)
3474 CALL keyword_release(keyword)
3475 CALL keyword_create(keyword, __location__, name="MAX_FILE_SIZE_MB", &
3476 description="Limits the size of the cube file by choosing a suitable stride. Zero means no limit.", &
3477 usage="MAX_FILE_SIZE_MB 1.5", default_r_val=0.0_dp)
3478 CALL section_add_keyword(print_key, keyword)
3479 CALL keyword_release(keyword)
3480
3481 CALL section_add_subsection(section, print_key)
3482 CALL section_release(print_key)
3483
3484 END SUBROUTINE create_implicit_psolver_section
3485
3486! **************************************************************************************************
3487!> \brief creates the interpolation section for the periodic QM/MM
3488!> \param section ...
3489!> \author tlaino
3490! **************************************************************************************************
3491 SUBROUTINE create_gspace_interp_section(section)
3492 TYPE(section_type), POINTER :: section
3493
3494 TYPE(keyword_type), POINTER :: keyword
3495 TYPE(section_type), POINTER :: print_key
3496
3497 cpassert(.NOT. ASSOCIATED(section))
3498 CALL section_create(section, __location__, name="interpolator", &
3499 description="controls the interpolation for the G-space term", &
3500 n_keywords=5, n_subsections=0, repeats=.false.)
3501
3502 NULLIFY (keyword, print_key)
3503
3504 CALL keyword_create(keyword, __location__, name="aint_precond", &
3505 description="the approximate inverse to use to get the starting point"// &
3506 " for the linear solver of the spline3 methods", &
3507 usage="aint_precond copy", &
3508 default_i_val=precond_spl3_aint, &
3509 enum_c_vals=s2a("copy", "spl3_nopbc_aint1", "spl3_nopbc_precond1", &
3510 "spl3_nopbc_aint2", "spl3_nopbc_precond2", "spl3_nopbc_precond3"), &
3513 CALL section_add_keyword(section, keyword)
3514 CALL keyword_release(keyword)
3515
3516 CALL keyword_create(keyword, __location__, name="precond", &
3517 description="The preconditioner used"// &
3518 " for the linear solver of the spline3 methods", &
3519 usage="precond copy", &
3520 default_i_val=precond_spl3_3, &
3521 enum_c_vals=s2a("copy", "spl3_nopbc_aint1", "spl3_nopbc_precond1", &
3522 "spl3_nopbc_aint2", "spl3_nopbc_precond2", "spl3_nopbc_precond3"), &
3525 CALL section_add_keyword(section, keyword)
3526 CALL keyword_release(keyword)
3527
3528 CALL keyword_create(keyword, __location__, name="eps_x", &
3529 description="accuracy on the solution for spline3 the interpolators", &
3530 usage="eps_x 1.e-15", default_r_val=1.e-10_dp)
3531 CALL section_add_keyword(section, keyword)
3532 CALL keyword_release(keyword)
3533
3534 CALL keyword_create(keyword, __location__, name="eps_r", &
3535 description="accuracy on the residual for spline3 the interpolators", &
3536 usage="eps_r 1.e-15", default_r_val=1.e-10_dp)
3537 CALL section_add_keyword(section, keyword)
3538 CALL keyword_release(keyword)
3539
3540 CALL keyword_create(keyword, __location__, name="max_iter", &
3541 variants=['maxiter'], &
3542 description="the maximum number of iterations", &
3543 usage="max_iter 200", default_i_val=100)
3544 CALL section_add_keyword(section, keyword)
3545 CALL keyword_release(keyword)
3546
3547 NULLIFY (print_key)
3548 CALL cp_print_key_section_create(print_key, __location__, "conv_info", &
3549 description="if convergence information about the linear solver"// &
3550 " of the spline methods should be printed", &
3551 print_level=medium_print_level, each_iter_names=s2a("SPLINE_FIND_COEFFS"), &
3552 each_iter_values=[10], filename="__STD_OUT__", &
3553 add_last=add_last_numeric)
3554 CALL section_add_subsection(section, print_key)
3555 CALL section_release(print_key)
3556
3557 END SUBROUTINE create_gspace_interp_section
3558
3559END 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 grimme2015fod
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 gresch2017
integer, save, public weber2008
integer, save, public soluyanov2011
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...
character(len=default_string_length) function, public cp_openpmd_get_default_extension()
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:1222
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 moments_format_detailed
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 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 wfi_gext_proj_qtr_nr
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 moments_format_trajectory
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 plus_u_tensorial
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 wfi_gext_proj_nr
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_kpoints_section(section)
Creates the Kpoints section SECTION: &kpoint... &end SCHEME [None, Gamma, Monkhorst-Pack,...
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 add_dos_keywords(print_key, xas_mode)
Add projected-DOS related keywords to a DOS or XAS PDOS print section.
subroutine, public create_print_dft_section(section)
Create the print dft section.
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
integer, parameter, public enum_t
Defines the basic variable types.
Definition kinds.F:23
integer, parameter, public dp
Definition kinds.F:34
K-point MO wavefunction dump to TEXT file for post-processing (PDOS, etc.).
integer, parameter, public mokp_ao_gto_basis
integer, parameter, public mokp_ao_overlap_matrix
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.
represent a keyword in the input
represent a section of the input file