MPQC 3.0.0-alpha
Loading...
Searching...
No Matches
sc::PointGroup Class Reference

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

#include <math/symmetry/pointgrp.h>

Inheritance diagram for sc::PointGroup:
sc::SavableState sc::DescribedClass sc::RefCount

Public Member Functions

 PointGroup (std::string)
 This constructor takes a string containing the Schoenflies symbol of the point group as its only argument.
 
 PointGroup (std::string, SymmetryOperation &)
 Like the above, but this constructor also takes a frame of reference as an argument.
 
 PointGroup (std::string, 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 order () const
 returns the order of the point group
 
bool equiv (const Ref< PointGroup > &, double tol=1.0e-6) const
 Returns true if the point groups are equivalent, false otherwise.
 
CharacterTable char_table () const
 Returns the CharacterTable for this point group.
 
std::string 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.
 
SCVector3origin ()
 Returns the origin of the symmetry frame.
 
const SCVector3origin () const
 
void set_symbol (std::string)
 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.
 
- Public Member Functions inherited from sc::SavableState
SavableStateoperator= (const SavableState &)
 
void save_state (StateOut &)
 Save the state of the object as specified by the StateOut object.
 
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.
 
virtual void save_vbase_state (StateOut &)
 Save the virtual bases for the object.
 
- Public Member Functions inherited from sc::DescribedClass
 DescribedClass (const DescribedClass &)
 
DescribedClassoperator= (const DescribedClass &)
 
ClassDescclass_desc () const MPQC__NOEXCEPT
 This returns the unique pointer to the ClassDesc corresponding to the given type_info object.
 
const char * class_name () const
 Return the name of the object's exact type.
 
int class_version () const
 Return the version of the class.
 
Ref< DescribedClassref ()
 Return this object wrapped up in a Ref smart pointer.
 
- Public Member Functions inherited from sc::RefCount
size_t identifier () const
 Return the unique identifier for this object that can be compared for different objects of different types.
 
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
 Return 1 if the object is managed. Otherwise return 0.
 

Additional Inherited Members

- Static Public Member Functions inherited from sc::SavableState
static void save_state (SavableState *s, StateOut &)
 
static SavableStaterestore_state (StateIn &si)
 Restores objects saved with save_state.
 
static SavableStatekey_restore_state (StateIn &si, const char *keyword)
 Like restore_state, but keyword is used to override values while restoring.
 
static SavableStatedir_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.
 
- Protected Member Functions inherited from sc::RefCount
 RefCount (const RefCount &)
 
RefCountoperator= (const RefCount &)
 

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

◆ PointGroup()

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

◆ print()

void sc::PointGroup::print ( std::ostream & = ExEnv::out0()) const
virtual

Print the object.

Reimplemented from sc::DescribedClass.

◆ save_data_state()

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 Wed Sep 25 2024 02:45:34 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.12.0.