Psi4
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
psi::PointGroup Class Reference

#include <pointgrp.h>

Public Member Functions

 PointGroup ()
 
 PointGroup (const std::string &)
 
 PointGroup (const std::string &, const Vector3 &)
 
 PointGroup (unsigned char bits)
 
 PointGroup (unsigned char bits, const Vector3 &)
 
 PointGroup (const PointGroup &)
 
 PointGroup (const std::shared_ptr< PointGroup > &)
 
 ~PointGroup ()
 
PointGroupoperator= (const PointGroup &)
 
int equiv (const std::shared_ptr< PointGroup > &, double tol=1.0e-6) const
 Returns 1 if the point groups are equivalent, 0 otherwise. More...
 
CharacterTable char_table () const
 Returns the CharacterTable for this point group. More...
 
std::string symbol () const
 Returns the Schoenflies symbol for this point group. More...
 
Vector3origin ()
 
const Vector3origin () const
 
void set_symbol (const std::string &)
 Sets (or resets) the Schoenflies symbol. More...
 
unsigned char bits () const
 Returns the bitwise representation of the point group. More...
 
void print (std::string OutFileRMR="outfile") const
 

Static Public Member Functions

static const char * bits_to_full_name (unsigned char bits)
 
static const char * bits_to_basic_name (unsigned char bits)
 
static bool full_name_to_bits (const std::string &pg, unsigned char &bits)
 

Private Attributes

std::string symb
 
Vector3 origin_
 
unsigned char bits_
 

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

psi::PointGroup::PointGroup ( )
psi::PointGroup::PointGroup ( const std::string &  s)

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

psi::PointGroup::PointGroup ( const std::string &  s,
const Vector3 origin 
)

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

psi::PointGroup::PointGroup ( unsigned char  bits)

Using the bitwise representation constructor the point group object.

psi::PointGroup::PointGroup ( unsigned char  bits,
const Vector3 origin 
)

Using the bitwise representation constructor the point group object.

psi::PointGroup::PointGroup ( const PointGroup pg)

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 ]
  ]
)
psi::PointGroup::PointGroup ( const std::shared_ptr< PointGroup > &  pg)
psi::PointGroup::~PointGroup ( )

Member Function Documentation

unsigned char psi::PointGroup::bits ( ) const
inline

Returns the bitwise representation of the point group.

const char * psi::PointGroup::bits_to_basic_name ( unsigned char  bits)
static
const char * psi::PointGroup::bits_to_full_name ( unsigned char  bits)
static
CharacterTable psi::PointGroup::char_table ( ) const

Returns the CharacterTable for this point group.

int psi::PointGroup::equiv ( const std::shared_ptr< PointGroup > &  grp,
double  tol = 1.0e-6 
) const

Returns 1 if the point groups are equivalent, 0 otherwise.

bool psi::PointGroup::full_name_to_bits ( const std::string &  pg,
unsigned char &  bits 
)
static
PointGroup & psi::PointGroup::operator= ( const PointGroup pg)
Vector3& psi::PointGroup::origin ( )
inline

Returns the frame of reference for this point group. Returns the origin of the symmetry frame.

const Vector3& psi::PointGroup::origin ( ) const
inline
void psi::PointGroup::print ( std::string  OutFileRMR = "outfile") const
void psi::PointGroup::set_symbol ( const std::string &  sym)

Sets (or resets) the Schoenflies symbol.

std::string psi::PointGroup::symbol ( ) const
inline

Returns the Schoenflies symbol for this point group.

Member Data Documentation

unsigned char psi::PointGroup::bits_
private
Vector3 psi::PointGroup::origin_
private
std::string psi::PointGroup::symb
private

The documentation for this class was generated from the following files: