NanoLanguage Scripter

Table of Contents

General Description

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] Note
  • The configuration and method can also be extracted by dropping a full NanoLanguage script on the scripter tool. In this case, sections that are not part of the configuration or method definition is ignored. Information from NetCDF files (files with a .nc extension) cannot be extracted by drag-and-drop onto the scripter.

  • Since the method and analysis parameters depend strongly on the kind of system type you are working on, these tabs remains empty until a configuration has been loaded into the NanoLanguage Scripter. Similarly, spin-specific parameters, such as the the spin-up current, are not available until you have specified a spin-polarized calculation in the Electron Density dialog under the Analysis tab.

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.

Configuration

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] 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:

  1. Extract the atomic configuration of the equivalent bulk system, which is the periodic atom configuration comprised of the two-probe electrodes and scattering region.

  2. Relax this equivalent bulk system.

  3. Transform the optimized equivalent bulk configuration back to a two-probe configuration.

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.

The Configuration tab with a molecule shown and Steepest Descent Optimization algorithm selected.

Figure 50: The Configuration tab with a molecule shown and Steepest Descent Optimization algorithm selected.


Quasi Newton Optimized Atomic Geometry

Force Tolerance

The convergence criterion for the optimization requires the largest force component to be smaller than this value.

Max Steps

The maximum number of optimization steps.

Trust Radius

The initial trust radius used by the Quasi Newton algorithm.

Geometric Constraints

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

Force Tolerance

The convergence criterion for the optimization requires the largest force component to be smaller than this value.

Max Steps

The maximum number of optimization steps.

Time Step

The time step used by the SteepestDescent algorithm.

Geometric Constraints

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.

Method

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:

  1. The system type is unequivocally set by the NanoLanguage scripter configuration, whereas it is set manually in the Method Editor.

  2. 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.

Method parameters

Basis Set

Type

The size of the basis set.

Energy Shift

Determines the confinement radius of the numerical orbitals.

Delta Rinn

Defines the inner radius of the soft confinement potential. Valid numbers are in the range from (but not including) 0 to 1.

V0

Defines the softness of the confinement potential. If this parameter is zero, a hard-wall potential is used.

Charge

Defines the net charge of that atom when generating basis orbitals.

Split Norm

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.

Radial Sampling DR

The separation between the points used for the radial representation of the numerical orbitals.

Specify Basis Set by Element Type

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

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.

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.

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

Electron Temperature

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

Mesh Cut-off

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.

Initial Spin

The value for the net spin-polarization of the initial electron density for the whole system.

Initial Scaled Spin

The scaled net spin-polarization per atom of the initial electron density. This must be confined to the range [-1:1].

Fixed Spin

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] Note

For two-probe systems, the above parameters can be specified either as

  • a single parameter set shared by the left electrode, the central region, and the right electrode.

  • three separate parameter sets for the left electrode, the central region, and the right electrode respectively.

To use the last of the above options, check the Heterogeneous check box.

Iteration Control

Criterion

The quantity that is used to measure whether the convergence tolerance has been reached.

Max Steps

The maximum number of steps before the iteration will halt if an equilibrium is not found.

Tolerance

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] Note

For two-probe systems, the above parameters can be specified as either as

  • a single parameter set shared by the left electrode, the central region, and the right electrode.

  • three separate parameter sets for the left electrode, the central region, and the right electrode respectively.

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 to specify independent parameter sets for the left and right electrodes respectively.

Iteration Mixing

Algorithm

Specifies the mixing algorithm.

Diagonal Mixing Parameter

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.

Quantity

The quantity to be mixed.

History Steps

The number of previous steps that is used in the mixing algorithm.

[Note] Note

For two-probe systems, the above parameters can be specified as either as

  • a single parameter set shared by the left electrode, the central region, and the right electrode.

  • three separate parameter sets for the left electrode, the central region, and the right electrode respectively.

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 to specify independent parameter sets for the left and right electrodes respectively.

Two Center Integral

Cut-off

Two-center integrals are evaluated in Fourier space. This parameter controls the energy of the maximum Fourier component to be included in the integration.

Points

Defines the number of points used for the two-center integrals.

Exchange Correlation Functional

Exchange Correlation Functional

The exchange correlation functional to be used in the calculation.

Poisson Equation

Electrostatic Padding Factor

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

Brillouin Zone Integration Parameters

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

Circle Points

The number of points along the arc part of the complex contour.

Integral Lower Bound

The distance from the Fermi level to the energy where the complex contour starts.

Fermi Line Points

Determines the number of points from Fermi level to infinity. Integer value from 1 to 11.

Fermi Function Poles

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.

Real Axis Infinitesimal

Small imaginary energy added to the denominator in the real axis integration. Specified by magnitude, i.e. as a real energy.

Real Axis Point Density

The spacing between the points in the close-to-real axis part of the contour in the voltage bias window.

Electrode Voltages

Left Electrode

The voltage of the left electrode.

Right Electrode

The voltage of the right electrode.

Two-probe Algorithm

Electrode constraint

Constraint imposed on the electrodes.

Initial density type

Electron density type chosen as initial guess for the calculation.

Gated Two Probe Method

Enabled

Enables a gated two probe method.

Gate Voltage

The simulated voltage on the electrostatic gate.

Number of surface atom start of list

The number of surface atoms at the start of the scattering_region_elements list that are not affected by the applied gate voltage.

Number of surface atom end of list

The number of surface atoms at the end of the scattering_region_elements list that are not affected by the applied gate voltage.

[Note] 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 scattering_region_elements list, are not affected by the gate voltage.

Self-Consistent Calculation

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.

Self-consistent parameters

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).

Specify the checkpoint filename

Enable this in order to specify the name of the checkpoint file.

Checkpoint Filename

A single string specifying the name of the check point file.

Verbosity Level

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.

Restore calculation from checkpoint file

Enable this in order to restore a calculation from a checkpoint file.

Checkpoint Filename

A single string specifying the name of the check point file.

Only use initial density

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.

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.

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.


Analysis

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.

Example of the Analysis tab.

Figure 53: Example of the Analysis tab.


Saving analysis results

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.

Sample Name

The name of the sample.

VNLFile Name

A single string specifying the name, and place, of the VNLFile file where the calculated properties are saved.

Analysis parameters

Atomic Forces

Takes no parameters

Effective Potential

Takes no parameters

Electron Density

Takes no parameters

Electrostatic Difference Potential

Takes no parameters

Mulliken Population

Takes no parameters

Total Energy

Takes no parameters

Eigenstate Occupations

Takes no parameters

[Warning] Warning

Proceed with caution when you calculate this property for bulk systems: The generated list of occupations can become very lengthy.

Eigenstates

Quantum numbers

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).

Fermi Energy

Takes no parameters

Current

Brillouin zone integration parameters

The k-point sampling used for integrating the transmission spectrum in the 2D Brillouin zone transverse to the transport direction.

Spin

Spin label for the current.

Green's Function Infinitesimal

The imaginary infinitesimal added to the energy of the retarded Green's function.

Number of Points

The number of energy-points used for the integration.

Density of States

Energies

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].

Green's Function Infinitesimal

The imaginary infinitesimal added to the energy of the retarded Green's function.

Brillouin zone integration parameters

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

Energy at which the local density of states is calculated.

Quantum Numbers

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.

Green's Function Infinitesimal

The imaginary infinitesimal added to the energy of the retarded Green's function.

Projected Hamiltonian Eigenstates

Projection Atoms

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.

Quantum Numbers

The quantum numbers which determine the eigenstates to be calculated.

Projected Hamiltonian Energy Spectrum

Projection Atoms

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

Energy

The energy for which the transmission coefficients are to be calculated.

Green's Function Infinitesimal

The imaginary infinitesimal added to the energy of the retarded Green's function.

Quantum Numbers

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

Energies

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.

Green's Function Infinitesimal

The imaginary infinitesimal added to the energy of the retarded Green's function.

Quantum Numbers

Sequence of quantum numbers (k-points for A and B) for which the transmission coefficients are to be calculated, and its spin.

Transmission Eigenstates

Energy

The energy at which the transmission eigenstates should be calculated.

Quantum Numbers

Sequence of quantum numbers (k-points for A and B) and the spin for which the transmission eigenstates are to be calculated.

Transmission Eigenvalues

Energy

The energy at which the transmission eigenvalues should be calculated.

Quantum Numbers

Sequence of quantum numbers (k-points for A and B) and the spin at which the transmission eigenvalues should be calculated.

Energy Bands

Band Line Points (scaled k-points)

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.

Number of points per band line

The number of equidistant points inserted between each two subsequent points of the list “Band Line Points (scaled k-points)”.

Energy Spectrum

Takes no parameters