Calculate the aggregate tensor : Voigt,Reuss, Hill averages

277 views
Skip to first unread message

Feng Shi

unread,
Jun 1, 2013, 8:10:52 PM6/1/13
to mtex...@googlegroups.com, David Mainprice, Ralf Hielscher
Hi:

I have a question to calculate the aggregate tensor based EBSD data, volume fraction and single crystal tensor :

there is some wrong at line 75 in Vp_yz plane.m  :

% Olivine and Antigorite aggregate: Voigt,Reuss, Hill averages
[C_Voigt_Ag_EBSD,C_Reuss_Ag_EBSD,C_Hill_Ag_EBSD]=calcTensor(ebsd,C_Olivine,C_Antigorite);

attached documents: Vp_yz plane.m : modified m code to calculate the Vp in yz plane; area1.ctf: ebsd data.

Thank you

Feng
 

Vp_yz plane.m
area1.ctf

David Mainprice

unread,
Jun 2, 2013, 11:24:06 AM6/2/13
to Feng Shi, mtex...@googlegroups.com, Ralf Hielscher
Dear Feng,

I have now look at your M-file more carefully. You are  using MTEX 3.4.1, which is the latest release, but your problems are not directly related to this release.

In you script there are some errors;

a) Typing error rho_olivine to rho_Olivine

b)  calcTensor call is in error because  for ebsd object you need to specify the phases -> ebsd('IRON TETRATHIOSILICATE','Antigorite')
However if you make this change it still does not work.

c) I tried 
[C_Voigt_Ol_EBSD,C_Reuss_Ol_EBSD,C_Hill_OL_EBSD]=...
    calcTensor(ebsd('IRON TETRATHIOSILICATE'),C_Olivine)

This should work but give the error 
Error using symmetry/ensureCS (line 30)
Missmatch in crystal symmetries!

In fact the source of this error is your CS for EBSD and CS for the olivine elastic tensor do not match.

In CS for your EBSD data you have probably chosen an "olivine" from crystallographic database, this "olivine" is in fact  a Fayolite (Fe2SiO4) not a common composition for the Earth. The database has given your  Fayolite (Fe2SiO4) the name 'IRON TETRATHIOSILICATE' and it is in the space group setting Pnma a=12.407 b=7.198 c=5.812. symmetry('mmm', [12.407 7.198 5.812], 'mineral', 'IRON TETRATHIOSILICATE' etc

However in defining your elastic tensor for "olivine" you have used cs_Tensor_Olivine = symmetry('mmm',[4.7646,10.2296,5.9942]
    [90.00,90.00,90.00]*degree,'x||a','z||c','mineral','Olivine') this in space group setting Pbnm with a = 4.7646, b = 10.2296, c = 5.9942
this "olivine" is close the Mg-pole of of the olivine series.

Because you have used difference space group settings for the EBSD data and the elastic tensor MTEX gives a fatal error as it should.
You have to use the same space group setting and crystallographic data for both the EBSD data and the elastic tensor. The elastic tensor was measured using Pbnm, hence you have have EBSD data using the same setting.

What is a-axis in Pbnm is c-axis in Pnma
What is b-axis in Pbnm is a-axis in Pnma
What is c-axis in Pbnm is c-axis in Pnma

It may be possible to transform your EBSD "olivine" orientation data  from Pnma to Pbnm using a phase transformation rule. However you example shows the dangers of using data from large databases which are not necessarily designed for users from Earth Sciences.

all the best David

Ralf may have further comments.


<Vp_yz plane.m><area1.ctf>


David Mainprice

unread,
Jun 2, 2013, 4:18:33 PM6/2/13
to Feng Shi, Ralf Hielscher, mtex...@googlegroups.com
<Vp_yz plane.m><area1.ctf>


Feng Shi

unread,
Jun 2, 2013, 7:35:52 PM6/2/13
to David Mainprice, mtex...@googlegroups.com, Ralf Hielscher

Dear David,

 

Thank you for your reply. I checked the origin EBSD data, the CS for olivine is Forsterite. I changed the CS for the olivine and antigorite elastic tensor in the M-file. It works well for the single olivine and antigorite. The phase  'IRON TETRATHIOSILICATE’ is the non-indexed phase. It takes me care that the CS for the elastic tensor should match the CS for the EBSD. When I calculate the aggregate tensor, using the calcTensor  function:

 

% Olivine and Antigorite aggregate: Voigt,Reuss, Hill averages

[C_Voigt_Ag_EBSD,C_Reuss_Ag_EBSD,C_Hill_Ag_EBSD]=calcTensor(ebsd,C_Olivine,C_Antigorite);

 

there still has an error:

 

??? Error using ==> EBSD.calcTensor at 51

There are more phases then tensors

 

In the EBSD data, there have 10 phases, only index 3 phases.  

 

The question now is how to define the calcTensor to calculate the aggregate tensor.

 

Attached is the revision M-file.

 

Thank you,

 

Feng

 

 

 

 

发件人: David Mainprice [mailto:david.m...@gmail.com]
发送时间: Sunday, June 02, 2013 13:19
收件人: Feng Shi
抄送: mtex...@googlegroups.com; Ralf Hielscher; mtex...@googlegroups.com
主题: Re: Calculate the aggregate tensor : Voigt,Reuss, Hill averages

Vp_yz plane.m

David Mainprice

unread,
Jun 3, 2013, 3:08:41 AM6/3/13
to Feng Shi, mtex...@googlegroups.com, Ralf Hielscher
Dear Feng,

I have corrected your M-file attached, again there several issued raised by your corrected M-file.

1) Always use the EBSD import wizard to get a correct import sequence of commands, syntax and file paths for YOUR computer.
The import wizard can called either from the command window when first starting MatLab

  MTEX 3.4.1 (show documentation)
  Import pole figure data
  Import EBSD data
  Import ODF data
 
 or typing import_wizard('EBSD') in the Command Window

In your original file 

This section was clearly in error 

CS = {... 
  symmetry('-1', [NaN NaN NaN], [NaN,NaN,NaN]*degree, 'mineral', 'notIndexed', 'color', 'light blue'),...
  symmetry('2/m', [9.794 8.906 5.319], [90,105.9,90]*degree, 'X||a*', 'Y||b*', 'Z||c', 'mineral', 'Clinopyroxene', 'color', 'light blue'),...
  symmetry('mmm', [4.756 10.207 5.98], 'mineral', 'Forsterite', 'color', 'light green'),...
  symmetry('2/m', [43.3 9.23 7.27], [90,91.6,90]*degree, 'X||a*', 'Y||b*', 'Z||c', 'mineral', 'Antigorite superstruc', 'color', 'light red')};

2) Calculating aggregate average tensor using calcTensor and ebsd data

The example in on-line help is as follows

The Average Tensor from EBSD Data 

The Voigt, Reuss, and Hill averages for ALL phases are computed by
[CVoigt,CReuss,CHill] =  calcTensor(ebsd,CGlaucophane,CEpidote)

In this example there are only 2 indexed phases Glaucophane and Epidote, ALL phases present in the ebsd object were used.
Perhaps this should have been emphasized in the Help and may be we should have simple way of using a sub-set of phases in an ebsd object.

The solution in the present case is as follows

[C_Voigt_Ol_EBSD,C_Reuss_Ol_EBSD,C_Hill_OL_EBSD]=...
    calcTensor(ebsd('Forsterite'),C_Olivine)

 
[C_Voigt_Atg_EBSD,C_Reuss_Atg_EBSD,C_Hill_Atg_EBSD]=...
    calcTensor(ebsd('Antigorite'),C_Antigorite)

 
C_Hill_Ag_EBSD = 0.8*C_Hill_OL_EBSD + 0.2*C_Hill_Atg_EBSD

where 0.8 and 0.2 are the volume fractions of olivine and antigorite.

all the best David

Worked_Example_Vp_yz plane2.m

Feng Shi

unread,
Jun 3, 2013, 12:57:45 PM6/3/13
to David Mainprice, mtex...@googlegroups.com, Ralf Hielscher

Dear David,

 

Thank you for your patience reply. The code works well, I got the right results.

 

Best wishes,

 

Feng

 

发件人: David Mainprice [mailto:david.m...@gmail.com]
发送时间: Monday, June 03, 2013 0:09
收件人: Feng Shi
抄送: mtex...@googlegroups.com; 'Ralf Hielscher'
主题: Calculate the aggregate tensor : Voigt,Reuss, Hill averages further problems

Reply all
Reply to author
Forward
0 new messages