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