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
From source code
git clone https://github.com/abelcarreras/pointgroup.git pointgroup cd pointgroup python setup.py install --user
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
PointGroup was originally developed by Efrem Bernuz and currently maintained by Abel Carreras at Donostia International Physics Center (DIPC), Euskadi, Spain.