pemtk.sym._directProduct
Direct product functions for libmsym and symmetrized harmonics routines.
17/04/23 v1
Developed/adapted from libmsym demo code, see https://github.com/mcodev31/libmsym/issues/29 Special thanks to mcodev31 for the help.
For quick reference tables, see also http://www.gernot-katzers-spice-pages.com/character_tables/index.html
Formulas should follow those on p29 in Atkins, B.P.W., Child, M.S. and Phillips, C.S.G. (2006) Tables for Group Theory. Oxford University Press.
Module Contents
Functions
|
Array product of two irrep characters. |
|
Array product of (any number of) irrep characters from a list. |
|
Irrep representation dot products. |
|
Decompose basis vector to irreps |
|
Compute direct products from a list of irreps/species with [libmsym](https://github.com/mcodev31/libmsym). |
|
Generate direct product tables with [libmsym](https://github.com/mcodev31/libmsym). |
- pemtk.sym._directProduct.prod(character_table, s1, s2)[source]
Array product of two irrep characters.
- Parameters:
character_table (libmsym character table.) –
s1 (int) – Index for irrep/symmetry species 1.
s2 (int) – Index for irrep/symmetry species 2.
- Returns:
np.array
- Return type:
array product.
- pemtk.sym._directProduct.prodList(character_table, symList)[source]
Array product of (any number of) irrep characters from a list.
- Parameters:
character_table (libmsym character table.) –
symList (list) – List of species to use. E.g. symList = [‘A1g’,’A1u’,’B1u’, ‘B1u’] defines resultant as direct product of these terms.
- Returns:
np.array
- Return type:
array product.
Examples
>>> PG = 'D2h' >>> ctx = msym.Context(elements=[msym.Element(name = "H", coordinates = [.0,.0,.0])], basis_functions=[], point_group=PG) >>> r = prodMulti(ctx.character_table, ['A1g','A1u','B1u', 'B1u']) >>> r array([ 1., 1., -1., -1., -1., -1., 1., 1.])
- pemtk.sym._directProduct.dotArray(character_table, s, p)[source]
Irrep representation dot products.
- pemtk.sym._directProduct.symDecomposition(character_table, p)[source]
Decompose basis vector to irreps
- Parameters:
character_table (libmsym character table.) –
p (np.array) – Vecotor for analysis. Must contain len(character_table.symmetry_species) elements.
- pemtk.sym._directProduct.diretProductFromList(PG='Cs', terms=[])[source]
Compute direct products from a list of irreps/species with [libmsym](https://github.com/mcodev31/libmsym).
Developed from https://github.com/mcodev31/libmsym/issues/29.
- Parameters:
PG (point group string.) – Supported point groups from libmsym: Ci, Cs, Cnv, Dn, Dnh, Dnd, Td, O, Oh, I and Ih
terms (list) – List of species to use. E.g. symList = [‘A1g’,’A1u’,’B1u’, ‘B1u’] defines resultant as direct product of these terms.
- Returns:
list (resultant as list of specices.)
dict (contains various other forms of the output (as labelled).)
Examples
>>> dDict, _ = diretProductFromList(PG = 'D2h', terms = ['A1g','A1u','B1u', 'B1u']) >>> dDict {'A1g': 0, 'B1g': 0, 'A1u': 1, 'B1u': 0, 'B3g': 0, 'B3u': 0, 'B2g': 0, 'B2u': 0}
- pemtk.sym._directProduct.directProductTable(PG='Cs')[source]
Generate direct product tables with [libmsym](https://github.com/mcodev31/libmsym).
Developed from https://github.com/mcodev31/libmsym/issues/29
- Parameters:
PG (point group string.) – Supported point groups from libmsym: Ci, Cs, Cnv, Dn, Dnh, Dnd, Td, O, Oh, I and Ih
- Returns:
pd.DataFrame (direct product table.)
dict (contains various other forms of the output (as labelled).)