72 cpassert(.NOT.
ASSOCIATED(section))
74 description=
"Sets the method of choice to calculate core-level excitation spectra. "// &
75 "The occupied states from which we calculate the "// &
76 "excitation should be specified. "// &
77 "Localization of the orbitals may be useful.", &
78 n_keywords=10, n_subsections=1, repeats=.false., &
81 NULLIFY (keyword, subsection, print_key)
83 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
84 description=
"controls the activation of core-level spectroscopy simulations", &
86 default_l_val=.false., &
87 lone_keyword_l_val=.true.)
92 variants=(/
"XAS_METHOD"/), &
93 description=
"Method to be used to calculate core-level excitation spectra", &
94 usage=
"METHOD TP_HH", &
96 enum_c_vals=
s2a(
"NONE",
"TP_HH",
"TP_FH",
"TP_VAL",
"TP_XHH",
"TP_XFH",
"DSCF",
"TP_FLEX"), &
98 "No core electron spectroscopy",
"Transition potential half-hole", &
99 "Transition potential full-hole",
"Hole in homo for X-ray emission only ", &
100 "Transition potential excited half-hole", &
101 "Transition potential excited full-hole ", &
102 "DSCF calculations to compute the first (core)excited state", &
103 "Transition potential with generalized core occupation and total number of electrons"), &
110 description=
"Occupation of the core state in XAS calculation by TP_FLEX.", &
111 usage=
"XAS_CORE 0.5", &
112 default_r_val=0.5_dp)
117 description=
"Total number of electrons for spin channel alpha, in XAS calculation by TP_FLEX. "// &
118 "If it is a negative value, the number of electrons is set to GS number of electrons "// &
119 "minus the amount subtracted from the core state", &
120 usage=
"XAS_TOT_EL 10", &
121 default_r_val=-1._dp)
126 description=
"Occupation of the core state in XES calculation by TP_VAL. "// &
127 "The HOMO is emptied by the same amount.", &
128 usage=
"XES_CORE 0.5", &
133 CALL keyword_create(keyword, __location__, name=
"XES_EMPTY_HOMO", &
134 description=
"Set the occupation of the HOMO in XES calculation by TP_VAL. "// &
135 "The HOMO can be emptied or not, if the core is still full.", &
136 usage=
"XES_EMPTY_HOMO", &
137 default_l_val=.false., &
138 lone_keyword_l_val=.true.)
143 variants=(/
"DIP_FORM"/), &
144 description=
"Type of integral to get the oscillator strengths "// &
145 "in the diipole approximation", &
146 usage=
"DIPOLE_FORM string", &
148 enum_c_vals=
s2a(
"LENGTH",
"VELOCITY"), &
149 enum_desc=
s2a(
"Length form ⟨ i | e r | j ⟩", &
150 "Velocity form ⟨ i | d/dr | j ⟩"), &
164 variants=(/
"TYPE"/), &
165 description=
"Type of the orbitals that are excited for the xas spectra calculation", &
166 usage=
"STATE_TYPE 1S", &
168 enum_c_vals=
s2a(
"1S",
"2S",
"2P",
"3S",
"3P",
"3D",
"4S",
"4P",
"4D",
"4F"), &
169 enum_desc=
s2a(
"1s orbitals",
"2s orbitals",
"2p orbitals",
"3s orbitals",
"3p orbitals", &
170 "3d orbitals",
"4s orbitals",
"4p orbitals",
"4d orbitals",
"4f orbitals"), &
177 description=
"# of states where to look for the one to be excited", &
178 usage=
"STATE_SEARCH 1", &
184 description=
"# Spin channel of the excited orbital", &
185 usage=
"SPIN_CHANNEL 1", &
191 variants=(/
"AT_LIST"/), &
192 description=
"Indexes of the atoms to be excited. "// &
193 "This keyword can be repeated several times "// &
194 "(useful if you have to specify many indexes).", &
195 usage=
"ATOMS_LIST {integer} {integer} .. {integer} ", &
196 n_var=-1, type_of_var=
integer_t, repeats=.true.)
200 CALL keyword_create(keyword, __location__, name=
"OVERLAP_THRESHOLD", &
201 description=
"Threshold for including more than one initial core excited state "// &
202 "per atom. The threshold is taken relative to the maximum overlap.", &
203 usage=
"OVERLAP_THRESHOLD 8.e-1", default_r_val=1.0_dp)
208 variants=(/
"ORBITAL_LIST"/), &
209 description=
"Indices of the localized orbitals to be excited. "// &
210 "This keyword can be repeated several times "// &
211 "(useful if you have to specify many indexes).", &
212 usage=
"ORBITAL_LIST {integer} {integer} .. {integer} ", &
213 n_var=-1, type_of_var=
integer_t, repeats=.true.)
218 description=
"Number of additional MOS added spin up only", &
219 usage=
"ADDED_MOS {integer}", default_i_val=-1)
223 CALL keyword_create(keyword, __location__, name=
"MAX_ITER_ADDED", &
224 description=
"maximum number of iteration in calculation of added orbitals", &
225 usage=
"MAX_ITER_ADDED 100", default_i_val=2999)
230 description=
"target accuracy incalculation of the added orbitals", &
231 usage=
"EPS_ADDED 1.e-6", default_r_val=1.0e-5_dp)
236 description=
"Number of gto's for the expansion of the STO "// &
237 "of the type given by STATE_TYPE", &
238 usage=
"NGAUSS {integer}", default_i_val=3)
243 description=
"Restart the excited state if the restart file exists", &
245 default_l_val=.false., lone_keyword_l_val=.true.)
249 CALL keyword_create(keyword, __location__, name=
"WFN_RESTART_FILE_NAME", &
250 variants=(/
"RESTART_FILE_NAME"/), &
251 description=
"Root of the file names where to read the MOS from "// &
252 "which to restart the calculation of the core level excited states", &
253 usage=
"WFN_RESTART_FILE_NAME <FILENAME>", &
263 description=
"printing of information during the core-level spectroscopy simulation", &
270 description=
"Controls the printing of basic iteration information during the XAS SCF.", &
273 description=
"If the printkey is activated switches the printing of timings"// &
274 " to cumulative (over the SCF).", &
275 default_l_val=.false., lone_keyword_l_val=.true.)
282 description=
"Controls the printing of basic iteration information in CLS", &
288 description=
"Controls the dumping of the CLS output files containing the emission spectra", &
294 print_key, __location__,
"XAS_SPECTRUM", &
295 description=
"Controls the dumping of the CLS output files containing the absorption spectra", &
305 description=
"Controls the dumping of MO restart file during the SCF. "// &
306 "of a Core-Level-Spectroscopy calculation. For each new excited atom, "// &
307 "one different restart file is dumped. These restart files should be "// &
308 "employed only to restart the same type of CLS calculation, "// &
309 "i.e. with the same core potential.", &
316 description=
"Controls the dumping of a standard MO restart file "// &
317 "where coefficients and occupation numbers are those of the TP scheme, "// &
318 "i.e. with emptied core state.", &
325 description=
"Controls the printing of the relaxed orbitals ", &
328 description=
"The stride (X,Y,Z) used to write the cube file "// &
329 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
330 " 1 number valid for all components.", &
331 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=(/2, 2, 2/), type_of_var=
integer_t)
335 CALL keyword_create(keyword, __location__, name=
"CUBES_LU_BOUNDS", &
336 variants=(/
"CUBES_LU"/), &
337 description=
"The lower and upper index of the states to be printed as cube", &
338 usage=
"CUBES_LU_BOUNDS integer integer", &
339 n_var=2, default_i_vals=(/0, -2/), type_of_var=
integer_t)
344 description=
"Indexes of the states to be printed as cube files "// &
345 "This keyword can be repeated several times "// &
346 "(useful if you have to specify many indexes).", &
347 usage=
"CUBES_LIST 1 2", &
348 n_var=-1, type_of_var=
integer_t, repeats=.true.)
352 description=
"append the cube files when they already exist", &
353 default_l_val=.false., lone_keyword_l_val=.true.)
376 TYPE(
section_type),
POINTER :: print_key, subsection, subsubsection, &
379 NULLIFY (keyword, print_key, subsection, subsubsection, subsubsubsection)
381 cpassert(.NOT.
ASSOCIATED(section))
383 description=
"XAS simulations using linear-response TDDFT. Excitation from "// &
384 "specified core orbitals are considered one at a time. In case of high "// &
385 "symmetry structures, donor core orbitals should be localized.", &
386 n_keywords=19, n_subsections=4, repeats=.false.)
388 NULLIFY (keyword, subsection, print_key)
390 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
391 description=
"controls the activation of XAS simulations with linear "// &
393 usage=
"&TDP_XAS {logical}", &
394 default_l_val=.false., &
395 lone_keyword_l_val=.true.)
400 description=
"This keyword defines whether the full calculation should "// &
401 "be done or not. If set to .TRUE., only the determination "// &
402 "of donor MOs is conducted. This run option allows for "// &
403 "cheap verification of the input parameters", &
404 usage=
"CHECK_ONLY {logical}", &
405 default_l_val=.false., &
406 lone_keyword_l_val=.true., &
411 CALL keyword_create(keyword, __location__, name=
"RESTART_FROM_FILE", &
412 variants=
s2a(
"RESTART_FILENAME",
"RST_FILENAME",
"RESTART_FILE",
"RST_FILE"), &
413 description=
"By providing a RESTART file containing the linear-response "// &
414 "orbitals and excitations energies from a previous calculation, "// &
415 "all computations are skipped except for the corresponding "// &
416 "PDOS and/or CUBE file printing as defined in the PRINT "// &
417 "subsection. Basis sets and geometry need to be consistent.", &
418 usage=
"RESTART_FROM_FILE <FILENAME>", &
419 type_of_var=
char_t, n_var=-1)
424 variants=(/
"EXCITATION"/), &
425 description=
"Specify the type of excitation to consider. In case of a "// &
426 "resctricted closed-shell ground state calculation, "// &
427 "RCS_SINGLET or/and RCS_TRIPLET can be chosen. In case of a "// &
428 "open-shell ground state calculation (either UKS or ROKS), "// &
429 "standard spin conserving excitation (OS_SPIN_CONS) or/and "// &
430 "spin-flip excitation (OS_SPIN_FLIP) can be chosen.", &
431 usage=
"EXCITATIONS {string}", &
434 enum_c_vals=
s2a(
"RCS_SINGLET",
"RCS_TRIPLET",
"OS_SPIN_CONS",
"OS_SPIN_FLIP"), &
435 enum_desc=
s2a(
"Singlet excitation on top of restricted closed-shell ground state", &
436 "Triplet excitation on top of restricted closed-shell ground state", &
437 "Spin-conserving excitations on top of open-shell ground state", &
438 "Spin-flip excitation on top of open-shell ground state"), &
444 variants=
s2a(
"EPS_PGF",
"EPS_PGF_XAS_TDP"), &
445 description=
"The threshold used to determine the spacial extent of all "// &
446 "primitive Gaussian functions used for the construction "// &
447 "of neighbor lists in the XAS_TDP method. "// &
448 "By default, takes the value of QS%EPS_PGF_ORB. Useful if "// &
449 "the former value is tiny due to possible ground state HFX "// &
451 usage=
"EPS_PGF_XAS {real}", &
457 variants=
s2a(
"EPS_FILTER_MATRIX"), &
458 description=
"The threshold used for sparse matrix operations", &
459 usage=
"EPS_FILTER {real}", &
461 default_r_val=1.0e-10_dp)
466 variants=(/
"DIP_FORM"/), &
467 description=
"Type of integral to get the oscillator strengths "// &
468 "in the dipole approximation", &
469 usage=
"DIPOLE_FORM {string}", &
471 enum_c_vals=
s2a(
"LENGTH",
"VELOCITY"), &
472 enum_desc=
s2a(
"Length form ⟨ 0 | e r | n ⟩", &
473 "Velocity form ⟨ 0 | d/dr | n ⟩"), &
479 variants=
s2a(
"DO_QUADRUPOLE",
"DO_QUAD",
"QUAD"), &
480 description=
"Compute the electric quadrupole contribution to the "// &
481 "oscillator strenghts (in the length representation with "// &
482 "the origin set on the relevant excited atom)", &
483 usage=
"QUADRUPOLE {logical}", &
484 default_l_val=.false., &
485 lone_keyword_l_val=.true.)
490 variants=
s2a(
"DIPOLE_XYZ"), &
491 description=
"Whether the detailed contributions of the dipole oscillator "// &
492 "strengths along the X,Y,Z directions should be printed.", &
493 usage=
"XYZ_DIPOLE {logical}", &
494 default_l_val=.false., &
495 lone_keyword_l_val=.true.)
500 variants=
s2a(
"DIPOLE_SPIN"), &
501 description=
"Whether the detailed contributions of the dipole oscillator "// &
502 "strengths for alpha and beta spins should be printed.", &
503 usage=
"SPIN_DIPOLE {logical}", &
504 default_l_val=.false., &
505 lone_keyword_l_val=.true.)
511 description=
"Specifications for the GW2X calculation of core "// &
512 "ionization potentials. Note that donor states need to be actively "// &
513 "localized using the LOCALIZE keyword in DONOR_STATES. N_SEARCH "// &
514 "should be kept to the minimum, such that only core states are localized.", &
520 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
521 description=
"Enables the GW2X correction of the core ionization potentials", &
522 usage=
"&GW2X {logical}", &
523 default_l_val=.false., &
524 lone_keyword_l_val=.true.)
529 description=
"If set to .TRUE., only run GW2X calculations for XPS "// &
530 "spectroscopy and ignore all XAS calculations. It is still "// &
531 "required to define the DONOR_STATES and KERNEL%EXACT_EXCHANGE "// &
533 default_l_val=.false., &
534 lone_keyword_l_val=.true.)
539 description=
"MOs batch size for batched tensor contraction. Larger "// &
540 "size is faster, but uses more memory. Default should be safe "// &
547 description=
"Convergence threshold for GW2X iterations (in eV)", &
548 default_r_val=1.e-2_dp)
553 description=
"Opposite-spin scling factor. SCS => 6/5, SOS => 1.3", &
554 default_r_val=1.0_dp)
559 description=
"Same-spin scling factor. SCS => 1/3, SOS => 0.0", &
560 default_r_val=1.0_dp)
564 CALL keyword_create(keyword, __location__, name=
"MAX_GW2X_ITER", &
565 description=
"Maximum number of iterations for GW2X", &
570 CALL keyword_create(keyword, __location__, name=
"PSEUDO_CANONICAL", &
571 variants=(/
"PSEUDO_CANO"/), &
572 description=
"Whether the pseudo-canonical version of GW2X should be used "// &
573 "(versus only using the diagonal of the generalized Fock matrix)", &
574 default_l_val=.true.)
583 CALL section_create(subsection, __location__, name=
"DONOR_STATES", &
584 description=
"Specifications for the donor states from which core "// &
585 "electrons are excited", &
590 CALL keyword_create(keyword, __location__, name=
"DEFINE_EXCITED", &
591 description=
"Whether the atoms to be excited should be defined by "// &
592 "a list of atom indices or by a list of atom kinds.", &
593 usage=
"DEFINE_EXCITED {string}", &
595 enum_c_vals=
s2a(
"BY_INDEX",
"BY_KIND"), &
597 enum_desc=
s2a(
"Excited atoms are defined by a list of indices", &
598 "Excited atoms are defined by a list of atomic kinds"))
603 variants=(/
"AT_LIST"/), &
604 description=
"Indices of the atoms to be excited. "// &
605 "Keyword only taken into account if DEFINE_EXCITED = BY_INDEX", &
606 usage=
"ATOM_LIST {integer} {integer} .. {integer} ", &
607 n_var=-1, type_of_var=
integer_t, repeats=.false.)
612 description=
"Kind of atoms to be excited. "// &
613 "All atoms of the specified kinds are considered. "// &
614 "Keyword only taken into account if DEFINE_EXCITED = BY_KIND", &
615 usage=
"KIND_LIST {string} {string} .. {string} ", &
616 n_var=-1, type_of_var=
char_t, repeats=.false.)
621 variants=(/
"TYPES"/), &
622 description=
"Types of orbitals that are excited, for each atom/kind, "// &
623 "in order to do LR-TDDFT driven xas spectra calculation. "// &
624 "This keyword MUST have the same number of entries as the relevant "// &
625 "KIND_LIST or ATOM_LIST. The order of the specified state types must "// &
626 "correspond to the order of the relevant kinds/indices. "// &
627 "This keyword can be repeated, useful when multiple orbital types "// &
628 "should be excited for specific kinds/atoms.", &
630 usage=
"STATE_TYPES {string} {string} .. {string}", &
631 enum_c_vals=
s2a(
"1S",
"2S",
"2P",
"NE"), &
632 enum_desc=
s2a(
"1s orbital",
"2s orbital",
"2p orbitals",
"not excited"), &
638 description=
"Number of MOs (per spin) to search to find specified donor core "// &
639 "orbitals, starting from the lowest in energy and upward. By default, "// &
640 "all HOMOs are searched. If the LOCALIZE keyword is used, "// &
641 "then all searched states are first localized.", &
642 usage=
"N_SEARCH {integer}", &
648 variants=
s2a(
"LOC",
"DO_LOC"), &
649 description=
"Whether the N_SEARCH potential donor states should be "// &
650 "actively localized. Necessary in case of excited atoms "// &
651 "equivalent under symmetry or GW2X correction.", &
652 usage=
"LOCALIZE {logical}", &
653 default_l_val=.false., &
654 lone_keyword_l_val=.true.)
664 description=
"Specifications for the iterative OT solver. Note: only "// &
665 "available within the Tamm-Dancoff approximation. Recommanded if excitations "// &
666 "from multiple donor states take place.", &
671 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
672 description=
"Enables the usage of the OT iterator solver", &
673 usage=
"&OT_SOLVER {logical}", &
674 default_l_val=.false., &
675 lone_keyword_l_val=.true.)
680 description=
"Maximum number of iterations allowed for the OT solver", &
681 usage=
"MAX_ITER {integer}", &
687 description=
"Convergence threshold for the OT solver", &
688 usage=
"EPS_ITER {double}", &
689 default_r_val=1.0e-4_dp)
694 description=
"Minimizer to be used with the OT solver", &
695 usage=
"MINIMIZER DIIS", &
697 enum_c_vals=
s2a(
"CG",
"DIIS"), &
698 enum_desc=
s2a(
"Conjugated gradient: safer", &
699 "Direct inversion of the iterative subspace: faster"), &
708 CALL keyword_create(keyword, __location__, name=
"SPIN_ORBIT_COUPLING", &
709 variants=(/
"SOC"/), &
710 description=
"Whether spin-orbit coupling should be added. "// &
711 "Note: only applies for spin-restricted calculations with "// &
712 "singlet and triplet excitations OR spin-unrestricted "// &
713 "calculations with both spin-conserving and spin-flip.", &
714 usage=
"SOC {logical}", &
715 default_l_val=.false., &
716 lone_keyword_l_val=.true.)
721 variants=(/
"TDA"/), &
722 description=
"Whether the Tamm-Dancoff approximation should be used.", &
723 usage=
"TAMM_DANCOFF {logical}", &
724 default_l_val=.true., &
725 lone_keyword_l_val=.true.)
730 variants=(/
"ATOMIC_GRID"/), &
731 description=
"Specification of the atomic angular and radial grids for "// &
732 "a given atomic kind. This keyword can/should be repeated "// &
733 "for each excited kind. The default grid dimensions are "// &
734 "those set for the GAPW ground state calculation. These "// &
735 "grids are used for the xc-kernel integration. "// &
736 "Usage: GRID < KIND > < LEBEDEV_GRID > < RADIAL_GRID >", &
737 usage=
"GRID {string} {integer} {integer}", &
738 n_var=3, type_of_var=
char_t, repeats=.true.)
743 variants=(/
"N_ROOTS"/), &
744 description=
"The number of excited states to compute per donor "// &
745 "molecular orbital. (e.g. if 2p excitations, "// &
746 "3*N_EXCITED excited states are considered). "// &
747 "If N_EXCITED is set to -1, all excitations are considered", &
748 usage=
"N_EXCITED {integer}", &
754 variants=
s2a(
"E_RANGE"), &
755 description=
"The energy range in eV for which excitations are considered. "// &
756 "Only excitated states within the range of: first excitation "// &
757 "energy + ENERGY_RANGE are kept. If ENERGY_RANGE "// &
758 "and N_EXCITED are specified, the former has priority. "// &
759 "Negative values are ignored and N_EXCITED takes over.", &
760 usage=
"ENERGY_RANGE {real}", &
761 default_r_val=-1.0_dp)
767 description=
"Defines how the kernel is built in terms of functionals.", &
773 variants=(/
"RI_RADIUS"/), &
774 description=
"The region defined by a sphere of the given radius around "// &
775 "the excited atom defining which RI_XAS basis elements are "// &
776 "considered for the RI projection of the density. Each basis "// &
777 "element which center is in this region is taken. The density "// &
778 "for a given excited atom is expressed as : "// &
779 "sum_ijkl P_ij (ijk) S_kl^-1 xi_l, where P_ij is the density "// &
780 "matrix, i,j span the orbital basis and k,l the RI_XAS basis "// &
781 "in the region. The larger the radius, the more basis "// &
782 "functions to expand the density. However, it is assumed "// &
783 "that it is a small number and the code does not scale well "// &
784 "as the number of RI basis elements gets too large. "// &
785 "Expressed in Angstrom. If the radius is set to 0.0, only "// &
786 "the RI basis elements centered on the excited atom are used.", &
787 usage=
"RI_REGION {real}", &
788 default_r_val=0.0_dp)
798 CALL section_create(subsubsection, __location__, name=
"EXACT_EXCHANGE", &
799 description=
"Whether exact-exchange should be added to the kernel and "// &
800 "if so, with which fraction and operator.", &
805 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
806 description=
"Enables the addition of exact exchange to the kernel.", &
807 usage=
"&EXACT_EXCHANGE {logical}", &
808 default_l_val=.false., &
809 lone_keyword_l_val=.true.)
813 CALL keyword_create(keyword, __location__, name=
"POTENTIAL_TYPE", &
814 variants=
s2a(
"OP",
"OPERATOR",
"POTENTIAL"), &
815 description=
"The type of operator used for exact exchange. The standard "// &
816 "Coulomb operator cannot be used in periodic systems.", &
817 usage=
"OPERATOR {string}", &
820 enum_c_vals=
s2a(
"COULOMB",
"TRUNCATED",
"SHORTRANGE"), &
821 enum_desc=
s2a(
"Standard Coulomb operator: 1/r", &
822 "Truncated Coulomb operator: 1/r if r < R_c, 0 otherwise ", &
823 "Short range: erfc(omega*r)/r"), &
829 CALL keyword_create(keyword, __location__, name=
"CUTOFF_RADIUS", &
830 variants=
s2a(
"R_C",
"RC",
"RANGE"), &
831 description=
"The cutoff radius (in Angstrom) for the truncated Coulomb operator.", &
832 usage=
"CUTOFF_RADIUS {double}", &
833 default_r_val=0.0_dp, &
839 description=
"Location of the file t_c_g.dat that contains the data for the "// &
840 "evaluation of the truncated gamma function ", &
841 usage=
"T_C_G_DATA {string}", &
842 default_c_val=
"t_c_g.dat")
847 description=
"The range parameter for the short range operator (in 1/a0).", &
848 usage=
"OMEGA {double}", &
849 default_r_val=0.0_dp, &
855 description=
"The threshold to determine the effective range of the short range "// &
856 "operator: erfc(omega*eff_range)/eff_range = EPS_RANGE", &
857 usage=
"EPS_RANGE = {double}", &
858 default_r_val=1.0e-6_dp, &
863 CALL keyword_create(keyword, __location__, name=
"EPS_SCREENING", &
864 variants=
s2a(
"EPS_SCREEN"), &
865 description=
"A threshold to determine which primitive 3-center integrals "// &
866 "are kept for contraction, as the latter operation can be "// &
867 "expensive (especially for large basis sets ). "// &
868 "If |(ab|c)| < EPS_SCREENNING, it is discarded.", &
869 default_r_val=1.0e-8_dp, &
875 variants=
s2a(
"FRACTION"), &
876 description=
"Scaling of the exact exchange contribution.", &
877 default_r_val=1.0_dp)
882 CALL section_create(subsubsubsection, __location__, name=
"RI_METRIC", &
883 description=
"This subsection allows for the definition of an exchange "// &
884 "RI metric that is different from the main exchange potential. "// &
885 "By default (i.e. if this subsection is ignored), the "// &
886 "exchange kernel is computed in the V approximation: "// &
887 "(ab|ij) = (ab|P) V^-1 (Q|ij), where V = (P|Q). With a RI "// &
888 "metric, we have a 2 step RI involving the metric potential "// &
889 "for the 3-center integrals: "// &
890 "(ab|ij) = (ab!P) (P!Q)^-1 (Q|R) (R!S)^-1 (S!ij), where | "// &
891 "stands for the exchange potential and ! for the metric "// &
892 "potential. This allows for drastic screening of the "// &
893 "3-center integrals by selecting shorter range metric.", &
898 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
899 description=
"Enables the use of a RI metric.", &
900 usage=
"&EXACT_EXCHANGE {logical}", &
901 default_l_val=.false., &
902 lone_keyword_l_val=.true.)
906 CALL keyword_create(keyword, __location__, name=
"POTENTIAL_TYPE", &
907 variants=
s2a(
"OP",
"OPERATOR",
"POTENTIAL"), &
908 description=
"The type of operator used for the metric.", &
909 usage=
"OPERATOR {string}", &
912 enum_c_vals=
s2a(
"OVERLAP",
"TRUNCATED",
"SHORTRANGE"), &
913 enum_desc=
s2a(
"Overlap operator (=identity)", &
914 "Truncated Coulomb operator: 1/r if r < R_c, 0 otherwise ", &
915 "Short range: erfc(omega*r)/r"), &
921 CALL keyword_create(keyword, __location__, name=
"CUTOFF_RADIUS", &
922 variants=
s2a(
"R_C",
"RC",
"RANGE"), &
923 description=
"The cutoff radius (in Angstrom) for the truncated Coulomb operator.", &
924 usage=
"CUTOFF_RADIUS {double}", &
925 default_r_val=0.0_dp, &
931 description=
"Location of the file t_c_g.dat that contains the data for the "// &
932 "evaluation of the truncated gamma function ", &
933 usage=
"T_C_G_DATA {string}", &
934 default_c_val=
"t_c_g.dat")
939 description=
"The range parameter for the short range operator (in 1/a0).", &
940 usage=
"OMEGA {double}", &
941 default_r_val=0.0_dp, &
956 CALL section_create(subsection, __location__,
"PRINT",
"Controls the printing of information during "// &
957 "XAS TDP calculations", repeats=.false.)
960 description=
"Controles the dumping of the XAS TDP spectrum in output files", &
966 description=
"Controles the dumping of a MO restart file for a given "// &
967 "excited state index. Only for K-edge RKS calculations. "// &
968 "Can be repeated to get multiple *.wfn files at once.", &
970 CALL keyword_create(keyword, __location__, name=
"EXCITED_STATE_INDEX", variants=(/
"INDEX"/), &
971 description=
"The index of the excited state that should be dumped", &
972 usage=
"INDEX {int}", default_i_val=1, repeats=.true.)
984 description=
"Controls the printing of the linear-response orbitals "// &
985 "as *.cube files.", &
990 description=
"The stride (X,Y,Z) used to write the cube file "// &
991 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
992 " 1 number valid for all components.", &
993 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=(/2, 2, 2/), type_of_var=
integer_t)
997 CALL keyword_create(keyword, __location__, name=
"CUBES_LU_BOUNDS", &
998 variants=(/
"CUBES_LU"/), &
999 description=
"The lower and upper index of the excited states to be printed as cube", &
1000 usage=
"CUBES_LU_BOUNDS integer integer", &
1001 n_var=2, default_i_vals=(/1, 0/), type_of_var=
integer_t)
1006 description=
"Indexes of the excited states to be printed as cube files "// &
1007 "This keyword can be repeated several times "// &
1008 "(useful if you have to specify many indexes).", &
1009 usage=
"CUBES_LIST 1 2", &
1010 n_var=-1, type_of_var=
integer_t, repeats=.true.)
1015 description=
"append the cube files when they already exist", &
1016 default_l_val=.false., lone_keyword_l_val=.true.)
1024 description=
"Controls the dumping of LR-orbitals coefficients "// &
1025 "and corresponding excitation energies such that "// &
1026 "the program can be restarted for PDOS or CUBE "// &
1027 "printing without the heavy computing.", &