I am a grad student looking to simulate several XAS/XES and potentially RIXS spectra for some strongly correlated metal-oxides. The materials in question will likely require solving the Bethe-Salpeter equation in order to fully describe the many body effects.

I was thinking to use OCEAN() to do this but the installation on the computing cluster I have been using is having a few problems with regards to running scripts that I just don't seem to be able to get over, such as not running DFT calculations in ABINIT in parallel, despite the flag being given for mpirun -n N parallelism.

On the other hand, a friend of mine has used Quantum ESPRESSO and we are both somewhat familiar with it. Can someone give me advice as to whether QE's XSPECTRA.x or Ocean would be better for getting into XAS/XES calculations? I am willing to learn either one, but I would appreciate using the one with the easiest learning curve.

  • 1
    $\begingroup$ +1. Welcome to our new community and thank you so much for contributing your question here! We hope to see much more of you in the future !!! Sorry it took me a long time to welcome you! $\endgroup$ Aug 14, 2021 at 17:39

2 Answers 2


The computational chemistry software ORCA (requires the registration of an account, although both registration and the software itself is free for academic users; for a tutorial that is viewable without registration, see https://www.orcasoftware.de/tutorials_orca/index.html). In ORCA one can compute XAS/XES/RIXS at the TDDFT, DFT/ROCIS (a spin-adapted, empirically scaled TDDFT/TDA method, suitable for Mott insulators) and CASCI/NEVPT2 (a multireference method with perturbative second-order dynamical correlation) levels. Some additional highlights are the inclusion of scalar relativistic (ZORA or DKH2) and spin-orbit coupling effects, the inclusion of transition quadrupole moment contributions to the oscillator strengths (thus dipole-forbidden but quadrupole-allowed transitions are correctly predicted as bright), and the possibility of computing circular dichroism and even magnetic circular dichroism spectra.

Note that ORCA is a molecular code, not a periodic code. This means that you have to use a cluster model in the computations, although as X-ray spectra are rather local properties, you can usually get away with clusters of modest size (well within 100 atoms, for example). The immediate environment of the cluster is treated by an embedding potential, while the distant part of the environment is treated by point charges. The non-periodicity of the system also means that some functionalities that are difficult to access with periodic codes become very easy to do, for example a full treatment of long-range HF exchange is well possible, and multireference treatments of the metal center are also completely doable.

Another possible option is the BDF (Beijing Density Functional) software package. BDF supports the calculation of XAS/XES spectra at the X-TDDFT level of theory, although it does not support RIXS yet. Advantages of BDF in this aspect include: (1) while X-TDDFT is also a spin-adapted TDDFT method, it is cheaper than DFT/ROCIS; (2) the scalar relativistic effects are treated at the sf-X2C level; (3) the core-valence excitations are allowed to mix with the valence-valence excitations; (4) thanks to the use of the iVI method (see my another answer on this site), the user can request the program to calculate all excited states within a given excitation energy range, and only those states that are within that range, without knowing how many excited states there are in that range; and (5) the boundary of the cluster and the environment is treated using the projected hybrid orbital (PHO) method, which is usually more accurate than the embedding potential method used by ORCA when the cluster-environment interaction is mostly covalent (conversely ORCA's treatment is more accurate when the interaction is mostly ionic). Therefore, BDF may be useful when you cannot afford DFT/ROCIS, when ZORA and DKH2 are not accurate enough for your system, or when your material has a high covalent character.


Adding to wzkchem5's answer, you might also consider using Quanty. The program is a many body script language based on Lua that allows you to calculate XAS, NIXS and RIXS spectra, among other things. In Quanty there are different levels of theory one can use, ranging from crystal field theory over ligand field theory to a post DFT-treatment. Citing from the website:

It can be used in quantum chemistry as post Hartree-Fock or in one of the LDA++ schemes. (self consistent field, configuration interaction, coupled cluster, restricted active space, …)

The notation is based on second quantization, so custom operators can be implemented in a way that is close to the way one would write them down (for more information you can check the documentation).

On this example page you can find calculations of the XAS and RIXS spectra of NiO, so the code is suitable for correlated materials as well. Built into Quanty are functions that allow you to interface with the DFT code FPLO (see the program of this workshop for presentations and worked out examples).

In my experience, the program has a nice learning curve and the installation is quite easy as well. Using it on a computational cluster works rather well. After registration, the code is free to use and download (here you can see how to cite its use).


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .