# Overview of built-in plugins¶

The Builder contains a lot of tools. Each tool allows one to do an isolated operation, for instance, repeating a periodic structure, rotating a selected atom around a specified axis, passivating selected atoms with hydrogen, and many other operations on the atomic structure. The true power of the Builder comes from the possibility of combining these operations in numerous ways to build complex atomic structures.

In the following, we give a quick overview of the basic plugins shipped with the QuantumATK package. This overview provides a broad picture of the functionalities of the Builder. The plugins are designed to be simple to use, and many of them have instructions built into the QuantumATK interface. You may also take advantage of the tooltips to find out about a particular plugin parameter.

## Toolbar plugins¶

Shape select uses the mouse to paint a shape to select atoms. Hold the mouse over the toolbar at the icon to switch between the three shape select modes: rectangle , circle and lasso .

Molecular builder builds a molecule from the library of chemical elements and fragments.

Move tool manipulates an atomic structure by moving and/or rotating its fragments (groups of selected atoms) in a controllable way. See also the section Using the Move Tool.

Tags allow for a quick selection of atoms labeled with user-defined tags.

Convert to molecule converts the unit cell atomic structure to an isolated molecule-like structure, removing periodic boundary conditions of the unit cell. For a device structure, this operation removes the electrodes, converting the central region of the device to the corresponding non-periodic structure.

Convert to bulk converts an isolated molecule or any non-periodic atomic structure to a periodic unit cell structure, e.g., to describe the molecule in a periodically-repeated cell. For a device structure, this operation removes the electrodes, converting the central region of the device to the corresponding periodic structure.

Split device splits a device, creating separate stash items for the electrodes and the central region, and imposing periodic boundary conditions on each of the item structures.

Extract image extracts the active image from a Nudged Elastic Band (NEB) configuration, and then adds it to the stash as a new configuration.

Periodic table allows you to replace the selected atoms of a certain chemical element with atoms of some other chemical element from the Periodic Table, which is displayed when you click on the icon.

Passivate adds hydrogen or pseudo-hydrogen atoms to passivate dangling bonds for selected atoms, or the whole structure if no selection has been made prior to passivation. This operation preserves the periodicity of the original unit cell structure.

Niggli form reduces the unit cell and related atom positions to the Niggli form.

Centroid places an atom in the geometrical center of the group of selected atoms. This is especially handy for creating alignment points to be used with the Move Tool. Note that you should select at least two atoms for the Centroid operation to do anything.

Ghost converts selected atoms to ghost atoms, or to regular atoms if the selected atoms were already ghost atoms.

Rattle randomly displaces each of the selected atoms in the atomic structure, with a maximal deviation of 0.125 Å from the original atom position in any direction. If no atoms are selected prior to the Rattle operation, all the atoms of the atomic structure will be randomly displaced.

POVRay Generator generates a POV-Ray processed image.

View plane controls the view plane of the currently active 3D window.

## Panel plugins¶

### Builders¶

Basic plugins for converting or combining atomic structures into new complex structures.

Icosahedron Builder creates an icosahedron crystal.

Interface creates an interface between two bulk structures, e.g., SiO2 and Si, to represent the oxide on a Si surface. This operation automatically searches for an interface configuration with minimal average strain by doing various rotation and repetition operations of the two input bulk structures, using the coincidence lattice method.

Nanowire builds a nanowire with a given radius and surface energies in the main crystallographic directions, using the Wulff construction method.

Nudged Elastic Band creates a NEB path between two end configurations, using one of several different methods. The created path can then be manipulated in the tool to remove or insert images, or further refine the path between the two images.

Substitutional Alloy creates an alloy structure by replacing the selected atoms in the stash item structure with another element, by specifying a percentage (concentration) of the substitutional atoms in the alloy. The tool is also able to create vacancy sites with a certain concentration.

Wulff Constructor creates an atomic cluster with a given radius and surface energies in the main crystallographic directions, using the Wulff construction method.

Generic Alloy creates a random alloy by combining different, but similar, unit cells in a larger supercell. The percentage of each configuration in the alloy can be specified in the plugin as well as the size of the alloy that can be controlled by changing the number of repetitions in each direction. The tool has an option of choosing the algorithm, Normal distribution or Fixed fraction, for generating the alloy structure.

Packmol creates an amorphous configuration containing the molecules (or any non-periodic atomic structures) listed in the plugin table.

Surface (Cleave) cleaves a bulk structure to create a surface, device electrode, or a slab. This tool has a variety of options when creating the surface cell.

#### Non-default Builders¶

If needed, other plugins for building very specific atomic structures can be added to the Builders section. These plugins are not available by default, but can be installed from the AddOnManager, see Help ‣ AddOn Manager. For example, the following plugins can be installed from the SCAITools package in the AddOnManager.

AFM Cantilever Tip builds an AFM-Tip with a cuboid shaped block. This operation cuts the tip area, using a selected material on the stash by controlling the size and the orientation.

Amorphous Prebuilder creates an amorphous structure with a given density, according to a sum formula.

Polycrystal (Voronoi) generates the polycrystal from the crystal structures taken from the stash. It creates the polycrystal by controlling the grid points and a crystal type.

### Bulk Tools¶

These plugins primarily operate on the unit cell of a periodic atomic structure.

Crystal Symmetry Info detects the symmetry of the atomic structure if one clicks on the Detect button. The tool gives information on the space group of the structure in Hermann-Mauguin, Hall and Schoenflies conventions. If one clicks on the More information button, more information can then be obtained about the symmetry properties of the atomic structure.

Fit Cell attempts to fit a cell to the structure by looking for periodic patterns.

Merge Cells merges two periodic structures in a simpler way than the Interface pluging in the Builders does. That can be of particular interest when merging 1D or 2D structures, e.g., merging two nanotubes to create a 1D junction.

Repeat repeats a periodic structure in A, B, and C.

Stretch Cell allows you to stretch the unit cell. One can then choose whether the selected atom positions should be either moved rigidly or stretched in the unit cell. This tool can be used to strain a structure, or make a 2D junction (e.g., bilayer graphene) with partial overlap.

Supercell applies a 3x3 matrix operation to a unit cell to make a supercell structure. The atoms are then repeated as needed to fill the supercell. This operation is of particular interest for converting the primitive cell to a conventional cell, or a hexagonal to an orthorhombic cell.

Swap Axes swaps the unit cell axes A, B and C, and/or the coordinate system axes X, Y, and Z. In most cases, this operation should be applied twice to end up with a right-handed cell, not a left-handed one.

Wrap wraps the atoms (which are outside of the unit cell) back into the cell. This option can be of interest if some atoms appear outside of the unit cell during atomic structure operations.

Brillouin Zone Viewer shows the Brillouin zone and reciprocal lattice vectors of the crystal in the Cartesian coordinate system.

Lattice Parameters allows one to change the lattice type as well as the actual lattice vectors and related lattice parameters of the crystal structure.

### Coordinate Tools¶

These plugins primarily operate on the atom coordinates.

Center puts the geometrical center of the unit cell atomic structure (considered as a group of atoms) in the geometrical center of the corresponding unit cell, or with respect to the origin in the case of a molecule or non-periodic atomic structure such as an atomic cluster.

Custom Passivator passivates dangling bonds of undercoordinated atoms with hydrogen or pseudo-hydrogen atoms. This passivation tool has an option to manually set the bond distance between the hydrogen and passivated atom.

Mirror mirrors a group of selected atoms with respect to a given mirror plane. Optionally, one may copy the atoms from their original to their mirrored positions to have both the mirrored and original atoms in the structure.

Quick Optimizer runs a geometry optimization of the atomic structure using an ATKClassical potential, provided that there is a classical potential available in the classical potential database for each of the chemical elements in the structure.

Rotate rotates a group of selected atoms with respect to a given axis. Optionally, one may copy the atoms from their original to their rotated positions to have both the rotated and original atoms in the structure. Note that the Move Tool provides an alternative way to rotate the group of atoms with the mouse.

Sort sorts the atomic coordinates. This operation can also be done in the Coordinate List.

Transform by Expression applies a coordinate transformation given by a mathematical expression to the coordinates of selected atoms, e.g., $$x\rightarrow x + \sin(y)$$. This plugin supports all mathematical functions available in the Python math module, and interprets the variables x,y,z as atomic coordinates, and a,b,c as lattice vectors of periodic systems.

Translate moves a group of selected atoms by a given distance. Optionally, one may copy the translated atoms to their original (prior to translation) positions to have both the translated and original atoms in the structure. Note that the Move Tool provides an alternative way to move the group of selected atoms with the mouse.

Coordinate List allows one to directly edit the coordinates of atoms in a sortable coordinate list. You should right-click on the table to use the context menu to insert or delete atoms. Selecting rows in the table automatically selects the corresponding atoms.

Z-matrix is a direct way of editing the Z-matrix of selected atoms.

#### Non-default Coordinate Tools¶

If needed, other plugins for building very specific atomic structures can be added to the Coordinate Tools. These plugins are not available in the Coordinate Tools by default, but they can be installed from the AddOnManager, see Help ‣ AddOn Manager. For example, the following plugin can be installed from the TubeWrapper and FunWithGraphene packages in the AddOnManager.

Buckler applies a buckling by modulating the x-coordinate of an initially flat structure.

Tube Wrapper wraps a periodic system onto a circular arc, or a tube if the angle is 360 degrees. Subsequently, the original B(Y) axis will be mapped onto the arc, while the tube axis will lie along C(Z). If helical rise is non-zero, a helix is then created such that a difference in the Z coordinate between the beginning and end is the specified “helical rise”.

Twister twists the structure by a given angle around the Z axis. The non-twisting zone defines a distance from the edges of the system in the Z direction, which are left unmodified to maintain periodicity.

### Device Tools¶

These plugins create or modify a device geometry.

Central Region Size allows for changing the size of the central region after a device structure has already been created in the Builder, using the Device from bulk or Device from surface plugins. Using this tool, one may also add or remove atomic layers in the central region, enlarging the right and/or left electrode extensions.

Electrode Size allows for changing the size of the electrodes after a device structure has already been created in the Builder, using the Device from bulk or Device from surface plugins. This is similar to the Central Region Size plugin.

Device from Bulk is the main tool to automatically create a device in the Builder. The tool converts the bulk configuration item in the stash to the device central region structure with no periodicity in the C-transport direction unlike the original bulk structure. It then attaches the left and right electrodes of the device to its central region. The electrodes are constructed from the edge atomic layers (electrode extensions) of the central region. The electrode length can be set by default or manually in the plugin.

Surface from Bulk is the tool to automatically create the surface structure by converting the bulk configuration structure in the stash to the central region of a one-probe device. The tool then attaches the left electrode to the device central region. The electrode is constructed from the left edge atomic layers (electrode extension) of the central region. The electrode length can be set by default or manually in the plugin. To create a real surface, some of the atoms have to be manually deleted from the one-probe device central region (or original bulk structure) to create a vacuum layer above the surface of interest.

### Graphics¶

Properties opens a window with the many graphical options available in QuantumATK.

### Miscellaneous¶

Various plugins that do not fit in any other category.

Doping adds doping charge to the group of currently selected atoms. One may also undo doping by selecting a row in the table. This tool is of particular interest to modeling of doping effect in a atomistic semiconductor device without explicitly introducing dopant atoms.

Spatial Regions allows one to add and remove metallic and dielectric regions in the device structure. This tool is of particular interest to building a semiconductor device with the dielectric spacer between the gate electrode and channel region of the semiconductor device. Note that the metallic and regions are given by the continuum model in a TCAD fashion, unlike the channel region that is treated at the atomistic scale.

### Select Tools¶

Plugins for advanced selection of atoms.

By Bond Length selects atoms by a range of separation distance between the atoms.

By Element selects atoms by a type of chemical element.

By Expression selects atoms using a logical expression, e.g., setting “e=H and x<10” will select all the hydrogen atoms with X coordinate less than 10 Å.

Close Neighbors helps to identify overlapping atoms. It is a very useful tool to detect those atoms that are on top of each other, and then delete duplicate atoms. This must be done before sending the structure from the Builder to the Script Generator to avoid any numerical issues upon running the QuantumATK calculations.

Tags allow one to add, edit or remove tags on an atom or a group of selected atoms. One may also select atoms by this plugin, but the Tag Select button in the toolbar is a faster option for atom selection with tags.

## Custom builder plugins¶

Under the Stash menu Add ‣ From Plugin, you will find a list of “template builders”, which are plugins designed to build a particular structure based on a simple or complex set of rules, and add a new item to the Stash.

In the default installation of the QuantumATK, you will find the following plugins for adding new stash items.

Nanotube builds a nanotube with a given chirality, such as boron-nitride and carbon nanotubes as well as multiwall nanotubes with up to 3 walls.

Crystal Builder builds a crystal by selecting the space group and lattice parameters of the crystal.

Crystallography Open Database chooses a crystal by first selecting chemical elements in the Periodic Table, and then searching for the crystal structures (which contain the selected elements) in the crystallography open database. See also the section on this plugin.

Nanoribbon builds one-dimensional ribbons cut out from a nanosheet. Optionally, one may passivate the ribbon edges with hydrogen atoms.

Nanosheet builds infinite two-dimensional sheets, such as graphene monolayers and similar 2D hexagonal materials, aligning the C-axis with a given chiral vector. Note that the C-axis is the default direction for QuantumATK transport calculations.

Magnetic Tunnel Junction (FeMgO-style) builds a magnetic tunnel junction (MTJ) such as the Fe|MgO|Fe MTJ, which is a two-probe device with a layer of insulator or semiconductor material placed between two ferromagnetic electrodes.

## Supported file formats for import and export¶

In addition to QuantumATK Python and NetCDF files, the following file formats are supported in the QuantumATK package for import and export of atomic geometries.

• XYZ
• CAR
• CASTEP (.cell and .geom)
• CIF
• FHI-aims
• OpenBabel (.acr, .alc, .arc, .bgf, .box, .bs, .c3d1, .c3d2, .caccrt, .can, .ccc, .cdx, .car, .cssr, .dmol, .fract, .fs, .ins, .sy2)
• Quantum ESPRESSO
• ASE
• MBN Explorer
• VASP (POSCAR and CONTCAR, and their gz, gzip and zip versions)

Support for additional file formats, not listed above, becomes regularly available in the form of plugins that can be installed in the AddOn Manager.

## Third-party plugins¶

When you add a new plugin to QuantumATK, either from add-ons that you have developed yourself, downloaded via the AddOn Manager, or obtained directly via third-party (or QuantumWise) as a zip-file, they are always seamlessly integrated in the proper place where they belong. It means that if you add your own import filter, it will then automatically appear in the dropdown list of file filters in the Add ‣ From Files dialog.