ATK 11.2 is now available. This constitutes a major upgrade of ATK 10.8, with a significant performance improvement while at the same time the calculations require substantially less memory. In addition, there are several new methods for analyzing the transport mechanisms in two-probe systems, and many other new features as well.
All users are recommended to upgrade from ATK 10.8.2 to 11.2. If you do not yet have a license file that support version 11.2, please contact support or your sales representative to upgrade.
Backwards compatibility ATK 11.2 does not introduce any changes* to the results of the calculations, compared to ATK 10.8. This release is also fully backwards compatible with all input and output files from ATK 10.8. There are no major changes to the work flow, interface, syntax, or other constructions in the Python or graphical user interface.
* The single, but important, exception to this is that the normalization of the transmission coefficients for spin-dependent calculations has been changed, such that where earlier 0.5 was reported for a perfect conducting channel, it now returns 1.0. (Alpha and beta versions of 11.2 used 0.5 too.)
Since ATK 10.8 was released, we have been made aware that in many situations the calculations use more memory than in previous versions. The primary reason for this was a desire to improve the performance by keeping some calculated quantities in memory, rather than re-calculating them in every iteration. In ATK 11.2 we have made this caching an option, such that you can still enjoy the performance benefit for small systems, while for large systems the caching can be disabled to conserve memory. (The parameter to modify is the saving of the self-energies under "Device Algorithm Parameters".)
Also note that ATK actually uses less memory (per node) in parallel than serial, since some matrices are distributed over the nodes. Thus there is a double benefit of running in parallel: faster calculations and lower memory requirement per node.
Normally such a significant reduction in memory usage comes at the cost of calculation time, but at the same time we have made two bold moves to improve the general performance of ATK:
Serveral of the core algorithms have been optimized and rewritten.
We have implemented our own sparse matrix storage classes.
Thanks to our extensive testing framework, we could all the time monitor that these major operations did not change any of the results of the calculations, in fact down to the bit-level. In the end, the combined results of these efforts have resulted in a code that is almost 2 times faster than before.
Benchmarks courtesy of Cybernet, our Japanese distributor.
Additionally, there is now a possibility to choose whether the electrodes should be computed as fast as possible (perhaps using a lot of memory) or via a slower routine which uses less memory. If there are many atoms in the electrode, and at the same time you use several (kx,ky)-points, memory usage for the electrode can become very large, since often one uses very many kz points. Thus, the electrode calculation can often be the most memory-consuming part of the whole calculation. ATK 11.2 will actually try to estimate how much memory will be needed, and if this is larger than a threshold (which can be tuned by the user; default is 1.5 Gb), the slower method will be used.
Thus we can proudly conclude that ATK 11.2 runs faster and uses less memory than both ATK 2008.10 and 10.8! The benefit, both in terms of speed and memory, increases with the system size.
Note: It is hard to compare exactly the speed of 2008.10 and 11.2 since the algorithms used are different, and so e.g. the number of iterations may be different. Our general experience is that ATK 10.8 was generally faster than 2008.10 in calculation speed, but used more memory and spent more time calculating the electrodes. ATK 11.2 is comparable to 2008.10 on memory consumption, and considerably faster, even when special tricks are not used to reduce the time spent for the electrodes.
Preconditioners, new Poisson solver, and scattering states
Systems that required very many SCF steps can now be completed in fewer steps with the help of newly implemented preconditioners. These are particularly useful for large (long) metallic systems, which can be rather tricky to converge. This feature is still a bit experimental and requires some parameter tweaking sometimes, but we have already used it to successfully compute systems that previously would not converge at all.
An further contributing factor to both the lower memory consumption and higher performance is the introduction of a new Poisson solver, which uses a Fast Fourier Transform (FFT) solver for periodic boundary conditions in the XY plane, and a multigrid method in the transport direction (Z). Earlier, if you wanted to use FFT in X and Y (normally you want to do this, since it's considerably faster) you also had to use FFT in Z, which e.g. precludes the use of different electrodes. In general, periodic boundary conditions are really not suitable in the transport direction for an open system, especially under finite bias. Our new "Fast Fourier 2D Solver" - which is the new default option - combines the benefits of a more proper boundary condition for transport in Z with the better performance of FFT in X and Y.
Calculating the transmission spectrum and ultimately the I-V curve is one of the primary objectives of ATK when applied to a two-probe device. However, there is a lot more information to be extracted from the calculations, that can provide a more proper understanding of the mechanisms behind certain observed transport phenomena. ATK 11.2 contains several new methods for analyzing the transport results.
In ATK 2008.10 and earlier versions, it was possible to calculate the real-space projection of the density of states, a so-called local density of states (LDOS). This feature is now also available in the new platform - select a k-point grid and an energy, compute the 3D LDOS grid, and visualize it in VNL.
LDOS for the Li-H2-Li system at the Fermi level, at zero bias (contributions from both left and right included). The node between the hydrogen atoms clearly shows that the transmission primarily takes place through the anti-bonding H2 LUMO.
There is a slight difference compared to before: in ATK 11.2 you specify a k-point grid (Monkhorst-Pack samling) over which the DOS is summed up, while in ATK 2008.10 the LDOS was computed for a given k-point. Instead of the k-point resolved LDOS, it is however much more relevant to look at transmission eigenstates (see just below).
The total transmission T(E,k) for a given k-point (kx,ky) and energy E is computed as the trace of the transmission matrix, where the rows and columns couple incoming and outgoing states in the two electrodes. This matrix can also be diagonalized, and the corresponding transmission eigenvalues contain information about the modes through which the current is transmitted.
The total transmission, which is the sum of the transmission eigenvalues or the invariant trace of the transmission matrix, may be larger than 1. The transmission eigenvalues are however always less than 1, and thus truly represent the transmission probability per mode. Just for illustration, one may have a situation where T(E,k)=1.23, but when breaking it down into modes you find three finite transmission eigenvalues of 0.9, 0.3, and 0.03, respectively (usually there are only a handful eigenvalues of reasonable size, and the rest are infinitesimally small). This immediately gives a clearer picture of how the current is transmitted; there are 3 indivdual modes, of which one is strongly dominating, and one is very small (but non-zero).
To gain further insight into the transport mechanism, we can now perform a real-space projection of the eigenmodes to obtain the corresponding transmission eigenstates. These portray how the electrons propagate through the central region, and can also reveal for instance phase shifts in the wave function, as the eigenstate is a complex quantity.
Contour plot in the (x,y=0,z) plane of the transmission eigenstate for the only transmitting mode in a Li-H2 -Li system at the Fermi level at zero bias.
A separate, but somewhat similar new feature is the possibility to visualize transmission pathways. Essentially this method projects the transmission onto all pairs of atoms in the structure to provide a "local current" between each pair (for details, see G. C. Solomon, C. Herrmann, V. Mujica, and M. A. Ratner, Nature Chemistry 2, 223 (2010)). These can then be plotted as arrows, which gives a very pictorial representation of how the current flows. As demonstrated in the aforementioned article, the current does not always flow "through bonds" but sometimes goes e.g. directly across rings, and interference effects can lead to reversal of ring currents.
Transmission pathway at zero bias at the Fermi level for a graphene nanoribbon with a Stone-Wales defect. The thickness and color of the arrows is related to the local current between each pair of atoms, and the arrow itself naturally shows in which direction the local current flows. The coloring mode is here by magnitude; it is also possible to color the arrows by their direction. The calculation was performed with the Huckel method in ATK (using the accurate Cerda basis set) and took about 10 minutes on a Windows laptop for a fully self-consistent result.
Complex band structure
Finally, it is now also possible to compute the complex band structure of the electrodes. This provides a mapping between the band structure of the electrode and the transmission coefficients.
Complex band structure for a  Si surface. The right part of the plot illustrates the real bands, while the left hand side shows the complex ones, which we can see span the band gap.
Fully automatic joint optimization of stress and forces - also for two-probes
A very welcome new feature is that ATK now computes the stress of the unit cell. This makes it possible to optimize the unit cell of a periodic system (earlier it was only possible to optimize the internal atom arrangment for a fixed unit cell size), and in fact ATK 11.2 will, by default, automatically optimize both the cell size and the internal coordinates during a geometry optimization.
Importantly, this also works for two-probe systems. Thus, given a device configuration and asked to optimize it, ATK will automatically relax the stress on the central cell. This means that the distance between the electrodes and the internal arrangment of the atoms in the scattering region will all be optimized in one single step. It is still necessary to optimize the electrodes separately, before constructing the outermost interface layers of the device geometry; these atoms are kept fixed during the two-probe optimization.
More new features
Naturally, there are also updates to the graphical user interface in ATK, Virtual NanoLab (VNL). It now displays bonds, for instance, and it is even easier than before to convert your central region to a two-probe system. There are also many minor improvements to plotting, editing, script generation, etc.
Otherwise, the main work was performed under the hood, where the graphics engine was updated. This is perhaps not so visible in this release, but it will accelerate the feature development in future versions.
One important bug fix is that VNL 11.2 can run with MESA graphics drivers on Linux. Performance will still be low compared to using a proper vendor driver, but VNL will not crash.
Ghost atoms (vacuum basis sets)
As opposed to plane waves, the localized basis functions used in ATK reduce the matrices that need to be stored and make it easy to introduce defects or abrupt interfaces without any special additional computational cost. It is also relatively cheap, memory and performance wise, to include large amounts of vacuum in a system, as needed for a molecule between two metal surfaces, or for nanotubes and graphene nanoribbons. The drawback with the localized basis is, however, that you sometimes have to extend the basis set range in order to describe long-range interactions, and it's hard to do it systematically. The long-range interactions can be important for inter-tube interactions in multiwall nanotubes, for instance, of if you want to get an accurate estimate of the work function of a metal surface.
To improve on this situation, ATK 11.2 features so called ghost atoms, or vacuum basis sets. The basis sets on the ghost atoms are derived from actual atoms (e.g. carbon), but have no electron occupation initially and also have no associated pseudopotential. During the self-consistent loop its orbitals can become occupied, providing a way to extend electron interactions across a vacuum gap. This can e.g. also be used to bridge a longer gap between a molecule and a metal surface representing an STM tip, and thus compute the tunneling current for larger tip-to-surface distances.
It is now possible to perform first principles molecular dynamics calculations (MD) with ATK-DFT. Supported methods are NVT (Berendsen) or Velocity Verlet. As with geometry optimizations, the trajectory can be saved and visualized as a movie afterwards in VNL.
It is also possible to run MD simulations using the new engine for classical potentials, ATK-Classical (see below).
Ultrafast transmission spectrum for perfect systems
For a system which is perfectly periodic along the transport direction, it is actually rather trivial to compute the transmission spectrum; all you need is really the band structure. All two-probe systems consist of such a perfect part (the electrodes) and some disturbance (the scattering region). When studying the transport properties of such systems, it is often intesting to compare the transmission spectrum to that of the corresponding perfect system.
Until now, the calculation of the perfect system was essentially as demanding as that of the perturbed system, but in ATK 11.2 we now introduce the possibility to compute the transmission spectrum of a bulk system. This is typically 100 times or more faster than the two-probe calculation, since it can be performed on the electrode cell.
Random initial spin polarization
Possibility to reuse electrodes between calculations: if you use the same electrode over and over again, you can pre-compute it to save some time in each calculations
Scattering states for non-equillibrium (finite bias) contour integration
Default energy_zero_parameter in molecular energy spectra is changed to Fermi level
Improvements for LDA/GGA+U calculations:
One additional model introduced, the so-called "on-site" model. The "dual" model, which was available already in 10.8, is still available, but is not the default model any more.
Initial orbital occupations can now be customized, which sometimes is necessary for proper convergence.
Drastically reduced memory usage.
Charge for molecules and bulk can now be set in the GUI
Updated symmetry points for band structure calculations for monoclinic primitive (the previous ones were wrong)
Enhanced support for import
VASP input files with constraints are now accepted
CIF files without symmetry specification (viz. without Hermann-Mauguin symbol) are imported as P1 systems
Installer and package
Updated LM-X version to 3.6 on all platforms
Unattended mode functions properly now
Uninstaller will not remove license configuration (unless asked to)
ATK now functions fully properly in interactive mode
"atkpython --version" now gives the ATK version, not the Python version
Intel MPI and MVAPICH2 are supported as parallelization libraries
Our strong ambition is to extend ATK to provide atomic-scale modeling solutions for several different length-scales and a wide variety of problems. We have already in 2009 introduced ATK-SemiEmpirical to treat larger systems faster by using the extended Hückel method, and in 2010 we enabled support for the grid-based projected-augmented wave-method GPAW. In ATK 11.2 we now introduce two more external engines the extend the capabilities of the platform: ATK-Classical and ATK-PlaneWave.
Both two new engines are somewhat experimental at this point. Support for various functionalities will be expanded in the nearest future releases.
This nascent release of the ATK engine for classical potentials implements support for the EMT and Brenner potentials from the ASAP calculator. Brenner's reactive bond order potential is capable of treating carbon, hydrocarbons, silicon and germanium, and can thus be used to very quickly relax for instance large graphene structures, Si nanowires, or nanotubes with defects. The EMT potential describes the late transition metals Ni, Cu, Pd, Ag, Pt and Au, that all crystallize in the face-centered cubic (fcc) structure, as well as their alloys. Experimental support is available for Mg, Zr and Ru.
Melting of a Cu nanocluster, as simulated with ATK-Classical. The calculation was performed with NVT molecular dynamics in ATK 11.2 using a Wulff-construction for the Cu cluster (radius 5 Ångström), with a hole "drilled" through the center in all axes. The metal was then set in contact with a heat bath at 10,000 K (for fun!). 200 iterations at 1 fs step size were run to create the movie.
ASAP (As Soon As Possible) is a calculator for doing large-scale classical molecular dynamics (MD) simulations, and operates as part of the Atomic Simulation Environment (ASE) developed at CAMd at the Danish Technical University (DTU), and which is included as part of ATK and can be used with ATK-Python.
Socorro is a highly parallelized plane-wave DFT code, developed at Sandia, which also has support for time-dependent DFT (TDDFT). For now one can only set up basic total energy calculations via the Python interface, but Socorro will be fully integrated in ATK during 2011.