QuantumATK packages a powerful set of tools for calculating properties of nano-scale systems. These atomic-scale simulators, in QuantumATK denoted 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.
ATK is controlled using QuantumATK, which is an extension to the well-established Python scripting language. Setting up and executing QuantumATK calculations is therefore done in an QuantumATK 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. The section Classes gives a full list of available commands in QuantumATK.
We also provide a thorough exposition of the theoretical background for the electronic structure methods implemented in QuantumATK (see Atomic-scale Simulators), and a detailed introduction to Python scripting and using QuantumATK to control QuantumATK (see Python in QuantumATK).
For tutorials on how to use QuantumATK we refer to the Tutorials website.
New in QuantumATK O-2018.06¶
The O-2018.06 release of QuantumATK introduces a range of new features and performance improvements. The list below provides an introduction and, in most cases, direct links to the documentation for some of the most significant new features.
ATK-DFT: Plane-wave calculator - including HSE06
The QuantumATK plane-wave calculator is now a finished product, with performance comparable to other reputable PW codes and including most of the functionality known from the LCAO calculator, plus some unique features, such as the HSE06 exchange-correlation functional. See
PlaneWaveCalculator, Introducing the QuantumATK plane-wave DFT calculator and Hybrid Functionals for more information.
New default pseudopotentials for GGA
PseudoDojo pseudopotentials are now default for GGA calculations; they are as accurate as SG15, and significantly softer in most cases. The SG15 pseudopotentials are now also available for LDA calculations. For more information, see the note here: Pseudopotentials and basis sets available in QuantumATK.
Pseudopotential-dependent mesh cut-offs for each element
QuantumATK now includes element-specific default density mesh cut-offs for the FHI, SG15 and PseudoDojo pseudopotentials. For calculations involving several different elements, the largest element-specific cut-off energy is automatically chosen for the calculation.
Unified SemiEmpirical calculator
The SlaterKoster and Huckel calculators have been combined into a single SemiEmpirical framework, making it easier to optimize the performance of the semiempirical calculators, and introduce new features. Notably, QuantumATK O-2018.06 will include the Boykin model for strained systems and the NRL model. For more information, see the manual page:
Minimal electrode concept for NEGF
The electrode electronic structure is automatically repeated along the transport direction when computing NEGF self-energies. This allows for using small electrodes while maintaining sufficiently long (repeated) electrode extensions.
Fixed magnetic moment
fixed_spin_moment, for the
LCAOCalculatormakes it possible to fix the total magnetic moment in bulk or molecular calculations.
Significant memory improvements
The memory usage in both bulk and device calculations is significantly reduced, e.g., up to 50% reduction for gated devices.
Threading automatically enabled
QuantumATK will now, by default, use threading to fill up any available CPU resources not already used for processes (in both serial and with MPI parallelization). For instance, if running 12 MPI processes on a 24-core node, QuantumATK will by default use 2 threads per process, which should in general improve performance without using more memory. Note that threading is not always advantageous for very small systems, in which case it is automatically disabled.
New concept: The study object
QuantumATK O-2018.06 introduces the concept of a Study Object, which is designed to automate well-defined workflows that includes several calculations and analysis objects, and re-start the execution if necessary. The five current study objects are highlighted below. See here for more information on the concept: Study objects.
A notable study object included in this release is the
ChargedPointDefect. It allows you to study a specific defect type in a specific host material, by setting up all the separate calculations required for a comprehensive study of this defect. See also the tutorial Formation energies and transition levels of charged defects.
For easier analysis of transistor-like devices, QuantumATK O-2018.06 contains a study object called
IVCharacteristics. It has some similarities to the existing analysis module
IVCurve, but uses the study object framework for better management of the individual calculations, and offers advanced analysis of results. See also the tutorial Electrical characteristics of devices using the IVCharacteristics study object.
The complex workflow of full structural optimization of a device is now condensed into a study object, making this task much easier. For more information, see the manual page
OptimizeDeviceConfigurationand the tutorial Relaxation of devices using the OptimizeDeviceConfiguration study object.
DynamicalMatrix and HamiltonianDerivatives
HeisenbergExchangeanalysis module is introduced. It computes the exchange coupling constants between any pair of atoms, for use in a Heisenberg model Hamiltonian.
Tetrahedron integration available for Mobility
Mobilityanalysis module now supports Brillouin-zone integration using the tetrahedron method, which converges faster in the number of q-points than Gaussian broadening.
Deprecated analysis objects
Spin life time
Compute the phonon-limited spin life time using the
ElectronPhononCouplinganalysis module. Note that spin life time studies require a calculator with noncollinear spin and spin-orbit coupling.
Dynamics and Optimization
More MD analysis options
The methods available for analyzing MD simulations has expanded. For example, it is now possible to compute the
MeanSquareDisplacementfor separate cartesian directions, and calculate the
RadialDistributionwith a cutoff larger than the cell dimension. For a full overview, see the manual section on Molecular Dynamics.
Special Quasi-random Structure (SQS)
Create quasi-random alloy structures using the Special Quasi-random Structure (SQS) method. For more information, see the manual page on
A few high-level functions have changed name. Specifically:
- For import statements in scripts,
NanoLanguagehas changed to
QuantumATK, for example
from QuantumATK import *.
- For launching the NanoLab graphical user interface from a terminal, use the command
atkpythoninteractively in a terminal is unchanged.
Installing and running the software¶
The software is distributed as a binary installer containing both QuantumATK and the graphical user interface QuantumATK. The installer is retrieved from the QuantumWise website: Download QuantumATK. You will also need to obtain a license (trial licenses are available, see Trial license). Detailed instructions are given in the Installation Guide.
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
a properly prepared QuantumATK Python script (written in QuantumATK):
$ 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.
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.
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_atomsfor 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.
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.
Instructions for using the command line are indicated by the
$ atkpython script.py
while instructions for using an interactive Python session is indicated by the
>>> myList = [1, 2, 3, 4, 5] >>> print myList [1, 2, 3, 4, 5] >>> print len(myList) 5