# [GIF] Drumbeat (Vibration mode of a circular drum)

Posted 4 years ago
6737 Views
|
3 Replies
|
12 Total Likes
| DrumbeatInspired by a comment made by @J. M. on Square Up, this is an animation showing the (1,2) vibrational mode of a circular drum. I've added a (quite possible completely unphysical) exponential decay term, just because. As you can see on the Wikipedia page, the $(m,n)$ vibrational mode of a circular membrane is given, as a function whose input is the position and whose output is the (vertical) displacement from the rest state, by $u_{mn} (r,\theta,t) = (A \cos c \lambda_{mn} t + B \sin c \lambda_{mn} t) J_m(\lambda_{mn} r) (C \cos m\theta + D \sin m \theta)$,where $\lambda_{mn}$ is the $n$th root of the Bessel function $J_m$, $c$ is a constant giving the speed of wave propogation, and $A$, $B$, $C$, and $D$ are constants.This is of course easy enough to define, especially since Mathematica has a handy BesselJZero function: BesselZeros = N@Table[BesselJZero[m, n], {m, 0, 5}, {n, 1, 5}]; ?[m_, n_] := BesselZeros[[m + 1, n]]; u[m_, n_, r_, ?_, t_, c_, A_, B_, C_, D_] := (A Cos[c ?[m, n] t] + B Sin[c ?[m, n] t]) BesselJ[m, ?[m, n] r] (C Cos[m ?] + D Sin[m ?]); So then I just took an (automatically generated) triangulation of the disk and evaluated the above function u (with various more or less arbitrary choices of parameters) on the vertices. Here's the code: DynamicModule[ {m = 1, n = 2, k = 3, c = 5, cols, mesh, planarverts, drumverts, lines, cl}, cols = RGBColor /@ {"#08D9D6", "#FF2E63", "#252A34"}; mesh = DiscretizeRegion[Disk[], MaxCellMeasure -> .009]; planarverts = MeshCoordinates[mesh]; lines = MeshCells[mesh, 1]; Manipulate[ drumverts = Append[#, 1.5 E^(-k t) u[m, n, Norm[#], ArcTan[#[], #[]], t, c, 1/2, 0, 1/2, 0]] & /@ planarverts; cl = Blend[cols[[;; 2]], Abs[#[]]/.2] & /@ drumverts; Graphics3D[ GraphicsComplex[ drumverts, {Thickness[.004], Append[#, VertexColors -> Automatic] & /@ lines}, VertexColors -> cl ], PlotRange -> 1, Boxed -> False, Axes -> None, ImageSize -> {540, 405}, ViewAngle -> ?/10, ViewCenter -> {1/2, 1/2, .46}, Background -> cols[[-1]] ], {t, 0., 2 ?/?[m, n]}] ] Answer
3 Replies
Sort By:
Posted 4 years ago
 I'm glad you used the idea. :) Normally I'd use a polar mesh to depict this, but I think the triangulated circle looks great here. Makes it look like a funky trampoline. Answer
Posted 4 years ago
 Yes, I definitely started with a polar mesh, but it wasn't quite working for me, so I went for something a little more asymmetrical. Answer
Posted 4 years ago - another post of yours has been selected for the Staff Picks group, congratulations !We are happy to see you at the top of the "Featured Contributor" board. Thank you for your wonderful contributions, and please keep them coming! Answer