Grain Boundaries

How grain boundaries are calculated on the Materials Project (MP) website.

Many real, bulk crystalline materials consist of many grains separated by grain boundaries (GBs). GBs are interfaces where crystals of the same phase meet with different orientations. These boundaries strongly affect mechanical, electrical, and chemical properties, making them critical in materials design.

On MP, the GB structures and properties can be accessed through the API or generated via the Crystal Toolkit. The toolkit employs the Coincidence Site Lattice (CSL) method, where two misoriented crystals are superimposed and coincident lattice sites identified. The algorithm (implemented in pymatgen) constructs the GB structure by:1

1. Lattice Transformation – transform the unit cell into a CLS unit cell where the a and b vectors lie parallel to the desired GB plane.

2. Grain Creation and Rotation – build two grains and rotate them relative to each other using the specified axis and angle.

3. Grain Stacking – place the two grains together, adjusting relative shifts along the a, b, and c directions.

4. Atom Merging – remove atoms that are too close, based on a user-defined distance tolerance.

from mp_api.client import MPRester

with MPRester("your_api_key_here") as mpr:
   grain_bdy = mpr.materials.grain_boundaries.search()

References

[1] Zheng, H. et al. Grain boundary properties of elemental metals. Acta Mater. vol. 186, pp. 40–49, yr. 2020. (DOI)

Authors

Mona Abdelgaid

Last updated

Was this helpful?