Clipper
Public Types | Public Member Functions | Static Public Member Functions | List of all members
clipper::Spacegroup Class Reference

Spacegroup object. More...

#include <spacegroup.h>

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

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 Types inherited from clipper::Spgr_descr
enum  TYPE {
  Hall, HM, XHM, Symops,
  Number, Unknown
}
 

Public Member Functions

 Spacegroup ()
 null constructor
 
 Spacegroup (TYPE type)
 constructor: fast constructor for Null or P1 spacegroup More...
 
 Spacegroup (const Spgr_descr &spgr_descr)
 constructor: from spacegroup description More...
 
void init (const Spgr_descr &spgr_descr)
 initialiser: from spacegroup description More...
 
bool is_null () const
 test if object has been initialised More...
 
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 More...
 
HKL_class hkl_class (const HKL &hkl) const
 get 'class' of reflection: multiplicity, allowed phase, absence More...
 
bool recip_asu (const HKL &hkl) const
 test if hkl is in default reciprocal ASU More...
 
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 More...
 
Coord_frac asu_min () const
 get map ASU, lower bound More...
 
bool invariant_under_change_of_hand () const
 test if change of hand preserves spacegroup More...
 
int spacegroup_number () const
 
String symbol_hall () const
 
String symbol_hm () const
 
String symbol_laue () const
 return the Laue group symbol More...
 
void debug () const
 
- Public Member Functions inherited from clipper::Spgr_descr
 Spgr_descr ()
 null constructor More...
 
 Spgr_descr (const String &symb, TYPE type=Unknown)
 constructor: from symbol or operators. More...
 
 Spgr_descr (const int &num)
 constructor: from number. More...
 
int spacegroup_number () const
 return the spacegroup number More...
 
String symbol_hall () const
 return the Hall symbol More...
 
String symbol_hm () const
 return the H-M symbol More...
 
String symbol_xhm () const
 return the extended H-M symbol More...
 
String symbol_hm_ext () const
 return the extension H-M symbol More...
 
 Spgr_descr (const Symop_codes &ops)
 constructor: from symop list. More...
 
const Symop_codesgenerator_ops () const
 return the generators for the spacegroup
 
const unsigned int & hash () const
 return the hash code for the spacegroup
 

Static Public Member Functions

static Spacegroup p1 ()
 Return P1 spacegroup.
 
static Spacegroup null ()
 Return null spacegroup.
 
- Static Public Member Functions inherited from clipper::Spgr_descr
static void set_preferred (const char &c)
 set preferred default spacegroup choice More...
 

Additional Inherited Members

- Protected Attributes inherited from clipper::Spgr_descr
unsigned int hash_
 hash code of spacegroup
 
Symop_codes generators_
 codes for symop generators
 
- Static Protected Attributes inherited from clipper::Spgr_descr
static char pref_12 = '1'
 
static char pref_hr = 'H'
 preferred origin and hex/romb symbols
 

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
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.
bool clipper::Spacegroup::is_null ( ) const

test if object has been initialised

Returns
true if the object has not been initalised.
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
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.
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.
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: