^{1}

^{*}

^{2}

^{*}

^{1}

^{2}

Edited by: Jinjin Li, Shanghai Jiao Tong University, China

Reviewed by: Edoardo Milotti, University of Trieste, Italy; Sungwoo Ahn, East Carolina University, United States; Jiarui Zhang, Boston University, United States

This article was submitted to Computational Physics, a section of the journal Frontiers in Physics

This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.

We present the Mathematica group theory package GTPack providing about 200 additional modules to the standard Mathematica language. The content ranges from basic group theory and representation theory to more applied methods like crystal field theory, tight-binding and plane-wave approaches capable for symmetry based studies in the fields of solid-state physics and photonics. GTPack is freely available via

Symmetry and symmetry breaking are basic concepts of nature. Thus, arguments based on the symmetry of the considered system play a significant role within almost all branches of physics. Group theory represents the mathematical language to deal with symmetry, since all transformations that leave a physical system invariant (usually described in terms of transformations of algebraic or differential equations) naturally form a group. The application of group theory in physics has a long tradition ranging back to the beginning of the twentieth century [^{0} magnetism and impurity states [

In many cases, non-trivial results can be obtained from basic group theoretical information like the characters of the irreducible representations or the Clebsch-Gordan coefficients. In the past decades these information were tabulated in various books (e.g., [

The development of the Mathematica group theory package GTPack was designed to fill this gap. The functionality was planned to cover both, an application in active research and an application in university teaching. Therefore a main focus is the development of a user-friendly application, via self-explanatory names for new commands, a comprehensive documentation system and an optional input validation.

The aim of the paper is to report on the initial version of the Mathematica group theory package GTPack which is freely available for academic usage via

According to the functionality of the modules, GTPack is divided into various subpackages as illustrated in Figure

Subpackage structure of GTPack and interaction with external data.

The second class “structure” comprises of the packages

Next to basic group theory GTPack also contains subpackages for particular applications in solid state physics and photonics. The third class “Applications” contains the subpackages

For various applications it is necessary to incorporate data, for example, tight-binding parameters, crystal field parameters and crystal structures. Therefore, GTPack contains several modules for the creation and handling of databases (cf. Figure ^{1}

To distinguish new commands provided by GTPack from the standard Mathematica language and to prevent conflicts with new versions of Mathematica, all GTPack commands are starting with the characters _{3z}. Internally all symmetry elements are represented using matrices. The conversion between symbols and matrices can be done using

Rotation axes for symmetry elements in Schönflies notation (according to Cornwell [

Character tables are frequently needed and can be calculated using

GTPack is installed similarly to all other Mathematica packages. After downloading and decompressing GTPack, the content of the package has to be copied to the application folder of Mathematica within the respective base directory. Here, the user can choose between making the package available for all users of the computer or only for her- or himself. If the package should be available for all users of the computer, the corresponding folder to copy to can be found by opening a Mathematica notebook and typing $BaseDirectory. If the package should be available exclusively for the current user of the computer the respective base directory can be found by typing $UserBaseDirectory. According to the path of the base or user base directory (called $dir in the following), the folder containing GTPack needs to be copied to the directory $dir\Applications. Afterwards, the package and the documentation are available. The package itself can be loaded within a Mathematica notebook by typing Needs[”GroupTheory‘”].

In the first example, the installation of point groups and the calculation of character tables is shown. Within the example, the point group _{na} denotes a rotation about the angle 2π/

Installation of groups and double groups and calculation of the character tables using the commands

The command applies the Burnside algorithm for the calculation of the character table [^{*}; pseudo-real, if Γ is not equivalent to a real representation, but Γ ~ Γ^{*}; and essentially complex, if Γ ≁ Γ^{*}. This property can be determined by means of the equation of Frobenius and Schur [

Equation (1) can be evaluated using

Crystal field theory represents a semi-empirical approach to describe localized states in an atomic or crystallographic surrounding. The crystallographic surrounding or crystal field is described in terms of a small perturbation

The crystal field itself can be expanded in terms of spherical harmonics

or more generally in terms of crystal field operators

GTPack contains various modules to calculate matrix elements

Depending on the underlying symmetry of the system some of the expansion coefficients _{l, m} or _{l, m} are zero. Given a symmetry group

However, for any proper coordinate transformation

where ^{l} has to be taken into account. Evaluating Equation (5) by using the expansion (3) and transformation behavior (6) leads to the under determined equation system

From Equation (7) it can be concluded which coefficients depend on each other and which coefficients vanish. The final symmetry adapted crystal field expansion can be calculated using GTPack by means of _{h} for the cubic and the octahedral case as well as _{d} for the tetrahedral case. However, it turns out that both groups lead to the same crystal field expansion. First, the point group _{h} is installed using

where

and

The latter integral is called Gaunt coefficient and can be calculated by means of GTPack using ^{l}′> are materials specific and can be calculated, e.g., in the framework of the density functional theory [

and

As can be verified from the Mathematica example in Figure _{g} and the three-fold degenerate level corresponds to the irreducible representation _{2g}. For the tetrahedron the inversion symmetry is broken and the states are denoted by _{2}, respectively. The final result is plotted in Figure

Crystal field expansion and level splitting for a localized

The level splitting for a localized _{g} (_{2g} (_{2}) levels in an octahedral, a cubic and a tetrahedral crystal field.

Due to the occurrence of Dirac nodes within the band structure and the resulting properties, graphene counts as one of the most studied materials to date [_{z}-orbitals do not hybridize with all the other orbitals. Hence, those can be considered to form a smaller tight-binding Hamiltonian of dimension 2 × 2. Setting up and solving the reduced 2 × 2 tight-binding Hamiltonian is shown in Figure

Structural information and construction of the tight-binding Hamiltonian for graphene.

Band structure calculation for graphene.

Photonic crystals represent the optical analogs of ordinary crystals, where light is traveling through a periodic dielectric. Potential optical band gaps, i.e., forbidden frequencies where photons are not allowed to travel through the medium have motivated research for various applications replacing ordinary electronics and information technology [

Here, the vector ^{1}^{−7}. The calculated band structure can be loaded, plotted and analyzed automatically using the command _{4v}, which has four one-dimensional irreducible representation (_{1}, _{2}, _{1}, _{2}) and one two-dimensional irreducible representation (

Photonic band structure for a two-dimensional square lattice of alumina rods in air calculated using MPB and analyzed with GTPack.

Application of the character projection operator to the field corresponding to the degeneracy between the second and third band of the transversal magnetic mode at

As an additional package to the standard Mathematica framework, GTPack is embedded into the Mathematica framework. The new modules provided within GTPack are designed for application in solid state physics and photonics and use notations which are common in these research communities. Having a programming framework at hand comes with the advantage of easy automation which is in contrast to recently published group theory tables. Most of the provided modules are kept general and can be applied in connection to any set of matrices forming a group. This allows for applications way beyond the provided point and space group setup. As usual, the package is constructed in a modular form and can be extended easily.

GTPack is under ongoing development and therefore comes with limitations in the first version. Among others, these comprise of the calculation of character tables for space groups and groups containing anti-unitary symmetry elements. The implemented modules for the calculation of photonic band structures currently do not reach the same performance as specialized numeric implementations such as MPB. Thus, export and import modules connect MPB with GTPack. Additionally, modules to export analytically generated tight-binding Hamiltonians to Fortran help to generate more efficient numeric codes. An extension to a parallel implementation for the usage of the cluster version of Mathematica is currently not planned. Concerning the symmetry analysis, irreducible representations can currently only be associated to the calculated bands if symmorphic space groups are taken into account. An extension for non-symmorphic groups is under development.

We presented the Mathematica group theory package GTPack together with four basic examples. The package contains about 200 additional commands dealing with basic group theory and representation theory and providing tools for applications in solid state physics and photonics. The package itself is structured into several subpackages. In connection to external databases it is possible to load, change and save data, like structural information or parameters for electronic and photonic band structure calculations. The package works externally with a symbolic representation of symmetry elements. Internally, matrices are used. GTPack can be obtained online via the web page

All authors listed have made a substantial, direct and intellectual contribution to the work, and approved it for publication.

The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.

The authors acknowledge the support of Sebastian Schenk, especially with respect to his help in building up a documentation within the Mathematica framework. Furthermore, we are grateful for discussions and contributions from Markus Däne, Christian Matyssek, Stefan Thomas, Martin Hoffmann, and Arthur Ernst. This publication was funded by the German Research Foundation within the Collaborative Research Centre 762 (projects A4 and B1). Additionally, RG acknowledges funding from the European Research Council under the European Union's Seventh Framework Program (FP/2207-2013)/ERC Grant Agreement No. DM-321031.

The Supplementary Material for this article can be found online at:

^{1}Available online at: