diff --git a/images/MaParentGrainReconstruction_15.png b/images/MaParentGrainReconstruction_15.png new file mode 100644 index 000000000..268229850 Binary files /dev/null and b/images/MaParentGrainReconstruction_15.png differ diff --git a/images/SelectingGrains_16.png b/images/SelectingGrains_16.png new file mode 100644 index 000000000..8209a893d Binary files /dev/null and b/images/SelectingGrains_16.png differ diff --git a/index.md b/index.md index 515208364..4f4e6597e 100644 --- a/index.md +++ b/index.md @@ -13,7 +13,7 @@ scientists, geologists and mathematicians. ### News * MTEX Online Workshop 2021: ・ [Announcement](https://github.com/mtex-toolbox/mtex/discussions/519#discussioncomment-139964) ・ [Homepage](http://www-user.tu-chemnitz.de/~rahi/mtexWorkshop21) ・ -* MTEX 5.5.1 released: ・ [Download](https://github.com/mtex-toolbox/mtex/releases/download/mtex-5.5.1/mtex-5.5.1.zip) ・ [Release Notes](changelog.html) ・ [Installation](download) ・ +* MTEX 5.5.2 released: ・ [Download](https://github.com/mtex-toolbox/mtex/releases/download/mtex-5.5.2/mtex-5.5.2.zip) ・ [Release Notes](changelog.html) ・ [Installation](download) ・ * MTEX GUI 2.4 by J. Hiscocks released: ・ [Download](https://www.researchgate.net/profile/Jessica_Hiscocks/publication/341722714_MTEX_GUI_3pt4-_An_updated_graphical_interface_for_MTEX/data/5ed1b00e299bf1c67d274ede/MTEX-GUI-3pt4.zip) ・ [Announcment](https://www.researchgate.net/publication/341722714_MTEX_GUI_3pt4-_An_updated_graphical_interface_for_MTEX) ・ * New paper: [Gazing at crystal balls - electron backscatter diffraction indexing and cross correlation on the sphere](https://www-user.tu-chemnitz.de/~rahi/paper/gazingAtCrystalBalls.pdf) * New paper: [Denoising of Crystal Orientation Maps](https://www-user.tu-chemnitz.de/~rahi/paper/denoising.pdf) diff --git a/pages/companies/Infineon.png b/pages/companies/Infineon.png new file mode 100644 index 000000000..9704b495a Binary files /dev/null and b/pages/companies/Infineon.png differ diff --git a/pages/companies/dillinger.png b/pages/companies/dillinger.png new file mode 100644 index 000000000..35643730b Binary files /dev/null and b/pages/companies/dillinger.png differ diff --git a/pages/companies/mtu.png b/pages/companies/mtu.png new file mode 100644 index 000000000..16ac47c79 Binary files /dev/null and b/pages/companies/mtu.png differ diff --git a/pages/companies/pic/Infineon.png b/pages/companies/pic/Infineon.png new file mode 100644 index 000000000..a51bf83b2 Binary files /dev/null and b/pages/companies/pic/Infineon.png differ diff --git a/pages/companies/pic/dillinger.png b/pages/companies/pic/dillinger.png new file mode 100644 index 000000000..831a928a7 Binary files /dev/null and b/pages/companies/pic/dillinger.png differ diff --git a/pages/companies/pic/mtu.png b/pages/companies/pic/mtu.png new file mode 100644 index 000000000..544393566 Binary files /dev/null and b/pages/companies/pic/mtu.png differ diff --git a/pages/companies/pic/salzgitter.png b/pages/companies/pic/salzgitter.png new file mode 100644 index 000000000..3ff805a30 Binary files /dev/null and b/pages/companies/pic/salzgitter.png differ diff --git a/pages/companies/pic/vw.png b/pages/companies/pic/vw.png new file mode 100644 index 000000000..8ecae23f4 Binary files /dev/null and b/pages/companies/pic/vw.png differ diff --git a/pages/companies/salzgitter.png b/pages/companies/salzgitter.png new file mode 100644 index 000000000..df606bfed Binary files /dev/null and b/pages/companies/salzgitter.png differ diff --git a/pages/companies/vw.png b/pages/companies/vw.png new file mode 100644 index 000000000..14a0f4470 Binary files /dev/null and b/pages/companies/vw.png differ diff --git a/pages/documentation_matlab/ClusterDemo.html b/pages/documentation_matlab/ClusterDemo.html new file mode 100644 index 000000000..d8878cd4e --- /dev/null +++ b/pages/documentation_matlab/ClusterDemo.html @@ -0,0 +1,138 @@ +--- +title: Cluster demo +last_updated: 11-Dec-2020 +sidebar: documentation_sidebar +permalink: ClusterDemo.html +folder: documentation +toc: false +--- +
+ +Miller indices are used to describe directions with respect to the crystal reference system.
Since lattice directions are always subject to a certain crystal reference frame, the starting point for any crystal direction is the definition of a variable of type crystalSymmetry.
{% highlight matlab %} cs = crystalSymmetry('triclinic',[5.29,9.18,9.42],[90.4,98.9,90.1]*degree,... diff --git a/pages/documentation_matlab/EBSDReferenceFrame.html b/pages/documentation_matlab/EBSDReferenceFrame.html index 49bd03fa4..8e6e71497 100644 --- a/pages/documentation_matlab/EBSDReferenceFrame.html +++ b/pages/documentation_matlab/EBSDReferenceFrame.html @@ -1,6 +1,6 @@ --- title: Reference Frame Alignment -last_updated: 08-Dec-2020 +last_updated: 11-Dec-2020 sidebar: documentation_sidebar permalink: EBSDReferenceFrame.html folder: documentation @@ -11,7 +11,7 @@The most important difference between MTEX and many other EBSD software is that in MTEX the Euler angle reference is always the map reference frame. This mean the \(x\) and \(z\) axes of the map are exactly the rotation axes of the Euler angles.
In case the map coordinates and the Euler angles in your data are with respect to different reference frames it is highly recommendet to correct for this while importing the data into MTEX. This section explains in detail how to do this.
Many peoply are concerned when the images produced by MTEX are not aligned exactly as they are in their commercial software. It is indeed very important to understand exactly the alignment of you data. However, the important point is not whether a map is upside down on you screen or not. The important point is how your map alignes with the specimen, as we want to use the map to describe properties of the specimen.
There are basicaly two components in an EBSD data set that refers to the specimen reference frame: the spatial coordinates \(x\), \(y\) and the Euler angles \(\phi_1\), \(\Phi\), \(\phi_2\). To explain the difference have a look at the EDAX export dialog
Here we have the axes \(x\) and \(y\) which describe how the map coordinates needs to be interpreted and the axes \(A_1\), \(A_2\), \(A_3\) which describe how the Euler angles, and in consequence, the pole figures needs to be interpreted. We see that in non of these settings the map reference system coincides with the Euler angle reference frame.
This situation is not specific to EDAX but occurs as well with EBSD data from Oxford or Bruker, all of them using different reference system alignments. For that reason MTEX stronly recommends to transform the data such that both map coordinates and Euler angles refer to the same coordinate system.
Doing this we have two choices:
'convertEuler2SpatialReferenceFrame'
. This will keep the map coordinates while changing the Euler angles'convertSpatial2EulerReferenceFrame'
. This will keep the Euler angles while changing the map coordinates.In the case of EDAX data imported from an *.ang
file we still need to specify the export option used by the EDAX software. This is done by the options 'setting 1'
, 'setting 2'
, 'setting 3'
or 'setting 4'
.
Since setting 2 is default for most EDAX exports a typical command for importing data from an ang file would look like this
diff --git a/pages/documentation_matlab/EBSDSelect.html b/pages/documentation_matlab/EBSDSelect.html index 306ef65d2..97c01bc09 100644 --- a/pages/documentation_matlab/EBSDSelect.html +++ b/pages/documentation_matlab/EBSDSelect.html @@ -1,6 +1,6 @@ --- title: Select EBSD data -last_updated: 20-Nov-2020 +last_updated: 15-Dec-2020 sidebar: documentation_sidebar permalink: EBSDSelect.html folder: documentation @@ -11,8 +11,8 @@In this section we discuss how to select specific EBSD data by certain properties. Let us first import some example EBSD data. and plot the raw data
+ -->In this section we discuss how to select specific EBSD data by certain properties. Let us first import some example EBSD data using the command mtexdata
.
EBSD data is usually acquired on a regular grid. Hence, even over a finite number of grid points, all possible grain boundary directions can not be uniquely represented. One way of overcoming this problem - and also allowing to compute grid-independent curvatures and grain boundary directions - is the interpolation of grain boundary coordinates using grains.smooth
.
Proper smoothing has an influence on measures such as total grain boundary length, grain boundary curvature, triple point angles or grain boundary directions among others.
While we used grains.smooth
before, here we will illustrate the different options.
This script demonstrates the tools MTEX offers to reconstruct a parent austenite phase from a measured martensite phase. Most of the ideas are from Crystallography, Morphology, and Martensite Transformation of Prior Austenite in Intercritically Annealed High-Aluminum Steel by Tuomo Nyyssönen. We shall use the following sample data set.
{% highlight matlab %} % load the data @@ -39,8 +39,6 @@ {% endhighlight %} {% highlight plaintext %} -saving data to /home/hielscher/mtex/master/data/martensite.mat - ebsd = EBSD Phase Orientations Mineral Color Symmetry Crystal reference frame @@ -67,16 +65,18 @@ {% endhighlight %} {% highlight plaintext %} --> Convergence reached after 17 iterations +-> Refinement stopped at maximum number of iterations: 100 without convergence {% endhighlight %} -Beside the optimized parent to child orientation relationship the command calcParent2Child
returns as a second output argument the misfit between all grain to grain misorientations and the theoretical child to child misorientations. In fact, the algorithm assumes that the majority of all boundary misorientations are child to child misorientations and finds the parent to child orientations relationship by minimizing this misfit. The following histogram displays the distribution of the misfit over all grain to grain misorientations.
Beside the optimized parent to child orientation relationship the command calcParent2Child
returns as a second output argument the misfit between all grain to grain misorientations and the theoretical child to child misorientations. In fact, the algorithm assumes that the majority of all boundary misorientations are child to child misorientations and finds the parent to child orientations relationship by minimizing this misfit. The following histogram displays the distribution of the misfit over all grain to grain misorientations.
We may also colorize the grain boundaries according to this misfit. To this end we first compute the relationship between pairs of grains grainPairs
and the boundary segments stored in grains.boundary
using the command selectByGrainId
We observe that the boundary segments with a large misfit form large grain shapes which we want to identify in the next steps as the parent grains.
Next we set up a adjacency matrix A
that describes the probability that two neighbouring grains belong to the same parent grains. This probability is computed from the misfit of the misorientation between two child grains to the theoretical child to child misorientation. More precisely, we model the probability by a cumulative Gaussian distribution with the mean value threshold
which describes the misfit at which the probability is exactly 50 percent and the standard deviation tol
The above diagram describes the probability distribution as a function of the misfit. After filling the matrix A
with these probabilities
In the next step we compute for each parent grain its parent austenite orientation. This can be done usig the command calcParent
. Note, that we ensure that at least two child grains have been merged and that the misfit is smaller than 5 degree.
Knowing the parent grain orientations we may compute the |variantId| of each child grain using the command calcChildVariant
. As a bonus this command returns also the packetId
, here defined as the closest {111} plane in austenite to the (011) plane in martensite.
In order to check our parent grain reconstruction we chose the single parent grain outlines in the above map and plot all child variants of its reconstructed parent orientation together with the actually measured child orientations inside the parent grain.
{% highlight matlab %} % the measured child orientations that belong to parent grain 279 @@ -210,12 +210,12 @@ {% endhighlight %} {% highlight plaintext %} -I'm plotting 416 random orientations out of 4906 given orientations +I'm plotting 416 random orientations out of 1060 given orientations You can specify the the number points by the option "points". The option "all" ensures that all data are plotted {% endhighlight %}So far our analysis was at the grain level. However, once parent grain orientations have been computed we may also use them to compute parent orientations of each pixel in our original EBSD map. To this end we first find pixels that now belong to an austenite grain.
{% highlight matlab %} % consider only martensite pixels that now belong to austenite grains @@ -229,7 +229,7 @@ plot(parentEBSD('Iron fcc'),parentEBSD('Iron fcc').orientations,'figSize','large') {% endhighlight %}As a second output argument we obtain the misfit
between the parent orientation computed for the pixel and the mean orientation of the corresponding parent grain. Let's plot this misfit as a map.
Finaly we may apply filtering to the parent map to fill non indexed or not reconstructed pixels. To this end we first run grain reconstruction on the parent map
{% highlight matlab %} [parentGrains, parentEBSD.grainId] = calcGrains(parentEBSD('indexed'),'angle',3*degree); @@ -254,7 +254,7 @@ hold off {% endhighlight %}and then use the command smooth
to fill the holes in the reconstructed parent map
In the above script several parameters are decisive for the success of the reconstruction
A problem of the boundary based reconstuction algorithm is that often child variants of different grains have a misorientation that is close to the theoretical child to child misorientation. One idea to overcome this problem is to analyze triple junctions. Now all three child orientations must fit to a common parent orientations. This fit is computed by the command calcParent
.
Again we observe, that triple junctions with large misfit outline the shape of the parent grains. In order to identify these parent grains we proceed analogously as for the boundary based analysis. We first set up a similarity matrix between grains connected to the same triple points and than use the Markovian clustering algorithm to detect clusters of child grains, which are than merged into parent grains.
The setup and the clustering of the similarity matrix is the same as above
{% highlight matlab %} threshold = 3*degree; @@ -330,5 +330,5 @@ hold off {% endhighlight %}