a function on SO(3) as a series of Wigner functions, symmetric under its crystal and specimen frame

Syntax

SO3F = SO3FunHarmonic(fhat, cs, ss)

From MTEX’s coefficients.

SO3F = SO3FunHarmonic(odf, bandwidth=32)

The harmonic form of another function.

SO3F = SO3FunHarmonic(lambda ori: ori.angle(), cs)

A callable by quadrature.

SO3F = SO3FunHarmonic(lambda ori: ori.angle(), cs, 'GaussLegendre', bandwidth=16)

On the Gauss-Legendre grid.

SO3F = SO3FunHarmonic(psi, cs, bandwidth=24)

The series of an SO(3) kernel.

mdf = SO3FunHarmonic(lambda o: o.angle(), cs, cs, antipodal=True, bandwidth=8)

A misorientation function, f(g) = f(g^-1).

Description

What the first argument is decides how the coefficients come about:

  • coefficients: MTEX’s, degree by degree, deg2dim(L + 1) of them for the bandwidth L; a vector ending inside a degree block is padded with zeros to its end. An array of more axes is a list of functions, its shape in front of the coefficients.
  • another SO(3) function: its harmonic form at the bandwidth given; an SO3FunRBF reaches at most its kernel’s bandwidth.
  • an SO(3) kernel: its series.
  • a callable of orientations: sampled on a quadrature grid of the bandwidth, by default the preference defaultSO3Bandwidth, Clenshaw-Curtis unless ‘GaussLegendre’ is named among the frames.

The frames are the crystal frame and the specimen frame, the second by default specimenFrame.default. The coefficients are made invariant under both unless symmetrise=False.

Input

fhat array of MTEX’s coefficients, an SO3Fun, an SO3Kernel or a callable of orientations
cs, ss crystalFrame and specimenFrame (or a second crystalFrame)

Keywords

keyword default description
real   whether the function takes real values only; by default read off the coefficients or the sampled values
antipodal   f(g) = f(g^-1), the exchange symmetry of a misorientation function; needs the same frame on both sides
symmetrise   make the coefficients invariant under the two frames’ symmetries
bandwidth   the largest degree of the series
dtype   the complex type of the coefficients, complex128 unless given

Output

SO3F SO3FunHarmonic

Properties

fhat Wigner coefficients in MTEX’s public basis
bandwidth largest harmonic degree; assignment truncates or pads the expansion
CS, SS crystal and specimen reference frames
isReal whether the function takes real values; setting True projects onto the real part
antipodal whether grain exchange symmetry f(g)=f(inv(g)) is imposed
shape shape of a function list, excluding the coefficient axis

See also

SO3FunHarmonic.quadrature, SO3FunHarmonic.interpolate, SO3FunRBF, SO3FunHandle, SO3VectorFieldHarmonic, SO3FunHarmonicRepresentation

Members

abs the absolute value of the function, by quadrature at twice the bandwidth
approximate the harmonic series of a function on SO(3) by quadrature
bandwidth the bandwidth, the largest degree of the expansion
calcError the distance between two orientation density functions, or the error of an ODF against pole figures
cat the functions joined into one list along an axis, the coefficients padded to the largest bandwidth
conj the complex conjugate function
conv the convolution with another SO(3) function, a kernel, a function on the sphere or a vector of multipliers per degree, as conv(f, g)
dot the inner product int conj(f) g, the first argument conjugated
dtype the dtype of the coefficients
eval evaluate a harmonic orientation function at rotations or orientations
example the harmonic expansion of the Dubna ODF, MTEX’s example function
exp the exponential of the function, by quadrature at twice the bandwidth, or at the bandwidth given
fhat the coefficients in MTEX’s basis, as MATLAB’s SO3F.fhat reads and assigns them
frameA the frame the orientations map from, the crystal frame
frameB the frame the orientations map to, the specimen or a second crystal frame
grad the gradient, a harmonic vector field on SO(3), left or with side=’right’ right
horzcat the functions joined into one list along an axis, the coefficients padded to the largest bandwidth
interpolate the harmonic function fitted to values at orientations, by regularised least squares, as interpolate(nodes, values, …)
inv form the function evaluated at inverse rotations
isclose the same coefficients up to a tolerance
isReal SO3F.isReal = True makes the coefficients those of the real part, as MATLAB’s does
laplace the Laplace-Beltrami operator applied to the function, degree n scaled by -n(n+1)
log the logarithm of the function, by quadrature at twice the bandwidth, or at the bandwidth given
max the maximum of a function on SO(3) or the sphere, the value and the position, numLocal local maxima from a grid refined down to the accuracy
mean the mean of every function
norm the L2 norm, or the Sobolev norm sqrt(sum (2n+1)^{2s} |fhat_n|^2)
plot3d plot3d(v), plot3d(v, data), plot3d(sF), plot3d(vF), plot3d(oR), plot3d(ori), plot3d(odf)
plot plotSection(odf), plotSection(odf, ‘sigma’), plotSection(ori, oS, sections=9)
plotFibre the ODF along the fibre f, as a line over the angle along the fibre
plotIPDF plotIPF(odf, r): the inverse pole figures of an ODF, one axes per specimen direction (MATLAB’s plotIPDF)
plotPDF the pole figures of an ODF, one axes per crystal direction
plotSection plotSection(odf), plotSection(odf, ‘sigma’), plotSection(ori, oS, sections=9)
plus  
power the harmonic power per degree, the norm of the coefficients of that degree
quadrature the harmonic series of a function on SO(3) by quadrature
radon the Radon transform of a function on SO(3): its pole figures, inverse pole figures, or their values (MATLAB’s radon, calcPDF and calcIPDF)
rdivide  
reshape the list of functions in another shape
rotate the function turned by a rotation, from the left or with side=’right’ from the right, as rotate(f, rot, side)
shape the shape of a list of functions, () for one
size the number of functions of the list, one for a single function
SO3FunHarmonic a function on SO(3) as a series of Wigner functions, symmetric under its crystal and specimen frame
sqrt the square root of the function, by quadrature at twice the bandwidth, or at the bandwidth given
subsref  
sum the integral over SO(3), 8 pi^2 times the mean
symmetrise project the coefficients onto the symmetries carried by the two frames
T the list transposed, a row of n functions becoming a column
textureIndex the texture index of a function on SO(3) or on the sphere, the squared L2 norm of its harmonic expansion
times  
truncate cut or pad a harmonic orientation function to maximum degree L
uminus  
vertcat the functions joined into one list along an axis, the coefficients padded to the largest bandwidth
volume the share of orientations within a radius of a centre: the integral of f over the ball, int_{angle(g, c) < r} f(g) dg, relative to the integral over all orientations
withExchange the function with the exchange symmetry f(g) = f(g^-1) imposed, by the mean with its inverse

Used on

AngleDistributionFunction, ODFInversePoleFigure, RandomSampling, SO3FunHarmonicRepresentation, SingleSlipModel, PoleFigure2ODFAmbiguity, PoleFigure2ODFGhostCorrection, SO3FunConvolution, SO3FunDefinition, SO3FunOperations, SO3FunQuadrature, SO3FunSymmetricFunctions

MATLAB’s SO3FunHarmonic_index

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