Quantum transport of charge and spin in nanostructures is an important research field of physics, chemistry, materials sciences and engineering. For nanostructures, transport features are sensitive to the material, chemical and atomic details. They are also sensitive to external fields and quantum effects. Quantum transport in nanostructures is typically under nonlinear and non-equilibrium conditions. To conduct quantitative research, it is desirable for theoretical methods to include as much microscopic physical principles as possible.

NanoDCAL (Nanoacademic device calculator) is a state-of-the-art software package for quantitative modelling of quantum transport from the atomic point of view. The inputs to nanodcal are spatial positions of the atoms forming the nanostructure; the outputs are calculated quantum transport properties such as current-voltage characteristics. NanoDCAL does these calculations by carrying out real space self-consistent field (SCF) theory within the Keldysh noneqilibrium Green’s function framework (NEGF). In this scheme, SCF is used to determine the Hamiltonian H of the nanostructure including all the atomic details. NEGF is used to determine the nonequilibrium quantum statistical information which is required to construct the density matrix. The NEGF-SCF algorithm is implemented in real space to handle device and transport boundary conditions. This modelling technique has been applied to many important research problems in the literature and has steadily evolved to cover a much wider scope of quantum transport research. NanoDCAL packages the advances of first principles device modelling so that users can focus on original research rather than spending tremendous effort to develop a complicated modelling method. NanoDCAL is fully parallelized to run on parallel environment. In addition to its own powerful capabilities, users can plug their own codes into NanoDCAL and vice versa, which allows the functionality of NanoDCAL to be extended by the users. For the theory associated with NanoDCAL, please refer to the Theory section. Descriptions of all the input and control parameters are found in the Input reference section.

NanoDCAL uses pseudopotentials and linear combination of atomic orbital (LCAO) basis set to expand physical quantities. A well tested database of pseudopotential and basis functions are provided. This database was produced by the atomic package nanobase which can be obtained from Nanoacademic Technologies [NABASE]. Should the user require additional basis functions, or functions generated by different exchange-correlation functionals or different pseudopotentials, please refer the manuals of nanobase. In particular, powerful built-in methods in NanoDCAL can be used in conjunction with nanobase to optimize the basis functions.

NanoDCAL is developed in the Matlab language. The numerically intensive parts of NanoDCAL were developed in C. Using the Matlab-C combination, the overall computation efficiency of NanoDCAL is similar to other efficient LCAO codes currently available in the density functional theory (DFT) community.

The rest of this section summarizes the main capabilities and features of NanoDCAL. When a feature is said to be experimental, it is a feature included in the current version of NanoDCAL but is still being tested, and experienced users may try it. The description of the experimental features tends to be short because these features are still evolving. When a feature is said to be released soon, it may or may not be in the current version of NanoDCAL but is being tested internally at Nanoacademic.

Systems in NanoDCAL

For typical equilibrium electronic structure analysis, NanoDCAL is similar to other LCAO based DFT packages. Its unique power is at its capability of analyzing a wide variety of nonequilibrium and nonlinear quantum transport properties using the NEGF-SCF formalism. The systems analyzable by NanoDCAL can be closed systems such as a molecule or a bulk crystal, and open systems such as devices having open leads or probes. The systems in NanoDCAL can be categorized as the following,

  • 0-probe. Conventional DFT calculation of finite number of atoms (molecule) or a periodic atomic structure (crystal) using supercell methods, in one to three dimensions.

  • 1-probe. DFT calculation of surfaces having semi-infinite geometry (instead of a slab geometry).

  • 2-probe. NEGF-DFT calculations of open 2-probe structures with one to three dimensional leads.

  • Multi-probe. NEGF-DFT calculations for open multi-probe structures.

Many applications of NanoDCAL have been carried out on a variety of physics systems, including:

  • The many tutorial examples included in the NanoDCAL package to illustrate various features

  • Magnetic tunnel junctions: Fe/MgO/Fe, Ni/molecule/Ni, Fe/LB/Fe, etc.

  • Spin injection from ferromagnetic metal to other materials such as Fe/GaAs

  • Carbon nanostructures such as nanotubes, graphene, fullerene, nanowires, etc.

  • Leakage current through the Si/SiO2 interface

  • Molecular transport junctions such as Au/BDT/Au etc

  • Conduction in metallic nanowires such as Au, Al atomic wires;

  • Conduction in thin films such as Si, Cu films

  • STM simulation of images of molecule on Si

  • Transport through metal contacts, interfaces and surfaces

  • Transport through semiconductor structures and interfaces

  • Forces, stress, structural relaxation

  • Electron-phonon interactions

  • \(\cdots\)

External fields

For 2-probe device structures, NanoDCAL includes external static electric field provided by the bias voltage self-consistently.

For 2-probe device structures, NanoDCAL includes external static uniform magnetic field self-consistently or during post analysis (experimental feature).

For 2-probe device structures, NanoDCAL includes external AC voltages on top of a DC bias, treating the AC field at the NEGF level (experimental feature).

For 2-probe device structures where leads have a finite cross-section, gate fields are included self-consistently.


For all nanostructures listed above in Section 1.1, NanoDCAL version can handle collinear spin polarized transport and non-collinear spin configurations as well as spin-orbital coupling.


For all the systems listed in Section 1.1, NanoDCAL calculates the Hamiltonian by Harris-DFT, DFT, and NEGF-DFT. Commonly used exchange-correlation functional including LDA, LSDA and various GGA are included.

NanoDCAL does LDA+U calculations within DFT and NEGF-DFT, as well as spin orbital interactions within DFT and NEGF-DFT (experimental).

NanoDCAL can take as input any user defined Hamiltonian matrix including that from theoretical toy models and carry out electronic and transport calculations.

Using NanoDCAL, electron-phonon interaction at nonequilibrium and during current flow can be calculated at the first Born approximation.

Physical quantities

NanoDCAL can be used to calculate relevant physical quantities including:

  • Electronic structure of finite, periodic, one-probe and two-probe open systems

  • Self-consistent nonequilibrium density matrix and Hamiltonian

  • Analysis of charge and spin

  • Voltage drop in the device structure

  • Transmission coefficient versus electron energy and bias voltage

  • Conductance, resistance, and magneto-resistance

  • Scattering matrix, scattering states and their real space projection

  • Band structure and complex band structures

  • Nonlinear current-voltage characteristics

  • Projected local and total density of states

  • Projected local and total density of scattering states

  • Effects of finite temperature to Fermi level smearing

  • Collinear spin polarized calculation of all the above

  • Noncollinear and general spin polarized calculations

  • Self-consistent spin-orbit interaction

  • Forces, stress

  • Vibration frequency, electron-phonon coupling strength, inelastic current.

  • Current density

  • Effects of external static magnetic field to transport

  • Equilibrium transport in multi-probe devices

Algorithm features

NanoDCAL applies advanced algorithms for numerical computation:

  • Multiple zeta, optimized basis sets (see manuals for nanobase [NABASE])

  • Two-probe and multi-probe systems having different electrode materials

  • Variety of mixing schemes in SCF iterations

  • Automatic selection of stable and accurate self-energy methods for electrodes

  • Automatic spatial symmetry analysis to reduce calculation

  • Parallelized and distributed computation

  • Linear scaling algorithm along the transport direction

  • Automatic testing the correctness of installation

  • \(\cdots\)

Hardware, operating system and license

NanoDCAL runs on computers that support Matlab (version 2014a or later). It has been run on Windows (7, 10) and various Linux systems (Ubuntu, CentOS) having distributed or shared memory.

NanoDCAL OpenMPI for parallel computation. We suggest that you first check if your institution has a site license of Matlab. If not, the following are two options:

  • From Mathworks, obtain a Matlab license. This option allows NanoDCAL to run on a single cpu where the Matlab is installed.

  • From Mathworks, obtain a license of Matlab and a license of Matlab compiler toolbox. This option allows NanoDCAL to run on parallel clusters and/or computers connected by a local area network (LAN).

[NABASE] (1,2)

Nanobase is an atomic package of Nanoacademic Technologies. It can be obtained from Nanobase solves single relativistic all electron atom to generate norm conserving non-local pseudopotential and the corresponding pseudo-atomic orbital (PAO); it then confines the PAOs for application in the nanodcal quantum transport package. Nanobase is developed in Matlab with a small part in C. The PAO functions serve as the linear combination of atomic orbital (LCAO) basis set for expanding wave functions and other physical operators in the density functional theory (DFT) calculation.