Control FermiSurfer


For Linux, Unix, Mac

You can launch generated executable as follows:

$ fermisurfer mgb2_vfz.fs

You need a space between the command and input-file name. (The sample input file mgb2_vfz.fs contains \(z\) element of the Fermi velocity in MgB2.)

For Windows

Click mouse right button on the input file. Choose “Open With …” menu, then choose fermisurfer.exe.

Then, Operations are printed, and Fermi surfaces are drawn (Fig. 1).


Main view.

The following operations are available:

  • Rotation of objects with mouse drag

  • Expand and shrink with mouse wheel

  • Window re-sizing

  • Moving objects with cursor keys (wasd for Windows)

  • Opeerate by using the panel

Here, I will explain all menus.


Some operations are not applied immidiately, and after th “Update” button is pushed they are applied. Such operations are refered as “Update required”.

Background color

The background color is specified as RGB.


Line width

Modify the width of the Brillouin-zone boundary, the nodal line, etc.

Line color

The line color is specified with RGB.



It makes each band enable/disable (Fig. 4).


Brillouin zone (Update required)

You choose Brillouin-zone type as follows (Fig. 5):

First Brillouin Zone

The region surrounded by Bragg’s planes the nearest to \({\rm \Gamma}\) point.

Primitive Brillouin Zone

A hexahedron whose corner is the reciprocal lattice point.


You can change the type of the Brillouin zone with “Brillouin zone” menu.

Number of Brillouin zone

We can specify how many zones are displayed along each reciprocal lattice vector.


Color bar

The color bar becomes enable/disable (Fig. 7).


Toggling the color bar with “Color bar On/Off” menu.

Color scale mode (Update required)

It turns color pattern on Fermi surfaces (Fig. 8).

Input (1D) (default for the single input quatity) :

It makes blue as the minimum on Fermi surfaces and red as the maximum on them.

Input (2D) (default for the double input quatity) :

The color plot is shown with the color circle (see the figure).

Input (3D) (default for the triple input quatity) :

The input value is shown as arrows on the Fermi surfaces. The color of the Fermi surfaces are the same sa “Band Index” case.

Fermi velocity (default for no input quantity)

Compute the Fermi velocity \({\bf v}_{\rm F} = \nabla_k \varepsilon_k\) with the numerical differentiation of the energy, and plot the absolute value of that.

Band Index :

Fermi surfaces of each band are depicted with uni-color without relation to the matrix element.

Input (1D, Gray), Fermi Velocity (Gray) :

Plot with gray scale.

We can change the range of the color plot or the length of arrows for 3D line plot by inputting into the text boxes at “Min of Scale” and “Max of Scale”, respectively.


“Color scale mode” menu.

Color sequence for plot

We can specify the sequence of color plot. “BGR” is Blue-Cyan-Green-Yellow-Red, “CMY” is Cyan-Blue-Magenta-Red-Yellow, “MCY” is Magenta-Blue-Cyan-Green-Yellow.


Equator (Update required)

We can draw the line where \({\bf v}_{\rm F} \cdot {\bf k} = 0\) for a vector \({\bf k}\) (equator or extremal orbit). See fig. 10. We can toggle equator with the checkbox “Equator” (this operation doed not require the update, and modify the direction of the tangent vector \({\bf k}\) by using the textbox at “Equator-v :” (fractional coordinate).


Display the equator with the “Equator” menu.

Interpolation (Update required)

Smooth the Fermi surface with the interpolation (Fig. 11). The time for the plot increases with the interpolation ratio.


Modify the number of interpolation points from 1 to 4 with “Interpolate” menu.

Which (or both) side of Fermi surface is illuminated

We can choose the illuminatedside of the Fermi surface (Fig. 12).

Both :

Light both sides.

Unoccupy :

Light unoccupied side.

Occupy :

Light the occupied side.


Change the lighted side by using the “Lighting” menu.

Mouse Drag

It turns the event of the mouse-left-drag.


Rotate the figure along the mouse drag.


Expand/shrink the figure in upward/downward drag.


Translate the figure along the mouse drag.


Nodal line

The line on which the matrix element becomes 0 (we call it nodal line) becomes enable/disable (Fig. 14).


Toggling the node line with “Nodal line” menu.

Section of the Brillouine zone (Update required)

Display a 2D plot of the Fermi surface (line) on an arbitrary section of the Brillouin zone (Fig. 15).

We can toggle it with the checkbox “Section” (this operation does not require update), and can change the normal vector with the textbox at “Section-v :” (fractional coordinate).

If the checkbox “On Gamma” is turned on, the section crosses \(\Gamma\) point.


Display 2D plot of the Fermi surface (line) with “Section” menu.

Output section of the Brillouine zone

Above section of the Brillouin zone and Fermi surfaces are outputted into files “fermi_line.dat” and “bz_line.dat” by pushing this button.


These files are plotted in gnuplot as follows:

plot "fermi_line.dat" w l, "bz_line.dat" w l

Shift Fermi energy (Update required)

It shifts the Fermi energy (= 0 in default) to arbitrary value (Fig. 17).


The Fermi energy is set from 0 Ry to 0.1 Ry with “Shift Fermi energy” menu


The stereogram (parallel eyes and cross eyes) becomes enabled/disabled (Fig. 18).

None (Default)


Parallel-eyes stereogram


Cross-eyes stereogram


The stereogram becomes enabled/disabled with “Stereogram” menu.

Tetrahedron (Update required)

You change the scheme to divide into tetrahedra (tetra # 1 as default). It is experimental.


View point

Changing the view point.


Change the size of the figure.


Change the xy position of the figure.


Change angles at x-, y-, z- axis. Rotations are performed as z-y-x axis if the “Roate” buttone is pushed.

In each menu, first the current value is printed. then a prompt to input the new value appears (Fig. 20).


Modify the view point by using “View point” menu

Saving images

fermisurfer does not have any functions to save images to a file. Please use the screenshot on your PC.