Help me understand how deco stops are calculated.

Please register or login

Welcome to ScubaBoard, the world's largest scuba diving community. Registration is not required to read the forums, but we encourage you to join. Joining has its benefits and enables you to participate in the discussions.

Benefits of registering include

  • Ability to post and comment on topics and discussions.
  • A Free photo gallery to share your dive photos with the world.
  • You can make this box go away

Joining is quick and easy. Log in or Register now!

hammet

Contributor
Messages
723
Reaction score
681
Location
United States
# of dives
200 - 499
I've been reading a bit about tec diving (Salama, "Deep Into Deco", as well as Erik Baker's paper, etc).
I think I have a good understanding about the basic theory behind of M-values, gradent factors, etc.
What I still don't understand exactly is how a dive computer or dive planner (like multideco) determines each deco stop depth and time.
For instance, let's say, I dive to 200' for twenty minutes on air only (to keep it simple).

Multideco gives me the following stops for ZHL16-C+GF w/ GFs being 20/85:


MultiDeco 4.14 by Ross Hemingway,
ZHL code by Erik C. Baker.

Decompression model: ZHL16-C + GF

DIVE PLAN
Surface interval = 5 day 0 hr 0 min.
Elevation = 0ft
Conservatism = GF 20/85

Dec to 200ft (3) Air 60ft/min descent.
Level 200ft 16:40 (20) Air 1.48 ppO2, 200ft ead
Asc to 110ft (23) Air -24ft/min ascent.
Stop at 110ft 0:15 (24) Air 0.91 ppO2, 110ft ead
Stop at 100ft 1:00 (25) Air 0.85 ppO2, 100ft ead
Stop at 90ft 1:00 (26) Air 0.78 ppO2, 90ft ead
Stop at 80ft 1:00 (27) Air 0.72 ppO2, 80ft ead
Stop at 70ft 1:00 (28) Air 0.65 ppO2, 70ft ead
Stop at 60ft 3:00 (31) Air 0.59 ppO2, 60ft ead
Stop at 50ft 3:00 (34) Air 0.53 ppO2, 50ft ead
Stop at 40ft 6:00 (40) Air 0.46 ppO2, 40ft ead
Stop at 30ft 8:00 (48) Air 0.40 ppO2, 30ft ead
Stop at 20ft 17:00 (65) Air 0.34 ppO2, 20ft ead
Stop at 10ft 31:00 (96) Air 0.27 ppO2, 10ft ead
Surface (96) Air -20ft/min ascent.

My question is how does the software determine what stops, what depths, and what times in the above? Can these computations be made on paper without a computer?


Similarly, from a rec diving standpoint, say I exceed my NDLs. How does my dive computer determine the first stop and the time I need to stay at that stop and exactly how many more stops I will need and what depths and times?
 
For the small part that i understand from it, the low GF is the one that determines the depth of the first stop the high GF determines the duration of the last one.

The duration of the stops are determined by the time you need to be able to ascend to the next stop without passing the imaginary line between GFlo and GFhi.

This is my guess btw, I might be completely wrong.
 
So you understand m-value. You also have an ambient pressure line. The difference between the two gives you the stops you need. That is your 20/85 Gf. That is what is determining your stops and times.

Edit here is a photo to help understand:

image013.png
 
So you understand m-value. You also have an ambient pressure line. The difference between the two gives you the stops you need. That is your 20/85 Gf. That is what is determining your stops and times.

Edit here is a photo to help understand:

View attachment 521082

Although very handy, don't forget, this graph only represents one theoretical tissue compartment of 16 (depending on the algorithm) each with different half-times ranging from fast to slow.

Remember each compartment is considered saturated to surrounding ambient pressure after 6 half-times (i.e 10min compartment saturated after 60mins, etc).

On ascent, your stops will be governed by the leading (highest percentage of super saturation) compartment. In true Buhlmann this would be 100%, but with GF 20/85, the first stop would be at 20% SS, with subsequent stops bouncing off the line to a surfacing GF of 85%.
 
Although very handy, don't forget, this graph only represents one theoretical tissue compartment of 16 (depending on the algorithm) each with different half-times ranging from fast to slow.

Remember each compartment is considered saturated to surrounding ambient pressure after 6 half-times (i.e 10min compartment saturated after 60mins, etc).

On ascent, your stops will be governed by the leading (highest percentage of super saturation) compartment. In true Buhlmann this would be 100%, but with GF 20/85, the first stop would be at 20% SS, with subsequent stops bouncing off the line to a surfacing GF of 85%.

Sorry, should qualify that by saying 100% of the M value.
 
I've been reading a bit about tec diving (Salama, "Deep Into Deco", as well as Erik Baker's paper, etc).
I think I have a good understanding about the basic theory behind of M-values, gradent factors, etc.
What I still don't understand exactly is how a dive computer or dive planner (like multideco) determines each deco stop depth and time.
For instance, let's say, I dive to 200' for twenty minutes on air only (to keep it simple).

Multideco gives me the following stops for ZHL16-C+GF w/ GFs being 20/85:


MultiDeco 4.14 by Ross Hemingway,
ZHL code by Erik C. Baker.

Decompression model: ZHL16-C + GF

DIVE PLAN
Surface interval = 5 day 0 hr 0 min.
Elevation = 0ft
Conservatism = GF 20/85

Dec to 200ft (3) Air 60ft/min descent.
Level 200ft 16:40 (20) Air 1.48 ppO2, 200ft ead
Asc to 110ft (23) Air -24ft/min ascent.
Stop at 110ft 0:15 (24) Air 0.91 ppO2, 110ft ead
Stop at 100ft 1:00 (25) Air 0.85 ppO2, 100ft ead
Stop at 90ft 1:00 (26) Air 0.78 ppO2, 90ft ead
Stop at 80ft 1:00 (27) Air 0.72 ppO2, 80ft ead
Stop at 70ft 1:00 (28) Air 0.65 ppO2, 70ft ead
Stop at 60ft 3:00 (31) Air 0.59 ppO2, 60ft ead
Stop at 50ft 3:00 (34) Air 0.53 ppO2, 50ft ead
Stop at 40ft 6:00 (40) Air 0.46 ppO2, 40ft ead
Stop at 30ft 8:00 (48) Air 0.40 ppO2, 30ft ead
Stop at 20ft 17:00 (65) Air 0.34 ppO2, 20ft ead
Stop at 10ft 31:00 (96) Air 0.27 ppO2, 10ft ead
Surface (96) Air -20ft/min ascent.

My question is how does the software determine what stops, what depths, and what times in the above? Can these computations be made on paper without a computer?


Similarly, from a rec diving standpoint, say I exceed my NDLs. How does my dive computer determine the first stop and the time I need to stay at that stop and exactly how many more stops I will need and what depths and times?

Talking GF, other schemes are available...

During a dive the computer accumulates the nitrogen loading for the various theoretical compartments. As it does that it has a partial pressure for each then calculates a theoretical ascent until a given partial pressure (GF low/100 * some constant * ambient + some other constant) would be exceeded. That is the first stop. Next it iterates forward calculating the loading over time at that stop and then doing a similar ceiling calculation to see if you can reach the next stop. If you can it call that first stop done and reports how long it will be. Then the same again for the next stop over and over until that next stop would be the surface and the plan is complete.

You could do it on paper but it would be quite tedious.
 
I've been reading a bit about tec diving (Salama, "Deep Into Deco", as well as Erik Baker's paper, etc).
I think I have a good understanding about the basic theory behind of M-values, gradent factors, etc.
What I still don't understand exactly is how a dive computer or dive planner (like multideco) determines each deco stop depth and time.

My question is how does the software determine what stops, what depths, and what times in the above? Can these computations be made on paper without a computer?

Similarly, from a rec diving standpoint, say I exceed my NDLs. How does my dive computer determine the first stop and the time I need to stay at that stop and exactly how many more stops I will need and what depths and times?

Go get Mark Powell's book, Deco for Divers. There, I said it first....

Seriously, you're on the right track, but you need to back up a step. M-values and GF must be understood in context of the guts of the model and that's the part you seem to be skipping.

Very, very simply: The algorithm is accounting for 16 theoretical tissue "compartments" each with different half-times for ongassing and offgassing. That's where the "work" of the computer is done: keeping track of the various compartments, whether they are ongassing or offgassing and how fast, which is driven by depth, the mix you are breathing, the time at depth and the extent to which they are already loaded. Of course, that is very dynamic stuff and the computer is calculating it constantly.

Your NDL or deco obligation is determined by the "leading" compartment, i.e., the one that it is the "worst" in terms of saturation. That is a lot of math.

After all that calculating is done, in straight ZHL-16, the M-value line is what the computer constantly compares to the result of those calculations. It is the "limit" for the leading tissue compartment - the "do not cross" line. The computer generates a series of stepwise stops to keep you below that line. Gradient factors are simply a way to modify that line either to add conservatism (or change the deco profile in way that you think adds conservatism). It gives the computer a new line with a different slope to compare its calculations against.

So, saying you have a handle on the M-value and GF is a start, but to be meaningful, you have to understand the nature of the calculations which are being compared against those things. Otherwise, it's like understanding a speed limit without understanding speedometer.

There is no practical way to "run the algorithm" on paper, by hand. Just like an NDL dive, you can use dive tables based on the algorithm to calculate a deco plan for a square profile dive, but that's a different exercise.

Obviously, lots of detail left out of the above, but that's the gist of it.
 
My question is how does the software determine what stops, what depths, and what times in the above? Can these computations be made on paper without a computer?

Disclaimer: I'm new to this, and just read "Deco for Divers" last week (highly recommended). I find your question very interesting so I looked into it a bit. As an example I picked "Subsurface" which is a free and open source dive log and planning program. The good news is you can look at the code that does the planning right here:
It's hard to follow if you don't have some basic programming knowledge, but you can still follow the English-language comments (they start with "/*"). The basic gist of the planner is something like this:

Until the surface is reached, repeat the following:
- Are we at the surface? If so write out the plan, otherwise keep going:
- Try to ascend to the next stop depth
- Check if ascending to next stop is clear, go back and wait if we hit the ceiling on the way
- Add a minute of deco time and then try again

Edit: The stops in Subsurface are hardcoded at 3m intervals, so it will try inserting them at 3m, 6m, 9m, 12m, etc. Likewise for feet it will try 10ft increments.

So effectively it figures out the plan through trial and error simulating your dive by trying to ascend a bit, then checking the model (it has hardcoded values for the Buhlmann tables in the code), and adding deco time as needed. Doing this by hand would be extremely time consuming I'd think.
 
My question is how does the software determine what stops, what depths, and what times in the above? Can these computations be made on paper without a computer?

Similarly, from a rec diving standpoint, say I exceed my NDLs. How does my dive computer determine the first stop and the time I need to stay at that stop and exactly how many more stops I will need and what depths and times?

Read this: DIY DECOMPRESSION -- he may be skimming over a few details but it's a good and concise explanation. What you're asking is from step 3b on.

Edit: the calculations are typically done in a loop, as you'll see in the above. Yes, you could do it with pen and paper but it would really suck because you'd have to repeat the same thing over and over again. It's much easier to e.g. learn a bit of python and do it in a jupyter notebook.
 
So you understand m-value. You also have an ambient pressure line. The difference between the two gives you the stops you need. That is your 20/85 Gf. That is what is determining your stops and times.

Edit here is a photo to help understand:

View attachment 521082
The graph in this post is wrong. Most of these diagrams are and the only confuse anyone that tries to properly read them.

The dotted red line purports to represent the interpolation of GF low to GF high. So where does GF lo apply on this graph? Where exactly is the GF 30? Apparently the lowest GF, at the first stop, is some number between 30 and 80, but not actually 30.

Compare this graph to the ones in “Technical Diving, an Introduction” about page 199. Those illustrate this with a line at 30% and a line at 80% so there is no need for this dotted line which doesn’t exist below the first stop, or ought to have a kink if you want to represent the limit.

I expect the typical SB’er will think I am being excessively pedantic but actually everything to do with this scheme needs to be looked at and understood properly, none of it can be left out or ignored.
 
https://www.shearwater.com/products/teric/

Back
Top Bottom