updated
29 October 2024
The
Acoustics Toolbox is distributed under the GNU Public License.
Download
at source code
(zip file) for Mac, Linux, or Windows. Binaries are *NOT*
provided. (2024_10_29)
at Binaries
(zip file) for Windows 10. This version is older than the one
above. (The source code is also included so that you can
access the compatible Matlab routines that read/write model
input/output.) (2020_11_4)
The Fortran2008
source code should be fully portable. The Windows10 binaries were
compiled for a plain vanilla Intel architecture. Therefore they
will likely be slower that one that you compile yourself for the
native architecture.
Compiling
the package
The Fortran95
standard does not clarify whether record lengths are in bytes or
words. For some compilers, e.g. the Intel Fortran you need to use
a compiler switch making bytes the standard unit for record
lengths. We use the free gfortran compiler.
The
compilation is done using standard Makefiles that work under Unix,
OS X, etc. We also use them under Windows with either the Cygwin
system or MinGW, which provide a Unix-like environment under
Windows. Cygwin and Mingw are also freely distributed.
make clean # to
remove old objects and executables
make # to compile (can also say 'make all' )
!!!! make
install # to move the binaries to at/bin (currently not
implemented)
Running
the package
We currently run the Acoustics
Toolbox through Matlab using shell-escape commands to execute the
binaries and a variety of Matlab scripts and functions (in
at/matlab) to manipulate and display the output. If you don't have
Matlab then you'll have to figure out your own graphics. In that
case, the Matlab plot routines at least provide a good example of
how to read the file formats.
The only challenge in this phase
is to get the paths set up properly. When you call the Acoustics
Toolbox through Matlab, you're using Matlab scripts. Those Matlab
scripts use the Matlab 'which' command to find the location of the
binaries within the Matlab search path. Therefore, Matlab has to
have its path set to include the Acoustics Toolbox.
Here's an example of running kraken at the regular command line
(rather than from inside Matlab):
cd at/tests/Munk
kraken.exe MunkK
The 'cd' command above is hypothetical. You should cd to the
directory where you've created the Acoustics Toolbox. If you get
an error, the likely problem is that the path is not set properly.
The following commands may be useful in tracking that down.
printenv
which kraken.exe
If instead, you run the package
through Matlb, start Matlab and make sure you have 'at' in your
path. Check that by typing to following on the Matlab command
line:
cd at/tests/Munk
kraken MunkK
If the above runs without error,
then go to at/tests and type 'runtests' to execute a huge battery
of test cases. If the above generates an error then it could be
you don't have at/Matlab in your Matlab path.
The test battery that you run by
typing 'runtests' may fail somewhere unless you have a beefy
computer--- it generates a very large number of figures and
consumes a lot of memory in the process. However, it's easy enough
to restart the test battery at exactly the point where it
overwhelms your system.
MATLAB
version of the Acoustics Toolbox
Note that at/Matlab includes
versions of BELLHOP, KRAKEL, SCOOTER, and SPARC in Matlab (Kraken
to come soon). The Matlab versions are typically much slower;
however, they're much easier to use and modify. The Matlab version
of SCOOTER has an optional Mex file (thanks to Paul Hursky) for
the inner loop which is a tridiagonal solver. If you compile the
Mex file, the Matlab SCOOTER runs about as fast as the Fortran
one. The Matlab versions are not maintained as carefully as the Fortran
versions and may not have the latest updates.
J. P. Ianniello also wrote a Matlab
version of Kraken, called Krak_mat. See the link on oalib on the 'Modes' page. It
implements the Kraken algorithm but is not set up to
use the same
input and output files.
There
are demo versions of various acoustic
models available. See the link
for 'Demo' on oalib
on the 'Other' page. These are 'toy'
codes that illustrate the methods, but
are not really suitable
for realistic
problems.
The Acoustics Toolbox now includes a
simple PE model in Matlab
called (what else?)
Simple.
GUI
Wrappers:
ACT:
Matlab front-end providing a Graphical User Interface for the
Acoustic Toolbox written by Alec
Duncan from the Centre for
Marine Science and Technology at Curtin University.
Python
Tools:
AcousticPy: Runs the test cases for the
Acoustic Toolbox and provides components to read and plot various files--- written by Orlando Rodríguez
from the University of Algarve.
arlpy, a Python
interface to BELLHOP. Some of these tools may be useful for KRAKEN
as well (September 2018)
C++
and CUDA
bellhopcxx/bellhopcuda
Port of BELLHOP to multithreaded C++ and CUDA with compatible
interface (based on BELLHOP release 2022_4 with bug fixes and some
algorithmic changes). The speed up is roughly proportional to the
number of processors. Contributed by the Jaffe Lab for Underwater
Imaging, Scripps Institution of Oceanography, University of
California, San Diego.