\(\renewcommand\AA{\unicode{x212B}}\)
FindUBUsingMinMaxD v1¶
Warning
FindUBUsingMinMaxD is deprecated (on 2013-06-03). Use FindUBUsingFFT instead.
Summary¶
Calculate the UB matrix from a peaks workspace, given min(a,b,c) and max(a,b,c).
See Also¶
SetUB, FindUBUsingFFT, FindUBUsingIndexedPeaks, FindUBUsingLatticeParameters
Properties¶
Name |
Direction |
Type |
Default |
Description |
---|---|---|---|---|
PeaksWorkspace |
InOut |
IPeaksWorkspace |
Mandatory |
Input Peaks Workspace |
MinD |
Input |
number |
Mandatory |
Lower Bound on Lattice Parameters a, b, c |
MaxD |
Input |
number |
Mandatory |
Upper Bound on Lattice Parameters a, b, c |
NumInitial |
Input |
number |
20 |
Number of Peaks to Use on First Pass(20) |
Tolerance |
Input |
number |
0.15 |
Indexing Tolerance (0.15) |
Description¶
Given a set of peaks, and given a range of possible a,b,c values, this algorithm will attempt to find a UB matrix, corresponding to the Niggli reduced cell, that fits the data. The algorithm searches over a range of possible directions and unit cell lengths for directions and lengths that match plane normals and plane spacings in reciprocal space. It then chooses three of these vectors with the shortest lengths that are linearly independent and that are separated by at least a minimum angle. An initial UB matrix is formed using these three vectors and the resulting UB matrix is optimized using a least squares method. Finally, starting from this matrix, a matrix corresponding to the Niggli reduced cell is calculated and returned as the UB matrix. If the specified peaks are accurate and belong to a single crystal, this method should produce some UB matrix that indexes the peaks. However, other software will usually be needed to adjust this UB to match a desired conventional cell.
Usage¶
Example:
ws=LoadIsawPeaks("TOPAZ_3007.peaks")
print("After LoadIsawPeaks does the workspace have an orientedLattice: %s" % ws.sample().hasOrientedLattice())
FindUBUsingMinMaxD(ws,MinD=8.0,MaxD=13.0)
print("After FindUBUsingMinMaxD 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 FindUBUsingMinMaxD does the workspace have an orientedLattice: True
[[ 0.01223576 0.00480107 0.08604016]
[-0.11654506 0.00178069 -0.00458823]
[-0.02737294 -0.08973552 -0.02525994]]
Categories: AlgorithmIndex | Crystal\UBMatrix | Deprecated
Source¶
C++ header: FindUBUsingMinMaxD.h
C++ source: FindUBUsingMinMaxD.cpp