Disordered NaBiS2 with atomic/orbital projections & DOS plotting#
The files needed for reproducing this example are provided in the
Note that the
PROCAR.gz file will need to be decompressed with
gzip -d PROCAR.gz if recalculating
and reproducing these example plots.
In this example, we unfold the bands from a 80-atom special-quasirandom (SQS) supercell of NaBiS2, where the Na and Bi cations are quasi-randomly distributed, in order to simulate randomised cation disorder in the material.
These results were published in Y. T. Huang & S. R. Kavanagh et al. 2022 , and an early version of
used for the similar AgBiS\(_2\) in Y. Wang & S. R. Kavanagh et al. 2022 , with these plots demonstrating the key
differences in electronic structure and thus photovoltaic performance between these two materials.
Standard Unfolded Band Structure#
We have previously calculated the
easyunfold.json file from the calculation using
easyunfold calculate WAVECAR.
easyunfold unfold plot --intensity 2, we obtain the following unfolded band structure:
Visualisation Customisation: Colour map and intensity scaling#
The band structure above is nice, but we can make the plot a little clearer by adjusting some of the parameters like
the intensity scaling (via
--intensity) and the colour map (via
--cmap). Below we set
--intensity 2.5 to
increase the colourmap intensity, and try
bone_r from left to right below:
easyunfold unfold plot --intensity 2.5 --cmap "BuPu" easyunfold unfold plot --intensity 2.5 --cmap "viridis" easyunfold unfold plot --intensity 2.5 --cmap "bone_r"
Unfolded Band Structure with Density of States (DOS)#
We can plot the electronic density of states (DOS) alongside the unfolded band structure using the
--dos option to
vasprun.xml(.gz) file from our supercell calculation:
easyunfold unfold plot --intensity 2 --dos vasprun.xml.gz --zero-line --dos-label DOS --gaussian 0.1
Here we’ve used some other plot options to customise the DOS plot; see the help message with
easyunfold unfold plot -h for more info on this.
For unfolded band structures calculated with (semi-)local DFT (LDA/GGA), you should not use the
from the band structure calculation (which uses a non-uniform k-point mesh, thus giving an unrepresentative DOS
output), but rather the preceding self-consistent calculation (used to obtain the
CHGCAR for the LDA/GGA DOS
calculation), or a separate DOS calculation.
To use the DOS plotting functionality of
sumo package must be installed. This is currently an
optional dependency for
easyunfold (to avoid strict requirements and
pymatgen dependencies), but can be installed
pip install sumo.
Atom-Projected Unfolded Band Structure#
We can also plot the unfolded band structure with atomic projections, which is useful for understanding the electronic
structure of the material. In this case, we are curious as to which atoms are contributing to the band edges, and so
the atomic projections will be useful. For this, we need the
PROCAR output from VASP with the atomic and orbital
projection information, and so
LORBIT should be set to
14 in the
INCAR for the supercell
When plotting the unfolded band, the
plot-projections subcommand is used with the
--procar <PROCAR> and
easyunfold unfold plot-projections --atoms="Na,Bi,S" --intensity 3 --combined
If the k-points have been split into multiple calculations (e.g. hybrid DFT band structures), the
should be passed multiple times to specify the path to each split
PROCAR file (i.e.
--procar calc1/PROCAR --procar cal2/PROCAR ...).
From this plot, we can see that sulfur anions dominate the valence band, while bismuth cations dominate the conduction band, with minimal contributions from the sodium cations as expected.
The atomic projections are not stored in the
easyunfold.json data file, so the
PROCAR file should be
kept for replotting in the future.
While the main conclusions of S dominating the valence band and Bi dominating the conduction band are clear from the plot above, the high intensity of the S projections in the valence band makes the Bi contributions in the conduction band more faint and less apparent.
So, we can create separated plots for each atom type to make their individual contributions more clear, by omitting the
easyunfold unfold plot-projections --atoms="Na,Bi,S" --cmap="bone_r" --intensity 2
An alternative option here is also to just plot only the contributions of
Bi cations, with no S projections:
easyunfold unfold plot-projections --atoms="Na,Bi" --intensity 3 --combined
While this plot isn’t the most aesthetic, it clearly shows that Bi (green) contributes to both the conduction band and (less so) valence band states, but Na (red) doesn’t contribute significantly at or near the band edges (it’s a spectator ion!).
Atom-projected Unfolded Band Structure with DOS#
We can also combine the atom projections with the DOS plotting, using the
--dos option as before:
easyunfold unfold plot-projections --atoms "Na,Bi,S" --intensity 3 --combined --dos vasprun.xml.gz --zero-line \ --dos-label "DOS" --gaussian 0.1 --no-total --scale 2
The orbital contributions of elements in the DOS plot are automatically coloured to match that of the atomic
projections in the unfolded band structure plot, and these colours can be changed with the
--colours option (as shown
in the MgO example).
Unfolded Band Structure with Specific Atom Selection#
In certain cases, we may want to project the contributions of specific atoms to the unfolded band structure, rather
than all atoms of a certain element. For example, in this example case of NaBiS\(_2\), we see that a flat localised state
is forming within the ‘bulk’ band gap. We can show that this state is contributed by only one or two atoms in the
supercell, using the
easyunfold unfold plot-projections -unfold plot-projections --atoms-idx="1-55,57-65,67-80|56,66" --intensity 2
Here we can see that this in-gap localised state is dominated by only two (sulfur) atoms in the supercell (atoms
66), which correspond to Na-rich pockets in NaBiS2, as discussed in Huang & Kavanagh et al. .
--atoms-idx option is used to specify the atoms to be projected onto the unfolded band structure. This takes a
string of the form
f are integers corresponding to the atom indices
in the VASP structure file (i.e.
CONTCAR, corresponding to the
PROCAR being used to obtain the
projections). Different groups are separated by
- can be used to define the range for each projected atom
type. A comma-separated list can also be used instead of ranges with hyphens. Note that 1-based indexing is used for
atoms, matching the convention in VASP, which is then converted to zero-based indexing internally in python.
Unfolded Band Structure with Orbital Projections#
If we want to see the contributions of specific orbitals to the unfolded band structure, we can use the
option. This takes a string of the form
f are the orbitals we want
to project onto the unfolded band structure.
For example, if we want to see the contributions of the Bi \(s\), \(p\) and S \(s\) orbitals to the unfolded band structure, we can use the following command:
easyunfold unfold plot-projections --atoms "Bi,Bi,S" --orbitals="s|p|s" --intensity 3 --combined \ --dos vasprun.xml.gz --zero-line --dos-label "DOS" --gaussian 0.1 --no-total --scale 5
Here we have separated out the contributions of Bi \(s\) orbitals (which have some weak anti-bonding contributions to the upper ‘bulk’ VBM as expected, due to the occupied Bi lone-pair; see refs  and ) and \(p\) orbitals (which contribute to the conduction band and lower valence band). We have also shown only the \(s\) orbital contributions of sulfur, which we can see have minimal contributions to the electronic structure near the band gap.
\(lm\)-decomposed Orbital Projections#
We can also use the
--orbitals option to project onto specific \(lm\)-decomposed orbitals, and/or use the
--dos-orbitals option to split the DOS plot into \(lm\)-decomposed orbital contributions. For example, if we want to
see the contributions of the Bi and S \(p_x\), \(p_y\) and \(p_z\) orbitals to the unfolded band structure, we can use the
easyunfold unfold plot-projections --atoms "Na,Bi,S" --orbitals="all|px,py,pz|px,py,pz" --intensity 3 --combined \ --dos vasprun.xml.gz --zero-line --dos-label "DOS" --gaussian 0.1 --no-total --scale 6
Here, the \(p_x\), \(p_y\) and \(p_z\) orbitals do not differ significantly in their contributions to the electronic structure, due to the cubic symmetry of the NaBiS2 crystal structure. However, in other cases, such as for the \(d\) orbitals of transition metals in octahedral/tetrahedral environments, we would expect to see significant differences in the contributions of different \(lm\)-decomposed orbitals to the electronic structure.
There are many customisation options available for the plotting functions in
easyunfold plot -h or
easyunfold unfold plot-projections -h for more details!