I have the following setting:

  • An irregularly-shaped domain, expressed as a mesh of points
  • A Laplacian operator, together with boundary conditions

I am looking for the eigenvalues of that operator, i.e. functions (expressed on the mesh, though clearly approximating an underlying continuous function) satisfying the boundary conditions and $$ \triangledown^2 f = \lambda f $$ for some function $f$ and constant $\lambda$. I don't know $\lambda$ a priori, in fact part of the problem is to find the possible values!

What I got so far for the special case, where the boundary conditions are a constant (e.g. 0s):

  • The Laplacian operator, when acting on a discrete mesh of points, becomes just a linear operation - e.g. a matrix transformation
  • So I can just look for the eigenvalues of that

That works pretty well, but doesn't generalise so well, I think. E.g. now I would like to solve the problem with boundary conditions such that on the boundary $$ \frac{ \partial f }{ \partial n } = 0 $$ and now I don't think I can just express that as a matrix eigenvector problem - or maybe I can?

For context, I am solving the problem of drum vibrations on an irregular-shaped domain. Given a domain, the solutions to the problem above give the shape of vibrations of the drum, along with the associated frequencies (which can be deduced from the eigenvalues). Here the boundary conditions is $f=0$ on boundary, and it solves nicely - I can produce a pretty picture like this, for example (here my domain is a semi-circle):

One eigensolution of the vibrating drum problem

However, now I would like to extend this to water waves in a cyllindroid container. The boundary condition becomes that of partial derivatives vanishing at the boundary described above - and I feel out of ideas. All help will be highly appreciated.

  • 3
    $\begingroup$ Welcome to SciComp.SE! Your approach is correct -- if you want to find (numerically) eigenvalues of a partial differential operator, you discretize the eigenvalue equation to obtain an eigenvalue problem for a matrix, which you then solve by the usual methods. This works for any (reasonable) boundary condition including homogeneous Neumann conditions; how you incorporate the boundary conditions depends on the discretization method (which you have not stated). I suggest you search for "finite difference homogeneous Neumann" -- there should be a lot of hits (even on this site) for this. $\endgroup$ Aug 29 '16 at 11:40
  • $\begingroup$ I see - thanks. I'll google these around. Are these standard tasks in finite-difference packages? If so, are there any particularly recommendable ones for Python? $\endgroup$
    – magiiique
    Aug 29 '16 at 17:48
  • $\begingroup$ It appears that the main difficulty here is enforcing the BCs: a useful approach would be to first consider the reduced 1D problem as opposed to your cylindrical domain. In this case you will have $\sin$ or $\cos$ eigenfunctions of various wave number when enforcing Dirichlet or Neumann boundaries, respectively. If you need more specific help with this step, I recommend adding details on your discretization to your question statement. Good luck! $\endgroup$ Aug 30 '16 at 3:01
  • $\begingroup$ Apparently many years ago I did a short write up on a coupled and decoupled 1D version of this problem. Its quality is poor at best, but it might be helpful for you. I uploaded it here: uofi.app.box.com/s/t07cspu49vt8c8wg8037un3p7g1hp6pk $\endgroup$ Aug 30 '16 at 3:12

Your Answer

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

Browse other questions tagged or ask your own question.