\(\renewcommand\AA{\unicode{x212B}}\)

FindUBUsingIndexedPeaks v1

../_images/FindUBUsingIndexedPeaks-v1_dlg.png

FindUBUsingIndexedPeaks dialog.

Summary

Calculate the UB matrix from a peaks workspace, containing indexed peaks.

Properties

Name Direction Type Default Description
PeaksWorkspace InOut IPeaksWorkspace Mandatory Input Peaks Workspace
Tolerance Input number 0.1 Indexing Tolerance (0.1)
ToleranceForSatellite Input number 0.1 Indexing Tolerance for satellite (0.1)

Description

Given a set of peaks at least three of which have been assigned Miller indices, this algorithm will find the UB matrix, that best maps the integer (h,k,l) values to the corresponding Q vectors. The set of indexed peaks must include three linearly independent Q vectors. The (h,k,l) values from the peaks are first rounded to form integer (h,k,l) values. The algorithm then forms a possibly over-determined linear system of equations representing the mapping from (h,k,l) to Q for each indexed peak. The system of linear equations is then solved in the least squares sense, using QR factorization.

Usage

Example:

ws=LoadIsawPeaks("TOPAZ_3007.peaks")
print("After LoadIsawPeaks does the workspace have an orientedLattice: %s" % ws.sample().hasOrientedLattice())

FindUBUsingIndexedPeaks(ws)
print("After FindUBUsingIndexedPeaks does the workspace have an orientedLattice: %s" % ws.sample().hasOrientedLattice())

print(ws.sample().getOrientedLattice().getUB())

Output:

After LoadIsawPeaks does the workspace have an orientedLattice: False
After FindUBUsingIndexedPeaks does the workspace have an orientedLattice: True
[[-0.04542062  0.04061954 -0.01223576]
 [ 0.00140377 -0.00318446  0.11654506]
 [ 0.05749773  0.03223779  0.02737294]]

Categories: AlgorithmIndex | Crystal\UBMatrix

Source

C++ header: FindUBUsingIndexedPeaks.h (last modified: 2021-03-31)

C++ source: FindUBUsingIndexedPeaks.cpp (last modified: 2021-04-19)