MATLAB and Python code for generating 2D and 3D synthetic polycrystalline microstructures using Laguerre tessellations, including fast algorithms for generating grains of prescribed volumes using optimal transport theory.
To use the MATLAB functions you must first install
- MATLAB-Voro
- MATLAB-SDOT
- MatGeom by David Legland
Replace the file matGeom/meshes3d/intersectPlaneMesh.m
with the version in this repository.
The Python examples use the library pysdot.
See the Examples
folder for examples from the following papers:
- Bourne, D.P., Pearce, M. & Roper, S.M. (2024) Inverting Laguerre tessellations: Recovering tessellations from the volumes and centroids of their cells using optimal transport, arXiv:2406.00871. PDF
- Bourne, D.P., Pearce, M. & Roper, S.M. (2023) Geometric modelling of polycrystalline materials: Laguerre tessellations and periodic semi-discrete optimal transport, Mechanics Research Communications, 127, 104023. PDF
- Bourne, D.P., Kok, P.J.J., Roper, S.M. & Spanjer, W.D.T. (2020) Laguerre tessellations and polycrystalline microstructures: A fast algorithm for generating grains of given volumes, Philosophical Magazine, 100, 2677-2707. PDF
See LICENCE.md
- pyAPD - our 'sister repository' for computing anisotropic Laguerre diagrams with grains of prescribed volumes
- DREAM.3D
- Kanapy
- Neper
- Steve Roper, University of Glasgow
- David Bourne, Heriot-Watt University and the Maxwell Institute for Mathematical Sciences
- Mason Pearce, Heriot-Watt University and the Maxwell Institute for Mathematical Sciences
This work was in collaboration with Piet Kok (Universiteit Gent, Tata Steel) & Wil Spanjer (Tata Steel).