Decompression calculation - Bühlmann settings

Stefan sjti at gmx.net
Tue Feb 14 14:53:25 PST 2017


Hello developers,

I was wondering about differences between the deco stops calculated by
my OSTC 2N and by subsurface for a while. After recently studying the
Bühlmann model and looking at different implementations I found a few
lines in subsurface which are irritating to me:

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 %

As the code is based on the DR5 I went to check the defaults there. In
the repository https://bitbucket.org/heinrichsweikamp/dr5_code/ in
"src/others/limits_and_standards.h" it says on lines 228 and 234:
> #define	RESETVALUE_percent_desaturation_multiplier 	100.0
> #define	RESETVALUE_percent_saturation_multiplier 	101.0

Thus it seems to me these two values have been interchanged by
mistake.

On most OSTCs these values are adjustable, so in the long run it
would be great to allow the same in subsurface. Yet, on the OSTC 2
(old as well as the newer models running on hwOS) the defaults are
> char_I_saturation_multiplier = 110;
> char_I_desaturation_multiplier = 90;
so it would be nice to incorporate these as new defaults.

By the way - the OSTC code also uses the 1a Variant of ZH-L16C, i.e.
the one with the first compartment having a 4min halftime instead of
the 5min (1b) one as on the DR5.

Best regards from Germany
Stefan



More information about the subsurface mailing list