\(\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