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