Generating a Fermi Surface with LMF

Table of Contents


This tutorial assumes you have cloned and built the lm repository (located here). For the purpose of demonstration, ~/lm will refer to the location of the cloned repository (source directory). In practice, this directory can be named differently.

All instances of commands assume the starting position is your build directory (this can be checked with the pwd command). In this tutorial it will be called ~/build/.

$ cd ~/build/

with ~/build being the directory the lm repository was built in to.

Note: the build directory should be different from the source directory.


To generate a Fermi surface with lmf we first need a ctrl.* file. For this tutorial we will use Fe with ctrl.fe found in the directory fp/test/ctrl.fe in your lm directory. You can also take a look at this tutorial which will detail how to convert the prior mentioned ctrl.fe to a simple format. Either way, you should copy your ctrl.fe to your working directory:

$ cp ../lm/fp/test/ctrl.fe .

We then run the lmfa command, which must be run before any lmf calculation:

$ lmfa fe

We can now run lmf, specifically using a –band tag which tells lmf to generate a bnds.fe file that we can use to build our Fermi surface:

$ lmf fe
$ lmf fe --iactiv --band~con~fn=fsn

Note that the lmf command is run twice - this is intended; the first run ensures a self-consistent solution. With our bnds.fe file generated, we can use the matrix calculator, included in the distribution, to parse the bnds.fe file and then plot it with fplot

$ mcx -r:open bnds.fe -shft=0 -w b2 -r:open bnds.fe -shft=0 -w b3 -r:open bnds.fe -shft=0 -w b4 -r:open bnds.fe -shft=0 -w b5
$ fplot -f plot.fs0

Where the file plot.fs0 containing the fplot commands:

% var ef=-0.006661
  -lt 1,col=0,0,.5 -con {ef} b2
  -lt 1,col=0,1,.8 -con {ef} b3
  -lt 1,col=0,1,0 -con {ef} b4
  -lt 1,col=1,0,0 -con {ef} b5

The Fermi surface is written to the postscript file,

Edit This Page