**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** > &)

**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.
void **print** (std::ostream &o=**ExEnv::out0**()) const

*Print the object. *

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.

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

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

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

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 ]
]
)