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 returns a Geometry object.

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


sc(alat, atoms)

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)

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

rocksalt(alat, atoms[, orthogonal])

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

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)

0D materials

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.

triangulene(n[, bond, atoms, vacuum])

Construction of an [n]-triangulene geometry

1D materials

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

Construction of a nanoribbon unit cell of type armchair, zigzag or (n,m)-chiral.

agnr(width[, bond, atoms, vacuum])

Construction of an armchair graphene nanoribbon

zgnr(width[, bond, atoms, vacuum])

Construction of a zigzag graphene nanoribbon

cgnr(width, chirality[, bond, atoms, vacuum])

Construction of an (n, m, w)-chiral graphene nanoribbon

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

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

hexagonal(bond[, atoms, orthogonal])

A hexagonal unit-cell with 1 or 2 atoms in the basic unit cell

goldene([bond, atoms, orthogonal])

A goldene unit-cell with 1 or 2 atoms in the basic unit cell


AtomCategory(*args, **kwargs)

composite_geometry(sections, section_cls, ...)

Creates a composite geometry from a list of sections.