pyFAI.crystallography package#

pyFAI.crystallography.calibrant module#

Calibrant

A module containing classical calibrant class

class pyFAI.crystallography.calibrant.Calibrant(filename: str | None = None, dSpacing: List[float] | None = None, wavelength: float | None = None)#

Bases: object

A calibrant is a named reference compound where the d-spacing are known.

The d-spacing (interplanar distances) are expressed in Angstrom (in the file).

If the access is don’t from a file, the IO are delayed. If it is not desired one could explicitly access to load_file().

c = Calibrant()
c.load_file("my_calibrant.D")
Parameters:
  • filename – A filename containing the description (usually with .D extension). The access to the file description is delayed until the information is needed.

  • dSpacing – A list of d spacing in Angstrom.

  • wavelength – A wavelength in meter

__init__(filename: str | None = None, dSpacing: List[float] | None = None, wavelength: float | None = None)#
append_2th(value: float)#

Insert a 2th position at the right position of the dSpacing list

append_dSpacing(value: float)#

Insert a d position at the right position of the dSpacing list

count_registered_dSpacing() int#

Count of registered dSpacing positions.

property dSpacing: List[float]#
fake_calibration_image(ai, shape=None, Imax=1.0, Imin=0.0, U=0, V=0, W=0.0001) ndarray#

Generates a fake calibration image from an azimuthal integrator. :param ai: azimuthal integrator :param Imax: maximum intensity of rings :param Imin: minimum intensity of the signal (background) :param U, V, W: width of the peak from Caglioti’s law (FWHM^2 = Utan(th)^2 + Vtan(th) + W)

property filename: str#
classmethod from_cell(cell)#

Alternative constructor from a cell-object

Parameters:

cell – Instance of Cell

Returns:

Calibrant instance

get_2th() List[float]#

Returns the 2theta positions for all peaks (cached)

get_2th_index(angle: float, delta: float | None = None) int#

Returns the index in the 2theta angle index.

Parameters:
  • angle – expected angle in radians

  • delta – precision on angle

Returns:

0-based index or None

get_dSpacing() List[float]#
get_filename() str#
get_max_wavelength(index: int | None = None)#

Calculate the maximum wavelength assuming the ring at index is visible.

Bragg’s law says: $lambda = 2d sin(theta)$ So at 180° $lambda = 2d$

Parameters:

index – Ring number, otherwise assumes all rings are visible

Returns:

the maximum visible wavelength

get_peaks(unit: str = '2th_deg')#

Calculate the peak position as this unit.

Returns:

numpy array (unlike other methods which return lists)

get_wavelength() float | None#

Returns the used wavelength.

load_file(filename: str)#

Load a calibrant.from file.

Parameters:

filename – The filename containing the calibrant description.

property name: str#

Returns a short name describing the calibrant.

It’s the name of the file or the resource.

save_dSpacing(filename: str | None = None)#

Save the d-spacing to a file.

setWavelength_change2th(value: float | None = None)#

Set a new wavelength.

setWavelength_changeDs(value: float | None = None)#

Set a new wavelength and only update the dSpacing list.

This is probably not a good idea, but who knows!

set_dSpacing(lst: List[float])#
set_wavelength(value: float | None = None)#

Set a new wavelength .

property wavelength: float | None#

Returns the used wavelength.

pyFAI.crystallography.calibrant_factory module#

Calibrant factory

A module to build calibrants

exception pyFAI.crystallography.calibrant_factory.BadCalibrantName#

Bases: KeyError

pyFAI.crystallography.calibrant_factory.CALIBRANT_FACTORY = Calibrants available: Cr2O3, cristobaltite, Ni, alpha_Al2O3, CeO2, Pt, ZnO, vanadinite, PBBA, TiO2, lysozyme, Si_SRM640, Si_SRM640a, Si_SRM640e, LaB6, LaB6_SRM660a, NaCl, LaB6_SRM660b, CuO, Al, Si_SRM640d, CrOx, Si_SRM640b, Au, LaB6_SRM660c, quartz, mock, AgBh, hydrocerussite, C14H30O, Si_SRM640c, Si#

Default calibration factory provided by the library.

class pyFAI.crystallography.calibrant_factory.CalibrantFactory(basedir=None)#

Bases: object

Behaves like a dict but is actually a factory:

Each time one retrieves an object it is a new geniune new calibrant (unmodified)

__init__(basedir=None)#

Constructor

Parameters:

basedir – directory name where to search for the calibrants

get(what: str, notfound=None)#
has_key(k: str)#
items()#
keys()#
values()#

pyFAI.crystallography.cell module#

Crystallographic cell

A module with the Cell class defining a crystallographic cell

Interesting formula: https://geoweb.princeton.edu/archival/duffy/xtalgeometry.pdf

class pyFAI.crystallography.cell.Cell(a: float = 1.0, b: float = 1.0, c: float = 1.0, alpha: float = 90.0, beta: float = 90.0, gamma: float = 90.0, lattice: str = 'triclinic', lattice_type: str = 'P')#

Bases: object

This is a cell object, able to calculate the volume and d-spacing according to formula from:

http://geoweb3.princeton.edu/research/MineralPhy/xtalgeometry.pdf

__init__(a: float = 1.0, b: float = 1.0, c: float = 1.0, alpha: float = 90.0, beta: float = 90.0, gamma: float = 90.0, lattice: str = 'triclinic', lattice_type: str = 'P')#

Constructor of the Cell class:

Crystalographic units are Angstrom for distances and degrees for angles !

Parameters:
  • a,b,c – unit cell length in Angstrom

  • gamma (alpha, beta,) – unit cell angle in degrees

  • lattice – “cubic”, “tetragonal”, “hexagonal”, “rhombohedral”, “orthorhombic”, “monoclinic”, “triclinic”

  • lattice_type – P, I, F, C or R

classmethod cubic(a, lattice_type='P')#

Factory for cubic lattices

Parameters:

a – unit cell length

d(hkl)#

Calculate the actual d-spacing for a 3-tuple of integer representing a family of Miller plans

Parameters:

hkl – 3-tuple of integers

Returns:

the inter-planar distance

d_spacing(dmin=1.0)#

Calculate all d-spacing down to dmin

applies selection rules

Parameters:

dmin – minimum value of spacing requested

Returns:

dict d-spacing as string, list of tuple with Miller indices preceded with the numerical value

classmethod diamond(a)#

Factory for Diamond type FCC like Si and Ge

Parameters:

a – unit cell length

get_type()#
classmethod hexagonal(a, c, lattice_type='P')#

Factory for hexagonal lattices

Parameters:
  • a – unit cell length

  • c – unit cell length

lattices = ['cubic', 'tetragonal', 'hexagonal', 'rhombohedral', 'orthorhombic', 'monoclinic', 'triclinic']#
classmethod monoclinic(a, b, c, beta, lattice_type='P')#

Factory for hexagonal lattices

Parameters:
  • a – unit cell length

  • b – unit cell length

  • c – unit cell length

  • beta – unit cell angle

classmethod orthorhombic(a, b, c, lattice_type='P')#

Factory for orthorhombic lattices

Parameters:
  • a – unit cell length

  • b – unit cell length

  • c – unit cell length

classmethod rhombohedral(a, alpha, lattice_type='P')#

Factory for hexagonal lattices

Parameters:
  • a – unit cell length

  • alpha – unit cell angle

save(name, long_name=None, doi=None, dmin=1.0, dest_dir=None)#

Save informations about the cell in a d-spacing file, usable as Calibrant

Parameters:
  • name – name of the calibrant

  • doi – reference of the publication used to parametrize the cell

  • dmin – minimal d-spacing

  • dest_dir – name of the directory where to save the result

selection_rules#

contains a list of functions returning True(allowed)/False(forbiden)/None(unknown)

set_type(lattice_type)#
classmethod tetragonal(a, c, lattice_type='P')#

Factory for tetragonal lattices

Parameters:
  • a – unit cell length

  • c – unit cell length

to_calibrant(dmin=1.0)#

Convert a Cell object to a Calibrant object

Parameters:

dmin – minimum d-spacing to include in calibrant (in Angstrom)

Returns:

Calibrant object

property type#
types = {'C': 'Side centered', 'F': 'Face centered', 'I': 'Body centered', 'P': 'Primitive', 'R': 'Rhombohedral'}#
property volume#

pyFAI.crystallography.space_groups module#

Space groups: There are 230 space groups as defined in the internationnal tables of crystallography (vol.A)

The ReflectionCondition contains selection rules for all of them but not all are correct (yet)

class pyFAI.crystallography.space_groups.ReflectionCondition#

Bases: object

This class contains selection rules for most space-groups

All methods are static and take a triplet hkl as input representing a familly of Miller plans. They return True if the reflection is allowed by symmetry, False otherwise.

Most of those methods are AI-generated (Co-Pilot) and about 80% of them are still WRONG unless tagged “validated” in the docstring.

Help is welcome to polish this class and fix the non-validated ones.

static group100_P4bm(h, k, l)#

Space group 100: P4bm.

static group101_p4cc(h, k, l)#

Space group 101: P4cc. WRONG.

static group102_p4nc(h, k, l)#

Space group 102: P4nc. WRONG.

static group103_p42mc(h, k, l)#

Space group 103: P42mc. (0,0,l): l even.

static group104_p42cm(h, k, l)#

Space group 104: P42cm. (0,0,l): l even.

static group105_p42cc(h, k, l)#

Space group 105: P42cc. (0,0,l): l even.

static group106_p42nc(h, k, l)#

Space group 106: P42nc. (0,0,l): l even.

static group107_p42mmc(h, k, l)#

Space group 107: P42mmc. (0,0,l): l even.

static group108_p42mcm(h, k, l)#

Space group 108: P42mcm. (0,0,l): l even.

static group109_p42ccm(h, k, l)#

Space group 109: P42ccm. (0,0,l): l even.

static group10_p2m_b(h, k, l)#

Space group 10: P2/m (unique axis b). No systematic absences.validated

static group110_p42ncm(h, k, l)#

Space group 110: P42ncm. (h+k) even; (0,0,l): l even.

static group111_p42mbc(h, k, l)#

Space group 111: P42mbc. (h+k) even; (0,0,l): l even.

static group112_p42cbm(h, k, l)#

Space group 112: P42cbm. (h+k) even; (0,0,l): l even.

static group113_p4mmm(h, k, l)#

Space group 113: P4/mmm. No systematic absences.

static group114_p4mcc(h, k, l)#

Space group 114: P4/mcc. (0,0,l): l even; (h+k) even.

static group115_p4nbm(h, k, l)#

Space group 115: P4/nbm. (h+k) even.

static group116_p4nnc(h, k, l)#

Space group 116: P4/nnc. (h+k) even.

static group117_p4mbm(h, k, l)#

Space group 117: P4/mbm. (h+k) even.

static group118_p4mnc(h, k, l)#

Space group 118: P4/mnc. (h+k) even.

static group119_p4nmm(h, k, l)#

Space group 119: P4/nmm. (h+k) even.

static group11_p21m_b(h, k, l)#

Space group 11: P21/m (unique axis b). (0 k 0): k even only.validated

static group120_p4ncc(h, k, l)#

Space group 120: P4/ncc. (h+k) even; (0,0,l): l even.

static group121_p4mm(h, k, l)#

Space group 121: P4mm. No systematic absences.

static group122_p4bm(h, k, l)#

Space group 122: P4bm. No systematic absences.

static group123_p42cm(h, k, l)#

Space group 123: P42cm. (0,0,l): l even.

static group124_p42nm(h, k, l)#

Space group 124: P42nm. (0,0,l): l even.

static group125_p42mc(h, k, l)#

Space group 125: P42mc. (0,0,l): l even.

static group126_p42bc(h, k, l)#

Space group 126: P42bc. (0,0,l): l even.

static group127_p4cc(h, k, l)#

Space group 127: P4cc. No systematic absences.

static group128_p4nc(h, k, l)#

Space group 128: P4nc. No systematic absences.

static group129_p4mmc(h, k, l)#

Space group 129: P4mmc. (0,0,l): l even.

static group12_c2m_b(h, k, l)#

Space group 12: C2/m (unique axis b). C-centering: (h + k) even. (0 k 0): k even only. validated

static group130_p4mcm(h, k, l)#

Space group 130: P4mcm. (0,0,l): l even.

static group131_p4ccm(h, k, l)#

Space group 131: P4ccm. (0,0,l): l even.

static group132_p4ncm(h, k, l)#

Space group 132: P4ncm. (h+k) even; (0,0,l): l even.

static group133_p4mbc(h, k, l)#

Space group 133: P4mbc. (h+k) even; (0,0,l): l even.

static group134_p4cbm(h, k, l)#

Space group 134: P4cbm. (h+k) even; (0,0,l): l even.

static group135_p4mmm(h, k, l)#

Space group 135: P4/mmm. No systematic absences.

static group136_p4mcc(h, k, l)#

Space group 136: P4/mcc. (0,0,l): l even; (h+k) even.

static group137_p4nbm(h, k, l)#

Space group 137: P4/nbm. (h+k) even.

static group138_p4nnc(h, k, l)#

Space group 138: P4/nnc. (h+k) even.

static group139_p4mbm(h, k, l)#

Space group 139: P4/mbm. (h+k) even.

static group13_P2c_b(h, k, l)#

Space group 13: P 1 2/c 1 (unique axis b). (h 0 l): l even. validated

static group140_p4mnc(h, k, l)#

Space group 140: P4/mnc. (h+k) even.

static group141_p4nmm(h, k, l)#

Space group 141: P4/nmm. (h+k) even.

static group142_p4ncc(h, k, l)#

Space group 142: P4/ncc. (h+k) even; (0,0,l): l even.

static group143_p3(h, k, l)#

Space group 143: P3. No systematic absences. Validated

static group144_p31(h, k, l)#

Space group 144: P31. No systematic absences.

static group145_p32(h, k, l)#

Space group 145: P32. No systematic absences.

static group146_r3(h, k, l)#

Space group 146: R3 (hexagonal axes). (h - k + l) divisible by 3.

static group147_p3_1_2(h, k, l)#

Space group 147: P3_1 2. (0,0,l): l = 3n.

static group148_p3_2_1(h, k, l)#

Space group 148: P3_2 1. (0,0,l): l = 3n.

static group149_r3m(h, k, l)#

Space group 149: R3m (hexagonal axes). (h - k + l) divisible by 3.

static group14_P21c_b(h, k, l)#

Space group 14: P 1 21/c 1 (unique axis b). h0l: l even, 0k0: k even. validated

static group150_r3c(h, k, l)#

Space group 150: R3c (hexagonal axes). (h - k + l) divisible by 3; (0,0,l): l even.

static group151_p312(h, k, l)#

Space group 151: P312. No systematic absences.

static group152_p321(h, k, l)#

Space group 152: P321. No systematic absences.

static group153_p3112(h, k, l)#

Space group 153: P3112. (0,0,l): l = 3n.validated

static group154_p3121(h, k, l)#

Space group 154: P3121. (0,0,l): l = 3n.validated

static group155_p3212(h, k, l)#

Space group 155: P3212. (0,0,l): l = 3n.

static group156_p3221(h, k, l)#

Space group 156: P3221. (0,0,l): l = 3n.

static group157_r32(h, k, l)#

Space group 157: R32 (hexagonal axes). (h - k + l) divisible by 3.

static group158_p3m1(h, k, l)#

Space group 158: P3m1. No systematic absences.

static group159_p31m(h, k, l)#

Space group 159: P31m. No systematic absences.

static group15_c2c_b(h, k, l)#

Space group 15: C 1 2/c 1(unique axis b). C-centering: (h + k) even. (0 k 0): k even only. validated

static group160_p3c1(h, k, l)#

Space group 160: P3c1. No systematic absences.

static group161_p31c(h, k, l)#

Space group 161: P31c. No systematic absences.

static group162_r3m(h, k, l)#

Space group 162: R3m (hexagonal axes). (h - k + l) divisible by 3.

static group163_r3c(h, k, l)#

Space group 163: R3c (hexagonal axes). (h - k + l) divisible by 3; (0,0,l): l even.

static group164_p_31m(h, k, l)#

Space group 164: P-31m. No systematic absences. validated

static group165_P_3c1(h, k, l)#

Space group 165: P-3c1.

static group166_R_3m(h, k, l)#

Group 166: R -3 m used in hydrocerusite. Validated from http://img.chem.ucl.ac.uk/sgp/large/166bz2.htm

static group167(h, k, l)#

Group 167 R -3 c used for Corrundum from http://img.chem.ucl.ac.uk/sgp/large/167bz2.htm

static group167_R_3c(h, k, l)#

Space group 167: R-3c.

static group168_P6(h, k, l)#

Space group 168: P6. No selection. validated

static group168_r_3m(h, k, l)#

Space group 168: R-3m (hexagonal axes). (h - k + l) divisible by 3.

static group169_P61(h, k, l)#

Space group 169: P61. Validated

static group169_r_3c(h, k, l)#

Space group 169: R-3c (hexagonal axes). (h - k + l) divisible by 3; (0,0,l): l even.

static group16_P222(h, k, l)#

Space group 16: P222. No systematic absences.validated

static group170_p6(h, k, l)#

Space group 170: P6. No systematic absences.

static group171_p61(h, k, l)#

Space group 171: P61. (0,0,l): l = 6n.

static group172_p65(h, k, l)#

Space group 172: P65. (0,0,l): l = 6n.

static group173_p62(h, k, l)#

Space group 173: P62. (0,0,l): l = 3n.

static group174_p64(h, k, l)#

Space group 174: P64. (0,0,l): l = 3n.

static group175_p63(h, k, l)#

Space group 175: P63. (0,0,l): l = 2n.

static group176_p6_m(h, k, l)#

Space group 176: P6/m. No systematic absences.

static group177_p63_m(h, k, l)#

Space group 177: P63/m. (0,0,l): l even.

static group178_p6cc(h, k, l)#

Space group 178: P6cc. No systematic absences.

static group179_p6mc(h, k, l)#

Space group 179: P6mc. No systematic absences.

static group17_P2221(h, k, l)#

Space group 17: P 2 2 21. (0 0 l): l even only. validated

static group180_p63cm(h, k, l)#

Space group 180: P63cm. (0,0,l): l even.

static group181_p63_c(h, k, l)#

Space group 181: P63c. (0,0,l): l even.

static group182_p6_22(h, k, l)#

Space group 182: P622. No systematic absences.

static group183_p6_21_22(h, k, l)#

Space group 183: P6_122. (0,0,l): l = 6n.

static group184_p6_522(h, k, l)#

Space group 184: P6_522. (0,0,l): l = 6n.

static group185_p6_2_22(h, k, l)#

Space group 185: P6_222. (0,0,l): l = 3n.

static group186_p6_4_22(h, k, l)#

Space group 186: P6_422. (0,0,l): l = 3n.

static group187_p6mmm(h, k, l)#

Space group 187: P6/mmm. No systematic absences.validated

static group188_p6mcc(h, k, l)#

Space group 188: P6/mcc. (0,0,l): l even.

static group189_p63mc(h, k, l)#

Space group 189: P63mc. (0,0,l): l even.

static group18_P21212(h, k, l)#

Space group 18: P 21 21 2. (0 0 l): l even only. (0 k 0): k even only. (h 0 0): h even only. validated

static group190_p63cm(h, k, l)#

Space group 190: P63cm. (0,0,l): l even.

static group191_p63_mcm(h, k, l)#

Space group 191: P63/mcm. (0,0,l): l even.

static group192_p63_mmc(h, k, l)#

Space group 192: P63/mmc. (0,0,l): l even.

static group193_p23(h, k, l)#

Space group 193: P23. No systematic absences.

static group194_f23(h, k, l)#

Space group 194: F23. F-centering: h, k, l all even or all odd.

static group195_i23(h, k, l)#

Space group 195: I23. I-centering: (h + k + l) even.

static group196_p213(h, k, l)#

Space group 196: P213. No systematic absences.

static group197_i213(h, k, l)#

Space group 197: I213. I-centering: (h + k + l) even.validated

static group198_pm3(h, k, l)#

Space group 198: Pm-3. No systematic absences.

static group199_pa3(h, k, l)#

Space group 199: Pa-3. No systematic absences.

static group19_p212121(h, k, l)#

Space group 19: P212121. (0 0 l): l even only. (0 k 0): k even only. (h 0 0): h even only.validated

static group1_p1(h, k, l)#

Space group 1: P1. No systematic absences. validated

static group200_fn3(h, k, l)#

Space group 200: Fm-3. F-centering: h, k, l all even or all odd.

static group201_pn3m(h, k, l)#

Space group 201: Pn-3m. No systematic absences.

static group202_pn3n(h, k, l)#

Space group 202: Pn-3n. (h + k + l) even.

static group203_pm3m(h, k, l)#

Space group 203: Pm-3m. No systematic absences.

static group204_pm3n(h, k, l)#

Space group 204: Pm-3n. (h + k + l) even.validated

static group205_pn3n(h, k, l)#

Space group 205: Pn-3n. (h + k + l) even.

static group206_fm3m(h, k, l)#

Space group 206: Fm-3m. F-centering: h, k, l all even or all odd.

static group207_fm3c(h, k, l)#

Space group 207: Fm-3c. F-centering: h, k, l all even or all odd; (0, 0, l): l even.

static group208_fn3m(h, k, l)#

Space group 208: Fd-3m. F-centering: h, k, l all even or all odd.

static group209_fn3c(h, k, l)#

Space group 209: Fd-3c. F-centering: h, k, l all even or all odd; (0, 0, l): l even.validated

static group20_c2221(h, k, l)#

Space group 20: C2221. C-centering: h + k even, k + l even, h + l even. (0 0 l): l even only. (0 k 0): k even only. (h 0 0): h even only.

static group210_im3m(h, k, l)#

Space group 210: Im-3m. I-centering: (h + k + l) even.

static group211_im3c(h, k, l)#

Space group 211: Im-3c. I-centering: (h + k + l) even; (0, 0, l): l even.validated

static group212_pa3(h, k, l)#

Space group 212: Pa-3. No systematic absences.

static group213_ia3(h, k, l)#

Space group 213: Ia-3. I-centering: (h + k + l) even.

static group214_fm3m(h, k, l)#

Space group 214: Fm-3m. F-centering: h, k, l all even or all odd.

static group215_fm3c(h, k, l)#

Space group 215: Fm-3c. F-centering: h, k, l all even or all odd; (0, 0, l): l even.

static group216_fd3m(h, k, l)#

Space group 216: Fd-3m. F-centering: h, k, l all even or all odd.validated

static group217_fd3c(h, k, l)#

Space group 217: Fd-3c. F-centering: h, k, l all even or all odd; (0, 0, l): l even.

static group218_ia3d(h, k, l)#

Space group 218: Ia-3d. I-centering: (h + k + l) even; (0, 0, l): l divisible by 4.

static group219_pa3(h, k, l)#

Space group 219: Pa-3. No systematic absences.

static group21_c222(h, k, l)#

Space group 21: C222. C-centering: (h + k) even, (k + l) even, (h + l) even.

static group220_ia3(h, k, l)#

Space group 220: Ia-3. I-centering: (h + k + l) even.

static group221_pm3m(h, k, l)#

Space group 221: Pm-3m. No systematic absences.validated

static group222_pm3n(h, k, l)#

Space group 222: Pm-3n. (h + k + l) even.

static group223_pn3m(h, k, l)#

Space group 223: Pn-3m. No systematic absences.

static group224_pn3n(h, k, l)#

Space group 224: Pn-3n. (h + k + l) even.

static group225_fm3m(h, k, l)#

Space group 225: Fm-3m. F-centering: h, k, l all even or all odd.validated

static group226_fm3c(h, k, l)#

Space group 226: Fm-3c. F-centering: h, k, l all even or all odd; (0, 0, l): l even.

static group227_fd3m(h, k, l)#

Space group 227: Fd-3m. F-centering: h, k, l all even or all odd.

static group228_fd3c(h, k, l)#

Space group 228: Fd-3c. F-centering: h, k, l all even or all odd; (0, 0, l): l even.

static group229_ia3d(h, k, l)#

Space group 229: Ia-3d. I-centering: (h + k + l) even; (0, 0, l): l divisible by 4.

static group22_f222(h, k, l)#

Space group 22: F222. F-centering: h, k, l all even or all odd. validated

static group230_ia3d(h, k, l)#

Space group 230: Ia-3d. I-centering: (h + k + l) even; (0, 0, l): l divisible by 4.

static group23_i222(h, k, l)#

Space group 23: I222. I-centering: (h + k + l) even. validated

static group24_i212121(h, k, l)#

Space group 24: I212121. I-centering: (h + k + l) even. (h 0 0): h even; (0 k 0): k even; (0 0 l): l even. validated

static group25_pmm2(h, k, l)#

Space group 25: Pmm2. No systematic absences.validated

static group26_pmc21(h, k, l)#

Space group 26: Pmc21. (h 0 l): h even; (0 k 0): k even.

static group27_pcc2(h, k, l)#

Space group 27: Pcc2. (h 0 l): h even; (0 k 0): k even.

static group28_pma2(h, k, l)#

Space group 28: Pma2. No systematic absences.

static group29_pla2(h, k, l)#

Space group 29: Pla2. (0 k 0): k even; (h 0 l): h even.

static group2_p_1(h, k, l)#

Space group 2: P-1. No systematic absences. validated

static group30_cmm2(h, k, l)#

Space group 30: Cmm2. C-centering: (h + k) even. (h 0 l): h even; (0 k 0): k even.

static group31_cmc21(h, k, l)#

Space group 31: Cmc21. C-centering: (h + k) even. (h 0 l): h even; (0 k 0): k even.

static group32_ccc2(h, k, l)#

Space group 32: Ccc2. C-centering: (h + k) even, (k + l) even, (h + l) even. (h 0 l): h even; (0 k 0): k even.

static group33_ama2(h, k, l)#

Space group 33: Ama2. (0 k 0): k even; (h 0 l): h even.

static group34_aba2(h, k, l)#

Space group 34: Aba2. (0 k 0): k even; (h 0 l): h even.

static group35_fmm2(h, k, l)#

Space group 35: Fmm2. F-centering: h, k, l all even or all odd. (h 0 l): h even; (0 k 0): k even.

static group36_i_b_m_2(h, k, l)#

Space group 36: I b m 2. I-centering: (h + k + l) even. (h 0 l): h even; (0 k 0): k even.

static group37_i_b_c_2(h, k, l)#

Space group 37: I b c 2. I-centering: (h + k + l) even. (h 0 l): h even; (0 k 0): k even.

static group38_i_b_a_2(h, k, l)#

Space group 38: I b a 2. I-centering: (h + k + l) even. (h 0 l): h even; (0 k 0): k even.

static group39_pmmm(h, k, l)#

Space group 39: Pmmm. No systematic absences.

static group3_p2_b(h, k, l)#

Space group 3: P2 (unique axis b). No systematic absences. validated

static group40_pnnm(h, k, l)#

Space group 40: Pnnm. (0 0 l): l even; (0 k 0): k even; (h 0 0): h even.

static group41_pccm(h, k, l)#

Space group 41: Pccm. (h 0 l): h even; (0 k 0): k even.

static group42_pban(h, k, l)#

Space group 42: Pban. (h 0 l): h even; (0 k 0): k even; (h 0 0): h even.

static group43_pmma(h, k, l)#

Space group 43: Pmma. (0 0 l): l even; (0 k 0): k even.

static group44_pmna(h, k, l)#

Space group 44: Pmna. (0 0 l): l even; (0 k 0): k even; (h 0 0): h even.

static group45_pcca(h, k, l)#

Space group 45: Pcca. (h 0 l): h even; (0 k 0): k even; (h 0 0): h even.

static group46_pbam(h, k, l)#

Space group 46: Pbam. (0 0 l): l even; (0 k 0): k even; (h 0 0): h even.

static group47_pccn(h, k, l)#

Space group 47: Pccn. (h 0 l): h even; (0 k 0): k even; (h 0 0): h even.

static group48_pbcn(h, k, l)#

Space group 48: Pbcn. (0 0 l): l even; (0 k 0): k even; (h 0 0): h even.

static group49_pbca(h, k, l)#

Space group 49: Pbca. (0 0 l): l even; (0 k 0): k even; (h 0 0): h even.

static group4_p21_b(h, k, l)#

Space group 4: P21 (unique axis b). (0 k 0): k even only. validated

static group50_pnma(h, k, l)#

Space group 50: Pnma. (0 0 l): l even; (0 k 0): k even; (h 0 0): h even.

static group51_pbam(h, k, l)#

Space group 51: Pbam. (0 0 l): l even; (0 k 0): k even; (h 0 0): h even.

static group52_pccn(h, k, l)#

Space group 52: Pccn. (h 0 l): h even; (0 k 0): k even; (k 0 0): k even.

static group53_pbcn(h, k, l)#

Space group 53: Pbcn. (0 0 l): l even; (0 k 0): k even; (h 0 0): h even.

static group54_pbca(h, k, l)#

Space group 54: Pbca. (0 0 l): l even; (0 k 0): k even; (h 0 0): h even.

static group55_pnma(h, k, l)#

Space group 55: Pnma. (0 0 l): l even; (0 k 0): k even; (h 0 0): h even.

static group56_pmmn(h, k, l)#

Space group 56: Pmmn. (0 0 l): l even; (0 k 0): k even; (h 0 0): h even.

static group57_pmmm(h, k, l)#

Space group 57: Pmmm. No systematic absences.

static group58_pnnn(h, k, l)#

Space group 58: Pnnn. (0 0 l): l even; (0 k 0): k even; (h 0 0): h even.

static group59_cccm(h, k, l)#

Space group 59: Cccm. C-centering: (h + k) even, (k + l) even, (h + l) even.

static group5_c2_b(h, k, l)#

Space group 5: C2 (unique axis b). C-centering: (h + k) even. (0 k 0): k even only. validated

static group60_ccca(h, k, l)#

Space group 60: Ccca. C-centering: (h + k) even, (k + l) even, (h + l) even.

static group61_fmmm(h, k, l)#

Space group 61: Fmmm. F-centering: h, k, l all even or all odd.

static group62_fddd(h, k, l)#

Space group 62: Fddd. F-centering: h, k, l all even or all odd; (h, k, 0): h, k even; (0, k, l): k, l even; (h, 0, l): h, l even.

static group63_immm(h, k, l)#

Space group 63: Immm. I-centering: (h + k + l) even.

static group64_ibam(h, k, l)#

Space group 64: Ibam. I-centering: (h + k + l) even; (0 0 l): l even; (0 k 0): k even; (h 0 0): h even.

static group65_ibca(h, k, l)#

Space group 65: Ibca. I-centering: (h + k + l) even; (0 0 l): l even; (0 k 0): k even; (h 0 0): h even.

static group66_ibcm(h, k, l)#

Space group 66: Ibcm. I-centering: (h + k + l) even; (0 0 l): l even; (0 k 0): k even; (h 0 0): h even.

static group67_p4(h, k, l)#

Space group 67: P4. No systematic absences.

static group68_p41(h, k, l)#

Space group 68: P41. (0, 0, l): l = 4n.

static group69_p42(h, k, l)#

Space group 69: P42. (0, 0, l): l even.

static group6_pm_b(h, k, l)#

Space group 6: Pm (unique axis b). No systematic absences. validated

static group70_p43(h, k, l)#

Space group 70: P43. (0, 0, l): l = 4n.

static group71_i4(h, k, l)#

Space group 71: I4. I-centering: (h + k + l) even.validated

static group72_i41(h, k, l)#

Space group 72: I41. I-centering: (h + k + l) even; (0, 0, l): l = 4n.

static group73_p_4(h, k, l)#

Space group 73: P-4. No systematic absences.

static group74_i_4(h, k, l)#

Space group 74: I-4. I-centering: (h + k + l) even.

static group75_p4_m(h, k, l)#

Space group 75: P4/m. No systematic absences.validated

static group76_p42_m(h, k, l)#

Space group 76: P42/m. (0, 0, l): l even.

static group77_p4_n(h, k, l)#

Space group 77: P4/n. (h + k) even.

static group78_p42_n(h, k, l)#

Space group 78: P42/n. (h + k) even; (0, 0, l): l even.

static group79_i4_m(h, k, l)#

Space group 79: I4/m. I-centering: (h + k + l) even.validated

static group7_pc_b(h, k, l)#

Space group 7: Pc (unique axis b). (h 0 l): l even only. validated

static group80_i41_a(h, k, l)#

Space group 80: I41/a. I-centering: (h + k + l) even; (0, 0, l): l = 4n.validated

static group81_p_42_m(h, k, l)#

Space group 81: P-42m. No systematic absences.validated

static group82_p_42_c(h, k, l)#

Space group 82: P-42c. (0, 0, l): l even.

static group83_p_42_n(h, k, l)#

Space group 83: P-42n. (h + k) even.

static group84_i_42_m(h, k, l)#

Space group 84: I-42m. I-centering: (h + k + l) even.

static group85_i_42_d(h, k, l)#

Space group 85: I-42d. I-centering: (h + k + l) even; (0, 0, l): l = 4n.

static group86_p4_2_2(h, k, l)#

Space group 86: P422. No systematic absences.

static group87_p4_21_2(h, k, l)#

Space group 87: P4_21_2. (0, 0, l): l = 4n.

static group88_p4_32_2(h, k, l)#

Space group 88: P4_32_2. (0, 0, l): l = 4n.

static group89_p4_3_2(h, k, l)#

Space group 89: P4_3_2. (0, 0, l): l = 4n.

static group8_cm_b(h, k, l)#

Space group 8: Cm (unique axis b). C-centering: (h + k) even. validated

static group90_p4_1_2(h, k, l)#

Space group 90: P4_1_2. (0, 0, l): l = 4n.

static group91_p4_12_2(h, k, l)#

Space group 91: P4_12_2. (0, 0, l): l = 4n.validated

static group92_p4_32_2(h, k, l)#

Space group 92: P4_32_2. (0, 0, l): l = 4n.

static group93_p4_3_2(h, k, l)#

Space group 93: P4_3_2. (0, 0, l): l = 4n.

static group94_p4_2_2(h, k, l)#

Space group 94: P4_2_2. (0, 0, l): l even.

static group95_p4_21_2(h, k, l)#

Space group 95: P4_21_2. (0, 0, l): l = 4n.validated

static group96_P_43_21_2(h, k, l)#

Group 96 P 43 21 2, used in lysozyme.

static group97_i4_2_2(h, k, l)#

Space group 97: I422. I-centering: (h + k + l) even.validated

static group98_i4_12_2(h, k, l)#

Space group 98: I4_12_2. I-centering: (h + k + l) even; (0, 0, l): l = 4n.validated

static group99_p4mm(h, k, l)#

Space group 99: P4mm. No systematic absences.validated

static group9_cc_b(h, k, l)#

Space group 9: Cc (unique axis b). C-centering: (h + k) even. (h 0 l): h even only. validated