**Table of Contents**

- Introduction
- The ATK-DFT package
- The ATK-SE Package
- The NEGF formalism in ATK
- Plug-in tools in VNL
- Python in ATK
- NanoLanguage Reference Manual
- The TremoloX package
- Appendix
- Appendix: Atomic data
- Bibliography
- Core NanoLanguage elements
- MoleculeConfiguration — Class for representing an isolated structure, i.e a molecule.
- BulkConfiguration — Class for representing a periodic structure, i.e bulk configuration
- DeviceConfiguration — Class for representing a structure coupled with semi-infinite bulk, i.e. one-probe, two-probe, etc.
- NanoSheet — Function for generating a nano sheet.
- NanoTube — Function for generating a nano tube.
- NanoRibbon — Function for generating a nano ribbon.
- BoxRegion — Class for representing an orthorhombic region, i.e. a rectangular box of metallic or dielectric material.
- AtomicShift — Represents a potential shift of the orbitals on individual atoms.
- AtomicCompensationCharge — Represents a change in the ion charge of individual atoms, resulting in a different ion electro-static potential of the atoms.
- NudgedElasticBand — Class for holding a series of configurations, ranging from an initial to a final configuration.
- HuckelCalculator — Class for representing calculations using the extended Huckel model for configurations of the type MoleculeConfiguration and BulkConfiguration.
- DeviceHuckelCalculator — Class for representing calculations using the extended Huckel Model for DeviceConfigurations.
- LCAOCalculator — Class for representing calculations using the ATK-DFT numerical orbital model for configurations of the type MoleculeConfiguration and BulkConfiguration.
- DeviceLCAOCalculator — Class for representing calculations using the ATK-DFT LCAO model for DeviceConfigurations.
- EMTCalculator — Class for representing an EMT calculator. It can be used for a MoleculeConfiguration and a BulkConfiguration.
- BrennerCalculator — Class for representing a Brenner Potential 2002 calculator.
- SlaterKosterCalculator — Class for representing calculations using a Slater-Koster tightbinding model for configurations of the type MoleculeConfiguration and BulkConfiguration.
- DeviceSlaterKosterCalculator — Class for representing calculations using the SlaterKoster Model for DeviceConfigurations.
- AbinitCalculator — Class for representing calculations using the Abinit planewave DFT code.
- FHIaimsCalculator — Class for representing calculations using the FHI-aims all electron code.
- counterpoiseCorrected — Create a new class extended with a Basis Set Superposition Error (counterpoise) corrector.
- TremoloXCalculator — Class for representing a TremoloX Potential calculator, based upon Class for representing a Brenner Potential 2002 calculator.
- calculateHamiltonianAndOverlap — Calculate the the fourier transformed Hamiltonian (H) and the overlap (S) matrices as numpy arrays.
- calculateSelfEnergy — Calculate the self energy as a numpy array.
- calculateDensityMatrix — Calculate the the fourier transformed Density Matrix as numpy array. Only the elements in D which are nonzero in S are calculated
- orbitalInfo — Calculate quantumnumbers of the orbitals
- calculateRetardedGreenFunction — Calculate the Retarded Green Function as a numpy array.
- calculateGreenFunctionComponent — Calculate the Green Function component, G gamma G^\dagger, as a numpy array.
- calculateDynamicalMatrixAndOverlap — Calculate the Dynamical (D) and the overlap (S) matrices as numpy arrays.
- calculatePhononSelfEnergy — Calculate the Phonons Self Energy as a numpy array.
- calculatePhononRetardedGreenFunction — Calculate the Phonons Retarded Green Function as a numpy array.
- calculatePhononGreenFunctionComponent — Calculate the Phonons Green Function Component, G gamma G^\dagger, as a numpy array.
- AnalyticalSplit — Class for representing the analytical split of a confined or polarization orbital.
- ATK_U — Class for representing the ATK_U database.
- ATK_W — Class for representing the ATK_W database.
- BasisSet — Class for representing the basis set for given element in DFT.
- CheckpointHandler — Class for representing the parameters used for saving the configuration and calculator at regular intervals during self-consistent iterations.
- ConfinedOrbital — Class for representing a confined atomic orbital.
- DFTBDirectory — Class for representing a DFTB parameter file directory.
- DoubleContourIntegralParameters — Class for representing the contour parameters when using a double contour.
- DynamicalMatrixParameters — Class for representing the parameters needed for calculating the dynamical matrix.
- ExchangeCorrelation — Class for representing Exchange Correlation types
- GrimmeDFTD2 — Class for doing Grimme correction of energy, forces, and stress.
- HotbitDirectory — Class for representing a Hotbit parameter file directory.
- HuckelBasisParameters — Class for representing the parameters that determine the properties of a Huckel basis.
- InitialSpin — Class for representing an initial spin configuration.
- IterationControlParameters — Class for representing the parameters relevant for SCF iteration control within self-consistent electronic structure models.
- PulayMixer — Class for representing a Pulay mixer.
- NormConservingPseudoPotential — Class for representing the norm-conserving pseudopotential
- NumericalAccuracyParameters — Class for representing the parameters for setting the numerical accuracy of a calculation.
- optimizeBasisSet — Function for optimize N tier'ed basis set
- PolarizationOrbital — Class for representing the polarization of a confined orbital.
- RandomSpin — Class for representing a random initial spin configuration.
- SingleContourIntegralParameters — Class for representing the contour parameters when using a single contour.
- SlaterKosterTable — Class for representing the parameters that determine the parameters of a slater koster basis.
- SlaterOrbital — Class for representing a Slater orbital.
- EquivalentBulk — Class for representing an Equivalent Bulk initial Density Matrix for Device simulations.
- NeutralAtom — Class for representing a neutral atom initial density matrix for Device simulations.
- ElectrodeConstraint.DensityMatrix — Class for representing a Density Matrix Constraint for Device simulations
- AlgorithmParameters — Class for representing the parameters for setting solver parameters.
- DeviceAlgorithmParameters — Class for representing algorithm parameters relevant for the device calculation.
- Poisson Solvers
- MultigridSolver — Class for representing a multigrid-based Poisson solver.
- DirectSolver — Class for representing a direct Poisson solver.
- FastFourierSolver — The FFT-based Poisson solver.
- FastFourier2DSolver — The Hybrid FFT2D + Finite-Difference-1D Poisson solver.
- SelfEnergyCalculators
- DirectSelfEnergy — Class for representing a self energy calculation using direct diagonalization.
- RecursionSelfEnergy — Class for representing a self energy calculation using the recursion method.
- KrylovSelfEnergy — Class for representing a self energy calculation using the iterative Krylov scheme.
- SparseRecursionSelfEnergy — Class for representing a self energy calculation using the sparse recursion method.
- Preconditioners
- Kerker — Class for representing Kerker style preconditioner
- FeastSolver — Class that represents a method to calculate the density matrix using the feast algorithm.
- DiagonalizationSolver — Class that represents a method to calculate the density matrix by direct diagonalization.
- SlaterKosterOnsiteParameters — Class for representing the parameters that determine the onsite parameters of a slater koster basis.
- PairPotential — Class for input of a repulsive pairpotential
- GridValues — Generic base object for all grids.
- MolecularEnergySpectrum — Class for calculating the molecular energy spectrum for a configuration.
- ElectronDifferenceDensity — Class for calculating a difference density
- ElectronDensity — Class for calculating the electron density
- ExchangeCorrelationPotential — Class for calculating the exchange-correlation potential
- ElectronLocalizationFunction — Class for calculating the electron localization function (ELF)
- ElectrostaticDifferencePotential — Class for calculating the Hartree potential corresponding to a difference density.
- EffectiveMass — Class for calculating the effective mass for a BulkConfiguration.
- EffectivePotential — Class for calculating the effective potential
- ExternalPotential — Class for calculating the external potential due to the electrodes and gates in the system
- TransmissionSpectrum — Class for representing the transmission spectrum for a given configuration and calculator.
- PhononTransmissionSpectrum — Class for representing the phonon transmission spectrum for a given configuration and calculator.
- TransmissionPathways — Class for representing the Transmission Pathways for a given configuration and calculator.
- TransmissionEigenvalues — Class for representing the transmission eigenvalues for a given configuration and calculator.
- TransmissionEigenstate — Class for representing the transmission eigenstate for a given configuration and calculator.
- IVCurve — Class for representing an IV-Curve.
- Bandstructure — Class for calculating the bandstructure for a BulkConfiguration.
- PhononBandstructure — Class for calculating the phonon bandstructure for a BulkConfiguration.
- ComplexBandstructure — Class for representing the complex band structure for a given configuration and calculator.
- TotalEnergy — Class for calculating the total energy
- Forces — Class for calculating the forces on the atomic configuration.
- Stress — Class for calculating the stress of a configuration.
- Eigenstate — Class for calculating an eigenstate
- BlochState — Class for calculating a Bloch state
- MullikenPopulation — Class for calculating the Mulliken population for a configuration.
- ProjectionList — Class for representing a list of orbitals. Results of several analysis objects can be projected onto this limited set of orbitals.
- DensityOfStates — Class for calculating the density of states for a configuration.
- PhononDensityOfStates — Class for calculating the phonon density of states for a MoleculeConfiguration or BulkConfiguration.
- DeviceDensityOfStates — Class for representing the Device Density of States for a given configuration and calculator.
- LocalDeviceDensityOfStates — Class for representing the Local Device Density of States for a given configuration and calculator.
- MakeTrajectory — Construct a trajectory sequence of configurations, from a given Nudged Elastic Band configuration, or a list of configurations.
- OpticalSpectrum — Class for representing the optical spectrum for a configuraiton with an attached calculator.
- CurrentDensity — Class for representing the current density for a given configuration and calculator.
- ChemicalPotential — Class for calculating the chemical potential.
- Polarization — Class for calculating the polarization of a configuration.
- PiezoelectricTensor — Class for calculating the piezoelectric tensor of a configuration.
- VibrationalMode — Class for calculating the vibrational modes.
- LocalStress — Class for calculating the local stress.
- LocalStructure — Class for calculating the local structure parameters.
- ElasticConstants — Class to calculate the elastic constants of a bulk material. Uses finite strain and calculates the elastic constants from the linear stress response.
- MolecularDynamics — Function for performing a molecular dynamics simulation.
- OptimizeGeometry — Function for optimizing the geometry of the given configuration.
- Trajectory — Class for representing the trajectory of a relaxation
- FixStrain — The constraint of the strain on the unit-cell
- NVEVelocityVerlet — The MD method implementing NVE Velocity Verlet dynamics.
- NVTBerendsen — The MD method implementing Berendsen NVT dynamics.
- NPTBerendsen — The MD method implementing Berendsen NPT dynamics.
- NPTMelchionna — The MD method implementing NPT Melchionna dynamics.
- NVTNoseHoover — The MD method implementing NVTNoseHoover dynamics.
- Langevin — The MD method implementing Langevin dynamics.
- MDTrajectory — Class implementing an MD Trajectory container object.
- MaxwellBoltzmannDistribution — The class that implements the Maxwell-Boltzmann distribution of velocities for MD simulation.
- OptimizeNudgedElasticBand — Function for performing a NEB optimization.
- QuasiNewton — Quasi-Newton Optimization
- FIRE — Interface to the ase FIRE Optimizer.
- ConfigurationVelocities — Utility for using the velocities saved on a configuration as start value in an MD simulation.
- ZeroVelocities — Utility for using zero velocities as start value in an MD simulation.
- TremoloXPotentialSet — Class that stores a set of potentials as well as particle definitions
- ParticleType — Class that describes a type of particle. Particles are described by properties like their name, mass, charge, ...
- CoulombSPME — SPME (smooth particle mesh Ewald) method for systems with periodic boundary conditions.
- CoulombDSF — DSF method. Reference: "Is the ewald summation still necessary? Pairwise alternatives to the accepted standard for long-range electrostatics." Christopher J. Fennell and J. Daniel Gezelter The Journal of Chemical Physics, 2006.
- CoulombDebye — The documentation for this method is still missing.
- CoulombN2 — Simple pairwise evaluation of the coulomb potential
- CoulombN2Spline — Simple pairwise evaluation of the coulomb potential. This method smoothes the cutoff by fitting a spline between the potential value at the inner cutoff and zero at the outer cutoff.
- LennardJonesPotential — Classical Lennard-Jones potential
- LennardJonesSplinePotential — Lennard-Jones potential that uses a spline to smooth the potential near the cutoff. The spline is applied if the distance is >= a specified inner cutoff radius
- LennardJonesMNPotential — Lennard-Jones potential with variable exponents U(r_ij) = A_ij / r_ij^m - B_ij / r_ij^n
- Repulsive12Potential — A simple repulsive potential of the form U(r_ij) = c_ij / r_ij^12
- RSL2Potential — RSL2 potential
- CoulombERFCPotential — Coulomb ERFC potential
- CoulombQTaperPotential — Coulomb-QTaper potential
- GaussPotential — Gauss potential
- Stiwe2Potential — Stillinger-Weber two body potential
- Stiwe3Potential — Three body Stillinger-Weber potential
- SuttonChenPotential — Sutton-Chen two body potential
- MorsePotential — Morse potential which is smoothed by a spline
- TosiFumiPotential — TosiFumi potential which is smoothed by a spline
- BuckinghamPotential — Buckingham potential which is smoothed by a spline
- DampedDispersionPotential — Damped dispersion potential which is smoothed by a spline
- General1Potential — A simple spline-smoothed potential of the form U(r_ij) = A_ij / r_ij * exp(-r_ij / rho_ij)
- General2Potential — A simple spline-smoothed potential of the form U(r_ij) = A_ij / r_ij^2 * exp(-r_ij / rho_ij) - C_ij / r_ij
- General3Potential — A simple spline-smoothed potential of the form U(r_ij) = A_ij * exp(B_ij * (sigma_ij -r_ij))
- VessalPotential — Vessal potential which is smoothed by a spline
- ReaxFFPotential — ReaxFF potential
- EAMfssetflPotential — The documentation for this method is still missing.
- EAMsetflPotential — The documentation for this method is still missing.
- TersoffSingleTypePotential — Tersoff potential which acts between particles of the same particle type
- TersoffMixitPotential — Tersoff potential which uses data from the TersoffSingleTypePotential
- TersoffDiagPotential — Tersoff potential which uses some data from the TersoffSingleTypePotential
- TersoffDiag2Potential — The documentation for this method is still missing.
- TersoffTriplePotential — Tersoff three body potential which uses data from the TersoffSingleTypePotential
- TersoffZBLPotential — Tersoff potential for high energetic simulations. The repulsive Ziegler-Biersack-Littmark repulsive potential is used.
- BravaisLattice — The 14 Bravais lattices used to describe crystal structures.
- nlread — Function for reading configurations and results from files. The following file types are supported: NetCDF (only from ATK 10.8 and later), GPAW, ASE, XYZ, Python scripts (also from ATK 2008.10 and earlier), CAR and TRAJ (ASE trajectories).
- nlsave — Function for saving the given object to a NetCDF file.
- nlprint — Print an ASCII representation of the object to the stream pointed to by stream. A typical usage is to store the data as an ASCII file and then use a third party application for generating a visualization of the data.
- PeriodicTable — A class for representing elements from the periodic table.
- Physical quantities and units
- Spin — Class for representing spin in ATK.
- SplineInterpolation1D — Class for performing spline interpolations between data points from a one-dimensional data set.
- MonkhorstPackGrid — Class for calculating a symmetry reduced MonkhorstPackGrid grid
- processIsMaster —
Query function for parallel computation. Returns
`True`

, if the process is the master process in the parallel computation or the only process in a serial computation. Returns`False`

, if the process is a client process in a parallel calculation.

- Index