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