by Dmitrii Nabok & Caterina Cocchi for exciting neon
(Jupyter notebook by Mara Voiculescu & Martin Kuban)
Purpose: In this tutorial, it will be shown how you can use exciting
to calculate and visualize the Fermi surface of gold.
Read the following paragraphs before starting with the rest of this tutorial!
Before running any Jupyter tutorials, please refer to the 00_before_starting.md
document on how to correctly set up the environment. This only needs to be done once. After which, the venv can be (re)activated from exciting
's root directory:
source tools/excitingjupyter/venv/excitingvenv/bin/activate
As a first step, you may create a running directory for the notebook.
%%bash
mkdir -p run_tutorial_fermi_surface
A general input file for generating the Fermi surface of gold should look like this:
<input>
<title>Gold</title>
<structure speciespath="$EXCITINGROOT/species" autormt="true">
<crystal scale="7.707">
<basevect> 0.5 0.5 0.0 </basevect>
<basevect> 0.5 0.0 0.5 </basevect>
<basevect> 0.0 0.5 0.5 </basevect>
</crystal>
<species speciesfile="Au.xml">
<atom coord="0.0 0.0 0.0"/>
</species>
</structure>
<groundstate
do="fromscratch"
xctype="GGA_PBE_SOL"
rgkmax="8.0"
ngridk="8 8 8"
nempty="10"
stype="Methfessel-Paxton 1"
swidth="0.01"
>
</groundstate>
<properties>
<fermisurfaceplot nstfsp="6">
<plot3d>
<box grid="40 40 40" >
<origin coord="0 0 0"/>
<point coord="1 0 0"/>
<point coord="0 1 0"/>
<point coord="0 0 1"/>
</box>
</plot3d>
</fermisurfaceplot>
</properties>
</input>
To perform the actual calculation, make sure to set $EXCITINGROOT to the correct exciting
root directory in the speciespath
attribute using the command
%%bash
cd run_tutorial_fermi_surface
python3 -m excitingscripts.setup.excitingroot
cd ..
Assuming that you are already familiar with the groundstate
block in the input file, we now focus on the properties
block:
...
<properties>
<fermisurfaceplot nstfsp="6">
<plot3d>
<box grid="40 40 40" >
<origin coord="0 0 0"/>
<point coord="1 0 0"/>
<point coord="0 1 0"/>
<point coord="0 0 1"/>
</box>
</plot3d>
</fermisurfaceplot>
</properties>
...
The element fermisurfaceplot
triggers the calculation of the Fermi surface. The value of the attribute nstfsp
indicates the number of bands which are considered to compute the Fermi surface. In this case we choose 6, which also corresponds to the default value for this attribute (see Input Reference). By specifying the element plot3d
we are generating a 3D representation of the Fermi surface. For a complete description of the functionality of this element and of its sub-elements refer to the tutorial How to visualize Kohn-Sham states.
Now you can start the calculation by executing the following command.
%%bash
cd run_tutorial_fermi_surface
time $EXCITINGROOT/bin/exciting_smp input.xml
cd ..
An output file FERMISURF.bxsf is generated. It is already suitable for visualization with XCrySDen, by typing:
%%bash
cd run_tutorial_fermi_surface
xcrysden --bxsf FERMISURF.bxsf >/dev/null 2>&1 &
cd ..
The visualization of bxsf files with XCrySDen differs with respect to that of xsf files. In fact, the bxsf format is specifically designed to visualize Fermi surfaces as a bandgrid is printed in the file. Further details about this file format can be found here.
Typing the shell command
xcrysden --bxsf FERMISURF.bxsf >/dev/null 2>&1&
two small windows open on the screen. One contains the XCrySDen logo, while the other one is a small dialog window, where the Fermi energy should be specified. Please note, that for convenience, in the exciting output FERMISURF.bxsf all energies are already shifted by the Fermi energy so the required input at this step is 0.0.
Then, press OK. Three windows will appear:
After the selected bands have been ticked, press Selected. At this point, a visualization window with the Brillouin zone (BZ) appears. For all the details about the surface rendering and interpolation, we refer to XCrySDen webpage about bxsf files.
In the visualization window, there are a number of tabs, one for each band and a last one named Merged Bands. Click on this tab and the plot appears. By clicking and moving the mouse on the visualization window, one can rotate the BZ.
As a result of the visualization, one should obtain something similar to the following figure: