87 cpassert(.NOT.
ASSOCIATED(section))
89 description=
"Controls transition-potential and delta-SCF calculations of core-level excitation spectra. "// &
90 "The occupied states from which the excitations are calculated should be specified. "// &
91 "Localization of the orbitals may be useful.", &
92 n_keywords=10, n_subsections=1, repeats=.false., &
95 NULLIFY (keyword, subsection, print_key)
97 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
98 description=
"controls the activation of core-level spectroscopy simulations", &
100 default_l_val=.false., &
101 lone_keyword_l_val=.true.)
106 variants=[
"XAS_METHOD"], &
107 description=
"Method to be used to calculate core-level excitation spectra", &
108 usage=
"METHOD TP_HH", &
110 enum_c_vals=
s2a(
"NONE",
"TP_HH",
"TP_FH",
"TP_VAL",
"TP_XHH",
"TP_XFH",
"DSCF",
"TP_FLEX"), &
112 "No core electron spectroscopy",
"Transition potential half-hole", &
113 "Transition potential full-hole",
"Hole in homo for X-ray emission only ", &
114 "Transition potential excited half-hole", &
115 "Transition potential excited full-hole ", &
116 "DSCF calculations to compute the first (core)excited state", &
117 "Transition potential with generalized core occupation and total number of electrons"), &
124 description=
"Occupation of the core state in XAS calculation by TP_FLEX.", &
125 usage=
"XAS_CORE 0.5", &
126 default_r_val=0.5_dp)
131 description=
"Total number of electrons for spin channel alpha, in XAS calculation by TP_FLEX. "// &
132 "If it is a negative value, the number of electrons is set to GS number of electrons "// &
133 "minus the amount subtracted from the core state", &
134 usage=
"XAS_TOT_EL 10", &
135 default_r_val=-1._dp)
140 description=
"Occupation of the core state in XES calculation by TP_VAL. "// &
141 "The HOMO is emptied by the same amount.", &
142 usage=
"XES_CORE 0.5", &
147 CALL keyword_create(keyword, __location__, name=
"XES_EMPTY_HOMO", &
148 description=
"Set the occupation of the HOMO in XES calculation by TP_VAL. "// &
149 "The HOMO can be emptied or not, if the core is still full.", &
150 usage=
"XES_EMPTY_HOMO", &
151 default_l_val=.false., &
152 lone_keyword_l_val=.true.)
157 variants=[
"DIP_FORM"], &
158 description=
"Type of integral to get the oscillator strengths "// &
159 "in the diipole approximation", &
160 usage=
"DIPOLE_FORM string", &
162 enum_c_vals=
s2a(
"LENGTH",
"VELOCITY"), &
163 enum_desc=
s2a(
"Length form ⟨ i | e r | j ⟩", &
164 "Velocity form ⟨ i | d/dr | j ⟩"), &
179 description=
"Type of the orbitals that are excited for the xas spectra calculation", &
180 usage=
"STATE_TYPE 1S", &
182 enum_c_vals=
s2a(
"1S",
"2S",
"2P",
"3S",
"3P",
"3D",
"4S",
"4P",
"4D",
"4F"), &
183 enum_desc=
s2a(
"1s orbitals",
"2s orbitals",
"2p orbitals",
"3s orbitals",
"3p orbitals", &
184 "3d orbitals",
"4s orbitals",
"4p orbitals",
"4d orbitals",
"4f orbitals"), &
191 description=
"# of states where to look for the one to be excited", &
192 usage=
"STATE_SEARCH 1", &
198 description=
"# Spin channel of the excited orbital", &
199 usage=
"SPIN_CHANNEL 1", &
205 variants=[
"AT_LIST"], &
206 description=
"Indexes of the atoms to be excited. "// &
207 "This keyword can be repeated several times "// &
208 "(useful if you have to specify many indexes).", &
209 usage=
"ATOMS_LIST {integer} {integer} .. {integer} ", &
210 n_var=-1, type_of_var=
integer_t, repeats=.true.)
214 CALL keyword_create(keyword, __location__, name=
"OVERLAP_THRESHOLD", &
215 description=
"Threshold for including more than one initial core excited state "// &
216 "per atom. The threshold is taken relative to the maximum overlap.", &
217 usage=
"OVERLAP_THRESHOLD 8.e-1", default_r_val=1.0_dp)
222 variants=[
"ORBITAL_LIST"], &
223 description=
"Indices of the localized orbitals to be excited. "// &
224 "This keyword can be repeated several times "// &
225 "(useful if you have to specify many indexes).", &
226 usage=
"ORBITAL_LIST {integer} {integer} .. {integer} ", &
227 n_var=-1, type_of_var=
integer_t, repeats=.true.)
232 description=
"Number of additional MOS added spin up only", &
233 usage=
"ADDED_MOS {integer}", default_i_val=-1)
237 CALL keyword_create(keyword, __location__, name=
"MAX_ITER_ADDED", &
238 description=
"maximum number of iteration in calculation of added orbitals", &
239 usage=
"MAX_ITER_ADDED 100", default_i_val=2999)
244 description=
"target accuracy incalculation of the added orbitals", &
245 usage=
"EPS_ADDED 1.e-6", default_r_val=1.0e-5_dp)
250 description=
"Number of gto's for the expansion of the STO "// &
251 "of the type given by STATE_TYPE", &
252 usage=
"NGAUSS {integer}", default_i_val=3)
257 description=
"Restart the excited state if the restart file exists", &
259 default_l_val=.false., lone_keyword_l_val=.true.)
263 CALL keyword_create(keyword, __location__, name=
"WFN_RESTART_FILE_NAME", &
264 variants=[
"RESTART_FILE_NAME"], &
265 description=
"Root of the file names where to read the MOS from "// &
266 "which to restart the calculation of the core level excited states", &
267 usage=
"WFN_RESTART_FILE_NAME <FILENAME>", &
277 description=
"printing of information during the core-level spectroscopy simulation", &
284 description=
"Controls the printing of basic iteration information during the XAS SCF.", &
287 description=
"If the printkey is activated switches the printing of timings"// &
288 " to cumulative (over the SCF).", &
289 default_l_val=.false., lone_keyword_l_val=.true.)
296 description=
"Controls the printing of basic iteration information in CLS", &
302 description=
"Controls the dumping of the CLS output files containing the emission spectra", &
308 print_key, __location__,
"XAS_SPECTRUM", &
309 description=
"Controls the dumping of the CLS output files containing the absorption spectra", &
314 CALL create_xas_pdos_section(print_key)
319 description=
"Controls the dumping of MO restart file during the SCF. "// &
320 "of a Core-Level-Spectroscopy calculation. For each new excited atom, "// &
321 "one different restart file is dumped. These restart files should be "// &
322 "employed only to restart the same type of CLS calculation, "// &
323 "i.e. with the same core potential.", &
330 description=
"Controls the dumping of a standard MO restart file "// &
331 "where coefficients and occupation numbers are those of the TP scheme, "// &
332 "i.e. with emptied core state.", &
339 description=
"Controls the printing of the relaxed orbitals ", &
342 description=
"The stride (X,Y,Z) used to write the cube file "// &
343 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
344 " 1 number valid for all components.", &
345 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=[2, 2, 2], type_of_var=
integer_t)
349 CALL keyword_create(keyword, __location__, name=
"CUBES_LU_BOUNDS", &
350 variants=[
"CUBES_LU"], &
351 description=
"The lower and upper index of the states to be printed as cube", &
352 usage=
"CUBES_LU_BOUNDS integer integer", &
353 n_var=2, default_i_vals=[0, -2], type_of_var=
integer_t)
358 description=
"Indexes of the states to be printed as cube files "// &
359 "This keyword can be repeated several times "// &
360 "(useful if you have to specify many indexes).", &
361 usage=
"CUBES_LIST 1 2", &
362 n_var=-1, type_of_var=
integer_t, repeats=.true.)
366 description=
"append the cube files when they already exist", &
367 default_l_val=.false., lone_keyword_l_val=.true.)
390 TYPE(
section_type),
POINTER :: print_key, subsection, subsubsection, &
393 NULLIFY (keyword, print_key, subsection, subsubsection, subsubsubsection)
395 cpassert(.NOT.
ASSOCIATED(section))
397 description=
"XAS simulations using linear-response TDDFT. Excitation from "// &
398 "specified core orbitals is considered one at a time. In case of high "// &
399 "symmetry structures, donor core orbitals should be localized.", &
400 n_keywords=19, n_subsections=4, repeats=.false.)
402 NULLIFY (keyword, subsection, print_key)
404 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
405 description=
"controls the activation of XAS simulations with linear "// &
407 usage=
"&TDP_XAS {logical}", &
408 default_l_val=.false., &
409 lone_keyword_l_val=.true.)
414 description=
"This keyword defines whether the full calculation should "// &
415 "be done or not. If set to .TRUE., only the determination "// &
416 "of donor MOs is conducted. This run option allows for "// &
417 "cheap verification of the input parameters", &
418 usage=
"CHECK_ONLY {logical}", &
419 default_l_val=.false., &
420 lone_keyword_l_val=.true., &
425 CALL keyword_create(keyword, __location__, name=
"RESTART_FROM_FILE", &
426 variants=
s2a(
"RESTART_FILENAME",
"RST_FILENAME",
"RESTART_FILE",
"RST_FILE"), &
427 description=
"By providing a RESTART file containing the linear-response "// &
428 "orbitals and excitations energies from a previous calculation, "// &
429 "all computations are skipped except for the corresponding "// &
430 "PDOS and/or CUBE file printing as defined in the PRINT "// &
431 "subsection. Basis sets and geometry need to be consistent.", &
432 usage=
"RESTART_FROM_FILE <FILENAME>", &
433 type_of_var=
char_t, n_var=-1)
438 variants=[
"EXCITATION"], &
439 description=
"Specify the type of excitation to consider. In case of a "// &
440 "restricted closed-shell ground state calculation, "// &
441 "RCS_SINGLET or/and RCS_TRIPLET can be chosen. In case of a "// &
442 "open-shell ground state calculation (either UKS or ROKS), "// &
443 "standard spin conserving excitation (OS_SPIN_CONS) or/and "// &
444 "spin-flip excitation (OS_SPIN_FLIP) can be chosen.", &
445 usage=
"EXCITATIONS {string}", &
448 enum_c_vals=
s2a(
"RCS_SINGLET",
"RCS_TRIPLET",
"OS_SPIN_CONS",
"OS_SPIN_FLIP"), &
449 enum_desc=
s2a(
"Singlet excitation on top of restricted closed-shell ground state", &
450 "Triplet excitation on top of restricted closed-shell ground state", &
451 "Spin-conserving excitations on top of open-shell ground state", &
452 "Spin-flip excitation on top of open-shell ground state"), &
458 variants=
s2a(
"EPS_PGF",
"EPS_PGF_XAS_TDP"), &
459 description=
"The threshold used to determine the spatial extent of all "// &
460 "primitive Gaussian functions used for the construction "// &
461 "of neighbor lists in the XAS_TDP method. "// &
462 "By default, takes the value of QS%EPS_PGF_ORB. Useful if "// &
463 "the former value is tiny due to possible ground state HFX "// &
465 usage=
"EPS_PGF_XAS {real}", &
471 variants=
s2a(
"EPS_FILTER_MATRIX"), &
472 description=
"The threshold used for sparse matrix operations", &
473 usage=
"EPS_FILTER {real}", &
475 default_r_val=1.0e-10_dp)
480 variants=[
"DIP_FORM"], &
481 description=
"Type of integral to get the oscillator strengths "// &
482 "in the dipole approximation", &
483 usage=
"DIPOLE_FORM {string}", &
485 enum_c_vals=
s2a(
"LENGTH",
"VELOCITY"), &
486 enum_desc=
s2a(
"Length form ⟨ 0 | e r | n ⟩", &
487 "Velocity form ⟨ 0 | d/dr | n ⟩"), &
493 variants=
s2a(
"DO_QUADRUPOLE",
"DO_QUAD",
"QUAD"), &
494 description=
"Compute the electric quadrupole contribution to the "// &
495 "oscillator strenghts (in the length representation with "// &
496 "the origin set on the relevant excited atom)", &
497 usage=
"QUADRUPOLE {logical}", &
498 default_l_val=.false., &
499 lone_keyword_l_val=.true.)
504 variants=
s2a(
"DIPOLE_XYZ"), &
505 description=
"Whether the detailed contributions of the dipole oscillator "// &
506 "strengths along the X,Y,Z directions should be printed.", &
507 usage=
"XYZ_DIPOLE {logical}", &
508 default_l_val=.false., &
509 lone_keyword_l_val=.true.)
514 variants=
s2a(
"DIPOLE_SPIN"), &
515 description=
"Whether the detailed contributions of the dipole oscillator "// &
516 "strengths for alpha and beta spins should be printed.", &
517 usage=
"SPIN_DIPOLE {logical}", &
518 default_l_val=.false., &
519 lone_keyword_l_val=.true.)
525 description=
"Specifications for the GW2X calculation of core "// &
526 "ionization potentials. Note that donor states need to be actively "// &
527 "localized using the LOCALIZE keyword in DONOR_STATES. N_SEARCH "// &
528 "should be kept to the minimum, such that only core states are localized.", &
534 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
535 description=
"Enables the GW2X correction of the core ionization potentials", &
536 usage=
"&GW2X {logical}", &
537 default_l_val=.false., &
538 lone_keyword_l_val=.true.)
543 description=
"If set to .TRUE., only run GW2X calculations for XPS "// &
544 "spectroscopy and ignore all XAS calculations. It is still "// &
545 "required to define the DONOR_STATES and KERNEL%EXACT_EXCHANGE "// &
547 default_l_val=.false., &
548 lone_keyword_l_val=.true.)
553 description=
"MOs batch size for batched tensor contraction. Larger "// &
554 "size is faster, but uses more memory. Default should be safe "// &
561 description=
"Convergence threshold for GW2X iterations (in eV)", &
562 default_r_val=1.e-2_dp)
567 description=
"Opposite-spin scling factor. SCS => 6/5, SOS => 1.3", &
568 default_r_val=1.0_dp)
573 description=
"Same-spin scling factor. SCS => 1/3, SOS => 0.0", &
574 default_r_val=1.0_dp)
578 CALL keyword_create(keyword, __location__, name=
"MAX_GW2X_ITER", &
579 description=
"Maximum number of iterations for GW2X", &
584 CALL keyword_create(keyword, __location__, name=
"PSEUDO_CANONICAL", &
585 variants=[
"PSEUDO_CANO"], &
586 description=
"Whether the pseudo-canonical version of GW2X should be used "// &
587 "(versus only using the diagonal of the generalized Fock matrix)", &
588 default_l_val=.true.)
597 CALL section_create(subsection, __location__, name=
"DONOR_STATES", &
598 description=
"Specifications for the donor states from which core "// &
599 "electrons are excited", &
604 CALL keyword_create(keyword, __location__, name=
"DEFINE_EXCITED", &
605 description=
"Whether the atoms to be excited should be defined by "// &
606 "a list of atom indices or by a list of atom kinds.", &
607 usage=
"DEFINE_EXCITED {string}", &
609 enum_c_vals=
s2a(
"BY_INDEX",
"BY_KIND"), &
611 enum_desc=
s2a(
"Excited atoms are defined by a list of indices", &
612 "Excited atoms are defined by a list of atomic kinds"))
617 variants=[
"AT_LIST"], &
618 description=
"Indices of the atoms to be excited. "// &
619 "Keyword only taken into account if DEFINE_EXCITED = BY_INDEX", &
620 usage=
"ATOM_LIST {integer} {integer} .. {integer} ", &
621 n_var=-1, type_of_var=
integer_t, repeats=.false.)
626 description=
"Kind of atoms to be excited. "// &
627 "All atoms of the specified kinds are considered. "// &
628 "Keyword only taken into account if DEFINE_EXCITED = BY_KIND", &
629 usage=
"KIND_LIST {string} {string} .. {string} ", &
630 n_var=-1, type_of_var=
char_t, repeats=.false.)
635 variants=[
"TYPES"], &
636 description=
"Types of orbitals that are excited, for each atom/kind, "// &
637 "in order to do LR-TDDFT driven xas spectra calculation. "// &
638 "This keyword MUST have the same number of entries as the relevant "// &
639 "KIND_LIST or ATOM_LIST. The order of the specified state types must "// &
640 "correspond to the order of the relevant kinds/indices. "// &
641 "This keyword can be repeated, useful when multiple orbital types "// &
642 "should be excited for specific kinds/atoms.", &
644 usage=
"STATE_TYPES {string} {string} .. {string}", &
645 enum_c_vals=
s2a(
"1S",
"2S",
"2P",
"NE"), &
646 enum_desc=
s2a(
"1s orbital",
"2s orbital",
"2p orbitals",
"not excited"), &
652 description=
"Number of MOs (per spin) to search to find specified donor core "// &
653 "orbitals, starting from the lowest in energy and upward. By default, "// &
654 "all HOMOs are searched. If the LOCALIZE keyword is used, "// &
655 "then all searched states are first localized.", &
656 usage=
"N_SEARCH {integer}", &
662 variants=
s2a(
"LOC",
"DO_LOC"), &
663 description=
"Whether the N_SEARCH potential donor states should be "// &
664 "actively localized. Necessary in case of excited atoms "// &
665 "equivalent under symmetry or GW2X correction.", &
666 usage=
"LOCALIZE {logical}", &
667 default_l_val=.false., &
668 lone_keyword_l_val=.true.)
678 description=
"Specifications for the iterative OT solver. Note: only "// &
679 "available within the Tamm-Dancoff approximation. Recommanded if excitations "// &
680 "from multiple donor states take place.", &
685 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
686 description=
"Enables the usage of the OT iterator solver", &
687 usage=
"&OT_SOLVER {logical}", &
688 default_l_val=.false., &
689 lone_keyword_l_val=.true.)
694 description=
"Maximum number of iterations allowed for the OT solver", &
695 usage=
"MAX_ITER {integer}", &
701 description=
"Convergence threshold for the OT solver", &
702 usage=
"EPS_ITER {double}", &
703 default_r_val=1.0e-4_dp)
708 description=
"Minimizer to be used with the OT solver", &
709 usage=
"MINIMIZER DIIS", &
711 enum_c_vals=
s2a(
"CG",
"DIIS"), &
712 enum_desc=
s2a(
"Conjugated gradient: safer", &
713 "Direct inversion of the iterative subspace: faster"), &
722 CALL keyword_create(keyword, __location__, name=
"SPIN_ORBIT_COUPLING", &
724 description=
"Whether spin-orbit coupling should be added. "// &
725 "Note: only applies for spin-restricted calculations with "// &
726 "singlet and triplet excitations OR spin-unrestricted "// &
727 "calculations with both spin-conserving and spin-flip.", &
728 usage=
"SOC {logical}", &
729 default_l_val=.false., &
730 lone_keyword_l_val=.true.)
736 description=
"Whether the Tamm-Dancoff approximation should be used.", &
737 usage=
"TAMM_DANCOFF {logical}", &
738 default_l_val=.true., &
739 lone_keyword_l_val=.true.)
744 variants=[
"ATOMIC_GRID"], &
745 description=
"Specification of the atomic angular and radial grids for "// &
746 "a given atomic kind. This keyword can/should be repeated "// &
747 "for each excited kind. The default grid dimensions are "// &
748 "those set for the GAPW ground state calculation. These "// &
749 "grids are used for the xc-kernel integration. "// &
750 "Usage: GRID < KIND > < LEBEDEV_GRID > < RADIAL_GRID >", &
751 usage=
"GRID {string} {integer} {integer}", &
752 n_var=3, type_of_var=
char_t, repeats=.true.)
757 variants=[
"N_ROOTS"], &
758 description=
"The number of excited states to compute per donor "// &
759 "molecular orbital. (e.g. if 2p excitations, "// &
760 "3*N_EXCITED excited states are considered). "// &
761 "If N_EXCITED is set to -1, all excitations are considered", &
762 usage=
"N_EXCITED {integer}", &
768 variants=
s2a(
"E_RANGE"), &
769 description=
"The energy range in eV for which excitations are considered. "// &
770 "Only excitated states within the range of: first excitation "// &
771 "energy + ENERGY_RANGE are kept. If ENERGY_RANGE "// &
772 "and N_EXCITED are specified, the former has priority. "// &
773 "Negative values are ignored and N_EXCITED takes over.", &
774 usage=
"ENERGY_RANGE {real}", &
775 default_r_val=-1.0_dp)
781 description=
"Defines how the kernel is built in terms of functionals.", &
787 variants=[
"RI_RADIUS"], &
788 description=
"The region defined by a sphere of the given radius around "// &
789 "the excited atom defining which RI_XAS basis elements are "// &
790 "considered for the RI projection of the density. Each basis "// &
791 "element which center is in this region is taken. The density "// &
792 "for a given excited atom is expressed as : "// &
793 "sum_ijkl P_ij (ijk) S_kl^-1 xi_l, where P_ij is the density "// &
794 "matrix, i,j span the orbital basis and k,l the RI_XAS basis "// &
795 "in the region. The larger the radius, the more basis "// &
796 "functions to expand the density. However, it is assumed "// &
797 "that it is a small number and the code does not scale well "// &
798 "as the number of RI basis elements gets too large. "// &
799 "Expressed in Angstrom. If the radius is set to 0.0, only "// &
800 "the RI basis elements centered on the excited atom are used.", &
801 usage=
"RI_REGION {real}", &
802 default_r_val=0.0_dp)
812 CALL section_create(subsubsection, __location__, name=
"EXACT_EXCHANGE", &
813 description=
"Whether exact-exchange should be added to the kernel and "// &
814 "if so, with which fraction and operator.", &
819 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
820 description=
"Enables the addition of exact exchange to the kernel.", &
821 usage=
"&EXACT_EXCHANGE {logical}", &
822 default_l_val=.false., &
823 lone_keyword_l_val=.true.)
827 CALL keyword_create(keyword, __location__, name=
"POTENTIAL_TYPE", &
828 variants=
s2a(
"OP",
"OPERATOR",
"POTENTIAL"), &
829 description=
"The type of operator used for exact exchange. The standard "// &
830 "Coulomb operator cannot be used in periodic systems.", &
831 usage=
"OPERATOR {string}", &
834 enum_c_vals=
s2a(
"COULOMB",
"TRUNCATED",
"SHORTRANGE"), &
835 enum_desc=
s2a(
"Standard Coulomb operator: 1/r", &
836 "Truncated Coulomb operator: 1/r if r < R_c, 0 otherwise ", &
837 "Short range: erfc(omega*r)/r"), &
843 CALL keyword_create(keyword, __location__, name=
"CUTOFF_RADIUS", &
844 variants=
s2a(
"R_C",
"RC",
"RANGE"), &
845 description=
"The cutoff radius (in Angstrom) for the truncated Coulomb operator.", &
846 usage=
"CUTOFF_RADIUS {double}", &
847 default_r_val=0.0_dp, &
853 description=
"Location of the file t_c_g.dat that contains the data for the "// &
854 "evaluation of the truncated gamma function ", &
855 usage=
"T_C_G_DATA {string}", &
856 default_c_val=
"t_c_g.dat")
861 description=
"The range parameter for the short range operator (in 1/a0).", &
862 usage=
"OMEGA {double}", &
863 default_r_val=0.0_dp, &
869 description=
"The threshold to determine the effective range of the short range "// &
870 "operator: erfc(omega*eff_range)/eff_range = EPS_RANGE", &
871 usage=
"EPS_RANGE = {double}", &
872 default_r_val=1.0e-6_dp, &
877 CALL keyword_create(keyword, __location__, name=
"EPS_SCREENING", &
878 variants=
s2a(
"EPS_SCREEN"), &
879 description=
"A threshold to determine which primitive 3-center integrals "// &
880 "are kept for contraction, as the latter operation can be "// &
881 "expensive (especially for large basis sets ). "// &
882 "If |(ab|c)| < EPS_SCREENING, it is discarded.", &
883 default_r_val=1.0e-8_dp, &
889 variants=
s2a(
"FRACTION"), &
890 description=
"Scaling of the exact exchange contribution.", &
891 default_r_val=1.0_dp)
896 CALL section_create(subsubsubsection, __location__, name=
"RI_METRIC", &
897 description=
"This subsection allows for the definition of an exchange "// &
898 "RI metric that is different from the main exchange potential. "// &
899 "By default (i.e. if this subsection is ignored), the "// &
900 "exchange kernel is computed in the V approximation: "// &
901 "(ab|ij) = (ab|P) V^-1 (Q|ij), where V = (P|Q). With a RI "// &
902 "metric, we have a 2 step RI involving the metric potential "// &
903 "for the 3-center integrals: "// &
904 "(ab|ij) = (ab!P) (P!Q)^-1 (Q|R) (R!S)^-1 (S!ij), where | "// &
905 "stands for the exchange potential and ! for the metric "// &
906 "potential. This allows for drastic screening of the "// &
907 "3-center integrals by selecting shorter range metric.", &
912 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
913 description=
"Enables the use of a RI metric.", &
914 usage=
"&EXACT_EXCHANGE {logical}", &
915 default_l_val=.false., &
916 lone_keyword_l_val=.true.)
920 CALL keyword_create(keyword, __location__, name=
"POTENTIAL_TYPE", &
921 variants=
s2a(
"OP",
"OPERATOR",
"POTENTIAL"), &
922 description=
"The type of operator used for the metric.", &
923 usage=
"OPERATOR {string}", &
926 enum_c_vals=
s2a(
"OVERLAP",
"TRUNCATED",
"SHORTRANGE"), &
927 enum_desc=
s2a(
"Overlap operator (=identity)", &
928 "Truncated Coulomb operator: 1/r if r < R_c, 0 otherwise ", &
929 "Short range: erfc(omega*r)/r"), &
935 CALL keyword_create(keyword, __location__, name=
"CUTOFF_RADIUS", &
936 variants=
s2a(
"R_C",
"RC",
"RANGE"), &
937 description=
"The cutoff radius (in Angstrom) for the truncated Coulomb operator.", &
938 usage=
"CUTOFF_RADIUS {double}", &
939 default_r_val=0.0_dp, &
945 description=
"Location of the file t_c_g.dat that contains the data for the "// &
946 "evaluation of the truncated gamma function ", &
947 usage=
"T_C_G_DATA {string}", &
948 default_c_val=
"t_c_g.dat")
953 description=
"The range parameter for the short range operator (in 1/a0).", &
954 usage=
"OMEGA {double}", &
955 default_r_val=0.0_dp, &
970 CALL section_create(subsection, __location__,
"PRINT",
"Controls the printing of information during "// &
971 "XAS TDP calculations", repeats=.false.)
974 description=
"Controls the dumping of the XAS TDP spectrum in output files", &
980 description=
"Controles the dumping of a MO restart file for a given "// &
981 "excited state index. Only for K-edge RKS calculations. "// &
982 "Can be repeated to get multiple *.wfn files at once.", &
984 CALL keyword_create(keyword, __location__, name=
"EXCITED_STATE_INDEX", variants=[
"INDEX"], &
985 description=
"The index of the excited state that should be dumped", &
986 usage=
"INDEX {int}", default_i_val=1, repeats=.true.)
993 CALL create_xas_pdos_section(print_key)
998 description=
"Controls the printing of the linear-response orbitals "// &
999 "as *.cube files.", &
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)
1011 CALL keyword_create(keyword, __location__, name=
"CUBES_LU_BOUNDS", &
1012 variants=[
"CUBES_LU"], &
1013 description=
"The lower and upper index of the excited states to be printed as cube", &
1014 usage=
"CUBES_LU_BOUNDS integer integer", &
1015 n_var=2, default_i_vals=[1, 0], type_of_var=
integer_t)
1020 description=
"Indexes of the excited states to be printed as cube files "// &
1021 "This keyword can be repeated several times "// &
1022 "(useful if you have to specify many indexes).", &
1023 usage=
"CUBES_LIST 1 2", &
1024 n_var=-1, type_of_var=
integer_t, repeats=.true.)
1029 description=
"append the cube files when they already exist", &
1030 default_l_val=.false., lone_keyword_l_val=.true.)
1038 description=
"Controls the dumping of LR-orbitals coefficients "// &
1039 "and corresponding excitation energies such that "// &
1040 "the program can be restarted for PDOS or CUBE "// &
1041 "printing without the heavy computing.", &