computer allows more 100% supersaturation

OSTC's running hwOS sport or tech
Post Reply
edhage
Posts: 5
Joined: Monday 16. March 2020, 12:03

computer allows more 100% supersaturation

Post by edhage »

I studied your code somewhat more to see when a warning is triggered.
Looing in code: https://bitbucket.org/heinrichsweikamp/ ... /p2_deco.c

If I look in your code from line 3747:

Code: Select all

                // calculate current supersaturation value (1.0 = 100%) of this tissue according to straight Buhlmann
                supersat =    ( pres_tissue     - real_pres_respiration )
                            / ( pres_tissue_max - real_pres_respiration );

                // calculate supersaturation value for display purpose: 1.35 = 135% = 86 pixel
                if( supersat <= 1.35 ) char_O_tissue_saturation[ci] = (unsigned char)(supersat * 64);
                else                   char_O_tissue_saturation[ci] = 86;

                // memorize highest supersaturation found
                if( supersat > lead_supersat ) lead_supersat = supersat;

                // tissue-dependent baseline threshold for micro bubbles and outside warnings
                baseline_threshold = 0.02 * ci + 1.0;

                // micro bubbles warning: supersaturation > baseline threshold
                if( supersat > baseline_threshold )
                    deco_warnings |= (DECO_WARNING_MBUBBLES + DECO_WARNING_MBUBBLES_lock);

                // outside warning: supersaturation > baseline threshold + additional 5% margin
                if( supersat > (baseline_threshold + 0.05) )
                    deco_warnings |= (DECO_WARNING_OUTSIDE  + DECO_WARNING_OUTSIDE_lock );
When supersat = 1 this means the tissue pressure is on the m-line or Buhlman-line given by parameter a and b.

You only generate a warning when supersat > baseline_threshold, which is dependent on ci. Ci is an index, and I suspect the index of the compartiment (1 to 16), so that means you allow a supersaturation of compartiment 3 of (1+(3-1)*0.02)=1.04 before m-bubble warning comes.

Should this warning not be at supersaturation levels < 1 ? It seems that more than 100% supersaturation is allowed before a warning is triggered.

If I look at the figure attached (from “Deco for divers” from Mark Powell we should avoid total supersaturation.

Is it true that you generate a warning when you are already more than 100% supersaturated, and is this on purpose? Should the limit 1 not be used, or a margin from that (0.95?)
Attachments
from_book.jpg
Ralph
Posts: 708
Joined: Saturday 24. June 2017, 11:31

Re: computer allows more 100% supersaturation

Post by Ralph »

Hi,

thanks for having such an in-depth look into our code. It's true, there are two warnings that are triggered beyond the M-line, it is the microbubbles warning and the "outside model" warning. Both of these warnings, once triggered, are latched for the remainder of the dive.

Basically, HW and the OSTC dive computers try to stay as close as possible to the ideas and limits that Bühlmann developped, refraining from adding some own-brew additions and safety pads. So when Bühlmann states 100% is the limit, and with GF mode switched off, the OSTC will give a warning at 101% supersaturation: a GF warning message is shown and the depth will be colored in red. That is the main warning for crossing the M-line.

Looking closer, if theory says 100% is (still) ok, it must be figured in that a practical dive will have short excursions to 100% + a little % for a little bit of time. As the picture shows, there is a continuous transition between "safe" and "DCI". For that reason, the OSTC accepts excursions beyond the 100%, with warning give but also revoked once the dive returns inside the Bühlmann Limit again.

Anyhow, we want to give a kind of "second level" warning when the excursion has been taken too far. Actually, there are two such second level warnings: the µ-bubble warning and the outside warning. The µ-bubble warning comes first and signals that µ-bubbles _may_ have formed and _may_ interact with the capability of the lung to dispose gas off the body, and thus _may_ render the calculated deco inaccurate.

The outside warning signals that the dive was outside the Bühlmann limit for an substancial extend, so indicated deco data are again - and this time more likely - inaccurate. It's left up to the diver to react on this in an appropriate way. Still, the OSTC in any case will continue to calculate as if the model is still valid, in order to supply the diver with the best guess possible, i.e. it will not shut down calculations as some other brand do.

If you _personally_ believe that 100% saturation is ok, or if you want to increase the safety margin, is up to you - that's why there is the GF mode. With GF switched on, a saturation _attention_ will be given once the GF high is crossed, and the "hard warnings" will come again unchanged on passing the 100% and the 100+x% limits. Does that sound reasonable?

BR
Ralph
edhage
Posts: 5
Joined: Monday 16. March 2020, 12:03

Re: computer allows more 100% supersaturation

Post by edhage »

Hello Ralph,

Thank you for the answers.

If I understand correctly you have 3 warnings.
1) OSTC accepts excursions beyond the 100%, with warning give but also revoked once the dive returns inside the Bühlmann Limit again.
2) "second level" warning µ-bubble warning at 0.02 * ci + 1.0
3) "second level" outside warning at baseline_threshold = 0.02 * ci + 1.05

I quess the code-snippet I have shown is about the 2) and 3).

I still have a question about the u-bubble warning. It seems to be different per tissues, since:

Code: Select all

  baseline_threshold = 0.02 * ci + 1.0;
So the slowest tissue 16 has a threshold of 0.02 * (16-1) + 1.0 = 1.3 .

Is this conclusion true? Or did I misunderstand the meaning of ci ?
What is the rationale for this?

Greetings, Edward
Ralph
Posts: 708
Joined: Saturday 24. June 2017, 11:31

Re: computer allows more 100% supersaturation

Post by Ralph »

Hi Edward,

sorry for the delays in answering. I am very busy in the moment with debugging the last issue with the comm mode of the upcomming hwos V3.08 beta 4 firmware which works perfectly despite in one single case that up to now refuses to uncover its root point of failure. Will come back on you hopefully soon.

thanks for understanding,
Ralph
edhage
Posts: 5
Joined: Monday 16. March 2020, 12:03

Re: computer allows more 100% supersaturation

Post by edhage »

Hello Ralph, hope you have time to answer since Matthias can't remember. See conversation below:

Me:
The question at viewtopic.php?f=6&t=22050 Is still open. It seems to me that your code generates a warning level dependent on the kind of tissue. The slowest tissue 16 has a threshold of 130%. Under a supersaturation of 130% no µ-bubble warning is given.
This seems dangerous to me. What is your opinion on this? I read quit some scientific papers on the matter (I am a scientist myself) but did not find any indication that for slower tissues a supersaturation of 130% is allowed.

Matthias:
Dangerous no: Since the user gets multiple, very clear, warnings before the 130% limit is triggered. Discussable: Yes. I once talked with Simon Mitchell about this and we kind of agreed that the upper limits of the Bühlmann model are simply not real-science yet. There are reports of diving accidents with massive violation of the model: One diver dead, the other symptom-less. Practice of millions of dives made with the model show that it works very well for nearly 100% of the dives. But I also know some divers regularly dive very long (>8h) and deep dives (>200m) with GF 110/110 and are still fine.

Me:
Hello Matthias,
That is interesting stuff. Also clear that the diver gets warnings before the 130% limit, so you are right that the first warning at 101% already triggers the diver. So I agree with you there.
Still I am very curious what made you decide to put this level on 130% for the slowest tissue and 102% for the fastest tissue. What was your motivation for this? (I want to learn about this)

Matthias:
I can't remember why this was implemented like this, sorry.
Ralph
Posts: 708
Joined: Saturday 24. June 2017, 11:31

Re: computer allows more 100% supersaturation

Post by Ralph »

Hello,

sorry once again for the delays. The micro bubble and the outside warning should never be seen by a diver during a dive, because they both trigger on pupose only when the dive is more than a bit outside of the Bühlmann model. There are numerous other indications on the OSTC screen to inform, get the attention, and finally warn the diver when he is on the way of breaking deco obligations, beginning with being above the normal stop depth, above a supersaturation equalling GF high, or at 100% supersaturation. These indications and the underlaying principles should be understood by any diver doing deco dives. I encourage every OSTC user to put the OSTC into simulation mode and learn how all these indications, attentions and warning look alike and work together by putting a simulated dive at and above the edge of deco obligations. Switch to the custom view with the tissue graphics and the indication of the leading tissue's supersaturation - to my mind there is hardly any better learning tool to visualize the impact of too far ascents and gas switches on what the tissues do and how the OSTC reacts. You will see: the OSTC does _not_ "allow" more than 100% supersaturation, instead it will give you a lot of light show once you cross the 100%.

So what are the micro bubbles and outside warnings made for? Obviously from the above, they are not made to guide the diver through a normal deco dive and protect him from "the bends". Instead, the main role of these two warnings is to inform the diver that the dive has been taken considerably outside of the model and thus the calculated deco data will or may be incorrect to an unknown amount. There may be a good reason for such an excursion during a dive, such as lost gas constraints, bouancy problems, etc. But to be honest, there are also divers out there that have very little knowledge on decompression theory and simply think: when i have a deco computer, i can do deco diving. And they do that, following the computer's indications like other species follow the directions of their car's navigation, ending up in train tunnels and alike. So the main purpose of these warnings is not primarily to protect the diver, but us at HW in front of potential claims. Different manufacturers follow different ways here. You probably know that there is one brand out there whose dive computers, on violating deco ceiling for too long, stop displaying simply everything, leaving the diver completely alone to decide how to end the dive while trying to make the best out of the situation. That is not the way HW wants its computers to be. HW computers will continue to calculate a deco schedule as if the dive would still be covered by the Bühlmann model, but states via the microbubble and outside warnings that these deco data are just a best guess. As Matthias already cited, there is no hard science at the deco limit, and there probably never will be. So maybe even if have been outside the model, the results may work, as-is or padded with some safety margins on the discretion of the knowledgeable diver. So we regard it as a safety feature that the OSTC will _continue_to_operate_ (not to be confused with "allows") even if the envelop of the Bühlmann model has been trespassed.

Some final words on the design of the threshold: As the triggering of these two warnings are extraordinary events by design, there is on purpose some distance between the 100% M-line and the trigger thresholds for the micro bubbles and the outside warning, with the micro bubbes comming first and the outside another bit later. The exact thresholds are made by two intersecting threshold-lines which are designed to give some more distance for the slower tissues than with the faster ones. The reasoning behind this design has no hard science behind (as there is none), but is build on the idea that the faster tissues probably answer faster to exceeding the M-line, discharging gas bubbles faster (or earlier) than the slower tissues will do. Or in other words: the implementation assumes that a certain amount of supersaturation above the M-line >> for a limited (short!) amount of time << could be better endured by the slower tissues than by the faster ones. For the exact trigger thresholds for each warning and tissue, i need to look into the code, will add then to this post later on when time allows. Just one final remark: the tissues ~12 and up don't matter much with respect to triggering warnings, as most of the dive profiles do not get them substancially excited.

kind regards,
Ralph
Post Reply