4.9. SIC calculationsΒΆ

This example is about self-interaction correction (SIC) calculations using different sets of orbitals.


from eminus import Atoms, SCF
from eminus.energies import get_Esic
from eminus.orbitals import FLO

Start with a DFT calculation for neon including a SIC calculation

atoms = Atoms("Be", [0, 0, 0], ecut=10)
scf = SCF(atoms, sic=True)
scf.run(cgform=3)

Generate Kohn-Sham and Fermi-Loewdin orbitals

flo = FLO(scf)

Print the self-interaction energy from the SCF object

print(f"\nKSO-SIC energy = {scf.energies.Esic} Eh")

The quality of the FLO-SIC energy will vary with the FOD guess

The one-shot FLO-SIC energy should be lower than the KSO-SIC one

esic = get_Esic(scf, atoms.J(flo))
print(f"FLO-SIC energy = {esic} Eh")

The SIC energy will also be saved in the SCF object

print(f"\nAll energies:\n{scf.energies}")

Download 09_sic_calculations.py