Inverse Pole Figures of an ODF edit page

A pole figure fixes a crystal direction and asks where it points in the specimen. An inverse pole figure fixes a specimen direction \(\vec r\) and asks which crystal directions \(\vec h\) point along it.

This page assumes the ODF and multiples-of-a-random-distribution (mrd) normalization from ODF Theory. Crystal directions are introduced in Crystal Directions. The projection itself is introduced in Spherical Projections. Inverse Pole Figures builds the same construction first for individual orientations rather than an ODF.

Formally, the inverse pole density is the ODF integrated along every orientation that maps \(\vec h\) onto \(\vec r\),

\[ P_{\vec r}(\vec h) = \int_{g \vec h = \vec r} f(g)\, \mathrm{d}g. \]

These orientations form an orientation fibre. The plot therefore loses the rotation about the aligned direction. Here inverse means that the specimen and crystal directions exchange roles; it does not mean reconstructing or numerically inverting the ODF.

The result is a density in mrd, not a percentage at one point. Inverse pole figures are natural when one specimen direction carries the physical question: a sheet normal, a compression axis, or an EBSD map surface normal.

A plotting convention states how a reference frame is laid out on screen. The following convention draws specimen Y upward and specimen X to the right. It does not rotate the specimen or change the ODF.

plottingConvention.default('y↑→x');

A Model Texture to Look At

This is the same three-component texture as on the pole-figure page. It combines two localized components with a fibre component that aligns the crystal c-axis with specimen X.

cs = crystalSymmetry('32');
mod1 = orientation.byEuler(90*degree,40*degree,110*degree,'ZYZ',cs);
mod2 = orientation.byEuler(50*degree,30*degree,-30*degree,'ZYZ',cs);

odf = 0.2*unimodalODF(mod1) ...
  + 0.3*unimodalODF(mod2) ...
  + 0.5*fibreODF(Miller(0,0,1,cs),vector3d.X,...
  'halfwidth',10*degree);

% convert once so repeated Radon transforms reuse Fourier coefficients
odf = SO3FunHarmonic(odf,'bandwidth',32);

Plotting Specimen Directions

plotIPDF works like plotPDF, except that its input directions belong to the specimen frame. The coordinates inside each panel are crystal directions. This frame reversal is the point of an inverse pole figure.

plotIPDF(odf,[vector3d.X,vector3d.Z]);
mtexColorMap LaboTeX;
mtexColorbar('title','mrd');

The fibre component puts the c-axis along X, so the \((0001)\) corner is the maximum of the X inverse pole figure. The same corner is almost empty for Z. One inverse pole figure still does not determine full orientations, because every value collects an entire orientation fibre.

Values Rather Than Colours

calcPDF with an empty crystal-direction argument returns an inverse pole density function. Its printed summary identifies the returned spherical-function representation and crystal symmetry.

ipdfX = calcPDF(odf,[],vector3d.X)
ipdfZ = calcPDF(odf,[],vector3d.Z);

densitySummary = [ipdfX.eval(cs.cAxis),ipdfZ.eval(cs.cAxis); ...
  max(ipdfX),max(ipdfZ)]
ipdfX = S2FunHarmonicSym (321)
  bandwidth: 25
 
densitySummary =
   22.9594    0.0249
   22.9594    5.4244

The first row is the density at \((0001)\): about 23 mrd for X and 0.021 mrd for Z. The second row contains the maxima. For X the c-axis corner is itself the maximum; for Z the maximum is about 5.2 mrd elsewhere in the sector. An inverse pole figure answers which crystal direction prefers one chosen specimen direction.

Antipodal Symmetry

The 'antipodal' flag identifies a crystal direction with its opposite. It replaces \(P_{\vec r}(\vec h)\) by the average of its values at \(\vec h\) and \(-\vec h\). This halves the region that has to be drawn, exactly as for axes. This is a modelling choice, not a display option. Use it only when the measurement or model cannot distinguish the directions.

plotIPDF(odf,[vector3d.X,vector3d.Z],'antipodal');
mtexColorMap LaboTeX;

Notice both changes: the sector is smaller, and its colours can differ because opposite-direction densities have been averaged.

The Complete Sphere

By default MTEX draws only the fundamental sector. Every point outside it is a symmetry-equivalent copy of one inside. The 'complete' flag expands those copies, while 'upper' retains only the upper hemisphere. Neither flag changes the density.

plotIPDF(odf,[vector3d.X,vector3d.Z],'complete','upper');
mtexColorMap LaboTeX;

The threefold symmetry of point group 32 is now visible as three repeats around the c-axis. They are symmetry-equivalent appearances of the same texture features, not three additional components.

Separating Symmetrization from the Displayed Region

Keep the same complete upper hemisphere and impose antipodal symmetry. This isolates the change in density from the change in plotted region.

plotIPDF(odf,[vector3d.X,vector3d.Z],...
  'complete','antipodal','upper');
mtexColorMap LaboTeX;

The X plot gains three faint rim lobes from directions whose opposites were in the lower hemisphere. The localized Z lobes become broader averaged features. These changes come from the antipodal average, not from displaying a different part of the sphere.

An inverse pole density of an ODF is not an EBSD colour key. A colour key assigns colours to the same crystal-direction sector but does not itself show how much material lies there.

Further Reading

Next

Colouring an EBSD map by where each orientation falls in this sector is IPF Maps. The other projection is Pole Figures. Continue to the unprojected slices in Euler Angle Sections and Sigma Sections. If the ODF must first be reconstructed from diffraction data, continue to ODF Reconstruction.

Citing this page. This page is part of the documentation of MTEX, a free and open source MATLAB toolbox for analyzing and modeling crystallographic textures. It was written by The MTEX Developers and is published at https://mtex-toolbox.github.io/ODFInversePoleFigure.html. If you use MTEX, or reuse text or figures from this page, in your research, please cite

F. Bachmann, R. Hielscher, H. Schaeben: Texture Analysis with MTEX - Free and Open Source Software Toolbox, Solid State Phenomena 160 (2010), 63-68. 10.4028/www.scientific.net/SSP.160.63

BibTeX
@article{bachmann2010mtex,
  author  = {F. Bachmann and R. Hielscher and H. Schaeben},
  title   = {Texture Analysis with MTEX - Free and Open Source Software Toolbox},
  journal = {Solid State Phenomena},
  volume  = {160},
  pages   = {63-68},
  year    = {2010},
  doi     = {10.4028/www.scientific.net/SSP.160.63},
  url     = {https://doi.org/10.4028/www.scientific.net/SSP.160.63}
}

Other papers describing specific MTEX methods are listed under Publications — please cite the one that best fits your application. The MTEX source code is licensed under the GNU General Public License v2.0; the text and figures of this documentation are licensed under CC BY 4.0, which permits reuse — including by automated systems — provided The MTEX Developers and this page are credited.