How to interpret the result of calcModes(odf,5,'resolution',4*degree)

176 views
Skip to first unread message

Rongpei Shi

unread,
Jun 29, 2013, 9:11:28 PM6/29/13
to mtex...@googlegroups.com
I have an ODF calculated using the kernerl 

psi = kernel('de la Vallee Poussin','HALFWIDTH',4*degree)

and then i want to know the modal orientation with the maximum intensity.

What i did is to use the command

 calcModes(odf,5,'resolution',4*degree) 

However the results are as follows:

modes = orientation (show methods, plot)
  size: 5 x 1
  crystal symmetry: Alpha (6/mmm, X||a, Y||b*, Z||c)
  sample symmetry : -1
 
  Bunge Euler angles in degree
     phi1     Phi    phi2
  318.699 49.2544  11.686
  318.627  49.202 21.9443
  85.6203 59.9685 51.2759
  116.076 89.8924 21.3821
  163.497 46.9738 50.6093
 
 

values =

   25.5215
   25.4173
   28.5671
   22.3140
   24.7033

if you look at the values, the modal orientations are not sorted according to values? 

Then which one, i need to use?

From two figures i attached, it seems that the pole with maximum intensity does not agree with the one offered by calcModes.

Also, the results by calcModes vary with the resolution option. 

Is the resolution should be equal to the halfwidth of the ODF?

Could you please help to answer the question?

Thanks!

Rongpei




calcmode1.png
calcmodewithoutannotation.png

Ralf Hielscher

unread,
Jul 4, 2013, 10:23:32 PM7/4/13
to mtex...@googlegroups.com
Could you please send your ODF as well? Maybe by saving the variable in a .mat file. Thanks.

Rongpei Shi

unread,
Jul 4, 2013, 10:55:32 PM7/4/13
to mtex...@googlegroups.com
Dear Dr. Hielscher:

.mat is attached. 

odf1 and odf2 are visualized. 

However, the maximum orientation does not always correspond to the pole with max intensity in the pole figure.

In addition, [maxODF2,centerODF2] = max(odf2,6,'resolution',4*degree) 

the results are dependent on resolution. Does the resolution need to be associated with the half width of the odf?

and the result in centerODF2 is not sorted according to the intensity in maxODF2.


How maxium orientation are annotated are as follows.


Many thanks for your time and help!!

Rongpei

setMTEXpref('textInterpreter','latex')
figure('position',[100,100,640,480])
plotpdf(odf1,[Miller(1,0,1),Miller(-1,1,1),Miller(-1,-2,1)],'antipodal','silent')%,'minmax', 'off')
[maxODF1,centerODF1] = max(odf1,6,'resolution',4*degree);
[Y1,Index1]=max(maxODF1);
[modes1, values] = calcModes(odf1,1) %[modes, values] = calcModes(odf1,5,'resolution',0.2*degree) /takes time
%centerODF1 = calcModes(odf1);
plotx2south


psi = kernel('de la Vallee Poussin','HALFWIDTH',4*degree)
setMTEXpref('textInterpreter','latex')
figure('position',[100,100,640,480])
plotpdf(odf2,[Miller(0,0,0,1),Miller(1,1,-2,0),Miller(-1,1,0,0)],'antipodal','silent')
[maxODF2,centerODF2] = max(odf2,6,'resolution',4*degree)
[Y2,Index2]=max(maxODF2);
[modes, values] = calcModes(odf2,1,'resolution',4*degree)
%centerODF2 = calcModes(odf2);
plotx2south
% centerODF2(Index2)4
annotate(centerODF2(Index2),'label','$q_0$','marker','s','MarkerSize',5,'MarkerFaceColor','r','color','r')
% annotate([xvector,yvector,zvector],'label',{'X','Y','Z'},...
%   'BackgroundColor','w');
annotate([xvector,yvector,zvector],'label',{'X','Y','Z'},'fontname','Times','backgroundcolor','w');
set(gcf,'PaperpositionMode','Auto')

print(gcf,'-depsc2','-cmyk','-r300','-painters','alphaodf12simw.eps');
test.mat

Ralf Hielscher

unread,
Jul 6, 2013, 11:27:13 PM7/6/13
to mtex...@googlegroups.com
Dear Rongpei Shi,


I have a few comments on your issue

  1. the output of max is not expected to be sorted by intensity. Maybe we should include this in a future version.
  2. the maxima in the pole figure needs not to be related to the maxima in the ODF. As you can see in the following picture the following code gives you the right maxima of the ODF
    [m,mori] =max(odf1,6)

    plot
    (odf1,'sigma')
    annotate
    (mori)
  3. the resolution given to max should be smaller then the kernel width of the kernels. As you see above leaving this option empty results in the right values.
  4. the function max is a bit fragile and uses different algorithms depending whether it is called with one or two arguments. Using [m,mori] = max(odf1) is recommended if you are interested in the global maximum. If you are interested in all local maxima use [m,mori] = max(odf1,n) where n the number of local minima should not be to small to get up all of them.
May all also ask, which kind of material has such an crazy ODF? I rarely have seen an ODF with so many sharp peaks.

I hope I could help you.

Ralf.

Below the sigma section of odf2 with its maxima

Rongpei Shi

unread,
Jul 7, 2013, 5:34:41 PM7/7/13
to mtex...@googlegroups.com
I am doing modeling of micro-texture evolution in titanium alloys. Thanks a lot for your amazing mtex application.

It helps a lot in my research.

Rongpei
Reply all
Reply to author
Forward
0 new messages