Spin`Algebra` Reference Guide
Spin System
SpinSystem
• SpinSystem[] used for general form of spin system.
• SpinSystem[
,
,...] declares spin system of spins
,
,... labeled as 1,2,....
• SpinSystem[{a,
},{b,
},...] declares spin system of spins labeled as a, b,... and having the values
,
,...
• The following options can be given:
OperatorForm->"Ladder" sets the output representation of spin operators via z-projection of spin operator and rising and lowering operators. Other values are Cartesian for Cartesian projection operators (
,
and
). , Symmetric, IrreducibleNormalized and Irreducible. The chosen operator form is set as value of Spin`Algebra` global variable $OperatorForm. For more information refer to OperatorForm.
SpinVariables->"Real" used to make assumptions about parameters at the spin operators and vectors. The possible values are Real, NReal, Complex and NComplex. The value of this option is set to the global Spin`Algebra` variable $SpinVariables. The value $SpinVariables controls the treatment of symbols and expressions during the transformation by function CenterDot etc defined in Spin`Algeba`. For more information refer to SpinVariables and $SpinVariables.
KetBraProduct->True leaves the products like ⌊a,i>·<b,j⌋ unchanged during the following computations by functions of the package Spin`Algebra` like CenterDot etc. If the option has value True then the products of ket to bra vectors would be transformed via spin operators.
• SpinSystem has attribute HoldAll.
• See also: $SpinSystem. SpinVariables, OperatorForm, $OperatorForm, SpinValue, $SpinValues, $SpinVariables
Further Examples
This loads the packages Spin`
By default spin system is undefined and the computation leads to expansion of input expression in sum of "basic" operators:
Here is definition of spin system for single spin a
The cubic term is reduced now:
This value equals to
:
SpinVariables
• SpinVariables is an option of SpinSystem.
• Used to specify the method of computation in functions CenterDot, MatrixToS, SpinForm.
• SpinVariables -> "Real" used to treat abstract variables to be belonging to domain of real numbers.
• SpinVariables -> "NReal" abstract variables during the computation assumed to be real with approximate values. Thus all numbers are transformed in the approximate form.
• SpinVariables -> "Complex" used to treat variables to be belonging to domain of complex numbers.
• SpinVariables -> "NComplex" abstract variables during the computation assumed to be complex with approximate values. Thus all numbers are transformed in the approximate form.
• See also: SpinSystem, CenterDot, SToMatrix, MatrixToS, $SpinVariables
Further Examples
This loads the packages Spin`
Default value of option SpinVariables is Real, hence real part of Re[a+b] is a+b:
Next definition sets variables to approximate complex numbers
Thus the re-computation of previous expression gives all numbers to be approximate:
OperatorForm
• OperatorForm is an option of SpinSystem.
• Used to specify the output representation of operators S in functions CenterDot, MatrixToS, SpinForm.
• The value of option OperatorForm used to set global Spin`Algebra` variable OperatorForm.
• OperatorForm -> Ladder is default set. This value leads the results of computation to output in the ladder (known also as shift) representation of spin operators, that is via non-commutative products of operators
,
, and
. Only this representation can be set if the spin system is undefined.
• OperatorForm -> Symmetric sets the result of computation via products of ladder operators (
·
+
·
) present in a symmetric form.
• OperatorForm -> Irreducible sets the result of computation via irreducible non-unit operators in a form of
, where k is operator order of spin with label i and q is its component.
• OperatorForm -> IrreducibleNormalized sets the result of computation via irreducible unit operators in a form of
, where k is operator order of spin with label i and q is its component.
• OperatorForm -> Cartesian presents the result of computation via products of Cartesian operators
• Representations Ladder, Irreducible and IrreducibleNormalized are basic. If $OperatorForm has one of these values the output of functions CenterDot and MatrixToS will have the corresponding form. If any other representation is used to define the spin system then the computation returns in IrreducibleNormalized form. To get the result in the desirable $OperatorForm a special function SpinForm must be applied. In this case the result of computation would be transformed and placed in the HoldForm.
• Representations Cartesian and Symmetric in the current version of Spin`Algebra are under the development and so their application is restricted.
• See also: SpinSystem, S, CenterDot, SpinForm, MatrixToS
Further Examples
This loads the packages Spin`
This sets spin system for spin a
The commutator of two operators:
This sets a new operator form for output results:
The result of computation is given now via irreducible operators:
This sets another form for output results:
This result is a sum irreducible normalized operators:
This sets another form for output results:
For option OperatorForm->"Cartesian" the result of regular computation is returned in form of irreducible normalized operators:
But it can be converted by function SpinForm:
Its result can't be used directly for further evaluation because it placed in HoldForm:
KetBraProduct
• KetBraProduct is an option of SpinSystem.
• Used to specify how to treat the non-commutative product of Ket and Bra vectors in the output of functions like CenterDot etc.
• Default value KetBraProduct->True leaves the products like ⌊a,k>·<a,l⌋ unchanged. With option KetBraProduct->True the products of Ket and Bra vectors would be converted to representation via spin operators.
• See also: SpinSystem, CenterDot
Further Examples
This loads the packages Spin`
This sets spin system for spin a
The product of bra and ket-vectors with default settings:
This sets option KetBraProduct->False:
Now the output is presented as via spin operators
$SpinSystem
• $SpinSystem returns a list rules with labels and values of the current spin system.
• $SpinSystem inherits the value from the definitions of function SpinSystem.
• $SpinSystem is Spin`Algebra` global variable and its value shouldn't be changed
• See also: SpinSystem, SpinValue, $SpinValues
Further Examples
This loads the packages Spin`
This defines two-spin system:
$SpinSystem consists of the information about spin system:
$SpinVariables
• $SpinVariables returns the domain of variables in expressions computed by functions of the package Spin`Algebra`
• $SpinVariables inherits the value used for option SpinVariables of function SpinSystem.
• $SpinVariables is Spin`Algebra` global variable and its value shouldn't be changed
• See also: SpinVariables, SpinSystem
Further Examples
This loads the packages Spin`
This defines two-spin system:
$SpinVariables consists of the information about spin system:
Here is information about assumptions applied to abstract (undefined) symbols in expression computed by functions like CenterDot etc:
Here is an example of computation with defined value NReal:
$SpinValues
• $SpinValues returns a list of values of the current spin system.
• $SpinValues inherits the value from the definitions of function SpinSystem.
• $SpinValues is Spin`Algebra` global variable and its value shouldn't be changed
• See also: SpinValue, SpinSystem, $SpinSystem
Further Examples
This loads the packages Spin`
This defines two-spin system:
This returs the values of spin system:
This gives the dimension of a spin space:
$OperatorForm
• $OperatorForm returns current output form of operators.
• $OperatorForm inherits the value used for option OperatorForm of function SpinSystem.
• $OperatorForm is Spin`Algebra` global variable and its value shouldn't be changed
• See also: OperatorForm, SpinSystem
Further Examples
This loads the packages Spin`
This defines two-spin system:
The previous evaluation changes the value of $OperatorForm
Here is a transformation into new presentation of spin operators:
SpinValue
• SpinValue[a] gives the value of spin a
• SpinValue[a] returns a formal value
, if the spin system is undefined.
• SpinValue has attribute HoldAll
• See also: SpinValue, SpinSystem
Further Examples
This loads the packages Spin`
This sets undefined spin system
Spin value of spin with label Doublet:
Let's define the spin system as
The re-evaluation of val returns the magnitude of a spin Doublet of current system:
While the spin system is defined any label which doesn't listed in SpinSystem is illegal
\[DotlessJ] or j
• \[DotlessJ][a]or
used as formal value of spin a
• \[DotlessJ] is automatically transformed into j
• j has attributes HoldAll
• See also: SpinValue, SpinSystem
Further Examples
This loads the packages Spin`
This defines the spin system:
Here are the different forms of getting the value of the spin:
See also examples for SpinValue
BraBasis
• BraBasis[] is a complete set of bra-vectors of a current spin system.
• BraBasis[a] - gives set of bra-vectors of spin a
• BraBasis[{{{a,b},c},...}]- returns lists of bra-vectors of multiplets where spins a and b are coupled first and the resulting multiplets are coupled to spin c.
• BraBasis[{a,b,j}] - returns bra-vectors of multiplet based on spins a and b with the value j.
• BraBasis[{a,b,j},m] - returns bra-vector of multiplet {a,b} with spin j and projection m.
• BraBasis needs spin system to be defined.
• The option Flatten controls the output structure of bra-vectors for coupled systems. With the value True all bra-vectors are listed on a single list, with the value False bra-vectors of different multiplets are separated.
• BraBasis has attribute HoldFirst
• See also: KetBasis, SpinSystem, SToMatrix
Further Examples
This loads the packages Spin`
This defines spin system
Here is a basis of strongly coupled system {a,b}:
This gives a matrix form of operator of exchange interaction, 2
·
, in the basis of strongly coupled system:
See also examples for KetBasis
KetBasis
• KetBasis[] is a complete set of ket-vectors of a current spin system.
• KetBasis[a] - gives set of ket-vectors of spin a
• KetBasis[{{{a,b},c},...}]- returns lists of ket-vectors of multiplets where spins a and b are coupled first and the result is coupled to spin c.
• KetBasis[{a,b,j}] - returns ket-vectors of multiplet based on spins a and b with the value j.
• KetBasis[{a,b,j},m] - returns ket-vector of multiplet {a,b} with spin j and projection m.
• KetBasis needs spin system to be defined.
• The option Flatten controls the output structure of ket-vectors for coupled systems. With the value True all ket-vectors are listed on a single list, with the value False ket-vectors of different multiplets are separated.
• KetBasis has attribute HoldFirst
• See also: BraBasis, SpinSystem, SToMatrix
Further Examples
This loads the packages Spin`
This sets spin system
Full set of ket-vectors
Singlet state made on spins a and b:
Here is a definition of the triplet states:
The state
:
See also examples for BraBasis
Last modified: April 10, 2007