Atomistix ToolKit (ATK) packages a powerful set of tools for calculating properties of nano-scale systems. These atomic-scale simulators, in ATK 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 ATK; 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 NanoLanguage, which is an extension to the well-established Python scripting language. Setting up and executing ATK 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 NanoLanguage functionality. The NanoLanguage 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 NanoLanguage.
We also provide a thorough exposition of the theoretical background for the electronic structure methods implemented in ATK (see Atomic-scale Simulators), and a detailed introduction to Python scripting and using NanoLanguage to control ATK (see Python in ATK).
For tutorials on how to use ATK we refer to the Tutorials website.
The 2017 release of ATK introduces a range of new features and performance improvements. The list below provides direct links to the documentation for some of the most significant new features.
Unique approach to simulating real surfaces without resorting to the slab approximation. Uses a one-probe device calculator (Green’s functions) with the physically correct boundary conditions. See
Ozaki equilibrium contour
Highly stable calculation of the equilibrium density matrix in device calculations. Particularly useful if the electronic eigenvalue spectrum is very deep. See
Order-N calculation of the density matrix for very large bulk systems (Γ-point only), and possibly for equivalent-bulk calculations of the central region in big devices. See
New k-point grids
Hartree and electrostatic potentials
The previous definition of the
ElectrostaticDifferencePotentialhas been renamed
HartreeDifferencePotential(now with unit eV), and the former is now derived from the latter, see The Hartree potential and the electrostatic potential. Two new potentials are also added:
HartreePotential(unit eV) and
New Hubbard-U type method
Optional energy shifts to the pseudopotential projectors for each angular momentum channel. See
Noncollinear spin and spin-orbit coupling can be included when calculating the electron-phonon coupling matrix. New options are added for increased computational speed and for controlling the memory footprint. See
Inelastic transmission spectrum
Noncollinear spin and spin-orbit coupling can be included when calculating the inelastic transmission spectrum for a device configuration. Significantly faster calculations using a spectral representation. See
More quantities can be obtained from a mobility calculation: Seebeck coefficient, thermal conductivity, and the Hall-coefficient and Hall-conductivity tensors. See
Constrain the Bravais lattice
Now possible (and often default) to maintain a specific Bravais lattice during stress optimization of a bulk configuration. See
State-of-the-art barostat algorithm. Replaces the
General MD improvements
New potential for ATK-Classical. Applicable to both metallic and covalent systems. See
Installing and running the software¶
The software is distributed as a binary installer containing both ATK and the graphical user interface VNL (Virtual NanoLab). The installer is retrieved from the QuantumWise website: Download VNL-ATK. You will also need to obtain a license (trial licenses are available, see Trial license). Detailed instructions are given in the Installation Guide.
When ATK 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 ATK Python script (written in NanoLanguage):
$ 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.
Further details are available in an online guide: MPI setup for running ATK 2016 in parallel.
How to read this manual¶
This manual is typeset using in-line references to ATK Python objects and functions, and contains several script examples. The following style conventions are used:
All ATK objects and functions appear as links, e.g. MoleculeConfiguration. The link will take you to the relevant section of the NanoLanguage 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