01: package JSci.physics.quantum;
02:
03: import JSci.maths.*;
04: import JSci.maths.matrices.AbstractComplexSquareMatrix;
05: import JSci.maths.algebras.*;
06:
07: /**
08: * The SpinOperator class provides an object for encapsulating spin operators.
09: * @version 2.0
10: * @author Mark Hale
11: */
12: public final class SpinOperator extends Operator {
13: private static final LieAlgebra spin1_2 = su2Dim2.getInstance();
14: private static final LieAlgebra spin1 = su2Dim3.getInstance();
15: /**
16: * Spin 1/2 operator (x).
17: */
18: public static final SpinOperator X1_2 = new SpinOperator(spin1_2
19: .basis()[0]);
20: /**
21: * Spin 1/2 operator (y).
22: */
23: public static final SpinOperator Y1_2 = new SpinOperator(spin1_2
24: .basis()[1]);
25: /**
26: * Spin 1/2 operator (z).
27: */
28: public static final SpinOperator Z1_2 = new SpinOperator(spin1_2
29: .basis()[2]);
30: /**
31: * Spin 1 operator (x).
32: */
33: public static final SpinOperator X1 = new SpinOperator(spin1
34: .basis()[0]);
35: /**
36: * Spin 1 operator (y).
37: */
38: public static final SpinOperator Y1 = new SpinOperator(spin1
39: .basis()[1]);
40: /**
41: * Spin 1 operator (z).
42: */
43: public static final SpinOperator Z1 = new SpinOperator(spin1
44: .basis()[2]);
45:
46: /**
47: * Constructs a spin operator.
48: */
49: private SpinOperator(AbstractComplexSquareMatrix spinMatrix) {
50: super (spinMatrix);
51: }
52:
53: /**
54: * Returns true if this operator is self-adjoint.
55: */
56: public boolean isSelfAdjoint() {
57: return true;
58: }
59:
60: /**
61: * Returns true if this operator is unitary.
62: */
63: public boolean isUnitary() {
64: return true;
65: }
66:
67: /**
68: * Returns the trace.
69: */
70: public Complex trace() {
71: return Complex.ZERO;
72: }
73: }
|