Getting familiar with Virtual NanoLab

There are two different ways to start up VNL:

  1. by clicking the VNL icon on the Desktop;
  2. by executing the vnl command in a terminal.

When doing one of these, the Open Project window will appear. It allows you to manage projects and open one of them. Each project must be given a suitable title and a local path for storing project files. Use the Create New button to add a new project.


Once you have selected a project and clicked Open, the VNL main window will show up. The following sections will introduce the main parts of Virtual NanoLab and the functionalities each part offers.

VNL main window

The figures below illustrate how the VNL main window may be divided into 5 main sections.



Vertical ToolBar

The combination of VNL, ATK, and Python scripting is extremely flexible, and makes it possible to do your everyday atomistic modeling in a variety of different ways. However, the design of VNL encourages in particular one simple and intuitive workflow:

  1. builder_icon Create atomistic structure.
  2. script_generator_icon Set up calculations.
  3. job_manager_icon Run job.
  4. viewer_icon Analyze results.


Building atomistic structures

The builder_icon Builder is a graphical interface for building any desired nanoscale structure. The Stash contains the configurations you have built in the current project, and an ever expanding list of tools and plugins can be used to manipulate the structures.


A Stash item must be active in order to apply an operation by one of the Builder tools.


Once an item is activated, it is visualized in the 3D View. You can also apply operations on a Stash item such as rename, copy, and delete.


When you have finished building your configuration, use the sendto_icon Send to button (located in the lower-right corner of the Builder window) to transfer it to the Script Generator and set up the desired calculations. This is the topic of the next section.

Script Generator

ATK is executed using Python scripting, and the script_generator_icon Script Generator is a graphical interface for generating ATK Python scripts – it allows you to graphically add blocks of Python code to the script and edit relevant settings if needed.

Simply double-clik a block in the left-hand panel (named Blocks) to add it to the Script in the right-hand panel. The order of the blocks, from top to bottom, defines the workflow of the ATK calculation.


All data from the ATK calculation is saved in the Default output file. It should have file extension .nc, indicating that it is a NetCDF file type.

Once you have finished setting up the ATK Python script, you can save it with file extension .py and then execute it on a supercomputing cluster or in a terminal on your local machine:

atkpython > example.log

Alternatively, you can click the sendto_icon button and transfer the script directly to the Job Manager for local or remote execution, see next section.

Job Manager

The job_manager_icon Job Manager is a graphical interface for executing ATK calculations, both on your local machine and on any remote computing cluster(s) that you have access to.


Once a calculation has finished, the NetCDF data file with results should appear in the Projects Files panel in the VNL main window.


The Job Manager allows for parallel execution with MPI and/or threading, see the tutorials Job Manager for local execution of ATK scripts and Job Manager for remote execution of ATK scripts for more information.

Analyzing the results

Data analysis and visualization is the final step in the most basic VNL-ATK workflow: You have built a nanostructure, calculated the electronic structure at some level of theory, and have most likely performed some post-SCF analysis, e.g. computed the electron density and band structure. It is time to visualize the results and perhaps perform further analysis.

The Project Files panel shows at all times the contents of the project folder you specified when creating the project (unless filtering is used). This includes ATK scripts (.py), ATK data files (.nc), log files, images, and any other standard file type.

Next, the LabFloor shows the contents of the selected (ticked) .nc data files. VNL reads the data as individual Python objects, and displays each object as an easily recognizable item on the LabFloor. In the figure below, the data file GaAs(100).nc contains three saved data items: The band structure, the bulk configuration, and the electron density.

Finally, the Panel Bar offers an extensive list of analysis and visualization tools that can be applied to the selected LabFloor item(s). This way, the LabFloor and Panel Bar constitute in total a graphical interface for analyzing and visualizing the data generated by running simulations.



The LabFloor will show all the objects saved in a .nc data file, and the contents of newly generated files are automatically added to the LabFloor. Ticking/unticking a file in the Project Files list adds/removes its contents from the LabFloor.


A LabFloor item must be selected in order to apply an analysis tool to it. Panel Bar tools that cannot be applied to a selected item type are greyed out. The viewer_icon Viewer is one possible analysis tool – it is used to visualize configurations as well as grid quantities (e.g. electron density).


Please proceed to the next chapter: