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
290 stars 185 forks source link

different results using mirorientation volume function #445

Open ArneBoch opened 4 years ago

ArneBoch commented 4 years ago

Hello MTEX Team,

doing some investigations into misorientations and MDFs I got different results by volume calculations using volume with an vector of misorientations or volume of MDF calculated out of this vector - see below:

cs = crystalSymmetry('6/mmm',[1 1 4]); % fits nearly to the system I use mori = orientation.byAxisAngle(Miller(0, 0, 0, 1,cs,'UVTW'),30degree); ori = orientation.byEuler(0,0,0,cs); r_mori = inv(ori.rand(2000000,cs)).ori.rand(2000000,cs); r_mdf = calcMDF(r_mori); volume(r_mori,mori,25degree) volume(r_mdf,mori,25degree) ans = 0.0525 ans = 0.9993

First answer is ok I guess?

By the way to generate this random misorientation vector I could not use:

r_mori = mori.rand(200000) because it gives orientations but mori is mentioned as "misorentation" at Matlab Command Window?

I'm using Matlab 2017b and MTEX 5.2.8.

Thanks for help.

Arne

ralfHielscher commented 4 years ago

Hi Arne,

thank you very much for this bug report. The command volume(r_mdf,mori,25*degree) indeed gives a wrong result.

For your symmetry you can resolve the issue by changing in file mtex/geometry/@symmetry/fundamentalRegion.m the line

maxPhi1 = max(pi/2,maxPhi1/2);

into

maxPhi1 = maxPhi1/2;

Remark: the syntax you use to generate misorientations is not correct. You should do

r_mori = orientation.rand(10000,cs,cs)

Ralf.

ArneBoch commented 4 years ago

Hello Ralf,

thanks for the hints.

Two more questions relating to this:

"For your symmetry" means this change is only vaid for hexagonal lattice?

If I have a misorientation (comming out of measurements for instance), is there a function/script to calculate nice mapping representation of it (epitactical relation) like plane p1 onto p2 and direction d1 onto d2? It would be the inverse of the mapping definition of a orientation: mori = orientation.map(p1,p2,d1,d2,CS1,CS2).

Thanks for help.

Arne