The BulkConfiguration class is used to represent a periodic
arrangement of atoms in a Bravais lattice, e.g. a crystal structure. The position
of the atoms can be specified using either Cartesian coordinates or fractional
coordinates, i.e. coordinates in units of the lattice vectors.
List of arguments
A Bravais lattice describing the crystal structure.
Default:
None
The elements (atoms) contained in the primitive unit cell.
Default:
None
A list containing tuples of Cartesian coordinates, in a desired unit, for each atom in the primitive unit cell. The list should have the same length as the list of elements, and the atoms should be ordered in the same way.
Default:
None
A list containing tuples of coordinates, in units of the lattice vectors, for each atom in the primitive unit cell. The list should have the same length as the list of elements, and the atoms should be ordered in the same way.
Default:
None
Dictionary of pseudo-potential parameters.
Default:
None
|
|
Note |
|---|---|
|
It is not possible to specify both |
A BulkConfiguration object offers the following methods:
Array
cartesianCoordinates(): Returns a NumPy array
containing the Cartesian coordinates of the atoms in the BulkConfiguration.
List elements(): Returns the
element types of the atoms in the primitive unit cell.
Object bravaisLattice():
Returns the Bravais lattice of the BulkConfiguration.
Create a bulk body-centered cubic crystal with a single lithium atom as basis:
from ATK.KohnSham import * lattice = BodyCenteredCubic( 3.509 * Ang) li_bcc_bulk = BulkConfiguration( lattice, [Lithium], [ ( 0.0, 0.0, 0.0 ) * Ang ] )
Create a diamond crystal using fractional coordinates:
from ATK.KohnSham import * elements = [ Carbon ] * 2 coordinates = [ ( 0.00, 0.00, 0.00 ), ( 0.25, 0.25, 0.25 ) ] diamond_lattice = FaceCenteredCubic( 3.567 * Ang ) diamond = BulkConfiguration( diamond_lattice, elements, fractional_coordinates = coordinates )
ATK only recognizes three types of atomic geometries: molecule, bulk, and two-probe (plus electrodes; these, however, can only be used to construct two-probe systems). Other periodic geometries, such as nanotubes, slabs, and atomic chains must also be represented as a BulkConfiguration. Such structures are typically based on a tetragonal or orthorhombic lattice with a large lattice constant in one or several directions to "pad" the system with a sufficient amount of vacuum in the irrelevant directions. This in fact, is the same trick used by ATK for its internal representation of molecular structures.