Table of Contents
The NanoLanguage Scripter tool has been designed to help you create basic NanoLanguage scripts. The tool will enable you to
select the configuration (a molecule, bulk, or two-probe system) you wish to work with.
define and fine-tune the theoretical (and numerical) method that will be used to find the self-consistent electron density.
specify the physical quantities that will be computed from the converged electron density.
The NanoLanguage Scripter contains four interrelated tabs:
The Configuration tab contains a graphical representation of the configuration you are working on, and it is also where you specify parameters related to geometry optimization. To load a configuration, drag-and-drop a NanoLanguage script or VNLFile onto either the scripter icon or the NanoLanguage Scripter window.
The Method tab contains the full set of parameters that defines the theoretical (and numerical) method that will be used to compute the self-consistent electron density. Similar to the configuration, this tab can also be set by drag-and-dropping a method that has been created with the Method Editor tool.
The Self-Consistent Calculation tab contains two panels with check boxes. These control the writing and reading of checkpoint files in the script.
The Analysis tab is used to specify and define the quantities that should be computed from the converged electron density. For some quantities you can also specify parameters here.
|
|
Note |
|---|---|
|
In the upper part of the scripter window you can find some global information pertaining to the system, such as the configuration name, the system type, and whether the density is spin-polarized or spin-unpolarized.
The NanoLanguage Scripter tool contains six buttons in the bottom row:
Save: This button creates a NanoLanguage script from the parameters that have been selected in the tabs. When you left-click the button, the file (a NanoLanguage script) with the associated name in the scripter is overwritten.
Save As: This button creates a NanoLanguage script from the parameters that have been selected in the tabs. However, instead of overwriting the associated name, a dialog is launched where you can specify under what name and in what folder you want to create your script (if the file already exists, you are requested to confirm before overwriting).
: This icon is used for dragging-and-dropping the
configuration present in the NanoLanguage scripter to other tools, i.e. you
cannot create a NanoLanguage script by drag-and-drop to
the text editor.
New: This button resets the scripter to its unused state, i.e. without any configuration, method parameters, or analysis quantities.
Restore Default: This button resets the scripter parameters to its default values, i.e. method parameters; the geometry optimization and analysis selections are removed.
Help: Display help documentation for the active menu or item.
A detailed description of each of the four NanoLanguage Scripter tabs is given the following sections.
The Configuration tab contains a 3D view of the system loaded in the NanoLanguage scripter. Its usage in terms of rotations, translations and graphical properties is the same as the Nanoscope tool.
|
|
Note |
|---|---|
|
The optimization of a two probe configuration is not possible in the current version (VNL 2008.10); instead, VNL uses an alternative automatic approach consisting of the following steps:
Using this procedure, however, implies that you cannot optimize a two probe system with a bias voltage! This procedure fixes the electrode “equivalent” atoms automatically, but it is left to the user to determine which of the central region atoms (including electrode surface atoms) that should be fixed. See the ATK manual for a detailed description of the algorithm used to perform the geometry relaxation. |
For geometry optimizations, you have two algorithms available: Quasi Newton and Steepest Descent. If you specify either of these and have set up any analysis calculations in the analysis tab, the analysis will be performed with the optimized atomic configuration.
Figure 50: The Configuration tab with a molecule shown and Steepest Descent Optimization algorithm selected.
Quasi Newton Optimized Atomic Geometry
The convergence criterion for the optimization requires the largest force component to be smaller than this value.
The maximum number of optimization steps.
The initial trust radius used by the Quasi Newton algorithm.
A list of atom indices whose positions should be fixed during the optimization. The indices are integers ranging from 0 to N-1, where N is the total number of atoms in the atomic configuration. It is highly recommended to fix electrode atoms when optimizing two probe systems.
Steepest Descent Optimized Atomic Geometry
The convergence criterion for the optimization requires the largest force component to be smaller than this value.
The maximum number of optimization steps.
The time step used by the SteepestDescent algorithm.
A list of atom indices whose positions should be fixed during the optimization. The indices are integers ranging from 0 to N-1, where N is the total number of atoms in the atomic configuration.
In the Method tab you specify all the parameters that are needed to define and set up the DFT calculation, such as the basis set and exchange correlation functional. The content of this tab can also be set in one step by dragging-and-dropping a predefined “method” on the scripter window. These “methods” are generated with the Method Editor, which looks and works similar to the Method tab in the scripter.
There are, however, some important differences between how the Method Editor and the NanoLanguage scripter Method tab works:
The system type is unequivocally set by the NanoLanguage scripter configuration, whereas it is set manually in the Method Editor.
To save a particular set of parameters defining a given method (independently of a particular configuration), a “method” should be generated and saved by the Method Editor; the NanoLanguage Scripter is not suitable for this.
If you drop a “method” with a system type that is incompatible with that of the NanoLanguage scripters configuration, the scripter still extracts the values of the parameters for its configuration.
Basis Set
The size of the basis set.
Determines the confinement radius of the numerical orbitals.
Defines the inner radius of the soft confinement potential. Valid numbers are in the range from (but not including) 0 to 1.
Defines the softness of the confinement potential. If this parameter is zero, a hard-wall potential is used.
Defines the net charge of that atom when generating basis orbitals.
This parameter is used to find the matching radius of an analytical orbital which splits the first zeta orbital into a double zeta basis. Valid numbers are in the range from (but not including) 0 to 1.
The separation between the points used for the radial representation of the numerical orbitals.
Checking the Specify Basis Set by Element Type box opens a section where you can set specific parameters for the basis set of each element type: e.g. you might want to decrease the total size of the basis set by having DoubleZeta on hydrogen atoms whereas you still want to have DoubleZetaPolarized on heavy atoms. This can be done by checking the box in front of H in the Element list view and selecting the DoubleZeta basis set type in the area to its right. As long as the H box remains checked, all hydrogen atoms will have a different basis set than the default.
|
|
Note |
|---|---|
|
Note that the element specific parameters will revert to the default values as soon as the box is deselected; e.g. deselecting and then rechecking will not preserve the setting. You can view the setting of different elements by selecting the atom label without selecting or deselecting its associated checkbox. |
Figure 51: The basis set dialog window where you can specify basis set parameters. In this particular case, we are using a DoubleZeta basis set for hydrogen atoms and a DoubleZetaPolarized basis set for all other elements.
Eigenstate Occupation
The electron temperature used in the Fermi distribution. For two-probe
configurations, click and unlock the chain icon
to specify independent electron temperatures for the left and right
electrodes.
Electron Density
Parameter defining the density of the real-space grids for solving the Poisson equation. A higher value (energy) of this parameter gives better accuracy in the calculations.
The value for the net spin-polarization of the initial electron density for the whole system.
The scaled net spin-polarization per atom of the initial electron density. This must be confined to the range [-1:1].
The fixed value of the spin-polarization for the entire system given as an angular momentum. This parameter can only be used for molecular calculations.
|
|
Note |
|---|---|
|
For two-probe systems, the above parameters can be specified either as
To use the last of the above options, check the Heterogeneous check box. |
Iteration Control
The quantity that is used to measure whether the convergence tolerance has been reached.
The maximum number of steps before the iteration will halt if an equilibrium is not found.
The iteration is considered to be converged if the change in the quantity specified by
the convergence criterion between two successive iterations
falls below the tolerance.
|
|
Note |
|---|---|
|
For two-probe systems, the above parameters can be specified as either as
To use the last of the above options, check the option Specify parameters
for separate two-probe elements. In this case,
click and unlock the chain icon
|
Iteration Mixing
Specifies the mixing algorithm.
The percentage of the output that is mixed into the input, to produce the input for the next step. A number between 0 and 1.
The quantity to be mixed.
The number of previous steps that is used in the mixing algorithm.
|
|
Note |
|---|---|
|
For two-probe systems, the above parameters can be specified as either as
To use the last of the above options, check the option Specify parameters
for separate two-probe elements. In this case,
click and unlock the chain icon
|
Two Center Integral
Two-center integrals are evaluated in Fourier space. This parameter controls the energy of the maximum Fourier component to be included in the integration.
Defines the number of points used for the two-center integrals.
Exchange Correlation Functional
The exchange correlation functional to be used in the calculation.
Poisson Equation
The electrostatic padding factor. Must be a non-negative number, which in general should not be set lower than the default value.
Brillouin Zone Integration
The number of k-points to be used along each respective reciprocal vector (A, B, and C), e.g (5,5,5) for bulk and (1,1,500) for two probe.
Energy Contour
The number of points along the arc part of the complex contour.
The distance from the Fermi level to the energy where the complex contour starts.
Determines the number of points from Fermi level to infinity. Integer value from 1 to 11.
The complex contour always stays a distance from the real axis. This means that it encloses some poles of the Fermi functions. The number of poles is specified by this parameter, and this indirectly determines the distance of the contour from the real axis.
Small imaginary energy added to the denominator in the real axis integration. Specified by magnitude, i.e. as a real energy.
The spacing between the points in the close-to-real axis part of the contour in the voltage bias window.
Electrode Voltages
The voltage of the left electrode.
The voltage of the right electrode.
Two-probe Algorithm
Constraint imposed on the electrodes.
Electron density type chosen as initial guess for the calculation.
Gated Two Probe Method
Enables a gated two probe method.
The simulated voltage on the electrostatic gate.
The number of surface atoms at the start of the scattering_region_elements list that
are not affected by the applied gate voltage.
The number of surface atoms at the end of the scattering_region_elements list that
are not affected by the applied gate voltage.
|
|
Note |
|---|---|
|
By surface atoms, we here refer to the atoms that are not affected by the gate
voltage. Using e.g. 5 and 10 for the surface atoms will correspond to that the
first 5 atoms and the 10 last atoms in the
|
The Self Consistent Calculation tab is used to specify the details of a self-consistent calculation. Here you are given the option to
specify a checkpoint file that should be saved after a self-consistent calculation.
load a checkpoint file generated in a previous calculation.
set the verbosity level of the entire calculation.
A typical session in the Self Consistent Calculation tab is shown in Figure 52.
Runtime Parameters
The Runtime Parameters panel can be used to specify where the computation is going to be stored (name and path of the checkpoint file). Check the box labeled Specify the checkpoint filename to activate this panel, use the Browse button or type the path and file name desired. The Verbosity Level that will be used in the computation can also be selected in the range from 0 (minimum output to stdout) to 10 (maximum output to the stdout).
Enable this in order to specify the name of the checkpoint file.
A single string specifying the name of the check point file.
An integer between 0 and 10, where 10 is the highest verbosity level and 0 is absolute silence.
Restore Self Consistent Calculation
The Restore self consistent calculation panel can be used in two ways:
You can use the configuration, method and electron density which are stored in a checkpoint file, and perform more analysis computations with them. To do this simply check the box labeled Restore calculation from checkpoint file and choose the file name.
If you want to use only the electron density stored in the file, and use it as the initial density for a new calculation of a self-consistent field loop, then check the box labeled Only use initial density. The configuration and method stored in the checkpoint file will not be used, instead the current configuration and method will be used. Beware that the resulting script will fail to run if the chemical elements and basis set in the checkpoint file are not compatible with those in the NanoLanguage Scripter tool.
Enable this in order to restore a calculation from a checkpoint file.
A single string specifying the name of the check point file.
When this option is enabled, only the initial density from the self-consistent calculation is used. This implies that the configuration and any other parameters retrieved from the file will be discarded.
Figure 52:
The Self-Consistent Calculation tab: In the
Runtime Parameters, the checkpoint file has been set to
/tmp/checkpoint.nc and the verbosity level is set to 4. In
the Restore Self Consistent Calculation dialog the
self-consistent calculation is restored from the file
/tmp/checkpoint.nc. In this case, only the initial density
is used for the self-consistent calculation; all other information is discarded.
Use the Analysis tab for specifying the physical properties you want to calculate, such as: energies, populations, densities, and transport properties.
To include the relevant analysis function in your script, just select the function from the Available Quantities list and add these to the Selected Quantities list by left-clicking on the right-arrow.
If the analysis function offers additional parameter settings, select the analysis function in question from the right list view. A dialog is displayed where you can specify the required parameters.
It is possible to save the configuration and calculated analysis results to a VNLFile on the disk. This is is done by checking the Store Results in VNLFile box on the Analysis tab.
The name of the sample.
A single string specifying the name, and place, of the VNLFile file where the calculated properties are saved.
|
|
Warning |
|---|---|
|
Proceed with caution when you calculate this property for bulk systems: The generated list of occupations can become very lengthy. |
Eigenstates
An integer n for an unpolarized molecule, an integer pair (n,s) for polarized molecules, an integer pair (n,k) for unpolarized bulk systems, or an integer triplet (n,k,s) for polarized bulk systems. Here n is the energy level quantum number (non-negative integer), s is the spin state, and k is the fractional k-point (a sequence of 3 numbers).
Current
The k-point sampling used for integrating the transmission spectrum in the 2D Brillouin zone transverse to the transport direction.
Spin label for the current.
The imaginary infinitesimal added to the energy of the retarded Green's function.
The number of energy-points used for the integration.
Density of States
This input specifies a list of energies for which the density of states should be calculated. The list is generated from the number of energy points, the starting value, and the end value. For instance, the values 11, 0, and 1 creates the list [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0].
The imaginary infinitesimal added to the energy of the retarded Green's function.
The k-point sampling used for integrating the transmission spectrum in the 2D Brillouin zone transverse to the transport direction.
Local Density of States
Energy at which the local density of states is calculated.
The transverse k-point, in scaled coordinates, at which the local density of states is to be calculated. In the case of polarized computations, you also need to specify the spin.
The imaginary infinitesimal added to the energy of the retarded Green's function.
Projected Hamiltonian Eigenstates
A list of atom indices in the scattering region onto which the two-probe Hamiltonian is projected. The indices are integers in the range from 0 to N-1, where N is the number of atoms in the scattering region, as defined during the setup of the two-probe configuration.
The quantum numbers which determine the eigenstates to be calculated.
Projected Hamiltonian Energy Spectrum
A list of atom indices in the scattering region onto which the two-probe Hamiltonian is projected. The indices are integers in the range from 0 to N-1, where N is the number of atoms in the scattering region, as defined during the setup of the two-probe configuration.
Transmission Coefficients
The energy for which the transmission coefficients are to be calculated.
The imaginary infinitesimal added to the energy of the retarded Green's function.
A list of quantum numbers (k-points) and the spin for which the transmission coefficients should be be calculated. This list of k-points can be specified in two different ways:
If the box labeled Specify k-points on a grid is not checked, a list of k-points can be created by adding points to the table. Right-click and use the context menu to modify the length of the list.
If the box labeled Specify k-points on a grid is checked, the list of k-points is defined by specifying the number of nodes on each axis (A,B) of a regular grid in the first Brillouin zone.
Transmission Spectrum
A list of energies for which the transmission values should be calculated. The list is determined by specifying how many equidistant energy values contains from which starting value to which ending value.
The imaginary infinitesimal added to the energy of the retarded Green's function.
Sequence of quantum numbers (k-points for A and B) for which the transmission coefficients are to be calculated, and its spin.
Transmission Eigenstates
The energy at which the transmission eigenstates should be calculated.
Sequence of quantum numbers (k-points for A and B) and the spin for which the transmission eigenstates are to be calculated.
Transmission Eigenvalues
The energy at which the transmission eigenvalues should be calculated.
Sequence of quantum numbers (k-points for A and B) and the spin at which the transmission eigenvalues should be calculated.
Energy Bands
A sequence of k-points given in units of the reciprocal lattice vectors. A band line is defined by each two subsequent points in the list. The default k-points list is that of a standard trajectory in the reciprocal space corresponding to the current Bravais lattice.
The number of equidistant points inserted between each two subsequent points of the list “Band Line Points (scaled k-points)”.