Introduction and Rules for the Input File

Nanodcal is a flexible method for density functional theory (DFT) calculations of electronic structure and non-equilibrium quantum transport property of condensed matter and molecular systems. In order for nanodcal to perform a calculation, certain input parameters should be set prior to the run. For a wide scope of research problems, the input parameters to nanodcal are set to cover the physical systems, the computational math, the algorithm features, the varieties of DFT functionals, the numerical details, as well as post analysis of the results, etc..

Nanodcal allows users to replace many existing calculation methods by plug-in calculators of their own, to add/replace terms in the Hamiltonian, or input their own Hamiltonian for calculations of a wide range of physical properties. These also require certain input parameters to tell nanodcal how to behave and what to do.

This manual presents all the parameters that can be accessed. Most parameters have default values. The flexibility of setting input parameters allow users to optimize their calculation. In the /example directory of nanodcal, there are many examples covering a wide range of applications and users are strongly suggested to study the input files of those examples. One will quickly find that for even quite complicated calculations, there are not many parameters to set by the user. This Input Reference manual also contains certain parameters that control functions of nanodcal which are still “experimental”. The experimental functionalities are still being tested but experienced users may try them.

Importantly, an erroneous combination of input parameters and/or erroneous parameters themselves can produce nonsense, it may also halt or generate unexpected behavior of nanodcal. Hence the best start is to spend a bit of time in the examples to gain some initial insight to the use of nanodcal. Finally, if you detect a possible bug, we appreciate if you can report it at Nanoacademic forum or sending email to

In the input file, a parameter is specified in the following format: keyWord = keyValue where keyWord is a name of the parameter and the keyValue is its value. When an input file is parsed, the following rules are obeyed:

  1. Comment line: A line starting with the character % or part of a line after the character %, will not be parsed. A line starting with the character # will not be parsed.

  2. Including another file: The pattern &includefile = filename is used for including a file with name of filename to the current place.

  3. Blank line: A blank line is allowed to put anywhere in the input file.

  4. Repeated parameters: If a parameter appears more than once inside the input file, only the last appearance is used and all previous input values are discarded.

  5. Long line: A long line can be split into two or more lines by terminating each incomplete line with an ellipsis (…).

  6. Case sensitivity: The keyWord is case-sensitive.