Question How to Calculate First and Final Stop Depths When Implementing Gradient Factors in Bühlmann ZHL-16C?

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!

OP
B
Messages
2
Reaction score
0
Location
Spain
I’m coding a dive computer algorithm using Bühlmann’s ZHL-16C model. So far, I’ve implemented it successfully without incorporating any conservatism. Now, I want to add Gradient Factors (GF). My main reference is Erik C. Baker’s article "Clearing Up the Confusion About 'Deep Stops'".

In the formula presented, I need to calculate the GF slope, which depends on GF_High, GF_Low, the First Stop Depth, and the Final Stop Depth. My question is: How should I calculate the Final Stop Depth and First Stop Depth while considering GF_High and GF_Low?
 

Attachments

  • Deep_Stops.pdf
    229.2 KB · Views: 5
The GF high and low are all you need to give you a continuously increasing ceiling. You can then choose whatever discretisation you choose for the stops, most people use every 3m.
It's also common to set a Final stop depth, but again that's your choice a lot of people choose 6m (for various reasons, like less swell, easier buoyancy, higher Po2 all compared to shallower).
First stop depth would also be you choosing to set an artifical stop depth on top of the GF which doesn't seem very helpful - one example of this is the half depth or pressure "deep stop".
If you are coding for gas switches you'd might want to add artifical stops at switch depth to allow for the gas switch.
 
The GF high and low are all you need to give you a continuously increasing ceiling. You can then choose whatever discretisation you choose for the stops, most people use every 3m.
It's also common to set a Final stop depth, but again that's your choice a lot of people choose 6m (for various reasons, like less swell, easier buoyancy, higher Po2 all compared to shallower).
First stop depth would also be you choosing to set an artifical stop depth on top of the GF which doesn't seem very helpful - one example of this is the half depth or pressure "deep stop".
If you are coding for gas switches you'd might want to add artifical stops at switch depth to allow for the gas switch.
Thank you for the explanation! However, since I’m coding a real-time algorithm, I need to account for variations in the GF percentages across different diving profiles. This means I can’t simply use a fixed rule, like setting the deep stop at half the maximum depth, as it wouldn’t adapt to all scenarios, right?

I’m a bit confused about how to dynamically calculate the First Stop Depth in a way that fully integrates the GF percentages (both GF_Low and GF_High). Could you provide or suggest a formula or a step-by-step method that I can implement? Having this would help me ensure the algorithm works consistently for varying dive conditions.

Thank you again for your help!
 
Thank you for the explanation! However, since I’m coding a real-time algorithm, I need to account for variations in the GF percentages across different diving profiles. This means I can’t simply use a fixed rule, like setting the deep stop at half the maximum depth, as it wouldn’t adapt to all scenarios, right?

I’m a bit confused about how to dynamically calculate the First Stop Depth in a way that fully integrates the GF percentages (both GF_Low and GF_High). Could you provide or suggest a formula or a step-by-step method that I can implement? Having this would help me ensure the algorithm works consistently for varying dive conditions.

Thank you again for your help
Heyy, sorry step by step I won't be able to do, but there are open source codes out there to see how others have done.

However, I can help conceptually. You don't need to calculate a "first stop depth". If you have a working code with GF 100/100 then this is simply a series of expotential decay fuctions (16 of them if you're using 16 tissues), the rule is any one of these cannot leed to the M value exceeding what is dictated by GF 100/100 - this dictates your ceiling. This will be a continous depth that is recalulated at whatever your time step/discretising step, but most people round this down to the nearest multiple of 3m and that will be the next stop depth. The first stop is no different, so say you time step is 1s - every second all the parameters (inert gas load, assumed future ascent speed, gas breathing, current depth) will be used to calculate how high you can ascend without hitting the M value, the depth you can get to is your first stop.
 
First ceiling: the depth at which the maximum tissue pressure during the dive crosses the GFLow line. (Check all tissue compartments and take the deepest.) First stop: round the first ceiling up to the next discretized stop depth.
 
https://www.shearwater.com/products/perdix-ai/

Back
Top Bottom