Clipper
Public Types | Public Member Functions | Static Public Member Functions
clipper::Spacegroup Class Reference

Spacegroup object. More...

#include <spacegroup.h>

Inheritance diagram for clipper::Spacegroup:
clipper::Spgr_descr clipper::CSpacegroup

List of all members.

Public Types

enum  TYPE { Null, P1 }
 enumeration for fast construction of Null or P1 spacegroup
enum  AXIS { A = 0, B = 1, C = 2 }
 enumeration for cell axes

Public Member Functions

 Spacegroup ()
 null constructor
 Spacegroup (TYPE type)
 constructor: fast constructor for Null or P1 spacegroup
 Spacegroup (const Spgr_descr &spgr_descr)
 constructor: from spacegroup description
void init (const Spgr_descr &spgr_descr)
 initialiser: from spacegroup description
bool is_null () const
 test if object has been initialised
const Spgr_descrdescr () const
 get spacegroup description
const int & num_symops () const
 get number of symops
const int & num_primops () const
 get number of primitive symops (identical to num_primitive_symops())
const int & num_primitive_symops () const
 get number of primitive symops (inc identity and inversion)
const int & num_centering_symops () const
 get number of centering symops (inc identity)
const int & num_inversion_symops () const
 get number of inversion symops (inc identity)
const int & num_primitive_noninversion_symops () const
 get number of primitive non-inversion symops (inc identity)
const Symopsymop (const int &sym_no) const
 get n'th symop
const Symopprimitive_symop (const int &sym_no) const
 get n'th primitive symop (identical to symop(sym_no))
const Symopinversion_symop (const int &sym_no) const
 get n'th inversion symop (0...1 max)
const Symopcentering_symop (const int &sym_no) const
 get n'th centering symop (0...3 max)
int order_of_symmetry_about_axis (const AXIS axis) const
 get the order of rotational symmetry about a given axis
HKL_class hkl_class (const HKL &hkl) const
 get 'class' of reflection: multiplicity, allowed phase, absence
bool recip_asu (const HKL &hkl) const
 test if hkl is in default reciprocal ASU
int product_op (const int &s1, int &s2) const
 get symop number corresponding to the product of two symops
int inverse_op (const int &s) const
 get symop number corresponding to the inverse of a symop
Coord_frac asu_max () const
 get map ASU, upper bound
Coord_frac asu_min () const
 get map ASU, lower bound
bool invariant_under_change_of_hand () const
 test if change of hand preserves spacegroup
int spacegroup_number () const
 return the spacegroup number
String symbol_hall () const
 return the Hall symbol
String symbol_hm () const
 return the H-M symbol
String symbol_laue () const
 return the Laue group symbol
void debug () const

Static Public Member Functions

static Spacegroup p1 ()
 Return P1 spacegroup.
static Spacegroup null ()
 Return null spacegroup.

Detailed Description

Spacegroup object.

The spacegroup object is a full description of a spacegroup, including all the most regularly used information in an efficient form. It may be initialised from a clipper::Spgr_descr. This object.

For more details of spacegroup symbols, see Sydney R. Hall & Ralf W. Grosse-Kunstleve 'Concise Space-Group Symbols', http://www.kristall.ethz.ch/LFK/software/sginfo/hall_symbols.html


Constructor & Destructor Documentation

clipper::Spacegroup::Spacegroup ( TYPE  type) [explicit]

constructor: fast constructor for Null or P1 spacegroup

Construct null or P1 spacegroup. This is faster than the normal constructor.

Parameters:
typeSpacegroup::Null or Spacegroup::P1

References clipper::Spgr_descr::Spgr_descr().

clipper::Spacegroup::Spacegroup ( const Spgr_descr spgr_descr) [explicit]

constructor: from spacegroup description

Construct a spacegroup and initialise with a spacegroup description.

Parameters:
spgr_descrThe spacegroup description.

Member Function Documentation

void clipper::Spacegroup::init ( const Spgr_descr spgr_descr)

initialiser: from spacegroup description

Initialise the spacegroup.

Parameters:
spgr_descrThe spacegroup description.

References clipper::Spgr_descr::generator_ops(), clipper::Spgr_descr::generators_, clipper::Spgr_descr::hash(), and clipper::Spgr_descr::hash_.

bool clipper::Spacegroup::is_null ( ) const
int clipper::Spacegroup::order_of_symmetry_about_axis ( const AXIS  axis) const

get the order of rotational symmetry about a given axis

The number of rotational operators parallel to the specified axis is returned.

Parameters:
axisThe axis, A, B or C.
Returns:
The order of the axis.
HKL_class clipper::Spacegroup::hkl_class ( const HKL hkl) const

get 'class' of reflection: multiplicity, allowed phase, absence

The reflection class describes the type of a reflection in a given spacegroup, including centricity, systematic absence, phase restriction, and multiplicity.

This is a shortcut to constructing an HKL_class from the spacegroup and HKL.

Parameters:
hklThe reflection HKL

Referenced by clipper::HKL_info::generate_hkl_list(), clipper::HKL_info::init(), and clipper::HKL_info::update_hkl_list().

bool clipper::Spacegroup::recip_asu ( const HKL hkl) const

test if hkl is in default reciprocal ASU

The reciprocal ASU is chosen from one of 47 optimised functions.

Parameters:
hklThe HKL to test.
Returns:
true if the HKL is in the ASU.

References clipper::HKL::h(), clipper::HKL::k(), and clipper::HKL::l().

Referenced by clipper::HKL_info::find_sym(), clipper::HKL_info::generate_hkl_list(), and clipper::HKL_info::init().

Coord_frac clipper::Spacegroup::asu_max ( ) const

get map ASU, upper bound

The map ASU is an oblong which contains at least one assymetric unit. It is guaranteed to be contained withing the unit box. The lower limit is always 0,0,0.

Returns:
Fractional coordinate of the upper bound of the ASU.
Coord_frac clipper::Spacegroup::asu_min ( ) const

get map ASU, lower bound

The map ASU is an oblong which contains at least one assymetric unit. It is guaranteed to be contained withing the unit box. The lower limit is always 0,0,0.

Returns:
Fractional coordinate of the lower bound of the ASU.
bool clipper::Spacegroup::invariant_under_change_of_hand ( ) const

test if change of hand preserves spacegroup

Test if hand-change is possible.

Returns:
true if a change of hand preserves the spacegroup.
int clipper::Spacegroup::spacegroup_number ( ) const

return the spacegroup number

The spacegroup number is only available if the spacegroup exists in the internal table, see Hall & Grosse-Kunstleve.

Returns:
The spacegroup number, or 0 if unavailable.

Reimplemented from clipper::Spgr_descr.

Referenced by clipper::Test_core::operator()().

String clipper::Spacegroup::symbol_hall ( ) const

return the Hall symbol

The Hall symbol is only available if the spacegroup exists in the internal table, see Hall & Grosse-Kunstleve.

Returns:
The Hall symbol, or "Unknown" if unavailable.

Reimplemented from clipper::Spgr_descr.

String clipper::Spacegroup::symbol_hm ( ) const

return the H-M symbol

The H-M symbol is only available if the spacegroup exists in the internal table, see Hall & Grosse-Kunstleve.

Returns:
The H-M symbol, or "Unknown" if unavailable.

Reimplemented from clipper::Spgr_descr.

String clipper::Spacegroup::symbol_laue ( ) const

return the Laue group symbol

Returns:
The Laue group symbol. i.e. one of -1, 2/m, 2/mmm, -3, -3m, 4/m, 4/mmm, 6/m, 6/mmm, m-3, m-3m

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