Name

PeriodicAtomConfiguration Used to represent a periodic arrangement of atoms which is not a crystal structure (e.g. electrodes, slabs etc.).

Synopsis

Namespace: ATK.KohnSham or ATK.TwoProbe
Object PeriodicAtomConfiguration(
super_cell_vectors,
elements,
cartesian_coordinates,
fractional_coordinates,
pseudopotential_parameters
)

Description

The PeriodicAtomConfiguration class is used to create electrodes for two-probe systems. If you would like to create a bulk system you should instead use the BulkConfiguration.

List of arguments

super_cell_vectors

A list, consisting of three vectors with three components (each with unit of length) that define the electrode unit cell.

Default: None

elements

elements of all atoms contained in the electrode unit cell.

Default: None

cartesian_coordinates

A list containing tuples of Cartesian coordinates, in a desired unit, for each atom in the electrode 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

fractional_coordinates

A list containing tuples of coordinates, in units of the lattice vectors, for each atom in the electrode 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

pseudopotential_parameters

Dictionary of pseudopotential parameters.

Default: Pseudo-potentials supplied with atk

Returned object methods

A PeriodicAtomConfiguration object has the following query functions:

  • Array cartesianCoordinates(): Returns a NumPy array containing the Cartesian coordinates of the atoms in the PeriodicAtomConfiguration.

  • List elements(): Returns the element types of the atoms in the electrode unit cell.

  • Array superCellVectors(): Returns a NumPy array which contains the super cell vectors that define the electrode unit cell.

Usage examples

Construct a lithium electrode using Cartesian coordinates:

unit_cell = [
    [ 8.7, 0.0, 0.0 ],
    [ 0.0, 8.7, 0.0 ],
    [ 0.0, 0.0, 11.6]]*Ang
li_electrode = PeriodicAtomConfiguration(
    unit_cell,
    4*[Lithium],
    [(4.35, 4.35, 0.0)*Ang,
    (4.35, 4.35, 2.9)*Ang,
    (4.35, 4.35, 5.8)*Ang,
    (4.35, 4.35, 8.7)*Ang])

Notes

In ATK, the algorithms used to calculate two-probe systems requires the third super cell vector to be perpendicular to the two other ones. Furthermore, the third vector should be parallel to the Cartesian z axis.

If both cartesian_coordinates and fractional_coordinates are specified, an exception is raised. For constructing crystal structures with a Bravais lattice, use BulkConfiguration.

A PeriodicAtomConfiguration can be saved to a VNL file.