I recently asked a question about modeling instability in a rotating rigid body. I now realize that I was mentally confounding two different effects:

  1. The "Dzhanibekov effect" in which a rigid object with three different moments of inertia appears to tumble when spun around the intermediate axis. It ends up oscillating in a rather complex-looking pattern.

  2. The tendency of an object (e.g. a fluid-filled cylinder) to change its spin axis to that with the greatest moment of inertia.

I've successfully reproduced effect 1, which in the end is a relatively simple (if somewhat surprising) result of conservation of angular momentum.

Effect 2, however, is not something that occurs with ideal rigid bodies. It happens only when there is some mechanism for energy loss -- say, whipping antennas (as in the famous Explorer 1 satellite), or movement of an internal fluid (as in this video).

I've found explanations saying that in these cases, rotational energy (aka angular kinetic energy) is lost, though angular momentum remains (in some way) unchanged. I'd like to model this effect. I imagine it is a matter of transferring some momentum from one axis to another, but in what way?

  • $\begingroup$ This makes me wonder how the earth maintains a semi stable axis of rotation. It is a fluid filled rotating body with dissipative elements. $\endgroup$ Jan 28, 2015 at 15:32
  • 1
    $\begingroup$ Well, for one thing, it's already spinning about its axis with greatest moment of inertia. (Its equatorial diameter is greater than its polar diameter.) $\endgroup$
    – Joe Strout
    Jan 29, 2015 at 16:26

2 Answers 2


You apparently mean "simulate" when you used the word "model".

You'll need two things to accomplish this:

  1. A better rotational integrator than the one presented in this answer to your other question, and

  2. A physical model of a system that loses energy while conserving angular momentum.

Regarding the first item, that integrator is not bad. It has the basics of Lie group integration built into it, and it also has built-in conservation of angular momentum. But it's not that good, either. It's the rotational analog of the Euler-Cromer integration technique (aka symplectic Euler, aka semi-implicit Euler, aka Newton–Størmer–Verlet, aka a bunch of other names). Euler-Cromer is first order in terms of error. You can do better than that, and you will need to do better than that to see this subtle effect. Unfortunately, the mathematics that underlies these better rotational integrators is rather deep.

A lot of work has been done on this topic in the last 25 years or so. I've listed a small number of references on this body of work at the end of this answer. The first paper by Iserles et al. is 128 pages long. This is the must-read seminal paper on this topic. At 128 pages, all I can do in a Q&A website such as this is point you to the paper. The second paper be Cellodini et al. is a much shorter 28 pages long. This summary paper provides an overview of the techniques and describes developments since the paper by Iserles et al. The last paper describes a couple of specific applications that use Lie group integration techniques.

You can query scholar.google.com for "Lie group integrators" to get a whole lot more -- and many of the paper you find are freely available online. No paywall!

Regarding the second item, you'll need a model of a non-rigid body. Some ways to do this:

  • Use coupled rigid bodies that exchange linear and angular momentum one another, in a manner consistent with Newton's third law but that lose energy during the momentum transfer.

  • Use a flexible body model. Once again, scholar.google.com is your friend.

  • Use a slosh model. Properly modeling non-ideal solid bodies is a non-trivial problem. Modeling fluids is much, much harder problem. You could use a computational fluid dynamics (CFD) model, but you'll need a supercomputer to do that. Slosh models provide a moderate fidelity model of the physics of fluids sloshing around inside a container. Once again, scholar.google.com is your friend.


Iserles, A., Munthe-Kaas, H. Z., Nørsett, S. P., & Zanna, A. (2000). Lie-group methods. Acta Numerica, 9, 215-365.

Celledoni, E., Marthinsen, H., & Owren, B. (2012). An introduction to Lie group integrators--basics, new developments and applications. arXiv preprint, arXiv:1207.0069.

Kobilarov, M., Crane, K., & Desbrun, M. (2009). Lie group integrators for animation and control of vehicles. ACM Transactions on Graphics, 28(2), 16.

  • $\begingroup$ I appreciate that you're trying to help. However, I'm afraid I'm not with you yet. Perhaps "simulate" and "model" mean something different to you than they do to me. I obviously don't have a supercomputer; I can't even spend a large portion of an ordinary laptop's CPU time on this. So I'm not going to be modeling fluids, flexible bodies, and the like. I just want to reproduce the effect. Let's assume there is some (unspecified) energy loss mechanism -- how does that affect orientation and angular momentum? $\endgroup$
    – Joe Strout
    Aug 17, 2014 at 21:44
  • $\begingroup$ I specifically said that you don't need a CFD model and a supercomputer. Both a spring-mass-damper model and a damped pendulum model do a fairly good job of modeling slosh and body flex, and those are neither computationally expensive nor hard to program. For example, split your non-ideal body into two rigid bodies connected by a spring-damper system. Integrate the two bodies separately and compute the behavior of the combined body. $\endgroup$ Aug 17, 2014 at 22:43
  • $\begingroup$ Another name for that spring-damper model is a lumped parameters model. These are widely used to model flexibly body behavior. How it works here: The force across the spring-damper will vary with time when the combined body is tumbling. This will drive the spring-damper into an oscillation, and some energy is lost in the damper. The force will be constant when the body finally settles into rotating about the stable axis. The oscillations damp out and the combined body rotates as a true rigid body. $\endgroup$ Aug 17, 2014 at 22:56
  • $\begingroup$ All right, that makes sense. I'll give it a try and report back when I have some results. $\endgroup$
    – Joe Strout
    Aug 18, 2014 at 14:41

A simple picture here would be that dissipation leads loss of mechanical energy. But angular momentum has to be conserved. The lowest possible mechanical energy with a given value of the angular momentum of fluid inside a container is that of rigid body rotating around the axis of largest moment of inertia.

  • $\begingroup$ Yes, I understand that much already. And so this is exactly what I would like to do: lose energy, while conserving angular momentum. Thus, the axis needs to tilt toward that with the largest moment of inertia. But how, exactly? That's the part I'm stuck on. $\endgroup$
    – Joe Strout
    Aug 17, 2014 at 21:38
  • $\begingroup$ For example, I tried simply moving a bit of angular momentum from Y (the spin axis) to X or Z. But this didn't produce the desired effect -- instead of tumbling the long way, my cylinder simply pitched over to align its long axis with X or Z (while still spinning about that long axis). Clearly not right! $\endgroup$
    – Joe Strout
    Aug 17, 2014 at 21:42
  • $\begingroup$ Whoops, maybe I misunderstood. I've been thinking that the total amount of angular momentum (the magnitude of the angular momentum vector?) is conserved, but that I could shift it around to another axis. However, I think maybe it's not valid to shift the momentum axis (in world coordinates), either. What's happening instead is that the object itself is turning so that its shortest axis (i.e. the one with the greatest moment of inertia) is aligned with the spin axis. So the angular momentum vector stays completely unchanged; only the orientation of the object changes to minimize energy? $\endgroup$
    – Joe Strout
    Aug 17, 2014 at 22:44

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.