# Introduction¶

This notebook demonstrates how you can interface terminations of grain boundaries.

# Interface Termination for Symmetric GB¶

Let's take SrTiO3 Σ5[001]/(130) tilt grain boundary as an example. The initial structure is a cubic lattice structure

Let's first create a symmetric GB with its interface termination unchanged.

In [1]:
from aimsgb import GrainBoundary, Grain
s = Grain.from_file("POSCAR_SrTiO3")
gb = GrainBoundary([0, 0, 1], 5, [1, 3, 0], s)
structure = gb.build_gb()


Next, let's make some changes for the interface. For example, deleting the 1st bottom layer (1b) of grain B. We define top (t) and bottom (b) layer of a grain with respect to the interface norm to the GB plane, which represents the orientation of GB. To make two interfaces symmetric, we also need to delete the 1st bottom layer (1b) of grain A. To delete layers of GB, you can specify delete_layer in build_gb function. In this example, delete_layer='1b0t1b0t'. The first 4 characters is for grain A and the other 4 is for grain B. b means bottom layer and t means top layer. Integer represents the number of layers to be deleted. Default to 0b0t0b0t, which means no deletion of layers

In [2]:
gb = GrainBoundary([0, 0, 1], 5, [1, 3, 0], s)
structure = gb.build_gb(delete_layer='1b0t1b0t')


If you want to add extra interface distance, you can specify add_if_dist, say 0.5 Å

In [3]:
gb = GrainBoundary([0, 0, 1], 5, [1, 3, 0], s)


Of course, you can choose to delete more layers, say 2 bottom layers (2b),

In [4]:
gb = GrainBoundary([0, 0, 1], 5, [1, 3, 0], s)
structure = gb.build_gb(delete_layer='2b0t2b0t')


# Asymmetric GB¶

You can do similar changes for top layers,

In [5]:
gb = GrainBoundary([0, 0, 1], 5, [1, 3, 0], s)