sc::PointGroup Class Reference

The PointGroup class is really a place holder for a CharacterTable. More...

#include <pointgrp.h>

Inheritance diagram for sc::PointGroup:

sc::SavableState sc::DescribedClass sc::RefCount sc::Identity List of all members.

Public Member Functions

 PointGroup (const char *)
 This constructor takes a string containing the Schoenflies symbol of the point group as its only argument.
 PointGroup (const char *, SymmetryOperation &)
 Like the above, but this constructor also takes a frame of reference as an argument.
 PointGroup (const char *, SymmetryOperation &, const SCVector3 &)
 Like the above, but this constructor also takes a point of origin as an argument.
 PointGroup (const Ref< KeyVal > &)
 The PointGroup KeyVal constructor looks for three keywords: symmetry, symmetry_frame, and origin.
 PointGroup (StateIn &)
 PointGroup (const PointGroup &)
 PointGroup (const Ref< PointGroup > &)
PointGroupoperator= (const PointGroup &)
int equiv (const Ref< PointGroup > &, double tol=1.0e-6) const
 Returns 1 if the point groups are equivalent, 0 otherwise.
CharacterTable char_table () const
 Returns the CharacterTable for this point group.
const char * symbol () const
 Returns the Schoenflies symbol for this point group.
SymmetryOperationsymm_frame ()
 Returns the frame of reference for this point group.
const SymmetryOperationsymm_frame () const
 A const version of the above.
SCVector3 & origin ()
 Returns the origin of the symmetry frame.
const SCVector3 & origin () const
void set_symbol (const char *)
 Sets (or resets) the Schoenflies symbol.
void save_data_state (StateOut &so)
 Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them.
void print (std::ostream &o=ExEnv::out0()) const
 Print the object.

Detailed Description

The PointGroup class is really a place holder for a CharacterTable.

It contains a string representation of the Schoenflies symbol of a point group, a frame of reference for the symmetry operation transformation matrices, and a point of origin. The origin is not respected by the symmetry operations, so if you want to use a point group with a nonzero origin, first translate all your coordinates to the origin and then set the origin to zero.


Constructor & Destructor Documentation

sc::PointGroup::PointGroup ( const char *   ) 

This constructor takes a string containing the Schoenflies symbol of the point group as its only argument.

sc::PointGroup::PointGroup ( const char *  ,
SymmetryOperation  
)

Like the above, but this constructor also takes a frame of reference as an argument.

sc::PointGroup::PointGroup ( const char *  ,
SymmetryOperation ,
const SCVector3 &   
)

Like the above, but this constructor also takes a point of origin as an argument.

sc::PointGroup::PointGroup ( const Ref< KeyVal > &   ) 

The PointGroup KeyVal constructor looks for three keywords: symmetry, symmetry_frame, and origin.

symmetry is a string containing the Schoenflies symbol of the point group. origin is an array of doubles which gives the x, y, and z coordinates of the origin of the symmetry frame. symmetry_frame is a 3 by 3 array of arrays of doubles which specify the principal axes for the transformation matrices as a unitary rotation.

For example, a simple input which will use the default origin and symmetry_frame ((0,0,0) and the unit matrix, respectively), might look like this:

       pointgrp<PointGroup>: (
         symmetry = "c2v"
       )
       

By default, the principal rotation axis is taken to be the z axis. If you already have a set of coordinates which assume that the rotation axis is the x axis, then you'll have to rotate your frame of reference with symmetry_frame:

       pointgrp<PointGroup>: (
         symmetry = "c2v"
         symmetry_frame = [
           [ 0 0 1 ]
           [ 0 1 0 ]
           [ 1 0 0 ]
         ]
       )
       


Member Function Documentation

void sc::PointGroup::save_data_state ( StateOut  )  [virtual]

Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them.

This must be implemented by the derived class if the class has data.

Reimplemented from sc::SavableState.


The documentation for this class was generated from the following file:
Generated at Mon Dec 3 23:23:58 2007 for MPQC 2.3.1 using the documentation package Doxygen 1.5.2.