Click or drag to resize

VectorCouplingThreeJSymbolM Method

Evaluate the Wigner 3j symbol
C#
g(m2) = ( l1  l2     l3  )
        ( m1  m2  -m1-m2 )
for all allowed values of m2, 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 ThreeJSymbolM(
	double l1,
	double l2,
	double l3,
	double m1,
	out double m2min,
	out double m2max,
	double[] thrcof,
	int ndim,
	out int errflag
)

Parameters

l1  Double
Parameter in 3j symbol.
l2  Double
Parameter in 3j symbol.
l3  Double
Parameter in 3j symbol.
m1  Double
Parameter in 3j symbol.
m2min  Double
Smallest allowable m2 in 3j symbol.
m2max  Double
Largest allowable m2 in 3j symbol.
thrcof  Double
Set of 3j coefficients generated by evaluating the 3j symbol for all allowed values of m2. thrcof(i) will contain g(m2min+i), i=0,2,...,m2max-m2min.
ndim  Int32
Declared length of thrcof in calling program.
errflag  Int32
Error flag.

errflag=0 No errors.

errflag=1 Either l1 < abs(m1) or l1+abs(m1) non-integer.

errflag=2 abs(l1-l2)<= l3 <= l1+l2 not satisfied.

errflag=3 l1+l2+l3 not an integer.

errflag=4 m2max-m2min not an integer.

errflag=5 m2max less than m2min.

errflag=6 ndim less than m2max-m2min+1.

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

Although conventionally the parameters of the vector addition
coefficients satisfy certain restrictions, such as being integers
or integers plus 1/2, the restrictions imposed on input to this
subroutine are somewhat weaker. See, for example, Section 27.9 of
Abramowitz and Stegun or Appendix C of Volume II of A. Messiah.

The restrictions imposed by this subroutine are

      1. l1 >= abs(m1) and l1+abs(m1) must be an integer
      2. abs(l1-l2) <= l3 <= l1+l2
      3. l1+l2+l3 must be an integer
      4. m2max-m2min must be an integer, where
         m2max=min(l2,l3-m1) and m2min=max(-l2,-l3-m1)

If the conventional restrictions are satisfied, then these
restrictions are also met.

The user should be cautious in using input parameters that do
not satisfy the conventional restrictions. For example, the
the subroutine produces values of
      g(m2) = (0.75 1.50   1.75  )
              (0.25  m2  -0.25-m2)
for m2=-1.5,-0.5,0.5,1.5 but none of the symmetry properties of the
3j symbol, set forth on page 1056 of Messiah, is satisfied.

The subroutine generates g(m2min), g(m2min+1), ..., g(m2max)
where m2min and m2max are defined above. The sequence g(m2) 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 3j 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. Abramowitz, M., and Stegun, I. A., Eds., Handbook
    of Mathematical Functions with Formulas, Graphs
    and Mathematical Tables, NBS Applied Mathematics
    Series 55, June 1964 and subsequent printings.
 2. Messiah, Albert., Quantum Mechanics, Volume II,
    North-Holland Publishing Company, 1963.
 3. 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.
 4. 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.
 5. Schulten, Klaus and Gordon, Roy G., Recursive
    evaluation of 3j and 6j coefficients, Computer
    Phys Comm, v 11, 1976, pp. 269-278.
 6. SLATEC library, category  C19,
    double precision algorithm DRC3JM.F
    Keywords: 3j coefficients, 3j 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; MMATCH (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 THRCOF expanded. These changes were done by
            D. W. Lozier.
 7. 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