Nature of problem: Manipulation of expressions involving second-quantization operators and other non-commuting objects. Operating system: Any OS which runs Mathematica of bytes in distributed program, including test data, etc.: 1 081 247Ĭomputer: Any computer which runs Mathematica
of lines in distributed program, including test data, etc.: 319 808
Licensing provisions: GNU General Public License Program obtainable from: CPC Program Library, Queenʼs University, Belfast, N. It can be used for educational and demonstration purposes, but also for direct calculations of problems of moderate size. While the emphasis is given on the problems from solid-state and atomic physics, the package can be easily adapted to any given problem involving non-commuting operators. The package consists of a collection of transformation rules that define the algebra of operators and a comprehensive library of utility functions. Here I describe a Mathematica package which provides a flexible framework for performing the required translations between several different representations of operator expressions: condensed notation using pure ASCII character strings, traditional notation (“pretty printing”), internal Mathematica representation using nested lists (used for automatic symbolic manipulations), and various higher-level (“macro”) expressions.
It thus appears advantageous to write numerical computer codes which allow the user to define the problem and the quantities of interest directly in terms of operator strings, rather than in some low-level programming language. In many-particle problems involving interacting fermions or bosons, the most natural language for expressing the Hamiltonian, the observables, and the basis states is the language of the second-quantization operators.