Programs in Physics & Physical Chemistry
|[Licence| Download | New Version Template] acws_v1_0.gz(5 Kbytes)|
|Manuscript Title: Recursive evaluation of 3j- and 6j- coefficients.|
|Authors: K. Schulten, R.G. Gordon|
|Program title: J1-RECURSION OF 6J-COEFFICIENTS|
|Catalogue identifier: ACWS_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, 6-j, Racah, Wigner, Angular momentum, Recursion.|
Nature of problem:
Subroutine REC6J generates 6j-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 6j-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 6j coefficients h(j1) with contiguous j1 values j1-1,j1,j1+1 is solved in the direction of increasing h(j1) from both ends of the allowed j1 domain, j1min and j1max. The linear recursion equation reduces to two terms at j1min and j1max and thus can be started at both ends with arbitrary initial values h(j1min) and h(j1max), respectively. At an intermediate j1 forward and backward recursions are matched which leaves all f(j1) off by a constant factor. This factor is determined from the unitrary property of 6j coefficients and Wigner's phase convention.
Large quantum number 6j coefficients h(j1) may vary over many orders of magnitude over their j1 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 magnitudes of contiguous 6j coefficients h(j1) are being evaluated exactly, however. The program sets later on all 6j coefficients which are smaller than TINY to zero.
0.5 ms per 6j coefficient for j1max-j1min>20, somewhat longer for smaller j1 domains.
|Disclaimer | ScienceDirect | CPC Journal | CPC | QUB|