Downloads

How to reach us

Development

Purpose: In this tutorial we consider the X-ray absorption near-edge structure (XANES) spectra of core-states by solving the Bethe-Salpeter equation (BSE). The general way to set up the BSE computations for XANES in exciting is shown, together with examples for the Li-K edge in lithium fluoride and N-K edge in cubic boron nitride. The 1s state corresponds to the K edge in spectroscopic notation.

Introduction

In order to solve the BSE, we first need eigenenergies and wave functions from a ground-state calculation as input. In the present methodology the core-edge of interest must be in the valence or otherwise set as a local orbital, and not core state.

If the corresponding core-edge state is not in the valence and not already set as a local orbital, it is possible to do so by hand. This procedure will be shown explicitly in the example for the N-K edge in cubic BN further down below.

Observe that for production results the X-ray absorption spectra need to be converged regarding several parameters such as the k-mesh, see Excited States From TDDFT.

Notice that:

The EXCITINGROOT variable has to be replaced in the subsequent input files by its actual value (the path itself, e.g., /home/user/exciting).

The Li-K edge in lithium fluoride

Read through the text below in order to complete 'Exercise 1'

Let us start with the Li-K edge in LiF. The Li 1s state is quite shallow in energy and it is not put into the core by default. This can be directly seen by checking the Li atom species file EXCITINGROOT/species/Li.xml

nstlbsemat and nstlbse in <BSE> give the band ranges for the computation of the matrix elements and for diagonalizing the Hamiltionian matrix, respectively.

Here the band ranges are set to "1 11 15", where the first part, 1 1, refers to the core-edge state as shown, e.g., in the ground-state output EIGVAL.OUT and the second part, 1 15, gives the conduction states counted from the Fermi level.

bsetype="singlet" in <BSE> corresponds to including all terms in the effective Hamiltonian (diagonal, direct and exchange).bsetype="RPA" gives the random phase approximation, which does not include the direct term and, therefore, does not give rise to bound core-exciton states.

Important and useful settings for input.xml

In order to not recalculate the ground-state

<groundstatedo="skip" ...

To avoid recalculating the screening and matrix elements, set within <xs>

<plan><doonlytask="bse"/></plan>

This is useful for instance when computing a different bsetype afterwards, such as bsetype="RPA", or when changing the band ranges for the Hamiltonian diagonalization, e.g., nstlbse="1 1 1 25". Note that the present way of performing this setup might change in future versions of the code.

XANES spectra and core-exciton output from <xs>

INFOXS.OUT shows the general messages for the calculation procedure.

The absorption spectra is given in EPSILON_BSEsinglet_SCRfull_OC11.OUT, with a Lorentzian broadening broad defined in <energywindow> in <xs>.
The energy and oscillation strength of the excited states are listed in EXCITON_BSEsinglet_SCRfull_OC11.OUT, where negative energies correspond to bound core-excitons.

Now we will make a separate ground-state calculation, including the local orbital.

Copy the input.xml file and the EXCITINGROOT/species/N_APWloLegacy.xml to a new working directory. It's useful to change the name of the species file to, e.g., N_APWloLegacy_XANES.xml to not confuse it with others.

In the new species file N_APWloLegacy_XANES.xml, remove the core-edge state from the core by setting core="true" to "false"

...
<atomicStaten="1"l="0"kappa="1"occ="2.00000"core="false"/>
...

Insert a local orbital by adding

...
<!-- Here below a local orbital is added for 1s --><lorbl="0"><wfmatchingOrder="0"trialEnergy="0.1500"searchE="false"/><wfmatchingOrder="1"trialEnergy="0.1500"searchE="false"/><wfmatchingOrder="0"trialEnergy="-13.5000"searchE="true"/></lorb>
...

The most important is to set a "good enough" trialEnergy in the last row, it is usually a bit lower than the result for the core-state. Here -13.5 Hartree is selected (compare with -13.31776506 Hartree from above).

Do not forget to edit speciespath in the new input.xml.

If calculations with a new local orbital does not converge, it might be necessary to set a different trialEnergy. Also, it might be necessary to explicitly set the parameters deband (increase default value) and epsband (decrease, if needed). See Input Reference for details.

After a successful ground-state calculation including the new local orbital, it is time for considering the XANES computation. An example is given below for bsetype="singlet"