Repository navigation
mtex-7.0.0
MTEX 7.0 is a large release. The highlights are below; the complete list, including all technical and breaking changes, is in the changelog.
Grain Reconstruction
Grain reconstruction has been entirely rewritten to give better results, be faster, and be easier to control. It is now tuned by three parameters:
[grains, ebsd] = calcGrains(ebsd,'angle',10*degree,'minPixel',5,'alpha',3.1)'angle'— the misorientation threshold'minPixel'— the minimum number of pixels a grain must contain'alpha'— how much non/misindexed regions are reassigned to surrounding grains
Boundary smoothing is now done with smoothBoundary(grains,5), which offers several backends. The Fast Multiscale Clustering method for highly deformed materials has been greatly improved, and pseudo symmetries can be cleaned up with cleanUpPseudoSym(ebsd,grains,mori,'threshold',1.5).
Much Better EBSD Import
A fully functional import wizard lets you scroll through your data files and adjust reference system alignment by inspecting IPF maps and pole figures. A lot of effort went into getting the conventions right for all the formats on the market — Bruker, EDAX, Oxford, EMSphInx and ThermoFisher. Multiple data sets per file are now supported.
Imported Data Comes on Its Grid
EBSD.load now returns an @EBSDsquare or @EBSDhex whenever the measurements sit on one lattice, so the map is stored as a matrix and ebsd(i,j) addresses a scan position — no manual gridify needed.
Note: putting data on a grid reorders it. The matrix layout fixes the first dimension to y, while a
.ctfor.angruns x fastest, soebsd(k)is in general no longer line k of the file. The original ids are kept inebsd.oldId.
Much Faster Plotting of EBSD Maps
Plotting EBSD and grain maps is now orders of magnitude faster, with multiple backends for hexagonal or strongly deformed pixel layouts. The micronbar now includes a small pictogram of the reference system.
Approximation, Sampling and Clustering
- new classes
@S2FunMLSand@SO3FunMLSapproximate scattered data by moving least squares optimalSample(formerlycompactify) replaces random sampling with an almost perfectly equally distributed set of orientations or directionscalcClusternow uses CLASSIX by default — much faster than hierarchical clustering, and it needs no number of clusterscalcODFIterativeinverts pole figure data by iteratively adjusting the kernel width, which is much more robust for irregularly sampled data
Rotations, Tangent Spaces and Vector Valued Functions
Two new documentation pages cover the underlying geometry: Rotation Representations and The Tangent Space. An @SO3TangentVector now stores the rotation it is attached to, so switching representations needs no orientation passed along. What used to be a multivariate function is now a vector valued function.
Changes Worth Knowing About
- The default plotting convention changed to
y↓→x, the current standard among vendors. Restore the old behaviour withplottingConvention.default('y↑→x'). - Imported data no longer changes how the session plots — a plotting convention belongs to a reference frame.
- Rotating a function now consistently drops a symmetry it destroys, and orientation products follow the same rule.
- Grain boundary segments are stored in walk order.
See the Technical Changes section of the changelog for syntax changes, renamed and removed functions.
Installation
Download mtex-7.0.0.zip, extract it, and run startup_mtex in MATLAB. The compiled mex binaries for Linux, Windows and both macOS architectures are attached to this release and are downloaded automatically on first start.
Full Changelog: mtex-7.0.beta.1...mtex-7.0.0