[Math] Calculating by hand a surface gradient factor.

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!

TheScubaPanda

Registered
Messages
68
Reaction score
25
Location
San Francisco
# of dives
200 - 499
I'm working currently on a project about surface gradient factors. Trying to experiment a little with it. I'm currently in a phase where I'm simulating randomly generated dive profiles and I want to track along the dive the Surface Gradient Factor (shorten SFGF later on).

Which is the gradient factor of the Buhlmann algorithm you would have if you were to instantly be on the surface. I find this parameter super interesting and I want to experiment with it.

Problem, I see a lot of articles online explaining Buhlmann algo. But no official data source for the ZHL-16C parameters. I also can't find anywhere an equation on how to "calculate a gradient factor at depth X (which obviously you replace with 1bar/atm at the surface for an SFGF).

I'm not even exactly sure how the tissue compartments m-values shall be calculated. I found a few implementations on github. But no one seems to agree.

Any idea where to find something a bit more "peer-reviewed" and robust computation method.

I think I'm pretty close I'm getting 15min of NDL with 40/70. However I get 20min with 40/85 and it shall be more (shall be 23). So something is off slightly. I'm now trying to understand where I did a mistake 😅

Thanks a lot,
Jonathan
 

Raphus

Contributor
Scuba Instructor
Divemaster
Messages
505
Reaction score
446
Location
Germany
# of dives
200 - 499
I'm working currently on a project about surface gradient factors. Trying to experiment a little with it. I'm currently in a phase where I'm simulating randomly generated dive profiles and I want to track along the dive the Surface Gradient Factor (shorten SFGF later on).

Which is the gradient factor of the Buhlmann algorithm you would have if you were to instantly be on the surface. I find this parameter super interesting and I want to experiment with it.

Problem, I see a lot of articles online explaining Buhlmann algo. But no official data source for the ZHL-16C parameters. I also can't find anywhere an equation on how to "calculate a gradient factor at depth X (which obviously you replace with 1bar/atm at the surface for an SFGF).

I'm not even exactly sure how the tissue compartments m-values shall be calculated. I found a few implementations on github. But no one seems to agree.

Any idea where to find something a bit more "peer-reviewed" and robust computation method.

I think I'm pretty close I'm getting 15min of NDL with 40/70. However I get 20min with 40/85 and it shall be more (shall be 23). So something is off slightly. I'm now trying to understand where I did a mistake 😅

Thanks a lot,
Jonathan
I am very interested, since i was thinking about the same. Didnt find enough i formation. So i didnt start yet.
 

dmaziuk

Contributor
Messages
8,940
Reaction score
5,316
Location
Tanoa
Which implementations disagree? You use Schreiner's formula to calculate gas loading and Buhlmann's formula to calculate the ceiling. Rinse, lather, repeat.

Buhlmann's formula was not designed for non-stop diving so if you want to surface at less than controlling tissue's M-value, you have to run a projection. The simplest way to do it is repeat the above in a loop, adding a minute of exposure on each iteration, until you get a ceiling below the surface. Deco stops are done the same way only you're looking for the ceiling at the next stop -- traditionally spaced at 3 metres or ~.3 atm.

There is no such thing as "surface gradient factor" in Buhlmann's or Baker's writings, you'll have to ask whoever came up with it exactly how they calculate that. Presumably it's the controlling tissue's loading as a % of its surfacing M-value so you have to back-convert Buhlmann's coefficients into Workman's form; see Baker's paper for details.

Buhlmann's coefficients are published in any number of places, "the official source" has never been translated but if you read German, it's called Tauchmedizin.
 

wnissen

Contributor
Messages
963
Reaction score
715
Location
Livermore, Calif.
# of dives
50 - 99
Aren't the actual formulas differential equations? There's no closed form for the diffusion equations that I'm aware of, but I keep meaning to at least derive the tables for altitude diving one day. Good on you for looking into it!
 

dmaziuk

Contributor
Messages
8,940
Reaction score
5,316
Location
Tanoa
Bless you. There is a closed form for a single depth! Assuming no ascent/descent, which is a pretty good assumption for most dives. I am reading with interest.

If you do it literally "by hand", you may find the Haldane's form handy, but in a computer implementation it's easier to code just the Schreiner's form and use it for "flat" segments as well as descent/ascent.
 

EFX

ScubaBoard Supporter
ScubaBoard Supporter
Messages
1,094
Reaction score
737
Location
North Central Florida
# of dives
200 - 499
I'm working currently on a project about surface gradient factors. Trying to experiment a little with it. I'm currently in a phase where I'm simulating randomly generated dive profiles and I want to track along the dive the Surface Gradient Factor (shorten SFGF later on).

Which is the gradient factor of the Buhlmann algorithm you would have if you were to instantly be on the surface. I find this parameter super interesting and I want to experiment with it.

Problem, I see a lot of articles online explaining Buhlmann algo. But no official data source for the ZHL-16C parameters. I also can't find anywhere an equation on how to "calculate a gradient factor at depth X (which obviously you replace with 1bar/atm at the surface for an SFGF).
When you say "calculate a gradient factor" what do you mean? GFLo and GFHi are preselected by the diver and are not calculated. CurGF (or GF99) and SurGF are calculated values, but they are not based on depth. They are based on pressures which are calculated from depths.
I'm not even exactly sure how the tissue compartments m-values shall be calculated. I found a few implementations on github. But no one seems to agree.

Any idea where to find something a bit more "peer-reviewed" and robust computation method.

I think I'm pretty close I'm getting 15min of NDL with 40/70. However I get 20min with 40/85 and it shall be more (shall be 23). So something is off slightly. I'm now trying to understand where I did a mistake 😅

Thanks a lot,
Jonathan
Are you talking about surfacing m-values (M0)? Those are determined by the original researchers and are fixed. Buhlmann and DSAT use different values. Or, are you talking about the tissue compartments pressure at a particular depth which can be compared to the M0 to obtain a CurGF and a SurGF?
 

BlueTrin

PUB newbie
Messages
2,673
Reaction score
1,731
Location
London
# of dives
200 - 499
When you say "calculate a gradient factor" what do you mean? GFLo and GFHi are preselected by the diver and are not calculated. CurGF (or GF99) and SurGF are calculated values, but they are not based on depth. They are based on pressures which are calculated from depths.

Are you talking about surfacing m-values (M0)? Those are determined by the original researchers and are fixed. Buhlmann and DSAT use different values. Or, are you talking about the tissue compartments pressure at a particular depth which can be compared to the M0 to obtain a CurGF and a SurGF?
GFHi and GFLo are limits to the maximum gradient factor during a dive.

He means the current gradient factor at some point during the simulated dive, which is the ratio to the Buhlman m-value line (and ambiant pressure)?

In his original post he meant the current SurfGF, which is the GF if you were to be teleported to the surface I think?

I may have gotten some of the definitions wrong so feel free to correct me. But I think he just wants to write his own implementation of ZHL-16C and display SurfGF for simulated dive profiles.
 
https://www.shearwater.com/products/peregrine/

Top Bottom