Detailed Description

class for the handling of space group symbols of various types.

The purpose of this class is to convert several conventional space group notations to hall() symbols by using lookup tables. The Hall symbols can then be used to initialize objects of class SpaceGroup.

Supported space group notations are:

Space group numbers as defined in the International Tables for Crystallography Vol. A (1983). Optionally, the space group numbers can be followed by a colon and one of the following characters:

1: Origin choice 1, for space groups with two origin choices

2: Origin choice 2, for space groups with two origin choices

H: Hexagonal basis, for rhombohedral space groups

R: Rhombohedral basis, for rhombohedral space groups

By default, origin choice 2 or a hexagonal basis is used.

Examples:

48

48:1

155

48:R

Hermann-Mauguin symbols as defined in the International Tables for Crystallography Vol. A (1983). Subscripts are entered without formatting. Optionally, subscripts can be surrounded by parentheses. Spaces are not required. Optionally, the Hermann-Mauguin symbols can be followed by a colon and one of the characters 1, 2, H, and R as explained above.

Examples:

P 21 21 21

R 3:R

Schoenflies symbols as defined in the International Tables for Crystallography Vol. A (1983). Superscripts are entered by prepending the character '^'. Optionally, the Schoenflies symbols can be followed by a colon and one of the characters 1, 2, H, and R as explained above.

Examples:

D2^4

D3^7:R

Hall symbols as defined in the International Tables for Crystallography Vol. B (2001). In contrast to Hermann-Mauguin symbols, Hall symbols can be used to specify any space group representation. Hall symbols are entered by prepending 'Hall:'.

Examples:

Hall: P 41

Hall: C 2y (x,y,-x+z)

When Hall symbols are used, all the lookup algorithms provided by this class are bypassed. This feature is provided for generality and convenience. Note that number(), hermann_mauguin() etc. are not defined if a Hall symbol is used!

A number in the range 1 - 230. This number uniquely defines the space group type.
Note the distinction between "space group type" and space group representation" (i.e. setting, origin choice, cell choice, ...). For many of the 230 space group types there are multiple space group representations listed in the International Tables.

std::string const& schoenflies

(

)

const [inline]

Schoenflies symbol.

One of the 230 unique Schoenflies symbols defined in the International Tables. A Schoenflies symbol uniquely defines the space group type.
Note the distinction between "space group type" and space group representation" (i.e. setting, origin choice, cell choice, ...). For many of the 230 space group types there are multiple space group representations listed in the International Tables.

std::string const& qualifier

(

)

const [inline]

A qualifier for the classification of alternative representations.

A qualifier for monoclinic and orthorhombic space groups.
For monoclinic space groups, the qualifier takes the form "x" or "xn", where x is one of {a, b, c, -a, -b, -c}, and n is one of {1, 2, 3}. The letters define the "unique axis" according to Table 4.3.1 in the International Tables Volume A (1983), and the numbers define the "cell choice."
For orthorhombic space groups, the qualifier is one of {abc, ba-c, cab, -cab, bca, a-cb}, according to Table 4.3.1 in the International Tables Volume A (1983).
Note that this qualifier is purely informational and not actively used in any of the symbol lookup algorithms.

std::string const& hermann_mauguin

(

)

const [inline]

Hermann-Mauguin symbol as defined in the International Tables.

Hermann-Mauguin (H-M) symbols were originally designed as a convenient description of given space-group representations. While it is natural to derive a H-M symbol for a given list of symmetry operations, it is problematic to derive the symmetry operations from a H-M symbol. In particular, for a number of space groups there is an ambiguity in the selection of the location of the origin with respect to the symmetry elements. For the conventional space group representations listed in the International Tables, the ambiguity in the origin selection is overcome by using an Extension().

char extension

(

)

const [inline]

Extension to the Hermann-Mauguin symbol.

For some space groups, the extension is used to distinguish between origin choices, or the choice of hexagonal or rhombohedral axes:
Extension "1": Origin choice 1.
Extension "2": Origin choice 2.
Extension "H": Hexagonal axes.
Extension "R": Rhombohedral axes.
The extension is '' (the null character) otherwise.
See also: hermann_mauguin()

std::string const& change_of_basis_symbol

(

)

[inline]

Change-of-basis symbol part of universal Hermann-Mauguin symbol.

The parentheses are not included. For example, if the universal Hermann-Mauguin symbol is "P 3 (y,z,x)", the return value is "y,z,x".

The space group notation of Hall was designed to be "computer adapted". Hall symbols have some similarities with hermann_mauguin() symbols, but define the space group representation without ambiguities. Another advantage is that any 3-dimensional crystallographic space group representation can be described by a Hall symbol.
The most common use of Hall symbols in this implementation is to initialize objects of class SpaceGroup.

matrix_group::code point_group_type

(

)

const

Determines the point group type.

The code returned is a matrix group code. There are exactly 32 possible return values, corresponding to the 32 crystallographic point group types.