Difference between revisions of "Pauli.m"

From Spinach Documentation Wiki
Jump to: navigation, search
(Notes)
(Update function See also links and function index membership)
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{DISPLAYTITLE:pauli.m}} __NOTOC__
 
{{DISPLAYTITLE:pauli.m}} __NOTOC__
Pauli matrices (sparse) for a spin of a user-specified multiplicity.
+
Pauli matrices (sparse, see below for normalisation conventions) for a spin of a user-specified energy level multiplicity.
  
 
==Syntax==
 
==Syntax==
  
     sigma=pauli(mult)
+
     S=pauli(mult)
  
==Arguments==
+
==Parameters==
  
 
     mult - an integer specifying the  
 
     mult - an integer specifying the  
Line 13: Line 13:
 
==Outputs==
 
==Outputs==
  
     sigma.u - unit operator
+
     S.u - unit operator
 
   
 
   
     sigma.p - raising operator
+
     S.p - raising operator
 
   
 
   
     sigma.m - lowering operator
+
     S.m - lowering operator
 
   
 
   
     sigma.x - Pauli sigma_x matrix
+
     S.x - Sx observable operator
 
   
 
   
     sigma.y - Pauli sigma_y matrix
+
     S.y - Sy observable operator
 
   
 
   
     sigma.z - Pauli sigma_z matrix
+
     S.z - Sz observable operator
  
 
==Notes==
 
==Notes==
 
1. The matrices are normalized so as to obey the following commutation relations:  
 
1. The matrices are normalized so as to obey the following commutation relations:  
  
           [sigma.x,sigma.y]=1i*sigma.z
+
           [S.x,S.y]=1i*S.z
           [sigma.y,sigma.z]=1i*sigma.x
+
           [S.y,S.z]=1i*S.x
           [sigma.z,sigma.x]=1i*sigma.y
+
           [S.z,S.x]=1i*S.y
  
 
2. Raising and lowering operators are defined as:
 
2. Raising and lowering operators are defined as:
  
           sigma.p=sigma.x+1i*sigma.y
+
           S.p=S.x+1i*S.y
           sigma.m=sigma.x-1i*sigma.y
+
           S.m=S.x-1i*S.y
 +
 
 +
3. It is never a good idea to normalise spin operators using matrix norms because commutation relations would break.
 +
 
 +
4. The arrays are declared complex at creation to avoid expensive reallocations later on.
  
 
==See also==
 
==See also==
[[stevens.m]], [[irr_sph_ten.m]], [[wigner.m]], [[operator.m]], [[state.m]], [[hamiltonian.m]]
+
[[stevens.m]], [[irr_sph_ten.m]], [[wigner.m]], [[operator.m]], [[state.m]], [[hamiltonian.m]], [[add_spins.m]], [[cg_fast.m]], [[clebsch_gordan.m]], [[comm.m]], [[hilb2liouv.m]], [[ist_product_table.m]], [[lorentz.m]], [[mat2sphten.m]], [[multipack.m]], [[perm_group.m]], [[rocomm.m]], [[rwalk.m]], [[sle_operators.m]], [[sorensen.m]], [[spher_harmon.m]], [[sphten2mat.m]], [[stev2sph.m]], [[superop.m]], [[twospinist.m]], [[wigner_3j.m]], [[wigner_6j.m]], [[Kernel_utilities]]
 
 
  
''Version 2.3, authors: [[Ilya Kuprov]]''
+
''Version 2.8, authors: [[Ilya Kuprov]]''

Latest revision as of 19:39, 6 June 2026

Pauli matrices (sparse, see below for normalisation conventions) for a spin of a user-specified energy level multiplicity.

Syntax

    S=pauli(mult)

Parameters

    mult - an integer specifying the 
           multiplicity of the spin

Outputs

    S.u - unit operator

    S.p - raising operator

    S.m - lowering operator

    S.x - Sx observable operator

    S.y - Sy observable operator

    S.z - Sz observable operator

Notes

1. The matrices are normalized so as to obey the following commutation relations:

         [S.x,S.y]=1i*S.z
         [S.y,S.z]=1i*S.x
         [S.z,S.x]=1i*S.y

2. Raising and lowering operators are defined as:

          S.p=S.x+1i*S.y
          S.m=S.x-1i*S.y

3. It is never a good idea to normalise spin operators using matrix norms because commutation relations would break.

4. The arrays are declared complex at creation to avoid expensive reallocations later on.

See also

stevens.m, irr_sph_ten.m, wigner.m, operator.m, state.m, hamiltonian.m, add_spins.m, cg_fast.m, clebsch_gordan.m, comm.m, hilb2liouv.m, ist_product_table.m, lorentz.m, mat2sphten.m, multipack.m, perm_group.m, rocomm.m, rwalk.m, sle_operators.m, sorensen.m, spher_harmon.m, sphten2mat.m, stev2sph.m, superop.m, twospinist.m, wigner_3j.m, wigner_6j.m, Kernel_utilities

Version 2.8, authors: Ilya Kuprov