---
name: "sc_PointGroup"
section: "3"
platform: "linux"
package: "libsc-doc"
version: "2.3.1-22"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/sc_PointGroup"
---

# sc\_PointGroup(3)

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

## NAME

sc::PointGroup - The **PointGroup** class is really a place holder for a **CharacterTable**.

## SYNOPSIS

`#include <pointgrp.h>`

Inherits **sc::SavableState**.

### 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** \> &)\
 **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.

### Additional Inherited Members

## 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 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::print (std::ostream & = ExEnv::out0`()`) const` [virtual]`

Print the object.

Reimplemented from **sc::DescribedClass**.

### 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**.

## Author

Generated automatically by Doxygen for MPQC from the source code.
