This is a page to download code for calculating acoustic modes used for simulating acoustic propagation over long ranges in deep water. Other hints for using this code and benchmarks can also be found here.
Table of Contents
Regarding acoustic modes, there were two issues that nagged at me for years. The first is that it always seemed to me that solving the second order differential equation for modes (either acoustic or internal wave) should be quite easy in Matlab as an eigenvalue problem. The second is that no simple code was readily available to find the acoustic modes. (One readily-available suite of matlab scripts solves for the modes using Chebyshev polynomials; it seems to work quite well as measured by both speed and accuracy.) In any case, after a weekend of fussing around with the problem and consulting the Computational Ocean Acoustics book of Jensen et al., I developed this code below. In the end it was rather simple, but the devil is in the details, of course.
The code for calculating modes using Chebyshev polynomials (due to M. Dzieciuch) can be downloaded from the Ocean Acoustics Library: http://oalib.hlsresearch.com/
Link to Google Books: http://books.google.com/books?id=QHtx4zYPbzMC .
The method is implemented by discretizing the differential equation and setting up an eigenvalue problem. The matlab routine "eigs.m" is then used to solve for the desired number of eigenfunctions/eigenvalues.
So at the moment, it is just an educational code.
It may be that this code can be more readily adapted to include the effects of the sea floor. Certainly, it can likely be adapted to solve for internal wave modes, using buoyancy rather than sound speed.
I am still a little puzzled as to how to implement the boundary conditions with this approach. I will have to work on sorting that out, particularly for internal wave modes which have a non-zero surface boundary condition.
-- Brian Dushaw - 09 Feb 2009Copyright © 2008-2015 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.