-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchangelog.html
1408 lines (1403 loc) · 98.5 KB
/
changelog.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
<html xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>MTEX Changelog (DocHelp Toolbox)
</title>
<!-- DOCNAME: DocHelp Toolbox -->
<meta name="chunktype" content="refpage">
<!-- CHUNKNAME: changelog -->
<!-- HEADSTUFF: changelog -->
<!-- HEADSTUFF -->
<meta name="refentity" content="method:changelog">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta name="toctype" content="fcn">
<link rel="stylesheet" href="up.css"><script language="JavaScript" src="docscripts.js"></script></head>
<body><a name="top_of_page"></a><div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container"><a class="brand" href="/">MTEX Toolbox</a><ul class="nav">
<li><a href="/download.html">Downloads</a></li>
</ul>
<ul class="nav">
<li><a href="/documentation.html">Documentation</a></li>
</ul>
<ul class="nav">
<li><a href="/team.html">People</a></li>
</ul>
<ul class="nav">
<li><a href="/publications.html">Publications</a></li>
</ul>
<ul class="nav">
<li><a href="/support.html">Support</a></li>
</ul>
</div>
</div>
</div>
<div class="container">
<h1>MTEX Changelog</h1>
<div class="subheading"></div>
<h2>MTEX 5.2.0 9/2019<a name="1"> </a></h2>
<p><b>Speed Improvements</b></p>
<div>
<ul type="square">
<li>much faster visualization of the large EBSD maps if <a href="EBSD_gridify.html">gridify</a> is used
</li>
<li>faster Fourier transforms on the sphere and the orientation space</li>
<li>support for <a href="MOSEK">https://docs.mosek.com/9.0/toolbox/install-interface.html</a> as faster replacement for linprog from the Optimization Toolbox
</li>
</ul>
</div>
<p><b>Support for hexagonal EBSD grids</b></p>
<p>The function <a href="EBSD_gridify.html">gridify</a> now works also for EBSD data measured on a hexagonal grid. As a consequence denoising and GND computation for those data
is also on the way.
</p>
<p><b>Plastic Deformations</b></p>
<p>MTEX 5.2. introduces a bunch of new tensor classes to make modelling of plastic deformations more straight forward.</p>
<div>
<ul type="square">
<li><a href="velocityGradientTensor_index.html">Velocity Gradient Tensors</a></li>
<li><a href="strainRateTensor_index.html">strain rate tensor</a></li>
<li><a href="deformationGradientTensor_index.html">deformation gradient tensor</a></li>
<li><a href="spinTensor_index.html">spin tensor</a></li>
</ul>
</div>
<p>The relationships between those tensors are explained in the section <a href="PlasticDeformation.html">plastic deformations</a>.
</p>
<p><b>Spherical Bingham Distribution</b></p>
<p>Nativ support for spherical <a href="BinghamS2_index.html">Bingham distributions</a>, including the abbility to <a href="BinghamS2_fit.html">fit</a> them to directional distributions.
</p>
<p><b>Tensor Visualisation</b></p>
<p>Improved methods for the vizualisation of ellastic properties, see <a href="SeismicVelocitySingleCrystalDemo2d.html">Seismic demo</a></p>
<p><b>Improved Figure Layout</b></p>
<div>
<ul type="square">
<li>fix layout</li>
<li>plot at fixed positions</li>
</ul>
</div>
<p><b>Misc Changes</b></p>
<div>
<ul type="square">
<li>compute the volume of a crystal shape</li>
<li>label crystal faces in crystal shapes</li>
<li>new function <a href="std">orientation_std.html</a> for computing the standard deviation of orientations
</li>
<li>calcKearnsFactor</li>
<li>allow to index ebsd data and grains by id using {} brackets</li>
</ul>
</div><pre class="codeinput">ebsd{id}
grains{id}</pre><div>
<ul type="square">
<li>new options to scatter</li>
</ul>
</div><pre class="codeinput">scatter(v,<span class="string">'numbered'</span>) <span class="comment">% plot vectors with numbers</span>
scatter(v,<span class="string">'MarkerFaceColor'</span>,<span class="string">'none'</span>) <span class="comment">% plot vectors with colored empty marks</span></pre><h2>MTEX 5.1.0 04/2018<a name="2"> </a></h2>
<p><b>Dislocation systems</b></p>
<p>Starting with version 5.1 MTEX introduces a class representing dislocation systems. Dislocation systems may be lists of edge
or screw dislocations and are either defined by its burgers and line vectors
</p><pre class="codeinput">cs = crystalSymmetry(<span class="string">'432'</span>)
b = Miller(1,1,0,cs,<span class="string">'uvw'</span>)
l = Miller(1,-1,-2,cs,<span class="string">'uvw'</span>)
dS = dislocationSystem(b,l)</pre><p>by a family of slipsystems</p><pre class="codeinput">sS = slipSystem.fcc(cs)
dS = dislocationSystem(sS)</pre><p>or as the family of predefined dominant dislocation systems by</p><pre class="codeinput">dS = dislocationSystem.fcc(cs)</pre><p>More information how to calculate with dislocation systems can be found <a href="dislocationSystem_index.html">here</a>.
</p>
<p><b>Geometrically neccesary dislocations</b></p>
<p>The newly introduced dislocation systems play an important role when computing geometrically neccesary dislocations from EBSD
data. The workflow is illustrate the script <a href="GND_demo.html">GND_demo</a> and consists of the following steps:
</p>
<div>
<ol>
<li>define the dominant <a href="dislocationSystem_index.html">dislocation systems</a></li>
<li>transform the dislocation systems into specimen coordinates for each pixel of the EBSD map</li>
<li>compute the <a href="curvatureTensor_index.html">curvature tensor</a> for each pixel in the EBSD map
</li>
<li><a href="curvatureTensor.fitDislocationSystems.html">fit the dislocation systems</a> to the curvature tensors.
</li>
<li>compute the total energy in each pixel</li>
</ol>
</div>
<p><b>Tensor arithmetics</b></p>
<p><a href="tensor.dyad.html">dyad</a>, <a href="tensor.trace.html">trace</a>, <a href="tensor.det.html">det</a>, <a href="tensor.mean.html">mean</a>, <a href="tensor.diag.html">diag</a>, <a href="tensor.eye.html">eye</a>, <a href="tensor.sym.html">sym</a></p>
<p><b>Birefringence</b></p>
<p>MTEX 5.1 includes some basic methods to analyze and simulate optically isotropic materials. This includes the computation
of the optical axis, birefringence and spectral transmission. The new features are demonstrated in <a href="BirefringenceDemo.html">BirefringenceDemo</a>.
</p>
<p><b>Color Keys</b></p>
<p>In MTEX 5.1 the color keys used for coloring EBSD have been a bit reorganised.</p>
<div>
<ul type="square">
<li>seperate classes for directional color keys. So far these classes are <a href="HSVDirectionKey.html">HSVDirectionKey</a>, <a href="HKLDirectionKey.html">HKLDirectionKey</a>, <a href="TSLDirectionKey.html">TSLDirectionKey</a>. This has become neccesary as some orientation color keys depend directional color keys with different symmetry.
</li>
</ul>
</div>
<div>
<ul type="square">
<li>new color key <a href="axisAngleColorKey.html">axisAngleColorKey</a> that implements the coloring described in K. Thomsen, K. Mehnert, P. W. Trimby and A. Gholinia: Quaternion-based disorientation
coloring of orientation maps, Ultramicroscopy, 2017. In central idea is to colorise the misorientation axis with respect to
the specimen reference system.
</li>
</ul>
</div>
<div>
<ul type="square">
<li>The existing color keys have been renamed for better consistency. The new names are <a href="BungeColorKey.html">BungeColorKey</a>, <a href="ipfHSVKey.html">ipfHSVKey</a>, <a href="ipfHKLKey.html">ipfHKLKey</a>,<ipfTSLKey.html ipfTSLKey>, <a href="ipfSpotKey.html">ipfSpotKey</a>, <a href="spotColorKey.html">spotColorKey</a>, <a href="PatalaColorKey.html">PatalaColorKey</a></li>
</ul>
</div>
<p><b>Spherical functions</b></p>
<div>
<ul type="square">
<li>new function <a href="S2Fun.discreteSample.html">discreteSample</a> to compute random samples from spherical density functions
</li>
<li>new option to <a href="S2FunHarmonic.symmetrise.html">symmetrise</a> to symmetrise a spherical function with respect to an axis
</li>
</ul>
</div>
<p><b>Misc</b></p>
<div>
<ul type="square">
<li>new fuction <a href="grain2d.fitEllipse.html">fitEllipse</a> to assign ellipses to grains
</li>
<li>the functions <a href="tensor.symmetrise.html">tensor/symmetrise</a> and <a href="S2FunHarmonic.symmetrise.html">S2Fun/symmetrise</a> do support symmetrisation with respect to a certain axis.
</li>
<li>the function <a href="quaternion.export.html">export</a> allows to export arbitrary additional properties together with the Euler angles, e.g. the half axes and orientation of the
grain ellipses
</li>
<li>the function <a href="loadOrientation_generic.html">loadOrientation_generic</a> allows to import arbitrary additional properties together with the orientations, e.g., weights
</li>
<li>new option <tt>logarithmic</tt></li>
<li>new function <a href="ODF.gradient.html">ODF/gradient</a> to compute the gradient of and ODF at a certain orientation
</li>
<li>explicitely set the number of rows and columns in a MTEXFigure plot with</li>
<li>EBSD hdf5 interface works now for Bruker data as well</li>
</ul>
</div>
<h2>MTEX 5.0.0 03/2018<a name="3"> </a></h2>
<p><b>Replace all executables by two mex files</b></p>
<p>In MTEX many functionalities are based on the non equispaced fast Fourier transform (<a href="http://www.nfft.org">NFFT</a>). Until now this dependency was kept under the hood, or more precisely, hidden in external executable files which often caused
troubles on MAC systems. Starting with MTEX 5.0. all the executables have been replaced by two mex files provided by the NFFT
package. This change (hopefully) comes with the following advantages
</p>
<div>
<ul type="square">
<li>better compatibility with MAC systems, no SIP disabled required</li>
<li>increased performance, e.g., due to multi core support</li>
<li>better maintainability, as all MTEX code is now Matlab code</li>
<li>the pole figure to ODF inversion algorithm is now entirely implemented in Matlab making it simple to tweak it or add more
sophisticated inversion algorithms
</li>
</ul>
</div>
<p><b>Spherical functions</b></p>
<p>Many functions in MTEX compute directional dependent properties, e.g. pole figures, inverse pole figures, wave velocities,
density distribution of misorientation axis or boundary normals. Until now those functions took as an input an of vector of
directions and gave as an output a corresponding vector of function values, e.g. the command
</p><pre class="codeinput">pfi = calcPDF(odf,Miller(1,0,0,odf.CS),r)</pre><p>returns for a list of specimen directions <tt>r</tt> the corresponding list of pole figure intensities <tt>pfi</tt> for the ODF <tt>odf</tt>. Starting with MTEX 5.0 it is possible to ommit the list of specimen directions <tt>r</tt> or replace it by an empty list <tt>[]</tt>. In this case the command
</p><pre class="codeinput">pdf = calcPDF(odf,Miller(1,0,0,odf.CS))</pre><p>returns a <a href="S2FunHarmonic_index.html">spherical function</a> <tt>pdf</tt> also called pole density function. One can evaluate this spherical function using the command <a href="S2FunHarmonic.eval.html">eval</a> at the list of specimen directions <tt>r</tt> to obtain the pole figure intensities
</p><pre class="codeinput">pfi = pdf.eval(r)</pre><p>However, there are many more operations that can be performed on spherical functions:</p><pre class="codeinput"><span class="comment">% compute with spherical functions as with ordinary numbers</span>
pdf3 = 5 * pdf1 + 3 * pdf2
pdf = max(pdf,0) <span class="comment">% repace of negative entries by 0</span>
pdf = abs(pdf) <span class="comment">% take the absolute value</span>
sum(pdf) <span class="comment">% the integral of the pole figure</span>
sum(pdf.^2) <span class="comment">% the integral of the pole figure squares - also called pole figure index</span></pre><pre class="codeinput"><span class="comment">% plotting</span>
plot(pdf)
plot3(pdf) <span class="comment">% plot in 3d</span></pre><pre class="codeinput"><span class="comment">% detect maximum value</span>
[value,pos] = max(pdf)</pre><pre class="codeinput"><span class="comment">% compute the eigen values and eigen vectors</span>
[e,v] = eig(pdf)</pre><p>For a complete list of functions read <a href="S2FunHarmonic_index.html">here</a>.
</p>
<p><b>Symmetry aware spherical functions</b></p>
<p>Since most of the directional dependent properties obey additional symmetry properties the class <a href="S2FunHarmonic_index.html">S2FunHarmonic</a> has been extended to symmetry in the <a href="S2FunHarmonicSym_index.html">S2FunHarmonicSym</a> class.
</p>
<p><b>Multivariate spherical functions, vector fields and spherical axis fields</b></p>
<p>In some cases it is useful that a spherical function gives not only one value for a certain direction but several values.
This is equivalent to have concatenate several univariate spherical function to one multivariate function. This can be accomplished
by
</p><pre class="codeinput">S2Fmulti = [S2F1,S2F2,S2F3]</pre><p>which gives a spherical function with 3 values per direction. More information how to work multivariate functions can be found
<a href="S2FunMulti.html">here</a>.
</p>
<p>If we interpret the 3 values of <tt>S2Fmulti</tt> as <img src="changelog_eq12428413953531653171.png"> , <img src="changelog_eq08830444604280721118.png"> , and, <img src="changelog_eq17119888974628994297.png"> coordinate of a 3 dimensional vector, the function <tt>S2Fmulti</tt> can essentially be seen as a spherical vector field associating to each direction a three dimensional vector. The most important
example of such a vector field is the gradient of a spherical function:
</p><pre class="codeinput">g = S2F1.grad</pre><p>The resulting variable <tt>g</tt> is of type <a href="S2VectorField_index.html">S2VectorField</a>. A complete list of functions available for vector fields can be found <a href="S2VectorField_index.html">here</a>.
</p>
<p>Another example for vector fields are polarisation directions <tt>pp</tt>, <tt>ps1</tt>, <tt>ps2</tt> as computed by
</p><pre class="codeinput">[vp,vs1,vs2,pp,ps1,ps2] = velocity(C)</pre><p>The main difference is, that polarisation directions are antipodal, i.e. one can not distinguish between the polarisation
direction <tt>d</tt> and <tt>-d</tt>. In MTEX we call vector fields with antipodal values are represented by variables of type <a href="S2AxisFieldHarmonic_index.html">AxisField</a>.
</p>
<p><b>Scalar tensor properties are returned as spherical functions</b></p>
<p>Any scalar or vectorial property of a tensor is not returned as a spherical function or spherical vector field. Examples are
the velocity properties mentioned above, Youngs modulus, shear modulus, Poisson ration etc. In particular, plotting those
directional dependend quantities is as simple as
</p><pre class="codeinput">plot(C.YoungsModulus)</pre><p>This makes the old syntax</p><pre class="codeinput">plot(C,<span class="string">'plotType'</span>,<span class="string">'YoungsModulus'</span>)</pre><p>obsolete. It is not supported anymore.</p>
<p><b>Crystal shapes</b></p>
<p>MTEX 5.0 introduces a new class <a href="crystalShape_index.html">crystalShape</a>. This class allows to plot 3-dimensional representations of crystals on top of EBSD maps, pole figures and ODF sections.
The syntax is as follows
</p><pre class="codeinput"><span class="comment">% define the crystal symmetry</span>
cs = loadCIF(<span class="string">'quartz'</span>);</pre><pre class="codeinput"><span class="comment">% define the faces of the crystal</span>
m = Miller({1,0,-1,0},cs); <span class="comment">% hexagonal prism</span>
r = Miller({1,0,-1,1},cs); <span class="comment">% positive rhomboedron, usally bigger then z</span>
z = Miller({0,1,-1,1},cs); <span class="comment">% negative rhomboedron</span>
s2 = Miller({1,1,-2,1},cs); <span class="comment">% right tridiagonal bipyramid</span>
x2 = Miller({5,1,-6,1},cs); <span class="comment">% right positive Trapezohedron</span>
N = [m,r,z,s2,x2];</pre><pre class="codeinput"><span class="comment">% define the crystal shape</span>
habitus = 1.2; <span class="comment">% determines the overal shape</span>
extension = [1,1.2,1]; <span class="comment">% determines the extension of the crystal in x,y,z direction</span>
cS = crystalShape(N,habitus,extension);</pre><pre class="codeinput">plot(cS)
plot(x,y,cS)
plot(grains,cS)
plot(ebsd,cS)
plotPDF(ori,ori*cS)</pre><p><b>ODF component analysis</b></p>
<p>MTEX 5.0 allows for decomposing ODF into components using the command <a href="ODF.calcComponents.html">calcComponents</a>. In its simplest form
</p><pre class="codeinput">[mods,weights] = calcComponents(odf)</pre><p>returns a list of modal orientaions <tt>mods</tt> and a list of weights which sum up to one. A more advanced call is
</p><pre class="codeinput">[modes, weights,centerId] = calcComponents(odf,<span class="string">'seed'</span>,oriList)</pre><p>which returns in centerId also for each orientation from <tt>oriList</tt> to which component it belongs.
</p>
<p><b>Clustering of orientations</b></p>
<p>The ODF component analysis is used as the new default algorithm in <a href="orientation.calcCluster.html">calcCluster</a> for orientations. The idea is to compute an ODF out of the orientations and call <a href="ODF.calcComponents.html">calcComponents</a> with
</p><pre class="codeinput">[center,~,centerId] = calcComponents(odf,<span class="string">'seed'</span>,ori)</pre><p>Then <tt>center</tt> are the clusters center and <tt>centerId</tt> gives for each orientation to which cluster it belongs. Substantional in this method is the choise of the kernel halfwidth
used for ODF computation. This can be adjusted by
</p><pre class="codeinput">[c,center] = calcCluster(ori,<span class="string">'halfwidth'</span>,2.5*degree)</pre><p><b>New tensor classes</b></p>
<p>With MTEX 5.0 we start introducing specific tensor classes. So far we included the following classes</p>
<div>
<ul type="square">
<li><a href="stiffnessTensor_index.html">stiffnessTensor</a></li>
<li><a href="complianceTensor_index.html">complianceTensor</a></li>
<li><a href="strainTensor_index.html">strainTensor</a></li>
<li><a href="stressTensor_index.html">stressTensor</a></li>
<li><a href="ChristoffelTensor_index.html">ChristoffelTensor</a></li>
</ul>
</div>
<p>more tensors are supposed to be included in the future. The central advantage is that tensor specific behaviour and functions
can now better be implemented and documented, e.g., that the inverse of the compliance tensor is the stiffness tensor and
vice versa. For user the important change is that e.g. the stiffness tensor is now defined by
</p><pre class="codeinput">C = stiffnessTensor(M,cs)</pre><p>instead of the depreciated syntax</p><pre class="codeinput">C = tensor(M,cs,<span class="string">'name'</span>,<span class="string">'ellastic stiffness'</span>,<span class="string">'unit'</span>,<span class="string">'GPA'</span>)</pre><p><b>Improved spherical plotting</b></p>
<p>In MTEX 4.X it was not possible to display the upper and lower hemisphere in pole figure plots, inverse pole figure plots
or ODF section plots. This was a server restriction as for certain symmetries both hemispheres do not have to coincide. In
MTEX 5.0 this restriction has been overcome. MTEX automatically detects whether the upper and lower hemisphere are symmetrically
equivalent and decides whether both hemispheres needs to be plotted. As in the previous version of MTEX this can be controlled
by the options <tt>upper</tt>, <tt>lower</tt> and <tt>complete</tt>.
</p>
<p>As a consequence the behaviour of MTEX figures have changed slightly. By default MTEX now always plots into the last axis.
In order to annotate orintations or directions to all axes in a figure use the new option <tt>add2all</tt>.
</p><pre>plotIPDF(SantaFe,[xvector,yvector+zvector])
[~,ori] = max(SantaFe)
plot(ori,'add2all')</pre><p>We also introduced two new functions <a href="S2Fun/plotSection.html">plotSection</a> and <a href="S2Fun/quiverSection.html">quiverSection</a> to visualize spherical functions restricted to a plane. As an exaple one can now plot the slowness surfaceses of wave velocities
in the plane perpendicular to Y with
</p><pre class="codeinput">plotSection(1./vp,vector3d.Y)</pre><p>see <a href="ElasticityTensor.html">here</a> for more information.
</p>
<p><b>Other new functions</b></p>
<div>
<ul type="square">
<li><a href="ODF.grad.html">odf.grad</a> computes the gradient of an ODF at some orientation
</li>
<li><a href="grain2d.hist.html">grain2d.hist</a> can now plot histogram of arbitrary properties
</li>
<li><a href="ODF.fibreVolume.html">ODF.fibreVolume</a> works also for specimen symmetry
</li>
<li>allow to change the length of the scaleBar in EBSD plots</li>
</ul>
</div>
<h2>MTEX 4.5.2 11/2017<a name="4"> </a></h2>
<p>This is mainly a bug fix release</p>
<div>
<ul type="square">
<li>some more functions get tab completetion for input arguments</li>
<li>the option 'MarkerSize' can also be a vector to allow for varying Markersize</li>
<li>new option 'noSymmetry' for plotPDF and plotSection</li>
</ul>
</div>
<p><b>orientation relation ships</b></p>
<div>
<ul type="square">
<li>new functions for computing variants and parents for a orientation relation ship *</li>
<li>new predefined orientation relation ship</li>
</ul>
</div><pre class="codeinput">gT = GreningerTrojano(csAlpha,csGamma)
ori_childs = ori_parent * inv(gT.variants)
ori_parents = ori_child * gT.parents</pre><h2>MTEX 4.5.1 08/2017<a name="5"> </a></h2>
<p>This is mainly a bug fix release</p>
<div>
<ul type="square">
<li>some functions get tab completetion for input arguments</li>
<li>allow different colormaps in one figure</li>
<li>updated interfaces</li>
<li>added Levi Civita permutation tensor</li>
<li>improved round2Miller</li>
<li>grains.boundary('phase2','phase1') rearranges the misorientation to be from phase2 to phase 1</li>
</ul>
</div>
<h2>MTEX 4.5 03/2017<a name="6"> </a></h2>
<p><b>3d orientation plots</b></p>
<p>MTEX 4.5 supports plotting of orientations, fibres, and ODFs in 3d in various projections like</p>
<div>
<ul type="square">
<li>Bunge Euler angles</li>
<li>Rodrigues Frank space</li>
<li>axis angles space</li>
</ul>
</div>
<p><b>Misorientations</b></p>
<div>
<ul type="square">
<li>MTEX introduces <a href="orientation.round2Miller.html">round2Miller</a> which determines to an arbitrary misorientation <tt>mori</tt> two pairs of lower order Miller indeces such that which are aligned by <tt>mori</tt></li>
</ul>
</div>
<div>
<ul type="square">
<li>MTEX includes now some of the important misorientation relationsships like</li>
</ul>
</div><pre class="codeinput">orientation.Bain(cs)
orientation.KurdjumovSachs(cs)
orientation.NishiyamaWassermann(cs)
orientation.Pitch(cs)</pre><p><b>Grain Reconstruction</b></p>
<p>New option to handle non convex other shapes of EBSD data sets</p><pre class="codeinput">calcGrains(ebsd,<span class="string">'boundary'</span>,<span class="string">'tight'</span>)</pre><div>
<ul type="square">
<li>Grain boundary indexing* The commands gB('phase1','phase2').misorientation returns now always a misorientation from phase1
to phase2
</li>
</ul>
</div>
<p><b>Tensors</b></p>
<p>New functions <a href="tensor.diag.html">diag</a>, <a href="tensor.trace.html">trace</a>,
</p>
<p><b>EBSD</b></p>
<p>Rotating, flipping of EBSD data is now done with respect to the center of the map. Previously all these opertions where done
relatively to the point (0,0). Use
</p><pre class="codeinput">rotate(ebsd,180*degree,<span class="string">'center'</span>,[0,0])</pre><p>to get back the behavior of previous versions.</p>
<p><b>Colorbar</b></p>
<p><tt>MTEXColorbar</tt> allows now to have a title next to it. Use
</p><pre class="codeinput">mtexColorbar(<span class="string">'Title'</span>,<span class="string">'this is a title'</span>)</pre><p><b>Bug Fix</b> This release contains several important bug fixes compare to MTEX 4.4.
</p>
<h2>MTEX 4.4 01/2017<a name="7"> </a></h2>
<p><b>Slip Systems</b></p>
<p>MTEX 4.4 introduces support for <a href="SlipSystems.html">slip systems</a>. Slip systems are defined by a plane normal and a slip direction
</p><pre class="codeinput">sSFCC = slipSystem(Miller(0,1,-1,cs,<span class="string">'uvw'</span>),Miller(1,1,1,cs,<span class="string">'hkl'</span>));</pre><p>Slip systems are instrumental for computating the following properties</p>
<div>
<ul type="square">
<li><a href="slipSystem.SchmidFactor.html">Schmid factor</a></li>
<li><a href="TaylorModel.html">Taylor factor</a></li>
<li><a href="StrainAnalysis.html">Strain transmission through grain boundaries</a></li>
</ul>
</div>
<p><b>Fibres</b></p>
<p>MTEX 4.4 adds support for fibres in orientation space. As an example the alpha fibre in cubic materials can be defined in
the following ways
</p>
<div>
<ul type="square">
<li>as a predefined fibre</li>
</ul>
</div><pre class="codeinput">cs = crystalSymmetry(<span class="string">'m-3m'</span>)
f = fibre.alpha(cs)</pre><div>
<ul type="square">
<li>by a pair of directions</li>
</ul>
</div><pre class="codeinput">f = fibre(Miller(1,0,0,cs),vector3d.X)</pre><div>
<ul type="square">
<li>by two orientations</li>
</ul>
</div><pre class="codeinput">ori1 = orientation(<span class="string">'Miller'</span>,[0 0 1],[1 1 0],cs);
ori2 = orientation(<span class="string">'Miller'</span>,[1 1 1],[1 1 0],cs);</pre><pre class="codeinput">f = fibre(ori1,ori2)</pre><div>
<ul type="square">
<li>by a list of orientations</li>
</ul>
</div><pre class="codeinput">f = fibre.fit([ori1,ori2,mean(ori1,ori2)])</pre><p>All commands that took a pair of directions to specify a fibre, e.g., <a href="fibreODF.html">fibreODF</a>, <a href="ODF.fibreVolume.html">fibreVolume</a>, <a href="ODF.plotFibre.html">plotFibre</a> have been rewritten to accept a fibre as a single input argument. I.e. a fibre ODF is now defined by
</p><pre class="codeinput">odf = fibreODF(fibre.alpha(cs))</pre><p>Up to now the following functions are implemented for fibres</p>
<div>
<ul type="square">
<li>plot to Rodrigues space, Euler space, pole figures, inverse pole figures</li>
</ul>
</div><pre> oR = fundamentalRegion(cs,cs)
f = fibre(oR.V(1),oR.V(2))
plot(oR)
hold on
plot(fibre,'color','r','linewidth',2)
hold off</pre><div>
<ul type="square">
<li>compute the angle between orientation and fibre</li>
</ul>
</div><pre class="codeinput">angle(f,ori)</pre><p><b>Ignore Symmetry</b></p>
<p>Many functions support now the flag <tt>noSymmetry</tt>. Among them are <tt>angle</tt>, <tt>axis</tt>, <tt>dot</tt>, <tt>cunion</tt>.
</p>
<p><b>Clustering of orientations</b></p>
<p>The new command <a href="orientation.cluster.html">cluster</a> allows to cluster a given set of orientations into a given number of clusters.
</p><pre class="codeinput"><span class="comment">% generate orientation clustered around 5 centers</span>
cs = crystalSymmetry(<span class="string">'m-3m'</span>);
center = orientation.rand(5,cs);
odf = unimodalODF(center,<span class="string">'halfwidth'</span>,5*degree)
ori = odf.calcOrientations(3000);</pre><pre class="codeinput"><span class="comment">% find the clusters and its centers</span>
[c,centerRec] = cluster(ori,<span class="string">'numCluster'</span>,5);</pre><pre class="codeinput"><span class="comment">% visualize result</span>
oR = fundamentalRegion(cs);
plot(oR)</pre><pre class="codeinput">hold <span class="string">on</span>
plot(ori.project2FundamentalRegion,c)
caxis([1,5])
plot(center.project2FundamentalRegion,<span class="string">'MarkerSize'</span>,10,<span class="string">'MarkerFaceColor'</span>,<span class="string">'k'</span>,<span class="string">'MarkerEdgeColor'</span>,<span class="string">'k'</span>)
plot(centerRec.project2FundamentalRegion,<span class="string">'MarkerSize'</span>,10,<span class="string">'MarkerFaceColor'</span>,<span class="string">'r'</span>,<span class="string">'MarkerEdgeColor'</span>,<span class="string">'k'</span>)
hold <span class="string">off</span></pre><h2>MTEX 4.3.2 07/2016<a name="8"> </a></h2>
<p><b>Alignment of Miller plots</b></p>
<p>You can now specify the alignment of the crystal a-axis or b-axis in Miller plots by</p><pre class="codeinput">plota2north, plota2east, plota2south, plota2west
plotb2north, plotb2east, plotb2south, plotb2west</pre><p>This might also be specify in <a href="matlab:edit">mtex_settings.m mtex_settings</a>.
</p>
<h2>MTEX 4.3 - 03/2016<a name="9"> </a></h2>
<p><b>Alignment of Miller plots</b></p>
<p>Starting with MTEX 4.3 plots with respect to the crystal coordinate system, i.e., inverse pole figure plots, misorientation
axis plot, ipf keys, are always aligned such that the b-axis points towards east. This follows the convention given in the
International Table of Crystallography. The alignment can be adjusted using the option <tt>xAxisAlignment</tt></p><pre class="codeinput">plot(Miller(1,0,0,cs),<span class="string">'xAxisAlignment'</span>,30*degree)</pre><p><b>Plotting vector fields at grain centers or grain boundaries</b></p>
<p>There are three new commands</p>
<div>
<ul type="square">
<li><a href="EBSD.quiver.html">quiver(ebsd,dir)</a></li>
<li><a href="grain2d.quiver.html">quiver(grains,dir)</a></li>
<li><a href="grainBoundary.quiver.html">quiver(grains.boundary,dir)</a></li>
</ul>
</div>
<p>that allow visualizing directions for EBSD data, grains and at grain boundaries. The input argument <tt>dir</tt> should be a list of <tt>vector3d</tt> and may represent e.g. slip directions, polarization direction, etc.
</p>
<p><b>EBSD data in raster format</b></p>
<p>Until MTEX 4.2 EBSD data have been always considered as a one-dimensional list of data, i.e., the often present structure
of a regular grid was completely ignored. Starting with MTEX 4.3 EBSD data can be converted in a regular grid by
</p><pre class="codeinput">ebsd = ebsd.gridify</pre><p>Missing data are represented as NaN in the regular representation. Gridified EBSD data may be addressed analogously like matrixes,
i.e.,
</p><pre class="codeinput">ebsd(100,200)</pre><p>will give pixel 100 in the y-direction and 200 in the x-direction. Analogously.</p><pre class="codeinput">ebsd(50:100,:)</pre><p>will give the stripe if pixels with y coordinate between 50 and 100.</p>
<p><b>Orientation gradients and GND</b></p>
<p>Gridified EBSD data allows also to compute orientation gradients by</p><pre class="codeinput">ebsd.gradientX
ebsd.gradientY</pre><p>as well as an estimate of the geometrically necessary dislocation density (GND) using the command <a href="EBSDSquare.calcGND.html">calcGND</a></p><pre class="codeinput">ebsd.calcGND</pre><p><b>Auxilary new functionality</b></p>
<div>
<ul type="square">
<li>grain2d.calcParis - Percentile Average Relative Indented Surface</li>
<li>tensor.diag</li>
<li><a href="EBSD.reduce.html">reduce</a> works now also for EBSD data on Hex grids
</li>
</ul>
</div>
<h2>MTEX 4.2 - 11/2015<a name="10"> </a></h2>
<p>MTEX 4.2 introduces basic functionality for triple junction analysis in grain maps.</p>
<p><b>Triple points</b></p>
<p>Triple points are automatically computed during grain reconstruction and can be accessed by</p><pre class="codeinput">grains.triplePoints
grains.boundary.triplePoints</pre><p>More details on how to work with triple points can be found <a href="TriplePoints.html">here</a>.
</p>
<p><b>large EBSD data sets</b></p>
<p>Analyzing large EBSD data sets may be quite annoying due to memory consumption and slow plotting. As a work around MTEX includes
a new function <a href="EBSD.reduce.html">reduce</a> which allows reducing the data set to each n-th pixel, i.e.,
</p><pre class="codeinput">ebsd_small = reduce(ebsd,2)</pre><p>contains only 25 percent of the data of the original data set. This functionality is assumed to be used for experimenting
around with the data set and setting up a proper analysis script. The final analysis should, if possible, be done with the
entire data set.
</p>
<p><b>New option to ignore symmetry</b></p>
<p>When computing the angle between crystal directions, the misorientation angle between orientations and the misorientation
axis symmetry can be ignored with the flag <tt>noSymmetry</tt></p><pre class="codeinput">angle(Miller(1,0,0,cs),Miller(0,1,0,cs),<span class="string">'noSymmetry'</span>)
angle(mori,<span class="string">'noSymmetry'</span>)
axis(mori,<span class="string">'noSymmetry'</span>)</pre><p><b>Axis distributions in specimen coordinates</b></p>
<p>In order to plot axis distributions in specimen coordinates, you can now do</p><pre class="codeinput">[ori1,ori2] = calcMisorientation(ebsd(<span class="string">'phaseName'</span>))
plotAxisDistribution(ori1,ori2,<span class="string">'contourf'</span>)</pre><p>or</p><pre class="codeinput">ori = ebsd(grains.boundary(<span class="string">'indexed'</span>).ebsdId).orientations
plotAxisDistribution(ori(:,1),ori(:,2),<span class="string">'contourf'</span>)</pre><p><b>New option to work around Matlab opengl bug</b></p>
<p>In <a href="matlab:edit">mtex_settings.m mtex_settings</a> there is a new option that may help to work around the Matlab opengl bug. Switching it of may give nicer graphics.
</p><pre class="codeinput">setMTEXpref(<span class="string">'openglBug'</span>,true)</pre><p><b>CSL misorientations</b></p>
<p>The function <a href="CSL.html">CSL</a> requires now as a mandatory argument the crystal symmetry of the phase, i.e.
</p><pre class="codeinput">CSL(3,crystalSymmetry(<span class="string">'m-3m'</span>))</pre><p><b>Grain boundaries</b></p>
<p>Grain boundaries segments have a new option <tt>midPoint</tt> which may be used for attaching a vector displaying the misorientation axis or some other direction.
</p>
<p><b>More ODF sections</b></p>
<div>
<ul type="square">
<li>phi1</li>
<li>Phi</li>
<li>gamma</li>
<li>omega</li>
</ul>
</div>
<p>Along with the old syntax, there is now a new syntax that allows for more fine control of the ODF sections.</p><pre class="codeinput">oS = phi2Sections(odf.CS,odf.SS)
oS.phi2 = [ 10*degree, 30*degree, 90*degree ];</pre><pre class="codeinput">plot(odf,oS)</pre><p><b>Ordering of crystal symmetries</b></p>
<p>One can now check whether a crystal symmetry <tt>cs1</tt> is a subgroup of crystal symmetry <tt>cs2</tt> by
</p><pre class="codeinput">cs1 <= cs2</pre><p>Further, the largest proper subgroup of some crystal symmetry <tt>cs</tt> is now accessible by
</p><pre>cs.properSubGroup</pre><h2>MTEX 4.1 - 09/2015<a name="11"> </a></h2>
<p>MTEX 4.1 introduces new possibilities to the analysis of misorientations. For the first time, it covers all geometric aspects
of misorientations between arbitrary crystal symmetries. Furthermore, MTEX 4.1 introduces filters to smooth EBSD data.
</p>
<p><b>Smoothing of EBSD Data</b></p>
<p>Smoothing of EBSD data might be necessary if the orientation data are corrupted by noise which influences the estimation of
orientation dependent properties like KAM or GND. The general syntax for smoothing EBSD data is
</p><pre class="codeinput">ebsd = smooth(ebsd)</pre><p>This applies the spline filter to the orientation data. Beside the spline filter, many other filters are available. A general
discussion on this topic can be found <a href="EBSDSmoothing.html">here</a>. To make use of a different than the dafault filter use the syntax
</p><pre class="codeinput">F = medianFilter
F.numNeighbours = 2 <span class="comment">% this way options for the filter can be set</span>
ebsd = smooth(ebsd,F)</pre><p>The command smooth can also be used to fill not indexed measurement points. This behavior is enabled by the option <tt>fill</tt></p><pre class="codeinput">ebsd = smooth(ebsd,F,<span class="string">'fill'</span>)</pre><p><b>Support for antipodal symmetry for misorientations</b></p>
<p>When working with boundary misorientations between the same phase one can not distinguish between a misorientation <tt>mori</tt> and its inverse |inv(mori). Starting with MTEX 4.1 this symmetry is supported for misorientations and misorientation distribution
functions.
</p><pre class="codeinput">mori = inv(ori1) * ori2;
mori.antipodal = true;</pre><pre class="codeinput">mdf = calcMDF(odf1,odf2,<span class="string">'antipodal'</span>)</pre><p>Antipodal symmetry effects the asymmetric region in orientation space as described below, as well as the distance between
misorientations. Boundary misorientations between the same phase have set the flag <tt>antipodal</tt> by default.
</p>
<p><b>Asymmetric regions in orientation space</b></p>
<p>MTEX 4.1 has now full support of asymmetric regions in orientation space. For any combination of crystal symmetries they can
be defined by
</p><pre class="codeinput">oR = fundamentalRegion(cs1,cs2)</pre><p>and visualized by</p><pre class="codeinput">plot(oR)</pre><p>One can check, whether an orientation is within the fundamental region by</p><pre class="codeinput">oR.checkInside(ori)</pre><p>similarly as for a sphericalRegion. The fundamental region with antipodal symmetry is defined by.</p><pre class="codeinput">oR = fundamentalRegion(cs1,cs2,<span class="string">'antipodal'</span>)</pre><p>For a fixed rotational angle <tt>omega</tt>, the intersection of the fundamental region with the sphere with radius omega gives the fundamental sector for the corresponding
rotational axes. The axis sector can be computed by
</p><pre class="codeinput">sR = oR.axisSector(omega)</pre><p><b>Axis and angle distributions</b></p>
<p>Thanks to the implementation of the asymmetric region <tt>plotAxisDistribution</tt> and <tt>plotAngleDistribution</tt> works in MTEX 4.1 for any combination of crystal symmetries.
</p>
<p>The following syntax is obsolete</p><pre class="codeinput">plotAxisDistribution(grains.boundary(<span class="string">'phase1'</span>,<span class="string">'phase2'</span>))
plotAngleDistribution(grains.boundary(<span class="string">'phase1'</span>,<span class="string">'phase2'</span>))
plotAngleDistribution(ebsd)</pre><p>As replacement use the more verbose syntax</p><pre class="codeinput">plotAxisDistribution(grains.boundary(<span class="string">'phase1'</span>,<span class="string">'phase2'</span>).misorientation)
plotAngleDistribution(grains.boundary(<span class="string">'phase1'</span>,<span class="string">'phase2'</span>).misorientation)</pre><pre class="codeinput">mori = calcMisorientation(ebsd(<span class="string">'phase1'</span>),ebsd(<span class="string">'phase2'</span>))
plotAngleDistribution(mori)
plotAxisDistribution(mori)</pre><p><b>Rotational axis in specimen coordinates</b></p>
<p>It is now possible to compute the misorientation axis between two orientations in specimen coordinate system. This is done
by
</p><pre class="codeinput">axis(ori1,ori2)</pre><p>To do so with random misorientations from an EBSD data set do</p><pre class="codeinput">[ori1,ori2] = calcMisorientation(ebsd(<span class="string">'phase1'</span>),ebsd(<span class="string">'phase2'</span>))
plot(axis(ori1,ori2))</pre><p><b>Axis angle plots</b></p>
<p>(Mis)Orientation, ODFs, and MDFs can now be plotted in axis angles sections. Those plots respect the fundamental sector depending
on the misorientation angle and for all combinations of crystal symmetries. The angle sections are scaled such that they represent
the corresponding volume in orientation space. This can be switch off as described below
</p><pre class="codeinput">plotSection(mori,<span class="string">'axisAngle'</span>,55*degree)
plotSection(mdf,<span class="string">'axisAngle'</span>,(15:10:55)*degree)
plotSection(mdf,<span class="string">'axisAngle'</span>,(15:10:55)*degree,<span class="string">'volumeScaling'</span>,false)
plotSection(mdf,<span class="string">'axisAngle'</span>,(15:10:55)*degree,<span class="string">'antipodal'</span>)</pre><p><b>Replace plotODF by a plotSection</b></p>
<p>In most cases, you can replace <tt>plotODF</tt> by a|plot|. Only for misorientations, the default plot is <tt>scattered</tt>.
</p>
<p><b>More default settings for EBSD maps and pole figure plots</b></p>
<div>
<ul type="square">
<li>new MTEXpref to show/hide the micronbar in EBSD maps. The default is set in <tt>mtex_settings.m</tt> to <tt>on</tt>. The following command switches them off.
</li>
</ul>
</div><pre class="codeinput">setMTEXpref(<span class="string">'showMicronBar'</span>,<span class="string">'off'</span>)</pre><div>
<ul type="square">
<li>new MTEXpref to show/hide the coordinates in EBSD maps. The default is set in <tt>mtex_settings.m</tt> to <tt>off</tt>. The following command switches them on.
</li>
</ul>
</div><pre class="codeinput">setMTEXpref(<span class="string">'showCoordinates'</span>,<span class="string">'off'</span>)</pre><div>
<ul type="square">
<li>new MTEXpref to display coordinates in pole figure plot. The default is set in <tt>mtex_settings.m</tt> to display the directions <tt>X</tt> and <tt>Y</tt>. The following command switches it to <tt>RD</tt> and <tt>ND</tt>.
</li>
</ul>
</div><pre class="codeinput">pfAnnotations = @(varargin) text([vector3d.X,vector3d.Y],{<span class="string">'RD'</span>,<span class="string">'ND'</span>},<span class="keyword">...</span>
<span class="string">'BackgroundColor'</span>,<span class="string">'w'</span>,<span class="string">'tag'</span>,<span class="string">'axesLabels'</span>,varargin{:});
setMTEXpref(<span class="string">'pfAnnotations'</span>,pfAnnotations);</pre><p><b>Other improvements since MTEX 4.0.0</b></p>
<p>During the minor revisions of MTEX also several minor improvements have been added which are summarized below</p>
<div>
<ul type="square">
<li>check for inclusions in grains: the following command returns a list of true/false depending whether a grain in <tt>grainList</tt> is an inclusion in <tt>hostGrain</tt></li>
</ul>
</div><pre class="codeinput">hostGrain.checkInside(grainList)</pre><div>
<ul type="square">
<li>allow syntax</li>
</ul>
</div><pre class="codeinput">plot(odf,pf.h,<span class="string">'superposition'</span>,pf.c)</pre><div>
<ul type="square">
<li>allow to show / hide the scale bar by the MTEX menu or by</li>
</ul>
</div><pre class="codeinput">[~,mP] = plot(ebsd)
mP.micronBar.visible = <span class="string">'off'</span></pre><div>
<ul type="square">
<li>allow to place labels above/below the marker by</li>
</ul>
</div><pre class="codeinput">plot(xvector,<span class="string">'label'</span>,<span class="string">'RD'</span>,<span class="string">'textAboveMarker'</span>)</pre><div>
<ul type="square">
<li>new EBSD interface to ACOM Nanomegas *.ang files</li>
</ul>
</div>
<div>
<ul type="square">
<li>plot relative to the crystal coordinate system are now always aligned such that x points to the east and y points to north</li>
</ul>
</div>
<div>
<ul type="square">
<li>misorientation axis with respect to crystal and specimen reference frame</li>
</ul>
</div><pre class="codeinput">a = axis(o1,o2) <span class="comment">% misorientation axis with respect to sample coordinate system</span></pre><pre class="codeinput">a = axis(inv(o2)*o1) <span class="comment">% misorientation axis with respect to crystal coordinate system</span></pre><div>
<ul type="square">
<li>new function <tt>intersect</tt> to compute intersections between grain boundary segments an a line
</li>
</ul>
</div><pre class="codeinput">[x,y] = grains.boundary.intersect(xy1,xy2);</pre><div>
<ul type="square">
<li>option for plotting angle distributions in percent</li>
</ul>
</div><pre class="codeinput">plotAngleDsitribution(mori,<span class="string">'percent'</span>)</pre><div>
<ul type="square">
<li>reintroduced min/max in pole figure like plot</li>
</ul>
</div><pre class="codeinput">plot(pf,<span class="string">'minmax'</span>)</pre><div>
<ul type="square">
<li>3d plots of pole figures can now be simultanously rotated</li>
<li>you can now restrict an EBSD data set to a line to plot profiles</li>
</ul>
</div><pre class="codeinput">ebsd_prof = ebsd.spatialProfile(ebsd,some_line)</pre><div>
<ul type="square">
<li>additional syntax to define a list if Miller indices</li>
</ul>
</div><pre class="codeinput">h = Miller({1,0,0},{1,1,1},{2,3,4},CS,<span class="string">'uvw'</span>)</pre><div>
<ul type="square">
<li>interface to Bruker phl files</li>
<li>new properties for grainBoundary <tt>gB</tt></li>
</ul>
</div><pre class="codeinput">gB.segmentLength <span class="comment">% length of the corresponding connected segment</span>
gB.isTwinning(mori,threshold) <span class="comment">% check boundary for twinning</span></pre><div>
<ul type="square">
<li>for a crystal symmetry <tt>cs</tt> you can access a, b ,c and reciprocal axes by
</li>
</ul>
</div><pre class="codeinput">cs.Aaxis
cs.AaxisRec</pre><div>
<ul type="square">
<li>compute KAM with misorientation angle threshold or grain boundary threshold</li>
</ul>
</div>
<h2>MTEX 4.0.0 - 10/2014<a name="12"> </a></h2>
<p>MTEX 4 is a complete rewrite of the internal class system which was required to keep MTEX compatible with upcoming Matlab
releases. Note that MTEX 3.5 will not work on Matlab versions later than 2014a. As a positive side effect, the syntax has
been made more consistent and powerful. On the bad side MTEX 3.5. code will need some adaption to run on MTEX 4. There are
two general principles to consider
</p>
<p><b>Use dot indexing instead of getting and setting methods</b></p>
<p>The syntax</p><pre class="codeinput">h = get(m,<span class="string">'h'</span>)
m = set(m,<span class="string">'h'</span>,h+1)</pre><p>is obsolete. <tt>set</tt> and <tt>get</tt> methods are not longer supported by any MTEX class. Instead use dot indexing
</p><pre class="codeinput">h = m.h
m.h = h + 1</pre><p>Note, that this syntax can be nested, i.e., one can write</p><pre class="codeinput">ebsd(<span class="string">'Forsterite'</span>).orientations.angle</pre><p>to get the rotational angle of all Forsterite orientations, or,</p><pre class="codeinput">cs.axes(1).x</pre><p>to get the x coordinate of the first crystallographic coordinate axis - the a-axis. As a nice bonus, you can now use TAB completion
to cycle through all possible properties and methods of a class.
</p>
<p><b>Use camelCaseCommands instead of under_score_commands</b></p>
<p>Formerly, MTEX used different naming conventions for functions. Starting with MTEX 4.0 all function names consisting of several
words, have the first word spelled with lowercase letters and the consecutive words starting with a capital letter. Most notable
changes are * <tt>plotPDF</tt> * <tt>plotIPDF</tt> * <tt>plotODF</tt> * <tt>calcError</tt></p>
<p><b>Grain boundaries are now directly accessible</b></p>
<p>MTEX 4.0 introduces a new type of variables called <tt>grainBoundary</tt> which allows to represent arbitrary grain boundaries and to work with them as with grains. The following lines give some
examples. Much more is possible.
</p><pre class="codeinput"><span class="comment">% select boundary from specific grains</span>
grains.boundary</pre><pre class="codeinput"><span class="comment">% select boundary by phase transistion</span>
gB = grains.boundary(<span class="string">'Forstarite'</span>,<span class="string">'Enstatite'</span>)</pre><pre class="codeinput"><span class="comment">% select boundary by misorientation angle</span>
gB(gB.misorientation.angle>100*degree)</pre><pre class="codeinput"><span class="comment">% compute misorientation angle distribution for specific grain boundaries</span>
plotAngleDistribution(gB)</pre><p><b>Plotting EBSD, grain, grainBoundary data has different syntax</b></p>
<p>The syntax of the plot commands has made more consistent throughout MTEX. It is now</p><pre class="codeinput">plot(obj,data)</pre><p>where obj is the object to be plotted, i.e., EBSD data, grains, grain boundaries, spherical vectors, pole figures, etc., and
the data are either pure numbers or RGB values describing the color. Examples are
</p><pre class="codeinput"><span class="comment">% plot MAD values of EBSD data</span>
plot(ebsd,ebsd.mad)</pre><pre class="codeinput"><span class="comment">% colorize grains according to area</span>
plot(grains,grains.area)</pre><pre class="codeinput"><span class="comment">% colorize grain boundary according to misorientation angle</span>
gB = grains.boundary(<span class="string">'Forsterite'</span>,<span class="string">'Enstatite'</span>)
plot(gB,gB.misorientation.angle)</pre><p>Colorization according to phase or phase transition is the new default when calling <tt>plot</tt> without data argument, i.e., the following results in a phase plot
</p><pre class="codeinput">plot(ebsd)</pre><p>In order to colorize ebsd data according to orientations, one has first to define an orientationMapping by</p><pre class="codeinput">oM = ipdfHSVOrientationMapping(ebsd(<span class="string">'Forsterite'</span>))</pre><p>Then one can use the command <tt>oM.orientation2color</tt> to compute RGB values for the orientations
</p><pre class="codeinput">plot(ebsd(<span class="string">'Forsterite'</span>),oM.orientation2color(ebsd(<span class="string">'Forsterite'</span>).orientations))</pre><p>The orientation mapping can be visualized by</p><pre class="codeinput">plot(oM)</pre><p><b>EBSD data are always spatially indexed</b></p>
<p>Starting with MTEX 4.0 EBSD data alway have to have x and y coordinates. EBSD data without spatial coordinates are imported
simply as orientations. As a consequence, all orientation related functionalities of EBSD data have been moved to <tt>orientations</tt>, i.e., you can not do anymore
</p><pre class="codeinput">plotpdf(ebsd(<span class="string">'Fo'</span>),Miller(1,0,0,CS))
calcODF(ebsd(<span class="string">'Fo'</span>))
volume((ebsd(<span class="string">'Fo'</span>))</pre><p>But instead you have to explicitely state that you operate on the orientations, i.e.</p><pre class="codeinput">plotpdf(ebsd(<span class="string">'Fo'</span>).orientations,Miller(1,0,0,ebsd(<span class="string">'Fo'</span>).CS))
calcODF(ebsd(<span class="string">'Fo'</span>).orientations)
volume((ebsd(<span class="string">'Fo'</span>).orientations)</pre><p>This makes it more easy to apply the same functions to misorientations to grain mean orientations <tt>grains.meanOrientation</tt>, ebsd misorientation to mean <tt>mean |ebsd.mis2mean</tt> or boundary misorientations <tt>grains.boundary.misorientation</tt></p>
<p><b>Different syntax for reconstructing grains from EBSD data</b></p>
<p>In MTEX 3.5 the command</p><pre class="codeinput">grains = calcGrains(ebsd)</pre><p>duplicates the ebsd data into the grain variable allowing to access the EBSD data belonging to a specific grain by</p><pre class="codeinput">get(grains(1),<span class="string">'EBSD'</span>)</pre><p>In MTEX 4.0 the command <tt>calcGrains</tt> returns as an additional output the list of grainIds that is associated with the EBSD data. When storing these grainIds directly
inside the EBSD data, i.e., by
</p><pre class="codeinput">[grains,ebsd.grainId] calcGrains(ebsd)</pre><p>one can access the EBSD data belonging to a specific grain by the command</p><pre class="codeinput">ebsd(grains(1))</pre><p><b>MTEX 4.0 distinguishes between crystal and specimen symmetry</b></p>
<p>In MTEX 4.0 two new variable types <tt>specimenSymmetry</tt> and <tt>crystalSymmetry</tt> have been introduced to distinguish clearly between these two types of symmetry. Calling
</p><pre class="codeinput">cs = symmetry(<span class="string">'m-3m'</span>)
ss = symmetry(<span class="string">'triclinic'</span>)</pre><p>is not allowed anymore! Please use instead</p><pre class="codeinput">cs = crystalSymmetry(<span class="string">'m-3m'</span>,<span class="string">'mineral'</span>,<span class="string">'phaseName'</span>)
ss = specimenSymmetry(<span class="string">'triclinic'</span>)</pre><p><b>Pole figure indexing is now analogously to EBSD data</b></p>
<p>You can now index pole figure data by conditions in the same manner as EBSD data. E.g. the condition</p><pre class="codeinput">condition = pf.r.theta < 80 * degree</pre><p>is an index to all pole figure data with a polar angle smaller than 80 degree. To restrict the pole figure variable <tt>pf</tt> to the data write
</p><pre class="codeinput">pf_restrcited = pf(condition)</pre><p>In the same manner, we can also remove all negative intensities</p><pre class="codeinput">condition = pf.intensities < 0
pf(condition) = []</pre><p>In order to address individuell pole figures within a array of pole figures <tt>pf</tt> use the syntax
</p><pre class="codeinput">pf(<span class="string">'111'</span>)</pre><p>or</p><pre class="codeinput">pf(Miller(1,1,1,cs))</pre><p>The old syntax</p><pre class="codeinput">pf(1)</pre><p>for accessing the first pole figure will not work anymore as it now refers to the first pole figure measurement. The direct
replacement for the above command is
</p><pre class="codeinput">pf({1})</pre><p><b>MTEX 4.0 supports all 32 point groups</b></p>
<p>In MTEX 4.0 it is for the first time possible to calculate with reflections and inversions. As a consequence, all 32 point
groups are supported. This is particularly important when working with piezoelectric tensors and symmetries like 4mm. Moreover,
MTEX distinguishes between the point groups 112, 121, 112 up to -3m1 and -31m.
</p>
<p>Care should be taken, when using non-Laue groups for pole figure or EBSD data.</p>
<p><b>Support for three-digit notation for Miller indices of trigonal symmetries</b></p>
<p>MTEX 4.0 understands now uvw and UVTW notation for trigonal symmetries. The following two commands define the same crystallographic
direction, namely the a1-axis
</p><pre class="codeinput">Miller(1,0,0,crystalSymmetry(<span class="string">'-3m'</span>),<span class="string">'uvw'</span>)</pre><pre class="codeinput">Miller(2,-1,-1,0,crystalSymmetry(<span class="string">'-3m'</span>),<span class="string">'UVTW'</span>)</pre><p><b>Improved graphics</b></p>
<p>MTEX can now display colorbars next to pole figure, tensor or ODF plots and offers much more powerfull options to customize
the plots with titles, legends, etc.
</p>
<p><b>Functionality that has been (temporarily) removed</b></p>
<p>This can be seen as a todo list.</p>
<div>
<ul type="square">
<li>3d EBSD data handling + 3d grains</li>
<li>some grain functions like aspectRatio, equivalent diameter</li>
<li>logarithmic scaling of plots</li>
<li>3d plot of ODFs</li>
<li>some of the orientation color maps</li>
<li>fibreVolume in the presence of specimen symmetry</li>
<li>Dirichlet kernel</li>
<li>patala colorcoding for some symmetry groups</li>
<li>v.x = 0</li>
<li>misorientation analysis is not yet complete</li>
<li>some colormaps, e.g. blue2red switched</li>
<li>histogram of volume fractions of CSL boundaries</li>
<li>remove id from EBSD?</li>
<li>changing the phase of a grain should change phases in the boundary</li>
<li>KAM and GOSS may be improved</li>
<li>write import wizard for orientations, vectors, tensors.</li>
</ul>
</div>
<h2>MTEX 3.5.0 - 12/2013<a name="13"> </a></h2>
<p><b>Misorientation colorcoding</b></p>
<div>
<ul type="square">
<li>Patala colormap for misorientations</li>
<li>publication: S. Patala, J. K. Mason, and C. A. Schuh, Improved representations of misorientation information for grain boundary,
science, and engineering, Prog. Mater. Sci., vol. 57, no. 8, pp. 1383-1425, 2012.
</li>
<li>implementation: Oliver Johnson</li>
<li>syntax:</li>
</ul>
</div><pre class="codeinput">plotBoundary(grains(<span class="string">'Fo'</span>),<span class="string">'property'</span>,<span class="string">'misorientation'</span>,<span class="string">'colorcoding'</span>,<span class="string">'patala'</span>)</pre><p><b>Fast multiscale clustering (FMC) method for grain reconstruction</b></p>
<div>
<ul type="square">
<li>grain reconstruction algorithm for highly deformed materials without sharp grain boundaries</li>
<li>publication: C. McMahon, B. Soe, A. Loeb, A. Vemulkar, M. Ferry, L. Bassman, Boundary identification in EBSD data with a generalization
of fast multiscale clustering, Ultramicroscopy, 2013, 133:16-25.
</li>
<li>implementation: Andrew Loeb</li>
<li>syntax:</li>
</ul>
</div><pre class="codeinput">grains = calcGrains(ebsd,<span class="string">'FMC'</span>)</pre><p><b>Misc changes</b></p>
<div>
<ul type="square">
<li>one can now access the grain id by</li>
</ul>
</div><pre class="codeinput">get(grains,<span class="string">'id'</span>)</pre><div>
<ul type="square">
<li>the flags <tt>'north'</tt> and <tt>'south'</tt> are obsolete and have been replaced by <tt>'upper'</tt> and <tt>'lower'</tt></li>
<li>you can specify the outer boundary for grain reconstruction in nonconvex EBSD data set by the option <tt>'boundary'</tt></li>
</ul>
</div><pre class="codeinput">poly = [ [x1,y1];[x2,y2];[xn,yn];[x1,y1] ]
grains = calcGrains(ebsd,<span class="string">'boundary'</span>,poly)</pre><div>
<ul type="square">
<li>you can select a polygon interactively with the mouse using the command</li>
</ul>
</div><pre class="codeinput">poly = selectPolygon</pre><p><b>Bug fixes</b></p>
<div>
<ul type="square">
<li>.osc, .rw1 interfaces improved</li>
<li>.ang, .ctf interfaces give a warning if called without one of the options <tt>convertSpatial2EulerReferenceFrame</tt> or <tt>convertEuler2SpatialReferenceFrame</tt></li>
<li>fixed: entropy should never be imaginary</li>
<li>removed function <tt>SO3Grid/union</tt></li>
<li>improved MTEX startup</li>
<li>many other bug fixes</li>
<li>MTEX-3.5.0 should be compatible with Matlab 2008a</li>
</ul>
</div>
<h2>MTEX 3.4.2 - 06/2013<a name="14"> </a></h2>
<p><b>bugfix release</b></p>
<div>
<ul type="square">
<li>fixed some inverse pole figure color codings</li>
<li>option south is working again in pole figure plots</li>
<li>geometric mean in tensor averagin, thanks to Julian Mecklenburgh</li>
<li>improved support of osc EBSD format</li>
<li>tensor symmetry check error can be turned of and has a more detailed error message</li>
<li>improved syntax for Miller Miller(x,y,z,'xyz',CS) Miller('polar',theta,rho,CS)</li>
<li>ensure same marker size in EBSD pole figure plots</li>
<li>allow plotting Schmid factor for grains and EBSD data</li>
<li>allow to annotate Miller to AxisDistribution plots</li>
<li>improved figure export</li>
<li>allow for negative phase indices in EBSD data</li>
<li>bug fix: https://code.google.com/p/mtex/issues/detail?id=115</li>
<li>improved ODF fibre plot</li>
</ul>
</div>
<h2>MTEX 3.4.1 - 04/2013<a name="15"> </a></h2>
<p><b>bugfix release</b></p>
<div>
<ul type="square">
<li>much improved graphics export to png and jpg files</li>
<li>improved import wizard</li>
<li>Miller(2,0,0) is now different from Miller(1,0,0)</li>
<li>new EBSD interfaces h5, Bruker, Dream3d</li>
<li>various speedups</li>
<li>fix: startup error <a href="http://code.google.com/p/mtex/issues/detail?id=99">http://code.google.com/p/mtex/issues/detail?id=99</a></li>
<li>fix: Rigaku csv interface</li>
</ul>
</div>
<h2>MTEX 3.4.0 - 03/2013<a name="16"> </a></h2>
<p><b>New plotting engine</b></p>
<p>MTEX 3.4 features a completely rewritten plotting engine. New features include</p>
<div>
<ul type="square">
<li>The alignment of the axes in the plot is now described by the options <tt>xAxisDirection</tt> which can be <tt>north</tt>, <tt>west</tt>, <tt>south</tt>, or <tt>east</tt>, and <tt>zAxisDirection</tt> which can be <tt>outOfPlane</tt> or <tt>intoPlane</tt>. Accordingly, there are now the commands
</li>
</ul>
</div><pre class="codeinput">plotzOutOfPlane, plotzIntoPlane</pre><div>
<ul type="square">
<li>The alignment of the axes can be changed interactively using the new MTEX menu which is located in the menubar of each figure.</li>
<li>northern and southern hemisphere are now separate axes that can be stacked arbitrarily and are marked as north and south.</li>
<li>Arbitrary plots can be combined in one figure. The syntax is</li>
</ul>
</div><pre class="codeinput">ax = subplot(2,2,1)
plot(ax,xvector)</pre><div>
<ul type="square">
<li>One can now arbitrarily switch between scatter, contour and smooth plots for any data. E.g. instead of a scatter plot the
following command generates now a filled contour plot
</li>
</ul>
</div><pre class="codeinput">plotpdf(ebsd,Miller(1,0,0),<span class="string">'contourf'</span>)</pre><div>
<ul type="square">
<li>obsolete options: <tt>fliplr</tt>, <tt>flipud</tt>, <tt>gray</tt>,
</li>
</ul>
</div>
<p><b>Colormap handling</b></p>
<div>
<ul type="square">
<li>User defined colormap can now be stored in the folder <tt>colormaps</tt>, e.g. as <tt>red2blueColorMap.m</tt> and can set interactively from the MTEX menu or by the command
</li>
</ul>
</div><pre class="codeinput">mtexColorMap <span class="string">red2blue</span></pre><p><b>ODF</b></p>
<div>
<ul type="square">
<li>The default ODF plot is now phi2 sections with plain projection and (0,0) being at the top left corner. This can be changed
interactively in the new MTEX menu.
</li>
<li>The computation of more than one maximum is back. Use the command</li>
</ul>
</div><pre class="codeinput">[modes, values] = calcModes(odf,n)</pre><p><b>EBSD data</b></p>
<div>
<ul type="square">
<li>MTEX is now aware about the inconsistent coordinate system used in CTF and HKL EBSD files for Euler angles and spatial coordinates.
The user can now convert either the spatial coordinates or the Euler angles such that they become consistent. This can be
easily done by the import wizard or via the commands
</li>
</ul>
</div><pre class="codeinput"><span class="comment">% convert spatial coordinates to Euler angle coordinate system</span>
loadEBSD(<span class="string">'filename'</span>,<span class="string">'convertSpatial2EulerReferenceFrame'</span>)</pre><pre class="codeinput"><span class="comment">% convert Euler angles to spatial coordinate system</span>
loadEBSD(<span class="string">'filename'</span>,<span class="string">'convertEuler2SpatialReferenceFrame'</span>)</pre><div>
<ul type="square">
<li>It is now possible to store a color within the variable describing a certain mineral. This makes phase plots of EBSD data
and grains more consistent and customizable.
</li>
</ul>
</div><pre class="codeinput">CS = symmetry(<span class="string">'cubic'</span>,<span class="string">'mineral'</span>,<span class="string">'Mg'</span>,<span class="string">'color'</span>,<span class="string">'red'</span>)</pre><div>
<ul type="square">
<li>A better rule of thumb for the kernel width when computing an ODF from individual orientations via kernel density estimation.</li>
<li>inpolygon can be called as</li>
</ul>
</div><pre class="codeinput">inpolygon(ebsd,[xmin ymin xmax ymax])</pre><p><b>Tensors</b></p>
<div>
<ul type="square">
<li>new command to compute the Schmid tensor</li>
</ul>
</div><pre class="codeinput">R = SchmidTensor(m,n)</pre><div>
<ul type="square">
<li>new command to compute Schmid factor and active slip system</li>
</ul>
</div><pre class="codeinput">[tauMax,mActive,nActive,tau,ind] = calcShearStress(stressTensor,m,n,<span class="string">'symmetrise'</span>)</pre><div>
<ul type="square">
<li>it is now possible to define a tensor only by its relevant entries. Missing entries are filled such that the symmetry properties
are satisfied.
</li>
</ul>
</div>
<div>
<ul type="square">
<li>faster, more stable tensor implementation</li>
<li>new syntax in tensor indexing to be compatible with other MTEX classes. For a 4 rank thensor <tt>C</tt>, we have now
</li>
</ul>
</div><pre class="codeinput"><span class="comment">% extract entry 1,1,1,1 in tensor notation</span>
C{1,1,1,1}</pre><pre class="codeinput"><span class="comment">% extract entry 1,1 in Voigt notation</span>
C{1,1}</pre><div>
<ul type="square">
<li>For a list of tensors <tt>C</tt> we have
</li>
</ul>
</div><pre class="codeinput"><span class="comment">% extract the first tensor</span>
C(1)</pre><p><b>Import / Export</b></p>
<div>
<ul type="square">
<li>command to export orientations</li>
</ul>
</div><pre class="codeinput">export(ori,<span class="string">'fname'</span>)</pre><div>
<ul type="square">
<li>command to import vector3d</li>
</ul>
</div><pre class="codeinput">v = loadVector3d(<span class="string">'fname'</span>,<span class="string">'ColumnNames'</span>,{<span class="string">'x'</span>,<span class="string">'y'</span>,<span class="string">'z'</span>})
v = loadVector3d(<span class="string">'fname'</span>,<span class="string">'ColumnNames'</span>,{<span class="string">'latitude'</span>,<span class="string">'longitude'</span>})</pre><div>
<ul type="square">
<li>new interface for DRex</li>
<li>new interface for Rigaku</li>
<li>new interface for Saclay</li>
</ul>
</div>
<p><b>General</b></p>
<div>
<ul type="square">
<li>improved instalation / uninstalation</li>
<li>new setting system</li>
</ul>
</div><pre class="codeinput">setpref(<span class="string">'mtex'</span>,<span class="string">'propertyName'</span>,<span class="string">'propertyValue'</span>)</pre><p>has been replaced by</p><pre class="codeinput">setMTEXpref(<span class="string">'propertyName'</span>,<span class="string">'propertyValue'</span>)</pre><h2>MTEX 3.3.2 - 01/2013<a name="17"> </a></h2>
<p><b>bugfix release</b></p>
<div>
<ul type="square">
<li>fix: better startup when using different MTEX versions</li>
<li>fix: backport of the tensor fixes from MTEX 3.4</li>
<li>fix: show normal colorbar in ebsd plot if scalar property is plotted</li>
<li>fix: <a href="http://code.google.com/p/mtex/issues/detail?id=82">http://code.google.com/p/mtex/issues/detail?id=82</a></li>
<li>fix: <a href="http://code.google.com/p/mtex/issues/detail?id=76">http://code.google.com/p/mtex/issues/detail?id=76</a></li>
<li>fix: <a href="http://code.google.com/p/mtex/issues/detail?id=48">http://code.google.com/p/mtex/issues/detail?id=48</a></li>
<li>fix: <a href="http://code.google.com/p/mtex/issues/detail?id=71">http://code.google.com/p/mtex/issues/detail?id=71</a></li>
<li>fix: <a href="http://code.google.com/p/mtex/issues/detail?id=70">http://code.google.com/p/mtex/issues/detail?id=70</a></li>
<li>fix: <a href="http://code.google.com/p/mtex/issues/detail?id=69">http://code.google.com/p/mtex/issues/detail?id=69</a></li>
<li>fix: <a href="http://code.google.com/p/mtex/issues/detail?id=65">http://code.google.com/p/mtex/issues/detail?id=65</a></li>
<li>fix: <a href="http://code.google.com/p/mtex/issues/detail?id=68">http://code.google.com/p/mtex/issues/detail?id=68</a></li>
</ul>
</div>
<h2>MTEX 3.3.1 - 07/2012<a name="18"> </a></h2>
<p><b>bugfix release</b></p>
<div>
<ul type="square">
<li>fix: single/double convention get sometimes wrong with tensors</li>
<li>fix: tensor checks did not respect rounding errors</li>
<li>fix: ingorePhase default is now none</li>
<li>fix: calcAngleDistribution works with ODF option</li>
<li>fix: respect rounding errors when importing pole figures and ODFs</li>
</ul>
</div>
<h2>MTEX 3.3.0 - 06/2012<a name="19"> </a></h2>
<p><b>Grains: change of internal representation</b></p>
<p>Reimplementation of the whole <b>grain</b> part:
</p>
<div>
<ul type="square">
<li>The classes @grain, @polygon, @polyeder do not exist any longer. The functionality of the classes is mainly replaced by the
classes @GrainSet, @Grain2d and @Grain3d
</li>
<li>The class @GrainSet explicitly stores <a href="EBSD_index.html">EBSD</a>. To access <a href="EBSD_index.html">EBSD</a> data within a single grain or a set of grains use
</li>
</ul>
</div><pre class="codeinput">get(grains,<span class="string">'EBSD'</span>)</pre><div>
<ul type="square">
<li>the grain selector tool for spatial grain plots was removed, nevertheless, grains still can be <a href="GrainSingleAnalysis.html">selected spatially</a>.
</li>
<li>scripts using the old grain engine may not work properly, for more details of the functionalities and functioning of the @GrainSet
please see the documentation.
</li>
<li>new functionalities: merge grains with certain boundary.</li>
</ul>
</div>
<p><b>EBSD</b></p>
<p>The behavior of the <tt>'ignorePhase'</tt> changed. Now it is called in general <tt>'not indexed'</tt> and the not indexed data <a href="ImportEBSDData.html">is imported generally</a>. If the crystal symmetry of an <a href="EBSD_index.html">EBSD</a> phase is set to a string value, it will be treated as not indexed. e.g. mark the first phase as <tt>'not indexed'</tt></p><pre class="codeinput">CS = {<span class="string">'not indexed'</span>,<span class="keyword">...</span>
symmetry(<span class="string">'cubic'</span>,<span class="string">'mineral'</span>,<span class="string">'Fe'</span>),<span class="keyword">...</span>
symmetry(<span class="string">'cubic'</span>,<span class="string">'mineral'</span>,<span class="string">'Mg'</span>)};</pre><p>By default, <tt>calcGrains</tt> does also use the <tt>'not Indexed'</tt> phase.
</p>
<div>
<ul type="square">
<li>create customized orientation colormaps</li>
</ul>
</div>
<p><b>Other</b></p>
<div>
<ul type="square">
<li>the comand <tt>set_mtex_option</tt> is obsolete. Use the matlab command <tt>setMTEXpref(...)</tt> instead. Additionally, one can now see all options by the command <tt>getpref('mtex')</tt></li>
</ul>
</div>
<h2>MTEX 3.2.3 - 03/2012<a name="20"> </a></h2>
<p><b>bugfix release</b></p>