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 Q-2019.12

The Q-2019.12 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.

Calculators

  • Plane-Wave Calculator is now ready for production calculations

  • PAW method for the Plane-Wave Calculator

    Two datasets of PAW potentials, see Pseudopotentials, are now implemented for the PlaneWaveCalculator (not for the LCAOCalculator). They can be used with unpolarized and polarized spins, and support LDA, GGA and hybrid GGA, such as HSE.

  • ForceField: Improved MPI for force-field calculations

    General improvements in algorithm for domain decomposition, MPI communicators and others. Python overhead is now reduced by 50%, which is significant at many threads.

NEGF: Device calculators

  • Transverse electrode repetitions

    For electrodes that are pure repetitions in the lateral directions perpendicular to the transport direction, QuantumATK can automatically detect this and reduce the electrode’s lateral dimensions to that of its minimal lateral unit cell. This makes the calculation of the corresponding self-energies of the electrodes much cheaper computationally. In the Builder and Viewer, this is indicated by dashed lines in the electrode, similar to the dashed lines indicating the electrode extension in the central region.

  • Performance improvements

    Parallelization over left/right self energies is now implemented in QuantumATK, allowing for memory reduction of up to 30% and computational time reduction of up to 50%.

General Analysis

  • Improvements for electron mobility and electron-phonon coupling calculations

    • The symmetries of the Brillouin zone are now taken into account for the k-point sampling in the Mobility and ElectronPhononCoupling calculations. This significantly reduces the computational time.
    • It is now possible to compute metal resistivity using a constant mean-free path. The mean-free path can either be assumed or computed. See Mobility.
    • Automatic band selection is now possible for electron-phonon coupling calculations. See ElectronPhononCoupling.
    • It is now possible to calculate the thermal velocity of electrons and holes. See Mobility.
  • k.p method for band structure calculations

    This method allows computing the Bandstructure much faster for the PlaneWaveCalculator, especially for the HSE Hybrid Functionals band structure calculations.

  • Density of States: Extra functionality

    QuantumATK now allows for normalization of the density of states by the number of atoms, as well as for calculation of the carrier concentration of the specified contribution. See DensityOfStates.

  • Local Density of States

    New analysis object. Calculate the density of states corresponding to a specific range of electronic energies, bands, and k-points. Useful for simulating STM images within the Tersoff-Hamann approximation. See LocalDensityOfStates.

  • Partial electron density

    Calculate the electron density corresponding to a specific range of electronic energies, bands, and k-points. May be used for simulating STM images. See PartialElectronDensity.

  • Bulk Transmission Spectrum now uses Green’s function

    This feature enables calculation of TransmissionSpectrum and related conductance for bulk materials without and with spin-orbit coupling included, and also improves accuracy over the previous method.

  • Custom mesh cutoff for Grid analysis objects

    This feature allows obtaining better resolution in various analyses represented on a grid, e.g. potentials and densities, without having to re-run the SCF calculation.

  • Projections in EffectiveBandstructure

    Projection on atoms, orbitals, shells and so on is now possible in EffectiveBandstructure, similarly to FatBandstructure.

Spintronics

  • Gilbert damping

    QuantumATK now allows for computing the GilbertDamping tensor. This method is based on a simple physical picture: spin-orbit interaction induced non-equilibrium state of a magnetic system that relaxes to equilibrium via the electron-phonon coupling.

  • Orbital moment

    Calculate orbital magnetic moments in a bulk, see OrbitalMoment.

Optical and Electro-optical properties of materials

  • Static dielectric tensor including ionic contributions

    You can now calculate the full static dielectric tensor, including both electronic and ionic contributions. See DielectricTensor.

  • Raman spectroscopy

    Calculate the Raman tensor and spectrum for incoming light scattered in a bulk or 2D material. See RamanSpectrum.

  • Nuclear magnetic resonance (NMR) spectroscopy - beta version

    Calculate properties related to nuclear magnetic resonance spectroscopy, including quadrupole coupling constants and isotropic chemical shieldings. The current implementation of NMR quantities is considered a beta version. See ElectricFieldGradients and ShieldingTensors.

  • LO/TO splitting of phonon band structure

    Calculate the LO/TO splitting of PhononBandstructure by including a non-analytical contribution from the macroscopic field to the DynamicalMatrix, which is obtained from the BornEffectiveCharge calculation and the high-frequency dielectric tensor from OpticalSpectrum.

  • Electro-Optical tensor

    Calculate the ElectroOpticalTensor that describes the Pockels effect, which is a change in the static dielectric constant in the presence of an electric field.

  • Second Harmonic Generation Susceptibility

    Calculate the SecondHarmonicsGenerationSusceptibility, which is the nonlinear response function describing the second harmonic generation.

Dynamics and Optimization

  • Improved logging for Molecular Dynamics

    QuantumATK now has improved logging from MD simulations, which now show reservoir vs. instantaneous temperature (NVT) and pressure (NPT) in the log. These quantities can now also easily be shown in movie tool.

  • MDMeasurement

    In MD simulations, it is now possible to measure any quantity at a user-defined interval. QuantumATK comes with a pre-defined list of f.ex. the various stress, strain and pressure components, but users can define their own quantities. See MDMeasurement.

  • SpecificHeatCapacity

    It is now possible to calculate the specific heat capacity in the quasi-harmonic regime, directly from a MD simulation with relatively few atoms. See SpecificHeatCapacity.

  • Custom fitness criteria for crystal structure prediction

    The crystal structure prediction function now accepts a user-defined fitness function which can include any combination of material properties, for example both the enthalpy and a target band gap. See CrystalStructurePrediction.

  • Geometry optimization improved

    OptimizeGeometry can now automatically restart the geometry optimization from a previous run, has a new option for geometry optimization at constant volume, and by default removes any drift force from numerical noise, to keep the center of mass fixed in the system. See OptimizeGeometry().

Polymer Science and Engineering

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