\(\renewcommand\AA{\unicode{x212B}}\)
IndexSatellitePeaks v1¶
Summary¶
Algorithm for indexing satellite peaks in superspace
Properties¶
Name |
Direction |
Type |
Default |
Description |
---|---|---|---|---|
NuclearPeaks |
Input |
IPeaksWorkspace |
Mandatory |
Main integer HKL peaks. Q vectors will be calculated relative to these peaks. |
SatellitePeaks |
Input |
IPeaksWorkspace |
Mandatory |
Positions of satellite peaks with fractional HKL coordinates |
OutputWorkspace |
Output |
IPeaksWorkspace |
Mandatory |
The indexed satellite peaks. This will be a table workspace with miller indicies h, k, l, m1, m2, …, mn. |
Tolerance |
Input |
number |
0.3 |
Tolerance on the noise of the q vectors |
NumOfQs |
Input |
number |
1 |
Number of independant q vectors |
ClusterThreshold |
Input |
number |
1.5 |
Threshold for automaticallty deciding on the number of q vectors to use. If NumOfQs found is set then this is property is ignored. |
Description¶
IndexSatellitePeaks is used to find the higher dimensional miller indices that index a collection of “satellite” fractional single crystal peaks. This algorithm takes a PeaksWorkspace, output from the algorithm FindSatellitePeaks, and returns a new table with integer indices for each peak.
This algorithm works by first attempting to finding the minimum number of distinct modulation (q) vectors that are required to fully index the collection of peaks. The full list of q vectors is found using the same method described in the FindSatellitePeaks algorithm. The basis set is then chosen from this list. If there are multiple choices of vectors the algorithm will always choose the smallest one. This defines the number of additional dimensions required to index the crystal with integer indices.
Once a basis of q vectors has been chosen for indexing the system all integer multiples of the basis set are generated. Each q vector is then compared with the set of all possible integer reflections and is assigned to the closest one found within the radius of the Tolerance parameter (measured by Euclidean distance in HKL space). Reflections which cannot be indexed within the tolerance are set to (0,0,0).
Warning
The current version of the algorithm returns a TableWorkspace and not a PeaksWorkspace. This means that the workspace cannot be overlaid on the slice viewer or the instrument view.
See also
As well as being able to export the data to the nexus file format, saving the data to the Jana format is supported via the SaveReflections algorithm.
For more information on superspace crystallography see:
Van Smaalen, Sander. “An elementary introduction to superspace crystallography.” Zeitschrift für Kristallographie-Crystalline Materials 219, no. 11 (2004): 681-691.
Van Smaalen, Sander. “Incommensurate crystal structures.” Crystallography Reviews 4, no. 2 (1995): 79-202.
Usage¶
Note
To run these usage examples please first download the usage data, and add these to your path. In Mantid this is done using Manage User Directories.
Example - calling IndexSatellitePeaks:
import numpy as np
np.random.seed(1)
nuclear_peaks = Load('WISH_peak_hkl_small.nxs')
satellite_peaks = Load("refine_satellites_fixed_q_test.nxs")
indexed_peaks = IndexSatellitePeaks(nuclear_peaks, satellite_peaks, tolerance=0.1, NumOfQs=2)
for peak in indexed_peaks:
print("H: {:>5} K: {:>5} L: {:>5} M1: {:>5}".format(peak.getH(),peak.getK(),peak.getL(),peak.getIntMNP()[0]))
Output:
H: 2.0 K: -1.0 L: -3.0 M1: -1.0
H: 2.0 K: -1.0 L: 0.0 M1: -1.0
H: 2.0 K: -1.0 L: -3.0 M1: 1.0
H: 2.0 K: -1.0 L: 0.0 M1: 1.0
Categories: AlgorithmIndex | Crystal\Peaks
Source¶
Python: IndexSatellitePeaks.py