RIXS calculations for an Anderson Impurity Model

RIXS calculations for an Anderson Impurity Model#

An Anderson Impurity Model (AIM) refers to a Hamiltonian with a set of correlated orbitals, often called the impurity or metal states, that hybridize with a set of uncorrelated orbitals, often called the ligands or bath states.

This example examines RIXS simulations for NiPS₃ based on Ref. [1]. The code used can be seen in helper_function.py. A more detailed description of AIMs in EDRIXS is available here.

AIM

The function we will run can be examined here. In this example, we will focus on some properties of the model.

import numpy as np
import matplotlib.pyplot as plt
from helper_function import make_rixs

%matplotlib inline

Original model#

ominc, eloss, rixs, impurity_occupation = make_rixs()
fig, ax = plt.subplots(figsize=(3, 4))
art = ax.pcolormesh(ominc, eloss, rixs.sum(-1).T, cmap='terrain', shading='gouraud',
                   vmin=0, vmax=1.5)
plt.colorbar(art, ax=ax, orientation='horizontal')
ax.set_xlabel('Incident energy (eV)')
ax.set_ylabel('Energy loss (eV)')
ax.set_title(f"{impurity_occupation:.1f} electrons on Ni")
plt.tight_layout()
plt.show()

Hide code cell output

../../_images/bcb0d6483f723c05c5c54418531abe2e27a30531f99fe2659e2f9be110c60765.png

Magnetic field behavior#

What is the spin of the ground state? And what will happen when a magnetic field is applied?

ominc, eloss, rixs, impurity_occupation = make_rixs(ext_B=np.array([0.1, 0, 0]))
fig, ax = plt.subplots(figsize=(3, 4))
art = ax.pcolormesh(ominc, eloss, rixs.sum(-1).T, cmap='terrain', shading='gouraud',
                   vmin=0, vmax=0.5)
plt.colorbar(art, ax=ax, orientation='horizontal')
ax.set_xlabel('Incident energy (eV)')
ax.set_ylabel('Energy loss (eV)')
ax.set_title(f"{impurity_occupation:.1f} electrons on Ni")
ax.set_ylim(-0.1, 0.5)
plt.tight_layout()
plt.show()

Hide code cell output

../../_images/16cb40b18f6c91ab4b0d40e2db65f0b9706d828ed170114bf7e90a82381398de.png

Charge-transfer energy behavior#

What happens to the charge on Ni and the spin-flip transition energy when the charge transfer energy is made very large?

ominc, eloss, rixs, impurity_occupation = make_rixs(ext_B=np.array([0.1, 0, 0]),
                                                    Delta=10, c_level=-696)
fig, ax = plt.subplots(figsize=(3, 4))
art = ax.pcolormesh(ominc, eloss, rixs.sum(-1).T, cmap='terrain', shading='gouraud',
                   vmin=0, vmax=0.5)
plt.colorbar(art, ax=ax, orientation='horizontal')
ax.set_xlabel('Incident energy (eV)')
ax.set_ylabel('Energy loss (eV)')
ax.set_title(f"{impurity_occupation:.1f} electrons on Ni")
ax.set_ylim(-0.1, 0.5)
plt.tight_layout()
plt.show()

Hide code cell output

../../_images/409960e0120495e56054f87cd1911aed1494981ff01adf8ea3b4b3e4d3ff3f2d.png