SurfaceBuilder.build#

SurfaceBuilder.build(miller_indices, min_slab_size=25.0, min_vacuum_size=15.0, max_broken_bonds=20, bonds_dict=None)[source]#

Generate crystalline surfaces from the structure.

Parameters:
miller_indicesSequence[int]

Miller indices for the surface cut (e.g., (1, 1, 1)).

min_slab_sizefloat, default=25.0

Minimum thickness of the slab in Angstroms.

min_vacuum_sizefloat, default=15.0

Minimum size of the added vacuum in Angstroms.

max_broken_bondsint, default=20

Maximum number of broken bonds to accept.

bonds_dictdict, optional

Dictionary of bond lengths for different element pairs. If None, uses default values.

Returns:
tuple

(slabs_list, shift_list, dipole_list, actual_broken)

Raises:
RuntimeError

If no structure is available for surface generation.

ValueError

If the structure is not suitable for surface generation.