Electronic transport properties of molecules, nano-wires, and bulks such as superlattice structures can be calculated based on a non-equilibrium Green function (NEGF) method within the collinear DFT. The features and capabilities are listed below:
The details of the implementation can be found in Ref. [43]. The usage of the functionalities is explained in the following subsections.
System we consider
In the current implementation of OpenMX, a system shown in Fig. 29(a) is treated by the NEGF method. The system consists of a central region connected with infinite left and right leads, and the two dimensional periodicity spreads over the bc-plane. Considering the two dimensional periodicity, the system can be cast into a one-dimensional problem depending on the Bloch wave vector shown in Fig. 29(b). Also, the Green function of the region is self-consistently determined in order to take account of relaxation of electronic structure around the interface between the central region and the region . It should be noted that the electronic transport is assumed to be along the a-axis in the current implementation. Thus, users have to keep in mind the specification when the geometrical structure is constructed. See also the subsection 'Step 1: The calculations for leads'.
Computational flow
The NEGF calculation is performed by the following three steps:
Step 1 Step 2 Step 3
Each step consists of
The band structure calculations are performed for the left and right leads using a program code 'openmx'. The calculated results will be used to represent the Hamiltonian of the leads in the NEGF calculation of the step 2.
The NEGF calculation is performed for the structure shown in Fig. 29 under zero or a finite voltage using a program code 'openmx', where the result in the step 1 is used for the construction of the leads.
By making use of the result of the step 2, the transmission and current are calculated by a program code 'TranMain'.
An example: carbon chain
As a first trial, let us illustrate the three steps by employing a carbon chain. Before going to the illustration, a code 'TranMain' used in the step 3 has to be compiled in the source directory as follows:
% make TranMain
Step 1
%./openmx Lead-Chain.dat | tee lead-chain.std
Step 2
%./openmx NEGF-Chain.dat | tee negf-chain.std
Step 3
%./TranMain NEGF-Chain.dat
The calculations can be traced by using the input files stored in a directory of 'work/negf_example'. By plotting the sixth column in 'negf-chain.tran0_0' as a function of the fourth column, you can see a transmission curve as shown Fig. 30.