a unimodal ODF, radially symmetric about a modal orientation, its shape a kernel on SO(3)

Syntax

odf = unimodalODF(ori)

The de la Vallee Poussin kernel of halfwidth 10 degree.

odf = unimodalODF(ori, halfwidth=15*degree)

Another halfwidth.

odf = unimodalODF(rot, cs, ss)

The centre given as a rotation, the frames named.

odf = unimodalODF(ori, psi)

The kernel psi, also kernel=psi.

odf = unimodalODF(ori, weights=w, thinning=False)

One weight per centre, all kept.

Description

The ODF is a kernel sum, SO3FunRBF, with the kernel at the modal orientations, the weights normalised to a mean of one. Given weights, the centres of negligible weight, a hundredth of a kernel’s peak shared among the centres, are dropped unless thinning=False. Without a centre the mode is the identity.

Input

center orientation, the modal orientations, or a rotation with the frames following
args crystalFrame and specimenFrame of a centre given as a rotation, and an SO3Kernel

Keywords

keyword default description
kernel None SO3Kernel, the shape; by default the de la Vallee Poussin kernel
halfwidth None the halfwidth of the default kernel, 10 degree unless given
weights None one weight per centre
thinning True drop the centres of negligible weight (MATLAB’s flag nothinning keeps them)

Output

odf SO3FunRBF

Example

Build a model texture from a preferred orientation and an angular spread, then mix it with a uniform background. The coefficients 0.3 and 0.7 are volume fractions.

import matplotlib.pyplot as plt
from mtex import crystalFrame, orientation, degree, unimodalODF, uniformODF, Miller, plotPF, mtexColorbar

cs = crystalFrame('m-3m')
centre = orientation.byEuler(15*degree, 35*degree, 45*degree, cs)
peak = unimodalODF(centre, halfwidth=15*degree)
odf = 0.3*peak + 0.7*uniformODF(cs)
print('Mean of the mixture:', round(float(odf.mean()), 3))
plotPF(odf, Miller(1, 0, 0, cs), antipodal=True, contourf=True, resolution=5*degree)
mtexColorbar(title='mrd')
plt.show()

Each component has mean one, so fractions summing to one preserve that normalization. The halfwidth specifies the spread about the mode, rather than a sharp cutoff.

Mean of the mixture: 1.0

Example output for unimodalODF

See also

fibreODF, uniformODF, FourierODF, BinghamODF, SO3FunRBF, RadialODFs

Used on

OrientationEmbeddings, OrientationExport, OrientationGrid, OrientationStandard, SpecimenSymmetry, ClusterDemo, OptimalKernel, DetectionOfSampleSymmetry, EulerAngleSections, ODFCharacteristics, ODFExport, ODFInversePoleFigure

MATLAB’s unimodalODF

source

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/unimodalODF_py.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.