Calculating young's modulus and inclination angle histogram

365 views
Skip to first unread message

Chamara Sandun Sarath Kumara

unread,
Apr 22, 2017, 10:08:19 AM4/22/17
to MTEX
Hi,

I am very new to MTEX.

I need some help to calculate following things using MTEX for an EBSD data set (attached).

1. I want to plot inclination angle (of each crystal orientation) histogram, relative to the normal direction of the specimen acquisition surface.
2. I want to calculate young's modulus from the EBSD data. But it has to be parallel to the specimen acquisition surface and normal to the surface. 

Can anyone help me with this?

Many thanks in advance :)
Example.ctf

grandr...@gmail.com

unread,
Apr 22, 2017, 1:06:41 PM4/22/17
to MTEX
For part 1.
First define a vector 3d perpendicular to the surface.  This will depend on how you loaded your data, but will probably be something like (001).  See manual 'Specimen Directions'
dir= vector3d(0,0,1)
Next decide which crystal axis you're interested in.  Let's say magnesium (0001) axis.  For each EBSD point, calculate the angle between the (0001) axis and the sample axes.  (see manual 'to plot histograms of misoreintation to a mode')

cs=ebsd ('Magnesium').CS

delta= ebsd('Magnesium').orientations*Miller(0,0,0,1,cs);
Next,

%calculate the angles between the two

ang=angle(dir, delta,'antipodal')/degree;
%and plot a histogram
figure;histogram(ang);

The manual can be found online at https://www.researchgate.net/profile/Jessica_Hiscocks scroll down to 'Featured research'.


As for your second question
2. I want to calculate young's modulus from the EBSD data. But it has to be parallel to the specimen acquisition surface and normal to the surface. 
First, I'm not certain this is even  theoretically possible (maybe someone can correct me on that)  Was the sample under load? What sort of experiment was this?


But it has to be parallel to the specimen acquisition surface and normal to the surface.  

I'm not certain what this means.  What is the 'specimen acquisition surface'?

Jessica

Rüdiger Kilian

unread,
Apr 22, 2017, 1:49:38 PM4/22/17
to mtex...@googlegroups.com
Hi Chamara,
if you know the elastic stiffness tensor for your phase, you can probably do something like the following (example for quartz), just use instead of yvector your desired reference direction.


    % Elastic constants
    % Ogi, H., Ohmori, T. Nakamura, N. and Hirao M., 2006. Elastic, anelastic and piezoelectric
    % coefficients of alpha-quartz determined by resonance ultrasound spectroscopy.
    % Journal of Applied Physics, 100, 053511.
  

    % Define Cartesian Tensor crystal symmetry & frame
    cst = crystalSymmetry('-3m',[  4.9134  4.9134  5.4052],...
        [  90.0000  90.0000 120.0000]*degree,'x||a','z||c',...
        'mineral','Alpha-Quartz 2006');
    % elastic Cij stiffness tensor (GPa) as matrix M
    M =....
        [[   86.76    6.868   11.85  -18.02    0.00    0.00];...
        [     6.868   86.76   11.85  +18.02    0.00    0.00];...
        [    11.85    11.85  105.46    0.00    0.00    0.00];...
        [   -18.02   +18.02    0.00   58.14    0.00    0.00];...
        [     0.00     0.00    0.00    0.00   58.14  -18.02];...
        [     0.00     0.00    0.00    0.00  -18.02   39.946]];
    %
    % M as stiffness tensor C
    C = tensor(M,cst);

    % orientations of phase q from ebsd
    go=ebsd('q').orientations;
    % assuming both, your ebsd and cst above have not the same reference
    % frame use transformReferenceFrame
    go = transformReferenceFrame(go,cst); % in case
    % other wise

    % rotate the compression direction which is yvector in this case, into crystal coordiantes
    yc=inv(go).*yvector;
    % youngs modulous paralle yvector
    Yy =YoungsModulus(C,yc);

    % now you can for example plot it
    plot(ebsd('q'),Yy)
   
Hope that helps.
Cheers,
Rüdiger

MTEXNewbie

unread,
Nov 26, 2017, 5:19:07 AM11/26/17
to MTEX
Hi Rüdiger,

I tried to use the above code for FCC crystal but it did not work.

% Define Cartesian Tensor crystal symmetry & frame
CS = crystalSymmetry('m-3m',[3.6599 3.6599 3.6599],[90.0000 90.0000 90.0000]*degree,'x||a','z||c','mineral','Iron fcc');

I suspect the frame part is wrong, but could not figure out with my limited knowledge.

Ralf Hielscher

unread,
Nov 26, 2017, 6:06:10 AM11/26/17
to mtex...@googlegroups.com
Your line of code defining the crystal symmetry seems to be ok. Could you please explain in detail what "did not work" means?

Ralf.

********************************************************************
Ralf Hielscher                   Tel: +371-531-38556
Fakultät für Mathematik               +371-531-22200 (Sekr.)
Technische Universität Chemnitz  Fax: +371-531-22109
Reichenhainer Str. 39            E-mail: ralf.hi...@mathematik.tu-chemnitz.de
D-09126 Chemnitz                 http://www.tu-chemnitz.de/~rahi
********************************************************************

--
If you want to reduce the number of emails you get through this forum login to https://groups.google.com/forum/?fromgroups=#!forum/mtexmail, click "My membership" and select "Don't send me email updates". You can still get emails on selected topics by staring them.
---
You received this message because you are subscribed to the Google Groups "MTEX" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mtexmail+unsubscribe@googlegroups.com.
Visit this group at https://groups.google.com/group/mtexmail.
For more options, visit https://groups.google.com/d/optout.

MTEXNewbie

unread,
Nov 26, 2017, 6:19:32 AM11/26/17
to MTEX
I have only one grain (grainId 1) -

% M as stiffness tensor C
C = tensor(M,CS);
% orientations of phase q from ebsd
go=grains(1).meanOrientation;
% rotate the compression direction which is xvector in this case, into crystal coordiantes
yc=inv(go).*xvector;
% young's modulous parallal xvector
Yy =YoungsModulus(C,yc);

% now you can for example plot it
plot(grains(1),Yy)

I am getting a plot of the grain, no values.



MTEXNewbie

unread,
Nov 26, 2017, 6:26:36 AM11/26/17
to MTEX
Adding mtexColorbar at the bottom colors the plot with Yy value.

Is there some other way I can get the Yy value for a certain grain (this is a general question involving mtexColorbar usage because it is difficult to figure out the exact value of variables from colorbar)?

David Mainprice

unread,
Nov 27, 2017, 4:30:48 AM11/27/17
to mtex...@googlegroups.com
Here is an example script for plotting Young’s Modulus for FCC Alpha-Iron with a function for plotting elastic wave speeds


all the best David

Worked_Example_FCC_Iron_Elastic_Properties.m
Multi_seismic_plot.m

MTEXNewbie

unread,
Nov 27, 2017, 5:26:44 AM11/27/17
to MTEX
Hi David,

Thank you for the script. But it seems it is for BCC Fe, so the Elastic constants should be different for FCC Fe.

% Define Cartesian Tensor crystal crystalSymmetry & frame
cs_Tensor = crystalSymmetry('m-3m',[  2.874  2.874  2.874],...
 [  90.0000  90.0000  90.0000]*degree,'x||a','z||c',...
 'mineral','Alpha-Iron');

Any way to update the script for FCC Fe?

David Mainprice

unread,
Nov 27, 2017, 7:22:30 AM11/27/17
to mtex...@googlegroups.com
Yes this is BCC alpha iron, I do not have the elastic constants of FCC in my data base


Here is an example script for plotting Young’s Modulus for BCC Alpha-Iron with a function for plotting elastic wave speeds


all the best David


Multi_seismic_plot.m
Worked_Example_BCC_Iron_Elastic_Properties.m

David Mainprice

unread,
Nov 27, 2017, 7:52:51 AM11/27/17
to mtex...@googlegroups.com
Worked_Example_FCC_Iron_Elastic_Properties.m
Worked_Example_BCC_Iron_Elastic_Properties.m
Multi_seismic_plot.m

David Mainprice

unread,
Nov 28, 2017, 3:30:57 AM11/28/17
to mtex...@googlegroups.com
Dear All,

There was an error in my elastic constants for FCC Fe-15Ni-15Cr Alloy, I have now corrected. I put all the scripts here.

Worked_Example_BCC_Iron_Elastic_Properties.m
Worked_Example_FCC_Iron_Elastic_Properties.m
Multi_seismic_plot.m

MTEXNewbie

unread,
Dec 5, 2017, 5:21:55 AM12/5/17
to MTEX
Hi Ralf,

If I define the Cartesian Tensor crystal symmetry & frame by using the default MTEX import definition, the elastic modulus is still the same. Can I use any one of these two or is there any reason to use the Rüdiger's template one explicitly for Elasticity calculations?

Default MTEX import definition -
CS = crystalSymmetry('m-3m', [3.6599 3.6599 3.6599], 'mineral', 'Iron fcc', 'color', 'light blue')

From Rüdiger's template above -

Ralf Hielscher

unread,
Dec 5, 2017, 7:22:30 AM12/5/17
to MTEX
There is no difference between those lines.

Ralf.

MTEXNewbie

unread,
May 5, 2018, 11:00:15 PM5/5/18
to MTEX
Hi Ralf,

In MTEX 5.0.3, using the two (2) crystal symmetries from the above discussion is causing this warning -

Warning: Symmetry missmatch! The following crystal frames
seem to be different

  Iron fcc (m-3m) and Iron fcc (m-3m)
 
> In orientation/transformReferenceFrame (line 34)
  In Test_01 (line 407) 

Now, I have changed the 2nd crystal symmetry definition to the 1st one but still got the same warning message. Additionally, the Young's Modulus pole figure plot is different than MTEX 4.5.2.

Maybe there is some issue regarding having 2 crystal symmetry definitions in the same script??



Ralf Hielscher

unread,
May 6, 2018, 1:36:10 AM5/6/18
to MTEX
Hi MTEXNewbie,

I have checked the demo ElasticityTensor.m with MTEX 4.5.2 and MTEX 5.0.3 and found no difference in the scaling of the YoungsModulus. Could you therefore provide a reduced code that show up the difference.

Ralf.

MTEXNewbie

unread,
May 6, 2018, 2:29:09 AM5/6/18
to MTEX
The actual value of Young's modulus is correct (~197 GPa). Perhaps this is causing the problem?

% set some colormap well suited for tensor visualisation
setMTEXpref('defaultColorMap',blue2redColorMap);
figure
plot(C,'PlotType','YoungsModulus','complete','upper');
mtexColorbar


MTEXNewbie

unread,
May 9, 2018, 7:50:13 AM5/9/18
to mtex...@googlegroups.com
Hi Ralf,

Here is the code I am using to get Young's modulus, but the pole figure shows a high value of E in MTEX 5.0.3. Would it be possible for you to comment on what is going wrong?

Edit:

I have found out what is causing the problem.

If I use plot(C,'PlotType','YoungsModulus','complete','upper') than E is higher. But if I use plot(C.YoungsModulus,'complete','upper') from this example then E is correcthttps://mtex-toolbox.github.io/files/doc/ElasticityTensor.html#5

Is that a bug or the second code is a new addition?


Reply all
Reply to author
Forward
0 new messages