I would like to animate the eigenoscillations of a sphere (Earth?). It's just simple to draw images one by one:

SphericalPlot3D[{1 + 
   0.25*Re[SphericalHarmonicY[6, 3, th, phi]]}, {th, 0, Pi}, {phi, 0, 
  2 Pi}, PlotPoints -> {16, 32}] 

enter image description here

but how to change m and l arbitrary to see, how a sphere vibrate. I've made this years ago, but I forgot.. Regards, Darko

  • 1
    $\begingroup$ Do you have an equation for how m and l change with time, or is it stochastic? (you say "arbitrary") $\endgroup$ – Jason B. Apr 20 '16 at 8:13
  • 1
    $\begingroup$ I would guess that (for the right set of equations) the dependence on t would be on the radial component. So simply varying the "amplitude" harmonically would yield a vibrating sphere. But what are the equations? Is it an elastic body? Is it an elastic body oscillating under its own gravity? Is it a bubble? These are different physical problems that would have different solutions. $\endgroup$ – gpap Apr 20 '16 at 9:40

So I can't seem to find a nice plottable form for the normal modes of an elastic sphere, if you can please let me know. This talks about the vector spherical harmonics, and people often show sketches of the displacements involved in the fundamental and overtones for the spheroidal and toroidal modes, but I don't find plottable equation forms for them (or I don't understand them enough to plot them).

So let's just take your vibrational mode to be a simple cosine multiplying the spherical harmonic, and since we aren't actually modeling seismic activity we can just put a map of the Earth on the sphere to make it seem as though we are.

pic = Graphics[{EdgeForm[Black], 
      country, {"FullPolygon", "Equirectangular"}]}, {country, 
     Append[CountryData[], "Antarctica"]}]}, 
  Background -> Lighter[ColorData["Aquamarine"][1], 0.5], 
  PlotRangePadding -> None];
ListAnimate[SphericalPlot3D[1 + 0.25*Re[
        Exp[I 2 π #] SphericalHarmonicY[6, 3, u, v]], {u, 0, 
      Pi}, {v, 0, 2 Pi},
     PlotPoints -> 50,
     Mesh -> True,
     Axes -> False,
     TextureCoordinateFunction -> ({#5, 1 - #4} &),
     PlotStyle -> Directive[Texture[pic],
       Specularity[White, 50]], Lighting -> "Neutral",
     Boxed -> False] & /@ Range[0, 1, .01]];

enter image description here

| improve this answer | |
  • $\begingroup$ That's cool! +1 $\endgroup$ – Alexey Popkov Apr 20 '16 at 14:05
  • $\begingroup$ Thanks! I really wish I could actually plot the "normal modes of the earth", but this will suffice $\endgroup$ – Jason B. Apr 20 '16 at 14:10
  • $\begingroup$ Thank you, JasonB, it's just so, like a bubble of water in space. Only without Earth (no memory error). $\endgroup$ – Darko Apr 20 '16 at 14:11
  • $\begingroup$ @Darko - try removing the , TextureCoordinateFunction -> ({#5, 1 - #4} &), PlotStyle -> Directive[Texture[pic], Specularity[White, 50]], Lighting -> "Neutral" commands and add ColorFunction->(ColorData["TemperatureMap"][#6]&) $\endgroup$ – Jason B. Apr 20 '16 at 14:13
  • $\begingroup$ If that fails, take out the PlotPoints -> 50, $\endgroup$ – Jason B. Apr 20 '16 at 14:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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