Workflows#

Command line tools for data reduction using garnet reduction.

The main command for setting up and running reduction is reduce.sh. It is a tool that when given a reduction flag, parses through an input reduction plan YAML file and executes the reduction as a parallel job.

Running a reduction using reduce.sh.#
/SNS/software/scd/reduce.sh -i[n] INPUT.yaml PROCESSES
  • n \(=\mathrm{normalization}\)

  • i \(=\mathrm{integration}\)

It is possible to generate a template input file for a given instrument using the command reduce.sh. The file must not exist previously.

Creating a template input file.#
/SNS/software/scd/reduce.sh -t INPUT.yaml INSTRUMENT
Valid instrument input option names.#

Instrument

Name

Beamline

Example configuration files

WAND²

wand2

hb2c

/HFIR/HB2C/shared/benchmark/*/wand2_reduction_plan.yaml

DEMAND

demand

hb3a

/HFIR/HB3A/shared/benchmark/*/demand_reduction_plan.yaml

SNAP

snap

bl3

/SNS/SNAP/shared/benchmark/*/snap_reduction_plan.yaml

CORELLI

corelli

bl9

/SNS/CORELLI/shared/benchmark/*/corelli_reduction_plan.yaml

MANDI

mandi

bl11b

/SNS/MANDI/shared/benchmark/*/mandi_reduction_plan.yaml

TOPAZ

topaz

bl12

/SNS/TOPAZ/shared/benchmark/*/topaz_reduction_plan.yaml

Parameters#

To setup and run any reduction workflow, it is necessary to define some common parameters relevant to all. Bold indicates required parameter.

  • Instrument name: string

  • Proposal IPTS number: integer

  • Run/scan number(s): string

  • UB matrix file: string

Initial configuration: instrument, proposal number, run number, and UB matrix file.#
Instrument: "INSTRUMENT" # "TOPAZ", "CORELLI", "MANDI", "SNAP", "DEMAND", "WAND²"
IPTS: 12345
Runs: "10000:10020,10025:10030"
UBFile: null # .mat file required

Run numbers are specified using a shorthand run number string.

Note

The shorthand notation involves : for range and , for separations in the sequence. For example, 123:130,132:135 is equivalent to a list 123,124,125,…,130,132,133,…,135.

For DEMAND, an experiment number should also be specified.

  • Experiment: integer

DEMAND-only experiment number.#
Experiment: 100

A vanadium file must be provided for all instruments. An optional background file may also be specified.

  • Vanadium file: string

  • Background file: string

For time-of-flight (TOF) data, the vanadium (also sometimes called the solid-angle) is the integrated detector counts from a vanadium measurement. The vanadium file is similar for monochromatic data. However, rather than being measured in events with counts vs detector ID, it is a detector image of counts and must be integrated over all gonionmeter angles. The background file is similar to the vanadium file and need not necessarily be normalized to counting statistics (e.g. proton charge or counting time).

Vanadium data.#
VanadiumFile: /FACILITY/INSTRUMENT/shared/path/to/vanadium.nxs
BackgroundFile: /FACILITY/INSTRUMENT/shared/path/to/background.nxs

Additional calibration files only for TOF data can also be specified. For TOF data, the flux file must be in units of momentum.

  • Flux file: string

  • Masking file: string

  • Detector calibration: string

Calibration data only for TOF instruments.#
FluxFile: /FACILITY/INSTRUMENT/shared/path/to/flux.nxs
MaskFile: /FACILITY/INSTRUMENT/shared/path/to/mask.xml
DetectorCalibration: /FACILITY/INSTRUMENT/shared/path/to/calibration.xml # .xml or .DetCal

A CORELLI-only tube calibration is available that adjust the positions of tubes within a sixteenpack.

CORELLI-only tube calibration.#
TubeCalibration: /SNS/CORELLI/shared/calibration/tube/calibration_corelli_20200109.nxs.h5

For CORELLI, it is also possible to load and/or generate the elastic-only data from the cross-correlated data. If the elastic option is provided, a time offset for the correlation chopper may also be provided to recalculate the elastic signal. Otherwise, it is obtained from the auto-reduced data.

  • Elastic signal: boolean

  • Time offset: integer

CORELLI-only elastic-only cross-correlation data.#
Elastic: true # false
TimeOffset: None

Note

Elastic options may only be used for CORELLI data with the correlation chopper running.

Normalization#

The normalization procedure (re)-constructs a reciprocal space map binned with appropriate normalization and in reciprocal lattice units. The flag is -n.

Input#

It is necessary to provide the binning parameters that include;

  • Projections: lists of integers

  • Extents: lists of floats

  • Bins: list of integers

Binning parameters.#
Projections: [[1, 0, 0], [0, 1, 0], [0, 0, 1]] # columns must form a definite matrix
Extents: [[-16, 16], [-16, 16], [-16, 16]] # (min, max) pair of bin-centers for each dimension
Bins: [321, 321, 321] # number of bins

The projection vectors define the axes direction and must form a definite matrix from stacking the vectors by columns.

Common projections with type indicated by first two axes.#

Type

Projections

\(hk0\)

[[1, 0, 0], [0, 1, 0], [0, 0, 1]]

\(hhl\)

[[1, 1, 0], [0, 0, 1], [-1, 1, 0]]

\(h0l\)

[[1, 0, 0], [0, 0, 1], [0, 1, 0]]

\(0kl\)

[[0, 1, 0], [0, 0, 1], [1, 0, 0]]

The extents are defined as the minimum and maximum of the the bin-center values along that axis. The bin size is calculated as \((\mathrm{max}-\mathrm{min})/(\mathrm{bins}-1)\). An extra bin +1 is required to account for both edges. A bin size of 1 is also valid and the bin size is \((\mathrm{max}-\mathrm{min})\).

Symmetry operations from a space or point group corresponding to the underlying Laue group can be applied by providing a valid symbol. Options are listed below.

  • Symmetry: string

Symmetry to apply.#
 Symmetry: null # null, space/point group symbol

Symmetry is not required to be applied and can be specified accordingly with null.

Output#

Given the configuration file as OUTPUT.yaml, a minimum of three files will be created. The files will be appended with "symm", the Laue class symbol.

Reciprocal space (re)-construction output files.#

Symmetry:

null

"symm"

Normalized result:

OUTPUT.nxs

OUTPUT_symm.nxs

Raw counts:

OUTPUT_data.nxs

OUTPUT_symm_data.nxs

Inverse weights:

OUTPUT_norm.nxs

OUTPUT_symm_norm.nxs

Additional files will be created if an optional background file is provided.

Reciprocal space (re)-construction background files.#

Symmetry:

null

"symm"

Subtracted result:

OUTPUT_sub_bkg.nxs

OUTPUT_symm_sub_bkg.nxs

Background result:

OUTPUT_bkg.nxs

OUTPUT_bkg_symm.nxs

Background counts:

OUTPUT_bkg_data.nxs

OUTPUT_symm_bkg_data.nxs

Background inverse weights:

OUTPUT_bkg_norm.nxs

OUTPUT_symm_bkg_norm.nxs

Note

The data output corresponds to the raw counts while the norm relates to the normalization factors (proton charge, counting time, and other corrections measured with vanadium). The result of dividing data with norm is the normalized data. The prior outputs are intermediate. Additional measurements can be added before dividing to obtain a new updated normalized data. The corresponding outputs are similar for background data. The subtracted result is the normalized background subtracted from the normalized data.

Examples#

The following provides examples illustrating how the output file can be visualized. Several convenience functions are defined that makes allows for reading the file with h5py, calculating the appropriate skew transforms, and plotting with matplotlib.

Utilities for plotting slices from three-dimensional histograms of reciprocal space data.#
 import h5py

 import matplotlib.pyplot as plt
 import matplotlib.transforms

 import numpy as np
 import scipy.linalg

 def load_histograms(filename):

     with h5py.File(filename, mode='r') as f:

         exp_info = f['MDHistoWorkspace/experiment0']
         UB = exp_info['sample/oriented_lattice/orientation_matrix'][()].reshape(3,3)
         W = exp_info['logs/W_MATRIX/value'][()].reshape(3,3)

         data = f['MDHistoWorkspace/data']
         signal = data['signal'][()].T

         axes, labels, = [], []

         for i, key in enumerate(data):
             if key.startswith('D') or key.startswith('Q'):
                 ax = data[key]
                 axes.append((ax[1:]+ax[:-1])/2)
                 name = ax.attrs['long_name'].decode('utf-8')
                 units = ax.attrs['units'].decode('utf-8')
                 labels.append('{} ({})'.format(name, units))

     return signal, axes, labels, UB, W

 def slice_transforms(signal, axes, labels, UB, W, normal=[0,0,1], value=0):

     G = np.dot(UB.T, UB)

     B = scipy.linalg.cholesky(G, lower=False)
     Bp = np.dot(B, W)

     Q, R = scipy.linalg.qr(Bp)

     ind = np.array(normal) != 1

     axes_ind = np.arange(3)[ind]
     slice_ind = np.arange(3)[~ind][0]

     coords = [axes[i] for i in axes_ind]
     titles = [labels[i] for i in axes_ind]

     z = axes[slice_ind]
     i = np.argmin(np.abs(z-value))

     titles.append('{} = {:.2f}'.format(labels[slice_ind], z[i]))

     if slice_ind == 0:
         data = signal[i,:,:].T
     elif slice_ind == 1:
         data = signal[:,i,:].T
     else:
         data = signal[:,:,i].T

     v = scipy.linalg.cholesky(np.dot(R.T, R)[ind][:,ind], lower=False)
     v /= v[0,0]

     T = np.eye(3)
     T[:2,:2] = v

     s = np.diag(T).copy()
     T[1,1] = 1
     T[0,2] = -T[0,1]*coords[1].min()

     return coords, data, titles, T, s[1]

 def plot_slice(coords, data, T=[[1,0,0],[0,1,0],[0,0,1]], aspect=1, titles=['','','']):

     x, y = coords

     fig, ax = plt.subplots(1, 1)

     transform = matplotlib.transforms.Affine2D(T)+ax.transData

     im = ax.pcolormesh(x,
                        y,
                        data,
                        norm='log',
                        shading='nearest',
                        transform=transform)

     ax.set_aspect(aspect)
     ax.set_xlabel(titles[0])
     ax.set_ylabel(titles[1])
     ax.set_title(titles[2])
     ax.minorticks_on()

     ax.xaxis.get_major_locator().set_params(integer=True)
     ax.yaxis.get_major_locator().set_params(integer=True)

     cb = fig.colorbar(im, ax=ax)
     cb.minorticks_on()

The convience functions can be reused as needed.

filename = '/HFIR/HB2C/shared/benchmark/norm/normalization/wand2_reduction_plan_m-3m.nxs'

signal, axes, labels, UB, W = load_histograms(filename)
coords, data, titles, T, aspect = slice_transforms(signal, axes, labels, UB, W, normal=[0,0,1], value=0)
plot_slice(coords, data, T, aspect, titles)
../../_images/index-1.png

WAND² NaCl data symmetrized and plotted at \((hk0)\).#

filename = '/HFIR/HB3A/shared/benchmark/norm/normalization/demand_reduction_plan_mmm.nxs'

signal, axes, labels, UB, W = load_histograms(filename)

coords, data, titles, T, aspect = slice_transforms(signal, axes, labels, UB, W, normal=[0,0,1], value=0)
plot_slice(coords, data, T, aspect, titles)
../../_images/index-2.png

DEMAND LiFePO₄ data symmetrized and plotted at \((hk0)\).#

filename = '/HFIR/HB3A/shared/benchmark/norm/normalization/demand_reduction_plan_mmm.nxs'

signal, axes, labels, UB, W = load_histograms(filename)

coords, data, titles, T, aspect = slice_transforms(signal, axes, labels, UB, W, normal=[0,1,0], value=0)
plot_slice(coords, data, T, aspect, titles)
../../_images/index-3.png

DEMAND LiFePO₄ data symmetrized and plotted at \((h0l)\).#

filename = '/HFIR/HB3A/shared/benchmark/norm/normalization/demand_reduction_plan_mmm.nxs'

signal, axes, labels, UB, W = load_histograms(filename)

coords, data, titles, T, aspect = slice_transforms(signal, axes, labels, UB, W, normal=[1,0,0], value=0)
plot_slice(coords, data, T, aspect, titles)
../../_images/index-4.png

DEMAND LiFePO₄ data symmetrized and plotted at \((0kl)\).#

filename = '/SNS/CORELLI/shared/benchmark/norm/normalization/corelli_reduction_plan_m-3m.nxs'

signal, axes, labels, UB, W = load_histograms(filename)

coords, data, titles, T, aspect = slice_transforms(signal, axes, labels, UB, W, normal=[0,0,1], value=0)
plot_slice(coords, data, T, aspect, titles)
filename = '/SNS/TOPAZ/shared/benchmark/norm/normalization/topaz_reduction_plan_(h,k,0)_[-10,10]_[-10,10]_[-10,10]_201x201x201_2_m.nxs'

signal, axes, labels, UB, W = load_histograms(filename)

coords, data, titles, T, aspect = slice_transforms(signal, axes, labels, UB, W, normal=[0,0,1], value=0)
plot_slice(coords, data, T, aspect, titles)
filename = '/SNS/TOPAZ/shared/benchmark/norm/normalization/topaz_reduction_plan_(h,k,0)_[-10,10]_[-10,10]_[-10,10]_201x201x201_2_m.nxs'

signal, axes, labels, UB, W = load_histograms(filename)

coords, data, titles, T, aspect = slice_transforms(signal, axes, labels, UB, W, normal=[0,1,0], value=0)
plot_slice(coords, data, T, aspect, titles)
filename = '/SNS/TOPAZ/shared/benchmark/norm/normalization/topaz_reduction_plan_(h,k,0)_[-10,10]_[-10,10]_[-10,10]_201x201x201_2_m.nxs'

signal, axes, labels, UB, W = load_histograms(filename)

coords, data, titles, T, aspect = slice_transforms(signal, axes, labels, UB, W, normal=[1,0,0], value=0)
plot_slice(coords, data, T, aspect, titles)

Integration#

Integrating the peaks from a single crystal diffraction experiment is invoked with the -i flag.

Input#

The workflow uses the UB to predict peaks based on the reflection condition.

  • Cell: string

  • Centering string

  • Intial radius: float

  • Minimum d-spacing: float

Integration parameters.#
Cell: "Triclinic" # "Monoclinic", "Orthorhombic", "Tetragonal", "Rhombohedral", "Hexagonal", "Cubic"
Centering: "P" # "I", "F", "R(obv)", "R(rev)", "A", "B", "C"
Radius: 0.25
MinD: 0.7

The cell corresponds to the lattice system and is used to constrain the refinement of the lattice parameters.

Parameter constraints for each lattice system.#

Lattice system

Lengths

Angles

Point Group

Cubic

\(a=b=c\)

\(\alpha=\beta=\gamma=90^\circ\)

\(m\bar{3}m\)

Hexagonal

\(a=b\)

\(\alpha=\beta=90^\circ\), \(\gamma=120^\circ\)

\(6/mmm\)

Rhombohedral

\(a=b=c\)

\(\alpha=\beta=\gamma\)

\(\bar{3}m\)

Tetragonal

\(a=b\)

\(\alpha=\beta=\gamma=90^\circ\)

\(4/mmm\)

Orthorhombic

None

\(\alpha=\beta=\gamma=90^\circ\)

\(mmm\)

Monoclinic

None

\(\alpha=\gamma=90^\circ\)

\(2/m\)

Triclinic

None

None

\(\bar{1}\)

The centering symbol only predicts peaks that correspond to the reflection condition.

Integral reflection conditions for centered cells.#

Primitive

Base

Body

Face

Rhombohedral

\(Pm\bar{3}m\)

\(Im\bar{3}m\)

\(Fm\bar{3}m\)

\(P6/mmm\)

\(R\bar{3}m\)

\(R\bar{3}m\)

\(P4/mmm\)

\(I4/mmm\)

\(Pmmm\)

\(Cmmm\)

\(Ammm\)

\(Bmmm\)

\(Immm\)

\(Fmmm\)

\(P2/m\)

\(C2/m\)

\(A2/m\)

\(B2/m\)

\(P\bar{1}\)

\(h+k=2n\)

\(k+l=2n\)

\(l+h=2n\)

\(h+k+l=2n\)

\(h,k,l\) unmixed

\(-h+k+l=3n\) or
\(h-k+l=3n\)

Note

For a Rhombohedral lattice, use R (equivalent to P) for the reflection condition. This is not to be confused with a Hexagonal cell with R(obverse) or R(reverse) centering.

Both the minimum \(d\)-spacing and initial peak radius are given in units of \(\mathrm{Å}\). It is also possible to include a minimum modulation \(d\)-spacing that is greater than or equal to the overall minimum \(d\)-spacing. If unset, it defaults to the minimum overall \(d\)-spacing. This parameter is desirable if the intensity of the satellite peaks quickly falls off in \(Q\) commonly observed for magnetic materials.

  • Minimum modulation \(d\)-spacing: float

  • Modulation vector 1/2/3: list

  • Max order: integer

  • Cross terms: boolean

Modulation parameters.#
ModVec1: [0, 0, 0]
ModVec2: [0, 0, 0]
ModVec3: [0, 0, 0]
MaxOrder: 0
CrossTerms: false
Modulation vector fractional offsets.#

Vector 1 \(\times(\pm m)\)

Vector 2 \(\times(\pm n)\)

Vector 3 \(\times(\pm p)\)

\(\Delta{h}_1\)

\(\Delta{h}_2\)

\(\Delta{h}_3\)

\(\Delta{k}_1\)

\(\Delta{k}_2\)

\(\Delta{k}_3\)

\(\Delta{l}_1\)

\(\Delta{l}_2\)

\(\Delta{l}_3\)

The modulation vectors are the offsets in reciprocal lattice units. They are predicted away from a parent nuclear Bragg peak so that it follows the provided centering reflection condition. The opposite of \((\Delta{h}_i,\Delta{k}_i,\Delta{l}_i)\) is always included in the search \((-\Delta{h}_i,-\Delta{k}_i,-\Delta{l}_i)\). Maximum order must be greater than zero to predict any satellite peak. This value is the maximum absolute integer of \(m\), \(n\), and \(p\). Cross terms (typically false) if true, include \((m,n,p)\) without constraint that two components are zero. Othewise, only one component is allowed to be nonzero at a time: \((m,0,0)\), \((0,n,0)\), and \((0,0,p)\).

Symbols#

Some options of the YAML file rely on knowledge of certain crystallographic symbols. The tables below lists look up symbols for space groups. See Crystallographic Space Group Diagrams and Tables.

Triclinic#

Space group, point group, lattice system, and crystal systems.#

Space Group Number

Space Group Symbol

Point Group

Lattice System

Crystal System

1

P1

1

Triclinic

Triclinic

2

P-1

-1

Triclinic

Triclinic

Monoclinic#

Space group, point group, lattice system, and crystal systems.#

Space Group Number

Space Group Symbol

Point Group

Lattice System

Crystal System

3

P112

112

Monoclinic

Monoclinic

3

P121

2

Monoclinic

Monoclinic

4

P1121

112

Monoclinic

Monoclinic

4

P1211

2

Monoclinic

Monoclinic

5

A112

112

Monoclinic

Monoclinic

5

A121

2

Monoclinic

Monoclinic

5

B112

112

Monoclinic

Monoclinic

5

C121

2

Monoclinic

Monoclinic

5

I112

112

Monoclinic

Monoclinic

5

I121

2

Monoclinic

Monoclinic

6

P11m

11m

Monoclinic

Monoclinic

6

P1m1

m

Monoclinic

Monoclinic

7

P11a

11m

Monoclinic

Monoclinic

7

P11b

11m

Monoclinic

Monoclinic

7

P11n

11m

Monoclinic

Monoclinic

7

P1a1

m

Monoclinic

Monoclinic

7

P1c1

m

Monoclinic

Monoclinic

7

P1n1

m

Monoclinic

Monoclinic

8

A11m

11m

Monoclinic

Monoclinic

8

A1m1

m

Monoclinic

Monoclinic

8

B11m

11m

Monoclinic

Monoclinic

8

C1m1

m

Monoclinic

Monoclinic

8

I11m

11m

Monoclinic

Monoclinic

8

I1m1

m

Monoclinic

Monoclinic

9

A11a

11m

Monoclinic

Monoclinic

9

A1n1

m

Monoclinic

Monoclinic

9

B11n

11m

Monoclinic

Monoclinic

9

C1c1

m

Monoclinic

Monoclinic

9

I11b

11m

Monoclinic

Monoclinic

9

I1a1

m

Monoclinic

Monoclinic

10

P112/m

112/m

Monoclinic

Monoclinic

10

P12/m1

2/m

Monoclinic

Monoclinic

11

P1121/m

112/m

Monoclinic

Monoclinic

11

P121/m1

2/m

Monoclinic

Monoclinic

12

A112/m

112/m

Monoclinic

Monoclinic

12

A12/m1

2/m

Monoclinic

Monoclinic

12

B112/m

112/m

Monoclinic

Monoclinic

12

C12/m1

2/m

Monoclinic

Monoclinic

12

I112/m

112/m

Monoclinic

Monoclinic

12

I12/m1

2/m

Monoclinic

Monoclinic

13

P112/a

112/m

Monoclinic

Monoclinic

13

P112/b

112/m

Monoclinic

Monoclinic

13

P112/n

112/m

Monoclinic

Monoclinic

13

P12/a1

2/m

Monoclinic

Monoclinic

13

P12/c1

2/m

Monoclinic

Monoclinic

13

P12/n1

2/m

Monoclinic

Monoclinic

14

P1121/a

112/m

Monoclinic

Monoclinic

14

P1121/b

112/m

Monoclinic

Monoclinic

14

P1121/n

112/m

Monoclinic

Monoclinic

14

P121/a1

2/m

Monoclinic

Monoclinic

14

P121/c1

2/m

Monoclinic

Monoclinic

14

P121/n1

2/m

Monoclinic

Monoclinic

15

A112/a

112/m

Monoclinic

Monoclinic

15

A12/n1

2/m

Monoclinic

Monoclinic

15

B112/n

112/m

Monoclinic

Monoclinic

15

C12/c1

2/m

Monoclinic

Monoclinic

15

I112/b

112/m

Monoclinic

Monoclinic

15

I12/a1

2/m

Monoclinic

Monoclinic

Orthorhombic#

Space group, point group, lattice system, and crystal systems.#

Space Group Number

Space Group Symbol

Point Group

Lattice System

Crystal System

16

P222

222

Orthorhombic

Orthorhombic

17

P2221

222

Orthorhombic

Orthorhombic

17

P2212

222

Orthorhombic

Orthorhombic

17

P2122

222

Orthorhombic

Orthorhombic

18

P22121

222

Orthorhombic

Orthorhombic

18

P21221

222

Orthorhombic

Orthorhombic

18

P21212

222

Orthorhombic

Orthorhombic

19

P212121

222

Orthorhombic

Orthorhombic

20

A2122

222

Orthorhombic

Orthorhombic

20

B2212

222

Orthorhombic

Orthorhombic

20

C2221

222

Orthorhombic

Orthorhombic

21

A222

222

Orthorhombic

Orthorhombic

21

B222

222

Orthorhombic

Orthorhombic

21

C222

222

Orthorhombic

Orthorhombic

22

F222

222

Orthorhombic

Orthorhombic

23

I222

222

Orthorhombic

Orthorhombic

24

I212121

222

Orthorhombic

Orthorhombic

25

P2mm

2mm

Orthorhombic

Orthorhombic

25

Pm2m

m2m

Orthorhombic

Orthorhombic

25

Pmm2

mm2

Orthorhombic

Orthorhombic

26

P21am

2mm

Orthorhombic

Orthorhombic

26

P21ma

2mm

Orthorhombic

Orthorhombic

26

Pb21m

m2m

Orthorhombic

Orthorhombic

26

Pcm21

mm2

Orthorhombic

Orthorhombic

26

Pm21b

m2m

Orthorhombic

Orthorhombic

26

Pmc21

mm2

Orthorhombic

Orthorhombic

27

P2aa

2mm

Orthorhombic

Orthorhombic

27

Pb2b

m2m

Orthorhombic

Orthorhombic

27

Pcc2

mm2

Orthorhombic

Orthorhombic

28

P2cm

2mm

Orthorhombic

Orthorhombic

28

P2mb

2mm

Orthorhombic

Orthorhombic

28

Pbm2

mm2

Orthorhombic

Orthorhombic

28

Pc2m

m2m

Orthorhombic

Orthorhombic

28

Pm2a

m2m

Orthorhombic

Orthorhombic

28

Pma2

mm2

Orthorhombic

Orthorhombic

29

P21ab

2mm

Orthorhombic

Orthorhombic

29

P21ca

2mm

Orthorhombic

Orthorhombic

29

Pb21a

m2m

Orthorhombic

Orthorhombic

29

Pbc21

mm2

Orthorhombic

Orthorhombic

29

Pc21b

m2m

Orthorhombic

Orthorhombic

29

Pca21

mm2

Orthorhombic

Orthorhombic

30

P2an

2mm

Orthorhombic

Orthorhombic

30

P2na

2mm

Orthorhombic

Orthorhombic

30

Pb2n

m2m

Orthorhombic

Orthorhombic

30

Pcn2

mm2

Orthorhombic

Orthorhombic

30

Pn2b

m2m

Orthorhombic

Orthorhombic

30

Pnc2

mm2

Orthorhombic

Orthorhombic

31

P21mn

2mm

Orthorhombic

Orthorhombic

31

P21nm

2mm

Orthorhombic

Orthorhombic

31

Pm21n

m2m

Orthorhombic

Orthorhombic

31

Pmn21

mm2

Orthorhombic

Orthorhombic

31

Pn21m

m2m

Orthorhombic

Orthorhombic

31

Pnm21

mm2

Orthorhombic

Orthorhombic

32

P2cb

2mm

Orthorhombic

Orthorhombic

32

Pba2

mm2

Orthorhombic

Orthorhombic

32

Pc2a

m2m

Orthorhombic

Orthorhombic

33

P21cn

2mm

Orthorhombic

Orthorhombic

33

P21nb

2mm

Orthorhombic

Orthorhombic

33

Pbn21

mm2

Orthorhombic

Orthorhombic

33

Pc21n

m2m

Orthorhombic

Orthorhombic

33

Pn21a

m2m

Orthorhombic

Orthorhombic

33

Pna21

mm2

Orthorhombic

Orthorhombic

34

P2nn

2mm

Orthorhombic

Orthorhombic

34

Pn2n

m2m

Orthorhombic

Orthorhombic

34

Pnn2

mm2

Orthorhombic

Orthorhombic

35

A2mm

2mm

Orthorhombic

Orthorhombic

35

Bm2m

m2m

Orthorhombic

Orthorhombic

35

Cmm2

mm2

Orthorhombic

Orthorhombic

36

A21am

2mm

Orthorhombic

Orthorhombic

36

A21ma

2mm

Orthorhombic

Orthorhombic

36

Bb21m

m2m

Orthorhombic

Orthorhombic

36

Bm21b

m2m

Orthorhombic

Orthorhombic

36

Ccm21

mm2

Orthorhombic

Orthorhombic

36

Cmc21

mm2

Orthorhombic

Orthorhombic

37

A2aa

2mm

Orthorhombic

Orthorhombic

37

Bb2b

m2m

Orthorhombic

Orthorhombic

37

Ccc2

mm2

Orthorhombic

Orthorhombic

38

Am2m

m2m

Orthorhombic

Orthorhombic

38

Amm2

mm2

Orthorhombic

Orthorhombic

38

B2mm

2mm

Orthorhombic

Orthorhombic

38

Bmm2

mm2

Orthorhombic

Orthorhombic

38

C2mm

2mm

Orthorhombic

Orthorhombic

38

Cm2m

m2m

Orthorhombic

Orthorhombic

39

Ae2m

m2m

Orthorhombic

Orthorhombic

39

Aem2

mm2

Orthorhombic

Orthorhombic

39

B2em

2mm

Orthorhombic

Orthorhombic

39

Bme2

mm2

Orthorhombic

Orthorhombic

39

C2me

2mm

Orthorhombic

Orthorhombic

39

Cm2e

m2m

Orthorhombic

Orthorhombic

40

Am2a

m2m

Orthorhombic

Orthorhombic

40

Ama2

mm2

Orthorhombic

Orthorhombic

40

B2mb

2mm

Orthorhombic

Orthorhombic

40

Bbm2

mm2

Orthorhombic

Orthorhombic

40

C2cm

2mm

Orthorhombic

Orthorhombic

40

Cc2m

m2m

Orthorhombic

Orthorhombic

41

Ae2a

m2m

Orthorhombic

Orthorhombic

41

Aea2

mm2

Orthorhombic

Orthorhombic

41

B2eb

2mm

Orthorhombic

Orthorhombic

41

Bbe2

mm2

Orthorhombic

Orthorhombic

41

C2ce

2mm

Orthorhombic

Orthorhombic

41

Cc2e

m2m

Orthorhombic

Orthorhombic

42

F2mm

2mm

Orthorhombic

Orthorhombic

42

Fm2m

m2m

Orthorhombic

Orthorhombic

42

Fmm2

mm2

Orthorhombic

Orthorhombic

43

F2dd

2mm

Orthorhombic

Orthorhombic

43

Fd2d

m2m

Orthorhombic

Orthorhombic

43

Fdd2

mm2

Orthorhombic

Orthorhombic

44

I2mm

2mm

Orthorhombic

Orthorhombic

44

Im2m

m2m

Orthorhombic

Orthorhombic

44

Imm2

mm2

Orthorhombic

Orthorhombic

45

I2cb

2mm

Orthorhombic

Orthorhombic

45

Iba2

mm2

Orthorhombic

Orthorhombic

45

Ic2a

m2m

Orthorhombic

Orthorhombic

46

I2cm

2mm

Orthorhombic

Orthorhombic

46

I2mb

2mm

Orthorhombic

Orthorhombic

46

Ibm2

mm2

Orthorhombic

Orthorhombic

46

Ic2m

m2m

Orthorhombic

Orthorhombic

46

Im2a

m2m

Orthorhombic

Orthorhombic

46

Ima2

mm2

Orthorhombic

Orthorhombic

47

Pmmm

mmm

Orthorhombic

Orthorhombic

48

Pnnn

mmm

Orthorhombic

Orthorhombic

48

Pnnn:2

mmm

Orthorhombic

Orthorhombic

49

Pbmb

mmm

Orthorhombic

Orthorhombic

49

Pccm

mmm

Orthorhombic

Orthorhombic

49

Pmaa

mmm

Orthorhombic

Orthorhombic

50

Pban

mmm

Orthorhombic

Orthorhombic

50

Pban:2

mmm

Orthorhombic

Orthorhombic

50

Pcna

mmm

Orthorhombic

Orthorhombic

50

Pcna:2

mmm

Orthorhombic

Orthorhombic

50

Pncb

mmm

Orthorhombic

Orthorhombic

50

Pncb:2

mmm

Orthorhombic

Orthorhombic

51

Pbmm

mmm

Orthorhombic

Orthorhombic

51

Pcmm

mmm

Orthorhombic

Orthorhombic

51

Pmam

mmm

Orthorhombic

Orthorhombic

51

Pmcm

mmm

Orthorhombic

Orthorhombic

51

Pmma

mmm

Orthorhombic

Orthorhombic

51

Pmmb

mmm

Orthorhombic

Orthorhombic

52

Pbnn

mmm

Orthorhombic

Orthorhombic

52

Pcnn

mmm

Orthorhombic

Orthorhombic

52

Pnan

mmm

Orthorhombic

Orthorhombic

52

Pncn

mmm

Orthorhombic

Orthorhombic

52

Pnna

mmm

Orthorhombic

Orthorhombic

52

Pnnb

mmm

Orthorhombic

Orthorhombic

53

Pbmn

mmm

Orthorhombic

Orthorhombic

53

Pcnm

mmm

Orthorhombic

Orthorhombic

53

Pman

mmm

Orthorhombic

Orthorhombic

53

Pmna

mmm

Orthorhombic

Orthorhombic

53

Pncm

mmm

Orthorhombic

Orthorhombic

53

Pnmb

mmm

Orthorhombic

Orthorhombic

54

Pbaa

mmm

Orthorhombic

Orthorhombic

54

Pbab

mmm

Orthorhombic

Orthorhombic

54

Pbcb

mmm

Orthorhombic

Orthorhombic

54

Pcaa

mmm

Orthorhombic

Orthorhombic

54

Pcca

mmm

Orthorhombic

Orthorhombic

54

Pccb

mmm

Orthorhombic

Orthorhombic

55

Pbam

mmm

Orthorhombic

Orthorhombic

55

Pcma

mmm

Orthorhombic

Orthorhombic

55

Pmcb

mmm

Orthorhombic

Orthorhombic

56

Pbnb

mmm

Orthorhombic

Orthorhombic

56

Pccn

mmm

Orthorhombic

Orthorhombic

56

Pnaa

mmm

Orthorhombic

Orthorhombic

57

Pbcm

mmm

Orthorhombic

Orthorhombic

57

Pbma

mmm

Orthorhombic

Orthorhombic

57

Pcam

mmm

Orthorhombic

Orthorhombic

57

Pcmb

mmm

Orthorhombic

Orthorhombic

57

Pmab

mmm

Orthorhombic

Orthorhombic

57

Pmca

mmm

Orthorhombic

Orthorhombic

58

Pmnn

mmm

Orthorhombic

Orthorhombic

58

Pnmn

mmm

Orthorhombic

Orthorhombic

58

Pnnm

mmm

Orthorhombic

Orthorhombic

59

Pmmn

mmm

Orthorhombic

Orthorhombic

59

Pmmn:2

mmm

Orthorhombic

Orthorhombic

59

Pmnm

mmm

Orthorhombic

Orthorhombic

59

Pmnm:2

mmm

Orthorhombic

Orthorhombic

59

Pnmm

mmm

Orthorhombic

Orthorhombic

59

Pnmm:2

mmm

Orthorhombic

Orthorhombic

60

Pbcn

mmm

Orthorhombic

Orthorhombic

60

Pbna

mmm

Orthorhombic

Orthorhombic

60

Pcan

mmm

Orthorhombic

Orthorhombic

60

Pcnb

mmm

Orthorhombic

Orthorhombic

60

Pnab

mmm

Orthorhombic

Orthorhombic

60

Pnca

mmm

Orthorhombic

Orthorhombic

61

Pbca

mmm

Orthorhombic

Orthorhombic

61

Pcab

mmm

Orthorhombic

Orthorhombic

62

Pbnm

mmm

Orthorhombic

Orthorhombic

62

Pcmn

mmm

Orthorhombic

Orthorhombic

62

Pmcn

mmm

Orthorhombic

Orthorhombic

62

Pmnb

mmm

Orthorhombic

Orthorhombic

62

Pnam

mmm

Orthorhombic

Orthorhombic

62

Pnma

mmm

Orthorhombic

Orthorhombic

63

Amam

mmm

Orthorhombic

Orthorhombic

63

Amma

mmm

Orthorhombic

Orthorhombic

63

Bbmm

mmm

Orthorhombic

Orthorhombic

63

Bmmb

mmm

Orthorhombic

Orthorhombic

63

Ccmm

mmm

Orthorhombic

Orthorhombic

63

Cmcm

mmm

Orthorhombic

Orthorhombic

64

Aeam

mmm

Orthorhombic

Orthorhombic

64

Aema

mmm

Orthorhombic

Orthorhombic

64

Bbem

mmm

Orthorhombic

Orthorhombic

64

Bmeb

mmm

Orthorhombic

Orthorhombic

64

Ccme

mmm

Orthorhombic

Orthorhombic

64

Cmce

mmm

Orthorhombic

Orthorhombic

65

Ammm

mmm

Orthorhombic

Orthorhombic

65

Bmmm

mmm

Orthorhombic

Orthorhombic

65

Cmmm

mmm

Orthorhombic

Orthorhombic

66

Amaa

mmm

Orthorhombic

Orthorhombic

66

Bbmb

mmm

Orthorhombic

Orthorhombic

66

Cccm

mmm

Orthorhombic

Orthorhombic

67

Aemm

mmm

Orthorhombic

Orthorhombic

67

Bmem

mmm

Orthorhombic

Orthorhombic

67

Cmme

mmm

Orthorhombic

Orthorhombic

68

Aeaa

mmm

Orthorhombic

Orthorhombic

68

Bbeb

mmm

Orthorhombic

Orthorhombic

68

Ccce

mmm

Orthorhombic

Orthorhombic

69

Fmmm

mmm

Orthorhombic

Orthorhombic

70

Fddd

mmm

Orthorhombic

Orthorhombic

70

Fddd:2

mmm

Orthorhombic

Orthorhombic

71

Immm

mmm

Orthorhombic

Orthorhombic

72

Ibam

mmm

Orthorhombic

Orthorhombic

72

Icma

mmm

Orthorhombic

Orthorhombic

72

Imcb

mmm

Orthorhombic

Orthorhombic

73

Ibca

mmm

Orthorhombic

Orthorhombic

73

Icab

mmm

Orthorhombic

Orthorhombic

74

Ibmm

mmm

Orthorhombic

Orthorhombic

74

Icmm

mmm

Orthorhombic

Orthorhombic

74

Imam

mmm

Orthorhombic

Orthorhombic

74

Imcm

mmm

Orthorhombic

Orthorhombic

74

Imma

mmm

Orthorhombic

Orthorhombic

74

Immb

mmm

Orthorhombic

Orthorhombic

Tetragonal#

Space group, point group, lattice system, and crystal systems.#

Space Group Number

Space Group Symbol

Point Group

Lattice System

Crystal System

75

P4

4

Tetragonal

Tetragonal

76

P41

4

Tetragonal

Tetragonal

77

P42

4

Tetragonal

Tetragonal

78

P43

4

Tetragonal

Tetragonal

79

I4

4

Tetragonal

Tetragonal

80

I41

4

Tetragonal

Tetragonal

81

P-4

-4

Tetragonal

Tetragonal

82

I-4

-4

Tetragonal

Tetragonal

83

P4/m

4/m

Tetragonal

Tetragonal

84

P42/m

4/m

Tetragonal

Tetragonal

85

P4/n

4/m

Tetragonal

Tetragonal

85

P4/n:2

4/m

Tetragonal

Tetragonal

86

P42/n

4/m

Tetragonal

Tetragonal

86

P42/n:2

4/m

Tetragonal

Tetragonal

87

I4/m

4/m

Tetragonal

Tetragonal

88

I41/a

4/m

Tetragonal

Tetragonal

88

I41/a:2

4/m

Tetragonal

Tetragonal

89

P422

422

Tetragonal

Tetragonal

90

P4212

422

Tetragonal

Tetragonal

91

P4122

422

Tetragonal

Tetragonal

92

P41212

422

Tetragonal

Tetragonal

93

P4222

422

Tetragonal

Tetragonal

94

P42212

422

Tetragonal

Tetragonal

95

P4322

422

Tetragonal

Tetragonal

96

P43212

422

Tetragonal

Tetragonal

97

I422

422

Tetragonal

Tetragonal

98

I4122

422

Tetragonal

Tetragonal

99

P4mm

4mm

Tetragonal

Tetragonal

100

P4bm

4mm

Tetragonal

Tetragonal

101

P42cm

4mm

Tetragonal

Tetragonal

102

P42nm

4mm

Tetragonal

Tetragonal

103

P4cc

4mm

Tetragonal

Tetragonal

104

P4nc

4mm

Tetragonal

Tetragonal

105

P42mc

4mm

Tetragonal

Tetragonal

106

P42bc

4mm

Tetragonal

Tetragonal

107

I4mm

4mm

Tetragonal

Tetragonal

108

I4cm

4mm

Tetragonal

Tetragonal

109

I41md

4mm

Tetragonal

Tetragonal

110

I41cd

4mm

Tetragonal

Tetragonal

111

P-42m

-42m

Tetragonal

Tetragonal

112

P-42c

-42m

Tetragonal

Tetragonal

113

P-421m

-42m

Tetragonal

Tetragonal

114

P-421c

-42m

Tetragonal

Tetragonal

115

P-4m2

-4m2

Tetragonal

Tetragonal

116

P-4c2

-4m2

Tetragonal

Tetragonal

117

P-4b2

-4m2

Tetragonal

Tetragonal

118

P-4n2

-4m2

Tetragonal

Tetragonal

119

I-4m2

-4m2

Tetragonal

Tetragonal

120

I-4c2

-4m2

Tetragonal

Tetragonal

121

I-42m

-42m

Tetragonal

Tetragonal

122

I-42d

-42m

Tetragonal

Tetragonal

123

P4/mmm

4/mmm

Tetragonal

Tetragonal

124

P4/mcc

4/mmm

Tetragonal

Tetragonal

125

P4/nbm

4/mmm

Tetragonal

Tetragonal

125

P4/nbm:2

4/mmm

Tetragonal

Tetragonal

126

P4/nnc

4/mmm

Tetragonal

Tetragonal

126

P4/nnc:2

4/mmm

Tetragonal

Tetragonal

127

P4/mbm

4/mmm

Tetragonal

Tetragonal

128

P4/mnc

4/mmm

Tetragonal

Tetragonal

129

P4/nmm

4/mmm

Tetragonal

Tetragonal

129

P4/nmm:2

4/mmm

Tetragonal

Tetragonal

130

P4/ncc

4/mmm

Tetragonal

Tetragonal

130

P4/ncc:2

4/mmm

Tetragonal

Tetragonal

131

P42/mmc

4/mmm

Tetragonal

Tetragonal

132

P42/mcm

4/mmm

Tetragonal

Tetragonal

133

P42/nbc

4/mmm

Tetragonal

Tetragonal

133

P42/nbc:2

4/mmm

Tetragonal

Tetragonal

134

P42/nnm

4/mmm

Tetragonal

Tetragonal

134

P42/nnm:2

4/mmm

Tetragonal

Tetragonal

135

P42/mbc

4/mmm

Tetragonal

Tetragonal

136

P42/mnm

4/mmm

Tetragonal

Tetragonal

137

P42/nmc

4/mmm

Tetragonal

Tetragonal

137

P42/nmc:2

4/mmm

Tetragonal

Tetragonal

138

P42/ncm

4/mmm

Tetragonal

Tetragonal

138

P42/ncm:2

4/mmm

Tetragonal

Tetragonal

139

I4/mmm

4/mmm

Tetragonal

Tetragonal

140

I4/mcm

4/mmm

Tetragonal

Tetragonal

141

I41/amd

4/mmm

Tetragonal

Tetragonal

141

I41/amd:2

4/mmm

Tetragonal

Tetragonal

142

I41/acd

4/mmm

Tetragonal

Tetragonal

142

I41/acd:2

4/mmm

Tetragonal

Tetragonal

Trigonal#

Space group, point group, lattice system, and crystal systems.#

Space Group Number

Space Group Symbol

Point Group

Lattice System

Crystal System

143

P3

3

Hexagonal

Trigonal

144

P31

3

Hexagonal

Trigonal

145

P32

3

Hexagonal

Trigonal

146

R3

3

Hexagonal

Trigonal

146

R3:r

3r

Rhombohedral

Trigonal

147

P-3

-3

Hexagonal

Trigonal

148

R-3

-3

Hexagonal

Trigonal

148

R-3:r

-3r

Rhombohedral

Trigonal

149

P312

312

Hexagonal

Trigonal

150

P321

321

Hexagonal

Trigonal

151

P3112

312

Hexagonal

Trigonal

152

P3121

321

Hexagonal

Trigonal

153

P3212

312

Hexagonal

Trigonal

154

P3221

321

Hexagonal

Trigonal

155

R32

3

Hexagonal

Trigonal

155

R32:r

3r

Rhombohedral

Trigonal

156

P3m1

3m1

Hexagonal

Trigonal

157

P31m

31m

Hexagonal

Trigonal

158

P3c1

3m1

Hexagonal

Trigonal

159

P31c

31m

Hexagonal

Trigonal

160

R3m

3m

Hexagonal

Trigonal

160

R3m:r

3mr

Rhombohedral

Trigonal

161

R3c

3m

Hexagonal

Trigonal

161

R3c:r

3mr

Rhombohedral

Trigonal

162

P-31m

-31m

Hexagonal

Trigonal

163

P-31c

-31m

Hexagonal

Trigonal

164

P-3m1

-3m1

Hexagonal

Trigonal

165

P-3c1

-3m1

Hexagonal

Trigonal

166

R-3m

-3m

Hexagonal

Trigonal

166

R-3m:r

-3mr

Rhombohedral

Trigonal

167

R-3c

-3m

Hexagonal

Trigonal

167

R-3c:r

-3mr

Rhombohedral

Trigonal

Hexagonal#

Space group, point group, lattice system, and crystal systems.#

Space Group Number

Space Group Symbol

Point Group

Lattice System

Crystal System

168

P6

6

Hexagonal

Hexagonal

169

P61

6

Hexagonal

Hexagonal

170

P65

6

Hexagonal

Hexagonal

171

P62

6

Hexagonal

Hexagonal

172

P64

6

Hexagonal

Hexagonal

173

P63

6

Hexagonal

Hexagonal

174

P-6

-6

Hexagonal

Hexagonal

175

P6/m

6/m

Hexagonal

Hexagonal

176

P63/m

6/m

Hexagonal

Hexagonal

177

P622

622

Hexagonal

Hexagonal

178

P6122

622

Hexagonal

Hexagonal

179

P6522

622

Hexagonal

Hexagonal

180

P6222

622

Hexagonal

Hexagonal

181

P6422

622

Hexagonal

Hexagonal

182

P6322

622

Hexagonal

Hexagonal

183

P6mm

6mm

Hexagonal

Hexagonal

184

P6cc

6mm

Hexagonal

Hexagonal

185

P63cm

6mm

Hexagonal

Hexagonal

186

P63mc

6mm

Hexagonal

Hexagonal

187

P-6m2

-6m2

Hexagonal

Hexagonal

188

P-6c2

-6m2

Hexagonal

Hexagonal

189

P-62m

-62m

Hexagonal

Hexagonal

190

P-62c

-62m

Hexagonal

Hexagonal

191

P6/mmm

6/mmm

Hexagonal

Hexagonal

192

P6/mcc

6/mmm

Hexagonal

Hexagonal

193

P63/mcm

6/mmm

Hexagonal

Hexagonal

194

P63/mmc

6/mmm

Hexagonal

Hexagonal

Cubic#

Space group, point group, lattice system, and crystal systems.#

Space Group Number

Space Group Symbol

Point Group

Lattice System

Crystal System

195

P23

23

Cubic

Cubic

196

F23

23

Cubic

Cubic

197

I23

23

Cubic

Cubic

198

P213

23

Cubic

Cubic

199

I213

23

Cubic

Cubic

200

Pm-3

m-3

Cubic

Cubic

201

Pn-3

m-3

Cubic

Cubic

201

Pn-3:2

m-3

Cubic

Cubic

202

Fm-3

m-3

Cubic

Cubic

203

Fd-3

m-3

Cubic

Cubic

203

Fd-3:2

m-3

Cubic

Cubic

204

Im-3

m-3

Cubic

Cubic

205

Pa-3

m-3

Cubic

Cubic

206

Ia-3

m-3

Cubic

Cubic

207

P432

432

Cubic

Cubic

208

P4232

432

Cubic

Cubic

209

F432

432

Cubic

Cubic

210

F4132

432

Cubic

Cubic

211

I432

432

Cubic

Cubic

212

P4332

432

Cubic

Cubic

213

P4132

432

Cubic

Cubic

214

I4132

432

Cubic

Cubic

215

P-43m

-43m

Cubic

Cubic

216

F-43m

-43m

Cubic

Cubic

217

I-43m

-43m

Cubic

Cubic

218

P-43n

-43m

Cubic

Cubic

219

F-43c

-43m

Cubic

Cubic

220

I-43d

-43m

Cubic

Cubic

221

Pm-3m

m-3m

Cubic

Cubic

222

Pn-3n

m-3m

Cubic

Cubic

222

Pn-3n:2

m-3m

Cubic

Cubic

223

Pm-3n

m-3m

Cubic

Cubic

224

Pn-3m

m-3m

Cubic

Cubic

224

Pn-3m:2

m-3m

Cubic

Cubic

225

Fm-3m

m-3m

Cubic

Cubic

226

Fm-3c

m-3m

Cubic

Cubic

227

Fd-3m

m-3m

Cubic

Cubic

227

Fd-3m:2

m-3m

Cubic

Cubic

228

Fd-3c

m-3m

Cubic

Cubic

228

Fd-3c:2

m-3m

Cubic

Cubic

229

Im-3m

m-3m

Cubic

Cubic

230

Ia-3d

m-3m

Cubic

Cubic