Common geometries

A selection of default geometries that sisl can construct on the fly.

While this is far from complete we encourage users to contribute additional geometries via a pull request.

All methods return a Geometry object.

Some of the geometries are created in section based geometries, such as heteroribbon. This functionality is provided through the composite_geometry

Bulk

sc(alat, atom)

Simple cubic lattice with 1 atom

bcc(alat, atoms[, orthogonal])

Body centered cubic lattice with 1 (non-orthogonal) or 2 atoms (orthogonal)

fcc(alat, atoms[, orthogonal])

Face centered cubic lattice with 1 (non-orthogonal) or 4 atoms (orthogonal)

rocksalt(alat, atoms[, orthogonal])

Two-element rocksalt lattice with 2 (non-orthogonal) or 8 atoms (orthogonal)

hcp(a, atoms[, coa, orthogonal])

Hexagonal closed packed lattice with 2 (non-orthogonal) or 4 atoms (orthogonal)

diamond([alat, atoms])

Diamond lattice with 2 atoms in the unitcell

Surfaces (slabs)

bcc_slab(alat, atoms, miller[, layers, ...])

Construction of a surface slab from a body-centered cubic (BCC) crystal

fcc_slab(alat, atoms, miller[, layers, ...])

Surface slab forming a face-centered cubic (FCC) crystal

rocksalt_slab(alat, atoms, miller[, layers, ...])

Surface slab forming a rock-salt crystal (halite)

1D materials

nanoribbon(width, bond, atoms[, kind])

Construction of a nanoribbon unit cell of type armchair or zigzag.

agnr(width[, bond, atoms])

Construction of an armchair graphene nanoribbon

zgnr(width[, bond, atoms])

Construction of a zigzag graphene nanoribbon

graphene_nanoribbon(width[, bond, atoms, kind])

Construction of a graphene nanoribbon

nanotube(bond[, atoms, chirality])

Nanotube with user-defined chirality.

heteroribbon(sections[, section_cls])

Build a nanoribbon consisting of several nanoribbons of different widths.

graphene_heteroribbon(sections[, ...])

Build a graphene nanoribbon consisting of several nanoribbons of different widths

2D materials

honeycomb(bond, atoms[, orthogonal])

Honeycomb lattice with 2 or 4 atoms per unit-cell, latter orthogonal cell

bilayer([bond, bottom_atoms, top_atoms, ...])

Commensurate unit cell of a hexagonal bilayer structure, possibly with a twist angle.

graphene([bond, atoms, orthogonal])

Graphene lattice with 2 or 4 atoms per unit-cell, latter orthogonal cell

honeycomb_flake(shells, bond, atoms[, vacuum])

Hexagonal flake of a honeycomb lattice, with zig-zag edges.

graphene_flake(shells[, bond, atoms, vacuum])

Hexagonal flake of graphene, with zig-zag edges.

Helpers

AtomCategory(*args, **kwargs)

composite_geometry(sections, section_cls, ...)

Creates a composite geometry from a list of sections.

CompositeGeometrySection()