BELLHOP3D


Overview

Sample Input

Description of Inputs

Source/Receiver Depths and Ranges

Run Type

Beam Fan

Numerical Integrator Info

Running BELLHOP



Overview

BELLHOP3D computes acoustic fields in 3D oceanic environments via beam tracing. The environment treated consists of an acoustic medium with a sound speed that may depend on x, y, and z coordinates. Similarly, the surface and bottom boundaries may vary with x and y coordinates. It is patterned after the standard BELLHOP program, so more information about how to run it may be found in the BELLHOP documentation.

The following programs are used with BELLHOP3D :

BELLHOP3D   Main program for doing Gaussian beam tracing

PLOTRAY3D   Produces plots of central rays of beams

PLOTBTY3D   Produces plots of the bathymetry surface

ANGLES      Given the source and receiver sound speeds, computes the angle of the limiting ray.

PLOTSSP     Plots the sound speed profile

PLOTSSP2D   Plots the range-dependent sound speed profile

BELLHOP3D produces pressure fields in the NRL standard format and can therefore be plotted using the MATLAB script, plotshd.m.

The steps in running the program are as follows:

   1. Set up your environmental file and run PLOTSSP to make sure the SSP looks reasonable.

   2. Do a ray trace.  That is,

      A. Run BELLHOP3D with the ray trace option to calculate about 50 rays.

      B. Run PLOTRAY3D to make sure you have the angular coverage you expect.  Do the rays behave irregularly? If so reduce the step-size and try again.

   3. Re-run BELLHOP3D using the coherent, incoherent or semicoherent option for transmission loss. (Use the default number of beams.)

   4. Run plotshd.m to plot a full range-depth field plot.

   5. Double the number of beams and check convergence.

Files:

        Name           Unit         Description

Input
        *.ENV            1       ENVironmental data
        *.SSP           40       Sound Speed Profile data (optional)

Output
        *.PRT            6       PRinT file
        *.RAY           21       RAY   file
        *.SHD           25       SHaDe file

Sample Input (Environmental) File:

'Munk profile'        ! TITLE
50.0                  ! FREQ (Hz)
1                     ! NMEDIA
'CVN'                 ! SSPOPT (Analytic or C-linear interpolation)
51  0.0  20000.0       ! DEPTH of bottom (m)
    0.0  1548.52  /
  200.0  1530.29  /
  250.0  1526.69  /
  400.0  1517.78  /
  600.0  1509.49  /
  800.0  1504.30  /
 1000.0  1501.38  /
 1200.0  1500.14  /
 1400.0  1500.12  /
 1600.0  1501.02  /
 1800.0  1502.57  /
 2000.0  1504.62  /
 2200.0  1507.02  /
 2400.0  1509.69  /
 2600.0  1512.55  /
 2800.0  1515.56  /
 3000.0  1518.67  /
 3200.0  1521.85  /
 3400.0  1525.10  /
 3600.0  1528.38  /
 3800.0  1531.70  /
 4000.0  1535.04  /
 4200.0  1538.39  /
 4400.0  1541.76  /
 4600.0  1545.14  /
 4800.0  1548.52  /
 5000.0  1551.91  /
  20000   1551.91 /
'A' 0.0
 20000.0  1600.00 0.0 1.8 0.8 /
1                 ! Nsx number of source coordinates in x
0.0 /             ! x coordinate of source (km)
1                 ! Nsy number of source coordinates in y
0.0 /             ! y coordinate of source (km)
1                 ! NSD
1000.0 /          ! SD(1:NSD) (m)
501               ! NRD
0 5000 /          ! RD(1:NRD) (m)
1001              ! NR
0.0  100.0 /      ! R(1:NR ) (km)
2                 ! Ntheta (number of bearings)
0.0 1.0 /         ! bearing angles (degrees)
'CG   3'          ! 'R/C/I/S'
51 6              ! Nalpha
-14.66 14.66 /    ! alpha1, 2 (degrees) Elevation/declination angle fan
11 46             ! Nbeta
-2  2 /           ! beta1, beta2 (degrees) bearine angle fan
100.0  100.0 100.0 20500.0 ! STEP (m), Box%x (km) Box%y (km) Box%z (m)

Description of Inputs

The first 6 blocks in the ENVFIL are common to all the programs in the Acoustics Toolbox. The following blocks should be appended for BELLHOP:       

 (7) - SOURCE/RECEIVER LOCATIONS (INCLUDING RANGES, DEPTHS, AND BEARINGS)

       Syntax:

          NSx
          Sx(1:NSx)
          NSy
          Sy(1:NSy)
          NRD

          RD(1:NRD)
          NR
          R(1:NR )
          NTheta
          THETA( 1:NTheta )

       Description:

          NSD:  The number of source depths
          SD(): The source depths (m)
          NRD:  The number of receiver depths
          RD(): The receiver depths (m)
          NR:   The number of receiver ranges
          R():  The receiver ranges (km)
          NTheta:   The number of receiver bearings (radials)
          THETA():  The receiver bearings (degrees)

This data is read in using list-directed I/O you can type it just about any way you want, e.g. on one line or split onto several lines.  Also if the depths or ranges are equally spaced then you can type just the first and last depths followed by a '/' and the intermediate depths will be generated automatically.

You can specify a receiver at zero range; however, the BELLHOP field is singular there--- the pressure is returned as zero.

 (8) - RUN TYPE

       Syntax:

          OPTION

       Description:

          OPTION(1:1): 'R' generates a ray file
                       'E' generates an eigenray file
                       'A' generates an amplitude-delay file (ascii)
                       'a' generate  an amplitude-delay file (binary)
                       'C' Coherent     TL calculation
                       'I  Incoherent   TL calculation
                       'S' Semicoherent TL calculation
                            (Lloyd mirror source pattern)

          OPTION(2:2): 'G' Geometric hat beams (default)
                       'B' Geometric Gaussian beams

          OPTION(3:3): '*' read in a source beam pattern file
                       ' ' don't (default)

          OPTION(4:4): 'R' point source (cylindrical coordinates) (default)
                       'X' line  source (cartesian coordinates)

          OPTION(5:5): 'R' rectilinear grid (default)
                       'I' irregular grid

          OPTION(6:6): '2' Nx2D run (default)
                       '3' 3D run

The ray file and eigenray files have the same simple ascii format and can be plotted using the Matlab script plotray.m.

The eigenray option seems to generate a lot of questions. The way this works is that BELLHOP simply writes the trajectories for all the beams that contribute at a given receiver location. To get a useful picture you normally want to use a very fine fan, only one receiver location, and the geometric beam option. See the examples in at/tests.

The amplitude-delay file can be used with the Matlab script stackarr.m to 'stack the arrivals', i.e. to convolve them with the source spectrum and plot the channel response. stackarr.m can also be used to simple plot the impulse response.

For TL calculations, the output is in the shdfil format used by all the codes in the Acoustics Toolbox and can be plotted using the Matlab script, plotshd.m. (Use toasc.f to convert the binary shade files to ascii format for use by plotshd.m or whatever plot package you're using.)

The pressure field is normally calculated on a rectilinear grid formed by the receiver ranges and depths. If an irregular grid is selected, then the receiver ranges and depths are interpreted as a coordinate pair for the receivers. This option is useful for reverberation calculations where the receivers need to follow the bottom terrain. This option has not been used much. The plot routines (plotarr) have not been modified to accomodate it. There may be some other limitations.

There are actually several different types of Gaussian beam options (OPTION(2:2)) implemented in the code. Only the two described above are fully maintained.

The source beam pattern file has the format

       NSBPPts
       angle1  power1
       angle2  power2
        ...

with angle following the BELLHOP convention, i.e. declination angle in degrees (so that 90 degrees points to the bottom). The power is in dB. To match a standard point source calculation one would used anisotropic source with 0 dB for all angles. (See at/tests/BeamPattern for an example.)

 (9) - BEAM FAN

       Syntax:

          NAlpha ISINGLE
          Alpha(1:NBEAMS)
          NBeta ISINGLE
          Beta(1:NBEAMS)

       Description:

                  NAlpha: Number of beams in elevation
              (use 0 to have the program calculate a value automatically, but conservatively).

          ISINGLE: If the option to compute a single beam in the fan is selected (top option)
              then this selects the index of the beam that is traced.

          Alpha(): Beam elevation angles (degrees) (negative angles toward surface)

                  NBeta: Number of beams in azimuth
              (use 0 to have the program calculate a value automatically, but conservatively).

          ISINGLE: If the option to compute a single beam in the fan is selected (top option)
              then this selects the index of the beam that is traced.

          Beta(): Beam azimuth angles (degrees) (math convention with 0 degrees pointing along the x-axis)

For a ray trace you can type in a sequence of angles or you can type the first and last angles followed by a '/'.  For a TL calculation, the rays must be equally spaced otherwise the results will be incorrect.

 (10) - NUMERICAL INTEGRATOR INFO

       Syntax:

          STEP Box%x (km) Box%y (km) Box%z (m)

       Description:

          STEP:  The step size used for tracing the rays (m). (Use 0 to let BELLHOP choose the step size.)
          Box%x:  The maximum distance in the x-direction to trace a ray       (km).
          Box%y:  The maximum distance in the y-direction to trace a ray       (km).
          Box%x:  The maximum distance in the z-direction to trace a ray        (m).

The required step size depends on many factors.  This includes frequency, size of features in the SSP (such as surface ducts), range of receivers, and whether a coherent or incoherent TL calculation is performed.  If you use STEP=0.0 BELLHOP will use a default step-size and tell you what it picked.  You should then halve the step size until the results are convergent to your required accuracy.  To obtain a smooth ray trace you should use the spline SSP interpolation and a step-size less than the smallest distance between SSP data points. Rays are traced until they exit the box ( Box%x, Box%y, Box%z ). The box is defined with the source at the center of the coordinate system.  Make the box a bit (say 1%) roomy too make sure rays are not killed the moment they hit the bottom or are just reaching your furthest receiver.