Skip to content

mtex-7.0.0

Choose a tag to compare

@ralfHielscher ralfHielscher released this 17 Aug 17:58
· 642 commits to develop since this release

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 .ctf or .ang runs x fastest, so ebsd(k) is in general no longer line k of the file. The original ids are kept in ebsd.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 @S2FunMLS and @SO3FunMLS approximate scattered data by moving least squares
  • optimalSample (formerly compactify) replaces random sampling with an almost perfectly equally distributed set of orientations or directions
  • calcCluster now uses CLASSIX by default — much faster than hierarchical clustering, and it needs no number of clusters
  • calcODFIterative inverts 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 with plottingConvention.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