sc::PointGroup Class Reference

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

`#include <pointgrp.h>`

Inheritance diagram for sc::PointGroup:
[legend]
Collaboration diagram for sc::PointGroup:
[legend]

## Public Member Functions

| PointGroup (const char *)
| This constructor takes a string containing the Schoenflies symbol of the point group as its only argument. More...
| PointGroup (const char *, SymmetryOperation &)
| Like the above, but this constructor also takes a frame of reference as an argument. More...
| PointGroup (const char *, SymmetryOperation &, const SCVector3 &)
| Like the above, but this constructor also takes a point of origin as an argument. More...
| PointGroup (const Ref< KeyVal > &)
| The PointGroup KeyVal constructor looks for three keywords: symmetry, symmetry_frame, and origin. More...
| PointGroup (StateIn &)
| PointGroup (const PointGroup &)
| PointGroup (const Ref< PointGroup > &)
PointGroup & | operator= (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.
SymmetryOperation & | symm_frame ()
| Returns the frame of reference for this point group.
const SymmetryOperation & | symm_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. More...
void | print (std::ostream &o=ExEnv::out0()) const
| Print the object.
Public Member Functions inherited from sc::SavableState
SavableState & | operator= (const SavableState &)
void | save_state (StateOut &)
| Save the state of the object as specified by the StateOut object. More...
void | save_object_state (StateOut &)
| This can be used for saving state when the exact type of the object is known for both the save and the restore. More...
virtual void | save_vbase_state (StateOut &)
| Save the virtual bases for the object. More...
Public Member Functions inherited from sc::DescribedClass
| DescribedClass (const DescribedClass &)
DescribedClass & | operator= (const DescribedClass &)
ClassDesc * | class_desc () const throw ()
| This returns the unique pointer to the ClassDesc corresponding to the given type_info object. More...
const char * | class_name () const
| Return the name of the object's exact type.
int | class_version () const
| Return the version of the class.
Public Member Functions inherited from sc::RefCount
int | lock_ptr () const
| Lock this object.
int | unlock_ptr () const
| Unlock this object.
void | use_locks (bool inVal)
| start and stop using locks on this object
refcount_t | nreference () const
| Return the reference count.
refcount_t | reference ()
| Increment the reference count and return the new count.
refcount_t | dereference ()
| Decrement the reference count and return the new count.
int | managed () const
void | unmanage ()
| Turn off the reference counting mechanism for this object. More...
int | managed () const
| Return 1 if the object is managed. Otherwise return 0.
Public Member Functions inherited from sc::Identity
Identifier | identifier ()
| Return the Identifier for this argument. More...

## Additional Inherited Members

Static Public Member Functions inherited from sc::SavableState
static void | save_state (SavableState *s, StateOut &)
static SavableState * | restore_state (StateIn &si)
| Restores objects saved with save_state. More...
static SavableState * | key_restore_state (StateIn &si, const char *keyword)
| Like restore_state, but keyword is used to override values while restoring. More...
static SavableState * | dir_restore_state (StateIn &si, const char *objectname, const char *keyword=0)
Protected Member Functions inherited from sc::SavableState
| SavableState (const SavableState &)
| SavableState (StateIn &)
| Each derived class StateIn CTOR handles the restore corresponding to calling save_object_state, save_vbase_state, and save_data_state listed above. More...

## 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:

- pointgrp.h