Finding normal modes

Normal mode analysis is a typical topic in junior/senior mechanics courses. Ours suffers from a lack of linear algebra as a prerequisite so I’ve worked to find ways to engage students with this material without that background. My typical approach is to model the system with a ton of friction so that it settles down to an equilibrium setup, then turn friction off and move the particles a little bit away from their equilibrium, then analyze the motions, looking for peaks in the Fourier transforms.

Last week I was a part of a chemistry honors defense that was looking at Raman spectra of bath salts. It was mostly a conversation about normal modes! So I wanted to see if I could model a benzene ring using this approach. Here’s my first try at it (I know, I know, I haven’t added the H’s around the edge. Babysteps!)

normal modes of a connected hexagon

normal modes of a connected hexagon

You can see that it works pretty well, but that the top “breathing” mode doesn’t look perfectly symmetrical.

Ok, here’s where I need your help. To find the resonant frequencies of the system, I simply Fourier transformed the time sequence of the distance one of the particles was away from its equilibrium position. What I’m wondering is whether there’s a better time sequence to use to do that Fourier analysis. I could certainly:

  1. do that trick for all the particles and, I don’t know, add the results
  2. fourier transform the time series of all the coordinates (that would be 12 for the case above – x and y for all particles). Then add them? That seems problematic because symmetric modes will cancel. Maybe add their amplitudes?
  3. Look for a measure of the whole system (like the standard deviation of all the displacements or something) that could then be Fourier transformed

I guess I don’t know what’s best. Hence this blog post. Any help you could give would be great. Here are some starters for you:

  1. You’re an idiot to teach this without linear algebra. But, if you have to, here’s what I would suggest . . .
  2. That’s not a benzene ring it’s a polysyllabatesupercomplicatedchemistryword and those modes don’t look right.
  3. How do you deal with degeneracies?
  4. How long does it take to run that?
  5. Can you share your code?
  6. Those animations are wrong because they all take the same amount of time to cycle through. Instead you should . . .
  7. I’ve tried modeling something like this before and all the particles stack up. The lengths are all at their equilibrium length, but the angles are all basically zero. How did you avoid that?
    1. quick answer: angular springs
  8. It’s obvious! You should fourier transform the time series of . . .

About Andy Rundquist

Professor of physics at Hamline University in St. Paul, MN
This entry was posted in mathematica, physics, teaching. Bookmark the permalink.

8 Responses to Finding normal modes

  1. You use symmetry arguments to decompose the motion into modes (think Noether’s Thm. and the preserved quantity is the energy in that mode) Each set of modes is defined its charachteristic under the point group symmetry of the molecule. Or if you like the symmetry charachteristic tells youwhow to weight the displacements of the individual atoms (+1, -1, or 0) and the sum is the time sereis you would take the FFT to get a frequency. In a infinite linear system the role of the symetry operation can be done by using a spatial FFT to allow for varying spatial phase lag.

    • Andy "SuperFly" Rundquist says:

      So what do you do if you don’t have any symmetries?

      On Fri, May 9, 2014 at 1:50 PM, SuperFly Physics wrote:


      • My first response would be to run screamming, but you probably locked the door to prevent escape. You could take the FFT and calculate the Power spectral density ( basically |FFT|^2 ) of each displacement and add them to get a composite Power spectral density (PSD) , or beter yet calculate a PSD using the velocities and do a weighted average using mass so that the composite PSD has units akin to kinetic energy per frequency

      • Andy "SuperFly" Rundquist says:

        ooh, I like that second idea a lot!

        On Fri, May 9, 2014 at 2:55 PM, SuperFly Physics wrote:


  2. In case it wasn’t clear using the PSD instead of the FFT destroys relative phase information (you can’t get something for nothing but you weren’t interested in phase anyways) and makes combinig spectra from different parts of the composite object possible without the result summing to zero.

  3. I assume you randomly perturb the particles from their initial positions. Try several different initial perturbations and average the PSD’s over the initial conditions. Also, if two of the modes have almost the same frequency, you may not be able to cleanly estimate the freq of the two modes and get good normal modes for each.
    Keep up the great blogging!

  4. Pablo says:

    Can you share your code?

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s