$$\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.

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.

• 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

Example - calling IndexSatellitePeaks:

import numpy as np
np.random.seed(1)

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