Error in the calculation of the piezoelectric tensor

166 views
Skip to first unread message

anwar chaabani

unread,
Feb 14, 2014, 4:17:44 AM2/14/14
to mtex...@googlegroups.com
Hi, 
I have an ODF calculated from experimental results, (from pole figures). 
I want to calculate the piezoelectric tensor of BaTiO3 (P 4 mm) from the ODF. But I have this error in MTEX 3.5.0:
CS_Tensor = crystal symmetry (show methods, plot)
 
  mineral : Ba Ti O3     
  symmetry: 4/mmm (4/mmm)
  a, b, c : 4, 4, 4      
 
Warning: Tensor does not pose the right symmetry 
> In tensor.symmetrise at 32
  In tensor.tensor at 106
  In sanschgBaTiO3 at 60 

ep = tensor (show methods, plot)
  rank: 3 (3 x 3 x 3)
 
  tensor in compact matrix form: *10^-31
     0             0             0         92.52 +16.59i     0             0        
     0             0             0             0         92.52 +16.59i     0        
     0             0             0             0             0         92.52 +16.59i


Thanks,

David Mainprice

unread,
Feb 16, 2014, 4:20:49 PM2/16/14
to mtex...@googlegroups.com
Dear Anwar,

Normally the tensor is defined as follows using 

%**************************************************************************
%
% in picoCoulombs/Newton = pC/N  = 10-12 x C /N
%
% Symmetry Tetragonal Space Group P4mm No. 99, Point Group 4mm
% 3.9998  3.9998  4.0180 90.0000 90.0000 90.000
%
% d_ij in pC/N
%    .000    .000    .000    .000 564.000    .000
%    .000    .000    .000 564.000    .000    .000
% -33.400 -33.400  90.000    .000    .000    .000
%
% Symmetry Tetragonal SG 4mm M. Zgonik et al.1994, Phys. Rev. B 50, 5941
%
% Enter tensor as 3 by 6 matrix,Md line by line.
%
Md =[ [ .000    .000    .000    .000 564.000    .000];...
    [   .000    .000    .000 564.000    .000    .000];...
    [-33.400 -33.400  90.000    .000    .000    .000]]
% point group 4mm
CS_tensor = symmetry('4mm', [3.9998  3.9998  4.0180],...
[90.0000 90.0000 90.000]*degree, 'X||a', 'Z||c', 'mineral', 'Barium Titanate 298K')
%**************************************************************************
% Define tenor object in MTEX
% d_ij - 3rd rank Piezoelectric (stress) constant tensor
%**************************************************************************
%
d_Barium_Titanate = tensor(Md,CS_tensor,'rank',3,'propertyname',...
 'd piezoelectric strain tensor','unit','pC/N','DoubleConvention')


This gives

Md =

         0         0         0         0  564.0000         0
         0         0         0  564.0000         0         0
  -33.4000  -33.4000   90.0000         0         0         0

 
CS_tensor = crystal symmetry (show methods, plot)
 
  mineral : Barium Titanate 298K
  symmetry: 4mm (4/mmm)         
  a, b, c : 4, 4, 4             
 
Warning: Tensor does not pose the right symmetry 
> In tensor.symmetrise at 32
  In tensor.tensor at 106 
 
d_Barium_Titanate = tensor (show methods, plot)
  doubleconvention: true                         
  propertyname    : d piezoelectric strain tensor
  rank            : 3 (3 x 3 x 3)                
  doubleConvention: true                         
  mineral         : Barium Titanate 298K (4mm)   
 
  tensor in compact matrix form: *10^-16
      0      0      0      0      0      0
      0      0      0      0      0      0
 17.764 17.764      0      0      0      0

Which is clearly an error in MTEX for this symmetry and may be others, I tested for quartz this seems to work fine, no symmetry error and also outputs units which it does not do for '4mm'
Example 
%%
% According IRE 1949 Standard
% c14 -ve for Right-handed (RH) AND Left-handed (LH) alpha-quartz.
% d11,d14 and e11 -ve, e14 +ve Right-handed (RH) alpha-quartz.
% d11,d14 and e11 +ve, e14 -ve  Left-handed (LH) alpha-quartz.
%
% Current calculation here is for LH alpha-quartz.
%
% Enter Piezoelectric (strain) tensor (d_ij) as (3 by 6) matrix
% Md line by line in pC/N
% Ogi, H., Ohmori, T. Nakamura, N. and Hirao M. (2006) RH alpha-quartz
% LH alpha-quartz d11 = +1.9222  d14 = +0.1423
Md_LH =[[+1.9222   -1.9222    0     +0.1423    0         0    ];...
    [   0         0           0       0      -0.1423    -3.8444];...
    [   0         0           0       0        0         0    ]];
% crystal tensor symmetry
CS_Tensor = symmetry('32', [4.916 4.916 5.4054], 'X||a','Z||c', 'mineral', 'Quartz');

 

 

d_LH_quartz = tensor(Md_LH,CS_Tensor,'rank',3,'propertyname',...
 'LH piezoelectric strain tensor','unit','pC/N','DoubleConvention’)

d_LH_quartz = tensor (show methods, plot)
  doubleconvention: true                           
  propertyname    : LH piezoelectric strain tensor 
  unit            : pC/N                           
  rank            : 3 (3 x 3 x 3)                  
  doubleConvention: true                           
  mineral         : Quartz (32, X||a, Y||b*, Z||c*)
 
  tensor in compact matrix form:
  1.9222 -1.9222       0  0.1423       0       0
       0       0       0       0 -0.1423 -3.8444
       0       0       0       0       0       0

I think Ralf needs to look at this problem.

all the best David





--
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+u...@googlegroups.com.
Visit this group at http://groups.google.com/group/mtexmail.
For more options, visit https://groups.google.com/groups/opt_out.



anwar chaabani

unread,
Feb 17, 2014, 10:26:44 AM2/17/14
to mtex...@googlegroups.com
Dear David 

   first many many thanks for quick response, and I think Ralf has a solution to this error.
 
Thank you.

anwar chaabani

unread,
Feb 20, 2014, 11:08:21 AM2/20/14
to mtex...@googlegroups.com

Dear Ralf,

I try different ways to find a solution to this error, but no good results, can you help me to find a solution to this error.

Thank you.

Ralf Hielscher

unread,
Feb 21, 2014, 3:17:10 AM2/21/14
to mtex...@googlegroups.com
Dear Anwar Chaabani,

the point is that MTEX 3.5 does only support Laue groups as symmetries. As a consequence

CS_tensor = symmetry('4mm', [3.9998  3.9998  4.0180],...
[90.0000 90.0000 90.000]*degree, 'X||a', 'Z||c', 'mineral', 'Barium Titanate 298K')

defines a symmetry with a four fold rotational axes - which obviously conflicts with any piezoelectric tensor. The strange output you get comes now from the fact that MTEX checks the tensor whether it satisfies the symmetry of the corresponding Laue group 4/mmm - which is not the case. Then MTEX tries to correct for this and
symmetrises the tensor accordingly - this results in a tensor which is equal zero everywhere.

I can see here two workarounds. Reduce the symmetry to monocline, i.e.

CS_tensor = symmetry('2', [3.9998  3.9998  4.0180],...
[90.0000 90.0000 90.000]*degree, 'X||a', 'Z||c', 'mineral', 'Barium Titanate 298K')

another idea would be to use the option 'noCheck', i.e.

d_Barium_Titanate = tensor(Md,CS_tensor,'rank',3,'propertyName','d piezoelectric strain tensor',...
                   
'unit','pC/N','DoubleConvention','noCheck')

However, due to the above mentioned issue I have no clue about the correctness of the computed mean tensor.

The issue that only Laue groups are supported by MTEX will be resolved in MTEX 4.0 a first beta of which will be released very soon. In particular, MTEX 4.0 will be know about all 32 point groups and your definition of the tensor will work just fine (It works in the current developing version).

However, there is one issue I still do not fully understand. When estimating an ODF from pole figures (or equivalently from EBSD data) one can not distinguish between a crystal orientations and the same crystal orientation + inversion. Thus the symmetry of the recalculated ODF will be naturally the symmetry of your phase + inversion which gives you the Laue group (which is the very reason why MTEX so far supports only Laue groups). 

The only workaround that I can see for this issue is to make an additional assumption on the texture of the specimen that with an orientation the corresponding orientation + inversion is never part of the texture. I think this makes particularly sense,  if one has a very sharp texture since in this case it corresponds to the assumption that one has one modal orientation and not two - also one can not know from the experiment which one is the correct one.

I really would like to discuss this issue here as I'm currently at implementing this into MTEX 4.0. Further, I would be very happy if you could send me you pole figure data and some story around so that I can use it for testing and, if you agree, include it in the official MTEX documentation.


Ralf.

David Mainprice

unread,
Feb 21, 2014, 7:12:20 AM2/21/14
to mtex...@googlegroups.com
Well at least you can define the tensor

d_Barium_Titanate = tensor(Md,CS_tensor,'rank',3,'propertyName','d piezoelectric strain tensor',...
                    'unit','pC/N','DoubleConvention','noCheck')


CS_tensor = crystal symmetry (show methods, plot)
 
  mineral : Barium Titanate 298K
  symmetry: 4mm (4/mmm)         
  a, b, c : 4, 4, 4             
 
 
d_Barium_Titanate = tensor (show methods, plot)
  doubleconvention: true                         
  propertyName    : d piezoelectric strain tensor
  unit            : pC/N                         
  rank            : 3 (3 x 3 x 3)                
  doubleConvention: true                         
  mineral         : Barium Titanate 298K (4mm)   
 
  tensor in compact matrix form:
     0     0     0     0   564     0
     0     0     0   564     0     0
 -33.4 -33.4    90     0     0     0

all the best David


anwar chaabani

unread,
Feb 21, 2014, 7:59:42 AM2/21/14
to mtex...@googlegroups.com

Dear Ralf ,Dear David ,

 thank you for the quick responses .

Thank you very much.

Ralf Hielscher

unread,
Feb 23, 2014, 1:32:46 AM2/23/14
to mtex...@googlegroups.com
Dear Anwar Chaabani,

please do not forget to answer my questions. I really would like to understand this.

Ralf.
Reply all
Reply to author
Forward
0 new messages