Mesoscale Microstructure Simulation Project (MMSP)


Overview

The goal of the Mesoscale Microstructure Simulation Project (MMSP) is to provide a simple, consistent, and extensible programming interface for all grid and mesh based microstructure evolution methods. You can find the details about this kind of programming as well as examples of phd dissertation at https://dissertationmasters.com/. 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 code for two-dimensional simulations is nearly identical to that for three-dimensional 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 (MMSP is written entirely in ISO compliant c++). For more details, see the documentation.

MMSP is nothing more than a collection of c++ header files that declare a number of grid objects (classes) and define how most of their methods (member functions) are implemented. Some things MMSP provides include:

A simple, extensible programming interface
Computational grids of arbitrary dimension
Parallel implementations using MPI
Automatic, optimal parallel mesh topologies
Utility programs for grid visualization
Monte Carlo methods
Cellular automata methods
Phase field methods (conventional)
Phase field methods (sparsePF)
General finite difference PDE solvers
22+ example problems that run in 2D and 3D, single and parallel


Typical MMSP applications include:

Grain growth and coarsening
Precipitation reactions
Crystal growth and solidification
Lattice based kinetic Monte Carlo
Statistical mechanics: Ising model, classical Heisenberg model, etc.
Spinodal decomposition and other second order transformations


MMSP requires:

Minimal programming experience
An ISO compliant c++ compiler (e.g. GCC 2.95 or later)
MPI libraries are required if compiling parallel programs (e.g. Open MPI )

Minor revisions to version 3.0 will contain bug fixes, additional documentation and example code. Planned upgrades for major revisions include:

Mesh adaptivity
Multigrid methods for elliptic problems (electrostatics, elasticity)



Download

Get the MMSP source code archive here, or browse the code online here.

Documentation

The MMSP manual is a work in progress. It is currently the only source for detailed documentation about MMSP.

Contact us

The administrator for the MMSP source code is Jason Gruber. Please do not hesitate to send questions or comments.

Terms of use

MMSP is made freely available for anyone performing non-profit scientific research; those interested in using MMSP for other purposes should contact us first. For complete details, please refer to the MMSP licence. If you use MMSP in your research, please tell others about it, send us any new code you'd like to see incorporated into the package, and above all, give us feedback!

Carnegie Mellon Computational Materials Science on MatForge
The main wiki that links to this and other related projects.

Carnegie Mellon MRSEC
The Materials Research Science and Engineering Center (MRSEC) is an interdisciplinary research and educational enterprise within Carnegie Mellon University dedicated to the understanding, control and optimization of grain boundary dominated materials properties. The design goals of MMSP are motivated largely by present and future needs of researchers affiliated with the MRSEC.

Carnegie Mellon University Department of Materials Science and Engineering
See the larger scope of materials research being undertaken at Carnegie Mellon.

Attachments