one, one hundred, one thousand or ten thousands?

How many is enough?

One of the algorithms for calculating transmission loss in dBSea is a Ray Tracing algorithm. It shares a lot of functionality with the Bellhop algorithm, but has been optimised a lot both in respect to solving speed and ability. 
A Ray Tracer fundamentally projects rays of sound into the environment, and calculates how each ray interacts, splits, attenuates, refracts and reflects. Every single ray is sent out at a slightly different angle from the source in an attempt to characterise all possible ray paths.
Figure 1. Example of ray paths in presence of a SOFAR channel at 1000m.
Calculating all of this, for thousands of rays can often take hours (literally!), so we sometimes get the question: "How many rays do I really need to use to get good accuracy?".
The answer to this is "It depends".

We're faced with trying to come up with a simple answer to a complex problem, so here goes:

I have attempted to model the change in predicted transmission loss as a function of the number of rays used. I was hoping to see that transmission losses converge and "agree" on a level, and that calculating transmission losses for more rays will not increase the accuracy of the prediction - in short asymptotic behaviour.  

Figure 2. Number of rays versus accuracy. Accuracy is expressed as percentage deviation from a solution using 100,000 rays. Four different bathymetry types were used for this model; Upslope, flat, downslope and a triangular seamount (submerged upslope, followed by mirrored downslope).
The figure above shows that achieving high accuracy for downsloping and flat problems require more rays to obtain a similar accuracy as upslope or seamount.
(Note that the depth of the top of the seamount has a large effect on propagation)

The numbers used for this analysis are the differences, in dB, for levels from all depths projected to the surface, relative to the solution from using 100,000 rays. A power function (monomial) was fitted to the data to get the exponent describing the relationship between number of rays and accuracy.

I have only run this for four different bathymetry types, but having a library for more bathymetry types will allow you to estimate your model's error margin.

So to answer the question "how many is enough" - well, for these four scenarios 1,000 rays are within 5 % of the solution with 100,000 rays. In practice this translates directly to a reduction in calculation time of 100 times!

Hint: to convert to dB error take predicted value and divide by estimated accuracy from Figure 2

Please note that the above calculations are only valid for the specific scenario they were calculated under, an any person working with models are responsible for estimating their modelling error.

Comments