SNEG - Mathematica package for calculations with non-commuting
operators of the second quantization algebra

Copyright (C) 2006 Rok Zitko


The SNEG library is a package for Mathematica computer algebra
system. Its purpose is to provide a framework for performing
calculations using the operators of the second quantisation with an
emphasis on the anti-commuting fermionic operators. It consists of a
collection of transformation rules that define the algebra of
operators and a number of utility functions.

The foundation is a definition of non-commutative multiplication with
automatic reordering of operators in a standard form (usually the
conventional normal ordering with creation operators preceding the
annihilation operators), which takes into account selected
(anti)commutation rules. Standard form reordering allows
simplifications of expressions and the apt choice of normal ordering
permits efficient evaluation of matrix elements in a given basis.

The library makes otherwise tedious calculations a routine
operation. Especially, it prevents inauspicious sign errors when
commuting fermionic operators.


1. Features

* Collection of utility functions that generate various operator
expressions, such as electron number, electron spin and isospin,
1-electron and 2-electron hopping, projection operators, spin-spin and
charge-charge inter-site coupling, etc. These functions can be applied
to construct the Hamiltonian and operators for observables.

* Manipulation of operator expressions: canonical conjugation, spin inversion.

* Calculation of vacuum expectation values of operator expressions.

* Occupation-number representation of states and evaluation of
operator-vector expressions. Occupation-number representations allows
great speed-up in applying a string of operators on a basis state.

* Transformations from product-of-operators to occupation-number
representations of states and vice-versa.

* Generation of basis states with well-defined particle number Q and
spin projection Sz, well-defined number Q and spin S, or well-defined
isospin I and spin S. For models with reflection symmetry, a parity
quantum number can also be introduced. 

* Utility functions for manipulating sets of basis states: conversions
between various representations, mapping a function to each state,
transformations of basis, merging several sets of basis states,
orthogonalization, etc.

* Generation of matrix representations of operators in a given basis

* Support for free (dummy) indexes and summed-over indexes: it is easy
to write multiple sums over wave-numbers k_i and spins
sigma_i. Automatic simplifications can be performed in such sums,
which take into account that multiple summed-over indexes can be
interchanged, etc.

* Support for Dirac's bra-ket notation. Bra-ket notation can be
intermixed with the second-quantization operators notation.

* Distinction between particle and hole operators. This distinction is
used in the standard normal ordering (creation operators are those
that create a particle or a hole) and in the applications of the Wick
theorem (see next entry).

* Simplifications using Wick's theorem, in particular calculation of
the ground state (vacuum) expectation values.


2. Applications

SNEG forms the basis of "NRG Ljubljana", a framework for performing
numerical renormalization group calculations for quantum impurity
problems, such as Kondo and Anderson impurity models
(http://auger.ijs.si/ljubljana). In the past, it has also been applied
to perform exact diagonalizations on Hubbard clusters, perturbation
theory to higher orders and calculation of commutators of complex
operator expressions. It should also be suitable for educational
purposes, since it simplifies tedious calculations with
second-quantization operators, much like Mathematica simplified
learning calculus. A number of examples is included in the SNEG
library distribution; they can easily be extended to non-trivial
calculations.


3. Documentation

HTML and PDF versions of the manuals are included in the
distributions. See directory doc/.

A number of example Mathematica notebook can be found in the
directory examples/.


4. License

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

The full text of the GPL General Public License can be found
in file LICENSE.


5. Contributing to SNEG

If you make improvements to SNEG, you are encouraged to share them
with other users. Bug reports (and fixes) are very welcome as well.
The contact information is in the next section.

Interesting directions for possible further extensions are improved
support for bosonic operators (canonical commutation relations, basis
construction, simplifications in the case of bosons); functions of
operators (perhaps using Series[] expansion); performance
improvements; code simplifications; better operator expression
simplifications; improved documentation.


6. Contact information:

SNEG library home-page: http://auger.ijs.si/ljubljana/sneg

Rok Zitko
"Jozef Stefan" Institute
F5 - Condensed matter physics
Jamova 39
SI-1000 Ljubljana
Slovenia

rok.zitko@ijs.si
