The unitary time evolution operator is given by


Meanwhile, the rotation operator about some axis along the unit vector $\vec{n}$ for a spin-1/2 system having only the spin angular momentum is given by

$$\hat{R}_{\vec{n}} (\varphi)=\exp[-\frac{i \varphi}{\hbar}\vec{n} \cdot \hat{\vec{S}}] = \exp[-\frac{i \varphi}{2}\vec{n} \cdot \hat{\vec{\sigma}} ] $$

where $\varphi$ is the rotation angle and $\sigma$ is the Pauli spin matrices.

I would like to talk about the specific case about a rotation about the $z$-axis of the ground state $|0\rangle = (1,0)$ written in the $S_z$ representation. We have

$$\hat{R}_{\vec{z}/z}({\varphi}) = \exp[-\frac{i \varphi}{2}\sigma_{z}]$$

The thing is, I was trying to model this using the Master Equation Solver from QuTiP, representing the result using a Bloch sphere. I was trying to describe the rotation with the Hamiltonian. I found that I can compare $\hat{R}_{\vec{z}/z}$ to $\hat{U}$, then define

$$\hat{H}\equiv \frac{\hbar \omega}{2}\sigma_z$$ where $\varphi\equiv\omega t$, meaning that $\omega$ is the rotation angle per unit time.

However, plugging this Hamiltonian into the code does not yield me the result that I want. The state vector does not move at all from the $|0\rangle$ state.

I thought that the rotation angle must be too narrow, so I erased $\hbar$ from the Hamiltonian. This time the result is as I expected.

Is my derivation faulty? I myself think that this is a QuTiP problem, since it would be weird for the Hamiltonian to not have the dimension of energy. All in all, I am confused with the result I get.


1 Answer 1


If you are interested in the Bloch sphere only, then it is normal that you stay at the state $|0\rangle$ under the evolution of your Hamiltonian. It is an energy eigenstate so it only picks up a phase under time evolution. This is undetected by the Bloch vector representation, which is why it should not move.

In order to see an evolution of the Bloch vector, you need to start at a superposition of $|0\rangle,|1\rangle$ like $\frac{1}{\sqrt 2}(|0\rangle+|1\rangle)$ for example. in general you'll see a precession of the Bloch vector about the $z$ axis with angular velocity $\omega$. In particular, if the vector coincides with the axis of precession, then it cannot move.

However, it is a bit strange that you see a different evolution when you modify $\hbar$, this should only change the angular velocity, but not the trajectory. What kind of motion do you observe in this case?

Hope this helps.

  • $\begingroup$ It turns out that the rotation I was making is about the x-axis. But your answer helps with my question. As to what happens with and without hbar: with hbar the vector appears to not move, while without hbar (i.e setting it to 1) the rotation happened as I wanted it. I specified omega to be pi/10 then set the time frame to 10 seconds, and I get the 180 degree rotation that i wanted @lpz $\endgroup$
    – Len
    Mar 29, 2023 at 9:57
  • $\begingroup$ I don't know the conventions used in QuTip, but I suspect that they are using $\hbar=1$. If you add an extra $\hbar$ in the Hamiltonian by hand, you are merely reducing $\omega$ by the factor $10^{-34}$. Unless you scale the time window appropriately, this freezes the dynamics compared to the case $\hbar = 1$, and could explain why you don't observe any rotation. $\endgroup$
    – LPZ
    Mar 29, 2023 at 10:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.