Calculate the angles between all alignment tensors.
basis_set: The basis set to operate with.
tensors: A list of the tensors to apply the calculation to. If None, all tensors are used.
angle_units: The units for the angle parameters, either `deg' or `rad'.
precision: The precision of the printed out angles. The number corresponds to the number of figures to print after the decimal point.
This will calculate the inter-matrix angles between all loaded alignment tensors for the current data pipe. For the vector basis sets, the matrices are first mapped to vector form and then then the inter-vector angles rather than inter-matrix angles are calculated. The angles are dependent upon the basis set - linear maps produce identical results whereas non-linear maps result in different angles. The basis set can be one of:
The full matrix angle via the Euclidean inner product is defined as
\
/ <A1 , A2> \
theta = arccos | ------------- | ,
\ ||A1||.||A2|| / \
where <a,b> is the Euclidean inner product and ||a|| is the Frobenius norm of the matrix. For the irreducible spherical tensor 5D basis set, the Am components are defined as
\
/ 4pi \ 1/2
A0 = | --- | Szz ,
\ 5 /
/ 8pi \ 1/2
A+/-1 = +/- | --- | (Sxz +/- iSyz) ,
\ 15 /
/ 2pi \ 1/2
A+/-2 = | --- | (Sxx - Syy +/- 2iSxy) ,
\ 15 / \
and, for this complex notation, the angle is
\
/ Re(<A1|A2>) \
theta = arccos | ----------- | ,
\ |A1|.|A2| / \
where the inner product is defined as
\
___
\ 1 2*
<A1|A2> = > Am . Am ,
/__
m=-2,2 \
and where Am* = (-1)^m A-m, and the norm is defined as |A1| = Re(sqrt(<A1|A1>)). For all other basis sets whereby the map is real matrix -> real vector, the inter-tensor angle is defined as
\
/ <A1|A2> \
theta = arccos | --------- | ,
\ |A1|.|A2| / \
where the inner product <A1|A2> is simply the vector dot product and |A1| is the vector length.