User Defined Hamiltonian
So far we have focused on how to calculate the Hamiltonian of a system by NanoDCAL. There are many situations where a user already has the Hamiltonian of his/her system and just wishes to analyze the physical properties. For example, one may already have a very good tight binding Hamiltonian for graphene and wishes to calculate transport properties of it. Another example may be a Hamiltonian matrix defined on a finite element or a finite difference mesh, and one wants to use it to do transport calculations. Many researchers have spent a lot of effort to construct very good semi-empirical electronic potentials for various systems, or have calculated Hamiltonian by their means. They can use NanoDCAL to predict quantum transport properties (and other electronic properties) using their own Hamiltonian. This is a very powerful feature of NanoDCAL that allows any one who has a proper Hamiltonian of a system to do quantum transport analysis.
There are several examples in the /examples directory, for instance the /Group6_NiO_Bulk example. In this subdirectory, you will find two files, ‘Hamiltonian.nad’ and ‘Hamiltonian.ascii’. Both files contain the user defined Hamiltonian of a NiO crystal system. The former is a MAT-file and the latter a text file. Nanodcal does not care how the user has found the Hamiltonian, as long as the matrix is packed in the same format as NanoDCAL output file ‘Hamiltonian.mat’ or ‘Hamiltonian.txt’. The following keyword tells NanoDCAL to apply a user defined Hamiltonian for whatever calculation:
system.hamiltonian = Hamiltonian.nad