PointGroup

PointGroup is a pure python library to determine the point symmetry group of molecules.

Main features

  • Determine point symmetry group label

  • Pure python implementation

Installation

PointGroup can be installed directly from the source code (python package) or via PyPI repository.

Requirements

  • Python 2.7.x/3.5+

  • numpy

Install

  1. From source code

    git clone https://github.com/abelcarreras/pointgroup.git pointgroup
    cd pointgroup
    python setup.py install --user
    
  2. From PyPI repository

    pip install pointgroup --user
    

Get started

PointGroup is a simple library based in a single class that is initialized from a set of atomic positions and atomic symbols.

Determine the point symmetry group

To determine the point symmetry group, first initialize a PointGroup object and then access to get_point_group() method. This returns a string containing the label of the determined point group for the given molecule. The following example shows the determination of the octahedral symmetry of SF6 molecule:

from pointgroup import PointGroup


pg = PointGroup(positions=[[ 0.000000,  0.000000,  0.000000],
                           [ 0.000000,  0.000000,  1.561000],
                           [ 0.000000,  1.561000,  0.000000],
                           [ 0.000000,  0.000000, -1.561000],
                           [ 0.000000, -1.561000,  0.000000],
                           [ 1.561000,  0.000000,  0.000000],
                           [-1.561000,  0.000000,  0.000000]],
                symbols=['S', 'F', 'F', 'F', 'F', 'F', 'F'])

print('Point group: ', pg.get_point_group())

Public API

class pointgroup.PointGroup(positions, symbols, tolerance_eig=0.01, tolerance_ang=4)[source]

Point group main class

get_point_group()[source]

get the point symmetry group symbol

Returns:

the point symmetry group symbol

get_principal_axis_of_inertia()[source]

get the principal axis of inertia in rows in increasing order of momenta of inertia

Returns:

the principal axis of inertia

get_principal_moments_of_inertia()[source]

get the principal momenta of inertia in increasing order

Returns:

list of momenta of inertia

get_standard_coordinates()[source]

get the coordinates centered in the center of mass and oriented along principal axis of inertia

Returns:

the coordinates

PointGroup was originally developed by Efrem Bernuz and currently maintained by Abel Carreras at Donostia International Physics Center (DIPC), Euskadi, Spain.