Click or drag to resize

VectorCouplingSixJSymbol Method

Evaluate the 6j symbol
C#
h(l1) = { l1  l2  l3 }
        { l4  l5  l6 }
for all allowed values of l1, the other parameters being held fixed.

Namespace: Altaxo.Calc
Assembly: AltaxoCore (in AltaxoCore.dll) Version: 4.8.3179.0 (4.8.3179.0)
Syntax
C#
public static void SixJSymbol(
	double l2,
	double l3,
	double l4,
	double l5,
	double l6,
	out double l1min,
	out double l1max,
	double[] sixcof,
	int ndim,
	out int errflag
)

Parameters

l2  Double
Parameter in 6j symbol.
l3  Double
Parameter in 6j symbol.
l4  Double
Parameter in 6j symbol.
l5  Double
Parameter in 6j symbol.
l6  Double
Parameter in 6j symbol.
l1min  Double
Smallest allowable l1 in 6j symbol.
l1max  Double
Largest allowable l1 in 6j symbol.
sixcof  Double
Set of 6j coefficients generated by evaluating the 6j symbol for all allowed values of l1. sixcof(i) will contain h(l1min+i), i=0,2,...,l1max-l1min.
ndim  Int32
Declared length of sixcof in calling program.
errflag  Int32
Error flag.

errflag=0 no errors.

errflag=1 l2+l3+l5+l6 or l4+l2+l6 not an integer.

errflag=2 l4, l2, l6 triangular condition not satisfied.

errflag=3 l4, l5, l3 triangular condition not satisfied.

errflag=4 l1max-l1min not an integer.

errflag=5 l1max less than l1min.

errflag=6 ndim less than l1max-l1min+1.

Remarks
C#
Description:
------------

 The definition and properties of 6j symbols can be found, for
 example, in Appendix C of Volume II of A. Messiah. Although the
 parameters of the vector addition coefficients satisfy certain
 conventional restrictions, the restriction that they be non-negative

 integers or non-negative integers plus 1/2 is not imposed on input
 to this subroutine. The restrictions imposed are

      1. l2+l3+l5+l6 and l2+l4+l6 must be integers;
      2. abs(l2-l4) <= l6 <= l2+l4 must be satisfied;
      3. abs(l4-l5) <= l3 <= l4+l5 must be satisfied;
      4. l1max-l1min must be a non-negative integer, where
         l1max=min(l2+l3,l5+l6) and l1min=max(abs(l2-l3),abs(l5-l6)).

 If all the conventional restrictions are satisfied, then these
 restrictions are met. Conversely, if input to this subroutine meets
 all of these restrictions and the conventional restriction stated
 above, then all the conventional restrictions are satisfied.

 The user should be cautious in using input parameters that do
 not satisfy the conventional restrictions. For example, the
 the subroutine produces values of

      h(L1) = {  L1  2/3   1  }
              { 2/3  2/3  2/3 }

 for L1=1/3 and 4/3 but none of the symmetry properties of the 6j
 symbol, set forth on pages 1063 and 1064 of Messiah, is satisfied.

 The subroutine generates h(l1min), h(l1min+1), ..., h(l1max)
 where l1min and l1max are defined above. The sequence h(l1) is
 generated by a three-term recurrence algorithm with scaling to
 control overflow. Both backward and forward recurrence are used to
 maintain numerical stability. The two recurrence sequences are
 matched at an interior point and are normalized from the unitary
 property of 6j coefficients and Wigner's phase convention.

 The algorithm is suited to applications in which large quantum
 numbers arise, such as in molecular dynamics.

References:
-----------
1. Messiah, Albert., Quantum Mechanics, Volume II,
   North-Holland Publishing Company, 1963.
2. Schulten, Klaus and Gordon, Roy G., Exact recursive
   evaluation of 3j and 6j coefficients for quantum-
   mechanical coupling of angular momenta, J Math
   Phys, v 16, no. 10, October 1975, pp. 1961-1970.
3. Schulten, Klaus and Gordon, Roy G., Semiclassical
   approximations to 3j and 6j coefficients for
   quantum-mechanical coupling of angular momenta,
   J Math Phys, v 16, no. 10, October 1975,
   pp. 1971-1988.
4. Schulten, Klaus and Gordon, Roy G., Recursive
   evaluation of 3j and 6j coefficients, Computer
   Phys Comm, v 11, 1976, pp. 269-278.
5. SLATEC  library, category  C19,
   double precision algorithm DRC6J.F
   Keywords: 6j coefficients, 6j symbols, Clebsch-Gordan coefficients,
            Racah coefficients, vector addition coefficients,
            Wigner coefficients
    Author:   Gordon, R. G., Harvard University
              Schulten, K., Max Planck Institute
    Revision history  (YYMMDD)
    750101  DATE WRITTEN
    880515  SLATEC prologue added by G. C. Nielson, NBS; parameters
            HUGE and TINY revised to depend on D1MACH.
    891229  Prologue description rewritten; other prologue sections
            revised; LMATCH (location of match point for recurrences)
            removed from argument list; argument IER changed to serve
            only as an error flag (previously, in cases without error,
            it returned the number of scalings); number of error codes
            increased to provide more precise error information;
            program comments revised; SLATEC error handler calls
            introduced to enable printing of error messages to meet
            SLATEC standards. These changes were done by D. W. Lozier,
            M. A. McClain and J. M. Smith of the National Institute
            of Standards and Technology, formerly NBS.
    910415  Mixed type expressions eliminated; variable C1 initialized;
            description of SIXCOF expanded. These changes were done by
            D. W. Lozier.
 6. Rewritting of the SLATEX algorithm in C++ and adaption to the
    Matpack C++ Numerics and Graphics Library by Berndt M. Gammel
    in June 1997.
See Also