General

Introduction

QuantumATK packages a powerful set of tools for calculating properties of nano-scale systems. These atomic-scale calculators are based on density functional theory, semi-empirical tight binding, and classical potentials. The non-equilibrium Green’s function method is a unique feature of QuantumATK; it allows simulations on nano-scale devices and interfaces, including support for non-zero bias between the electrode leads and device components such as electrostatic gates and dielectrics. More information may be found at the QuantumATK website.

../_images/gatestack.png
../_images/2dfet.png

Fig. 102 Typical device systems; a high-k metal gate stack (top) and a field-effect transistor made of 2D materials (bottom), both with left and right semi-infinite electrode leads. One unique capability of QuantumATK is to simulate the electron transport through such two-probe systems. Gate electrodes may be included as non-current-carrying electrostatic gates (bright regions in the 2D-FET above), and regions of a particular dielectric constant may also be defined (pink regions in the 2D-FET above). One-probe systems with only a single electrode are also supported.

ATK is controlled using ATK-Python, which is an extension to the well-established Python scripting language. Setting up and executing QuantumATK calculations is therefore done in an ATK-Python script or directly from the command line in an interactive Python shell.

The main purpose of this manual is to document all QuantumATK functionality. The QuantumATK Reference Manual therefore gives a detailed summary of all input and output parameters, as well as notes on relevant theory and usage examples.

We also provide a thorough exposition of the theoretical background for the atomic-scale simulators implemented in QuantumATK (see Atomic-Scale Calculators), and a detailed introduction to Python scripting and using ATK-Python to control QuantumATK (see Python in QuantumATK).

For tutorials on how to use QuantumATK we refer to the Tutorials website.

New in QuantumATK R-2020.09

The R-2020.09 release of QuantumATK introduces a range of new features and performance improvements. For a comprehensive list, see the release notes, which can be found on SolvNetPlus as shown in this infographic.

Tip

For the full list of changes, see the release notes for the feature release, i.e. R-2020.09. The release notes for a service pack release, i.e. Q-2019.12-SP1 will only list the changes relative to the feature release.

Installing and running the software

The QuantumATK binary installer is available for registered users at the SolvNet software portal. Access to a valid QuantumATK license is also needed. Detailed instructions are given in the Installation Guide. Note that an evaluation license may be requested using the Synopsys Eval Portal.

When QuantumATK has been installed on your machine you can run it from the command line using the atkpython executable, which should be in your PATH, and a properly prepared QuantumATK Python script (written in ATK-Python):

$ atkpython script.py

You can download and use script.py to test this – the script defines a water molecule and relaxes the atomic coordinates using the BFGS algorithm to minimize the forces.

Parallel execution

ATK supports multi-level parallelism, using the Message Passing Interface (MPI) available on most supercomputing clusters for distributed memory parallelism, and OpenMP for shared memory parallelism.

How to read this manual

This manual is typeset using in-line references to QuantumATK Python objects and functions, and contains several script examples. The following style conventions are used:

  • All QuantumATK objects and functions appear as links, e.g. MoleculeConfiguration. The link will take you to the relevant section of the QuantumATK Reference Manual, where a detailed description of the object “MoleculeConfiguration” is provided.

  • References to particular chapters and sections are also links. For example, the links For-loops and Tuples direct you to specific sections in the chapter Python in QuantumATK.

  • Boldface letters are used to highlight specific words, e.g. atkpython, while in-line names of Python variables, functions, parameters, and methods are in general typeset using a monospace serif, e.g. list_of_atoms for a Python variable and cartesianCoordinates() for a method of the MoleculeConfiguration object.

  • In-line names of files and directories are also typeset using a monospace serif, e.g. file.txt and $HOME/QuantumATK/.

  • Python structures are visually enclosed in a box and typeset using a monospaced serif:

    # This is a comment
    
    for i in range(3):
        print(i)
    

    Scripts can often be downloaded by following a link, e.g. example_code.py.

  • Instructions for using the command line are indicated by the $ prefix:

    $ atkpython script.py
    

    while instructions for using an interactive Python session is indicated by the >>> prefix:

    >>> myList = [1, 2, 3, 4, 5]
    >>> print(myList)
    [1, 2, 3, 4, 5]
    >>> print(len(myList))
    5