the modified least squares solver of the pole figure inversion, an ODF as a weighted sum of unimodal components fitted to scattered pole figure intensities
Syntax
solver = MLSSolver(pf, resolution=5*degree, halfwidth=7.5*degree)
Set up the solver.
odf = solver.calcODF()
And run it.
solver = MLSSolver(pf, psi, S3G=grid)
A kernel and the centres given.
solver.alpha
The scaling of each pole figure.
Description
The ansatz functions have the shape of a kernel, by default the de la Vallee Poussin kernel, and sit on a grid of orientations, by default an equispaced grid of the resolution. The coefficients minimise the squared misfit between the pole figures of the ODF and the measured intensities, every pole figure with its own scaling alpha, under the constraint that they are non negative. calcODF(pf, …) builds the solver and runs it at once.
The kernel and the grid may also be passed positionally. The solver keeps its state: solver.S3G the centres, solver.psi the kernel, solver.c the coefficients, solver.alpha the scaling factors, solver.zrm the zero range method; solver.odf the ODF they describe.
Input
pf |
PoleFigure |
psi |
SO3Kernel, the shape of the ansatz functions |
grid |
orientation, the centres of the ansatz functions |
Keywords
| keyword | default | description |
|---|---|---|
resolution |
None |
the spacing of the grid the ansatz functions sit on, by default the resolution of the pole figures (MATLAB: 3/2 of it) |
halfwidth |
None |
the halfwidth of the ansatz functions, by default the resolution of the grid (MATLAB: 2/3 of it) |
kernel |
None |
SO3Kernel, the shape of the ansatz functions instead of the de la Vallee Poussin kernel of the halfwidth |
S3G |
None |
orientation, the centres of the ansatz functions instead of the equispaced grid |
zeroRange |
False |
apply the zero range method: drop the centres where some pole figure says the ODF vanishes; a zeroRangeMethod gives its parameters |
minIter |
5 |
the least number of iterations |
maxIter |
10 |
the largest number of iterations (MATLAB iterMax) |
c0 |
None |
the coefficients of the ansatz functions the iteration starts from, by default all equal |
ghostCorrection |
True |
fix the uniform portion the data allows and reconstruct only the rest; MATLAB flag noGhostCorrection is ghostCorrection=False |
quadratureWeights |
False |
weight the residuals with the quadrature weights of the measured directions (no specimen symmetry) |
intensityWeights |
False |
weight the residuals with (1 + I)^(-1/2), the counting statistics of the intensities I |
regularisation |
0.0 |
the weight of a penalty on the Dirichlet energy, a discrete Laplacian on the grid; zero for none |
verbose |
False |
report the fit of every pole figure in every iteration |
Output
solver |
MLSSolver |
References
- R. Hielscher, H. Schaeben, A novel pole figure inversion method: specification of the MTEX algorithm, J. Appl. Cryst. 41 (2008) 1024-1037
See also
calcODF, MLSSolver.calcODF, calcODFIterative, zeroRangeMethod, PoleFigureTutorial, PoleFigure2ODFAmbiguity, PoleFigure2ODFGhostCorrection
MATLAB’s MLSSolver.MLSSolver
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/MLSSolver.MLSSolver_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.