# 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

## Bulk

 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

## Helpers

 AtomCategory(*args, **kwargs) composite_geometry(sections, section_cls, ...) Creates a composite geometry from a list of sections.