Average Material Tensors

how to calculate average material tensors from ODF and EBSD data

MTEX offers several ways to compute average material tensors from ODFs or EBSD data.

On this page ...
Import EBSD Data
Data Correction
Define Elastic Stiffness Tensors for Glaucophane and Epidote
The Average Tensor from EBSD Data
ODF Estimation
The Average Tensor from an ODF

set up a nice colormap

setMTEXpref('defaultColorMap',blue2redColorMap);

Import EBSD Data

We start by importing some EBSD data of Glaucophane and Epidote.

ebsd = loadEBSD([mtexDataPath '/EBSD/data.ctf'],...
  'convertEuler2SpatialReferenceFrame')
 
ebsd = EBSD  
 
 Phase  Orientations      Mineral        Color  Symmetry  Crystal reference frame
     0   28015 (56%)   notIndexed                                                
     1   13855 (28%)  Glaucophane   light blue     12/m1        X||a, Y||b, Z||c*
     2   4603 (9.2%)      Epidote  light green     12/m1        X||a, Y||b, Z||c*
     3   3213 (6.4%)       Pyrope    light red      m-3m                         
     4   295 (0.59%)    omphacite         cyan     12/m1        X||a, Y||b, Z||c*
 
 Properties: bands, bc, bs, error, mad, x, y
 Scan unit : um
 

Let's visualize a subset of the data

plot(ebsd(inpolygon(ebsd,[2000 0 1400 375])))

Data Correction

next, we correct the data by excluding orientations with large MAD value

% define maximum acceptable MAD value
MAD_MAXIMUM= 1.3;

% eliminate all meassurements with MAD larger than MAD_MAXIMUM
ebsd(ebsd.mad >MAD_MAXIMUM) = []

plot(ebsd(inpolygon(ebsd,[2000 0 1400 375])))
 
ebsd = EBSD  
 
 Phase  Orientations      Mineral        Color  Symmetry  Crystal reference frame
     0   28015 (56%)   notIndexed                                                
     1   13779 (28%)  Glaucophane   light blue     12/m1        X||a, Y||b, Z||c*
     2   4510 (9.1%)      Epidote  light green     12/m1        X||a, Y||b, Z||c*
     3   3212 (6.5%)       Pyrope    light red      m-3m                         
     4   218 (0.44%)    omphacite         cyan     12/m1        X||a, Y||b, Z||c*
 
 Properties: bands, bc, bs, error, mad, x, y
 Scan unit : um
 

Define Elastic Stiffness Tensors for Glaucophane and Epidote

Glaucophane elastic stiffness (Cij) Tensor in GPa Bezacier, L., Reynard, B., Bass, J.D., Wang, J., and Mainprice, D. (2010) Elasticity of glaucophane and seismic properties of high-pressure low-temperature oceanic rocks in subduction zones. Tectonophysics, 494, 201-210.

% define the tensor coefficients
MGlaucophane =....
  [[122.28   45.69   37.24   0.00   2.35   0.00];...
  [  45.69  231.50   74.91   0.00  -4.78   0.00];...
  [  37.24   74.91  254.57   0.00 -23.74   0.00];...
  [   0.00    0.00    0.00  79.67   0.00   8.89];...
  [   2.35   -4.78  -23.74   0.00  52.82   0.00];...
  [   0.00    0.00    0.00   8.89   0.00  51.24]];

% define the reference frame
csGlaucophane = crystalSymmetry('2/m',[9.5334,17.7347,5.3008],...
  [90.00,103.597,90.00]*degree,'X||a*','Z||c','mineral','Glaucophane');

% define the tensor
CGlaucophane = tensor(MGlaucophane,csGlaucophane)
 
CGlaucophane = tensor  
  rank   : 4 (3 x 3 x 3 x 3)                     
  mineral: Glaucophane (12/m1, X||a*, Y||b, Z||c)
 
  tensor in Voigt matrix representation:
 122.28  45.69  37.24      0   2.35      0
  45.69  231.5  74.91      0  -4.78      0
  37.24  74.91 254.57      0 -23.74      0
      0      0      0  79.67      0   8.89
   2.35  -4.78 -23.74      0  52.82      0
      0      0      0   8.89      0  51.24

Epidote elastic stiffness (Cij) Tensor in GPa Aleksandrov, K.S., Alchikov, U.V., Belikov, B.P., Zaslavskii, B.I. and Krupnyi, A.I.: 1974 'Velocities of elastic waves in minerals at atmospheric pressure and increasing the precision of elastic constants by means of EVM (in Russian)', Izv. Acad. Sci. USSR, Geol. Ser.10, 15-24.

% define the tensor coefficients
MEpidote =....
  [[211.50    65.60    43.20     0.00     -6.50     0.00];...
  [  65.60   239.00    43.60     0.00    -10.40     0.00];...
  [  43.20    43.60   202.10     0.00    -20.00     0.00];...
  [   0.00     0.00     0.00    39.10      0.00    -2.30];...
  [  -6.50   -10.40   -20.00     0.00     43.40     0.00];...
  [   0.00     0.00     0.00    -2.30      0.00    79.50]];

% define the reference frame
csEpidote= crystalSymmetry('2/m',[8.8877,5.6275,10.1517],...
  [90.00,115.383,90.00]*degree,'X||a*','Z||c','mineral','Epidote');

% define the tensor
CEpidote = tensor(MEpidote,csEpidote)
 
CEpidote = tensor  
  rank   : 4 (3 x 3 x 3 x 3)                 
  mineral: Epidote (12/m1, X||a*, Y||b, Z||c)
 
  tensor in Voigt matrix representation:
 211.5  65.6  43.2     0  -6.5     0
  65.6   239  43.6     0 -10.4     0
  43.2  43.6 202.1     0   -20     0
     0     0     0  39.1     0  -2.3
  -6.5 -10.4   -20     0  43.4     0
     0     0     0  -2.3     0  79.5

The Average Tensor from EBSD Data

The Voigt, Reuss, and Hill averages for all phases are computed by

[CVoigt,CReuss,CHill] =  calcTensor(ebsd({'Epidote','Glaucophane'}),CGlaucophane,CEpidote)
 
  The involved symmetries have different reference systems
  1: Glaucophane (12/m1, X||a, Y||b, Z||c*)
  2: Glaucophane (12/m1, X||a*, Y||b, Z||c)
  I'm going to transform the data from the first one to the second one
 
 
  The involved symmetries have different reference systems
  1: Glaucophane (12/m1, X||a, Y||b, Z||c*)
  2: Glaucophane (12/m1, X||a*, Y||b, Z||c)
  I'm going to transform the data from the first one to the second one
 
 
  The involved symmetries have different reference systems
  1: Epidote (12/m1, X||a, Y||b, Z||c*)
  2: Epidote (12/m1, X||a*, Y||b, Z||c)
  I'm going to transform the data from the first one to the second one
 
 
  The involved symmetries have different reference systems
  1: Epidote (12/m1, X||a, Y||b, Z||c*)
  2: Epidote (12/m1, X||a*, Y||b, Z||c)
  I'm going to transform the data from the first one to the second one
 
 
CVoigt = tensor  
  rank: 4 (3 x 3 x 3 x 3)
 
  tensor in Voigt matrix representation:
 207.92  57.65  63.85  -0.41  -2.89   2.43
  57.65 160.29  58.69  -3.48  -0.13   3.61
  63.85  58.69 203.67  -5.28  -1.96  -0.05
  -0.41  -3.48  -5.28  63.61   0.97  -1.52
  -2.89  -0.13  -1.96   0.97  73.02  -0.93
   2.43   3.61  -0.05  -1.52  -0.93  65.44
 
CReuss = tensor  
  rank: 4 (3 x 3 x 3 x 3)
 
  tensor in Voigt matrix representation:
 187.72  51.53   56.6   -0.5  -2.54   2.47
  51.53  146.2   52.4  -2.82   0.07   2.82
   56.6   52.4 184.68  -4.79  -1.59      0
   -0.5  -2.82  -4.79  57.37   0.99  -1.14
  -2.54   0.07  -1.59   0.99  66.73  -1.13
   2.47   2.82      0  -1.14  -1.13  58.95
 
CHill = tensor  
  rank: 4 (3 x 3 x 3 x 3)
 
  tensor in Voigt matrix representation:
 197.82  54.59  60.22  -0.45  -2.71   2.45
  54.59 153.24  55.55  -3.15  -0.03   3.22
  60.22  55.55 194.17  -5.04  -1.77  -0.03
  -0.45  -3.15  -5.04  60.49   0.98  -1.33
  -2.71  -0.03  -1.77   0.98  69.87  -1.03
   2.45   3.22  -0.03  -1.33  -1.03   62.2

for a single phase the syntax is

[CVoigtEpidote,CReussEpidote,CHillEpidote] =  calcTensor(ebsd('Epidote'),CEpidote)
 
  The involved symmetries have different reference systems
  1: Epidote (12/m1, X||a, Y||b, Z||c*)
  2: Epidote (12/m1, X||a*, Y||b, Z||c)
  I'm going to transform the data from the first one to the second one
 
 
  The involved symmetries have different reference systems
  1: Epidote (12/m1, X||a, Y||b, Z||c*)
  2: Epidote (12/m1, X||a*, Y||b, Z||c)
  I'm going to transform the data from the first one to the second one
 
 
CVoigtEpidote = tensor  
  rank: 4 (3 x 3 x 3 x 3)
 
  tensor in Voigt matrix representation:
  204.9  60.25  69.69  -2.32  -2.82   4.06
  60.25 172.91  59.59   2.77   2.17   0.48
  69.69  59.59 200.52  -1.19  -0.86   0.59
  -2.32   2.77  -1.19   63.6   0.29   0.98
  -2.82   2.17  -0.86   0.29  69.91  -1.85
   4.06   0.48   0.59   0.98  -1.85  65.63
 
CReussEpidote = tensor  
  rank: 4 (3 x 3 x 3 x 3)
 
  tensor in Voigt matrix representation:
 190.91  60.75  72.26  -2.51  -2.21   4.27
  60.75 157.92  60.96   2.47   2.78    0.6
  72.26  60.96 187.42   -1.2  -0.17   0.79
  -2.51   2.47   -1.2  55.76   0.38   0.86
  -2.21   2.78  -0.17   0.38  61.96  -1.81
   4.27    0.6   0.79   0.86  -1.81  57.91
 
CHillEpidote = tensor  
  rank: 4 (3 x 3 x 3 x 3)
 
  tensor in Voigt matrix representation:
 197.91   60.5  70.98  -2.41  -2.52   4.16
   60.5 165.42  60.27   2.62   2.48   0.54
  70.98  60.27 193.97  -1.19  -0.52   0.69
  -2.41   2.62  -1.19  59.68   0.33   0.92
  -2.52   2.48  -0.52   0.33  65.93  -1.83
   4.16   0.54   0.69   0.92  -1.83  61.77

ODF Estimation

Next, we estimate an ODF for the Epidote phase

odfEpidote = calcODF(ebsd('Epidote').orientations,'halfwidth',10*degree)
 
odfEpidote = ODF  
  crystal symmetry : Epidote (12/m1, X||a, Y||b, Z||c*)
  specimen symmetry: 1
 
  Harmonic portion:
    degree: 28
    weight: 1
 

The Average Tensor from an ODF

The Voigt, Reuss, and Hill averages for the above ODF are computed by

[CVoigtEpidote, CReussEpidote, CHillEpidote] =  ...
  calcTensor(odfEpidote,CEpidote)

% set back the colormap
setMTEXpref('defaultColorMap',WhiteJetColorMap);
 
CVoigtEpidote = tensor  
  rank: 4 (3 x 3 x 3 x 3)
 
  tensor in Voigt matrix representation:
 208.94  57.35  67.73  -1.31  -2.25   3.75
  57.35 177.36  57.99  -0.15   0.58   0.23
  67.73  57.99 204.96  -1.61  -0.18   1.08
  -1.31  -0.15  -1.61  60.13   1.37   0.37
  -2.25   0.58  -0.18   1.37  72.05  -0.66
   3.75   0.23   1.08   0.37  -0.66  60.49
 
CReussEpidote = tensor  
  rank: 4 (3 x 3 x 3 x 3)
 
  tensor in Voigt matrix representation:
 195.18  58.63  68.58  -1.49  -1.82   3.66
  58.63 161.47     60  -0.24   0.99    0.3
  68.58     60 192.09   -1.6   0.62   0.87
  -1.49  -0.24   -1.6   52.4   1.49   0.35
  -1.82   0.99   0.62   1.49  65.38  -0.57
   3.66    0.3   0.87   0.35  -0.57  52.74
 
CHillEpidote = tensor  
  rank: 4 (3 x 3 x 3 x 3)
 
  tensor in Voigt matrix representation:
 202.06  57.99  68.15   -1.4  -2.03    3.7
  57.99 169.42  58.99  -0.19   0.79   0.27
  68.15  58.99 198.53   -1.6   0.22   0.97
   -1.4  -0.19   -1.6  56.27   1.43   0.36
  -2.03   0.79   0.22   1.43  68.71  -0.62
    3.7   0.27   0.97   0.36  -0.62  56.61