Skip to content

Bühlmann ZHL-16C

How the default model builds a ceiling, how the planner decides you may ascend, and what the model does not claim about your body.

Updated View as Markdown

Bühlmann ZHL-16C is a dissolved-gas model: it tracks inert gas going into and out of sixteen theoretical tissue compartments, and permits an ascent whenever every compartment’s loading sits below a limit called its M-value. It is the model behind almost every recreational and technical dive computer, and it is DiveLogic’s default.

Compartments and their limits

Each compartment is defined by a half-time, the time it takes to close half the gap between what it holds and the pressure it is breathing. The fast compartments fill and empty within minutes; the slow ones take most of a day. A short deep dive is governed by the fast ones, the shallow end of a long ascent by the slow ones.

Nitrogen and helium are tracked separately in every compartment, and helium moves several times faster, which is why a trimix dive loads and unloads differently from an air dive of the same profile.

An M-value is the most inert gas a compartment may hold at a given depth before the model stops permitting an ascent. It rises with depth, so it is not one number but a limit that moves as you do. On a mixed gas it is blended in proportion to how much of the compartment’s loading is nitrogen and how much is helium, so the limit follows the mix in your tissue, not the mix in your cylinder.

How the planner decides you may ascend

Turn an M-value around and you have the ceiling: the shallowest depth at which a compartment is still inside its limit. The plan’s ceiling is the deepest of the sixteen, and which compartment sets it changes hands during the ascent.

The rule is the same at every stop: hold until the ceiling has risen past the next stop depth, then go up one stop. The schedule table’s Advanced density carries a Ceiling (m) column, the ceiling at each step, and each stop ends where it clears the depth above.

A 45 m dive for 25 minutes on 21/35, scrolled to the ceiling column
DepthmetresPhaseTimeminutesRuntimeminutesGasppO₂barppN₂barppHebarfO₂%fN₂%fHe%Densityg/LENDmetresCeilingmetresCNS%OTU
Surface
Surface
0
OC 21/35
0
0
45
Descent
3
3
OC 21/35
1.11
2.41
1.92
21
44
35
5.06
21
0
1
45
Level
25
28
OC 21/35
1.16
2.41
1.92
21
44
35
5.06
21
20
12
33
21
Ascent
3
30
OC 21/35
0.69
1.35
1.07
21
44
35
2.85
7
18
12
35
21
Gas switch
31
OC 50%
1.56
1.53
0.00
50
50
0
4.19
10
17
14
37
21
Stop
1
32
OC 50%
1.56
1.53
0.00
50
50
0
4.19
10
15
16
39
12
Ascent
3
35
OC 50%
1.19
1.08
0.00
50
50
0
2.97
4
10
18
43
12
Stop
2
37
OC 50%
1.11
1.08
0.00
50
50
0
2.97
4
9
19
46
9
Ascent
1
38
OC 50%
1.03
0.93
0.00
50
50
0
2.57
2
8
19
47
9
Stop
3
41
OC 50%
0.96
0.93
0.00
50
50
0
2.57
2
7
20
49
6
Ascent
1
42
OC 50%
0.88
0.78
0.00
50
50
0
2.17
0
6
20
50
6
Stop
24
66
OC 50%
0.81
0.78
0.00
50
50
0
2.17
0
1
26
66
0
Ascent
6
72
OC 50%
0.66
0.48
0.00
50
50
0
1.36
0
27
69

Raw ZHL-16C permits an ascent the instant a compartment touches its M-value, with no margin at all. Every margin you dive comes from gradient factors; GF 100/100 is the unmodified model, and the planner will produce it if you ask for it.

What the model does not claim

Bühlmann does not model bubbles. It has no concept of a bubble nucleus, a critical radius, or bubble growth on ascent: loading is either inside the limit or outside it. Deep-stop arguments are arguments about a mechanism this model does not represent.

The compartments are not organs, and the M-values are not a threshold of injury. They are rates and a line drawn where tested exposures were mostly tolerated. Nothing about the diver enters the calculation except depth, time and gas, so the model returns the same schedule whether you are cold, dehydrated, working hard, or none of those.

Next

Navigation

Type to search…

↑↓ navigate↵ selectEsc close