Generic list of orientations to generate the ideal angles/axes of hcp twins

150 views
Skip to first unread message

Azdiar Gazder

unread,
May 1, 2018, 2:23:52 AM5/1/18
to MTEX
Dear All,

As you know, twins can be represented using the misorientation angle/axis convention.
However, in the case of hcp materials, the exact misorientation angle varies with the c/a ratio - while the axis remains constant.

With respect to this, I have used the example provided in the following weblinks to generate the angle/axis for one extension twin type for Mg:
https://mtex-toolbox.github.io/files/doc/Misorientations.html
https://mtex-toolbox.github.io/files/doc/TwinningAnalysis.html

The following lines of code work correctly:
cs_hcp = crystalSymmetry('6/mmm', [3.2094 3.2094 5.2108], 'X||a*', 'Y||b', 'Z||c');
 T1
= orientation('map',Miller(1,1,-2,0,cs_hcp),Miller(2,-1,-1,0,cs_hcp),Miller(-1,0,1,1,cs_hcp),Miller(1,0,-1,1,cs_hcp))
 ideal_angle
(T1)/degree
 ideal_axis
(T1)

The same webpage states:
"...we define first the twinning as a misorientation, which is reported in literature by (1,1,-2,0) parallel to (2,-1,-1,0) and (-1,0,1,1) parallel to (1,0,-1,1)."

My questions are as follows:
1. I am definitely missing something here but even after searching I am unable to find the literature reference from where these orientations have been derived.
2. Would anyone happen to have a ready generic list of orientations that can be inputted into the second line of code - in order to generate the ideal angles/axes for all the other hcp twin systems?
(for example - in keeping with the Mg/Ti examples, the list for orientations that generate the two extension and three compression twin systems)?
3. Alternatively, if no such list exists, can code be written/modified to generate such a list?

Thank you in advance.

Regards,
Azdi

Azdiar Gazder

unread,
May 6, 2018, 11:39:47 PM5/6/18
to mtex...@googlegroups.com
Dear All,

The code given below uses a generic list of parallel {HKIL} lattice and twin planes to generate a plot of the ideal parent-twin misorientation angle versus c/a ratio.

The code was created using titanium as the reference with an ideal c/a ratio = 1.588 such that:
T1 = sigma11b = 85.0312 deg / [-2,1,1,0]
T2 = sigma11a = 35.2397 deg / [-1,1,0,0]
T3 = sigma13a = 76.8992 deg / [-1,1,0,0]
T4 = sigma7a = 64.3991 deg / [-1,1,0,0]
T5 = sigma13b = 57.2122 deg / [-2,1,1,0]

Please note that the loop in the code and the outputted plot has been limited to a maximum c/a ratio = 9.8.
Beyond this value of c/a ratio, the axis for twin T5 is no longer <1 -2 1 0>.

I have attached the output plot in order to compare the results when the code is re-run on other versions of Matlab/Mtex.
I hope the code and/or its parts prove useful to everyone working on hcp alloys.

Regards,
Azdi


% % Script to plot the ideal twin misorientation angle versus c/a ratio for hexagonal close packed materials.
% % This script has been created and tested using MTEX 5.0.3.
% % Script created by Azdiar Gazder: May 2018
clc; clear all; clear hidden; close all;
startup_mtex;

angleList_T1 = []; angleList_T2 = []; angleList_T3 = []; angleList_T4 = []; angleList_T5 = [];
count = 1;
for cbyaRatio = 1:0.1:9.8;
clear cs_hex
cs_hex = crystalSymmetry('6/mmm', [1 1 cbyaRatio], 'X||a', 'Y||b*', 'Z||c');

T1 = orientation('map', Miller(1,0,-1,1,cs_hex.properGroup), Miller(-1,0,1,-1,cs_hex.properGroup),...
Miller(2,-1,-1,0,cs_hex.properGroup), Miller(-2,1,1,0,cs_hex.properGroup));
angle_T1 = angle(T1)/degree;
angleList_T1 = vertcat(angleList_T1, angle_T1);
axisList_T1(count) = axis(T1);

T2 = orientation('map', Miller(1,0,-1,0,cs_hex.properGroup), Miller(-1,1,0,0,cs_hex.properGroup),...
Miller(1,0,-1,5,cs_hex.properGroup), Miller(-1,0,1,-5,cs_hex.properGroup));
angle_T2 = angle(T2)/degree;
angleList_T2 = vertcat(angleList_T2, angle_T2);
axisList_T2(count) = axis(T2);

T3 = orientation('map', Miller(1,0,-1,0,cs_hex.properGroup), Miller(-1,1,0,0,cs_hex.properGroup),...
Miller(1,0,-1,2,cs_hex.properGroup), Miller(-1,0,1,-2,cs_hex.properGroup));
angle_T3 = angle(T3)/degree;
angleList_T3 = vertcat(angleList_T3, angle_T3);
axisList_T3(count) = axis(T3);

T4 = orientation('map', Miller(1,0,-1,0,cs_hex.properGroup), Miller(-1,1,0,0,cs_hex.properGroup),...
Miller(3,-1,-2,1,cs_hex.properGroup), Miller(-3,2,1,1,cs_hex.properGroup));
angle_T4 = angle(T4)/degree;
angleList_T4 = vertcat(angleList_T4, angle_T4);
axisList_T4(count) = axis(T4);

T5 = orientation('map', Miller(1,0,-1,1,cs_hex.properGroup), Miller(0,1,-1,-1,cs_hex.properGroup),...
Miller(3,-1,-2,2,cs_hex.properGroup), Miller(-2,3,-1,-2,cs_hex.properGroup));
angle_T5 = angle(T5)/degree;
angleList_T5 = vertcat(angleList_T5, angle_T5);
axisList_T5(count) = axis(T5);

count = count + 1;
end

figure
xAx = [1:0.1:9.8];
plot(xAx,angleList_T1,'-k','LineWidth',2,'Marker','o','MarkerFaceColor','k','MarkerSize',10)
hold all
plot(xAx,angleList_T2,'-r','LineWidth',2,'Marker','s','MarkerFaceColor','r','MarkerSize',10)
plot(xAx,angleList_T3,'-g','LineWidth',2,'Marker','d','MarkerFaceColor','g','MarkerSize',10)
plot(xAx,angleList_T4,'-b','LineWidth',2,'Marker','p','MarkerFaceColor','b','MarkerSize',10)
plot(xAx,angleList_T5,'-m','LineWidth',2,'Marker','h','MarkerFaceColor','m','MarkerSize',10)
xlabel('c/a ratio','FontSize',14,'FontWeight','bold');
ylabel('Ideal parent-twin misoriention angle','FontSize',14,'FontWeight','bold');
legend('T1','T2','T3','T4','T5');
set(gca,'fontsize',14);
hold off

figure
plot(axisList_T1,'FundamentalRegion','symmetrised','antipodal','MarkerSize',10);
figure
plot(axisList_T2,'FundamentalRegion','symmetrised','antipodal','MarkerSize',10);
figure
plot(axisList_T3,'FundamentalRegion','symmetrised','antipodal','MarkerSize',10);
figure
plot(axisList_T4,'FundamentalRegion','symmetrised','antipodal','MarkerSize',10);
figure
plot(axisList_T5,'FundamentalRegion','symmetrised','antipodal','MarkerSize',10);



TwinMisorientationAngle_vs_ cbyaRatio.png
Reply all
Reply to author
Forward
0 new messages