Control parameters for the calculation

calculation.control.lengthUnit

keyword: calculation.control.lengthUnit

possible values: ‘au’, ‘a.u.’, ‘atomic unit’, ‘Bohr’, ‘an’, ‘ang’, ‘angstrom’, ‘nm’, ‘nanometer’, where ‘au’ ‘a.u.’, and ‘atomic unit’ are for Bohr, ‘an’ and ‘ang’ for angstrom, and ‘nm’ for nanometer.

default value: ‘angstrom’

description: the unit of length used in the input file. For example, it will be used as the unit of the x-, y-, and z-coordinates of the atoms, the unit of centralCellVectors or the group of centralCellVector1, centralCellVector2, and centralCellVector3. Note: 1 Bohr = 0.529177208319 Angstrom

an example:

calculation.control.lengthUnit = 'au'

calculation.control.energyUnit

keyword: calculation.control.energyUnit

possible values: ‘au’, ‘a.u.’, ‘atomic unit’, ‘Hartree’, ‘Ryd’, ‘Ryd.’, ‘Rydberg’, ‘eV’, where ‘au’ ‘a.u.’, and ‘atomic unit’ are for Hartree, ‘Ryd’ and ‘Ryd.’ for Rydberg.

default value: ‘eV’

description: the unit of energy used in the input file. Note: 1 Hartree = 27.211383411 eV = 2 Rydberg.

an example:

calculation.control.energyUnit = 'au'

calculation.control.angleUnit

keyword: calculation.control.angleUnit

possible values: ‘d’, ‘deg’, ‘deg.’, ‘degree’, ‘r’, ‘rad’, ‘rad.’, ‘radian’, where ‘d’, ‘deg’, ‘deg.’, and ‘degree’ are for degree, and ‘r’, ‘rad’, ‘rad.’, and ‘radian’ are for radian.

default value: ‘degree’

description: the unit of angle used in the input file.

an example:

calculation.control.angleUnit = 'r'

calculation.control.precision

keyword: calculation.control.precision

possible values: ‘high’, ‘normal’, ‘low’

default value: ‘normal’

description: used to control default values of the following parameters: (1) calculation.realspacegrids.E_cutoff low — 20 Hartree normal — 50 Hartree high — 150 Hartree (2) calculation.k_spacegrids.L_cutoff low — 20 Bohr normal — 40 Bohr high — 80 Bohr (3) calculation.complexEcontour.numberOfPoints low — 20 normal — 40 high — 60 (4) calculation.complexEcontour.numberOfPoints2 low — 4 normal — 8 high — 16 (5) calculation.realEcontour.interval low — 2e-3 Hartree normal — 5e-4 Hartree high — 1e-4 Hartree (6) calculation.realEcontour.eta low — 5e-4 Hartree normal — 2e-5 Hartree high — 1e-6 Hartree (7) calculation.SCF.convergenceCriteria low — 1e-3 Hartree for hamiltonian matrix and 1e-3 for density matrix normal — 1e-4 Hartree for hamiltonian matrix and 1e-4 for density matrix high — 1e-5 Hartree for hamiltonian matrix and 1e-5 for density matrix

an example:

calculation.control.precision = 'normal'

calculation.control.parallel

keyword: calculation.control.parallel

possible values: 1, true, 0, false

default value: false

description: If it is true or 1, the calculator will work in a parallel calculation mode. Otherwise, it will work in a serial calculation mode. Note that for parallel computations, MPICH2 needs to be set up first.

an example:

calculation.control.parallel = false

calculation.control.logOutputLevel

keyword: calculation.control.logOutputLevel

possible values: an integer array

default value: [1 1]

description: logOutputLevel is designed to control both the log output to screen and to files. If the length of the logOutputLevel is n, there will be n-1 log files generated. logOutputLevel(1) is for screen control and logOutputLevel(ii+1) is for the control of the ii’th file. The higher the value of logOutputLevel is, the more detailed information will be written into the log file. Note: If only one log file is requested, it is named as log.txt. If more than one log files are requested, their names will be named like log3.txt or log5.txt, where the integer 3 or 5 in the name is the corresponding output level.

an example:

calculation.control.logOutputLevel = [1 1]

calculation.control.temporaryDirectory

keyword: calculation.control.temporaryDirectory

possible values: any string representing the directory where some temporary data generated during the calculation will be saved.

default value: ./temporarydata

description: This parameter is for the user to redirect the temporary data generated during a calculation to a place where the disk space is large and the I/O speed is fast. Normally, in a parallel calculation, this parameter should be given to defined a place on a local disk.

an example:

calculation.control.temporaryDirectory = './tmp1'

calculation.control.dataFormat

keyword: calculation.control.dataFormat

possible values: compact, distributed

default value: compact

description: If compact, all calculated data will be saved in the class object; if distributed, calculated data will be saved separately.

an example:

calculation.control.dataFormat = distributed

calculation.control.networkFileSystem

keyword: calculation.control.networkFileSystem

possible values: 1, true, 0, false

default value: true

description: Network File System (NFS) is a protocol allowing a computer to access files over a network as easily as if the network device was attached to the local disks of the computer. In a parallel calculation, when control.networkFileSystem is set to true, only one copy of calculated data is saved, and each processor will use the same copy through the network. When control.networkFileSystem is false, each processor saves its own copy of the calculated data.

an example:

calculation.control.networkFileSystem = true

calculation.control.txtResultsOutputLevel

keyword: calculation.control.txtResultsOutputLevel

possible values: an integer

default value: 1

description: Some calculated results may be given in files of *.mat (also in *.xml, some also in *.txt) format. txtResultsOutputLevel is used to control the output of those files.

if it is 0, no *.mat file will be saved

if it is >= 1, Hamiltonian.mat (Hamiltonian matrix of the whole system) DensityMatrix.mat (density matrix of the part related to the central region) are saved.

if it is >= 2, in addition, DensityFunction.mat (real space charge density, the part within the central box) PotentialFunctionVeff.mat (real space potential function Veff, i.e. sum of the potential functions delta-hartree and exchange-correlation, the part within the central box)

if it is >= 3, in addition, HamiltonianMatrixT.mat (the kinetic component of the hamiltonian matrix, the part related to the central region) HamiltonianMatrixVna.mat (the neutral-atom component of the Hamiltonian matrix, the part related to the central region) HamiltonianMatrixVnl.mat (the nonlocal pseudopotential component of the Hamiltonian matrix, the part related to the central region) HamiltonianMatrixVeff.mat (the effective potential component, i.e. sum of delta-Hartree and exchange-correlation components of the Hamiltonian matrix, the part related to the central region) HamiltonianMatrixVhubbard.mat (the Hubbard component of the Hamiltonian matrix, the part related to the central region) HamiltonianMatrixVso.mat (the spin-orbit-interaction component of the Hamiltonian matrix, the part related to the central region)

if it is >= 4, in addition, DensityFunctionRna.mat (real space neutral-atom charge density, the part within the central box) PotentialFunctionVna.mat (real space neutral-atom potential function Vna, i.e. sum of the neutral-atom Coulomb potential and local pseudopotential, the part within the central box) PotentialFunctionVdh.mat (real space delta-Hartree potential function Vdh, the part within the central box) PotentialFunctionVxc.mat (real space exchange-correlation potential function Vxc, the part within the central box)

if it is >= 5, in addition, HamiltonianMatrixStaticPartOfH.mat (the static part of the Hamiltonian matrix, the part related to the central region)

if it is >= 6, in addition, DensityFunctionRpc.mat (real space partial-core charge density, the part within the central box) DensityFunctionReffna.mat (real space effective neutral-atom charge density, i.e. an effective charge density which produces a Coulomb potential that is exactly same as Vna, the part within the central box)

an example:

calculation.control.txtResultsOutputLevel = 1

calculation.control.largeSystem

keyword: calculation.control.largeSystem

possible values: 1, true, 0, false

default value: determined by nanodcal.

description: If it is true or 1, nanodcal will use some special algorithms for saving memory, otherwise, it will use other algorithms for saving time.

an example:

calculation.control.largeSystem = false

calculation.control.byPassCentralCellCheck

keyword: calculation.control.byPassCentralCellCheck

possible values: 1, true, 0, false

default value: false

description: Only used for open system. If it is false or 0, the code will automatically check the consistency between the central cell vectors and lead cell vectors, and the positions of the atoms in the central cell and in the lead cells. If it is true or 1, nanodcal will pass by the check for saving time.

an example:

calculation.control.byPassCentralCellCheck = true