Decompression calculation - Bühlmann settings

Stefan sjti at
Sun Feb 19 14:14:12 PST 2017

Hello Robert,

thanks for the detailed explanation.

> On 2017-02-15 11:19, Robert Helling wrote:
>> On 14.02.2017, at 23:53, Stefan <sjti at> wrote:
>> In the current "core/deco.c" lines 39-41 read:
>> struct buehlmann_config {
>> double satmult; // safety at inert gas accumulation as percentage of 
>> effect (more than 100).
>> double desatmult; //! safety at inert gas depletion as percentage of 
>> effect (less than 100).
>> Then, lines 49-51 state:
>> struct buehlmann_config buehlmann_config = {
>> .satmult = 1.0,
>> .desatmult = 1.01,
>> Obviously a value of 1.01 is not < 100 %
> Thanks for finding this. Will fix this. But the the effect in fact
> is minimal, we are talking about two percents of total deco time,
> roughly: The effect of the satmult is to multiply the saturation
> time (mostly bottom time), while desalt time multiplies the
> decompression time. So, for 20min bottom time, we are talking about
> 20min 12s instead (not something I would worry about in a dive) as
> well as for one hour deco, we are talking about about 30 extra seconds.
I have to admit that I had not investigated how big or small the
effect of those factors would be. Seeing the small impact these
factors have, I agree that it seems more reasonable to fix them to 1
and not add configuration options.

> Decompression models are only very crude approximations of what is
> going on in the human's body and there are much larger systematic
> uncertainties than a few percent uncertainties/errors in some
> constants.
I am well aware of the physiological uncertainties. Yet, my expection
is that implementations of the same algorithm should yield the same
(or very close) results as long as the numerics are done right.

> If you are really worried about the difference between what we do
> and H&W, you should notice that we handle gradient factors
> differently (and I would argue that we do the "correct" thing. You
> can see this in their ceiling jumping when the leading tissue
> changes, this was at least true last time I looked at their code
> but that was a while ago). But those differences go away for
> setting gradient factors to 100/100.
This will either explain or at least contribute to the observed
difference. Can you give a short explanation of the difference? But
I'm also okay to go checking those parts of the code if it's not
explained in two sentences...

Thanks and regards

More information about the subsurface mailing list