# Introduction

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 featuresMagnetic 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.

## Spin

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.

## Hamiltonian

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).

Nanobase is an atomic package of Nanoacademic Technologies. It can be obtained from www.nanoacademic.com. 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.