Skip to content

Surface Energy

SurfaceTransformation

SurfaceTransformation(
    miller_index: tuple[int, int, int] = (1, 1, 0),
    min_slab_size: float = 10.0,
    min_vacuum_size: float = 10.0,
    center_slab: bool = True,
    in_unit_planes: bool = False,
    primitive: bool = False,
    symmetrize: bool = True,
)

Generates surface slabs from a bulk structure for surface energy calculations.

Initializes the SurfaceTransformation object.

Parameters:

Name Type Description Default
miller_index tuple[int, int, int]

The Miller index for the surface. Defaults to (1, 1, 0).

(1, 1, 0)
min_slab_size float

The minimum slab size in Angstroms. Defaults to 10.0.

10.0
min_vacuum_size float

The minimum vacuum size in Angstroms. Defaults to 10.0.

10.0
center_slab bool

Whether to center the slab within the vacuum. Defaults to True.

True
in_unit_planes bool

Whether min_slab_size and min_vacuum_size are in units of hkl planes instead of Angstroms. Defaults to False.

False
primitive bool

Whether to reduce the generated slabs to their primitive cell. Defaults to False.

False
symmetrize bool

Whether to generate slabs with symmetric surface terminations on both sides. Defaults to True.

True

apply_transformation

apply_transformation(structure: Structure) -> list[Slab]

Generates surface slabs for the configured Miller index from a bulk structure.

Parameters:

Name Type Description Default
structure Structure

The (relaxed) bulk structure used to generate slabs.

required

Returns:

Type Description
list[Slab]

list[Slab]: The generated slabs, repaired to remove broken bonds at the surface and, if symmetrize is True, restricted to terminations with symmetric surfaces.