wulfric.cell.lepage#

wulfric.cell.lepage(cell, angle_tolerance=0.0001, give_all_results=False, no_niggli=False, _limit=2.0)[source]#

Detect Bravais lattice type with the Le Page algorithm [1].

Details of the implementation are written in LePage algorithm.

Parameters:
cell(3, 3) array-like

Matrix of a cell, rows are interpreted as vectors.

angle_tolerancefloat, default 1e-4

Angle tolerance for the search of the actual symmetry axes. It is recommended to reduce angle_tolerance to account for the finite precision of the angles of the cell. Default value is chosen in the contexts of condense matter physics, assuming that angles are in degrees. Please choose appropriate tolerance for your problem.

give_all_resultsbool, default False

Whether to return the list of Bravais lattice types identified during the process of exclusion of the pseudosymmetry axes. Last element is the computed Bravais lattice type.

no_nigglibool, default False

Whether to skip niggli reduction.

_limitfloat, default 2.0

Tolerance parameter for the construction of the list of potential symmetry axes. Given in degrees. Change with caution and only if you understand what this parameter means and read [1].

Returns:
lattice_typestr

Bravais lattice type.

intermediate_typeslist of str

Returned if give_all_results is True.

References

[1] (1,2)

Le Page, Y., 1982. The derivation of the axes of the conventional unit cell from the dimensions of the Buerger-reduced cell. Journal of Applied Crystallography, 15(3), pp.255-259.

Examples

>>> import wulfric as wulf
>>> wulf.cell.lepage([[1, 0, 0], [0, 1, 0], [0, 0, 1]])
'CUB'
>>> wulf.cell.lepage([[1, 0, 0], [0, 1, 0], [0, 0, 2]])
'TET'
>>> wulf.cell.lepage([[1, 0, 0], [0, 2, 0], [0, 0, 3]])
'ORC'