fcc_slab

sisl.geom.fcc_slab(alat: float, atoms: sisl.typing.AtomsLike, miller: int | str | tuple[int, int, int], layers=None, vacuum: float | Sequence[float] = 20.0, *, orthogonal: bool = False, start=None, end=None) Geometry

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

The slab layers are stacked along the \(z\)-axis. The default stacking is the first layer as an A-layer, defined as the plane containing an atom at \((x,y)=(0,0)\).

Several vacuum separated segments can be created by specifying specific positions through either layers being a list, or by having spaces in its str form, see Examples.

Parameters:
  • alat – lattice constant of the fcc crystal

  • atoms – the atom that the crystal consists of

  • miller – Miller indices of the surface facet

  • layers (int or str or array_like of ints, optional) – Number of layers in the slab or explicit layer specification. For array like arguments vacuum will be placed between each index of the layers. Each element can either be an int or a str to specify number of layers or an explicit order of layers. If a str it can contain spaces to specify vacuum positions (then equivalent to layers.split()). If there are no vacuum positions specified a vacuum will be placed after the layers. See examples for details.

  • vacuum – size of vacuum at locations specified in layers. The vacuum will always be placed along the \(z\)-axis (3rd lattice vector). Each segment in layers will be appended the vacuum as found by zip_longest(layers, vacuum). None means that no vacuum is inserted (keeps the crystal structure intact).

  • orthogonal – if True returns an orthogonal lattice

  • start (int or str or array_like, optional) – sets the first layer in the slab. Only one of start or end must be specified. Discouraged to pass if layers is a str since a ValueError will be raised if they do not match.

  • end (int or str or array_like, optional) – sets the last layer in the slab. Only one of start or end must be specified. Discouraged to pass if layers is a str since a ValueError will be raised if they do not match.

Examples

111 surface, starting with the A layer

>>> fcc_slab(alat, atoms, "111", start=0)

111 surface, starting with the B layer

>>> fcc_slab(alat, atoms, "111", start=1)

111 surface, ending with the B layer

>>> fcc_slab(alat, atoms, "111", end='B')

fcc crystal with 6 layers and the 111 orientation (periodic also on the z-direction, e.g., for an electrode geometry)

>>> fcc_slab(alat, atoms, "111", layers=6, vacuum=None)

111 surface, with explicit layers in a given order

>>> fcc_slab(alat, atoms, "111", layers='BCABCA')

111 surface, with (1 Ang vacuum)BCA(2 Ang vacuum)ABC(3 Ang vacuum)

>>> fcc_slab(alat, atoms, "111", layers=' BCA ABC ', vacuum=(1, 2, 3))

111 surface, with (20 Ang vacuum)BCA

>>> fcc_slab(alat, atoms, "111", layers=' BCA', vacuum=20)

111 surface, with (2 Ang vacuum)BCA(1 Ang vacuum)ABC(1 Ang vacuum) The last item in vacuum gets repeated.

>>> fcc_slab(alat, atoms, "111", layers=' BCA ABC ', vacuum=(2, 1))

111 periodic structure with ABC(20 Ang vacuum)BC The unit cell parameters will be periodic in this case, and it will not be a slab.

>>> fcc_slab(alat, atoms, "111", layers='ABC BC', vacuum=20.)

111 surface in an orthogonal (4x5) cell, maintaining the atom ordering according to lattice=[2, 1, 0]:

>>> fcc_slab(alat, atoms, "111", orthogonal=True).repeat(5, axis=1).repeat(4, axis=0)

111 surface with number specifications of layers together with start Between each number an implicit vacuum is inserted, only the first and last are required if vacuum surrounding the slab is needed. The following two calls are equivalent. Structure: (10 Ang vacuum)(ABC)(1 Ang vacuum)(BCABC)(2 Ang vacuum)(CAB)

>>> fcc_slab(alat, atoms, "111", layers=(' ', 3, 5, 3), start=(0, 1, 2), vacuum=(10, 1, 2))
>>> fcc_slab(alat, atoms, "111", layers=' ABC BCABC CAB', vacuum=(10, 1, 2))
Raises:
  • NotImplementedError – In case the Miller index has not been implemented or a stacking fault is introduced in layers.

  • ValueError – For wrongly specified layers and vacuum arguments.

See also

fcc

Fully periodic equivalent of this slab structure

bcc_slab

Slab in BCC structure

rocksalt_slab

Slab in rocksalt/halite structure