Carnegie Mellon Computational Materials Science


This page hosts a collection of projects maintained by present and former members of the computational materials science group at Carnegie Mellon University. Current and future projects focus on digital microstructure generation, evolution, and analysis, as well as various subroutines and scripts for crystallographic texture analysis and data visualization.


October 24, 2010: Added new content to MMSP documentation: section on solving the Allen-Cahn equation with MMSP.

July 29, 2010: New revised MMSP source code (version 3.2.2). Additions to the documentation, as well as updated conversion programs (MC2PF, PF2sPF, etc.).

May 9, 2010: New revised MMSP source code (version 3.2.0). Added vector-based and node number-based subscripting operators, which simplify writing truly dimension-independent code, see e.g. the MMSP code for the Allen-Cahn model. New, corrected example code for anisotropic phase field and sparsePF methods.

April 3, 2010: Added new chapter, "Getting started with MMSP," to MMSP documentation. Minor bug fixes in example code.


Mesoscale Microstructure Simulation Project (MMSP)
The goal of MMSP is to provide a simple, consistent, and extensible programming interface for all grid–based microstructure evolution methods. Simple means that the package has a very small learning curve, and for most routine simulations, only a minimal amount of code must be written. By consistent we mean, for example, that 2D simulation code is nearly identical to that for 3D simulations, single processor programs are easily parallelized, and fundamentally different methods like Monte Carlo or phase field have the same "look and feel." Finally, extensible means that it’s straightforward to add new grid types or physical behaviors to the package. Other considerations include efficiency and portability.

Language: C++

Download Archive:

View Source:

Project Administrator: Jason Gruber

Microstructure Builder
Microstructure Builder or MBuilder is a strategy to construct simulated 3D polycrystalline materials. The input is typically grain size and shape data as obtained from orthogonal images (optical or SEM) or 3D datasets. The output is a 3D voxel structure that matches the size and shape statistics provided at input.

The voxel structures can be used directly as input to Monte Carlo simulations or can be converted to mesh structures for use in FE structural analysis.

Project Administrators: Joseph Tucker (CMU), Anthony Rollett (CMU)

Parallel Grain Growth 3D (PGG-3D)
PGG-3D is a synchronous parallel grain growth code that uses the classical Potts model to simulate material microstructure. It was originally designed for nCUBE and Intel machines, but has been tested on various supercomputer and Beowulf architectures. The novelty of PGG-3D lies in its checkerboard and sublattice decomposition technique. The source has been modified to incorporate anisotropic grain boundary properties which are a function of the misorientation angle between two dissimilar grains. The default functions adhere to the Read-Shockley dislocation model. In addition, grain growth stagnation (Zener pinning) can be studied using this software. Last, a toolkit has been included for the standard post-processing data analysis and visualization.

Language: Fortran 90

Download Tarball:

View Source:

Project Administrator: Christopher Roberts

Texture subroutines
Subroutines in C++ for computations involving crystallographic texture. Included are classes and functions for operations with quaternions, rotation matrices, Euler angles, and conversions between each; proper symmetry operators for all crystal classes in quaterion form; functions for calculating disorientation angles and random disorientation angle distributions.

Language: C++

View Source:

Project Administrator: Jason Gruber

Carnegie Mellon University Department of Materials Science and Engineering

Carnegie Mellon MRSEC