mtex-toolbox / mtex

MTEX is a free Matlab toolbox for quantitative texture analysis. Homepage:
http://mtex-toolbox.github.io/
GNU General Public License v2.0
287 stars 185 forks source link

ODF Estimation from Pole Figure Data with triclinic crystal symmetry doesn't work #134

Closed jmbp closed 4 years ago

jmbp commented 8 years ago

Hello,

I'm trying to estimate the andesine ODF form pole figure data. Previously, I worked with other minerals and MTEX calculates very well the experimental PF with the command loadPoleFigure and the ODF with calcODF. But when I use this for andesine (triclinic symmetry) the c-routine begin to iterate and calculate an higher value than previous and finally appears a negative value (-1.#INDE+000).

This appears in the command windows:

------ MTEX -- PDF to ODF inversion ------------------
Call c-routine
initialize solver 
start iteration 
error: 1.4528E-001 8.1139E-002 -1.#INDE+000 1.#QNBE+000 -1.#INDE+000 1.#QNBE+000 -1.#INDE+000 1.#QNBE+000 -1.#INDE+000 1.#QNBE+000 -1.#INDE+000  
Finished PDF-ODF inversion. 
error: -1.#INDE+000 
alpha: -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000 -1.#INDE+000  
required time: 128s

odf_andesine = ODF (show methods, plot)
  crystal symmetry : 1, X||a*, Z||c
  specimen symmetry: 1

  Uniform portion:
    weight: 1

I show you my script:

% Specify Crystal and Specimen Symmetries
% crystal symmetry
CS = crystalSymmetry('1', [8.6196 13.536 7.5274], [93.2886,116.318,90.0946]*degree, 'X||a*', 'Z||c', 'mineral', 'Andesine', 'color', 'yellow');
% specimen symmetry
SS = specimenSymmetry('1');
% plotting convention
setMTEXpref('xAxisDirection','east');
setMTEXpref('zAxisDirection','outOfPlane');

% Specify File Names
% path to files
pname = 'I:\Prueba BEARTEX_MTEX S35A\MTEX';
% which files to be imported
fname = [pname '\Andesine_15.xpc'];
% Specify Miller Indice
h = { ...
  Miller(2,3,0,CS),...
  Miller(-3, 0, 1,CS),...
  Miller(1.999990e+00,           0,           1,CS),...
  Miller(1.999990e+00,          -1,           1,CS),...
  Miller(-3, 1, 1,CS),...
  Miller(-1.000010e+00,            3,            2,CS),...
  Miller(-3,-1, 1,CS),...
  Miller(-1.000000e-05,           -3,            2,CS),...
  Miller(-2.000010e+00,           -3,            2,CS),...
  Miller(1.999990e+00,           1,           1,CS),...
  Miller(9.999900e-01,          -4,           1,CS),...
  Miller(-3, 0, 2,CS),...
  Miller(0,5,0,CS),...
  Miller(9.999900e-01,           0,           2,CS),...
  Miller(1.999990e+00,          -2,           1,CS),...
  Miller(-3,-1, 2,CS),...
  Miller(9.999900e-01,          -1,           2,CS),...
  Miller(-2.000010e+00,            3,            2,CS),...
  Miller(-2,-4, 1,CS),...
  Miller(-3, 2, 1,CS),...
  Miller(-3, 1, 2,CS),...
  Miller(-2, 4, 1,CS),...
  Miller(-3,-2, 1,CS),...
  Miller(-1.000000e-05,            3,            2,CS),...
  Miller(9.999900e-01,           1,           2,CS),...
  Miller(-1.000010e+00,           -4,            2,CS),...
  Miller(-2, 4, 0,CS),...
  Miller(1.999990e+00,           2,           1,CS),...
  Miller(-1, 5, 0,CS),...
  Miller(2.999990e+00,           0,           0,CS),...
  Miller(9.999900e-01,           4,           1,CS),...
  Miller(0,-5, 1,CS),...
  Miller(9.999900e-01,          -2,           2,CS),...
  Miller(-1,-5, 1,CS),...
  Miller(-2.999990e+00,            1,            0,CS),...
  Miller(-3,-2, 2,CS),...
  Miller(1,5,0,CS),...
  Miller(2.999990e+00,           1,           0,CS),...
  Miller(2,4,0,CS),...
  Miller(-3, 2, 2,CS),...
  Miller(-1, 5, 1,CS),...
  Miller(-2.000010e+00,            0,            3,CS),...
  Miller(-1.000010e+00,            0,            3,CS),...
  Miller(-1.000000e-05,           -4,            2,CS),...
  Miller(1.999990e+00,          -3,           1,CS),...
  Miller(-2.000010e+00,           -1,            3,CS),...
  Miller(-1.000010e+00,           -1,            3,CS),...
  Miller(-1.000000e-05,            5,            1,CS),...
  Miller(-1.000010e+00,            4,            2,CS),...
  Miller(-2,-4, 2,CS),...
  Miller(9.999900e-01,           2,           2,CS),...
  Miller(-3, 2, 0,CS),...
  Miller(-3, 3, 1,CS),...
  Miller(-2.000010e+00,            1,            3,CS),...
  Miller(-3,-3, 1,CS),...
  Miller(-1.000010e+00,            1,            3,CS),...
  Miller(2.999990e+00,           2,           0,CS),...
  Miller(9.999900e-01,          -3,           2,CS),...
  Miller(-1.000010e+00,           -2,            3,CS),...
  Miller(-2.000010e+00,           -2,            3,CS),...
  Miller(1.999990e+00,           3,           1,CS),...
  Miller(-2.000010e+00,            4,            2,CS),...
  Miller(-3,-3, 2,CS),...
  Miller(9.999900e-01,          -5,           1,CS),...
  Miller(-1.000000e-05,            4,            2,CS),...
  Miller(-3, 3, 2,CS),...
  Miller(-2,-5, 1,CS),...
  Miller(-2.000010e+00,            2,            3,CS),...
  Miller(-2, 5, 1,CS),...
  Miller(-1.000010e+00,            2,            3,CS),...
  Miller(-3, 3, 0,CS),...
  Miller(-3.000010e+00,            0,            3,CS),...
  Miller(-1.000010e+00,           -5,            2,CS),...
  Miller(0,6,0,CS),...
  Miller(-2, 5, 0,CS),...
  Miller(-1.000000e-05,            0,            3,CS),...
  Miller(-3.000010e+00,           -1,            3,CS),...
  Miller(9.999900e-01,           3,           2,CS),...
  Miller(-1.000000e-05,           -1,            3,CS),...
  Miller(1.999990e+00,          -4,           1,CS),...
  Miller(-1.000010e+00,           -3,            3,CS),...
  Miller(9.999900e-01,           5,           1,CS),...
  Miller(-2.000010e+00,           -3,            3,CS),...
  Miller(-3.000010e+00,            1,            3,CS),...
  Miller(2.999990e+00,           3,           0,CS),...
  Miller(-3, 4, 1,CS),...
  Miller(-1.000000e-05,            1,            3,CS),...
  Miller(2,5,0,CS),...
  Miller(-1, 6, 0,CS),...
  Miller(-3,-4, 1,CS),...
  Miller(0,-6, 1,CS),...
  Miller(-1.000000e-05,           -5,            2,CS),...
  Miller(-1.000000e-05,           -2,            3,CS),...
  Miller(-3.000010e+00,           -2,            3,CS),...
  Miller(9.999900e-01,          -4,           2,CS),...
  Miller(-1,-6, 1,CS),...
  Miller(-2,-5, 2,CS),...
  Miller(1,6,0,CS),...
  Miller(-1.000010e+00,            5,            2,CS),...
  Miller(-4, 0, 2,CS),...
  };

%%
h_andesine= [Miller(1,0,0,CS),Miller(0,1,0,CS),Miller(0,0,1,CS)];
pf_andesine = loadPoleFigure(fname,h_andesine,CS,SS,'interface','beartex');
plot(pf_andesine)

%%
odf_andesine = calcODF(pf_andesine)
figure
plot(odf_andesine,'sections',6,'silent','sigma')

Obiously, the ODF plotted it's empty.

odf andesine mtex

Cheers,

Jose M. Benitez-Perez

kilir commented 8 years ago

Hi Jose, for me, plotting odf sections works for triclinic, e.g. plot(unimodalODF(orientation('Euler',[10 20 20; 10 10 10; 30 10 20]*degree,crystalSymmetry('1', [1 2 3], [80 70 90]*degree)),'halfwidth',10*degree),'sections',6,'silent','sigma') Did you check if you have any plotting issues? set(gcf,'renderer','zBuffer') might help! It's in the FAQ. Cheers, Rüdiger

ralfHielscher commented 8 years ago

Could you please post the pole figure plots?

jmbp commented 8 years ago

Hi all again,

MTEX works fine plotting odf sections, even triclinic symmetry. But it doesn´t calculate well the triclinic ODF from pole figure data, using the command calcODF. Rüdiger, your code works as well. But, where does your data come from? From EBSD, pole figure data...? I tried restarting the plot, but the problem still remains.

Cheers, Jose M. Benitez-Perez

kilir commented 8 years ago

Hi Jose, I was just wondering if it was a plotting problem - the empty plot looked sort of familiar, but that's obviously not the case - and I missed the NaN. Cheers, Rüdiger

ralfHielscher commented 8 years ago

Could you please post the raw pole figures?