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.)
501 description=
"Specifications for the GW2X calculation of core "// &
502 "ionization potentials. Note that donor states need to be actively "// &
503 "localized using the LOCALIZE keyword in DONOR_STATES. N_SEARCH "// &
504 "should be kept to the minimum, such that only core states are localized.", &
510 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
511 description=
"Enables the GW2X correction of the core ionization potentials", &
512 usage=
"&GW2X {logical}", &
513 default_l_val=.false., &
514 lone_keyword_l_val=.true.)
519 description=
"If set to .TRUE., only run GW2X calculations for XPS "// &
520 "spectroscopy and ignore all XAS calculations. It is still "// &
521 "required to define the DONOR_STATES and KERNEL%EXACT_EXCHANGE "// &
523 default_l_val=.false., &
524 lone_keyword_l_val=.true.)
529 description=
"MOs batch size for batched tensor contraction. Larger "// &
530 "size is faster, but uses more memory. Default should be safe "// &
537 description=
"Convergence threshold for GW2X iterations (in eV)", &
538 default_r_val=1.e-2_dp)
543 description=
"Opposite-spin scling factor. SCS => 6/5, SOS => 1.3", &
544 default_r_val=1.0_dp)
549 description=
"Same-spin scling factor. SCS => 1/3, SOS => 0.0", &
550 default_r_val=1.0_dp)
554 CALL keyword_create(keyword, __location__, name=
"MAX_GW2X_ITER", &
555 description=
"Maximum number of iterations for GW2X", &
560 CALL keyword_create(keyword, __location__, name=
"PSEUDO_CANONICAL", &
561 variants=(/
"PSEUDO_CANO"/), &
562 description=
"Whether the pseudo-canonical version of GW2X should be used "// &
563 "(versus only using the diagonal of the generalized Fock matrix)", &
564 default_l_val=.true.)
573 CALL section_create(subsection, __location__, name=
"DONOR_STATES", &
574 description=
"Specifications for the donor states from which core "// &
575 "electrons are excited", &
580 CALL keyword_create(keyword, __location__, name=
"DEFINE_EXCITED", &
581 description=
"Whether the atoms to be excited should be defined by "// &
582 "a list of atom indices or by a list of atom kinds.", &
583 usage=
"DEFINE_EXCITED {string}", &
585 enum_c_vals=
s2a(
"BY_INDEX",
"BY_KIND"), &
587 enum_desc=
s2a(
"Excited atoms are defined by a list of indices", &
588 "Excited atoms are defined by a list of atomic kinds"))
593 variants=(/
"AT_LIST"/), &
594 description=
"Indices of the atoms to be excited. "// &
595 "Keyword only taken into account if DEFINE_EXCITED = BY_INDEX", &
596 usage=
"ATOM_LIST {integer} {integer} .. {integer} ", &
597 n_var=-1, type_of_var=
integer_t, repeats=.false.)
602 description=
"Kind of atoms to be excited. "// &
603 "All atoms of the specified kinds are considered. "// &
604 "Keyword only taken into account if DEFINE_EXCITED = BY_KIND", &
605 usage=
"KIND_LIST {string} {string} .. {string} ", &
606 n_var=-1, type_of_var=
char_t, repeats=.false.)
611 variants=(/
"TYPES"/), &
612 description=
"Types of orbitals that are excited, for each atom/kind, "// &
613 "in order to do LR-TDDFT driven xas spectra calculation. "// &
614 "This keyword MUST have the same number of entries as the relevant "// &
615 "KIND_LIST or ATOM_LIST. The order of the specified state types must "// &
616 "correspond to the order of the relevant kinds/indices. "// &
617 "This keyword can be repeated, useful when multiple orbital types "// &
618 "should be excited for specific kinds/atoms.", &
620 usage=
"STATE_TYPES {string} {string} .. {string}", &
621 enum_c_vals=
s2a(
"1S",
"2S",
"2P",
"NE"), &
622 enum_desc=
s2a(
"1s orbital",
"2s orbital",
"2p orbitals",
"not excited"), &
628 description=
"Number of MOs (per spin) to search to find specified donor core "// &
629 "orbitals, starting from the lowest in energy and upward. By default, "// &
630 "all HOMOs are searched. If the LOCALIZE keyword is used, "// &
631 "then all searched states are first localized.", &
632 usage=
"N_SEARCH {integer}", &
638 variants=
s2a(
"LOC",
"DO_LOC"), &
639 description=
"Whether the N_SEARCH potential donor states should be "// &
640 "actively localized. Necessary in case of excited atoms "// &
641 "equivalent under symmetry or GW2X correction.", &
642 usage=
"LOCALIZE {logical}", &
643 default_l_val=.false., &
644 lone_keyword_l_val=.true.)
654 description=
"Specifications for the iterative OT solver. Note: only "// &
655 "available within the Tamm-Dancoff approximation. Recommanded if excitations "// &
656 "from multiple donor states take place.", &
661 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
662 description=
"Enables the usage of the OT iterator solver", &
663 usage=
"&OT_SOLVER {logical}", &
664 default_l_val=.false., &
665 lone_keyword_l_val=.true.)
670 description=
"Maximum number of iterations allowed for the OT solver", &
671 usage=
"MAX_ITER {integer}", &
677 description=
"Convergence threshold for the OT solver", &
678 usage=
"EPS_ITER {double}", &
679 default_r_val=1.0e-4_dp)
684 description=
"Minimizer to be used with the OT solver", &
685 usage=
"MINIMIZER DIIS", &
687 enum_c_vals=
s2a(
"CG",
"DIIS"), &
688 enum_desc=
s2a(
"Conjugated gradient: safer", &
689 "Direct inversion of the iterative subspace: faster"), &
698 CALL keyword_create(keyword, __location__, name=
"SPIN_ORBIT_COUPLING", &
699 variants=(/
"SOC"/), &
700 description=
"Whether spin-orbit coupling should be added. "// &
701 "Note: only applies for spin-restricted calculations with "// &
702 "singlet and triplet excitations OR spin-unrestricted "// &
703 "calculations with both spin-conserving and spin-flip.", &
704 usage=
"SOC {logical}", &
705 default_l_val=.false., &
706 lone_keyword_l_val=.true.)
711 variants=(/
"TDA"/), &
712 description=
"Whether the Tamm-Dancoff approximation should be used.", &
713 usage=
"TAMM_DANCOFF {logical}", &
714 default_l_val=.true., &
715 lone_keyword_l_val=.true.)
720 variants=(/
"ATOMIC_GRID"/), &
721 description=
"Specification of the atomic angular and radial grids for "// &
722 "a given atomic kind. This keyword can/should be repeated "// &
723 "for each excited kind. The default grid dimensions are "// &
724 "those set for the GAPW ground state calculation. These "// &
725 "grids are used for the xc-kernel integration. "// &
726 "Usage: GRID < KIND > < LEBEDEV_GRID > < RADIAL_GRID >", &
727 usage=
"GRID {string} {integer} {integer}", &
728 n_var=3, type_of_var=
char_t, repeats=.true.)
733 variants=(/
"N_ROOTS"/), &
734 description=
"The number of excited states to compute per donor "// &
735 "molecular orbital. (e.g. if 2p excitations, "// &
736 "3*N_EXCITED excited states are considered). "// &
737 "If N_EXCITED is set to -1, all excitations are considered", &
738 usage=
"N_EXCITED {integer}", &
744 variants=
s2a(
"E_RANGE"), &
745 description=
"The energy range in eV for which excitations are considered. "// &
746 "Only excitated states within the range of: first excitation "// &
747 "energy + ENERGY_RANGE are kept. If ENERGY_RANGE "// &
748 "and N_EXCITED are specified, the former has priority. "// &
749 "Negative values are ignored and N_EXCITED takes over.", &
750 usage=
"ENERGY_RANGE {real}", &
751 default_r_val=-1.0_dp)
757 description=
"Defines how the kernel is built in terms of functionals.", &
763 variants=(/
"RI_RADIUS"/), &
764 description=
"The region defined by a sphere of the given radius around "// &
765 "the excited atom defining which RI_XAS basis elements are "// &
766 "considered for the RI projection of the density. Each basis "// &
767 "element which center is in this region is taken. The density "// &
768 "for a given excited atom is expressed as : "// &
769 "sum_ijkl P_ij (ijk) S_kl^-1 xi_l, where P_ij is the density "// &
770 "matrix, i,j span the orbital basis and k,l the RI_XAS basis "// &
771 "in the region. The larger the radius, the more basis "// &
772 "functions to expand the density. However, it is assumed "// &
773 "that it is a small number and the code does not scale well "// &
774 "as the number of RI basis elements gets too large. "// &
775 "Expressed in Angstrom. If the radius is set to 0.0, only "// &
776 "the RI basis elements centered on the excited atom are used.", &
777 usage=
"RI_REGION {real}", &
778 default_r_val=0.0_dp)
788 CALL section_create(subsubsection, __location__, name=
"EXACT_EXCHANGE", &
789 description=
"Whether exact-exchange should be added to the kernel and "// &
790 "if so, with which fraction and operator.", &
795 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
796 description=
"Enables the addition of exact exchange to the kernel.", &
797 usage=
"&EXACT_EXCHANGE {logical}", &
798 default_l_val=.false., &
799 lone_keyword_l_val=.true.)
803 CALL keyword_create(keyword, __location__, name=
"POTENTIAL_TYPE", &
804 variants=
s2a(
"OP",
"OPERATOR",
"POTENTIAL"), &
805 description=
"The type of operator used for exact exchange. The standard "// &
806 "Coulomb operator cannot be used in periodic systems.", &
807 usage=
"OPERATOR {string}", &
810 enum_c_vals=
s2a(
"COULOMB",
"TRUNCATED",
"SHORTRANGE"), &
811 enum_desc=
s2a(
"Standard Coulomb operator: 1/r", &
812 "Truncated Coulomb operator: 1/r if r < R_c, 0 otherwise ", &
813 "Short range: erfc(omega*r)/r"), &
819 CALL keyword_create(keyword, __location__, name=
"CUTOFF_RADIUS", &
820 variants=
s2a(
"R_C",
"RC",
"RANGE"), &
821 description=
"The cutoff radius (in Angstrom) for the truncated Coulomb operator.", &
822 usage=
"CUTOFF_RADIUS {double}", &
823 default_r_val=0.0_dp, &
829 description=
"Location of the file t_c_g.dat that contains the data for the "// &
830 "evaluation of the truncated gamma function ", &
831 usage=
"T_C_G_DATA {string}", &
832 default_c_val=
"t_c_g.dat")
837 description=
"The range parameter for the short range operator (in 1/a0).", &
838 usage=
"OMEGA {double}", &
839 default_r_val=0.0_dp, &
845 description=
"The threshold to determine the effective range of the short range "// &
846 "operator: erfc(omega*eff_range)/eff_range = EPS_RANGE", &
847 usage=
"EPS_RANGE = {double}", &
848 default_r_val=1.0e-6_dp, &
853 CALL keyword_create(keyword, __location__, name=
"EPS_SCREENING", &
854 variants=
s2a(
"EPS_SCREEN"), &
855 description=
"A threshold to determine which primitive 3-center integrals "// &
856 "are kept for contraction, as the latter operation can be "// &
857 "expensive (especially for large basis sets ). "// &
858 "If |(ab|c)| < EPS_SCREENNING, it is discarded.", &
859 default_r_val=1.0e-8_dp, &
865 variants=
s2a(
"FRACTION"), &
866 description=
"Scaling of the exact exchange contribution.", &
867 default_r_val=1.0_dp)
872 CALL section_create(subsubsubsection, __location__, name=
"RI_METRIC", &
873 description=
"This subsection allows for the definition of an exchange "// &
874 "RI metric that is different from the main exchange potential. "// &
875 "By default (i.e. if this subsection is ignored), the "// &
876 "exchange kernel is computed in the V approximation: "// &
877 "(ab|ij) = (ab|P) V^-1 (Q|ij), where V = (P|Q). With a RI "// &
878 "metric, we have a 2 step RI involving the metric potential "// &
879 "for the 3-center integrals: "// &
880 "(ab|ij) = (ab!P) (P!Q)^-1 (Q|R) (R!S)^-1 (S!ij), where | "// &
881 "stands for the exchange potential and ! for the metric "// &
882 "potential. This allows for drastic screening of the "// &
883 "3-center integrals by selecting shorter range metric.", &
888 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
889 description=
"Enables the use of a RI metric.", &
890 usage=
"&EXACT_EXCHANGE {logical}", &
891 default_l_val=.false., &
892 lone_keyword_l_val=.true.)
896 CALL keyword_create(keyword, __location__, name=
"POTENTIAL_TYPE", &
897 variants=
s2a(
"OP",
"OPERATOR",
"POTENTIAL"), &
898 description=
"The type of operator used for the metric.", &
899 usage=
"OPERATOR {string}", &
902 enum_c_vals=
s2a(
"OVERLAP",
"TRUNCATED",
"SHORTRANGE"), &
903 enum_desc=
s2a(
"Overlap operator (=identity)", &
904 "Truncated Coulomb operator: 1/r if r < R_c, 0 otherwise ", &
905 "Short range: erfc(omega*r)/r"), &
911 CALL keyword_create(keyword, __location__, name=
"CUTOFF_RADIUS", &
912 variants=
s2a(
"R_C",
"RC",
"RANGE"), &
913 description=
"The cutoff radius (in Angstrom) for the truncated Coulomb operator.", &
914 usage=
"CUTOFF_RADIUS {double}", &
915 default_r_val=0.0_dp, &
921 description=
"Location of the file t_c_g.dat that contains the data for the "// &
922 "evaluation of the truncated gamma function ", &
923 usage=
"T_C_G_DATA {string}", &
924 default_c_val=
"t_c_g.dat")
929 description=
"The range parameter for the short range operator (in 1/a0).", &
930 usage=
"OMEGA {double}", &
931 default_r_val=0.0_dp, &
946 CALL section_create(subsection, __location__,
"PRINT",
"Controls the printing of information during "// &
947 "XAS TDP calculations", repeats=.false.)
950 description=
"Controles the dumping of the XAS TDP spectrum in output files", &
956 description=
"Controles the dumping of a MO restart file for a given "// &
957 "excited state index. Only for K-edge RKS calculations. "// &
958 "Can be repeated to get multiple *.wfn files at once.", &
960 CALL keyword_create(keyword, __location__, name=
"EXCITED_STATE_INDEX", variants=(/
"INDEX"/), &
961 description=
"The index of the excited state that should be dumped", &
962 usage=
"INDEX {int}", default_i_val=1, repeats=.true.)
974 description=
"Controls the printing of the linear-response orbitals "// &
975 "as *.cube files.", &
980 description=
"The stride (X,Y,Z) used to write the cube file "// &
981 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
982 " 1 number valid for all components.", &
983 usage=
"STRIDE 2 2 2", n_var=-1, default_i_vals=(/2, 2, 2/), type_of_var=
integer_t)
987 CALL keyword_create(keyword, __location__, name=
"CUBES_LU_BOUNDS", &
988 variants=(/
"CUBES_LU"/), &
989 description=
"The lower and upper index of the excited states to be printed as cube", &
990 usage=
"CUBES_LU_BOUNDS integer integer", &
991 n_var=2, default_i_vals=(/1, 0/), type_of_var=
integer_t)
996 description=
"Indexes of the excited states to be printed as cube files "// &
997 "This keyword can be repeated several times "// &
998 "(useful if you have to specify many indexes).", &
999 usage=
"CUBES_LIST 1 2", &
1000 n_var=-1, type_of_var=
integer_t, repeats=.true.)
1005 description=
"append the cube files when they already exist", &
1006 default_l_val=.false., lone_keyword_l_val=.true.)
1014 description=
"Controls the dumping of LR-orbitals coefficients "// &
1015 "and corresponding excitation energies such that "// &
1016 "the program can be restarted for PDOS or CUBE "// &
1017 "printing without the heavy computing.", &