Symmetrized harmonics demo pt III: Working with symmetry, direct products and photoionization selection rules

21/04/23

This notebook demonstrates functionality for working with symmetry, making use of libmsym for the core symmetry functionality.

For more background, see the Symmetriezed Haromnics demo.

For more on point groups and symmetry, see http://www.gernot-katzers-spice-pages.com/character_tables/index.html, which includes full character tables and associated data.

Computational refs:

  • Boiko, D.L., Féron, P. and Besnard, P. (2006) ‘Simple method to obtain symmetry harmonics of point groups’, The Journal of Chemical Physics, 125(9), p. 094104. doi:10.1063/1.2338040.

  • Johansson, M. and Veryazov, V. (2017) ‘Automatic procedure for generating symmetry adapted wavefunctions’, Journal of Cheminformatics, 9(1), p. 8. doi:10.1186/s13321-017-0193-3. (Manuscript for libmsym library.)

Generating basis sets and direct products

With the symHarm class, a basis set of symmetrized harmonics can be created.

As of commit d470855dae78245257a960a0306bbd85ddcd0160, the class also computes direct products, including full direct product tables and dipole-allowed terms.

Direct products are computed as array multiplications and vector projections from the libmsym objects, see https://github.com/mcodev31/libmsym/issues/29 for the basic method, and special thanks to mcodev31 for the library and original methods.

[1]:
# Import class and generate basis
from pemtk.sym.symHarm import symHarm

sym = 'D10h'
symBasis = symHarm(PG = sym, lmax=4)
OMP: Info #273: omp_set_nested routine deprecated, please use omp_set_max_active_levels instead.
* sparse not found, sparse matrix forms not available.
* natsort not found, some sorting functions not available.