Jump to: navigation, search



The microscale material model is a research code that have been developed outside and used at CAVS for modeling dislocation interactions and reactions in an elastic continuum. The code is used in a hierarchical multiscale framework of the plasticity to obtained information related to the hardening of the material (see for example multiscale framework‎). Details of the discrete dislocations model can be found in the methodology‎ paper. This particular site contains the research code that has been developed outside for performing and analyzing discrete dislocations simulation results. The research codes used at CAVS comes with a user's manual. We caution the user that there is some risk in using the research version of the codes. For any questions that are not addressed in the user's manual or the 'readme' files accompanying the code, please contact the code developers.

The discrete dislocation simulation code can be used for HCP, BCC and FCC materials.

Finally, to garner more information about the information bridges between length scales go to the MSU Education page.

For background information about Dislocation Dynamic Plasticity go to Dynamic Dislocation Plasticity



Source code and inputs can be downloaded from this link. A video tutorial can be found here.

Run MDDP from a Linux terminal using the single Frank-Read source (SFRS) input and/or the multiple Frank-Read sources (MFRS) input. Be sure to change the data file to reflect the properties of the material you wish to study. The inputs from the zip file are setup for aluminum. After running MDDP using the given input files you can post process to obtain stress-strain plots and the location/orientation of dislocations as follows:

Visualization of the dislocation structure

TecPlot is a general postprocessor which offers enhanced capabilities and can read output data from different software. The output files from MDDP are configured to be ready used with TecPlot. The information describing the dislocation structure is dumped into a chain of files starting with “tech” followed by a series number of the file (tech002, tech004, etc.). Each file has the dislocation structure data for 500 time steps. The first 500 steps are written to tech002, the next 500 steps are written to tech004, and so on. This is done in order to keep the files’ size reasonable. To visualize the dislocation structure, open TecPlot and follow these steps:

  • From File-->Load Data Files ‐‐ change Files of type: to TecPlot Data Loader and browse for the directory in which you ran the executable
  • In the File name: box type te* and hit enter
  • The folder should populate with files from tech002 to techIJK (where IJK is the final number of tech files generated)
  • Select all of the files you wish to load, and click Open
  • Under Plot change XY Line to 3D Cartesian
  • From the Plot drop menu, select Axis and from the Axis Details box, check the Show Axis box to show all axes; uncheck Preserve length when changing range, and change the Min: and Max: values for each axis to -6000 and 6000, respectively; click Close
  • Under Plot go to Vectorvariableschoose V1, V2, and V3 for U, V, and W respectively. Then go to VectorLength and make sure that the Relative Grid Units/Magnitudes set to 1.0 by going to and click Close
  • Click Zone Style... select all of the zones and uncheck Show Zone; Click on Zone 001 and check Show Zone
  • On the left hand side of the screen, check the box next to Vector. You should be able to see the initial dislocation lines and use the typical controls to rotate, zoom, etc. to help you visualize the structure
  • To visualize the structure at different time steps, under DataEdit Time Strands... Select Constant Delta and ensure that Delta: is set to 1; Click Apply (For a large amount of zones this will take somewhere between 10 minutes and 1 hour to animate)
  • An area for animation playback should appear with play, step forward, and go to end blue- colored buttons; you should now be able to play the animation\
  • You can modify the speed of playback by clicking Details... next to Solution time:

XY plot of time histories and stress-strain curves

The main file that contains this information is DDtimeResults.out, which plots the history of multiple variables including the dislocation density, stress, strain, etc. Each plot is referred to as a map in TecPlot. Open TecPlot and follow these steps:

  • From File-->Load Data Files ‐‐ change Files of type: to TecPlot Data Loader and browse for the directory in which you ran the executable
  • In the File name: box type DD* and hit enter
  • Choose DDtimeResults.out and click Open
  • The initial XY plot will be a disDensity vs. timenow; you can change this by clicking Mapping Style...
  • In the Mapping Style window you will have several map numbers with corresponding names and the variables they are plotted against
  • To create the stress-strain curve for your DDtimeResults.out uncheck Show Map for disDens... and check Stress; Right-click on 1:timenow to change the x-axis variable to 4:Strain
  • From the Plot drop menu, select Axis and from the Axis Details box, click Reset Range and select Reset to Nice Values; select Y1 at the top and repeat the previous procedure; click Close
  • You can now repeat the entire process to produce other curves such as dislocation density vs. stress or strain


MTEX is a free Matlab toolbox for analyzing and modeling crystallographic textures by means of EBSD or pole figure data [1].

Getting Started

Installation Guide

How to install MTEX on you computer.


  • The MTEX toolbox is available for Windows, Linux, and MAC-OSX at [3]


  • Since MTEX is a MATLAB toolbox MATLAB [2] has to be installed in order to use MTEX. It works fine with the student version and does not require any additional toolboxes, addons or packages. Check the table below to see whether MTEX will run on your Matlab version.


In order to install, MTEX proceeds as follows

1. extract MTEX to an arbitrary folder

2. start MATLAB

3. type into the Matlab command window

    • addpath your_MTEX_path
    • startup_mtex
      • addpath your_MTEX_path
      • startup_mtex

Configuration and Troubleshooting [4]

Compiling MTEX Compiling MTEX is only necessary if the provided binaries do not run on your system or if you want to optimize them for your specific system. Compiling instructions can be found [5].

Users Guide

Crystal Geometry

Introduces key concepts about the MTEX representation of specimen directions, crystal directions, crystal symmetries, rotations and orientations.

Specimen Directions

How to represent directions with respect to the sample or specimen reference system [6].


Rotations are the basic concept to understand crystal orientations and crystal symmetries. Rotations are represented in MTEX by the class rotation [7] which is inherited from the class quaternion [8] and allow to work with rotations as with matrixes in MTEX.

Crystal Symmetries

This section covers the unit cell of a crystal, its space, point and Laue groups as well as alignments of the crystal coordinate system [9].

Crystal Directions

Crystal directions are directions relative to a crystal reference frame and are usually defined in terms of Miller indices. This sections explains how to calculate with crystal directions in MTEX [10].

Crystal Orientations

Explains how to define crystal orientations, how to switch between different convention and how to compute crystallographic equivalent orientations [11].


Misorientation describes the relative orientation of two grains with respect to each other. Important concepts are twinnings and CSL (coincidence site lattice) [12].


This sections describes the class fibre and gives an overview how to work with fibres in MTEX [13].

Antipodal Symmetry

MTEX allows to identify antipodal directions to model axes and to identify misorientations with opposite rotational angle. The later is required when working with misorientations between grains of the same phase and the order of the grains is arbitrary [14].

Fundamental Regions

Thanks to crystal symmetry the orientation space can be reduced to the so called fundamental or asymmetric region. Those regions play an important role for the computation of axis and angle distributions of misorientations [15].

Pole Figures

Explains how to import pole figure data, how to correct them, and how to recover an ODF.

First Steps

Get in touch with PoleFigure Data in MTEX [16].

Importing Pole Figure Data

How to import Pole Figure Data [17].

Modify Pole Figure Data

Explains how to manipulate pole figure data in MTEX [18].

ODF Estimation from Pole Figure Data

This page describes how to use MTEX to estimate an ODF from pole figure data [19].

Ambiguity of the Pole Figure to ODF Reconstruction Problem

demonstrates different sources of ambiguity when reconstructing an ODF from pole figure diffraction data [20].

Ghost Effect Analysis

Explains the ghost effect to ODF reconstruction and the MTEX option ghostcorrection [21].

Simulating Pole Figure data

Simulate arbitrary pole figure data [22].

Plotting of Pole Figures

Describes various possibilities to visualize pole figure data [23].


ODF stands for orientation distribution functions. This section explains how to import and export ODFs, how to define model ODFs and how to analyze ODFs, e.g., with respect to modalorientations, textureindex, volumeportions. Pole figure simulation and single orientation simulation is explained as well.

The SantaFe example

Simulate a set of pole figures for the SantaFe standard ODF, estimate an ODF and compare it to the inital SantaFe ODF [24].

Model ODFs

Describes how to define model ODFs in MTEX, i.e., uniform ODFs, unimodal ODFs, fibre ODFs, Bingham ODFs and ODFs defined by its Fourier coefficients [25].

Importing and Exporting ODF Data

Explains how to read and write ODFs to a data file [26].

Simulating Pole Figure data

Simulate arbitrary pole figure data [27].

Simulating EBSD data

How to simulate an arbitrary number of individual orientations data from any ODF [28].

Characterizing ODFs

Explains how to analyze ODFs, i.e. how to compute modal orientations, texture index, volume portions, Fourier coefficients and pole figures [29].

Visualizing ODFs

Explains all possibilities to visualize ODfs, i.e. pole figure plots, inverse pole figure plots, ODF sections, fibre sections [30].

Detecting sample symmetry

Explains how to detect orthotropic symmetry in an ODF [31].

Misorientation Distribution Function

Explains how to compute and analyze misorientation distribution functions [32].


Explains how to work with material tensors in MTEX, i.e. how to compute mean material tensors according to an ODF or to EBSD data, how to compute rotate and visualize tensors and how to calculate with elasticity tensors.

Tensor Arithmetics

how to calculate with tensors in MTEX MTEX offers some basic functionality to calculate with tensors as they occur in material sciense. It allows defining tensors of arbitrary rank, e.g., stress, strain, elasticity or piezoelectric tensors, to visualize them and to perform various transformations [33].

Average Material Tensors

how to calculate average material tensors from ODF and EBSD data [34] MTEX offers several ways to compute average material tensors from ODFs or EBSD data [35].

The Elasticity Tensor

how to calculate and plot the elasticity properties MTEX offers a very simple way to compute elasticity properties of materials. This includes Young's modulus, linear compressibility, Christoffel tensor, and elastic wave velocities [36].

Schmid Factor Analysis

This script describes how to analyze Schmid factors [37].

The Piezoelectricity Tensor

how to work with piezoelectricity This m-file mainly demonstrates how to illustrate the directional magnitude of a tensor with mtex [38].

Seismic velocities and anisotropy

Calculating and plotting elastic velocities from elastic stiffness Cijkl tensor and density (by David Mainprice) [39].

Slip Systems

How to analyze slip transmission at grain boundaries [40].

Slip Transmission

How to analyze slip transmission at grain boundaries [41].

Slip Transmition

How to analyse slip transmission at grain boundaries [42].

Taylor Model



Data Import of Electron Backscatter Diffraction Data, Correct Data, Estimate Orientation Density Functions out of EBSD Data, Model Grains and Misorientation Density Functions.

Short EBSD Analysis Tutorial

How to detect grains in EBSD data and estimate an ODF [44].

Importing EBSD Data

How to import EBSD Data [45].

Modify EBSD Data

How to correct EBSD data for measurement errors [46].

Smoothing of EBSD Data

Discusses how to smooth and to fill missing values in EBSD data [47].

Analyze EBSD Data

Here we discuss tools for the analysis of EBSD data which are independent of its spatial coordinates. For spatial analysis, we refer to this page [48].

Plotting Individual Orientations

Basics of the plot types for individual orientations data This section gives an overview over the possibilities that MTEX offers to visualize orientation data [49].

ODF Estimation from EBSD data

How to estimate an ODF from single orientation measurements [50].

Bingham distribution and EBSD data

testing rotational symmetry of individual orientations [51].

Plotting spatially indexed EBSD data

How to visualize EBSD data This section gives you an overview of the functionality MTEX offers to visualize spatial orientation data [52].

Visualizing EBSD data with sharp textures

How visualize texture gradients within grains [53].

Simulating EBSD data

How to simulate an arbitrary number of individual orientations data from any ODF [54].


Explains how to reconstruct grains form EBSD data, visualize Grains and EBSD, analyzing misorientations.

First Steps and Function Overview

Get in touch with grains [55].

Grain Reconstruction

Grain Reconstruction from EBSD data [56].

Working with Grains

How to index grains and access shape properties [57].

Plotting grains

Overview about colorizing grains and (special) grain boundaries [58].

Analyzing Individual Grains

Explanation how to extract and work with single grains from EBSD data [59].

Misorientation Analysis

How to analyze misorientations [60].

Grain Boundaries

MTEX provides several functionalities to analyze grain boundaries with respect to twinning, CSL boundaries, etc.

Grain Boundaries

Overview about colorizing grain boundaries [61].

Misorientations at grain boundaries

Analyse misorientations along grain boundaries [62].

Twinning Analysis

Explains how to detect and quantify twin boundaries [63].

CSL Boundaries

Explains how to analyze CSL grain boundaries [64].

Triple points

how to detect triple points [65].


Explains different plot types and how to customize them, inlcuding annotations, spherical projections, color coding.

Plotting Overview

Overview over the plotting facilities of MTEX, including annotations, plot types, color coding, combined plots and export of plots [66].


Explains how to add annotations to plots. This includes colorbars, legends, specimen directions and crystal directions [67].

Combined Plots

Explains how to combine several plots, e.g. plotting on the top of an inverse pole figure some important crystal directions [68].

Plot Types

Explains the different plot types, i.e., scatter plots, contour plots, and line plots [69].

Spherical Projections

Explains the spherical projections MTEX offers for plotting crystal and specimen directions, pole figures and ODF [70].

Pole Figure Color Coding

Explains how to control color coding across multiple plots. A central issue when interpreting plots is to have a consistent color coding among all plots. In MTEX this can be achieved in two ways. If the minimum and maximum values are known then one can specify the color range directly using the options colorrange or contourf, or the command setcolorrange is used which allows setting the color range afterward [71].

EBSD Color Coding

Explains EBSD color coding [72].

Material Models


Multiscale Dislocation Dynamics Plasticity (MDDP) is a discrete dislocation dynamics (DD) model for crystalline materials coupled by finite element (FE) analysis developed by Hussein M. Zbib and colleagues [3].

MDDP simulations can run for calibration of data upscaled from atomistic scale calculations. It is run from an executable and requires two input files. For example, for modeling crystal plasticity in aluminum, the code MDDP can be used to calibrate values of dislocation mobility determined from molecular dynamics simulations. Stress-strain curve data can then be used to upscale to the mesoscale crystal plasticity length scale [4] [5].


For additional information regarding MDDP, please view the MDDP Manual.

This section includes links to versions of the discrete dislocation dynamics codes. microMegas is commonly used at CAVS to simulate the behavior of dislocations for metals at the microscale.

  • microMegas (download the original microMegas code from the French Aerospace Lab here)
    • mM v.1.0: serial version with Intel Compiler Optimizations (download mM v. 1.0 from the Codes Repository at CAVS here, using "Download GNU tarball"; compile it as 'mm')
    • mM v.1.0: parallel version with Intel Compiler Optimizations and MPI (download mM v. 1.0 from the Codes Repository at CAVS here, using "Download GNU tarball"; compile it as 'mmp')
    • mMpar v.1.0: parallel version of mM v.1.0 using openMP threads (download mMpar v. 1.0 from the Codes Repository at CAVS here, using "Download GNU tarball"; compile it as 'mm_omp')

See Tutorials


Parallel Dislocation Simulator (ParaDis) was initially developed by Vasily Bulatov who led a team of physicists and computer scientist at the Lawrence Livermore National laboratory in 2001.

It was designed to perform large scale DD simulations to study the essential mechanisms of plasticity in BCC and FCC metals. ParaDis is optimized to perform on massively parallel supercomputers which allows for researchers to to study tens of thousands of simulated dislocations in a defined area.

The research of materials through ParaDis has led to a discovery in a new dislocation microstructure that was previously unknown. This new microstructure was revealed after simulations displayed collisions among three or more dislocations resulted in the formation of multijunctions and multinodes which are further explained in reference. The discovery multijunctions through ParaDis led to a better understanding of strain hardening. For more information on this work and ParaDis as a whole visit this science and technology review [73].

Downloading ParaDis's source code requires signing up on the Stanford site which can be reached through this link [74]. The Stanford site also provides documentation on the instillation and set up of ParaDis.


Parametric Dislocation Dynamics (PDD) was initially developed by Ghoniem and Sun in 1999 and was improved by Ghoniem in 2000 and various other researchers since.

PDD is not available to the public however more information on PDD can be found through Zhiqiang Wang's dissertation. [75]


PARAnoid NOdal IBM Dislocation (PARANOID) is a code designed to simulate dislocations in thin films and semi-conducting and metallic materials. The code was initially developed by Klaus Schwarz and his team at IBM in 1999. I In the model presented by PARANOID, dislocations are represented as segments that have mixed characters. Basic equations of motion are used for dislocations. One of the distinctive features of PARANOID is the use of the modified Brown splitting procedure with the Peach Koehler formalism.

PARANOID is not currently open to the public.

Microscale oxidation simulation PuMA

Micro-tomography has become a very useful tool for material science applications, allowing for non-destructive characterization of a material micro-structure at a sub-micron scale. The Porous Microsctucture Analysis (PuMA) software has been developed in order to compute effective material properties and perform material response simulations on digitized microstructures of porous media. PuMA is able to import digital three-dimensional structures obtained from X-ray microtomography or to generate artificial microstructures, and to visualize the 3D microstructure. PuMA includes modules to compute porosity, volume fractions, surface area, tortuosity factor, effective thermal conductivity, effective electrical conductivity, and to perform representative elementary volume analysis. The software also includes a time-dependent, particle-based model for the oxidation of fibrous materials. Material properties and response calculated within the PuMA model can be used to inform macro-scale material response simulations and guide material development.

Here is a tutorial for Microscale oxidation using PuMA, click here.

Microscale Research






Corrosion Video




  • Multiscale Modeling of Chromatin and Nucleosomes Video [[77]]



  1. [1]
  2. [2]
  3. Zbib, H.M., Shehadeh, M., Khan, S.M.A., and Karami, G. "Multiscale Dislocation Dynamics Plasticity" School Of Mechanical and Materials Engineering, Washington State University Multiscale Dislocation Dynamics Plasticity
  4. Horstemeyer, Mark F. Integrated Computational Materials Engineering (ICME) for Metals: Using Multiscale Modeling to Invigorate Engineering Design with Science. John Wiley & Sons, Inc., 2012
  5. S. Groh, E. B. Marin, M. F. Horstemeyer, and H. M. Zbib. Multiscale modeling of the plasticity in an aluminum single crystal. Int. J. of Plasticity, 25, pp. 1456-1473, 2009

Please remember to cite the following references when publishing results obtained with microMegas:

  • F. M. Ciorba, S. Groh and M. F. Horstemeyer. Parallelizing discrete dislocation dynamics simulations on multi-core systems. 10th Int. Conf. on Computational Science, Procedia Computer Science, 1:1, pp. 2129-2137, 2010.
  • S. Groh, E. B. Marin, M. F. Horstemeyer, and H. M. Zbib. Multiscale modeling of the plasticity in an aluminum single crystal. Int. J. of Plasticity, 25, pp. 1456-1473, 2009.
  • S. Groh and H. M. Zbib. Advances in Discrete Dislocations Dynamics and Multiscale Modeling, J. Eng. Mater. Technol. vol. 131:4, 041209 (10 pages), 2009.
  • Multiscale Modeling of Heterogenous Materials: From microstructure to macro-scale properties. Chapter 2: Discrete Dislocation Dynamics: Principles and Recent Applications (by Marc Fivel). Edited by Oana Cazacu. Published by Wiley. ISBN: 9781848210479, 2008.
  • B. Devincre, V. Pontikis, Y. Brechet, G.R. Canova, M. Condat and L.P. Kubin. Three-dimensional Simulations of Plastic Flow in Crystals. Plenum Press: New York, M. Marechal, B.L. Holian (eds.), 1992, p. 413
  • L.P. Kubin and G. R. Canova. The modelling of dislocation patterns. Scripta Metall., 27, pp. 957-962, 1992

back to the Material Models home ‏‎


This category has the following 4 subcategories, out of 4 total.

Pages in category "Microscale"

The following 52 pages are in this category, out of 52 total.






F cont.




M cont.







Personal tools

Material Models