Band structure of a SiC crystal

You will here learn how to use VNL and ATK for calculating the band structure and other properties of a SiC crystal. We shall not discuss the science of such a calculation much; the purpose of the tutorial is to show how to operate VNL, specifically how to set up simple calculations and visualize the results.




Build SiC crystal

Start VNL and create a new project with the title you prefer, e.g. SiCproject. Then open the project.


Use the Database plugin to quickly build the SiC bulk configuration.



Several VNL tools contain a 3D preview of the currently active configuration. Use the right mouse button to rotate the 3D view, use the scroll wheel to zoom (or hold down Ctrl and right mouse button and move the mouse), and press the scroll wheel and move the mouse to pan the camera (or hold down Shift and the right mouse button and move the mouse).

Setup ATK calculation

You are now ready to setup an ATK Python script that calculates the electronic ground state of the SiC crystal followed by analysis of the band structure and electron density. This is what the script_generator_icon Script Generator is used for (“Scripter” for short).

Transfer the SiC crystal from the Builder to the Scripter by clicking the Send to icon sendto_icon in the lower-right corner of the Builder window, and select “Script Generator” from the pop-up menu. The Scripter appears and the Builder window is automatically minimized.

The script already contains the SiC bulk configuration. Add the Calculator block and two Analysis blocks.


calculator_icon New Calculator block

The calculator computes the ground state of the SiC crystal. It contains a wide range of settings, all of which have sensible default values. However, you will most often need to change at least a few of them in order to make the calculation match your scientific goals.

Double-click the New Calculator block to edit it:


analysis_icon Analysis blocks

The Bandstructure and ElectronDensity blocks perform post-SCF analysis. Double-click the Bandstructure block to increase the Brillouin zone sampling:


Saving the script

The ATK script is now done, and it is good practice to immediately save it. Use the File menu in the Script Generator, or the keyboard shortcut Ctrl+Shift+S.

Run calculations

You need to run the ATK Python script in order to execute the calculations. This can be done from a terminal:

atkpython > example.log

A very convenient alternative is to use the job_manager_icon Job Manager to run the script directly from inside VNL:

  • Click the sendto_icon in the lower-right corner of the Script Generator, and select “Job Manager” from the menu.
  • The “Save As” dialog appears, prompting you to make sure the script is saved, followed by the Job Manager window and the “Select Machine” dialog.
  • Choose a “Local” machine type, and click OK. The ATK Python script is added to the job queue of the chosen machine.
  • Select your script and click the jm_play_enabled_icon button to start executing the calculation.



See the tutorials Local and Remote for more instructions on using the Job Manager for multi-CPU execution of ATK Python scripts on your local machine and on remote supercomputers.

Calculation output

Any output (data, log, etc.) should appear in the Project Files list. New .nc files are automatically scanned and their contents displayed on the LabFloor.


Analyze and visualize results

The calculation has now finished and you are ready to study the results. To this end, return to the VNL main window to select one of the saved data items and see the list of applicable analysis plugins.

The saved items all have a unique ID:

  • gID000resized_labfloor_bulk_icon BulkConfiguration
  • gID001resized_labfloor_banbdstructure_icon Bandstructure
  • gID002resized_labfloor_electrondensity_icon ElectronDensity



Use the keyboard shortcut Alt+W to activate the Windows menu, which allows you to easily switch between different VNL windows.

Band structure

The NetCDF data file is Make sure the file is ticked in the Project Files list in order to see its contents on the LabFloor. You may have to expand the LabFloor item. Select the band structure item (gID001) and click the Bandstructure Analyzer in the right-hand Panel Bar.


It is easy to measure the indirect band gap, which in this case is between the Γ and X points in reciprocal space:

  1. Click the zoom icon to activate the Zoom to rectangle function, and zoom into the relevant part of the band structure.
  2. Deactivate Zoom, and use the mouse to measure the indirect band gap.

The calculated gap is 2.40 eV, in excellent agreement with the experimental value of 2.36 eV for fcc SiC.


Electron density

The viewer_icon Viewer is used to visualize configurations and also data that is represented on 3D grids. You can visualize the SiC unit cell and the self-consistent electron density in a single view:

  1. Drop the SiC bulk configuration (gID000) on the Viewer.
  2. Select on the LabFloor the ElectronDensity item, resized_labfloor_electrondensity_icon, and just drop it on the SiC visualization. Choose a cut-plane representation.


A default visualization style is used. Use the Properties tool in the Viewer panel bar to adjust the visualization settings as you prefer.



To export the visualization as an image, use the right mouse button menu Export image.

Additional analysis

Suppose you now want to perform some additional analysis of the SiC crystal, e.g. compute the electronic density of states (DOS). This is easily done by creating and running a new ATK Python script that uses the Analysis from File functionality.

Simply open the script_generator_icon Script Generator and create the script as illustrated below. In the Analysis from File block, load the saved NetCDF file The widget should automatically detect and select the BulkConfiguration gID000. Lastly, change the default output filename to and save the script as


What happens in the ATK Python script you just made is this:

  1. The self-consistent electronic structure of the SiC bulk was previously calculated, so here we simply read that state using Analysis from File.
  2. Two different post-SCF analyses are then performed; first the electrostatic difference potential is computed, and then the density of states. Both data items are appended to the existing data file

Send the script to the job_manager_icon Job Manager and run the calculations.

Plotting the density of states

The SiC density of states is now easily plotted; select the DOS object on the LabFloor, resized_labfloor_densityofstates_icon, and click the 2D Plot plugin in the right-hand Panel Bar. You should now see a plot of the computed DOS vs. electron energy eigenvalue (referenced to the Fermi level). Use the mouse to zoom in on the plot if needed.


You can also plot the projected DOS using the Projection selector: Select the carbon atom (index 1) and tick only the p-shell in order to see the PDOS corresponding to the p-orbital of the C atom.

1D projection of the electrostatic potential

The electrostatic difference potential (EDP) is represented on a 3D grid, and you could visualize it as an isosurface or a cut plane in the 3D Viewer. However, VNL also offers a very convenient tool for creating 1D projections of 3-dimensional grid data – the 1D Projector:

  • Select the EDP data item on the LabFloor, resized_labfloor_electrostaticdifferencepotential_icon, and click the 1D Projector plugin.
  • Choose “C” as the projection axis and “Sum” as the projection type.
  • Then click Add line to produce the plot.



The plot above shows the summed EDP along the C-axis of the SiC bulk configuration, i.e. summed in the AB plane for each value of C. You can also chooce to average the grid values instead of summing them. Use the “Through point” projection type to avoid summing or averaging the grid values altogether.

Please proceed to the next chapter: