MTEX Changelog

MTEX 4.0.0 - 10/2014

MTEX 4 is a complete rewrite of the internal class system which was required to keep MTEX compatible with upcomming Matlab releases. Note that MTEX 3.5 will not work on Matlab versions later then 2014a. As a positive side effect the syntax has been made more consisent and powerfull. On the bad side MTEX 3.5. code will need some adaption to run on MTEX 4. There are two general principles to consider

Use dot indexing instead of get and set methods

The syntax

h = get(m,'h')
m = set(m,'h',h+1)

is obsolete. set and get methods are not longer supported by any MTEX class. Instead use dot indexing

h = m.h
m.h = h + 1

Note, that this syntax can be nested, i.e., one can write

ebsd('Forsterite').orientations.angle

to get the rotational angle of all Forsterite orientations, or,

cs.axes(1).x

to get the x coordinate of the first crystallographic coordinate axis - the a-axis. As an nice bonus you can now use TAB completion to cycle through all possible properties and methods of a class.

Use camelCaseCommands instead of under_score_commands

Formerly, MTEX used different naming conventions for functions. Starting with MTEX 4.0 all function names consisting of several words, have the first word spelled with lowercase latters and the consecutive words starting with a capital letter. Most notable changes are * plotPDF * plotIPDF * plotODF * calcError

Grain boundaries are now directly accessable

MTEX 4.0 introduces a new type of variables called grainBoundary which allows to represent arbitary grain boundaries and to to work with them as with grains. The following lines give some examples. Much more is possible.

% select boundary from specific grains
grains.boundary
% select boundary by phase transistion
gB = grains.boundary('Forstarite','Enstatite')
% select boundary by misorientation angle
gB(gB.misorientation.angle>100*degree)
% compute misorientation angle distribution for specific grain boundaries
plotAngleDistribution(gB)

Plotting EBSD, grain, grainBoundary data has different syntax

The syntax of the plot commands has made more consistent throughout MTEX. It is now

plot(obj,data)

where obj is the object to be plotted, i.e., EBSD data, grains, grain boundaries, spherical vectors, pole figures, etc., and the data are either pure numbers or RGB values describing the color. Examples are

% plot MAD values of EBSD data
plot(ebsd,ebsd.mad)
% colorize grains according to area
plot(grains,grains.area)
% colorize grain boundary according to misorientation angle
gB = grains.boundary('Forsterite','Enstatite')
plot(gB,gB.misorientation.angle)

Colorization according to phase or phase transition is the new default when calling plot without data argument, i.e., the following results in a phase plot

plot(ebsd)

In order to colorize ebsd data according to orientations one has first to define an orientationMapping by

oM = ipdfHSVOrientationMapping(ebsd('Forsterite'))

Then one can use the command oM.orientation2color to compute RGB values for the orientations

plot(ebsd('Forsterite'),oM.orientation2color(ebsd('Forsterite').orientations))

The orientation mapping can be visualized by

plot(oM)

EBSD data are alway spatialy indexed

Starting with MTEX 4.0 EBSD data alway have to have x and y coordinates. EBSD data without spatial coordinates are imported simply as orientations. As a consequence, all orientation related functionalities of EBSD data have been moved to orientations, i.e., you can not do anymore

plotpdf(ebsd('Fo'),Miller(1,0,0,CS))
calcODF(ebsd('Fo'))
volume((ebsd('Fo'))

But instead you have to explicitely state that you operate on the orientations, i.e.

plotpdf(ebsd('Fo').orientations,Miller(1,0,0,ebsd('Fo').CS))
calcODF(ebsd('Fo').orientations)
volume((ebsd('Fo').orientations)

This makes it more easy to apply the same functions to misorientations to grain mean orientations grains.meanOrientation, ebsd misorientation to mean mean |ebsd.mis2mean or boundary misorientations grains.boundary.misorientation

Different syntax for reconstructing grains from EBSD data

In MTEX 3.5 the command

grains = calcGrains(ebsd)

duplicates the ebsd data into the grain variable allowing to acces the EBSD data belonging to a specific grain by

get(grains(1),'EBSD')

In MTEX 4.0 the command calcGrains returns as an additional output the a list of grainIds that is associated to the EBSD data. When storing these grainIds directly inside the EBSD data, i.e., by

[grains,ebsd.grainId] calcGrains(ebsd)

one can access the EBSD data belonging to a specific grain by the command

ebsd(grains(1))

MTEX 4.0 distingueshes between crystal and specimen symmetry

In MTEX 4.0 two new variable types specimenSymmetry and crystalSymmetry have been introduced to clearly distinguesh between these two types of symmetry. Calling

cs = symmetry('m-3m')
ss = symmetry('triclinic')

is not allowed anymore! Please use instead

cs = crystalSymmetry('m-3m','mineral','phaseName')
ss = specimenSymmetry('triclinic')

Pole figure indexing is now analogously to EBSD data

You can now index pole figure data by conditions in the same manner as EBSD data. E.g. the condition

condition = pf.r.theta < 80 * degree

is a index to all pole figure data with polar angle smaller then 80 degree. To restrict the pole figure variable pf to the data write

pf_restrcited = pf(condition)

In the same manner we can also remove all negative intensities

condition = pf.intensities < 0
pf(condition) = []

In order to address individuell pole figures within a array of pole figures pf use the syntax

pf('111')

or

pf(Miller(1,1,1,cs))

The old syntax

pf(1)

for accessing the first pole figure will not work anymore as it now refers to the first pole figure measurement. The direct replacement for the above command is

pf({1})

MTEX 4.0 supports all 32 point groups

In MTEX 4.0 it is for the first time possible to calculate with reflections and inversions. As a consequence all 32 point groups are supported. This is particularly important when working with piezoellectric tensors and symmetries like 4mm. Moreover, MTEX distingueshes between the point groups 112, 121, 112 up to -3m1 and -31m.

Care should be taken, when using non Laue groups for pole figure or EBSD data.

Support for three digit notation for Miller indices of trigonal symmetries

MTEX 4.0 understands now uvw and UVTW notation for trigonal symmetries. The following two commands define the same crystallographic direction, namely the a1-axis

Miller(1,0,0,crystalSymmetry('-3m'),'uvw')
Miller(2,-1,-1,0,crystalSymmetry('-3m'),'UVTW')

Improved graphics

MTEX can now display colorbars next to pole figure, tensor or ODF plots and offers much more powerfull options to customize the plots with titles, legends, etc.

Functionality that has been (temporarily) removed

This can be seen as a todo list.

MTEX 3.5.0 - 12/2013

Misorientation colorcoding

plotBoundary(grains('Fo'),'property','misorientation','colorcoding','patala')

Fast multiscale clustering (FMC) method for grain reconstruction

  grains = calcGrains(ebsd,'FMC')

Misc changes

get(grains,'id')
poly = [ [x1,y1];[x2,y2];[xn,yn];[x1,y1] ]
grains = calcGrains(ebsd,'boundary',poly)
poly = selectPolygon

Bug fixes

MTEX 3.4.2 - 06/2013

bugfix release

MTEX 3.4.1 - 04/2013

bugfix release

MTEX 3.4.0 - 03/2013

New plotting engine

MTEX 3.4 features a completely rewritten plotting engine. New features includes

plotzOutOfPlane, plotzIntoPlane
ax = subplot(2,2,1)
plot(ax,xvector)
plotpdf(ebsd,Miller(1,0,0),'contourf')

Colormap handling

mtexColorMap red2blue

ODF

[modes, values] = calcModes(odf,n)

EBSD data

% convert spatial coordinates to Euler angle coordinate system
loadEBSD('filename','convertSpatial2EulerReferenceFrame')
% convert Euler angles to spatial coordinate system
loadEBSD('filename','convertEuler2SpatialReferenceFrame')
CS = symmetry('cubic','mineral','Mg','color','red')
inpolygon(ebsd,[xmin ymin xmax ymax])

Tensors

R = SchmidTensor(m,n)
[tauMax,mActive,nActive,tau,ind] = calcShearStress(stressTensor,m,n,'symmetrise')
% extract entry 1,1,1,1 in tensor notation
C{1,1,1,1}
% extract entry 1,1 in Voigt notation
C{1,1}
% extract the first tensor
C(1)

Import / Export

export(ori,'fname')
v = loadVector3d('fname','ColumnNames',{'x','y','z'})
v = loadVector3d('fname','ColumnNames',{'latitude','longitude'})

General

setpref('mtex','propertyName','propertyValue')

has been replaced by

setMTEXpref('propertyName','propertyValue')

MTEX 3.3.2 - 01/2013

bugfix release

MTEX 3.3.1 - 07/2012

bugfix release

MTEX 3.3.0 - 06/2012

Grains: change of internal representation

Reimplementation of the whole grain part:

get(grains,'EBSD')

EBSD

CS = {'not indexed',...
      symmetry('cubic','mineral','Fe'),...
      symmetry('cubic','mineral','Mg')};

By default, calcGrains does also use the 'not Indexed' phase.

Other

MTEX 3.2.3 - 03/2012

bugfix release

MTEX 3.2.1 - 11/2011

New Features

Bug Fixes

MTEX 3.2 - 05/2011

3d EBSD Analysis

This release for the first time supports 3d EBSD data. In particular, MTEX is now able to

Misorientation Analysis

New Syntax for EBSD and grain variables

EBSD and grain variables can now be indexed by phase, region or grain / ebsd variables. Let us assume we have a two phase ebsd variable containing 'Fe' and 'Mg' then can restrict our dataset to the Fe - phase only be writting

ebsd('Fe')

The same works with grains and also with more than one phase. Please have a look into the documentation for information how to index ebsd and grain variables.

Accordingly the following syntax is now depreciated.

calcODF(ebsd,'phase',2)

It should be replaced by

calcODF(ebsd('Fe'))

Other Enhangments

MTEX 3.1 - 03/2011

Tensor Arithmetics This release introduces tensor analysis into MTEX, this includes

Other Enhangments

MTEX 3.0 - 10/2010

Crystal Geometry

This release contains a completely redesigned crystal geometry engine which is thought to be much more intuitive and flexible. In particular, it introduces two new classes rotation and orientation which make it much more easier to work with crystal orientations. Resulting features are

Other Enhangments

MTEX 2.0 - 10/2009

Grain Analysis for EBSD Data

MTEX is now able to partition spatial EBSD data into grains. This allows for the computation of various grain characteristics, as well as the computation and visualization of the grain boundaries and neighborhood relationships. Main features are:

Visualization Improvements

General Improvements

Incompatible Changes to Previous Versions

MTEX 1.2 - 05/2009

Improved EBSD import

Improved EBSD plotting

General Improvements

Incompatible Changes to Previous Versions

MTEX 1.1 - 12/2008

Improved Import Wizzard

Improved Pole Figure Analysis

Improved EBSD Data Support

Improved Plotting

Bug Fixes

MTEX 1.0 - 06/2008

New Installer Including Binaries for Windows, Linux, and Max OSX

New ODF Class

New Interfaces

Improved Plotting

Incompatible Changes With Previous Releases

Improved Documentation

MTEX comes now with over 500 help pages explaining the mathematical concepts, the philisophy behing MTEX and the syntax and usage of all 300 functions available in MTEX. Furthermore, you find numerous examples and tutorials on ODF estimation, data import, calculation of texture characteristics, ODF and pole figure plotting, etc.

Bug Fixes

MTEX 0.4 - 04/2008

Speed Improvments

New Support of EBSD Data Analysis

New Functions

Incompatible Changes With Previous Releases

MTEX 0.3 - 10/2007

MTEX 0.2 - 07/2007

MTEX 0.1 - 03/2007