Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Spectrum calculation

This section focuses on the calculation of XPS, XAS, XES, and RIXS, mainly by considering these spectroscopies at the ADC and TDDFT levels of theory. For a more general overview of the large number of methods available to determine these properties, see, e.g., Norman & Dreuw (2018).

Source

X-ray photoemission spectroscopy

In XPS the photoemission of electrons is measured, yielding information on core-electron binding energies. Here we focus on the calculation of ionization energies (IEs), from which the isotropic photoemission spectrum is formed by giving each IE the same intensity and then broadening with an appropriate convolution function. It is possible to go beyond such a simple approach using Dyson orbitals, but it typically does not make much of a difference Vidal et al. (2019).

IEs from Koopmans’ theorem

A simple model for calculating ionization energies and electron affinities is by using Koopmans’ theorem, where they are estimated from the MO energies. For water, we then obtain a 1s1s IE of:

Loading...
1s IE from Koopmans' theorem: -559.50 eV

This can be compared to the experimental value, which is 539.9 eV. The overestimation of almost 20 eV is due to lack of relaxation, which results from the reorganization of the valence electrons in response to a reduction in screening of the nuclei. By comparison, in valence spectroscopies the change in shielding is significantly smaller, yielding far smaller errors due to the lack of relaxation.

An approach for including relaxation effects in IE calculations is to use the ΔSCF\Delta\textrm{SCF} approach, in which the difference in total energy between the neutral and explicitly optimized core-hole states yields estimates of core-electron binding energies.

The maximum overlap method

In a normal SCF cycle without constraints, the core-ionized state is not possible to converge since it collapses into a lower-energy valence-ionized state. To obtain a core-hole state, an approach which avoids the convergence to the valence-hole state is needed. This can be done using several approaches, but the focus here will be on the maximum overlap method (MOM). The idea behind MOM is to run an SCF optimization with the constraint of maximizing the overlap of the orbitals to some initial guess Lykos & Schmeising (1961)King et al. (1967)Bagus & Schaefer (1971)Gilbert et al. (2008). The guess is typically taken as the converged wave function of the neutral (no core-hole) system, and new occupied orbitals at each iteration are chosen such that they overlap most with the span of old occupied orbitals. Defining the overlap matrix as

O=(Cold)†SCnew\textbf{O} = \left( \textbf{C}^{\textrm{old}} \right)^{\dagger} \textbf{SC}^{\textrm{new}}

with OijO_{ij} being the overlap between the ii:th old and jj:th new orbital, and C\textbf{C} and S\textbf{S} are the MO coefficient matrices and basis function overlap matrix, respectively. The projections of the jj:th new orbital onto the old space is

pj=∑inOij=∑aN(∑bN(∑inCibold)Sbc)Ccjoldp_j = \sum_i^n O_{ij} = \sum_a^N ( \sum_b^N ( \sum_i^n C_{ib}^{\textrm{old}} ) S_{bc} ) C_{cj}^{\textrm{old}}

The occupied orbitals are then selected by largest pjp_j values. The original formulation of MOM used the previous iteration as the old space, but more recent development (and what is used in VeloxChem) includes the use of the initial guess as the old space throughout - this is also referred to as initial maximum overlap method (IMOM).

With this, a converged core-hole wave-function is obtained with the following scheme:

  1. Calculate the wave-function of the original system (e.g. no core-hole).

  2. Use this as a starting guess for a new wave-function optimization, removing an electron from the desired orbital (and potentially occupying some other virtual orbital).

  3. Optimize this state using the MOM restriction.

This scheme can consider many unstable states, including core-ionized and certain core-excited states. Some care should be observed, though:

  • If excited states are considered, check that the final state is reasonably close to what is to be investigated.

  • Delocalized core orbitals need to be localized, for example by employing ECPs.

  • If post-HF methods are used, the ground state calculation can attempt to (partially) fill the core-hole of the non-Aufbau reference state, leading to a corrupt wave-function which represents an intermediate between a core-hole/valence-hole state.

IEs from Δ\DeltaSCF

The IE of water using ΔSCF\Delta\textrm{SCF} is then computed as:

HF ionization energy:  541.73 eV

This estimate is within 2 eV from experiment, and we can include electron correlation using MP2:

MP2 ionization energy:  542.64 eV

Alternatively, we can consider this with KS-DFT:

DFT ionization energy:  542.58 eV

MP2 and DFT currently bring us away from experiment when comparing to HF, but we note that the basis set is small and ill-suited for core properties. Using a cc-pCVTZ basis we obtain:

methodIE [eV]
HF538.93
MP2540.26
B3LYP539.19

Thus closer to experiment for the correlated methods (note that scalar-relativistic effects will shift these results upwards by ∼\sim0.37 eV).

Spectra from ΔSCF\Delta\textrm{SCF}

The X-ray photoemission spectrum can be formed by computing all relavant core-electron binding energies (IEs), giving each unique ionization equal intensity, and broadening over the result with an appropriate convolution function.

We here consider ethyl trifluoroacetate( (CF3_3-CO-O-CH2_2-CH3_3), also known as the ‘ESCA’ molecule, which possess very illustrative shifts in XPS features of the carbon KK-edge due to interactions with the very electronegative oxygen and fluorine atoms. We calculate the four carbon 1s IEs with ΔSCF\Delta\textrm{SCF}:

Loading...
# Perform SCF calculation
scf_gs = vlx.ScfRestrictedDriver()
scf_gs.compute(molecule, basis)
nocc = molecule.number_of_alpha_electrons()

# Copy molecule object
mol_ion = copy.deepcopy(molecule)

# Change charge and multiplicity
mol_ion.set_charge(1)
mol_ion.set_multiplicity(2)

esca_ies = []
for n in [5, 6, 7, 8]:
    occa = list(np.arange(nocc))
    occb = copy.copy(occa)
    occb.remove(n)
    scf_ion = vlx.ScfUnrestrictedDriver()
    scf_ion.maximum_overlap(mol_ion, basis, scf_gs.mol_orbs, occa, occb)
    scf_ion_results = scf_ion.compute(mol_ion, basis)
    hf_ie = au2ev * (scf_ion.get_scf_energy() - scf_gs.get_scf_energy())
    esca_ies.append(hf_ie)

print(esca_ies)
<Figure size 600x300 with 1 Axes>

For the comparison to experimental measurements, a cc-pVTZ basis set is selected, as augmented with additional core-polarizing functions for the carbon atoms (i.e. cc-pCVTZ). Theoretical spectrum shifted by 0.11 eV (to account for relativistic effects) and broadened by 0.3 eV.

The features originate in, from low to high energy: H3_3C-, -CH2_2-, -CO-, and -CF3_3. We note a good agreement for the first two features, but the comparison deteriorates for higher energies. This is largely an effect of the more significant change in electronic structure imposed by the very electronegative fluorine and oxygen atoms, which the current level of theory is not capable of describing as well.

X-ray absorption spectroscopy

In XAS the energy-dependent photoabsorption of the sample is measured, probing excitation of core electrons to bound or continuum states. These two different final states then provide information on unoccupied states and local chemical environment, respectively, with a prototypical spectrum of a conjugated system:

We see two disctinct regions with different features and physical origins:

  • NEXAFS (near-edge X-ray absorption fine structure): the region in which transitions to bound states occurs (this region is also known as XANES, X-ray absorption near-edge structure).

  • EXAFS (extended X-ray absorption fine structure): which consists of transitions to continuum states, as modulated by constructive or destructive interference between the emitted electron and the environment. This thus provide information on local chemical bonds.

Included is also the position of the IE, as well assignment of typical features (π∗\pi^*, Rydberg, and σ∗\sigma^*). Transitions to π∗\pi^* states are typically low in energy and very intense, and thus easy to identify. By comparison, Rydberg states are typically weak and converge to the ionization energy, and for condensed phase they tend to be atttenuated. Finally, transitions to σ∗\sigma^* states can be found above the ionization energy.

The total spectrum is referred to as the XAFS (X-ray absorption fine structure) region. For the remainder of this tutorial we will focus on NEXAFS, for which good starting points for modeling with ADC and TDDFT can be found in Wenzel et al. (2015)Besley & Asmuruf (2010)Norman & Dreuw (2018).

Decoupling from the valence continuum

A complication that arises when considering core excitations is the embedding of the core-excited states in the continuum of valence-ionized states. This means that the targetted core-excited states cannot easily be resolved with, e.g., a Davidson approach, as a large number of valence-excited and -ionized states need to be converged first. A number of approaches have been developed to remove or circumvent this issue, including:

Alternatively, when using methods constructing explicit excited states this can be avoided by some constraint scheme, such as MOM.

The focus in this tutorial is the use of the CVS approximation and the CPP approach, with which interior eigenstates and response at arbitrary frequencies can be addressed, as illustrated below. Here we show the global spectrum of water, using the 6-311G basis set. Results obtained with ADC(1), CVS-ADC(1), ADC(2), CVS-ADC(2), and CPP-DFT. CPP-DFT results obtained using the B3LYP exchange-correlation functional and a large γ\gamma of 1 eV. ADC results are shown as bar spectra.

Here we see the global spectrum of water, using a rather limited basis set. Even so, ADC(1) requires more than 50 states to resolve the core-excitation region (situated at about 535 eV for water), and for ADC(2) we could only converge abot 50 states, which did not bring us to the core-excitations. With the CVS approximation we directly target the core-excitation region, albeit at the cost of introducing an error. However, this error has been shown to be relatively small (provided a reasonable basis set) and stable for ADC Herbst & Fransson (2020), and for TDHF and TDDFT it is all but negligible. Using CPP-DFT, this error is avoided all together (although CPP-ADC has been noted to be hard to converge for core-excited state Rehn et al. (2021), so here CVS-CPP-ADC might instead be used - thus reintroducing this small error).

Spectra from CVS-ADC

With CVS-ADC, the core-excitation spectrum is calculate by specifying the index of the probed core orbitals(s):

The results can be printed as a table, and convoluted and plotted using built-in functionalities or a custom broadening:

+--------------------------------------------------------------+
| cvs-adc2x                               singlet ,  converged |
+--------------------------------------------------------------+
|  #        excitation energy     osc str    |v1|^2    |v2|^2  |
|          (au)           (eV)                                 |
|  0      19.71638      536.5099   0.0178       0.8       0.2  |
|  1       19.7967      538.6956   0.0373    0.8087    0.1913  |
|  2      20.49351      557.6567   0.0099    0.7858    0.2142  |
|  3      20.50482      557.9647   0.1016    0.8441    0.1559  |
+--------------------------------------------------------------+

<Figure size 600x500 with 2 Axes>

The built-in functionality uses a Lorentzian broadening with a small broadening parameter, and plots the full region which is resolved, while we might want to focus on lower-energy regions and use custom broadening schemes (as done in the lower panel). We note that high-energy features can often be a result of a discretized continuum region, as seen by the unphysically intense feature at ∼\sim558 eV. A larger basis set will flatten out this region, but care should be taken for any analysis above the ionization energy.

Increasing the basis set to aug-cc-pCVTZ/cc-pVTZ (for oxygen and hydrogen, respectively), we obtain results in good agreement with experiment. Here the theoretical spectra has been shifted by 0.37 eV (to account for relativistic effects) and broadened by 0.3 eV.

Spectra from TDDFT

RPA and TDA calculations:

Plotting the results:

<Figure size 600x300 with 1 Axes>

Spectra from CPP-DFT

With the complex polarization propagator (CPP), also called the damped linear response function, the absorption and dispersion spectrum can be evaluated at arbitrary energies Norman et al. (2001). As such, the X-ray absorption spectrum can be directly calculated by calculating the response at X-ray photon energies. For this, we need to decide on which energy region to use, which can be estimated by, e.g.:

  • Screening extended energy regions with large step size. This could potentially be done using a smaller basis set.

  • With a method lacking relaxation: starting the region a few eV below the IE from Koopmans’ theorem. This will not work for methods capable of including relaxation, where IEs from Δ\DeltaSCF could instead be considered as a first rough estimate (noting that it will work better or worse for different levels of, e.g., ADC theory).

Choosing an energy region of 514-525 eV, using a step length of 0.1 eV and a damping factor of 0.3 eV, we calculate the CPP-DFT (with the B3LYP functional) water spectrum as:

Resulting spectra can be plotted as raw, or splined for smoother figures:

<Figure size 900x500 with 4 Axes>

Using broadened eigenstates, increasing the basis set size and comparing to experiment we get the following, where theoretical spectrum has been shifted by 14.5 eV and broadened by 0.3 eV:

As can be seen, the absolute excitation energies are significantly off, with a shift of 14.5 eV required to yield an approximate alignment to experiment. Part of this shift is due to lack of relativistic effects (~0.37 eV), and a small discrepancy can be expected due to the use of a limited basis set, but the main part of the error is due to two effects:

  1. Lack of relaxation, which yields a final state too high in energy and thus shifts the theoretical spectra upwards in energy.

  2. The self-interaction error (SIE), which yields an erroneous self-repulsion of the dense core orbitals, and results in too low core-excitation energies.

For B3LYP, the combined effect of these two errors results in too low transition energies, meaning that the SIE dominates. By changing the amount of HF exchange, this balance will shift and the error eventually becomes positive.

Despite this large absolute error, the TDDFT spectrum is in reasonable agreement with experiment once it has been shifted. In general, different xc-functionals can exhibit good precision (relative errors), despite poor accuracy (absolute errors), such that a constant shift in energy can be applied.

X-ray emission spectroscopy

Following the creation of a core-hole, the system will rapidly (∼\simfs) decay to a valence-hole or valence-excited state, depending on whether the system is core-ionized or core-excited. These two different intermediate states are probed when the X-ray pulse is in resonance (excited regime) or not (ionized regime), yielding resonant/non-resonant X-ray emission spectroscopy. This section will focus on the latter, with the former following in the next section.

In the decay process the system gains large amounts of energy which need to be discarded, as can occur by emission of high-energy photons (fluorescence) or high-lying electrons (Auger), with relative probability depending on edge and element. For the K-edge the relative probabilities follow the following trends, with figure taken from wikipedia.org:

Auger decay dominates for light elements, which has impact on both our ability of obtaining well-resolved spectra for these elements, as well as the impact of X-ray damage on biological matter.

In non-resonant XES we measure the fluorescent decay of core-ionized states, through which we probe the (element-specific) nature of the local chemical environment. For light elements, the valence space is probed directly, but for heavier elements we obtain a number of different decay channels from the valence region and the outer core region. These lines vary considerably in energy, intensity, and sensitivity to local environment Kowalska et al. (2016):

  1. The 2p→1s2p \rightarrow 1s (Kα1K\alpha_1 and Kα2K\alpha_2) lines are most intense (due to the large overlap) and of lowest energy, and relatively insensitive to the valence region

  2. The 3p→1s3p \rightarrow 1s (Kβ′K\beta ' and Kβ1,3K\beta_{1,3}) lines are higher in energy and more sensitive to the local environment than KαK\alpha, but about an order of magnitude weaker.

  3. Transitions from the ligand MOs (Kβ′′K\beta '' and Kβ2,5K\beta_{2,5}), or valence-to-core (VtC), yield the weakest, highest-energy features, which are the most sensitive to the local environment

This tutorial focuses on spectra of light elements, as modelled by ground state DFT, TDDFT, and ADC. Good starting points for learning about such modeling techniques can be found in Besley & Asmuruf (2010)Fransson & Dreuw (2019)Besley (2021).

Spectra from ADC

One approach for considering X-ray emission spectra is to converge a core-hole state and use this core-ionized system as the reference state for a normal excited state calculation Besley & Asmuruf (2010)Fransson & Dreuw (2019). The core-decay transitions are then the first negative eigenstates of the system, such that a standard Davidson calculation can be run on top of this reference state.

Considering water with ADC(2), the oxygen X-ray emission spectrum is calculated as:

The results can be printed as a table, and convoluted and plotted using built-in functionalities or a custom broadening. Note that the eigenvalues are negative, and a sign change is thus appropriate when constructing the spectra.

+--------------------------------------------------------------+
| adc2                                        any ,  converged |
+--------------------------------------------------------------+
|  #        excitation energy     osc str    |v1|^2    |v2|^2  |
|          (au)           (eV)                                 |
|  0     -22.20632     -604.2647   0.0000    0.9644   0.03563  |
|  1     -22.15933      -602.986   0.0000    0.9622   0.03785  |
|  2     -22.09183     -601.1495   0.1612    0.9588   0.04123  |
|  3     -22.04624     -599.9086   0.1409    0.9561   0.04391  |
+--------------------------------------------------------------+

<Figure size 600x500 with 2 Axes>

Using a cc-pCVTZ/cc-pVTZ basis set and comparing to experiment, where theoretical spectrum shifted by 0.37 eV (to account for relativistic effects) and broadened by 0.3 eV:

While the broadening between the different lines is noticeably different, it is clear that the energy spacing and integrated intensities of the features are in good agreement with experiment. The theoretical spectrum is obtained at the ADC(2) level of theory, which has been seen to yield better absolute energies than ADC(2)-x and ADC(3/2) (for XES) Fransson & Dreuw (2019).

Spectra from TDDFT

Spectra from ground state MOs

While we have previously seen that Koopmans’ theorem is in significant disagreement with experimental ionization energies (due to lack of relaxation), it has been noted that the relative position of the (valence) MO energies can still be quite reasonable Besley (2021). As such, a computationally simple approach for modeling X-ray emission spectra has been developed, in which transition energies are estimated from:

ΔE=ϵv−ϵc\Delta E = \epsilon_v - \epsilon_c

i.e. from the difference in ground state MO energies. The intensities are taken to be proportional to the transition dipole moment:

f∝∣⟨ϕi∣μ^∣ϕc⟩∣2f \propto | \langle \phi_i | \hat{\mu} | \phi_c \rangle | ^2

This independent-particle picture method is very attractive in its simplicity, requiring only a single ground state calculation and the construction of a number of transition dipole moments in order to construct the full spectrum. However, the absolute energies are significantly off, and any differences in relaxation between the different channels will not be accounted for, and multichannel and many-body effects are neglected. Nevertheless, this approach has been noted to yield good (relative) agreement to experimental measurements, and it is capable of considering even massive molecular systems.

The calculation of an emission spectra thus requires the calculation of the ground state and of all relevant transition dipole moments:

Occupied MO energies: [-520.65707757  -27.6878829   -14.39950787   -9.70379307   -7.94953867]

The results can be printed as a table, and convoluted and plotted using a custom broadening. We here focus on the high-energy features:

Energy   Osc. str.   x-component   y-component   z-component
492.969   0.00022     -0.00000       0.00000      -0.01478
506.258   0.00238      0.04878       0.00000      -0.00000
510.953   0.00255     -0.00000       0.00000       0.05050
512.708   0.00342      0.00000      -0.05848       0.00000
<Figure size 600x300 with 1 Axes>

Using a cc-pCVTZ/cc-pVTZ basis set and comparing to experiment Weinhardt et al. (2012), where theoretical spectrum shifted by 15.5 eV and broadened by 0.3 eV:

The resulting spectrum has poor absolute energies, but the relative agreement to experiment is quite impressive.

Resonant inelastic X-ray scattering

We will here focus on calculating the electronic part of the RIXS plane, and skip cases where one is more interested in probing vibrational modes.

Two-step approach with ADC

An approximate treatment of the RIXS plane can be achieved by considering it as a two-step process Fouda et al. (2018), with:

  1. A core-excitation as modeled like a normal X-ray absorption spectrum

  2. A core-decay process from the core-hole system with an electron put in each relevant final state probed in (1), modeled as a (non-resonant) X-ray emission spectrum

The RIXS plane is then constructed from the above absorption and emission energies, with the RIXS intensity from the multiplication of the two respective oscillator strengths.

Note that this approach is an approximation, as it disregards potentially important detuning effects. In the example given below we also ignore the coupling between the polarization of the incoming and outgoing photons. Furthermore, the calculation requires the convergence of core-excited states, which is much trickier than core-ionized, and will likely only work for the first few core-excited states. Finally, depending on how the intermediate core-excited state is constructed, issues with spin-contamination can become highly influential.

Nevertheless, the scheme is quite easy to understand, and introducing core-excited dynamics is relatively straightforward. As such, we here illustrate how the RIXS plane of water can be constructed. First, calculate the X-ray absorption spectrum, as well as the emission spectra with a core-excited reference state:

# Create pyscf mol object
mol = gto.Mole()
mol.atom = water_xyz
mol.basis = "6-31G"
mol.build()

# Perform restricted SCF calculation
scf_gs = scf.RHF(mol)
scf_gs.kernel()

# Calculate X-ray absorption spectrum
adc_xas = adcc.cvs_adc2(scf_gs, n_singlets=4, core_orbitals=1)
print(adc_xas.describe())

# Perform unrestricted SCF calculation
scf_gs = scf.UHF(mol)
scf_gs.kernel()

# Calculate resonant X-ray emission spectrum
#   for states where the core-electron is moved to LUMO or LUMO+1
adc_rxes = []
for n in [5, 6]:
    # Copy molecular orbitals
    mo0 = copy.deepcopy(scf_gs.mo_coeff)
    occ0 = copy.deepcopy(scf_gs.mo_occ)
    # Move 1s electron to LUMO / LUMO+1
    occ0[0][0] = 0.0
    occ0[0][n] = 1.0
    # Perform unrestricted SCF calculation with MOM constraint
    scf_ion = scf.UHF(mol)
    scf.addons.mom_occ(scf_ion, mo0, occ0)
    scf_ion.kernel()
    # Calculate resonant X-ray emission spectrum
    adc_rxes.append(adcc.adc2(scf_ion, n_states=4))

Now the correct combinations of transition energies and intensities need to be calculated:

adc_rixs = []

# Probing LUMO and LUMO+1
for indx in [0, 1]:
    # From XAS calculation
    E_xas = au2ev * adc_xas.excitation_energy[indx]
    I_xas = adc_xas.oscillator_strength[indx]
    # From XES calculation
    for i in np.arange(len(adc_rxes[indx])):
        E_xes = -au2ev * adc_rxes[indx].excitation_energy[i]
        I_xes = adc_rxes[indx].oscillator_strength[i]
        adc_rixs.append([E_xas, E_xes, I_xas * I_xes])

And the RIXS plane can then be plotted:

plt.figure(figsize=(8, 6))
# Plot absorption spectrum
plt.subplot(222)
x, y = au2ev * adc_xas.excitation_energy, adc_xas.oscillator_strength
xi, yi = lorentzian(x, y, min(x) - 2, min(x) + 5, 0.01, 0.3)
plt.plot(yi, xi)

# Plot emission specta, with vertical shift from absorbed energy
plt.subplot(223)
# LUMO
x, y = -au2ev * adc_rxes[0].excitation_energy, adc_rxes[0].oscillator_strength
xi, yi = lorentzian(x, 5.0 * y, x[1] - 9, x[1] + 2, 0.01, 0.3)
plt.plot(xi, yi + au2ev * adc_xas.excitation_energy[0])
# LUMO+1
x, y = -au2ev * adc_rxes[0].excitation_energy, adc_rxes[1].oscillator_strength
xi, yi = lorentzian(x, 5.0 * y, x[1] - 9, x[1] + 2, 0.01, 0.3)
plt.plot(xi, yi + au2ev * adc_xas.excitation_energy[1])

# Plot RIXS plane, here with marker size scaling with intensity
plt.subplot(221)
for i in np.arange(len(adc_rixs)):
    tmp = adc_rixs[i]
    plt.plot(tmp[1], tmp[0], "ok", markersize=10000 * tmp[2])

# Zooming in to region spanned by XAS and XES projections
plt.xlim((519, 530))
plt.ylim((536, 544))

plt.tight_layout()
plt.show()

Spectra from TDDFT

As the name suggests, resonant inelastic X-ray scattering (RIXS) Gel'mukhanov & Ågren (1999) involves the inelastic scattering of an X-ray photon by a molecule, meaning that there is an exchange of energy, e.g., leaving the molecule in an excited state with the emitted photon redshifted. RIXS is also called resonant X-ray Raman scattering, due to the close analogy with Raman spectroscopy.

In a somewhat simplified view, the RIXS process can be thought of as the initial absorption of an X-ray, taking the system from the electronic ground state into a short-lived, core-excited state. The core-excited state quickly decays onto the manifold of valence-excited states, and naturally also back to the ground state, at which point we are at the elastic line since no energy is exchanged in this case. It is important to note that RIXS is a coherent process, and the previous description might suggest something more like two independent events, but in a proper description the absorption and subsequent emission are coupled and cannot be described independently, formally speaking (though this can serve as a crude approximation to computing RIXS spectra), hence the caveat that this is a simplified picture. In principle, one could have a blue-shift of the emitted photon as well if the initial state is not the ground state, under normal conditions however, molecules are in the electronic ground state, as we will assume, though one could imagine a pump--probe type setup as well.

Our starting point for the analysis is the Kramers--Heisenberg--Dirac (KHD) expression for the RIXS scattering amplitude, which at resonance reads

Ffgξξ′(ω)∑∣res=1ℏ∑nωnfωng⟨f∣μ^ξ†∣n⟩⟨n∣μ^ξ′∣g⟩ω−ωng+iΓn/(2ℏ)\mathcal{F}_{fg}^{\xi \xi'}(\omega) \left. \vphantom{\sum} \right\vert_{\text{res}} = \frac{1}{\hbar} \sum_n \omega_{nf} \omega_{ng} \frac{\langle f \rvert \hat{\mu}_{ \xi}^{\dagger} \rvert n \rangle \langle n \rvert \hat{\mu}_{\xi'} \rvert g \rangle}{ \omega - \omega_{ng} + i\Gamma_n/(2\hbar)}

Here μ^ξ\hat{\mu}_\xi is the ξ∈{x,y,z}\xi \in \{ x,y,z \} Cartesian component of the length gauge electric dipole operator μ^=−r^,∣g⟩,∣n⟩,∣f⟩ \hat{\boldsymbol{\mu}} = - \hat{\boldsymbol{r}}, \lvert g \rangle, \lvert n \rangle, \lvert f \rangle denote the electronic ground, core/ intermediate, and valence/final state, respectively, ℏωng=En−Eg\hbar \omega_{ng} = E_n - E_g is the vertical excitation energy from the ground state to ∣n⟩\lvert n \rangle, ω\omega and ω′\omega' are the incident and outgoing photon frequencies, respectively. Γn\Gamma_n is the natural linewidth, or damping factor, or full width at half maximum (FWHM) of the core-excited/intermediate state nn, which is related to the lifetime of the state as τn=ℏΓn−1\tau_n = \hbar\Gamma_n^{-1}. Physically it reflects the total spontaneous decay rate of the core-excited state (radiative + non-radiative). One should be aware that the equation is already in a simplified form under what is commonly known as the rotating wave approximation, where the second term (obtained by letting ω→−ω\omega \rightarrow -\omega in the above equation) is discarded, a term that represents the alternate time-ordering of emission followed by absorption instead---which at resonance can be safely neglected.

For a specific final state ff, the scattering cross-section is proportional to the squared modulus of the scattering amplitude

σf←g(ω)∝∣Ffg∣2δ(ω′+ωfg−ω)\sigma_{f \leftarrow g}(\omega) \propto \rvert \mathcal{F}_{fg} \rvert^2 \delta(\omega' + \omega_{fg} - \omega)

The Dirac delta distribution serves to ensure energy conservation of the overall process. Note that there is no such limiting factor on the intermediate states---why these states are sometimes known as virtual states. The total cross-section for a given frequency is then given by the sum over all final states ff. The cross-sections give Lorentzian line-shapes, where Γn\Gamma_n determines the width, and so also possible overlap between adjacent excited states.

Practical difficulties & implementation details

Based on the KHD expression for the scattering amplitudes, we can note two difficulties: the matrix elements ⟨f∣μ^∣n⟩\langle f \rvert \hat{\boldsymbol{\mu}} \lvert n \rangle involve transitions between excited states and hence are, formally, outside the reach of linear response theory, and secondly the sum goes over all possible intermediate states, including the continuum. The former means we need to go to at least quadratic response to obtain such terms, however, in addition to the increased computational cost there are also issues related to the use of an adiabatic xcxc-kernel. Alternatively, in what is known as the pseudo-wavefunction formalism of linear-response TDDFT (LR-TDDFT) one can approximate even these excited to excited state transitions. The sum over all intermediate states, can, at resonance, be truncated to those states close in energy. Finally, seeing that we will need both core-excited and valence-excited states, neither one CVS calculation nor one ordinary linear-response calculation is sufficient---unless the latter is fully diagonalized, at which point one obtains both sets of states from one calculation. Fully diagonalizing the response matrix is, except for small systems/and or basis sets, not feasible, and some more efficient scheme to obtaining them is needed.

In light of this, there are two linear-response-based approaches implemented in VeloxChem (apart from fully diagonalizing), these are known as the two-shot- (2S) and restricted-subspace approximation (RSA) approaches. Both of these approaches, naturally, attempt to obtain both the valence- and core-excited states as efficiently as possible, while keeping as much of the physics intact as possible. It should be noted that the pros and cons of each with respect to each other is not obvious, and benchmarking is required for investigating which option to use, and when. Nevertheless, generally, these two approaches provide similar results, with appropriate orbital selection. In the following we will only be concerned with vertical RIXS. Inclusion of vibrational degrees of freedom is generally a prerequisite for quantitative comparison to experiment but the vertical approximation nonetheless often yield qualitatively correct spectra.

Before going into further detail, we will first compute the RIXS spectra of water with all three approaches and see how they compare, starting with the RSA. The first step is to run the RSA-LR-TDDFT computation to get our eigenvectors and values, with which we can obtain all quantities we need for the scattering amplitudes. A final consideration regarding the parameter Γn\Gamma_n is that it is state-dependent. However, a common approximation is to take Γn\Gamma_n as constant across the core-excited state manifold, leaving it a function of the element only---the value of which can be obtained experimentally. For our purposes of studying the K-edge of oxygen, we will use Γn=Γ=0.16\Gamma_n = \Gamma = 0.16 eV. Γ\Gamma is further related to how many intermediate states should be kept in the computation of the scattering amplitudes, but more on this at the end.

Restricted-subspace approximation (RSA) approach

Let us start with the RSA Cruz et al. (2021) approach, as this lends itself as a natural restriction on the orbital manifold for our purposes. The idea is to include only those orbitals deemed adequate for describing both the core- and valence-excited states. Here, we directly might take issue with the use of the word adequate, but again, defining it in this context is beyond the scope of this chapter. One restricts not only which of the occupied orbitals are active, but also the virtual space. The limit of RSA, in taking all orbitals into account is of course the full diagonalization scheme---meaning that one has to compute all states in-between the valence- and core-excited states---still, this does mean that RSA is systematically improvable.

We start by running the RSA-linear-response TDDFT calculation, note the attributes determining the active orbitals.

5 34 39
Output
Loading...
Loading...
Output
Fetching long content....

To note here is that the core orbitals one chooses defines the intermediate states, i.e., which states are summed over in RixsDriver. The specific states that these correspond to can be seen in the output of the rsa_drv.compute, where one can note that we still need to compute all states between our valence- and core-excited states of interest, although these are fewer than in the full case due to our reduced orbital space.

[['HOMO -> LUMO -0.9838'], ['HOMO -> LUMO+1 0.9528', 'HOMO -> LUMO+4 0.2432'], ['HOMO-1 -> LUMO 0.9592'], ['HOMO -> LUMO+3 0.9790'], ['HOMO -> LUMO+2 -0.9075', 'HOMO-1 -> LUMO+3 -0.3725'], ['HOMO-1 -> LUMO+1 0.9758'], ['HOMO -> LUMO+4 -0.9513', 'HOMO -> LUMO+1 0.2572'], ['HOMO-1 -> LUMO+2 -0.7623', 'HOMO -> LUMO+5 0.6244'], ['HOMO -> LUMO+5 -0.7679', 'HOMO-1 -> LUMO+2 -0.6266'], ['HOMO-1 -> LUMO+3 -0.8766', 'HOMO -> LUMO+2 0.3468', 'HOMO -> LUMO+8 -0.2722'], ['HOMO -> LUMO+6 -0.8759', 'HOMO-1 -> LUMO+4 -0.4489'], ['HOMO -> LUMO+7 -0.9675'], ['HOMO-1 -> LUMO+4 -0.8800', 'HOMO -> LUMO+6 0.4684'], ['HOMO-1 -> LUMO+5 -0.9668'], ['HOMO -> LUMO+8 -0.8460', 'HOMO-1 -> LUMO+7 0.4025', 'HOMO-1 -> LUMO+3 0.2530'], ['HOMO-1 -> LUMO+6 -0.9943'], ['HOMO-1 -> LUMO+8 -0.8234', 'HOMO -> LUMO+10 0.5419'], ['HOMO -> LUMO+9 -0.8629', 'HOMO -> LUMO+11 -0.4765'], ['HOMO -> LUMO+10 -0.8279', 'HOMO-1 -> LUMO+8 -0.5361'], ['HOMO-1 -> LUMO+7 -0.8889', 'HOMO -> LUMO+8 -0.3999'], ['HOMO -> LUMO+11 0.8470', 'HOMO -> LUMO+9 -0.4962'], ['HOMO-1 -> LUMO+10 0.9844'], ['HOMO-1 -> LUMO+9 -0.9185', 'HOMO-1 -> LUMO+11 -0.3674'], ['HOMO-1 -> LUMO+11 -0.9102', 'HOMO-1 -> LUMO+9 0.3837'], ['HOMO -> LUMO+12 0.9848'], ['HOMO -> LUMO+13 0.9658', 'HOMO-1 -> LUMO+14 0.2186'], ['HOMO -> LUMO+14 -0.8922', 'HOMO-1 -> LUMO+13 0.3973'], ['HOMO-1 -> LUMO+12 0.7782', 'HOMO -> LUMO+16 -0.6158'], ['HOMO -> LUMO+15 -0.9915'], ['HOMO-1 -> LUMO+13 0.8979', 'HOMO -> LUMO+14 0.3571', 'HOMO-1 -> LUMO+15 0.2046'], ['HOMO -> LUMO+16 -0.7754', 'HOMO-1 -> LUMO+12 -0.6218'], ['HOMO-1 -> LUMO+14 0.9701', 'HOMO -> LUMO+13 -0.2259'], ['HOMO-1 -> LUMO+16 -0.9948'], ['HOMO-1 -> LUMO+15 0.9585', 'HOMO -> LUMO+14 -0.2510'], ['HOMO -> LUMO+17 0.9969'], ['HOMO-1 -> LUMO+17 -0.9779', 'HOMO -> LUMO+19 0.2009'], ['HOMO -> LUMO+18 0.9972'], ['HOMO-1 -> LUMO+18 -0.9981'], ['HOMO-1 -> LUMO+19 0.9983'], ['HOMO -> LUMO+19 0.9769', 'HOMO-1 -> LUMO+17 0.2029'], ['core_1 -> LUMO 0.9742'], ['core_1 -> LUMO+1 -0.9208', 'core_1 -> LUMO+4 -0.3067', 'core_1 -> LUMO+11 -0.2115'], ['core_1 -> LUMO+2 -0.9750', 'core_1 -> LUMO+8 -0.2107'], ['core_1 -> LUMO+3 0.9702', 'core_1 -> LUMO+7 -0.2317'], ['core_1 -> LUMO+4 0.9213', 'core_1 -> LUMO+1 -0.3329']]

Now, we can construct the RIXS spectrum by using the RixsDriver class, where we set the incoming photon energies to the first core-excited resonance---this is what the driver computes if the incoming photon energy is not initially set. Alternatively, one can identify the core-excited states from the excitation_details of the return object from the response calculation.

Output
                                                                                                                          
                                     Resonant Inelastic X-ray Scattering (RIXS) Setup                                     
                                     ================================================                                     
                                                                                                                          
                               Scattering angle (theta) [rad]   : 0.00                                                    
                               Lifetime broadening (gamma) [eV] : 0.16                                                    
                               Incoming photon energies [a.u.]  : 19.1148                                                 
                               Incoming photon energies [eV]    : 520.14                                                  
                               Number of intermediate states    : 5                                                       
                               Number of final states           : 10                                                      
                               Final state energy cutoff [eV]   : 14.00                                                   
                                                                                                                          
                                                     State index sets                                                     
                               Intermediate/core states         : [40 ... 44]                                             
                               Final/valence states             : [0 ... 9]                                               
                                                                                                                          
                                                       Orbital sets                                                       
                               Core orbitals                    : [Core1]                                                 
                               Valence orbitals                 : [HOMO-1, HOMO]                                          
                               Virtual orbitals                 : [LUMO ... LUMO+19]                                      
                                                                                                                          
* Info * Running RIXS calculation in the restricted-subspace approach                                                     
                                                                                                                          
         J. Phys. Chem. A, 2025, 129, 8783-8797, DOI: 10.1021/acs.jpca.5c04528
         Phys. Chem. Chem. Phys., 2021, 23, 1835-1848, DOI: 10.1039/D0CP04726K
                                                                                                                          
* Info * Computed RIXS cross-sections for 10 final states at photon energy: 520.14 eV.                                    
                                                                                                                          
               RIXS cross-sections at incident X-ray energy 520.14 eV, energy-loss mode                                   
               ------------------------------------------------------------------------                                   
               Ground State     S0:      0.00000000 a.u.      0.00000 eV    Cross-section    1.47e-06                     
               Excited State    S1:      0.28664083 a.u.      7.79989 eV    Cross-section    1.36e-05                     
               Excited State    S2:      0.35582839 a.u.      9.68258 eV    Cross-section    6.19e-08                     
               Excited State    S3:      0.36592044 a.u.      9.95720 eV    Cross-section    5.20e-06                     
               Excited State    S4:      0.40630716 a.u.     11.05618 eV    Cross-section    7.43e-09                     
               Excited State    S5:      0.43225725 a.u.     11.76232 eV    Cross-section    1.38e-07                     
               Excited State    S6:      0.43655005 a.u.     11.87913 eV    Cross-section    4.52e-08                     
               Excited State    S7:      0.44702116 a.u.     12.16407 eV    Cross-section    3.95e-09                     
               Excited State    S8:      0.47474958 a.u.     12.91859 eV    Cross-section    7.31e-09                     
               Excited State    S9:      0.48136239 a.u.     13.09854 eV    Cross-section    6.83e-09                     
               Excited State   S10:      0.50497418 a.u.     13.74105 eV    Cross-section    4.45e-08                     
                                                                                                                          
                                                                                                                          
dict_keys(['cross_sections', 'elastic_cross_sections', 'photon_energies', 'scattering_amplitudes', 'emission_energies', 'energy_losses', 'core_eigenvalues', 'core_osc_strengths', 'gamma_fwhm_ev', 'rsp_type'])

Full diagonalization of response matrix

Due to the small system, and rather small basis set, we can also run the full diagonalization, also with the use of restricted_subspace variant, as this allows us to implicitly define the intermediate states as the core-excited ones. Without the tag on the states of core, the RixsDriver does not know which states should be the intermediate ones. We can also skip passing explicit response results and instead have the RixsDriver compute the response needed.

Output
                                                                                                                          
                                     Resonant Inelastic X-ray Scattering (RIXS) Setup                                     
                                     ================================================                                     
                                                                                                                          
                               Scattering angle (theta) [rad]   : 0.00                                                    
                               Lifetime broadening (gamma) [eV] : 0.16                                                    
                               Incoming photon energies [a.u.]  : 19.1146                                                 
                               Incoming photon energies [eV]    : 520.13                                                  
                               Number of intermediate states    : 5                                                       
                               Number of final states           : 10                                                      
                               Final state energy cutoff [eV]   : 13.50                                                   
                                                                                                                          
                                                     State index sets                                                     
                               Intermediate/core states         : [136 ... 140]                                           
                               Final/valence states             : [0 ... 9]                                               
                                                                                                                          
                                                       Orbital sets                                                       
                               Core orbitals                    : [Core1]                                                 
                               Valence orbitals                 : [HOMO-3 ... HOMO]                                       
                               Virtual orbitals                 : [LUMO ... LUMO+33]                                      
                                                                                                                          
* Info * Running RIXS calculation in the restricted-subspace approach                                                     
                                                                                                                          
         J. Phys. Chem. A, 2025, 129, 8783-8797, DOI: 10.1021/acs.jpca.5c04528
         Phys. Chem. Chem. Phys., 2021, 23, 1835-1848, DOI: 10.1039/D0CP04726K
                                                                                                                          
* Info * Computed RIXS cross-sections for 10 final states at photon energy: 520.13 eV.                                    
                                                                                                                          
               RIXS cross-sections at incident X-ray energy 520.13 eV, energy-loss mode                                   
               ------------------------------------------------------------------------                                   
               Ground State     S0:      0.00000000 a.u.      0.00000 eV    Cross-section    1.71e-06                     
               Excited State    S1:      0.28563706 a.u.      7.77258 eV    Cross-section    1.47e-05                     
               Excited State    S2:      0.35546905 a.u.      9.67281 eV    Cross-section    6.58e-08                     
               Excited State    S3:      0.36464290 a.u.      9.92244 eV    Cross-section    5.59e-06                     
               Excited State    S4:      0.40509763 a.u.     11.02327 eV    Cross-section    9.21e-09                     
               Excited State    S5:      0.42394828 a.u.     11.53622 eV    Cross-section    1.02e-07                     
               Excited State    S6:      0.43539474 a.u.     11.84769 eV    Cross-section    5.02e-08                     
               Excited State    S7:      0.44687617 a.u.     12.16012 eV    Cross-section    4.15e-09                     
               Excited State    S8:      0.47439462 a.u.     12.90894 eV    Cross-section    1.15e-08                     
               Excited State    S9:      0.48041384 a.u.     13.07273 eV    Cross-section    4.52e-09                     
               Excited State   S10:      0.49399553 a.u.     13.44230 eV    Cross-section    3.72e-08                     
                                                                                                                          
                                                                                                                          

Note the tiny but non-zero difference in energy of the first core-excited state obtained here, ∼520.13\sim 520.13 eV, and the one from the RSA, ∼520.14\sim 520.14 eV.

Two-shot approach

Next we turn to the two-shot (2S) approach, developed by Nascimento et al. (2021) [Nascimento et al. (2021), DOI: 10.1021/acs.jctc.1c00144], where two separate linear-response calculations are employed to obtain the eigenvalues and eigenvectors required to compute the scattering amplitudes. One CVS-linear-response computation is performed to determine the core-excited states, and one normal linear-response computation for the valence-excited states of interest. Strictly speaking, the CVS approximation means that the core-excited states are eigenvectors of a different Hamiltonian---why these eigenvectors must be padded with zeros---hence these are not necessarily orthogonal to eigenvectors from the calculation without the CVS approximation but this should be a small effect.

Output
Fetching long content....
Output
                                                                                                                          
                                            Linear Response EigenSolver Setup                                             
                                           ===================================                                            
                                                                                                                          
                               Number of States                : 5                                                        
                               Max. Number of Iterations       : 150                                                      
                               Convergence Threshold           : 1.0e-04                                                  
                               ERI Screening Threshold         : 1.0e-12                                                  
                               Exchange-Correlation Functional : RCAM-B3LYP                                               
                               Molecular Grid Level            : 4                                                        
                                                                                                                          
* Info * Using the RCAM-B3LYP functional.                                                                                 
                                                                                                                          
         A. J. Cohen, P. Mori-Sánchez, and W. Yang,  J. Chem. Phys. 126, 191109 (2007)
                                                                                                                          
* Info * Using the Libxc library (v7.1.2).                                                                                
                                                                                                                          
         S. Lehtola, C. Steigemann, M. J. T. Oliveira, and M. A. L. Marques,  SoftwareX 7, 1–5 (2018)
                                                                                                                          
* Info * Using the following algorithm for XC numerical integration.                                                      
                                                                                                                          
         J. Kussmann, H. Laqua and C. Ochsenfeld, J. Chem. Theory Comput. 2021, 17, 1512-1521
                                                                                                                          
* Info * 15 gerade trial vectors in reduced space                                                                         
* Info * 15 ungerade trial vectors in reduced space                                                                       
                                                                                                                          
               *** Iteration:   1 * Residuals (Max,Min): 9.74e-02 and 5.00e-02                                            
                                                                                                                          
* Info * 20 gerade trial vectors in reduced space                                                                         
* Info * 20 ungerade trial vectors in reduced space                                                                       
                                                                                                                          
               *** Iteration:   2 * Residuals (Max,Min): 2.31e-02 and 1.59e-03                                            
                                                                                                                          
* Info * 25 gerade trial vectors in reduced space                                                                         
* Info * 24 ungerade trial vectors in reduced space                                                                       
                                                                                                                          
               *** Iteration:   3 * Residuals (Max,Min): 2.83e-03 and 1.11e-04                                            
                                                                                                                          
* Info * 29 gerade trial vectors in reduced space                                                                         
* Info * 29 ungerade trial vectors in reduced space                                                                       
                                                                                                                          
               *** Iteration:   4 * Residuals (Max,Min): 1.67e-04 and 7.54e-14                                            
                                                                                                                          
* Info * 30 gerade trial vectors in reduced space                                                                         
* Info * 30 ungerade trial vectors in reduced space                                                                       
                                                                                                                          
               *** Iteration:   5 * Residuals (Max,Min): 1.74e-05 and 6.64e-14                                            
                                                                                                                          
               *** Linear response converged in 5 iterations. Time: 0.91 sec                                              
                                                                                                                          
                                                                                                                          
               Electric Transition Dipole Moments (dipole length, a.u.)                                                   
               --------------------------------------------------------                                                   
                                                X            Y            Z                                               
               Excited State    S1:      0.000000     0.000000     0.027385                                               
               Excited State    S2:     -0.000000     0.043168     0.000000                                               
               Excited State    S3:      0.031564     0.000000    -0.000000                                               
               Excited State    S4:     -0.000000     0.000000    -0.028115                                               
               Excited State    S5:     -0.000000     0.017823    -0.000000                                               
                                                                                                                          
               Electric Transition Dipole Moments (dipole velocity, a.u.)                                                 
               ----------------------------------------------------------                                                 
                                                X            Y            Z                                               
               Excited State    S1:      0.000000     0.000000     0.025923                                               
               Excited State    S2:     -0.000000     0.042291     0.000000                                               
               Excited State    S3:      0.033281     0.000000    -0.000000                                               
               Excited State    S4:     -0.000000     0.000000    -0.026255                                               
               Excited State    S5:     -0.000000     0.016801    -0.000000                                               
                                                                                                                          
               Magnetic Transition Dipole Moments (a.u.)                                                                  
               -----------------------------------------                                                                  
                                                X            Y            Z                                               
               Excited State    S1:      0.000000    -0.000000    -0.000000                                               
               Excited State    S2:     -0.000399    -0.000000     0.000000                                               
               Excited State    S3:     -0.000000     0.000135    -0.000000                                               
               Excited State    S4:      0.000000    -0.000000    -0.000000                                               
               Excited State    S5:     -0.000245    -0.000000    -0.000000                                               
                                                                                                                          
               One-Photon Absorption                                                                                      
               ---------------------                                                                                      
               Excited State    S1:     19.11457626 a.u.    520.13412 eV    Osc.Str.    0.0096                            
               Excited State    S2:     19.18269122 a.u.    521.98762 eV    Osc.Str.    0.0238                            
               Excited State    S3:     19.23278737 a.u.    523.35081 eV    Osc.Str.    0.0128                            
               Excited State    S4:     19.23630445 a.u.    523.44651 eV    Osc.Str.    0.0101                            
               Excited State    S5:     19.27780803 a.u.    524.57588 eV    Osc.Str.    0.0041                            
                                                                                                                          
               Electronic Circular Dichroism                                                                              
               -----------------------------                                                                              
               Excited State    S1:     Rot.Str.     -0.000000 a.u.    -0.0000 [10**(-40) cgs]                            
               Excited State    S2:     Rot.Str.      0.000000 a.u.     0.0000 [10**(-40) cgs]                            
               Excited State    S3:     Rot.Str.     -0.000000 a.u.    -0.0000 [10**(-40) cgs]                            
               Excited State    S4:     Rot.Str.      0.000000 a.u.     0.0000 [10**(-40) cgs]                            
               Excited State    S5:     Rot.Str.      0.000000 a.u.     0.0000 [10**(-40) cgs]                            
                                                                                                                          
               Character of excitations:                                                                                  
                                                                                                                          
               Excited state 1                                                                                            
               ---------------                                                                                            
               core_1   -> LUMO        -0.9740                                                                            
                                                                                                                          
               Excited state 2                                                                                            
               ---------------                                                                                            
               core_1   -> LUMO+1       0.9204                                                                            
               core_1   -> LUMO+4       0.3067                                                                            
               core_1   -> LUMO+11      0.2127                                                                            
                                                                                                                          
               Excited state 3                                                                                            
               ---------------                                                                                            
               core_1   -> LUMO+2      -0.9750                                                                            
               core_1   -> LUMO+8      -0.2106                                                                            
                                                                                                                          
               Excited state 4                                                                                            
               ---------------                                                                                            
               core_1   -> LUMO+3      -0.9678                                                                            
               core_1   -> LUMO+7       0.2389                                                                            
                                                                                                                          
               Excited state 5                                                                                            
               ---------------                                                                                            
               core_1   -> LUMO+4       0.9211                                                                            
               core_1   -> LUMO+1      -0.3330                                                                            
                                                                                                                          
Output
                                                                                                                          
                                     Resonant Inelastic X-ray Scattering (RIXS) Setup                                     
                                     ================================================                                     
                                                                                                                          
                               Scattering angle (theta) [rad]   : 0.00                                                    
                               Lifetime broadening (gamma) [eV] : 0.16                                                    
                               Incoming photon energies [a.u.]  : 19.1146, 19.1827                                        
                               Incoming photon energies [eV]    : 520.13, 521.99                                          
                               Number of intermediate states    : 5                                                       
                               Number of final states           : 25                                                      
                                                                                                                          
                                                     State index sets                                                     
                               Intermediate/core states         : [0 ... 4]                                               
                               Final/valence states             : [0 ... 24]                                              
                                                                                                                          
                                                       Orbital sets                                                       
                               Core orbitals                    : [Core1]                                                 
                               Valence orbitals                 : [HOMO-3 ... HOMO]                                       
                               Virtual orbitals                 : [LUMO ... LUMO+33]                                      
                                                                                                                          
* Info * Running RIXS calculation in the two-shot approach                                                                
                                                                                                                          
         J. Phys. Chem. A, 2025, 129, 8783-8797, DOI: 10.1021/acs.jpca.5c04528
                                                                                                                          
* Info * Computed RIXS cross-sections for 25 final states at photon energy: 520.13 eV.                                    
                                                                                                                          
               RIXS cross-sections at incident X-ray energy 520.13 eV, energy-loss mode                                   
               ------------------------------------------------------------------------                                   
               Ground State     S0:      0.00000000 a.u.      0.00000 eV    Cross-section    1.65e-06                     
               Excited State    S1:      0.28563706 a.u.      7.77258 eV    Cross-section    1.43e-05                     
               Excited State    S2:      0.35546905 a.u.      9.67281 eV    Cross-section    6.37e-08                     
               Excited State    S3:      0.36464290 a.u.      9.92244 eV    Cross-section    5.38e-06                     
               Excited State    S4:      0.40509763 a.u.     11.02327 eV    Cross-section    9.01e-09                     
               Excited State    S5:      0.42394828 a.u.     11.53622 eV    Cross-section    1.01e-07                     
               Excited State    S6:      0.43539474 a.u.     11.84769 eV    Cross-section    4.91e-08                     
               Excited State    S7:      0.44687617 a.u.     12.16012 eV    Cross-section    4.04e-09                     
               Excited State    S8:      0.47439462 a.u.     12.90894 eV    Cross-section    1.08e-08                     
               Excited State    S9:      0.48041384 a.u.     13.07273 eV    Cross-section    5.09e-09                     
               Excited State   S10:      0.49399553 a.u.     13.44230 eV    Cross-section    3.84e-08                     
               Excited State   S11:      0.50233182 a.u.     13.66915 eV    Cross-section    9.53e-06                     
               Excited State   S12:      0.51836208 a.u.     14.10535 eV    Cross-section    8.21e-08                     
               Excited State   S13:      0.53324470 a.u.     14.51033 eV    Cross-section    1.15e-08                     
               Excited State   S14:      0.54128381 a.u.     14.72908 eV    Cross-section    3.78e-07                     
               Excited State   S15:      0.55373243 a.u.     15.06783 eV    Cross-section    1.53e-09                     
               Excited State   S16:      0.56161556 a.u.     15.28234 eV    Cross-section    6.44e-09                     
               Excited State   S17:      0.59232073 a.u.     16.11787 eV    Cross-section    1.46e-11                     
               Excited State   S18:      0.59376072 a.u.     16.15705 eV    Cross-section    9.77e-09                     
               Excited State   S19:      0.62237950 a.u.     16.93581 eV    Cross-section    8.14e-09                     
               Excited State   S20:      0.62952796 a.u.     17.13033 eV    Cross-section    2.03e-08                     
               Excited State   S21:      0.63498655 a.u.     17.27886 eV    Cross-section    2.55e-09                     
               Excited State   S22:      0.64402344 a.u.     17.52477 eV    Cross-section    2.63e-08                     
               Excited State   S23:      0.64619582 a.u.     17.58388 eV    Cross-section    1.92e-10                     
               Excited State   S24:      0.64834114 a.u.     17.64226 eV    Cross-section    1.10e-08                     
               Excited State   S25:      0.68067851 a.u.     18.52221 eV    Cross-section    6.56e-11                     
                                                                                                                          
                                                                                                                          
* Info * Computed RIXS cross-sections for 25 final states at photon energy: 521.99 eV.                                    
                                                                                                                          
               RIXS cross-sections at incident X-ray energy 521.99 eV, energy-loss mode                                   
               ------------------------------------------------------------------------                                   
               Ground State     S0:      0.00000000 a.u.      0.00000 eV    Cross-section    1.03e-05                     
               Excited State    S1:      0.28563706 a.u.      7.77258 eV    Cross-section    2.69e-08                     
               Excited State    S2:      0.35546905 a.u.      9.67281 eV    Cross-section    3.51e-05                     
               Excited State    S3:      0.36464290 a.u.      9.92244 eV    Cross-section    1.72e-08                     
               Excited State    S4:      0.40509763 a.u.     11.02327 eV    Cross-section    4.55e-08                     
               Excited State    S5:      0.42394828 a.u.     11.53622 eV    Cross-section    2.16e-07                     
               Excited State    S6:      0.43539474 a.u.     11.84769 eV    Cross-section    2.67e-05                     
               Excited State    S7:      0.44687617 a.u.     12.16012 eV    Cross-section    2.04e-07                     
               Excited State    S8:      0.47439462 a.u.     12.90894 eV    Cross-section    2.88e-08                     
               Excited State    S9:      0.48041384 a.u.     13.07273 eV    Cross-section    2.21e-08                     
               Excited State   S10:      0.49399553 a.u.     13.44230 eV    Cross-section    5.90e-07                     
               Excited State   S11:      0.50233182 a.u.     13.66915 eV    Cross-section    3.82e-08                     
               Excited State   S12:      0.51836208 a.u.     14.10535 eV    Cross-section    1.37e-08                     
               Excited State   S13:      0.53324470 a.u.     14.51033 eV    Cross-section    1.55e-10                     
               Excited State   S14:      0.54128381 a.u.     14.72908 eV    Cross-section    1.01e-06                     
               Excited State   S15:      0.55373243 a.u.     15.06783 eV    Cross-section    1.13e-07                     
               Excited State   S16:      0.56161556 a.u.     15.28234 eV    Cross-section    1.81e-06                     
               Excited State   S17:      0.59232073 a.u.     16.11787 eV    Cross-section    3.73e-09                     
               Excited State   S18:      0.59376072 a.u.     16.15705 eV    Cross-section    6.09e-06                     
               Excited State   S19:      0.62237950 a.u.     16.93581 eV    Cross-section    4.53e-08                     
               Excited State   S20:      0.62952796 a.u.     17.13033 eV    Cross-section    3.45e-08                     
               Excited State   S21:      0.63498655 a.u.     17.27886 eV    Cross-section    2.00e-10                     
               Excited State   S22:      0.64402344 a.u.     17.52477 eV    Cross-section    1.75e-06                     
               Excited State   S23:      0.64619582 a.u.     17.58388 eV    Cross-section    7.55e-08                     
               Excited State   S24:      0.64834114 a.u.     17.64226 eV    Cross-section    1.06e-10                     
               Excited State   S25:      0.68067851 a.u.     18.52221 eV    Cross-section    2.89e-08                     
                                                                                                                          
                                                                                                                          

Note how the CVS approximation yields a core-excited energy closer to the full-matrix one than the RSA did.

Comparison

Conceptually, in the 2S approach, via the use of the core-valence separation (CVS) approximation, the coupling between the core- and valence-excited states are neglected in the calculation of the core-excited states, impacting both energies and properties. However, this approach is motivated by that the CVS approximation has been thoroughly investigated and found to perturb these only slightly, supported by the small couplings between valence and core orbitals. The RSA, captures some of this coupling---at the expense of neglecting the couplings to parts of the virtual-state manifold instead, this can make the error somewhat harder to predict.

Source
<Figure size 1000x600 with 1 Axes>

The full diagonalization approach serves as the reference in this case. One can see how the two-shot performs slightly better than the RSA---for this particular choice of orbital space.

Targeting dipole-forbidden excited states with RIXS

As a second-order process, RIXS is not constrained by the usual one-photon selection rules. This is because of the indirect path to the final state ∣f⟩\rvert f \rangle. Even though the transition from ∣g⟩→∣f⟩\rvert g \rangle \rightarrow \rvert f \rangle might be dipole forbidden, transitioning to an intermediate core-excited state can open up channels to final states that are otherwise dark in the optical spectra. To see this more concretely, we can take a specific example from our computed water UV/Vis, and RIXS spectra. First, note that the transition to the second excited singlet state, ∣S2⟩\rvert S_2 \rangle, is dipole forbidden, that is

Source
S2: E = 9.67 eV, Oscillator strength = 0.000

This could have already been deduced by group theory, as the transition is essentially an excitation from HOMO →\rightarrow LUMO+1, with the respective orbitals transforming as the B1\text{B}_1 and B2\text{B}_2 irreps. The direct product is B1⊗B2=A2\text{B}_1 \otimes \text{B}_2 = \text{A}_2, and since none of the Cartesian components transform as A2_2 we can deduce that this transition is dipole-forbidden, as that means that B1⊗Γ(μ^)⊗B2\text{B}_1 \otimes \Gamma({\hat{\boldsymbol{\mu}}}) \otimes \text{B}_2 does not contain the totally symmetric irrep, A1\text{A}_1, for any component μ^ξ\hat{\mu}_\xi, ξ∈{x,y,z}\xi \in \{ x,y,z \}.

However, for the 1s oxygen orbital, belonging to the totally symmetric irrep, we can note that the 1s →\rightarrow to LUMO+1 transition is not forbidden---with the hole in the 1s orbital and electron in LUMO+1 comprising the second core-excited state. If the now core-excited state relaxes back via a transition from HOMO →\rightarrow 1s, the system winds up in the ∣S2⟩\rvert S_2 \rangle state. Via a similar analysis, we have, for the absorption step, B2⊗Γ(μ^)⊗A1\text{B}_2 \otimes \Gamma(\hat{\boldsymbol{\mu}}) \otimes \text{A}_1 (corresponding to ⟨n∣μ^∣g⟩\langle n \rvert \hat{\boldsymbol{\mu}} \rvert g \rangle) we see that Γ(μ^)\Gamma(\hat{\boldsymbol{\mu}}) must belong to B2\text{B}_2, that is, polarization along yy, i.e., μ^y\hat{\mu}_y. For the emission step, we instead have the HOMO (belonging to B1\text{B}_1) and this leads to required polarization along xx. If this is correct, we should have non-zero amplitudes of Ffgxy(ωng)\mathcal{F}^{xy}_{fg}(\omega_{ng}), for ∣f⟩=∣S2⟩\rvert f \rangle = \rvert S_2 \rangle on the second core-excited resonance frequency, here indicated by ωng\omega_{ng} (n=2n=2). The frequency dependence means one can target specific core-excited states and deduce symmetries and polarization dependence of the states involved. This has further implications: for instance, for solvated molecules it might be that specific absorption lines in a regular UV/Vis spectrum can be heavily mixed by absorption lines of the solvent. With RIXS one can still probe the solute, specifically, by going the indirect path to that same valence spectrum by tuning the frequency to a specific core-excitation instead---allowing for a “purification” of the spectrum (the chemical shift of the core orbitals further allows for sensitivity to the local chemical environment as well).

Source
F_fg = 
[[ 0.      +0.j     -0.3024-307.6483j -0.      -0.j    ]
 [-0.1055  +0.0062j -0.      -0.j      0.      -0.j    ]
 [ 0.      -0.j     -0.      -0.j     -0.      -0.j    ]]

F^xy: -0.30-307.65j

Indeed, only the Ffgxy(ωng)\mathcal{F}^{xy}_{fg}(\omega_{ng})-component has substantial amplitude! Non-resonant scattering contributes to the permuted entry Ffgyx(ωng)\mathcal{F}^{yx}_{fg}(\omega_{ng}), but the resonant contribution dominates. However, such a clean separation is not what is generally observed experimentally. Among the difficulties with these experiments and their comparison to theory is that samples in the gas- or liquid phase are randomly oriented, and additionally, that the emitted photon polarization is seldom experimentally measured. Hence, one typically averages over molecular orientations as well as over outgoing photon polarization, yielding a cross-section that depends on the angle θ\theta---between the incoming photon polarization vector and outgoing photon propagation vector, ε⋅k′/∥k′∥=cos⁡θ\boldsymbol{\varepsilon} \cdot \boldsymbol{k'}/ \left\lVert \boldsymbol{k}' \right\rVert = \cos{\theta}. This gives the averaged cross-section, for a particular final state ∣f⟩\ket{f}

σf←g(ω,θ)∝ω′ω∑ξ,ξ′[(2−12sin⁡2(θ))Ffgξξ′(Ffgξξ′)∗+(34sin⁡2(θ)−12)(Ffgξξ′(Ffgξ′ξ)∗+Ffgξξ(Ffgξ′ξ′)∗)]\sigma_{f \leftarrow g}(\omega, \theta) \propto \frac{\omega'}{\omega} \sum_{\xi, \xi'} \Bigg[ \Bigg( 2-\frac{1}{2}\sin^2(\theta) \Bigg) \mathcal{F}_{fg}^{\xi \xi'} \left(\mathcal{F}_{fg}^{\xi \xi'} \right)^* + \Bigg( \frac{3}{4}\sin^2(\theta)-\frac{1}{2} \Bigg) \Bigg (\mathcal{F}_{fg}^{\xi \xi'} \left( \mathcal{F}_{fg}^{\xi' \xi} \right)^* +\mathcal{F}_{fg}^{\xi \xi} \left( \mathcal{F}_{fg}^{\xi' \xi'} \right)^* \Bigg) \Bigg]

We can now plot the spectra to get a better view of what we have discussed so far

Source
<Figure size 1000x600 with 1 Axes>

We can observe the second excited state ∣S2⟩\ket{S_2} when the incoming photon energy is tuned to the second core-excited (CE) state resonance, in contrast to the valence- and RIXS (at the first core-excited resonance) spectra for which ∣S2⟩\ket{S_2} is dark.

RIXS map

The RIXS spectra we have looked at so far has been for one, or two, particular incoming photon frequencies. A common way of representing RIXS is by plotting the so-called RIXS-map, σθ(ω,ω′)\sigma_\theta(\omega, \omega'). The previous spectra, the ones at the first- and second CE resonances, represent one-dimensional slices of this map, that is, the map describes spectra for a range of possible incoming frequencies. We can construct such a map, starting with giving a range of input frequencies to the RIXS driver like in the following, where we take as range the values between our two CE resonances (and some below and above).

Source
<Figure size 1000x600 with 2 Axes>

The dashed lines indicate the 1-dimensional cuts we saw in the previous figure.

Effect of intermediate state lifetime

As a final curiosity we will have a short look at the role played by the intermediate state lifetime Γ\Gamma, in relation to the effect of detuning, i.e., of going off resonance. Detuning is usually written Ωng=∣ωng−ω∣\Omega_{ng} = \rvert \omega_{ng} - \omega \rvert and is related to the notion of the scattering duration. As we saw initially, Γ\Gamma sets the effective width of the Lorentzians fo the cross-section contributions. This is closely related to interference between scattering channels. Note that the cross-section can be written

σf←g∝∣Ffg∣2=∑n∣An∣2+∑n<mAnAm∗+An∗Am\sigma_{f \leftarrow g} \propto \rvert \mathcal{F}_{fg} \rvert^2 = \sum_n \rvert A_n \rvert^2 + \sum_{n < m} A_n A_m^* + A_n^* A_m

with the partial channel An(ω)=ℏ−1ωnfωng⟨f∣μ^′∣n⟩[ω−ωng+iΓn/(2ℏ)]−1⟨n∣μ^∣g⟩A_n(\omega) = \hbar^{-1} \omega_{nf} \omega_{ng} \bra{f} \boldsymbol{\hat{\mu}'} \ket{n} [\omega - \omega_{ng} + i\Gamma_n/(2 \hbar)]^{-1} \bra{n} \boldsymbol{\hat{\mu}} \ket{g}. Interference is contained in the off-diagonal terms. These can be important to include, depending on the detuning and core-hole lifetime. Discarding the off-diagonal terms serves as a valid approximation provided the intermediate states contributing non-negligibly to a given final state are well-separated, that is: ∣ωnm∣>(Γ/(2ℏ))2+Ω2{\rvert\omega_{nm}\rvert > \sqrt{(\Gamma/(2\hbar))^2 + \Omega^2}}, with ωnm\omega_{nm} the energy difference between adjacent core-excited states. For light elements, in particular, at or near resonance, the condition often holds, where the cross-terms AnAm∗A_n A_m^* become negligible in comparison to the diagonal, as each Lorentzian is effectively isolated. Neglecting the interference means we assume that coherence is lost and that the process can be described as absorption + emission---not as a coherent scattering process---so the amplitudes factorize.

We will not go into too much more detail here but we can have a look at what happens when Γ\Gamma becomes very (unphysically) large---on the order of ωnm\omega_{nm}---for three frequencies, two on resonance and the final one the average of the two.

Output
Fetching long content....
Source
<Figure size 1200x600 with 2 Axes>

One can clearly see that for the case of the large Γ\Gamma the spectra start mixing---approaching a common average spectral shape---even the detuned spectrum has gained considerable intensity, or rather the other two have lost intensity. In such a situation interference cannot be neglected, as the spectrum departs from a simple sum of isolated Lorentzians.

References
  1. Norman, P., & Dreuw, A. (2018). Simulating X-ray Spectroscopies and Calculating Core-Excited States of Molecules. Chem. Rev., 118, 7208–7248. 10.1021/acs.chemrev.8b00156
  2. Vidal, M. L., Krylov, A. I., & Coriani, S. (2019). Dyson orbitals within the fc-CVS-EOM-CCSD framework: theory and application to X-ray photoelectron spectroscopy of ground and excited states. Phys. Chem. Chem. Phys., 22, 2693. 10.1039/C9CP03695D
  3. Lykos, P. G., & Schmeising, H. N. (1961). Maximum Overlap Atomic and Molecular Orbitals. J. Phys. Chem., 35, 288. 10.1063/1.1731901
  4. King, H. F., Stanton, R. E., Kim, H., Wyatt, R. E., & Parr, R. G. (1967). Corresponding Orbitals and the Nonorthogonality Problem in Molecular Quantum Mechanics. J. Chem. Phys., 47, 1936. 10.1063/1.1712221
  5. Bagus, P. S., & Schaefer, H. F. (1971). Direct Near-Hartree–Fock Calculations of the 1s Hole States of NO+. J. Chem. Phys., 55, 1474. 10.1063/1.1676248
  6. Gilbert, A. T. B., Besley, N. A., & Gill, P. M. W. (2008). Self-Consistent Field Calculations of Excited States Using the Maximum Overlap Method (MOM). J. Phys. Chem. A, 112, 13164–13171. 10.1021/jp801738f
  7. Travnikova, O., Børve, K. J., Patanen, M., Söderström, J., Miron, C., Sæthre, L. J., Mårtensson, N., & Svensson, S. (2012). The ESCA molecule—Historical remarks and new results. Journal of Electron Spectroscopy and Related Phenomena, 185(8–9), 191–197. 10.1016/j.elspec.2012.05.009
  8. Wenzel, J., Holzer, A., Wormit, M., & Dreuw, A. (2015). Analysis and Comparison of CVS-ADC Approaches up to Third Order for the Calculation of Core-Excited States. J. Chem. Phys., 142, 214104. 10.1063/1.4921841
  9. Besley, N. A., & Asmuruf, F. A. (2010). Time-Dependent Density Functional Theory Calculations of the Spectroscopy of Core Electrons. Phys. Chem. Chem. Phys., 12, 12024–12039. 10.1039/C002207A
  10. Cederbaum, L. S., Domcke, W., & Schirmer, J. (1980). Many-body theory of core holes. Phys. Rev. A, 22, 206. 10.1103/PhysRevA.22.206
  11. Vidal, M. L., Feng, X., Epifanovsky, E., Krylov, A. I., & Coriani, S. (2019). New and efficient equation-of-motion coupled-cluster framework for core-excited and core-ionized states. J. Chem. Theory Comput., 15, 3117–3133. 10.1021/acs.jctc.9b00039
  12. Lopata, K., van Kuiken, B. E., Khalil, M., & Govind, N. (2012). Linear-Response and Real-Time Time-Dependent Density Functional Theory Studies of Core-Level Near-Edge X-Ray Absorption. J. Chem. Theory Comput., 8, 3284–3292. 10.1021/ct3005613
  13. Ekström, U., Norman, P., Carravetta, V., & \AAgren, H. (2006). Polarization Propagator for X-Ray Spectra. Phys. Rev. Lett., 97(143001). 10.1103/PhysRevLett.97.143001
  14. Herbst, M. F., & Fransson, T. (2020). Quantifying the error of the core-valence separation approximation. J. Chem. Phys., 153, 054114. 10.1063/5.0013538
  15. Rehn, D. R., Rinkevicius, Z., Herbst, M., Li, M., X. Scheurer, Brand, M., Dempwolff, A. L., Brumboiu, I. E., Fransson, T., Dreuw, A., & Norman, P. (2021). Gator: a Python-driven program for spectroscopy simulations using correlated wave functions. WIREs Comput. Mol. Sci., e1528. 10.1002/wcms.1528