<< Click to Display Table of Contents >>

Navigation:  Sample Problems > Usage > Eigenvalues >


Previous pageReturn to chapter overviewNext page




   This example illustrates the use of FlexPDE in Eigenvalue problems, or

   Modal Analysis.



   In this problem, we determine the four lowest-energy vibrational modes of

   a circular cylinder, or "oil drum", clamped on the periphery.


   What we see as results are the pressure distributions of the air inside the



   The three-dimensional initial-boundary value problem associated with the

   scalar wave equation for sound speed "c" can be written as  

       c^2*del2(u) - dtt(u) = 0,  

   with accompanying initial values and boundary conditions:  

       u = f(s,t)              on some part S1 of the boundary

       dn(u) + a*u = g(s,t)    on the remainder S2 of the boundary.


   If we assume that solutions have the form  

       u(x,y,z,t) = exp(i*w*t)*v(x,y,z)  

   (where "w" is a frequency) then the equation becomes  

       del2(v) + lambda*v = 0  

   with lambda = (w/c)^2, and with boundary conditions  

       v = 0                   on S1

       dn(v) + a*v = 0         on S2.


   The values of lambda for which this system has a non-trivial solution

   are known as the eigenvalues of the system, and the corresponding solutions

   are known as the eigenfunctions or vibration modes of the system.




title "Vibrational modes of an Oil Drum"  


coordinates cartesian3  



    modes=4   { Define the number of vibrational modes desired.

                 The appearance of this selector tells FlexPDE

                 to perform an eigenvalue calculation, and to

                 define the name LAMBDA to represent the eigenvalues }  

    ngrid=6           { reduced mesh density for demo }  

    cell_limit = 3000   { keep problem small for demo }  





equations       {  the eigenvalue equation }  

   U: div(grad(u)) + lambda*u   = 0  


{ define the bounding z-surfaces }

extrusion  z = -1,1      



    { clamp the bottom and top faces }  

    surface 1 value(u) = 0    

    surface 2 value(u) = 0  

    { define circular sidewall }

    Region 1          


      value(u) = 0   { clamp the sides }  

      arc(center=0,0) angle 360  


monitors             {  repeated for all modes }  

    contour(u) on x=0  

    contour(u) on y=0  

    contour(u) on z=1/2  


plots                 {  repeated for all modes }  

    contour(u) on x=0   surface(u) on x=0  

    contour(u) on y=0   surface(u) on y=0  

    contour(u) on z=1/2   surface(u) on z=1/2