Yeah. That sounds like a really good deal. But I got a better one. How about... I give you the finger... and you give me my phone call?
HOWTO /
SymmetryProtectedSpinChainSymmetries in quantum mechanicsLet {$U_S$} be a unitary symmetry operation acting on a wavefunction {$\vert \psi \rangle$}, and let {$X$} be some operator (eg an observable). The conventional view of symmetry operations is that if {$\vert \psi \rangle$} is invariant under this symmetry, then {$\vert \psi' \rangle = U_S \vert \psi \rangle = \vert \psi \rangle$} is unchanged under the action of the symmetry. Similarly, if some operator (eg an observable) X is invariant under {$S$} then {$X' = U_S X U_S^\dagger = X$}. However, this is too narrow: in quantum mechanics we don't need to require that {$\vert \psi' \rangle = \vert \psi \rangle$}, but simply that it is equivalent up to a global phase {$\alpha$} with {$|\alpha|=1$}. That is, if we allow, {$$\vert \psi' \rangle = U_S \vert \psi \rangle = \alpha \vert \psi \rangle$$} then this still leaves any observable quantity invariant under the transformation, since {$\langle \psi' \vert X \vert \psi' \rangle$} is unaffected by the global phase. Similarly, the transformation of X itself is unaffected, {$X' = U_S X U_S^\dagger = X$} because the global phase cancels. However, the freedom to choose an arbitrary phase factor in {$U_S$} has important consequences. Specifically, this allows the operators {$U_S$} to form a projective representation of the symmetry {$S$}, rather than a linear representation. Projective representationsAKLT modelThe AKLT model is a good prototype to study projective representations. This model is a spin-1 chain with an additional biquadratic interaction, {$$H = \sum_{<i,j>} \vec{S}_i \cdot \vec{S}_j + \frac{1}{3} \left( \vec{S}_i \cdot \vec{S}_j \right)^2$$} The spin-1 models define this already as the operator spinchain -S 1 -o lattice mp-idmrg-s3e -H lattice:H_AKLT -w psi --create -u 1 -m 2x100 --mix-factor 0 The energy should be exactly {$-2/3$} per site, if it isn't, then something has gone wrong. (In older versions, the algorithm for choosing an initial random state wasn't very good and would sometimes produce a ferromagnet, which is already an eigenstate, but not the groundstate). The AKLT model has global {$SO(3)$} invariance, which is the global symmetry of a spin {$S=1$}, but here we are primarily interested in a discrete subset of {$\pi$} rotations about each X,Y,Z axis. For {$SO(3)$}, these rotations all commute with each other, and are not independent: if you rotate an object 180 degrees in the X axis and the Y axis, you get the equivalent of a 180 degree rotation about the Z axis, and it doesn't matter which order you do the X and Y rotations. The result is a group {$Z_2 \times Z_2$}, with the algebra {$$X^2 = Y^2 = I$$} {$$XY = YX = Z$$} We can construct these rotation operators using the toolkit, eg X : We can verify that these are indeed global symmetries of the wavefunction using
and similarly for the How do these symmetries affect the entanglement Hamiltonian? As we've seen, these symmetries give rise to a projective representation, rather than a linear representation. There are two inequivalent projective representations of {$Z_2 \times Z_2$}, a trivial rep (which is also a linear rep) and a non-trivial rep given by the algebra {$$XY = -YX$$} {$$YZ=-ZY$$} {$$ZX=-XZ$$} To determine these commutation relations, we need to obtain the matrix representations of the X,Y,Z operators acting on the {$2\times 2$} auxiliary space of the wavefunction. This is the purpose of the tools The tool Run the command
This calculates the algebra of commutators of the operators {$X,Y,Z$} of {$\pi$} rotations about the X,Y,Z axes. The output should be similar to: #mp-aux-algebra -l lattice -w psi "prod_unit(exp(i*pi*Sx(0)))" \ "prod_unit(exp(i*pi*Sy(0)))" "prod_unit(exp(i*pi*Sz(0)))" #Date: Fri, 06 May 2016 20:07:10 +1000 #Operator 0 = prod_unit(exp(i*pi*Sx(0))) #unit cell size 1 #eigenvalue = (1,1.8383695011315e-17) #magnitude = 1 #UU† = (1,0) #UU* = (-0.97306456259107,5.5511151231258e-17) #U^2 = (-0.94646439563568,0.32280822138537) #U^2 magnitude = 1 #Operator 1 = prod_unit(exp(i*pi*Sy(0))) #unit cell size 1 #eigenvalue = (1,4.4769437234351e-17) #magnitude = 1 #UU† = (1,0) #UU* = (0.97636296383051,-2.7755575615629e-17) #U^2 = (0.15414552079152,-0.98804815592152) #U^2 magnitude = 1 #Operator 2 = prod_unit(exp(i*pi*Sz(0))) #unit cell size 1 #eigenvalue = (1,-3.4469109877205e-17) #magnitude = 1 #UU† = (1,0) #UU* = (0.99670159876055,-2.0816681711722e-17) #U^2 = (0.36239869463141,0.93202316823642) #U^2 magnitude = 1 #Op1 #Op2 #Commutator-Real #Commutator-Imag 0 1 -1.00000000000000 0.00000000000000 0 2 -1.00000000000000 0.00000000000000 1 2 -1.00000000000000 -0.00000000000000 In the output, the X, Y, Z operators are numbered 0, 1, 2 respectively. The main output is the three lines at the bottom, which shows the real and imaginary parts of the commutators for these three operators, and we can see that they are all equal to -1. Hence the global symmetry of {$\pi$} rotations about the X,Y,Z axes transform projectively on the entanglement Hamiltonian. Since the auxiliary Hilbert space is 2-dimensional, we therefore have obtained some {$2 \times 2$} matrix representation for X,Y,Z, and the commutation relations imply that the only possible form for these matrices are essentially equivalent to the Pauli spin matrices {$\sigma^x$}, {$\sigma^y$}, {$\sigma^z$}, up to a global phase and an arbitrary unitary rotation. To see the actual matrices of these operators, we can use
This writes the matrix elements of the X operator to the file X.mat, in a sparse coordinate format with 4 columns, row,column,real,imaginary. We can do this for each of the X,Y,Z operators. It is possible to read matrices in this format directly into Matlab with the Why aren't these matrices precisely equal to the Pauli matrices? There are two reasons. Firstly, the matrices are obtained as an eigenmatrix of the generalized transfer matrix of the symmetry operator. Being an eigenmatrix, there is an arbitrary phase factor that cannot be determined by the eigenvalue equation. Secondly, there is an arbitrary 'gauge' degree of freedom in the MPS representation itself. That is, given the iMPS {$A^s$}, we can construct a completely equivalent iMPS as {$G A^s G^\dagger$}, where {$G$} is an arbitrary unitary rotation (we choose {$G$} to be unitary so as to keep the MPS in orthogonal form). If we had good quantum numbers in the MPS, then this constrains {$G$} to be block-diagonal with respect to the quantum number labels, but here we haven't chosen to preserve any symmetries, hence {$G$} can be an arbitrary {$2 \times 2$} unitary matrix. Thus, we can only determine our matrix representation of X,Y,Z operators up to a global phase (which will be different for each operator) and a global unitary (which will depend on the gauge of the MPS, and is hence the same for each operator). So our representations of X,Y,Z can be written as {$$X = \alpha_x G \sigma^x G^\dagger$$} {$$Y = \alpha_y G \sigma^y G^\dagger$$} {$$Z = \alpha_z G \sigma^z G^\dagger$$} with {$\alpha_{x,y,z}$} being phase factors, {$G$} is some {$2\times 2$} unitary, and {$\sigma$} are the Pauli spin matrices. With this, we can now understand the remainder of the output of For these operators, {$UU^*$} and {$U^2$} fields don't mean much. {$XX^* = G \sigma_x G^\dagger G^* \sigma_x G^T$}, so {$\mathrm{Tr} \; XX^* \rho$} depends explicitly on {$G$} itself. It is a real number, but the magnitude can be anything on the interval [-1,1] and it will change sporadically every time a DMRG calculation is run, since {$G$} is not controlled. The expectation value of {$U^2$} has even less meaning in this case. eg, {$X^2 = \alpha_x^2$}, so the result is simply the square of the random phase factor {$\alpha_x$} that comes from the eigensolver. The magnitude of {$X^2$} is well-defined however, and is equal to 1. So, why bother outputting these quantities? Although in this case they give no useful information, for other operators they are well-defined, as we will see in the sections on time-reversal and parity symmetry below. There is another important point, that the gauge matrix {$G$} depends on the choice of basis, and quantum number constraints can sometimes fix {$G$} enough that it fixes the value of {$UU^*$}. Indeed, even without quantum number constraints, it is sometimes the case the calculation will choose a particular gauge, because the numerics also depends on the choice of basis. If you use real-valued arithmetic then G is real-orthogonal rather than complex-unitary. In testing, the toolkit sometimes produces a gauge in which {$ZZ^*=1$}, which indicates that the auxiliary basis states are good eigenstates of {$S^z$}, even though this wasn't explicitly preserved in the calculation. Time reversalThe form of the time-reversal operator is basis-dependent, and needs to be defined by its action on the spin. Assuming for the moment the simplest case of a spin-1/2 state, we define {$T = UK$}, where {$K$} is complex conjugation and {$U$} is some unitary such that {$$T \vec{\sigma} T^{-1} = -\vec{\sigma}$$} Hence we require {$$U \vec{\sigma}^* U^\dagger = -\vec{\sigma}$$} Now in the usual basis, {$\sigma^x$} and {$\sigma^z$} are purely real, and {$\sigma^y$} is purely imaginary. So we have {$$ U \sigma^x U^\dagger = -\sigma^x $$} {$$ U \sigma^z U^\dagger = -\sigma^z $$} and {$$ U \sigma^y U^\dagger = \sigma^y $$} A brief examination shows that an explicit form for {$U$} is {$U = e^{i\theta} \sigma^y$}, where {$\theta$} is an arbitrary phase. We can fix {$U$} to be real by choosing {$\theta = \pi/2$} or {$3\pi/2$}. Alternatively, we can construct {$U$} through exponentiation, {$U = \exp[ i \pi \sigma^y / 2]$}. We don't prove it here, but more generally, for an arbitrary spin in the conventional basis, the {$U$} matrix is given by {$$U = \exp[ i \pi s^y]$$} That is, a {$\pi$} rotation about the Y-axis. (recall the spin matrices for spin-1/2 are related to the Pauli matrices by {$s^\alpha = \sigma^\alpha/2$}). For a spin-1/2 state, we have {$T^2 = -1$}. This is easy to verify by the action of {$T$} on the Pauli matrices. More generally, for integer spin, {$T^2 = 1$}, and for half-integer spin, {$T^2 = -1$}. The time reversal operator is anti-linear, due to the action of the complex conjugation. {$T (\alpha \vert \psi \rangle) = \alpha^* T \vert \psi \rangle$}. The complex-conjugation operator doesn't have a matrix form, so in the toolkit it is represented by prepending
We can use this operator with #mp-aux-algebra -l lattice -w psi "c&prod_unit(exp(i*pi*Sy(0)))" #Date: Fri, 06 May 2016 21:33:10 +1000 #Operator 0 = c&prod_unit(exp(i*pi*Sy(0))) #unit cell size 1 #eigenvalue = (0.67800826755633,-0.73505427631249) #magnitude = 1 #UU† = (1,0) #UU* = (-1,4.9303806576313e-32) #U^2 = (0.95808759995959,0.286475393016) #U^2 magnitude = 1 Now the relevant quantity is {$T^2 = UKUK = UU^*$}, and here this is equal to -1, showing that the entanglement Hamiltonian is that of a half-integer spin. Because of the anti-linear character of the complex-conjugation operator, the gauge freedom acts differently, and the {$U$} matrix is {$$U = \alpha_U G \sigma^y G^T$$} where {$G$} is the MPS gauge matrix defined above. Check: is {$U$} is unitary? {$UU^\dagger = G \sigma^y G^T G^* \sigma_y G^\dagger = I$}. Yes, {$U$} is unitary. Unlike the case of the dihedral symmetries, the eigenvalue itself isn't equal to 1, but only has modulus 1. The actual eigenvalue could be anywhere on the complex unit circle, and is randomly determined by the gauge of the MPS. With real arithmetic and a wavefunction that doesn't spontaneously break time reversal symmetry, the eigenvalue will be fixed to equal 1.0. Explanation: The eigenvalue equation for time reversal is {$$U = \lambda \sum_{s's} \langle s' \vert T \vert s \rangle A^s U A^{sT}$$} Under a gauge transformation {$G$}, {$U$} transforms into {$$U' = \lambda \sum_{s's} \langle s' \vert T \vert s \rangle G A^s G^\dagger U' G^* A^{sT} G^T$$} Hence {$U = G^\dagger U' G^*$} so that {$U' = G U G^T$}. This leaves the eigenvalue invariant but changes {$U$} in such a way as to preserve {$UU^*$}. On the other hand, if the wavefunction is modified by a global phase, {$A^{s'} = \alpha A^s$}, then {$\lambda$} is scaled by {$\alpha^2$}. ParityAlthough it isn't obvious at first sight, parity (spatial reflection) works in a very similar way to time reversal, although parity is linear (not anti-linear). For the parity operator, we calculate the overlap of the wavefunction with its spatial reflection. Including a gauge matrix {$G$}, this is {$G^* A^{sT} G^T$}. This leads to the eigenmatrix having the gauge structure of {$$P = \alpha_P G P_0 G^T$$} where {$P_0$} is the parity operator acting in the parity-symmetric space; that is, {$P_0^2 = \pm 1$}. (TODO: More exposition here is needed.) The eigenvalue equation for parity is {$$P = \lambda \sum_{s's} \langle s' \vert P \vert s \rangle A^s P A^{s*}$$} Under a gauge gransformation {$G$}, {$U$} transforms into {$$P' = \lambda \sum_{s's} \langle s' \vert P \vert s \rangle G A^s G^\dagger P' G^* A^{sT} G^T$$} Hence {$U = G^\dagger U' G^T$} so that {$U' = G U G^*$}. This leaves the eigenvalue invariant but changes {$U$} in such a way as to preserve {$UU^*$}. Unlike the case of time reversal, the eigenvalue of the parity operator is unchanged by a global rotation of the wavefunction. Under the action of the parity operator, the A-matrix transforms as {$$A^s \rightarrow (A^s)^T = \mathrm{e}^{\mathrm{i}\theta} U_P^\dagger A^s U_P$$} {$$\Rightarrow\quad A^s = \mathrm{e}^{\mathrm{i}\theta} U_P^T (A^s)^T U_P^*,$$} for some phase {$\theta$}. And so, applying the parity operator twice gives {$$A^s \rightarrow A^s = \mathrm{e}^{2\mathrm{i}\theta} U_P^T U_P^\dagger A^s U_P U_P^* = \mathrm{e}^{2\mathrm{i}\theta} (U_P U_P^*)^\dagger A^s U_P U_P^*,$$} hence, {$U_P U_P^*$} is the relevant matrix to calculate: it will be equal to {$I$} for a trivial representation and {$-I$} for a nontrivial projective representation. Like the complex conjugation operator, there isn't a matrix form of the parity operator, and so we prepend #mp-aux-algebra -l lattice -w psi "r&prod_unit(I(0))" #Date: Tue, 11 Oct 2022 11:09:47 +1000 #Operator 0 = r&prod_unit(I(0)) #unit cell size 1 #eigenvalue = (-1,1.6363206909591e-17) #magnitude = 1 #UU† = (1,0) #UU* = (-1,-2.4651903288157e-32) #U^2 = (-0.55290101981632,0.83324693955998) #U^2 magnitude = 1 |