In this section we discuss parent grain reconstruction at the example of a titanium alloy. Lets start by importing a sample data set
The data set contains 99.8 percent alpha titanium and 0.2 percent beta titanium. Our goal is to reconstuct the original beta phase. The original grain structure appears almost visible for human eyes. Our computations will be based on the Burgers orientation relationship
that alligns (110) plane of the beta phase with the (0001) plane of the alpha phase and the [1-11] direction of the beta phase with the [2110] direction of the alpha phase.
Note that all MTEX functions for parent grain reconstruction expect the orientation relationship as parent to child and not as child to parent.
Detecting triple points that belong to the same parent orientation
In a first step we want to identify triple junctions that have misorientations that are compatible with a common parent orientations. To this end we first compute alpha grains using the option removeQuadruplePoints
which turn all quadruple junctions into 2 triple junctions. Furthermore, we choose a very small threshold of 1.5 degree for the identification of grain boundaries to avoid alpha orientations that belong to different beta grains get merged into the same alpha grain.
Above we have plotted only a very small subregion of the original data set to make the seperation of the qudruple junctions better visible.
Next we extract all alpha - alpha - alpha triple junctions and use the command calcParent
to find for each of these triple junctions the best fitting parent orientations.
The command calcParent
returns for each child orientation a parentId
which allows us later to compute the parent orientation from the child orientation. Furthermore, the command return for each triple junction the misfit between the adjecent parent orientations in radiant. Finally, the option 'numFit',2
causes calcParent
to return not only the best fit but also the second best fit. This will be used later. First we simple colorize the triple junctions according to the best fit.
Next we select those triple junctions as reliable that have a fit less than 2.5 degree and second best fit that is larger than 2.5 degree
Recover beta grains from consistent triple junctions
We observe that despite the quite sharp threshold we have many consistent triple points. In the next step we check wether all consistent triple junctions of a grain vote for the same parent orientation. Such a check for consistent votes can be computed by the command majorityVote
using the option strict
.
The command majorityVote
returns for each grain with consistent parentId votes this unique parentId and for all other grains NaN
. The second output argument gives the number of these votes
For all grains with at least 3 unique vote we now use the command variants
to compute the parent orientation corresponding to the parentId
. This parent orientations we assign as new meanOrientation
to our grains.
Lets plot map of these reconstructed beta grains
We observe that this first step already results in very many Beta grains. However, the grain boundaries are still the boundaries of the original alpha grains. To overcome this, we merge all Beta grains that have a misorientation angle smaller then 2.5 degree.
As an additional consistency check we verify that each parent grain has been reconstructed from at least 2 child grains. To this end we first make a testrun the merge operation and then revert all parent grains that that have less then two childs. This step may not nessesary in many case.
Now we perform the actual merge and the reconstruction of the parent grain boundaries.
Merge alpha grains to beta grains
After the first two steps we have quite some alpha grains have not yet transformed into beta grains. In order to merge those left over alpha grains we check whether their misorientation with one of the neighbouring beta grains coincides with the parent to grain orientation relationship and if yes merge them evantually with the already reconstructed beta grains.
First extract a list of all neighbouring alpha - beta grains
and check how well they fit to a common parent orientation
Similarly, as in the first step the command calcParent
returns a list of parentId
that allows the convert the child orientations into parent orientations using the command variants
and the fitting to the given parent orientation. Similarly, as for the triple point we select only those alpha beta pairs such that the fit is below the threshold of 2.5 degree and at the same time the second best fit is above 2.5 degree.
Next we compute for all alpha grains the majority vote of the surounding beta grains and change their orientation from alpha to beta
The above step has merged
alpha grains into the already reconstructed beta grain. This reduces the amount of grains not yet reconstructed to
percent. One way to proceed would be to repeat the steps of this section multiple time, maybe with increasing threshold, until the percentage of reconstructed beta grains is sufficiently high. Another approach in to consider the left over alpha grains as noise and use denoising techniques to replace them with beta orientations. This will be done in the last section.
Reconstruct beta orientations in EBSD map
Until now we have only recovered the beta orientations as the mean orientations of the beta grains. In this section we want to set up the EBSD variable parentEBSD
to contain for each pixel a reconstruction of the parent phase orientation.
Therefore, we first identify all pixels that previously have been alpha titanium but now belong to a beta grain.
Next we can use once again the function calcParent
to recover the original beta orientation from the measured alpha orientation giving the mean beta orientation of the grain.
We obtain even a measure fit
for the corespondence between the beta orientation reconstructed for a single pixel and the beta orientation of the grain. Lets visualize this measure of fit
Lets finaly plot the reconstructed beta phase
Denoising of the reconstructed beta phase
As promised we end our discussion by applying denoising techniques to fill the remaining holes of alpha grains. To this end we first reconstruct grains from the parent orientations and throw away all small grains
Finally, we denoise the remaining beta orientations and at the same time fill the empty holes. We choose a very small smoothing parameter alpha
to keep as many details as possible.
For comparison the map with original alpha phase and on top the recovered beta grain boundaries
Summary of relevant thresholds
In parent grain reconstruction several parameters are involve are decicive for the success of the reconstruction
- threshold for initial grain segmentation (1.5*degree)
- maximum misfit at triple junctions (2.5 degree)
- minimal misfit of the second best solution at triple junctions (2.5 degree)
- minimum number of consistent votes (2)
- threshold for merging beta grains (can be skipped)
- threshold for merging alpha and beta grains (2.5 degree)
Visualize the misorientation to the mean reveals quite some fine structure in the reconstructed parent orientations.