#include <symbols.h>
Public Member Functions | |
space_group_symbols () | |
Default constructor. Some data members are not initialized! | |
space_group_symbols (std::string const &symbol, std::string const &table_id="") | |
Lookup space group Symbol. | |
space_group_symbols (int space_group_number, std::string const &extension="", std::string const &table_id="") | |
Lookup space group number. | |
space_group_symbols (const symbols::tables::main_symbol_dict_entry *entry, char extension) | |
For internal use only. | |
bool | is_valid () const |
Tests if the instance is constructed properly. | |
int | number () const |
Space group number according to the International Tables. | |
std::string const & | schoenflies () const |
Schoenflies symbol. | |
std::string const & | qualifier () const |
A qualifier for the classification of alternative representations. | |
std::string const & | hermann_mauguin () const |
Hermann-Mauguin symbol as defined in the International Tables. | |
char | extension () const |
Extension to the Hermann-Mauguin symbol. | |
std::string const & | change_of_basis_symbol () |
Change-of-basis symbol part of universal Hermann-Mauguin symbol. | |
std::string const & | universal_hermann_mauguin () const |
std::string const & | hall () const |
Hall symbol. | |
matrix_group::code | point_group_type () const |
Determines the point group type. | |
matrix_group::code | laue_group_type () const |
Determines the Laue group type. | |
crystal_system::code | crystal_system () const |
Determines the crystal system. |
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:
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
1
, 2
, H
, and R
as explained above. Examples:
P 21 21 21
R 3:R
^
'. 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:
'. 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!
See also: page_multiple_cell
space_group_symbols | ( | std::string const & | symbol, | |
std::string const & | table_id = "" | |||
) | [explicit] |
Lookup space group Symbol.
For a general introduction see class details.
table_id is one of "" (the empty string), "I1952", "A1983", or "Hall".
The default table lookup preferences are described in the class details section.
I1952 selects the preferences of the International Tables for Crystallography, Volume I, 1952:
monoclinic unique axis c (example: P 2),
origin choice 1 (example: P n n n),
rhombohedral axes (example: R 3).
A1983 selects the preferences of the International Tables for Crystallography, Volume A, 1983:
monoclinic unique axis b (example: P 2),
origin choice 1 (example: P n n n),
hexagonal axes (example: R 3).
Hall signals that Symbol is a Hall symbols without a leading "Hall: ". The table lookup is bypassed. Note that number(), hermann_mauguin() etc. are not defined if a Hall symbol is used!
space_group_symbols | ( | int | space_group_number, | |
std::string const & | extension = "" , |
|||
std::string const & | table_id = "" | |||
) | [explicit] |
Lookup space group number.
For a general introduction see class details.
table_id is one of "", "I1952", "A1983", or "Hall". See the other constructor for details.
See also: Extension()
bool is_valid | ( | ) | const [inline] |
Tests if the instance is constructed properly.
Shorthand for: number() != 0
Not available in Python.
int number | ( | ) | const [inline] |
Space group number according to the International Tables.
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".
std::string const& universal_hermann_mauguin | ( | ) | const [inline] |
Hermann-Mauguin symbol with extension and change-of-basis symbol appended (if any).
If the extension is '' (the null character) and the change-of-basis operator is the identity matrix, universal_hermann_mauguin() is equivalent to hermann_mauguin().
The universal Hermann-Mauguin symbol uniquely identifies a tabulated space group representation.
std::string const& hall | ( | ) | const [inline] |
Hall symbol.
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.
Python: returns a string representing the point group type.
Referenced by space_group_symbols::crystal_system(), and space_group_symbols::laue_group_type().
matrix_group::code laue_group_type | ( | ) | const [inline] |
Determines the Laue group type.
The code returned is a matrix group code. There are exactly 11 possible return values, corresponding to the 11 Laue group types.
Python: returns a string representing the Laue group type.
References space_group_symbols::point_group_type().
crystal_system::code crystal_system | ( | ) | const [inline] |
Determines the crystal system.
There are exactly 7 possible return values.
Python: returns a string representing the crystal system.
References space_group_symbols::point_group_type().