Cadabra a field-theory motivated approach to computer algebra-
Cadabra is a computer algebra system (CAS) designed specifically for the solution of problems encountered in field theory. It has extensive functionality for tensor computer algebra, tensor polynomial simplification including multi-term symmetries, fermions and anti-commuting variables, Clifford algebras and Fierz transformations, implicit coordinate dependence, multiple index types and many more. The input format is a subset of TeX. Both a command-line and a graphical interface are available.
Key features of Cadabra:
Input and output using TeX notation.
Designed for field-theory problems, with handling of anti-commuting and non-commuting objects without special notations for their products, gamma matrix algebra, Fierz identities, Dirac conjugation, vielbeine, flat and curved, covariant and contravariant indices, implicit dependence of tensors on coordinates, partial and covariant derivatives...
Powerful tensor simplification algorithms, not just for mono-term symmetries but also for multi-terms symmetries like the Bianchi identity, or dimensionally-dependent symmetries like the Schouten identity.
Technical highlights:
Internal graph data structure based on tree.hh
A multiple-inheritance typing system using properties.
Open source C++ code, with documentation on how to extend the system with new algorithm modules.
All feedback is welcome (bugs reports, criticism, suggestions); please contact kasper.peeters (at) durham.ac.uk or post to the mailing list.
Download.
Binary packages for Linux, Mac OS X (and no longer for Windows) can be found on these pages. The source code, available below, should compile on most Linux and Mac systems. However, I only have limited access to various distributions and versions of these operating systems. If you try to compile it yourself and encounter problems, please let me know.
After installation, the command cadabra will start the command line version and xcadabra will start the graphical front-end; on some systems there will also be an entry for Cadabra in your Applications or Start menu.
Ubuntu distributions have Cadabra packages in the standard repositories. Just install with
sudo apt-get install cadabra
or use e.g. synaptic. If you want the latest version, add my PPA to your system, using
sudo add-apt-repository ppa:kasper-peeters/ppa
sudo apt-get update
Optionally, install the cmtt12.ttf font into your ~/.fonts directory to improve the GUI display.
If you encounter a LaTeX error related to breqn.sty, please do
sudo apt-get install texlive-latex3
This is a broken dependency issue in the official repositories (which is fixed in the PPA version).
If you want to install the packages by hand (using e.g. gdebi or dpkg), use the direct link to the modglue packages and the direct link to the cadabra packages. If you need Cadabra for an older Ubuntu version, send me an email.
After installation, the command cadabra will start the command line version and xcadabra will start the graphical front-end (or choose cadabra from the Applications/Education menu).
Cadabra is now also part of Debian, and is available in the 'sid (unstable)' branch. Thanks to Gürkan Sengün for making this happen.
Packes for older Debian systems (Etch and Lenny) are available thanks to the work of Burkhard Bunk. Please consult the Debian packages page at the physics department of Humboldt University Berlin for instructions on how to install these.
Note that their repository does not have the latest Cadabra version.
I have built packages for Fedora 16 and 17 using the OpenSUSE build server.
You need to install all four packages (lie, breqn, modglue and cadabra, in this order) in order to get a working Cadabra installation.
You may also want to install one extra font (optional), cmtt12.ttf. Simply place this in the ~/.fonts directory in your home directory; this will improve the GUI display.
After installation, the command cadabra will start the command line version and xcadabra will start the graphical front-end (or choose cadabra from the Applications/Education menu).
The packages below were created and tested on Scientific Linux 5.3, but work on more recent versions as well. These packages are relocatable. If you need packages for an older version of Scientific Linux, please drop me an email.
package
SL-5.3 RPM
SL-5.3 SRPM
breqn
breqn-0.94-1.i386.rpm
breqn-0.94-1.src.rpm
LiE
lie-2.2.2-1.i386.rpm
lie-2.2.2-1.src.rpm
libmodglue
modglue-1.15-1.i386.rpm
modglue-1.15-1.src.rpm
Cadabra
cadabra-1.23-1.i386.rpm
cadabra-1.23-1.src.rpm
extra font (optional)
cmtt12.ttf
Store the font in the ~/.fonts directory in your home directory; this will improve the GUI display.
After installation, the command cadabra will start the command line version and xcadabra will start the graphical front-end (or choose cadabra from the Applications/Edutainment menu).
The packages below were created and tested on openSUSE 11.2, but hopefully work on more recent versions as well. These packages are relocatable. If you need packages for an older version of openSUSE, please drop me an email.
package
openSUSE 11.2 RPM
openSUSE 11.2 SRPM
LiE
lie-2.2.2-1.i386.rpm
lie-2.2.2-1.src.rpm
libmodglue
modglue-1.16-1.i386.rpm
modglue-1.16-1.src.rpm
Cadabra
cadabra-1.23-1.i386.rpm
cadabra-1.23-1.src.rpm
extra font (optional)
cmtt12.ttf
Store the font in the ~/.fonts directory in your home directory; this will improve the GUI display.
After installation, the command cadabra will start the command line version and xcadabra will start the graphical front-end (or choose cadabra from the More Applications/New applications menu).
Packages for Cadabra, modglue and LiE are available in the science overlay of Gentoo. Users can access the science overlay using the layman utility:
- Type "layman -a science" to add the science overlay,
- add "sci-mathematics/lie", "sci-libs/modglue" and "sci-mathematics/cadabra" to your package.keywords (in /etc/portage)
- Type "emerge cadabra" to install cadabra and its dependencies.
Thanks to François Bissey for making this happen.
Other Linux distributions
If you need a package for a different Linux distribution, contact me by email or try to compile from source.
Mac OS X.
The Fink version is outdated and known to lead to problems; if you would like to see it updated please contact me.
Important for Mavericks users: the Cadabra dependencies fail to build on Apple's latest OS. This is under investigation; if you have any insight please let me know.
Thanks to Greg Wright, cadabra is available for Mac OS X users through MacPorts; see the record for cadabra for details and the currently available version.
Simply type "sudo port install cadabra" and all required software will be installed automatically (note: this may install some software which you already have installed from other sources). If you do not want the graphical user interface, add the +no_gui option at the end.
After installation, the command cadabra will start the command line version and xcadabra will start the graphical front-end.
Source code.
Installing from source should be no harder than with any other well-behaved GNU tools, i.e. it should be as simple as configure/make/make install. However, you will need to have some additional libraries and tools installed before you can compile cadabra itself. In particular,
- gmp (configured with --enable-cxx) (on Debian, apt-get install libgmp3-dev libgmpxx3)
- pcre with C++ wrapper enabled (on Debian, apt-get install libpcre3-dev lib)
- LiE (on Debian, apt-get install lie)
In order to compile the graphical front-end (add the --enable-gui flag to configure) you also need
- gtk+
- gtkmm
- dvipng
- LaTeX
- the breqn package for LaTeX
Cadabra's configure script will look for these libraries and programs, and tell you when you need to install them. Consult the documentation of these programs/libraries for installation instructions.
You then need to compile and install my modglue library, which is used to connect the various pieces of cadabra together. Download this version here, since it's tuned to cadabra:
This should be a matter of configure/make/make install. Finally, compile and install cadabra itself,
Again, this should be a matter of configure/make/make install. If compilation succeeds, you can also try "make test" for some self-tests (which should all pass).
As always, please mail me if you need help.
After installation, the command cadabra will start the command line version and xcadabra will start the graphical front-end.
Screenshots.
Native graphical user interface
Cadabra comes with its own graphical notebook frontend, which is based on the gtk toolkit (or rather its C++ wrapper gtkmm) and uses LaTeX to typeset expressions. Here are some screenshots:
TeXmacs interface
There is also a TeXmacs frontend, displayed in the screenshots below. The associated TeXmacs files can be found in the "texmacs" subdirectory of the source tarball.
If you liked this article, subscribe to the feed by clicking the image below to keep informed about new contents of the blog:
0 commenti:
Post a Comment