scala::hkl_symmetry Class Reference

All required reciprocal-space symmetry stuff. More...

#include <hkl_symmetry.hh>

List of all members.

Public Member Functions

 hkl_symmetry (const clipper::Spacegroup &cspgp)
 constructor from clipper
 hkl_symmetry (const scala::SpaceGroup &cspgp)
 constructor form SpaceGroup
 hkl_symmetry (const std::string SpgName)
 constructor from name
 hkl_symmetry (const int &SpgNumber)
 constructor from number
bool IsNull () const
 true if object is null
void set_reindex (const ReindexOp &op)
 store reindex operator
SpaceGroup GetSpaceGroup () const
 return SpaceGroup
clipper::Spacegroup ClipperGroup () const
 return clipper spacegroup
Hkl put_in_asu (const Hkl &hkl, int &isym) const
 put hkl into asymmetric unit, return ISYM symmetry number (odd for h+)
clipper::HKL put_in_asu (const clipper::HKL &hkl, int &isym) const
 put hkl into asymmetric unit, return ISYM symmetry number (odd for h+)
Hkl get_from_asu (const Hkl &hkl, const int &isym) const
 get hkl from asymmetric unit, given ISYM symmetry number (odd for h+)
bool is_centric (const Hkl &hkl) const
 true if reflection centric
float epsilon (const Hkl &hkl) const
 epsilon, = 0 for systematic absences
bool IsCentro () const
 true if space group centrosymmetric
bool IsChiral () const
 true if space group chiral
bool LatticePresent (const Hkl &hkl) const
 true if hkl is present in lattice, false if systematically absent from lattice
void ChangeBasis (const scala::ReindexOp &reindex)
 change basis, reindex
int Nelement () const
 return number of symmetry elements
bool IsElementIdent (const int &kelement) const
 return true if kelement'th element is identity
clipper::Vec3< int > AxisDirection (const SymElement &elmt) const
 return axis direction for kelement'th symmetry element
std::string format_element (const int &kelement) const
 make formatted version of symmetry element
std::string XML_element (const int &kelement) const
 make XML version of symmetry element
void print_element (const int &idx) const
 print idx'th symmetry element (debug)
void print_elements () const
 print all symmetry elements (debug)
int NopInElement (const int &kelement) const
 return number of operators in kelement'th symmetry element
std::vector< double > SymopInElement (const int &j, const int &kelement) const
 Return rotation part of j'th symmetry operator of kelement'th symmetry element.
int get_symelmt (const int &isym1, const int &isym2) const
 Return symmetry-element number (from 0->Nelement-1) relating observations with ISYM = isym1,isym2.
std::vector< int > get_symelmt (const Hkl &h1, const Hkl &h2) const
 Return list of symmetry elements (from 0) relating original indices h1 & h2.
std::string symbol_Hall () const
 return Hall symbol
std::string symbol_xHM (const char &HorR=' ') const
 return extended HM symbol
std::string symbol () const
 return name from constructor or from xHM
char lattice_type () const
 return lattice type (P, C, I, F, H, ?R)
int NsymP () const
 return number of primitive symops, == 0 for null object
int Nsym () const
 return number of symops
std::vector< clipper::Symop > RotSymopsInElement (const int &kelement) const
 return all rotational symops in element
std::vector< clipper::Symop > PrimRotSymops () const
 return all primitive rotational symops
CrystalSystem CrysSys () const
 return crystal system
std::vector< int > CellConstraint () const
 return cell constraint flags, vector(6)
bool equals_rt (const hkl_symmetry &other) const
 test equality with another symmetry object
bool equals_r (const hkl_symmetry &other) const
 test just rotation parts
bool operator== (const hkl_symmetry &other) const
 simple test, ignore translations
bool operator!= (const hkl_symmetry &other) const
 simple test, ignore translations
bool equalElement (const int &jel, const hkl_symmetry &other, const int &jel2) const
 true if jel'th element of this symmetry object == jel2'th element of other

Detailed Description

All required reciprocal-space symmetry stuff.


Member Function Documentation

std::vector< int > scala::hkl_symmetry::CellConstraint (  )  const

return cell constraint flags, vector(6)

= -1 anything, = 0 constrained angle (=90 or 120) > 0 = j, same as j'th parameter

bool scala::hkl_symmetry::equals_rt ( const hkl_symmetry other  )  const

test equality with another symmetry object

not equals_r & equals_rt test number of operators & lattice type (centering) test all operators including translation

std::vector< int > scala::hkl_symmetry::get_symelmt ( const Hkl h1,
const Hkl h2 
) const

Return list of symmetry elements (from 0) relating original indices h1 & h2.

This call is used for centric reflections where more than one symmetry operator relates two observations Ignore difference between h+ and h- for this purpose

int scala::hkl_symmetry::get_symelmt ( const int &  isym1,
const int &  isym2 
) const

Return symmetry-element number (from 0->Nelement-1) relating observations with ISYM = isym1,isym2.

Isym = 2 * SymNumber + 1 for h+ Isym = 2 * SymNumber + 2 for h- Ignore difference between h+ and h- for this purpose


The documentation for this class was generated from the following files:
 All Classes Functions Variables Enumerations Friends
Generated on Tue Mar 1 11:22:31 2011 for Pointless by  doxygen 1.6.3