System Description¶
Parameters describing physical systems¶
system.object¶
key word |
: |
system.object |
possible values |
: |
a file name of a saved cNA_LCAO object |
default value |
: |
\([\ ]\) (empty) |
description |
: |
If it is not empty, the system is defined by the input |
object. In this case, all other parameters related to |
||
the system in the input file will not be used. |
||
an example |
: |
system.object = cNA_LCAO_object.mat |
system.hamiltonian¶
key word |
: |
system.hamiltonian |
possible values |
: |
a file name of an user provided hamiltonian matrix |
default value |
: |
\([\ ]\) (empty) |
description |
: |
If it is not empty, the system is defined by the input |
Hamiltonian matrix. In this case, all other parameters |
||
related to the system in the input file will not be |
||
used. In addition, since the real space wavefunction |
||
basis have not been given explicitly, any calculation |
||
related to real space wavefunction can not be performed. |
||
The input file can be either a mat-file or xml-file, or |
||
text file, but must be in the same format as nanodcal |
||
output file Hamiltonian.mat or Hamiltonian.xml, or |
||
Hamiltonian.txt. |
||
an example |
: |
system.hamiltonian = \([\ ]\) |
system.name¶
key word |
: |
system.name |
possible values |
: |
any string |
default value |
: |
NoName |
description |
: |
a string provided by user to label the system and |
it is not used in the calculation. |
||
an example |
: |
system.name = Si-nanowire |
system.spinType¶
key word |
: |
system.spinType |
possible values |
: |
NoSpin, CollinearSpin, CoplanarSpin, GeneralSpin |
default value |
: |
NoSpin |
description |
: |
within the framework of non-relativistic theory, spin |
should be an intrinsic physical property of the system |
||
rather than an input parameter. Usually, some knowledge |
||
about the type of spin is known before the calculation |
||
and this priori knowledge can be used to save |
||
computation time. From the computational point of view, |
||
the parameter spinType is needed. |
||
We first define a vector of spin polarization which, |
||
of course, is along the direction of the polarization. |
||
Its amplitude is defined as a ratio of |
||
(N_p-N_ap)/(N_p+N_ap), where N_p (N_ap) is the number |
||
of electrons whose spin are (anti) parallel to the |
||
spin polarization. By considering the N above as the |
||
charge density, spin polarization can also be viewed |
||
as a function of position in the system. |
||
NoSpin is used for a system in which spin polarization |
||
is zero; CollinearSpin is used for a system in which |
||
spin polarizations at different places are all along the |
||
same direction (either parallel or anti-parallel); |
||
CoplanarSpin is used for a system in which spin |
||
polarizations at different places are all within a same |
||
plane; GeneralSpin is used for a system in which spin |
||
polarizations at different places have their own |
||
directions, or there is no a priori knowledge about |
||
the spins in the system. |
||
an example |
: |
system.spinType = NoSpin |
system.centralCellVectors¶
key word |
: |
system.centralCellVectors |
possible values |
: |
3\(\times\)3 or 1\(\times\)6 or 1\(\times\)3 double matrix |
default value |
: |
|
considered as a molecule when the parameter |
||
centralCellVectors is not given, and it will be |
||
determined by nanodcal automatically. |
||
|
||
centralCellVectors may be automatically determined by |
||
the geometry of the leads and the buffer layers. |
||
|
||
it must be given, otherwise the system will be |
||
considered as a molecule by nanodcal. |
||
description |
: |
This parameter defines the three base vectors of the |
central cell, either the primitive or super cell for a |
||
periodic system or the central scattering region for an |
||
open system, which is with a shape of parallelepiped. |
||
When the parameter is a 3\(\times\)3 double matrix, its each |
||
column forms one of the three basis vectors. When |
||
the parameter is a 1\(\times\)6 double matrix, it defines the |
||
three basis vectors by their lengths a,b,c; and the |
||
angles between them, alpha, beta, gamma. The convention |
||
is that the a-axis is collinear with x-axis, and the |
||
b-axis lies in the xy-plane. When the parameter is a |
||
1\(\times\)3 double matrix, the alpha, beta, gamma angles are |
||
all equal to \(\pi\)/2. |
||
The default unit for angle is degree. |
||
an example |
: |
system.centralCellVectors = … |
[[1.3 0 0] [0 1.6 0] [0 0 2.5]] |
system.centralCellVector1 or system.centralCellVector2¶
key word |
: |
system.centralCellVector1 or system.centralCellVector2 |
or system.centralCellVector3 |
||
possible values |
: |
3\(\times\)1 or 1\(\times\)3 double vector |
default value |
: |
no default value |
description |
: |
it is a alternative method to input the |
centralCellVectors. This input value will not be used |
||
when system.centralCellVectors is provided. |
||
an example |
: |
system.centralCellVector1 = [1 0 0] |
system.centralCellVector2 = [0 1 0] |
||
system.centralCellVector3 = [0 0 1] |
system.atomBlock¶
key word |
: |
system.atomBlock |
possible values |
: |
N (the number of atoms in the central cell) |
default value |
: |
no default value, must be input |
description |
: |
all neutral atom properties related to the atoms which |
consist in the central cell are defined in this block. |
||
This line must immediately be followed by another (N+2) |
||
lines: one line of headers, N data lines for all of the |
||
N atoms, and finally a line with a single word end to |
||
indicate the end of the atomic data block. |
||
The first four headers in the header line must be (not |
||
necessarily in order) X, Y, Z, and AtomType. The |
||
value of [X Y Z] describes the position of each site in |
||
the system (see also the parameter |
||
system.atomCoordinateFormat). The value of AtomType |
||
describes what atomic species is located in that site, |
||
it is normally the symbol of the atomic element. |
||
Another header must be given is OrbitalType which |
||
describes what atomic orbitals of the atoms are used as |
||
the wavefunction basis in the LCAO calculation. It is |
||
normally SZ, SZP, DZ, or DZP. While AtomType |
||
and OrbitalType could be any string specified by an |
||
user, the pre-calculated data file of the corresponding |
||
neutral atom must be named as |
||
AtomType_OrbitalType.nad, or |
||
AtomType_OrbitalType.mat, and located either in |
||
directory where the calculation is performed, or in the |
||
directory $NANODCALROOT/neutralatomdata. |
||
See manual for more information about the data files |
||
concerning the neutral atoms. |
||
The value of OrbitalType of each individual atom can |
||
be specified differently, i.e., all atoms can have their |
||
own unique basis different from each other, even if |
||
they have the same AtomType. If all the atoms have the |
||
same OrbitalType, the OrbitalType can be specified |
||
elsewhere in one shot for all the atoms by the |
||
parameter system.orbitalType. |
||
Other possible headers are SpinPolarization, |
||
SpinPolarization_x, SpinPolarization_y, |
||
SpinPolarization_z; SpinPolarization_r, |
||
SpinPolarization_theta, SpinPolarization_phi; etc. |
||
SpinPolarization is used for CollinearSpin system to |
||
describe the initial polarization of the atom. The set |
||
of SpinPolarization_x, SpinPolarization_y, and |
||
SpinPolarization_z and the set of SpinPolarization_r, |
||
SpinPolarization_theta, and SpinPolarization_phi are |
||
used for CoplanarSpin or GeneralSpin system to |
||
describe the initial polarization of the atom. When a |
||
system is specified as CoplanarSpin, the values of |
||
SpinPolarization_y or SpinPolarization_phi will |
||
automatically be set to zero. |
||
The default unit of angle is degree. |
||
an example |
: |
system.atomBlock = 2 |
AtomType OrbitalType X Y Z SpinPolarization |
||
Fe DZP 0.000000 0.000000 0.000000 0.200000 |
||
Fe DZP 2.610100 2.610100 2.610100 0.200000 |
||
end |
system.atomFile¶
key word |
: |
system.atomFile |
possible values |
: |
any string representing the name of an input atomfile |
default value |
: |
no default value |
description |
: |
In this alternative input mode, the content of the data |
block of system.atomBlock is written into a separate |
||
file (See the description of system.atomBlock). The |
||
file atomFile contains (N+2) lines where N is the |
||
number of atoms in the central cell. While the first |
||
line is the integer N, the rest (N+1) lines are |
||
exactly the same as those defined in the block of |
||
system.atomBlock. The line of end is needed when there |
||
are extra data lines after the (N+2) line in the file. |
||
This input value will not be used when system.atomBlock |
||
is given. |
||
an example |
: |
system.atomFile = system.xyz |
system.atomPositionShift¶
key word |
: |
system.atomPositionShift |
possible values |
: |
a 3\(\times\)1 double matrix |
default value |
: |
[0 0 0] |
description |
: |
In nanodcal calculations, we suggest that users put all |
the atoms inside the central cell box. This parameter |
||
helps to shift all the coordinates which are defined in |
||
the system.atomFile or system.atomBlock, by a constant |
||
vector. In other words, the real coordinates of atoms |
||
used by nanodcal will be the original ones |
||
plus this input parameter. |
||
an example |
: |
system.atomPositionShift = [9 8 7] |
system.atomCoordinateFormat¶
key word |
: |
system.atomCoordinateFormat |
possible values |
: |
cartesian or fractional |
default value |
: |
cartesian |
description |
: |
The format of the atomic coordinates defined in |
system.atomBlock or system.atomFile. If cartesian, the |
||
coordinates are defined in the normal cartesian system. |
||
If fractional, the coordinates are defined on the basis |
||
of system.atomFractionalCoordinateBaseVectors. |
||
an example |
: |
system.atomCoordinateFormat = fractional |
system.atomFractionalCoordinateBaseVectors¶
key word |
: |
system.atomFractionalCoordinateBaseVectors |
possible values |
: |
3\(\times\)3 or 1\(\times\)6 or 1\(\times\)3 double matrix |
default value |
: |
system.centralCellVectors |
description |
: |
When system.atomCoordinateFormat is fractional, this |
parameter gives the three base vectors with which the |
||
fractional coordinates are defined. |
||
When the parameter is a 3\(\times\)3 double matrix, its each |
||
column forms one of the three basis vectors. When |
||
this parameter is a 1\(\times\)6 double matrix, it defines the |
||
three basis vectors by giving their lengths, a, b, and |
||
c, and the angles between them, alpha, beta, and gamma, |
||
with the convention that the a-axis is collinear with |
||
the x-axis, and the b-axis lies in the xy-plane. When |
||
the parameter is a 1\(\times\)3 double matrix, the alpha, beta, |
||
and gamma are all assumed to be \(\pi\)/2. |
||
The default unit of angle is degree. |
||
an example |
: |
system.atomFractionalCoordinateBaseVectors = … |
[[1.3 0 0] [0 1.6 0] [0 0 2.5]] |
system.atomPositionPrecision¶
key word |
: |
system.atomPositionPrecision |
possible values |
: |
a small number |
default value |
: |
1e-3 Bohr |
description |
: |
Used as a criterion in symmetry analysis. If the |
distance of two atoms or their images is less than this |
||
parameter, the atoms are considered to occupy the same |
||
site. |
||
an example |
: |
system.atomPositionPrecision = 1e-6 |
system.orbitalType¶
key word |
: |
system.orbitalType |
possible values |
: |
any string |
default value |
: |
AtomicData |
description |
: |
orbitalType describes what atomic orbitals of the atoms |
are used as the wavefunction basis in the LCAO |
||
calculations. See relevant part of the description of |
||
system.atomBlock. The input value will not be used when |
||
the information of orbital type has been given in |
||
system.atomBlock or in the file of system.atomFile. |
||
an example |
: |
system.orbitalType = DZP |
system.neutralAtomDataDirectory¶
key word |
: |
system.neutralAtomDataDirectory |
possible values |
: |
any string representing the directory where the |
calculated neutral atom data are saved. |
||
default value |
: |
$NANODCALROOT/neutralatomdata |
description |
: |
This input is for users to apply their own neutral atom |
data. |
||
an example |
: |
system.neutralAtomDataDirectory = ./neutralatomdata |
system.numberOfElectrons¶
key word |
: |
system.numberOfElectrons |
possible values |
: |
a double value |
default value |
: |
calculated automatically by nanodcal |
description |
: |
the number of electrons in (the central cell of) the |
system. This value will be generated automatically by |
||
nanodcal and normally, there is no need for an user to |
||
input it. However, this input offers the opportunity |
||
to calculate a charged system. |
||
an example |
: |
system.numberOfElectrons = 88 |
system.numberOfLeads¶
key word |
: |
system.numberOfLeads |
possible values |
: |
0, 2 (number of leads in the system) |
default value |
: |
0 |
description |
: |
the number of leads (probes) in the system. |
an example |
: |
system.numberOfLeads = 2 |
system.typeOfLead1, system.typeOfLead2, …¶
key word |
: |
system.typeOfLead1, system.typeOfLead2, … |
possible values |
: |
top, bottom, front, back, left, and right |
default value |
: |
no default value, must be given |
description |
: |
the value must be given for each of the leads in the |
system. It describes the relative position of the lead |
||
to the central scattering region. More precisely, |
||
left means the direction of [ 0 0 -1] |
||
right means the direction of [ 0 0 1] |
||
top means the direction of [ 0 1 0] |
||
bottom means the direction of [ 0 -1 0] |
||
front means the direction of [-1 0 0] |
||
back means the direction of [ 1 0 0] |
||
In two-probe calculations, the pair of left and |
||
right is recommended for possible better computation |
||
efficiency. |
||
an example |
: |
system.typeOfLead1 = left |
system.typeOfLead2 = right |
system.voltageOfLead1, system.voltageOfLead2¶
key word |
: |
system.voltageOfLead1, system.voltageOfLead2 |
possible values |
: |
V, a double value |
default value |
: |
0 |
description |
: |
the bias voltage applied to the lead, in the unit of |
Volt. The change of chemical potential of the lead due |
||
to the bias voltage is -eV. |
||
an example |
: |
system.voltageOfLead1 = 0 |
system.voltageOfLead2 = 1.2 |
system.spinDirectionOfLead1, system.spinDirectionOfLead2¶
key word |
: |
system.spinDirectionOfLead1, system.spinDirectionOfLead2 |
possible values |
: |
a 3\(\times\)1 array, a 2\(\times\)1 array, or a number |
default value |
: |
the direction of the total spin of a lead which is |
calculated as a periodic bulk system |
||
description |
: |
If a lead which is a periodic bulk structure has |
freedom to change the direction of its total spin, this |
||
input parameter gives the desired direction of the total |
||
spin of that lead when it is used as a part of the |
||
device system. |
||
When it is a 3\(\times\)1 array, this input is a directional |
||
vector (not necessarily normalized) defined in cartesian |
||
coordinates. |
||
When it is a 2\(\times\)1 array, this input is a directional |
||
vector defined in spherical coordinate system, i.e, |
||
[theta, phi]. |
||
When it is a number s, it means the the direction is |
||
[0, 0, s]. |
||
an example |
: |
system.spinDirectionOfLead1 = [0 0 1] |
system.spinDirectionOfLead2 = [0 0 -1] |
system.objectOfLead1, system.objectOfLead2¶
key word |
: |
system.objectOfLead1, system.objectOfLead2 |
possible values |
: |
a file name of a saved cNA_LCAO object of the lead, or |
an input file name based on which the lead object can |
||
be calculated |
||
default value |
: |
no default value, must be input |
description |
: |
The calculation of a system with leads can be performed |
in two steps. The first step is to perform calculation |
||
for each lead which is considered equivalently as an |
||
infinite periodic system. In the second step, the |
||
physical properties (potential, density etc.) of the |
||
leads are used as boundary conditions applied to the |
||
central scattering region of the device. In this |
||
scenario, this input value is normally a filename of |
||
the calculated and saved results of the leads. |
||
This input can also be just another input file which |
||
initiates a complete calculation of the leads. Please |
||
note that all information about the leads are described |
||
indirectly by this input file. Please also note |
||
that if this input is another input file for a lead |
||
calculation, the current directory will be changed to |
||
that of the lead input file when performing the |
||
calculation for the lead. |
||
an example |
: |
system.objectOfLead1 = ../leftlead/cNA_LCAO_object.mat |
system.objectOfLead2 = ../rightlead/cNA_LCAO_object.mat |
system.numberOfGates¶
key word |
: |
system.numberOfGates |
possible values |
: |
an integer |
default value |
: |
0 |
description |
: |
the number of gates in the system. Gates are |
capacitively coupled to the device scattering region. |
||
They affect the device by providing effective |
||
boundary conditions to the electrostatic potential. |
||
an example |
: |
system.numberOfGates = 0 |
system.typeOfGate1, system.typeOfGate2¶
key word |
: |
system.typeOfGate1, system.typeOfGate2 |
possible values |
: |
top, bottom, front, back, left, and right |
default value |
: |
no default value, must be specified |
description |
: |
the value must be given for each of the gates in the |
system. It describes the relative position of the gate |
||
to the central scattering region. More precisely, |
||
left means the direction of [ 0 0 -1] |
||
right means the direction of [ 0 0 1] |
||
top means the direction of [ 0 1 0] |
||
bottom means the direction of [ 0 -1 0] |
||
front means the direction of [-1 0 0] |
||
back means the direction of [ 1 0 0] |
||
an example |
: |
system.typeOfGate1 = top |
system.typeOfGate2 = bottom |
system.voltageOfGate1, system.voltageOfGate2¶
key word |
: |
system.voltageOfGate1, system.voltageOfGate2 |
possible values |
: |
Vg, a double value |
default value |
: |
0 |
description |
: |
the voltage on the gate located at the boundary |
of the system, the unit is Volt. Note that |
||
the corresponding energy shift is -eVg. |
||
an example |
: |
system.voltageOfGate1 = -3 |
system.voltageOfGate2 = 0 |
Parameter describing calculations¶
calculation.name¶
key word |
: |
calculation.name |
possible values |
: |
one from the following list, or a cell array with |
each cell containing one from the following list. |
||
init, initial, initialize, initialization; |
||
NSC, NSCF, nonSelfConsistentField, |
||
rigidAtomicField, neutralAtomicPotential; |
||
HarrisField, HarrisEnergyFunctional, |
||
HarrisFunctional, HarrisEnergy, |
||
Harris, HarrisApproximation; |
||
SC, SCF, selfConsistentField, selfConsistent; |
||
PSC, PSCF, PostSCF, postField, |
||
postSelfConsistencyField, postSelfConsistentField; |
||
TE, totalEnergy, energy; |
||
TP, P, momentum; |
||
force; |
||
stress, stressMatrix; |
||
Hessian, HessianMatrix, dynamicalMatrix; |
||
BS, bandStructure; |
||
CBS, complexBandStructure |
||
FBS, fullBandStructure, fermiSphere, fermiSurface |
||
eig, eigs, eigen, eigenStates; |
||
SS, scatteringStates; |
||
DOS, densityOfStates; |
||
DOSS, densityOfScatteringStates; |
||
CH, charge, electron, electrons; |
||
PO, potential; |
||
EPhCoupling; |
||
TR, TM, transmission; |
||
TRC, TMC, channel, transchannel, |
||
transmission-channel, transmissionchannel; |
||
CO, COND, conductance; |
||
ACCO, ACCOND, acConductance; |
||
IVC, IVCurve; |
||
IETS; |
||
relax, relaxation, structureRelaxation; |
||
basisOptimization, BO; |
||
default value |
: |
no default value, must be provided. |
description |
: |
The above list of possible values are divided into |
groups by ;. Values in the same group are all |
||
equivalent, i.e. they invoke the same calculation. |
||
Note that when choosing more than one calculation, |
||
they must be arranged in a physically correct |
||
(meaningful) order. |
||
The following are descriptions of each calculation. |
||
initialization : for construction of the system |
||
object without calculating any physical property. |
||
rigidAtomicField : a simple summation of precalculated |
||
atomic self-consistent fields of all atoms involved in |
||
the system without any further electronic relaxation. |
||
This calculation generates the Hamiltonian and the real |
||
space charge density needed for further calculations. |
||
This field or potential is not self-consistent. In a DFT |
||
calculation, this field accounts for those terms of the |
||
Hamiltonian that need to be computed only once outside |
||
of the self-consistent loop. |
||
HarrisField : same as the rigidAtomicField |
||
calculation but within the Harries functional method. |
||
The Harris total energy is an approximation of the DFT |
||
self-consistent total energy. |
||
The HarrisField calculation can also be used together |
||
with the SCF option. After 2 or 3 self-consistent |
||
steps (by setting calculation.SCF.maximumSteps = 2 or |
||
3), the estimation of total energy may be somewhat |
||
improved. |
||
SCF : generates Hamiltonian and density which are |
||
consistent with each other. |
||
PostSCF : modify the (self-consistent) Hamiltonian |
||
by various additional terms, e.g. the terms caused by |
||
an applied external magnetic field. |
||
totalEnergy: the total energy of the system as defined |
||
by the density-functional theory. The total energy can |
||
also be decomposed into several terms, like kinetic energy, |
||
band structure energy, short range energy, and so on. |
||
momentum: calculate total electronic momentum of the |
||
system and also the electronic momentum matrix. |
||
force: atomic forces, which can also also be decomposed |
||
into several terms, like kinetic force, short range |
||
force, and so on. |
||
stress: the stress tensor of the system, which is |
||
defined as the negative derivative of the total energy |
||
with respect to the strain tensor. The stress tensor can |
||
also be decomposed into several terms, like kinetic |
||
stress, short range stress, and so on. |
||
hessian: the hessian matrix, which is defined as the |
||
second derivative of the total energy with respect to |
||
atomic positions. |
||
The corresponding dynamical matrix can also be |
||
calculated, with which the phonon spectrum and |
||
vibrational modes of the system can further be |
||
determined. |
||
In addition, the derivative of the Hamiltonian matrix |
||
with respect to atomic positions can also be calculated, |
||
which could be used to study the phonon and electron |
||
interactions. |
||
bandStructure: the normal band structure calculation |
||
which gives the band energies as a function of a series |
||
of k-points. The k-points are normally along a line |
||
segment(s) in the k-space. |
||
complexBandStructure: the complex-band structure |
||
calculation. Comparing to normal band structure which |
||
displays a band energy as a function of a k-point, i.e., |
||
e = e(k1,k2,k3), the complex-band structure displays a |
||
k-coordinate, e.g. k3, as a function of band energy and |
||
other k-coordinates, i.e., k3 = k3(e;k1,k2) where the |
||
value of k3 is normally a complex number. |
||
fullBandStructure: this calculation gives the band |
||
energies at all k-points whin the Brillouin zone. The |
||
fermi surface can also be determined and visualized, with |
||
which electronic transmission properties of a lead can |
||
be studied. |
||
eigenStates: this calculation is used for molecular or |
||
periodic bulk systems, which gives eigen energies and |
||
also corresponding wave functions as a vector of the |
||
coefficients of a set of atomic basis and/or as a |
||
real-space function, for a set of states specified by |
||
an user. |
||
scatteringStates: this calculation is used for systems |
||
with probes, which gives transmission and reflection |
||
coefficients and also the real-space wave function, for |
||
a set of states specified by an user. |
||
densityOfStates: the density of electronic states |
||
(dos), which can also be decomposed in various ways to |
||
obtain projected dos, local dos, and so on. |
||
densityOfScatteringStates: the density of electronic |
||
scattering states (dos), which can also be decomposed in |
||
various ways to obtain projected dos, local dos, and so |
||
on. Comparing to the normal dos, doss only counts for |
||
the scattering states associated to a specific lead and |
||
washes out all other states. |
||
charge: analysis of the total charge of the system in |
||
various ways, such as projected to some particular atomic |
||
orbitals, localized to a particular real-space region, |
||
projected to the spin-polarization direction, and so on. |
||
potential: this calculation is to obtain and also |
||
display or visualize a real-space potential function of |
||
Vdh, Vxc, Vna, or Veff, where Vdh is the delta_Hartree |
||
potential, Vxc is the exchange-correlation potential, |
||
Vna is the neutral atomic potential, and Veff = Vdh+Vxc. |
||
Note that the difference of two Vdh calculated with and |
||
without a bias voltage gives the detailed information |
||
about how the voltage drops across the structure. |
||
EPhCoupling: the electron-phonon couplings. |
||
transmission: transmission coefficients calculation, |
||
which can be used to determine the conductance of the |
||
structure. |
||
channel: the number of transmission channels of a |
||
system when being used as a lead, which is given as a |
||
function of energy, transverse wave vectors. |
||
conductance: the conductance. The current with the |
||
applied voltage is also calculated. |
||
acConductance: the ac conductance when an ac bias |
||
voltage is applied. |
||
IVCurve: this calculation gives the current as a |
||
function of applied voltages, and the intermediate data |
||
of conductance is also given. |
||
IETS: The inelastic electron tunneling spectroscopy. |
||
relaxation: structure relaxation with or without |
||
change of the central cell. Various constrains can be |
||
applied during the relaxation. |
||
basisOptimization: used to optimize the atomic basis |
||
for a particular system(s). This is normally a key step |
||
to a reliable result with high precision. |
||
an example |
: |
calculation.name = {scf, bs} |
Control parameters for the calculation¶
calculation.control.lengthUnit¶
key word |
: |
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¶
key word |
: |
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¶
key word |
: |
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¶
key word |
: |
calculation.control.precision |
possible values |
: |
high, normal, low |
default value |
: |
normal |
description |
: |
used to control default values of the following |
parameters: |
||
|
||
low — 20 Hartree |
||
normal — 50 Hartree |
||
high — 150 Hartree |
||
|
||
low — 20 Bohr |
||
normal — 40 Bohr |
||
high — 80 Bohr |
||
|
||
low — 20 |
||
normal — 40 |
||
high — 60 |
||
|
||
low — 4 |
||
normal — 8 |
||
high — 16 |
||
|
||
low — 2e-3 Hartree |
||
normal — 5e-4 Hartree |
||
high — 1e-4 Hartree |
||
|
||
low — 5e-4 Hartree |
||
normal — 2e-5 Hartree |
||
high — 1e-6 Hartree |
||
|
||
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¶
key word |
: |
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.dataFormat¶
key word |
: |
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¶
key word |
: |
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.logOutputLevel¶
key word |
: |
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 iith |
||
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.txtResultsOutputLevel¶
key word |
: |
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¶
key word |
: |
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¶
key word |
: |
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 |
calculation.control.temporaryDirectory¶
key word |
: |
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 input is for the user to redirect the temporary |
data generated during a calculation. |
||
an example |
: |
calculation.control.temporaryDirectory = ./tmp1 |
Pseudopotential parameters¶
This section summarizes the parameters of the pseudopotential.
calculation.pseudoPotential.nonOverlapInteractionMode¶
key word |
: |
calculation.pseudoPotential.nonOverlapInteractionMode |
possible values |
: |
0, 1, 2 |
default value |
: |
2 |
description |
: |
A non-local pseudo-potential matrix (\(V_{nl}\)) element |
\(<\phi_i | V_{nl} | \phi_j>\) can be non-zero even when the two |
||
atomic orbital functions \(|\phi_i>\) and \(|\phi_j>\) do not |
||
overlap. This parameter is for controlling the |
||
calculation of those non-overlapping Vnl elements. |
||
If nonOverlapInteractionMode is 0, all non-overlapping |
||
Vnl elements will be set to zero. If it is 2, none of |
||
the non-overlapping Vnl elements will be set to zero. |
||
If it is 1, the element \(<\phi_i | V_{nl} | \phi_j>\) will be |
||
set to zero when and only when there is no orbital in |
||
the cell which contains \(|\phi_i>\) overlap with any orbital |
||
in the image cell which contains \(|\phi_j>\). |
||
an example |
: |
calculation.pseudoPotential.nonOverlapInteractionMode = 1 |
calculation.pseudoPotential.Lmax4Vnl¶
key word |
: |
calculation.pseudoPotential.Lmax4Vnl |
possible values |
: |
an integer |
default value |
: |
2 |
description |
: |
The highest angular momentum used in the |
Kleinman-Bylander Vnl projector. Namely, those |
||
projectors having angular momentum higher than Lmax4Vnl |
||
will not be used in the calculation of Vnl. |
||
an example |
: |
calculation.pseudoPotential.Lmax4Vnl = 3 |
Spin-orbit interaction parameters¶
calculation.spinOrbitInteraction.isIncluded¶
key word |
: |
calculation.spinOrbitInteraction.isIncluded |
possible values |
: |
1, true, 0, false |
default value |
: |
false |
description |
: |
If it is true or 1, the effect of spin-orbit |
interaction will be taken into account. Only used for |
||
systems having the spinType of GeneralSpin. |
||
an example |
: |
calculation.spinOrbitInteraction.isIncluded = true |
feature status |
: |
experimental. |
Hubbard parameters¶
The parameters in this section are for LDA+U calculations.
calculation.Hubbard.isIncluded¶
key word |
: |
calculation.Hubbard.isIncluded |
possible values |
: |
1, true, 0, false |
default value |
: |
false |
description |
: |
If it is true or 1, a Hubbard-like term, the so called |
LDA+U, is added to the potential. |
||
an example |
: |
calculation.Hubbard.isIncluded = true |
feature status |
: |
experimental. |
calculation.Hubbard.parameterBlock¶
key word |
: |
calculation.Hubbard.parameterBlock |
possible values |
: |
N (the number of atomic species whose Hubbard U |
values needs to be re-defined.) |
||
default value |
: |
no default value, must input when Hubbard.isIncluded is |
true |
||
description |
: |
This block is used to overwrite the default Hubbard U |
values of specified atomic basis. There must be |
||
exactly N lines in the block, and followed by a line of |
||
end used as a end mark of the block. Each line |
||
has two strings, which specify the AtomType and |
||
OrbitalType of the atomic basis respectively, and |
||
enough U values for s, p, d, and f orbitals, |
||
respectively. |
||
Note that the unit of the U values is defined by the |
||
parameter calculation.control.energyUnit. |
||
an example |
: |
|
calculation.Hubbard.parameterBlock = 3 |
||
Fe DZP 0 0 2 |
||
Co DZP 0 0 4 |
||
Ni DZP 0 0 3 6 |
||
end |
||
feature status |
: |
experimental. |
Occupation function parameters¶
The parameters here are for setting up the distribution function.
calculation.occupationFunction.name¶
key word |
: |
calculation.occupationFunction.name |
possible values |
: |
a string to describe the occupation function: |
FermiDirac: Fermi-Dirac distribution |
||
default value |
: |
FermiDirac |
description |
: |
The given function is used to determines the occupation |
of the electronic states. |
||
an example |
: |
calculation.occupationFunction.name = FermiDirac |
calculation.occupationFunction.temperature¶
key word |
: |
calculation.occupationFunction.temperature |
possible values |
: |
a double value |
default value |
: |
0 for open systems and 100 for closed systems. |
description |
: |
electronic temperature of the system, in the unit of K. |
Although it is a physical property of the system, it is |
||
often used as a parameter to stabilize calculations in |
||
some cases. |
||
Note: the Boltzmann constant k = 8.617342e-05(eV/K) / |
||
27.2113834(eV/Hartree) = 3.1668151e-06 (Hartree/K). |
||
an example |
: |
calculation.occupationFunction.temperature = 100 |
Real space grid parameters¶
The parameters here are for generating real space numerical grids.
calculation.realspacegrids.number¶
key word |
: |
calculation.realspacegrids.number |
possible values |
: |
3\(\times\)1 integer vector or a integer number |
default value |
: |
determined from the value of realspacegrids.E_cutoff |
description |
: |
the small grid number in each direction. It is used |
to divide the central cell into the input number of |
||
small grids. |
||
an example |
: |
calculation.realspacegrids.number = [64 64 64] |
calculation.realspacegrids.E_cutoff¶
key word |
: |
calculation.realspacegrids.E_cutoff |
possible values |
: |
a double number with proper energy unit such as |
eV, |
||
Ryd, Ryd., Rydberg, |
||
au, a.u., atomic unit, Hartree, |
||
where au a.u., and atomic unit are for Hartree, |
||
Ryd, Ryd. for Rydberg. |
||
default value |
: |
20, 50, or 150 Hartree, depending on the value of the |
parameter calculation.control.precision. |
||
description |
: |
the equivalent energy cut-off of the grid density. |
E_cutoff ~ (1/2)(\(\pi\)/grid_length) \(^{2}\). |
||
This input parameter is not used when |
||
realspacegrids.number is given. |
||
Note that if the number part of the input is missing, it |
||
will be considered as 1, and if the unit part is |
||
missing, it will be considered to use the unit defined |
||
by calculation.control.energyUnit. |
||
an example |
: |
calculation.realspacegrids.E_cutoff = 50 |
calculation.realspacegrids.clusterfactor¶
key word |
: |
calculation.realspacegrids.clusterfactor |
possible values |
: |
an integer number |
default value |
: |
5 |
description |
: |
Defines the number of grid points in each direction |
which are grouped into a cluster for saving index |
||
storage on the grids. |
||
an example |
: |
calculation.realspacegrids.clusterfactor = 5 |
k_space grid parameters¶
The parameters here are for generating Fourier space numerical grids.
calculation.k_spacegrids.number¶
key word |
: |
calculation.k_spacegrids.number |
possible values |
: |
3\(\times\)1 integer array |
default value |
: |
determined by the value of k_spacegrids.L_cutoff |
description |
: |
the small k-space grid number in each direction. It is |
used to divide the Brillouin zone into the input |
||
number of small grids. |
||
an example |
: |
calculation.k_spacegrids.number = [8 8 8] |
calculation.k_spacegrids.L_cutoff¶
key word |
: |
calculation.k_spacegrids.L_cutoff |
possible values |
: |
a double number with proper length unit such as |
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 |
: |
20, 40, or 80 Bohr, depending on the value of the |
parameter calculation.control.precision. |
||
description |
: |
the equivalent length cut-off of the k-space grid |
density. k-space grid length ~ (\(\pi\)/L_cutoff). |
||
The input parameter will not be used when |
||
k_spacegrids.number is given. |
||
Note that if the number part of the input is missing, it |
||
will be considered as 1, and if the unit part is |
||
missing, it will be considered to use the unit defined |
||
by calculation.control.lengthUnit. |
||
an example |
: |
calculation.k_spacegrids.L_cutoff = 40 |
calculation.k_spacegrids.shift¶
key word |
: |
calculation.k_spacegrids.shift |
possible values |
: |
3\(\times\)1 or 1\(\times\)3 array, [s\(_1\), s\(_2\), s\(_3\)], with each s\(_i\) a |
double number between 0 and 1. |
||
default value |
: |
[0 0 0] |
description |
: |
k-space grid point shift. While all s\(_i\) are set to be 0, |
the Gamma point is always among the k-space grid points |
||
being generated; otherwise, the k-space grid points will |
||
be shifted s\(_1\), s\(_2\), and s\(_3\) grid length along their |
||
grid vector directions, respectively. |
||
an example |
: |
calculation.k_spacegrids.shift = [1/2 1/2 1/2] |
Energy contour parameters¶
The parameters here are for setting up the contour integration over energy for calculating the density matrix from the Green’s functions.
calculation.complexEcontour.type¶
key word |
: |
calculation.complexEcontour.type |
possible values |
: |
smallSemiCircle, middleSemiCircle, |
largeSemiCircle, doubleSemiCircle |
||
default value |
: |
smallSemiCircle |
description |
: |
Type of energy contour to be used in the integration of |
the equilibrium part of lesser Greens function. See |
||
user manual for more information about the choice of |
||
complex contour. |
||
an example |
: |
calculation.complexEcontour.type = smallSemiCircle |
largeSemiCircle, doubleSemiCircle |
calculation.complexEcontour.numberOfPoints¶
key word |
: |
calculation.complexEcontour.numberOfPoints |
possible values |
: |
an integer |
default value |
: |
20, 40, or 60, depending on the value of the |
parameter calculation.control.precision. |
||
description |
: |
Number of energy points used on the complex energy |
contour for integrating the equilibrium part of |
||
the lesser Greens function. |
||
(Note: if the system temperature is not |
||
zero, numberOfPoints is the number of energy points on |
||
the circle part of the contour.) |
||
an example |
: |
calculation.complexEcontour.numberOfPoints = 40 |
calculation.complexEcontour.lowestEnergyPoint¶
key word |
: |
calculation.complexEcontour.lowestEnergyPoint |
possible values |
: |
a double number with proper energy unit such as |
eV, |
||
Ryd, Ryd., Rydberg, |
||
au, a.u., atomic unit, Hartree, |
||
where au a.u., and atomic unit are for Hartree, |
||
Ryd, Ryd. for Rydberg. |
||
default value |
: |
determined by nanodcal |
description |
: |
The lowest energy point on the complex energy contour. |
Note that if the number part of the input is missing, it |
||
will be considered as 1; if the unit part is |
||
missing, it will be considered as using the unit defined |
||
by calculation.control.energyUnit. |
||
an example |
: |
calculation.complexEcontour.lowestEnergyPoint = 40 |
calculation.complexEcontour.Delta¶
key word |
: |
calculation.complexEcontour.Delta |
possible values |
: |
an integer |
default value |
: |
10 |
description |
: |
Used only in the finite temperature case. The number of |
poles of the Fermi function which are enclosed in the |
||
complex energy contour. |
||
an example |
: |
calculation.complexEcontour.Delta = 10 |
calculation.complexEcontour.gamma¶
key word |
: |
calculation.complexEcontour.gamma |
possible values |
: |
an integer |
default value |
: |
20 |
description |
: |
Used only in the finite temperature case. The length (in |
unit kT) of the straight portion of the complex energy |
||
contour that is below the Fermi energy. |
||
an example |
: |
calculation.complexEcontour.gamma = 20 |
calculation.complexEcontour.numberOfPoints2¶
key word |
: |
calculation.complexEcontour.numberOfPoints2 |
possible values |
: |
an integer |
default value |
: |
4, 8, or 16, depending on the value of the |
parameter calculation.control.precision. |
||
description |
: |
Used only in cases of finite temperature. The number of |
energy points on the straight part of the complex |
||
energy contour for integrating the equilibrium part |
||
of lesser Greens function. |
||
an example |
: |
calculation.complexEcontour.numberOfPoints2 = 6 |
calculation.realEcontour.numberOfPoints¶
key word |
: |
calculation.realEcontour.numberOfPoints |
possible values |
: |
an integer |
default value |
: |
determined using the value of realEcontour.interval |
description |
: |
Number of energy points on the real energy axis |
for integrating the non-equilibrium part of |
||
lesser Greens function. |
||
an example |
: |
calculation.realEcontour.numberOfPoints = 40 |
calculation.realEcontour.interval¶
key word |
: |
calculation.realEcontour.interval |
possible values |
: |
a double number |
default value |
: |
2e-3, 5e-4, or 1e-4 Hartree, depending on the value of the |
parameter calculation.control.precision. |
||
description |
: |
Energy interval used to determine the number of energy |
points for integrating the non-equilibrium part |
||
of lesser Greens function on the real energy axis. This |
||
input is not used when realEcontour.numberOfPoints is |
||
given. |
||
an example |
: |
calculation.realEcontour.interval = 5e-4 |
calculation.realEcontour.etaSigma¶
key word |
: |
calculation.realEcontour.etaSigma |
possible values |
: |
a small double number |
default value |
: |
1e-6 Hartree |
description |
: |
the small eta used in the calculation of self-energy |
along the real energy contour. In analytical Greens |
||
function theory, the eta is a positive infinitesimal. |
||
an example |
: |
calculation.realEcontour.etaSigma = 1e-4 |
calculation.realEcontour.etaGF¶
key word |
: |
calculation.realEcontour.etaGF |
possible values |
: |
a small double number |
default value |
: |
1e-6 Hartree |
description |
: |
the small eta used in the calculation of Greens function |
along the real energy contour. In analytical Greens |
||
function theory, this is a positive infinitesimal. |
||
an example |
: |
calculation.realEcontour.etaGF = 1e-4 |
calculation.realEcontour.eta¶
key word |
: |
calculation.realEcontour.eta |
possible values |
: |
a small double number |
default value |
: |
5e-4, 2e-5, or 1e-6 Hartree, depending on the value of the |
parameter calculation.control.precision. |
||
description |
: |
the small eta used in the calculation of self-energy |
and/or Greens function along the real energy contour. |
||
This parameter is not used when the parameter |
||
realEcontour.etaSigma and/or realEcontour.etaGF is |
||
given. |
||
an example |
: |
calculation.realEcontour.eta = 1e-4 |
Exchange-correlation functional parameters¶
The parameters here are used in various exchange-correlation (XC) functionals. In nanodcal, XC functional calculation is done by plug-in calculators. Several XC functionals can be chosen by the user. On the other hand, the users can input their own XC functionals by plug-in their calculators to nanodcal.
calculation.xcFunctional.calculator¶
key word |
: |
calculation.xcFunctional.calculator |
possible values |
: |
a structure with two fields of class and parameter |
default value |
: |
determined by nanodcal |
description |
: |
This input parameter defines a plug-in calculator, |
where the field class clarifies the name of the |
||
calculator, and the field parameter gives its |
||
construction parameter. The constructor of the plug-in |
||
calculator will be called in the following manner: |
||
calculator = constructor([cp]) |
||
where |
||
[cp] = calculation.xcFunctional.calculator.parameter |
||
For information about how to replace this plug-in |
||
calculator, type nanodcal -help plug-in and nanodcal -api. |
||
an example |
: |
calculation.xcFunctional.calculator.class = XC_cell |
calculation.xcFunctional.calculator.parameter.Type … |
||
= LDA_VWN80 |
calculation.xcFunctional.Type¶
key word |
: |
calculation.xcFunctional.Type |
possible values |
: |
LDA_PZ81, LDA_VWN80, LDA_PW92, GGA_PBE96, |
GGA_REVPBE98, GGA_RPBE99, mixed |
||
default value |
: |
LDA_PZ81 |
description |
: |
The type of exchange-correlation functional to be |
used. While LDA_PZ81, LDA_VWN80, LDA_PW92, |
||
GGA_PBE96, GGA_REVPBE98, and GGA_RPBE99 are |
||
well-known functionals, the option mixed is |
||
for users to mix different types of |
||
exchange and/or correlation functionals. |
||
If calculation.xcFunctional.calculator is given, this |
||
parameter will not be used. |
||
an example |
: |
calculation.xcFunctional.Type = LDA_PZ81 |
GGA_REVPBE98, GGA_RPBE99, mixed |
calculation.xcFunctional.Weight¶
key word |
: |
calculation.xcFunctional.Weight |
possible values |
: |
2\(\times\)2 cell array when a well-known exchange and |
correlation functional is used; n X 2 cell array, with n |
||
a integer, when the mixed type of exchange and |
||
correlation functional is used. |
||
default value |
: |
{X,1.0;C,1.0} for regular type; no default value for |
mixed type. |
||
description |
: |
When a well-known exchange and correlation functional is |
used, it gives weights for the exchange energy and the |
||
correlation energy. When mixed type is used, it |
||
specifies the exchange and/or correlation functionals |
||
to be mixed and the corresponding mixing weights. |
||
All exchange and correlation functionals which may be |
||
used in the mixing is listed as follows with a short |
||
description: |
||
xLDA — LDA exchange |
||
cPZ81 — PZ correlation (Phys. Rev. B 23, 5048) |
||
cVWN80 — VWN correlation (Can. J. Phys. 58, 1200) |
||
cPW92 — PW92 correlation (Phys. Rev. B 45, 13244) |
||
xPBE96 — PBE exchange (Phys. Rev. Lett. 77, 3865) |
||
xREVPBE98 — REVPBE exchange (Phys. Rev. Lett. 80, 890) |
||
xRPBE99 — RPBE exchange (Phys. Rev. B 59, 7413) |
||
xEV93 — EV exchange (Phys. Rev. B 47, 13164) |
||
cPBE96 — PBE correlation (Phys. Rev. Lett. 77, 3865) |
||
If calculation.xcFunctional.calculator is given, this |
||
parameter will not be used. |
||
an example |
: |
(for regular type) |
calculation.xcFunctional.Weight = {X,1.0;C,1.0} |
||
another example |
: |
(for mixed type): |
calculation.xcFunctional.Weight = … |
||
{xLDA,0.2;cVWN80,1.0;xPBE96,0.8} |
calculation.xcFunctional.Lagrange¶
key word |
: |
calculation.xcFunctional.Lagrange |
possible values |
: |
an integer |
default value |
: |
3 |
description |
: |
Lagrange parameter is for 2N+1 Point Lagrange polynomial |
interpolation to calculate charge density gradient. |
||
If calculation.xcFunctional.calculator is given, this |
||
parameter will not be used. |
||
an example |
: |
calculation.xcFunctional.Lagrange = 3 |
External Hamiltonian modifier parameters¶
Nanodcal allows users to add/replace terms to the Kohn-Sham Hamiltonian by using plug-in calculators. Parameters here specify the Hamiltonian modifier.
calculation.hExternalModifier.isIncluded¶
key word |
: |
calculation.hExternalModifier.isIncluded |
possible values |
: |
1, true, 0, false |
default value |
: |
false |
description |
: |
If it is true or 1, the external Hamiltonian modifier |
defined in calculation.hExternalModifier.calculator will |
||
be used. |
||
an example |
: |
calculation.hExternalModifier.isIncluded = true |
calculation.hExternalModifier.calculator¶
key word |
: |
calculation.hExternalModifier.calculator |
possible values |
: |
a structure with two fields of class and parameter |
default value |
: |
no default value, must be input when |
hExternalModifier.isIncluded is true. |
||
description |
: |
This input parameter defines a plug-in calculator, |
where the field class clarifies the name of the |
||
calculator, and the field parameter gives its |
||
construction parameter. The constructor of the plug-in |
||
calculator will be called in the following manner: |
||
calculator = constructor([cp]) |
||
where |
||
[cp] = calculation.hExternalModifier.calculator.parameter |
||
Only used when hExternalModifier.isIncluded is true. |
||
For information about how to replace this plug-in |
||
calculator, type nanodcal -help plug-in and nanodcal -api. |
||
an example |
: |
calculation.hExternalModifier.calculator.class … |
= cHModifierByB |
||
calculation.hExternalModifier.calculator.parameter.B … |
||
= [0 0 10] Tesla |
External self-energy modifier parameters¶
Nanodcal allows users to calculate self-energy of the device leads using methods of their own - instead of using the methods of nanodcal. The parameters here are for this purpose.
calculation.sigmaExternalModifier.isIncluded¶
key word |
: |
calculation.sigmaExternalModifier.isIncluded |
possible values |
: |
1, true, 0, false |
default value |
: |
false |
description |
: |
If it is true or 1, the external self-energy modifier |
defined in calculation.sigmaExternalModifier.calculator |
||
will be used. |
||
an example |
: |
calculation.sigmaExternalModifier.isIncluded = true |
calculation.sigmaExternalModifier.calculator¶
key word |
: |
calculation.sigmaExternalModifier.calculator |
possible values |
: |
a structure with two fields of class and parameter |
default value |
: |
no default value, must be input when |
sigmaExternalModifier.isIncluded is true. |
||
description |
: |
This input parameter defines a plug-in calculator, |
where the field class clarifies the name of the |
||
calculator, and the field parameter gives its |
||
construction parameter. The constructor of the plug-in |
||
calculator will be called in the following manner: |
||
calculator = constructor([cp]) |
||
where |
||
[cp] = calculation.sigmaExternalModifier.calculator.parameter |
||
Only used when sigmaExternalModifier.isIncluded is true. |
||
For information about how to replace this plug-in |
||
calculator, type nanodcal -help plug-in and nanodcal -api. |
||
an example |
: |
calculation.sigmaExternalModifier.calculator.class … |
= cAbstractSelfEnergyModifier |
||
calculation.sigmaExternalModifier.calculator.parameter … |
||
= \([\ ]\) |
External real-space density modifier parameters¶
Nanodcal allows users to modify real-space charge density. Parameters here are for this function.
calculation.rhoExternalModifier.isIncluded¶
key word |
: |
calculation.rhoExternalModifier.isIncluded |
possible values |
: |
1, true, 0, false |
default value |
: |
false |
description |
: |
If it is true or 1, the external real space density |
modifier defined in rhoExternalModifier.calculator will |
||
be used. |
||
an example |
: |
calculation.rhoExternalModifier.isIncluded = true |
calculation.rhoExternalModifier.calculator¶
key word |
: |
calculation.rhoExternalModifier.calculator |
possible values |
: |
a structure with the two fields of class and parameter |
default value |
: |
no default value, must be input when |
rhoExternalModifier.isIncluded is true. |
||
description |
: |
This input parameter defines a plug-in calculator, |
where the field class clarifies the name of the |
||
calculator, and the field parameter gives its |
||
construction parameter. The constructor of the plug-in |
||
calculator will be called in the following manner: |
||
calculator = constructor([cp]) |
||
where |
||
[cp] = calculation.rhoExternalModifier.calculator.parameter |
||
Only used when rhoExternalModifier.isIncluded is true. |
||
For information about how to replace this plug-in |
||
calculator, type nanodcal -help plug-in and nanodcal -api. |
||
an example |
: |
calculation.rhoExternalModifier.calculator.class … |
= cAbstractRealspaceDensityModifier |
||
calculation.rhoExternalModifier.calculator.parameter … |
||
= \([\ ]\) |