structuretoolkit.build.aimsgb.grainboundary#
- structuretoolkit.build.aimsgb.grainboundary(axis: ndarray, sigma: int, plane: ndarray, initial_struct: Atoms, *, uc_a: int = 1, uc_b: int = 1, vacuum: float = 0.0, gap: float = 0.0, delete_layer: str = '0b0t0b0t', tol: float = 0.25, to_primitive: bool = False, add_if_dist: float | None = None)[source]#
Generate a grain boundary structure based on aimsgb.
- Parameters:
axis – Rotational axis for the GB you want to construct (for example, axis=[1,0,0])
sigma (int) – The sigma value of the GB you want to construct (for example, sigma=5)
plane – The grain boundary plane of the GB you want to construct (for example, plane=[2,1,0])
initial_struct – Initial bulk structure from which you want to construct the GB (a ase structure object).
uc_a (int) – Number of unit cell of grain A. (Default is 1.)
uc_b (int) – Number of unit cell of grain B. (Default is 1.)
vacuum (float) – Adds space between the grains at _one_ of the two interfaces that must exist due to periodic boundary conditions. (Default is 0.0.)
gap (float) – Adds space between the grains at _both_ of the two interfaces that must exist due to periodic boundary conditions. When used together with vacuum, these spaces add at one of the two interfaces. (Default is 0.0.)
delete_layer (str) – To delete layers of the GB. For example, delete_layer=’1b0t1b0t’. The first 4 characters is for first grain and the other 4 is for second grain. b means bottom layer and t means top layer. Integer represents the number of layers to be deleted. The first t and second b from the left hand side represents the layers at the GB interface. Default value is delete_layer=’0b0t0b0t’, which means no deletion of layers.
tol (float) – Tolerance factor (in distance units) to determine whether two atoms are in the same plane. (Default is 0.25.)
to_primitive – To generate primitive or non-primitive GB structure. (Default value is False.)
add_if_dist (float) – (Deprecated) Use gap.
- Returns:
final grain boundary structure
- Return type:
ase.Atoms