Bühlmann decompression algorithm

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

The Bühlmann decompression algorithm is a mathematical model (algorithm) of the way in which inert gases enter and leave the human body as the ambient pressure changes.[1] Versions are used to create Bühlmann decompression tables and in personal dive computers to compute no-decompression limits and decompression schedules for dives in real-time. These decompression tables allow divers to plan the depth and duration for dives and the required decompression stops.

The algorithm was developed by Swiss physician Dr. Albert A. Bühlmann, who did research into decompression theory at the Laboratory of Hyperbaric Physiology at the University Hospital in Zürich, Switzerland.[2][3] The results of Bühlmann's research that began in 1959 were published in a 1983 German book whose English translation was entitled Decompression-Decompression Sickness.[1] The book was regarded as the most complete public reference on decompression calculations and was used soon after in dive computer algorithms.

The model assumes perfusion limited gas exchange and multiple parallel tissue compartments and uses an inverse exponential model for in-gassing and out-gassing, both of which are assumed to occur in the dissolved phase (without bubble formation).


Building on the previous work of John Scott Haldane and Robert Workman,[4][5] and working off funding from Shell Oil Company,[6] Bühlmann designed studies to establish the longest half-times of nitrogen and helium in human tissues.[1] These studies were confirmed by the Capshell experiments in the Mediterranean Sea in 1966.[6][7]

The basic idea is to represent the human body by multiple tissues (compartments) of different saturation half-times and to calculate the partial pressure of the inert gases in each of the compartments:

with the initial partial pressure , the partial pressure in the breathing gas (minus the vapour pressure of water in the lung of about 60 mbar), the time of exposure and the compartment-specific saturation half-time .

When the gas pressure drops, the compartments start to off-gas. To calculate the minimum tolerable pressure , the constants and , which are derived from the saturation half-time as follows (ZH-L16A):

are used:

Different versions calculate and differently, use different half-times or fewer compartments.

Table of ZH-L16A Half-times with and values for nitrogen (N2) and helium (He).[8][9]
Compartment / min / min
01 004 1.2599 0.5050 001.51 1.7474 0.4245
02 008 1.0000 0.6514 003.02 1.3830 0.5747
03 012.5 0.8618 0.7222 004.72 1.1919 0.6527
04 018.5 0.7562 0.7825 006.99 1.0458 0.7223
05 027 0.6667 0.8125 010.21 0.9220 0.7582
06 038.3 0.5933 0.8434 014.48 0.8205 0.7957
07 054.3 0.5282 0.8693 020.53 0.7305 0.8279
08 077 0.4701 0.8910 029.11 0.6502 0.8553
09 109 0.4187 0.9092 041.2 0.5950 0.8757
10 146 0.3798 0.9222 055.19 0.5545 0.8903
11 187 0.3497 0.9319 070.69 0.5333 0.8997
12 239 0.3223 0.9403 090.34 0.5189 0.9073
13 305 0.2971 0.9477 115.29 0.5181 0.9122
14 390 0.2737 0.9544 147.42 0.5176 0.9171
15 498 0.2523 0.9602 188.24 0.5172 0.9217
16 635 0.2327 0.9653 240.03 0.5119 0.9267


Several versions of the Bühlmann algorithm have been developed, both by Bühlmann and by later workers. The naming convention used to identify the algorithms is a code starting ZH-L, from Zürich (ZH), limits (L) followed by the number of tissue compartments, and other unique identifiers. For example:

  • ZHL-16 or ZH-L16A: The original 16-compartment algorithm (no conservatism at all).
  • ZHL-16B: The 16-compartment algorithm modified for dive table production, using slightly more conservative “a” values, mainly in the middle compartments.[8] Recently used in dive computers with high performance processor units, it is more flexible (especially in tech dives) compared to the ZHL16C
  • ZHL-16C: The 16-compartment algorithm with further modification to the middle and faster “a” values, intended for use in dive computers as a "package". It can be used with almost all low-level processor units but it is less flexible compared to the ZHL16B.
  • ZHL-16 ADT DD: 16-compartment adaptive model used by Uwatec for their trimix-enabled computers. Modified in the middle compartments from the original ZHL-C, is adaptive to diver workload and includes Profile-Determined Intermediate Stops. Profile modification is by means of "MB Levels", personal option conservatism settings, which are not defined in the manual.[10]
  • ZHL-12: [11]
  • ZHL-8: A version using a reduced number of tissue compartments to reduce the computational load for personal dive computers.
  • ZHL-8 ADT: 8-compartment adaptive model used by Uwatec. This model may reduce the no-stop limit or require the diver to complete a compensatory decompression stop after an ascent rate violation, high work level during the dive, or low water temperature. This algorithm is used in computers which can accurately monitor air consumption and instantaneous rate of air consumption to model work load (exertion) via changes in the rate of gas consumption, which allows plausible modelling of additional decompression obligation based on exertion at depth. It also monitors ambient temperature and selects the choice of risk tissue accordingly. This results in earlier and longer decompression requirements in colder water.[12][13]
  • ZHL-8 ADT MB: A version of the ZHL-8 ADT claimed to suppress MicroBubble formation.[12]
  • ZHL-8 ADT MB PDIS: Profile-Determined Intermediate Stops.[14]
  • ZHL-8 ADT MB PMG: Predictive Multi-Gas.[citation needed]

Ascent rates[edit]

Ascent rate is intrinsically a variable, and may be selected by the programmer or user for table generation or simulations, and measured as real-time input in dive computer applications.

The rate of ascent to the first stop is limited to 3 bar per minute for compartments 1 to 5, 2 bar per minute for compartments 6 and 7, and 1 bar per minute for compartments 8 to 16. Chamber decompression may be continuous, or if stops are preferred they may be done at intervals of 1 or 3 m.[11]

Gradient factors[edit]

User input of gradient factors is sometimes available for planning and real time applications.[15]


Max Hahn first used Bühlmann's algorithm to develop dive tables for the Swiss Underwater Sport Association. In 1987, the SAA Bühlmann System was developed by Bob Cole. This system used the dive tables and a set of rules so that people could dive safely and stay below their no-decompression limit.[16] The tables are still used today and are very popular; many dive computers still use the ZHL-8 algorithm and many tables are based on the ZHL-16 algorithm or derivatives. These calculations also include considerations for repetitive and altitude diving.[1][17][18][19][20][21]


  1. ^ a b c d Bühlmann, Albert A. (1984). Decompression-Decompression Sickness. Berlin New York: Springer-Verlag. ISBN 0-387-13308-9.
  2. ^ Bühlmann, Albert A. (1982). "[Experimental principles of risk-free decompression following hyperbaric exposure. 20 years of applied decompression research in Zurich]". Schweizerische Medizinische Wochenschrift (in German). 112 (2): 48–59. PMID 7071573.
  3. ^ Wendling, J; Nussberger, P; Schenk, B (1999). "Milestones of the deep diving research laboratory Zurich". South Pacific Underwater Medicine Society Journal. 29 (2). ISSN 0813-1988. OCLC 16986801. Archived from the original on 2012-02-03. Retrieved 2009-04-02.{{cite journal}}: CS1 maint: unfit URL (link)
  4. ^ Boycott, A.E.; Damant, G.C.C.; Haldane, John Scott (1908). "Prevention of compressed air illness". Journal of Hygiene. Cambridge University Press. 8 (3): 342–443. doi:10.1017/S0022172400003399. PMC 2167126. PMID 20474365. Archived from the original on 2011-03-24. Retrieved 2009-06-12.{{cite journal}}: CS1 maint: unfit URL (link)
  5. ^ Workman, Robert D. (1957). "Calculation of air saturation decompression tables". Navy Experimental Diving Unit Technical Report. NEDU-RR-11-57. Archived from the original on 2011-09-18. Retrieved 2009-06-12.{{cite journal}}: CS1 maint: unfit URL (link)
  6. ^ a b Völlm, Ernst B.; Götte, Georg (1994). "Leading diving researcher dies unexpectedly: Albert A Bühlmann, 1923 - 1994". Pressure, Newsletter of the Undersea and Hyperbaric Medical Society. 23 (3): 1–3. ISSN 0889-0242.
  7. ^ Bühlmann, Albert A.; Frei, P.; Keller, Hannes (October 1967). "Saturation and desaturation with N2 and He at 4 atm". Journal of Applied Physiology. 23 (4): 458–62. doi:10.1152/jappl.1967.23.4.458. PMID 6053671.
  8. ^ a b Chapman, Paul. "An explanation Professor A A Buhlmann's ZH-L16 Algorithm" (PDF). Retrieved 28 July 2022 – via Pambucol, Vlad, (25 June 2002) "Dive Computers", Annex 1, pages 46-54, DiveCon project 6/25/02.
  9. ^ Bühlmann, A.A.; Völlm, E.B.; Nussberger, P. (2002). Tauchmedizin (in German). Springer-Verlag. doi:10.1007/978-3-642-55939-6. ISBN 978-3-642-55939-6.
  10. ^ Technical diving software for Galilio: User manual (PDF). Scubapro. Retrieved 18 September 2019.
  11. ^ a b Bühlmann, A.A. (1984). Decompression - Decompression Sickness. Springer -Verlag. doi:10.1007/978-3-662-02409-6. ISBN 978-3-662-02409-6.
  12. ^ a b Staff. "Smart microbubble management" (PDF). In Depth. Uwatec. Retrieved 12 March 2016.
  13. ^ Marroni, A; Cali Corleo, R; Balestra, C; Longobardi, P; Voellm, E; Pieri, M; Pepoli, R (2000). "Effects of the variation of Ascent Speed and Profile on the production of Circulating Venous Gas Emboli and the Incidence of DCI in Compressed Air Diving. Phase 1. Introduction of extra deep stops in the ascent profile without changing the original ascent rates. DSL Special Project 01/2000" (PDF). Divers Alert Network. Retrieved 12 March 2016.
  14. ^ Staff. "Diving with PDIS (Profile-Dependent Intermediate Stop)" (PDF). Dykkercentret website. Frederiksberg: Dykkercentret ApS. Archived from the original (PDF) on 17 October 2016. Retrieved 5 March 2016.
  15. ^ "Perdix AI operating instructions" (PDF). Shearwater. Retrieved 10 October 2019.
  16. ^ Powell, Mark (2008). Deco for Divers. Southend-on-Sea: Aquapress. p. 18. ISBN 978-1-905492-07-7.
  17. ^ Bühlmann, Albert A. (1987). "Decompression after repeated dives". Undersea Biomedical Research. 14 (1): 59–66. ISSN 0093-5387. OCLC 2068005. PMID 3810993. Archived from the original on July 7, 2012. Retrieved 2008-04-25.{{cite journal}}: CS1 maint: unfit URL (link)
  18. ^ Böni, M; Schibli, R; Nussberger, P; Bühlmann, Albert A (1976). "Diving at diminished atmospheric pressure: air decompression tables for different altitudes". Undersea Biomedical Research. 3 (3): 189–204. ISSN 0093-5387. OCLC 2068005. PMID 969023. Archived from the original on July 8, 2012. Retrieved 2008-04-24.{{cite journal}}: CS1 maint: unfit URL (link)
  19. ^ Bühlmann, Albert A.; Schibli, R.; Gehring, H. (March 1973). "[Experimental studies on decompression following diving in mountain lakes at reduced air pressure]". Schweizerische Medizinische Wochenschrift (in German). 103 (10): 378–83. PMID 4144210.
  20. ^ Bühlmann, Albert A. (1989). "[Decompression problems in diving in mountain lakes]". Schweizerische Zeitschrift für Sportmedizin (in French). 37 (2): 80–3, discussion 99–102. PMID 2799365.
  21. ^ Bühlmann, Albert A. (1984). "[Decompression during lowered air pressure]". Schweizerische Medizinische Wochenschrift (in German). 114 (26): 942–7. PMID 6087447.

Further reading[edit]

  • Keller, Hannes; Bühlmann, Albert A (November 1965). "Deep diving and short decompression by breathing mixed gases". Journal of Applied Physiology. 20 (6): 1267–70. doi:10.1152/jappl.1965.20.6.1267.
  • Bühlmann, Albert A (1992). Tauchmedizin: Barotrauma Gasembolie Dekompression Dekompressionskrankheit (in German). Berlin: Springer-Verlag. ISBN 3-540-55581-1.
  • Bühlmann, Albert A (1995). Tauchmedizin (in German). Berlin: Springer-Verlag. ISBN 3-540-55581-1.

External links[edit]

Many articles on the Bühlmann tables are available on the web.