Skip to content

Symmetry

brille holds each symmetry operation as an integer matrix, the identity, a rotation or a rotoinversion in units of the real-space basis vectors, and a vector, its translation as fractions of those basis vectors. A Symmetry can also be made from operations written as CIF xyz strings, and a HallSymbol decodes a Hall symbol into the generators of its space group. Give a lattice its symmetry shows each in use.

Symmetry

Symmetry(*args, **kwargs)
Symmetry(W: ndarray[int32], w: ndarray[float64])
Symmetry(*args, **kwargs)

One or more symmetry operations of a space group.

A symmetry operation is the combination of a generalised rotation, \(W\), and translation, \(\mathbf{w}\). For any position in space, \(\mathbf{x}\), the operation transforms \(\mathbf{x}\) to another equivalent position

.. math:: \mathbf{x}' = W \mathbf{x} + \mathbf{w}

and can equivalently be expressed as \(\mathbf{x}' = \mathscr{M}\mathbf{x}\).

Crystallographic symmetry operations have an order, \(o\), for which \(\mathscr{M}^o = \mathscr{E}\) i.e. \(o\) repeated applications of the operation is equivalent to the identity operator.

A set of symmetry operations can form a group, \(\mathbb{G}\), with the property that \(\mathscr{M}_k = \mathscr{M}_i \mathscr{M}_j\) with \(\mathscr{M}_i,\mathscr{M}_j,\mathscr{M}_k \in \mathbb{G}\).

This class can be used to hold any number of related symmetry operators, and to generate all spacegroup operators from those stored.

The operations are given in one of two forms:

  • Symmetry(W, w): W, integer, shape (N, 3, 3), the generalised rotation (matrix) parts, and w, float, shape (N, 3), the translation (vector) parts, both in units of the real-space basis vectors;
  • Symmetry(cifxyz): a string of operations in CIF xyz form, separated by ;, such as "x,y,z;-x,1/2+y,-z".

Methods:

Attributes:

W property

W: ndarray[int32]

centring property

centring: Bravais

size property

size: int

w property

w: ndarray[float64]

generate

generate() -> Symmetry

generators

generators() -> Symmetry

PointSymmetry

PointSymmetry(Symmetry: Symmetry)

Holds the \(3 \times 3\) rotation matrices \(R\) which comprise a point group symmetry.

A point group describes the local symmetry of a lattice point. It contains all of the generalised rotations of a Symmetry with none of its translations.

Methods:

Attributes:

W property

W: ndarray[int32]

axis property

axis: ndarray[int32]

generate property

generate: PointSymmetry

generators property

generators: PointSymmetry

isometry property

isometry: ndarray[int32]

order property

order: ndarray[int32]

size property

size: int

nfolds

nfolds(arg0: int) -> PointSymmetry

HallSymbol

HallSymbol(Hall_symbol: str)

A crystallographic spacegroup's symmetries encoded in Hall's notation

Hall proposed a compact unambiguous notation for the representation of the generators of a spacegroup. Within his notation each motion is comprised of a character with one or more subscripts and superscripts which describe its order, unique axis, and translation. The notation specifies that, depending on the position of a motion and details of any preceding motion, some or all of the sub- and superscripts can be omitted. The :class:HallSymbol has been written to handle the logic necessary to decode a Hall symbol into its equivalent motions. An added complication arises when the Hall symbol is encoded as an ASCII string. Namely, there are no sub- or superscript glyphs and some scheme must be enacted to represent them.

Attributes:

generators property

generators: Symmetry

Spacegroup

Spacegroup(symbol: str, choice: str = '')

The space group information as in `spglib:

Equivalent to the struct SpacegroupType from spg_database.h <https://github.com/spglib/spglib/blob/develop/src/spg_database.h>_

The space group setting named by a Hall symbol, or by a Hermann-Mauguin symbol or International Tables name with an optional setting choice, as brille.Lattice accepts them.

Methods:

  • all –

    Every space group setting brille knows, in the order of its table.

Attributes:

choice property

choice: str

hall_symbol property

hall_symbol: str

international_table_full property

international_table_full: str

international_table_number property

international_table_number: int

international_table_short property

international_table_short: str

international_table_symbol property

international_table_symbol: str

pointgroup_number property

pointgroup_number: int

schoenflies_symbol property

schoenflies_symbol: str

all staticmethod

all() -> list[Spacegroup]

Every space group setting brille knows, in the order of its table.

Pointgroup

Pointgroup(*args, **kwargs)

Point group information as in spglib

Wrapped access to the struct originally in pointgroup.h <https://github.com/spglib/spglib/blob/develop/src/pointgroup.h>_

Initialize from the serial index in the static pointgroup_data array

Attributes:

holohedry property

holohedry: str

Return a string representation of the Holohedry value

One of triclinic, monoclinic, orthogonal, tetragonal, trigonal, hexagonal, or cubic.

laue property

laue: str

Return a string representation of the Laue class

One of 1, 2m, mmm, 4m, 4mmm, 3, 3m, 6m, 6mmm, m3, or m3m.

number property

number: int

symbol property

symbol: str