Page 68 out of 78 total pages , Page 5 out of 7 pages in this chapter


9.6 Complex Routines

9.6.1 component

Usage:


#include <space_T.h>
space_T space_T::component (int l);
complex space_T::component (int l, int m);

Description:

The member function component provides direct access to the individual irreducible spherical components of the input spatial tensor.
  1. component (int l) - When invoked with only a rank index as arguments the function component returns an irreducible spatial tensor equivalent to the irreducible rank l component of the input tensor.
  2. component (int l, int m) - When invoked with a rank index and a component index as arguments the function component returns a complex number which is the irreducible spherical l, m component of the input tensor.
A general rank l tensor can be broken up into irreducible tensors of rank l, l-1,...., 0. Each of these tensors has components which are stored internally as irreducible spherical components,

.

This returns either one of the irreducible tensors of specified rank which makes up the input tensor or one of the irreducible tensor components. The tensor indices should not lie outside of their intrinsic range as set by the tensor rank, namely l [0, k] and m [-l, l] where k is the rank of the tensor. If the tensor itself is irreducible only the components with l=k will exist and the function returns zero if asked for components with l<k.

Return Value:

A complex number or an irreducible spatial tensor is returned.

Example(s):

#include <gamma.h>
main()
  {
  space_T SphT, sphT1; 	 	 // create two new empty spatial tensors.
  complex z; 	 	 // create a new complex number.
  SphT = A1(0.0, 0.0, -2); 	 	 // SphT to rank 1 tensor, length 2 vector along -z axis.
  SphT1=SphT.component(0.0, 0.0, -2); // SphT1 irreducible rank 1 tensor 0f SphT (equal).
  z = SphT.component(1,-1); 	 	 // set z to the 1,-1 component of the tensor SphT.
  //z = SphT.component(2,0); 	 	 // access rank 2 comp. of a rank 1 tensor! Fatal error.
  }

See Also: None

9.6.2 rotate

Usage:


#include <gamma.h>
space_T space_T::rotate = (double alpha, double beta, double gamma);
space_T space_T::rotate = (coord &EA);

Description:

The member function rotate rotates the spatial tensor coordinate system by Euler angles alpha, beta, and gamma to produce a new spatial tensor.
  1. rotate(double alpha, double beta, double gamma) - When rotate is invoked with a these arguments it rotates the coordinate system to which the tensor is referenced to by the Euler angles alpha, beta, and gamma. The angles are input in degrees
  2. rotate(coord &EA) - This use performs identically to 1. except that the three Euler angles alpha, beta, and gamma are contained in a single coordinate EA.

Return Value:

A new spin tensor is returned.

Example(s):

#include <gamma.h>
main()
  {
  spin_system AX(2); 	 	 // create a two spin system called AX.
  space_T SphT(AX); 	 	 // new spin tensor associated with spin system AX.
  SphT = A1(0.0, 0.0, -2); 	 	 // SphT to rank 1 tensor, length 2 vector along -z axis.
  SphT = SphT.rotate(0, 90.0, 0);	 	 // rotate coordinate axes of SphT 90 degrees about y.
  coord EA(0, 90.0, 0);	 	 // define a coordinate point with Euler angles.
  SphT = SphT.rotate(EA);	 	 // another rotation of SphT 90 degrees about y.
  }

See Also: None

Mathematical Basis:

9.6.3 T_mult

Usage:


#include <space_T.h>
space_T T_mult (space_T &SphT1, space_T &SphT2);
space_T T_mult (space_T &SphT1, intl1, space_T &SphT2, int l2);
space_T T_mult (space_T &SphT1, intl1, space_T &SphT2, int l2, int L);
complex T_mult (space_T &SphT1, intl1, space_T &SphT2, int l2, int L, int M);

Description:

The function T_mult multiplies two tensors (cross product) together to produce a new tensor.

A = A1 x A2

The user can obtain the entire resulting tensor, the tensor resulting from the product with A1 and A2 irreducible, an irreducible tensor component of such a product or a specific component of this latter product.
  1. T_mult (space_T &SphT1, space_T &SphT2) - Returns a spatial tensor which is the product of the two input spatial tensors. The resulting tensor will have a rank which is the sum of the individual tensor ranks and will be stored in terms of its irreducible spherical components.
  2. T_mult (space_T &SphT1, int l1, space_T &SphT2, int l2) - Returns a spatial tensor which is the product of the rank l1 irreducible component of T1 and the rank l2 irreducible component of T2.The resulting tensor will have a rank which is the sum of l1 and l2 and will be stored in terms of its irreducible spherical components.
  3. T_mult (space_T &SphT1, int l1, space_T &SphT2, int l2, int L) - Returns an irreducible spatial tensor which is the rank L component arising from the tensor product of the rank l1 irreducible component of T1 and the rank l2 irreducible component of T2. The resulting tensor will have a rank L, be irreducible and have its components stored spherical.
  4. T_mult (space_T &SphT1, int l1, space_T &SphT2, int l2, int L, int M) - Returns a complex number which is the L,M component of the spatial tensor which is the product of the rank l1 irreducible component of T1 and the rank l2 irreducible component of T2.

Return Value:

Either a spatial tensor or a complex number is returned.

Example(s):

#include <gamma.h>
main()
  {
  space_T SphT; 	 	 // create a new empty spatial tensor.
  SphT = sphA1(Y11(90., 45.), Y10(90., 45,), Y1m1(90.,45.); // SphT rank 1 harmonics.
  space_T SphT1(SphT); 	 	 // create a new spatial tensor identical to SphT.
  space_T SphT2; 	 	 // create a new empty spatial tensor.
  SphT2 = T_prod(SphT, SphT1); 	 	 // set SphT2 equal to the product SphT x SphT1, Y2's
  SphT1 = T_prod(SphT, SphT2); 	 	 // set SphT1 equal to the product SphT x SphT2, Y3's
  }

See Also: None

Mathematical Basis:

The product of two irreducible spherical spatial tensors, A1 and A2 produces another spatial tensor, A, according the equation A = A1 x A2. The irreducible spherical components of A are given by equation (9-15)1

where L [l1+l2, |l1-l2|], M = m1 + m2 and <l1l2m1m2|LM> are Clebsch-Gordan coefficients. The entire irreducible rank L tensor is returned from usage 3. of the function and the L, M component from usage 4, AL,M. When the product of two reducible tensors is performed, each of the input tensors must be expanded in terms of irreducible components.




Page 68 out of 78 total pages , Page 5 out of 7 pages in this chapter


1
This formula is found in Brink and Satchler, page 52, equation (4.6).
GAMMA Support Provided by the National High Magnetic Field Laboratory
© 1996 Scott A. Smith, The NHMFL, and The Florida State University.
All Rights Reserved.
No GAMMA WWW pages or GAMMA specific images therein may be reproduced or used in any manner outside of personal Web Browsers without permission from the copyright holders.
Send problems & suggestions to gamma@magnet.fsu.edu
Additonal GAMMA information can be found at http://gamma.magnet.fsu.edu