WIGXJPF library and program
General Information
WIGXJPF evaluates Wigner 3j, 6j and 9j symbols
accurately using prime factorisation and multi-word integer
arithmetic.
- Type
- Scientific software, program package
- Language
- Program: C. Library interfaces: C, Fortran, Python
- License
- WIGXJPF is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
WIGXJPF 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with WIGXJPF. If not, see
http://www.gnu.org/licenses/.
- Main developer
- Håkan T. Johansson, Chalmers University of Technology, Sweden
- Distributor
- Nuclear theory and few-body physics group, Chalmers University of
Technology, Sweden
- Acknowledgment
- The research leading to these results has received funding from
the European Research Council under the European Community's Seventh
Framework Programme (FP7/2007-2013) / ERC grant agreement
no. 240603, and the Swedish Foundation for International Cooperation
in Research and Higher Education (STINT, IG2012-5158).
- Reference
- The recommended way to refer to WIGXJPF, when used for computations that are
published in a research article, is to cite the following paper:
H. T. Johansson and C. Forssén,
Fast and Accurate Evaluation of Wigner 3j,
6j, and 9j Symbols Using Prime Factorization and Multiword Integer
Arithmetic,
SIAM J. Sci. Comput.,
38(1) (2016),
A376-A384.
eprint http://dx.doi.org/10.1137/15M1021908
Pre-print (2015) at arXiv:1504.08329
Download
- Location
- http://fy.chalmers.se/subatom/wigxjpf/wigxjpf-1.13.tar.gz
- Contact
- Håkan T. Johansson (f96hajo@chalmers.se) and Christian
Forssén (christian.forssen@chalmers.se)
- Version
- 1.13 (CHANGELOG)
- Support
- No formal support
- Alternatives
- Library for fast lookup:
FASTWIGXJ.
(If your program uses very many symbols;
trades memory for speed - factor 10+.)
Library for sequence evaluation:
WIGSGLL.
(If your program uses sequences of symbols.)
Documentation
See README (included with download).
A short slide-show presentation.
Some usage statistics.
Examples
- Symbol evaluation
- Symbols can be evaluated directly from the command-line after download and unpacking (half integer arguments are given on decimal form, e.g. ½ as 0.5):
make
bin/wigxjpf --6j=2,2,1,2,1,1
- C interface usage
- Compile with -Ipath-to-wigxjpf/inc/ and link with
-Lpath-to-wigxjpf/lib/ -lwigxjpf (note that the
evaluation functions take 2* the angular momenta arguments as integers).
#include "wigxjpf.h"
int main()
{
double val6j;
wig_table_init(2*100, 9);
wig_temp_init(2*100);
val6j = wig6jj(2* 2 , 2* 2 , 2* 1 ,
2* 2 , 2* 1 , 2* 1 );
wig_temp_free();
wig_table_free();
return 0;
}
- Python interface usage
-
Either compile locally:
make pywigxjpf_ffi
or install pywigxjpf directly from PyPI:
pip install pywigxjpf
Example usage:
import pywigxjpf as wig
wig.wig_table_init(10, 9)
wig.wig_temp_init(10)
wig.wig6jj(2* 2 , 2* 2 , 2* 1 ,
2* 2, 2* 1 , 2* 1 )
- MATLAB usage
Latest version link
wigxjpf-latest.tar.gz
To avoid version numbers in directory name, unpack with:
tar --transform 's/wigxjpf-[0-9.]*/wigxjpf/' -zxf wigxjpf-latest.tar.gz
Comments? christian.forssen@chalmers.se
Last modified: Mon 22 Feb 00:17:30 CET 2021