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 and non-collinear DFT methods. The features and capabilities are listed below:
The details of the implementation can be found in Ref. [54]. First the usage of the functionalities for the collinear case is explained in the following subsections. After then, the non-collinear case will be discussed.
System we consider
In the current implementation of OpenMX Ver. 3.7, 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 bias 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 directory 'source' as follows:
% make TranMainIf the compilation is successful, you will find the executable file 'TranMain', and may copy it your work directory, possibly 'work'. Then, you can proceed the following three calculations:
Step 1
%./openmx Lead-Chain.dat | tee lead-chain.stdA file 'negf-chain.hks' is generated by the step 1.
%./openmx NEGF-Chain.dat | tee negf-chain.stdA file 'negf-chain.tranb' is generated by the step 2.
%./TranMain NEGF-Chain.dat'negf-chain.tran0_0', 'negf-chain.current', and 'negf-chain.conductance' are generated by the step 3.
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 in Fig. 30.