Provides cartesian and ladder spin operators.
S = sop(SpinSystem,Comps) [S1,S2,...] = sop(SpinSystem,Comps1,Comps2,...) ... = sop(...,'sparse');
This is the most fundamental function in the EasySpin toolbox. sop
returns the matrix representation of spin operators.
The representation is in the product basis
|mI1,mI2,mI3,..>.
with the basis functions in descending mI order (left to right).
E.g. for a system with one electron-1/2 and one nucleus with spin 1/2 the states
are ordered as |1/2,1/2>, |1/2,-1/2>,
|-1/2,1/2>, |-1/2,-1/2>.
SpinSystem
is either a spin system structure or a vector containing the spin
quantum numbers. Comps
is a string specifying one
operator component for each spin in SpinSystem
.
Elements of Comps
can be 'e'
(identity),
'x'
(Ix), 'y'
(Iy), 'z'
(Iz),
'+'
(Ip) or '-'
(Im).
The order in Comps
corresponds to the order in
SpinSystem
.
E.g. for a 3-spin system Comps = 'ye-'
yields
.
More than one component string can be specified, in which case sop
computes all operators at once. Of course, there must be a corresponding number of
output arguments.
If 'sparse'
is given as last argument, spin operatore matrices are returned
in sparse instead of full form.
Splus = sop(1/2,'+')
Splus = 0 1 0 0
SzIx = sop([1/2 1/2],'zx')
SzIx = 0 0.2500 0 0 0.2500 0 0 0 0 0 0 -0.2500 0 0 -0.2500 0
To compute multiple operators with one call, use for example
[Sx,Sy,Sz] = sop(1,'x','y','z');
Sx = 0 0.7071 0 0.7071 0 0.7071 0 0.7071 0 Sy = 0 0 - 0.7071i 0 0 + 0.7071i 0 0 - 0.7071i 0 0 + 0.7071i 0 Sz = 1 0 0 0 0 0 0 0 -1