space_group_symbols Class Reference

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

#include <symbols.h>

List of all members.

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.


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:

See also: page_multiple_cell


Constructor & Destructor Documentation

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()


Member Function Documentation

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().


The documentation for this class was generated from the following file:

Generated on Wed Feb 19 13:00:11 2014 for cctbx by  doxygen 1.5.6