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 referencemanual 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 P-2019.03¶
The P-2019.03 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.
Updates to the plane-wave DFT simulation engine
PlaneWaveCalculatoris nearly feature-complete for norm-conserving pseudopotentials. Analysis objects that are newly supported includes optical spectrum, effective band structure, fat band structure and projected density of states.
QuantumATK PlaneWave calculator introduces PAW in a beta version
PlaneWaveCalculatornow includes the projector-augmented wave (PAW) method for describing the core electrons, supplementing the main pseudopotential functionality. The PAW implementation provides limited functionality at this stage, and is therefore included as a beta version. For example, it does not yet support calculation of stress, and some post-SCF analyses are disabled.
SCAN meta-GGA density functional
QuantumATK now includes the SCAN meta-GGA type density functional for both the LCAO and PW calculators (with norm-conserving pseudopotentials).
Magnetic Anisotropy Energy study object
The complex and long-running calculations required for studying the magnetic anisotropy energy (MAE) are now performed in a study object. The
MagneticAnisotropyEnergystudy object allows easy studies of a range of values for the theta and phi angles.
Partial Electron Density
PartialElectronDensityanalysis module is introduced. It is used to study and visualize specific parts of the electron density in real space. Band indices and energy ranges can be used to specify which part of the electron density to include.
SurfaceBandstructureanalysis module is introduced, allowing detailed studies of surface bandstructures. Technically, it is the calculation of a device density of states evaluated along a particular route in the surface Brillouin zone.
Eigenvalues analysis module expanded
Eigenvaluesanalysis module can now calculate eigenvalues at specified k-points and include also bands above the Fermi level.
Dynamics and Optimization
New force-field potentials
Space group symmetry constraints for OptimizeGeometry
OptimizeGeometry()now allows optimization while keeping the space group fixed.
MPI parallelization of most force-field methods
QuantumATK now provides MPI parallelization for force field calculations using real-space domain decomposition if the system is large enough for this to be efficient (ca. 1000 atoms or more).
Time-stamped force-bias Monte Carlo
QuantumATK now supports the time-stamped force-bias Monte Carlo (TFMC) method. Accessible simulation times can be increased by a factor of 5-100 compared to conventional molecular dynamics. The method is similar to MD, but atomic displacements are sampled using Monte Carlo methods. See
ParallelDevicePerformanceProfilemodule helps users decide what the best parallelization strategy is for device simulations, and which self-energy calculators to use. It can be run with specific equilibrium/non-equilibrium methods for contour point integration, and estimates required CPU time and memory consumption.
Performance of calculator engines has been generally improved, both with respect to speed and memory consumption. For example, some simulations will need significantly less memory for evaluating forces as compared to previous releases.
With the release of QuantumATK P-2019.03, we have now upgraded from Python 2 to 3.
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 QuantumATK 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 referencemanual, 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