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