Orbital projections: fat bands and bonding in MgO
A band structure says where the electron energies are; it does not say which atoms and orbitals the states belong to. Two SIESTA utilities add that:
fatprojects every state of a band structure onto a set of orbitals, so each band can be drawn thick where it has that character ("fat bands");mpropcomputes, from the states of the self-consistent run, the crystal-orbital overlap population (COOP) and Hamilton population (COHP) between two sets of orbitals: whether the electrons at each energy bond the atoms together or push them apart.
In this tutorial you run both on MgO with two workflows that SiestaStudio exports.
It takes about 25 minutes; each workflow runs in under a minute.
Before you start
- A SiestaStudio account and SIESTA 5 with its
fatandmproputilities. - Bands, DOS and PDOS explains the band structure of MgO; this tutorial adds who owns each band.
1. MgO with a band-structure path
Create a project MgO projections, open the studio, search the database for
MgO and import mp-1265. Run the wizard with Bulk Crystal,
Insulator, Band structure and Standard, and Apply All. In
DOS & Band Structure, click Open BZ Editor and Apply to write the
standard fcc path. Check Diagnostics, download the pseudopotentials and
save the calculation.
2. The fat-bands workflow
Open Workflow Builder and choose Fat bands (SCF → bands → fat). Its
three steps are an SCF run, a band-structure run along your path that also
writes the wave functions at every k-point (WFS.Write.For.Bands) and the
Hamiltonian and overlap (SaveHS), and fat. Without settings of its own,
fat projects on each element: one set for Mg, one for O. Edit in Studio
on the fat step opens the fat panel, where you can choose orbital sets such
as O_2p instead.
Choose Direct, 1 core, and Generate.

3. The COOP/COHP workflow
Click New workflow to clear the steps, and choose COOP/COHP and
projected DOS (SCF → mprop): an SCF run that writes its wave functions on
the k-point grid (COOP.Write) and mprop. Without curves of its own,
mprop computes the COOP and COHP between each pair of elements (Mg-Mg,
Mg-O, O-O) for atoms 0.1 to 3 Å apart (from 0.1 Å so that an atom's overlap
with itself is left out); the Mg-O bond in MgO is 2.10 Å.
Generate it the same way.

4. Run the workflows
Unzip each ZIP in its own folder and run, in each:
sh download_pseudos.sh
bash submit_workflow.sh
The fat-bands workflow writes 03_fat/siesta.Mg.EIGFAT and
03_fat/siesta.O.EIGFAT: every band at every k-point with its weight on Mg
or O. The COOP workflow writes, in 02_mprop, siesta.Mg-O.coop,
siesta.Mg-O.cohp (and the same for Mg-Mg and O-O) and the total DOS
siesta.alldos.
5. Fat bands: who owns each band
Open Analyze File and drop 03_fat/siesta.O.EIGFAT. The view reads
Fat bands for O — 22 bands × 252 k-points. A .EIGFAT file has neither
the Fermi level nor the names of the path points, so click Align with
.bands file and choose 02_bands/siesta.bands from the same workflow:
the path labels appear and Relative to E_F puts the Fermi level at 0.

Click Add orbital set (.EIGFAT) and choose siesta.Mg.EIGFAT, then set
E min to -10 and E max to 10 to look at the bands around the gap.

The marker size is the weight of each set on each state. At Γ:
- the three highest occupied bands, at the top of the valence band, have an O weight of 1.00: the valence band is O 2p;
- the lowest empty band, at the bottom of the conduction band, has 0.74 on Mg and 0.26 on O: mostly Mg 3s.
This is the ionic picture of MgO: Mg has given its two 3s electrons to O, which fills its 2p shell.
6. Bonding: COOP and COHP
Click Upload new file and open 02_mprop/siesta.Mg-O.coop. The view
says COOP: crystal-orbital overlap population. Click from .out next
to Set Fermi Energy (E_f) and choose 01_static/siesta.out (or type
-2.2629): the energies become E − E_F, and the plot shows −20 to +10 eV
(change E min and E max to look elsewhere).

COOP is positive where the electrons at that energy bond Mg and O, negative where they are antibonding. Below the Fermi level the Mg-O COOP is small and positive: near −19 eV (the O 2s band) and from −8 to −4 eV (the O 2p band). Above it, in the conduction band, it is negative. Integrated up to E_F it gives +0.83: on balance the occupied states bond, though weakly, as expected for an ionic solid, where the binding is mostly electrostatic.
Open siesta.Mg-O.cohp the same way. COHP weighs each state by the
Hamiltonian and, as mprop writes it, is negative for bonding states;
integrated to E_F it gives −1.11 (Ry): the same conclusion.

Each file has three columns: spin 1, spin 2 and their sum; without spin polarization the first two are equal.
7. Save the analysis
Click Save Analysis and choose the project.
What next
- Pictures of the charge and wave functions: the O 2p valence state and the Mg 3s conduction state as 3D pictures.
- Workflows at scale: one workflow over several structures, and convergence studies.