You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This code determines resonant inelastic x-ray scattering (RIXS) spectra for
solids, starting from Bethe-Salpeter Equation (BSE) calculations in an
all-electron many-body framework.
In RIXS, an x-ray photon with energy $\omega_1$ is absorbed, which leads to the
excitation of a core electron to a conduction band. Coherently, an x-ray photon
with energy $\omega_2$ is emitted as a valence electron fills the core hole. The
final state of the scattering process contains a valence hole and an excited
electron in a conduction band. The energy loss $\omega_2-\omega_1$ is
transferred to the electronic system. In RIXS experiments, the
double-differential cross section (DDCS) $\mathrm{d}^2 \sigma/\mathrm{d}\Omega_2 \mathrm{d}\omega_2$ is measured, which describes the rate of scattering for
photons with final energy $[\omega_2,\omega_2+\mathrm{d}\omega_2]$ in a solid
angle range $[\Omega_2,\Omega_2+\mathrm{d}\Omega_2]$.
Following the derivation presented in Phys. Rev. 2, 042003(R) (2020), the RIXS
double-differential cross section (DDCS) is defined as
where $E^{\lambda_o}$ are the valence excitation energies of the system, and
$\alpha$ is the fine-structure constant. The DDCS is an explicit function of the
energy loss $\omega_2-\omega_1$, while the oscillator strength
$t^{(3)}_{\lambda_o}(\omega_1)$ depends solely on the excitation energy
$\omega_1$. The oscillator strenght is defined as
where $X_{c \mu \mathbf{k}, \lambda_c}$ is the BSE eigenstate corresponding to
the excitation energy $E^{\lambda_c}$, $\mathbf{e}_1$ is the polarization vector
of the incoming photon, and $\mathbf{P}_{c \mu \mathbf{k}}=\langle c \mathbf{k} | \hat{\mathbf{p}} | \mu \mathbf{k} \rangle$ are the momentum matrix elements.
The excitation pathway$t^{(2)}_{\lambda_o,\lambda_c}$ is defined as\
$$t^{(2)}_{\lambda_o,\lambda_c}=\sum_{c v \mathbf{k}} \sum_{\mu} X_{cv \mathbf{k},
\lambda_o}\left[ \mathbf{e}_2^* \cdot \mathbf{P}_{\mu v \mathbf{k}} \right]
\left[ X_{c \mu \mathbf{k}, \lambda_c} \right]^*$$
Code Usage
To perform calculations with BRIXS, you first need to calculate two BSE
calculations to obtain the core excitation eigenstates $X_{c \mu \mathbf{k}, \lambda_c}$ and the valence excitation ones $X_{c v \mathbf{k}, \lambda_o}$.
Both calculations have to be performed on the same $\mathbf{k}$-grid, but the
number of empty states in the calculations can differ.
NOTE: Here, we are interested in the eigenstates of the polarizability. In a
typical BSE calculation, one is only interested in the dielectric function. As
such, the eigenvectors from these calculations are typically obtained from a
reduced BSE Hamiltonian, using the adjusted Coulomb potential $\bar{v}$
[compare Eqs. 6.57 and 6.58 in Christian Vorwerk's PhD thesis and the further
discussion there]. Make sure that you calculate the eigenstates of the actual
BSE Hamiltonian when you create eigenstates for the RIXS spectra.
To use the BRIXS code, first perform a valence- and core-level BSE
calculation with the exciting code. To calculate the matrix elements of the
polarizability, add the following part to the input.xml
chibar="true"
chibar0comp="1"
The first attribute triggers the calculation of the full polarizability at
vanishing momentum transfer, while the second one defines for which the BSE is
solved. The additional dependence occurs since we calculate the analytical limit
for the exchange interaction, i.e.
where the first term in the sum is needed to tame the divergence of the Coulomb
potential as $\lim_{q \rightarrow 0} v_0(\mathbf{q}) \propto 1/\mathbf{q}^2$,
since
As we can see, this matrix element depends on the direction $\mathbf{e}_q$ of
the momentum transfer as it goes to zero. Therefore, the BSE calculation depends
on the component of the dielectric tensor that one wants to calculate.
NOTE: When one calculates the dielectric function as described above, only
the component of the dielectric tensor specified by chibar0comp will agree
with the corresponding component obtained from a calculation with
chibar="false". The other components will differ and will be incorrect.
Once the BSE calculations are performed, the HDF5 files optical_output.h5,
core_output.h5, and pmat.h5 have to be gathered in a directory together with
the input file input.cfg. Then, the execution of rixs-pathway creates the
file data.h5. Once this file is present, the execution of rixs-oscstr
creates the final output in the file rixs.h5. A more detailed tutorial is
provided in the file TUTORIAL.md