Programs in Physics & Physical Chemistry
|[Licence| Download | New Version Template] acwr_v1_0.gz(5 Kbytes)|
|Manuscript Title: Recursive evaluation of 3j- and 6j- coefficients.|
|Authors: K. Schulten, R.G. Gordon|
|Program title: M2-RECURSION OF 3J-COEFFICIENTS|
|Catalogue identifier: ACWR_v1_0|
Distribution format: gz
|Journal reference: Comput. Phys. Commun. 11(1976)269|
|Programming language: Fortran.|
|Computer: UNIVAC 1108.|
|Operating system: EXEC 8.|
|RAM: 9K words|
|Word size: 36|
|Keywords: General purpose, Molecular, Rotation group, Recoupling coefficient, 3-j, Clebsch-gordan, Wigner, Angular momentum, Recursion.|
Nature of problem:
Subroutine REC3JM generates 3j-coefficients from the exact solution of a recursion equation. The algorithm is more efficient and accurate than those based on explicit expressions, particularly in the commonly arising case in which a complete set of 3j-coefficients is needed. The algorithm is numerically stable for large quantum numbers which occur in problems of molecular dynamics.
To guarantee numerical stability the recursion equation which relates 3j coefficients g(m2) with contiguous m2 values m2-1, m2, m2+1 is solved in the direction of increasing g(m2) from both ends of the allowed m2 domain, m2min and m2max. The linear recursion equation reduces to two terms at m2min and m2max and thus can be started at both ends with arbitrary initial values g(m2min) and g(m2max), respectively. At an intermediate m2 forward and backward recursion are matched which leaves all g(m2) off by a constant factor. This factor is determined from the unitrary property of 3j coefficients and Wigner's phase convention.
Large quantum number 3 j coefficients g(m2) may vary over many orders of magnitude over their m2 domain. The program prevents underflow and overflow for which purpose the smallest and largest number representable on the computer, TINY and HUGE, respectively, have to be defined. In the recursion process the relative magnitude of contiguous 3j coefficients g(m2) are being evaluated exactly, however. The program sets later on all 3j coefficients which are smaller than TINY to zero.
0.3 ms per 3j coefficient for m2max-m2min > 20, somewhat longer for smaller m2 domains.
|Disclaimer | ScienceDirect | CPC Journal | CPC | QUB|