VPM-B: Wie funktioniert’s (deutsche Übersetzung)

Dies ist der erste technische Post darüber, wie VPM-B funktioniert. Ich werde nur den Algorithmus beschrieben (mit allen wichtigen Formeln, einige davon vielleicht  in ungewohnter Form), während die physikalische Herleitung in einem späteren Post behandelt werden wird. 

Ich werde nicht versuchen, die ursprüngliche Herleitung nachzubeten (auch schon alleine, weil ich sie nicht wirklich verstehe), sondern vielmehr beschreiben, was ich durch langes Starren auf unsere Implementierung des Modells in Subsurface gelernt habe. Wie vorher schon erklärt haben wir versucht eine unabhängige Neuimplementierung zu machen, haben aber natürlich sicher gestellt, dass die Austauschpläne des ursprünglichen FORTRAN-Programms reproduziert werden. Dieses haben wir letztendlich als die Definition von VPM-B hergenommen.

Zunächst ist dieses dem Bühlmannmodell sehr ähnlich und baut darauf auf. Für diesen Post nehme ich an, dass dieses bekannt ist (falls nicht habe ich hier mal eine kurze Zusammenfassung aufgeschrieben). Insbesondere werden die Sättigungen der verschiedenen Gewebe mit Inertgasen mit der gleichen einfachen Diffusionsgleichung beschrieben:

$$\frac{dp_i}{dt} = \alpha_i(p_{amb}-p_i)$$

wobei die Zeitkonstante \(\alpha_i\) im wesentlichen der Kehrwert der Halbwertzeit des Gewebes ist. 

Der einzige Unterschied besteht darin, wie die Ceiling (die momentan minimal erlaubte Tiefe) aus den Gewebesaettigungen \(p_i\) berechnet wird: Bühlmann verwendet einen affine Zusammenhang mit dem Umgebungsdruck (die Geradengleichung wird durch die gekannten \(a\) und \(b\) Koeffizienten parametrisiert. Verwendet man Gradientenfaktoren, die wird Geradengleichung noch weiter modifiziert (abhängig von der maximalen Ceiling, aber die Ceiling, geplottet als Funktion von  \(p_i\) bleibt eine Gerade, ist also affin).

Für VPM-B ist dies anders: Nur in der nullten Näherung bleibt es eine Gerade: In der Tat wird die Ceiling einfach durch einen konstanten Gradienten (die Differenz zwischen Umgebungsdruck und Gewebedruck) gegeben, dieser ist sogar von der Tiefe unabhängig:

$$p_{amb} – p_i \le G_{0,i}.$$

Dieser Gradient wird als Anfangsgradient  \(G_0\) bezeichnet. In dieser Näherung verhält sich VPM-B genau wie ein Buehlmannmodell mit modifizierten a und b Koeffizienten.

Für die nächste Näherung, die “Boyle-Kompensation” müssen wir etwas über Blasen wissen. Alles, was wir brauchen, ist, dass diese eine Oberfläche haben und dass die Oberfläche zur Gesamtenergie proportional zu ihrer Fläche beiträgt:

$$E_{surf}= \gamma r^2$$

für eine Blase mit Radius \(r\) (wir können numerische Faktoren wie \(4\pi\) in der Proportionalitätskonstantante \(\gamma\) absorbieren). Die Kraft auf die Oberfläche, die diese zu verkleinern sucht, ist dann

$$F_{surf} = \frac{\partial E_{surf}}{\partial r} = 2\gamma r.$$

Diese Kraft wirkt auf die gesamte Fläche, teilen wir durch den Flächeninhalte erhalten wir einen Beitrag zum Druck in der Blase:

$$G=\frac{2\gamma}r.$$

Derartige Formeln, bei denen eine Blasenoberfläche  \(2\gamma/r\) zum Druck beiträgt, werden im Folgenden immer wieder auftauchen.

Insbesondere zu dem Zeitpunkt im Tauchgang mit der tiefsten Ceiling ist der Gradient \(G_0\) genau dies. “Boyle-Kompensation” bedeutet, dass der von nun an tiefenabhängige Gradient (also der Umgebungsdruck minus Gewebedruck) dadurch gegeben ist, dass man eine Blase nach dem Boyle-Marriott-Gesetz expandieren lässt, also dass man annimmt, dass \(pV\) konstant ist. \(p\) im Inneren der Blase (was nach dem Modell mit dem Gewebedruck gleich ist) wird dann berechnet als der Umgebungsdruck plus dem momentanen maximalen Gradienten. Das Volumen der Blase ist proportional zu \(r^3\) und dies ist nach der obigen Formel proportional zu \(1/G^3\). Alles in allem ist die erlaubte Differenz zwischen Gewebe- und Umgebungsdruck in der Tiefe \(d\) gegeben durch die Lösung von

$$\frac{G+p(d)}{G^3} = \frac {G_0+p_{1st\ ceiling}}{G_0^3}.$$

Folglich ist der der maximale Gradient keine Gerade mehr, sondern die Lösung einer kubischen Gleichung (für die wir in Subsurface auch einen analytischen Ausdruck verwenden statt wie im Originalcode eine Nullstellensuche mittels Newtonverfahren zu veranstalten).

 

Ich habe noch nicht erklärt, wie der Anfangsgradient \(G_0\) berechnet wird. Für VPM-B lautet der Ausdruck dafür

$$G_0 = 2 \frac\gamma{\gamma_c} \frac {\gamma_c – \gamma}{r_{reg}}.$$

Hier ist  \(r_{reg}\) der “Crushing-Radius”, der sich mittels

$$\frac{2(\gamma_c-\gamma)}{r_{reg}} = p_{max} + \frac{2(\gamma_c-\gamma)}{r_{crit}}$$

aus der Oberflächenspannung der Blase berechnen lässt.

Hier wiederum sind  \(\gamma\) und \(\gamma_c\) Oberflächenspannungen (am Ende: Modellparameter), ebenso wie \(r_{crit}\). Letzteres ist der Parameter, an dem man den Konservatismus des Modells einstellen kann: Jede zusätzliche Konservatismusstufe (zum Beispiel VPM-B+3) erhöht \(r_{crit}\) um 5 Prozent.  \(p_{max}\) ist das Maximum des Umgebungsdrucks während des Tauchgangs. Im Prinzip soll man diesen auch wieder exponentiell  an  \(r_{crit}\) angleichen; dies kann man aber getrost ignorieren, da die Halbwertzeit von zwei Wochen viel länger als alle relevanten Zeitskalen eines Tauchgangs sind.

Jetzt haben wir alles, was wir brauchen, um eine Deko-Profil zu berechnen: Für jede Tiefe kennen wir wie im Buhlmann-Modell den maximal erlaubten Überdruck.

Es stellt sich heraus, dass die so erhaltenen Dekoprofile viel zu lange dauern. Hier kommt der “Kritische-Volumen-Algorithmus” ins Spiel. Wir erhöhen leicht den Anfangsgradienten (bisher war das \(G_0\) und unterwerfen den dann ebenso der Boyle-Korrektur.

Die Idee dabei ist, dass der Körper eine bestimmte zusätzliche Menge an Gas in Blasenform verträgt. Dieses erlaubte Volumen ist wiederum ein Modellparameter und wird mit einem wie folgt für einen Anfangsgradienten \(G_0′\) berechnet: Es wird angenommen, dass es vor dem Tauchgang eine bestimmte Verteilung der Blasenzahl abhängig von ihrer Größe im Körper gibt. Dadurch, dass der Anfangsgradient von \(G_0\) auf \(G_0′\) erhöht wird, erhöht sich die Zahl der wachsenden Blasen (generell wachsen grosse Blasen, da bei ihnen der Druckanteil durch die Oberflächenspannung kleiner ist, siehe oben, während kleine schrumpfen). Die Zahl der zusätzlich wachsenden Blasen ist dann in linearer Näherung proportional zu (und dies ist einer der Orte, wo ich die Herleitung nicht verstehe, aber verwenden wir den Ausdruck trotzdem):

$$\frac{G_0′-G_0}{G_0′-\alpha G_{crush}}.$$

 

Hier ist  \(\alpha\) ein weiterer Modellparameter und  \(G_{crush}\) ist der maximale Überdruck des Umgebungsdrucks zum Gewebedruck während des Tauchgangs und nach den Regeln des Modells ebenso der maximale Unterschied zwischen dem Innen- und dem Außendruck einer Blase (wenn dieser zu groß ist, kommen wir ins “nichtpermeable Regime” und man wendet eine weitere Boyle-Kompensation an).

Eine weiter Annahme ist, dass die Rate mit der Gas in die Gasphase in Blasen geht, proportional zum Gradienten \(G_0′\) ist (die erfolgte Boyle-Compensation fällt hier unter den Tisch). Da man also annimmt, dass der Gradient während der Deko (definiert als die Zeit, zwischen dem Zeitpunkt, bei dem das erste Gewebe beginnt, den Gewebedruck wieder abzubauen bis zum Erreichen der Oberfläche) konstant ist, multiplizieren wir den Gradienten mit der Dekozeit (dies ist die Zeit \(t_D\) die wir oben berechnet haben, als wir den Dekoplan aus den Gradienten berechnet haben).

Sobald wir die Oberfläche erreichen, gibt es immer noch einen Überdruck im Gewebe, zunächst \(G_0′\) (wiederum wird die Boyle-Kompensation unterschlagen) und im Folgenden fällt dieser exponentiell entsprechend der obigen Diffusionsgleichung auf 0. Somit ist das Zeit-Integral des Gradienten an der Oberfläche \(G_0’/\alpha_i\). Nimmt man alles zusammen, ist das Kriterium für den neuen Gradienten \(G_0′\)

$$V\ge \frac{G_0′-G_0}{G_0′-\alpha G_{crush}} G_0′ \left(t_D +\frac 1{\alpha_i}\right)$$

Dies löst man nach \(G_0′\) auf, was dann für einen neuen Dekoplan benutzt wird, der wiederum ein neues \(t_D\) ergibt. Dieses Verfahren wiederholt man, bis sich \(G_0′\) nicht mehr ändert.

Bis auf etwas Kleingedrucktes (wie etwa wie der Dekoplan aus dem Gradienten im Detail berechnet wird) ist dies der gesamte VPM-B Algorithmus. Mit diesen Informationen kann man ihn im Prinzip selber implementieren.

In einem zukünftigen Post plane ich dann die Physik anzusehen, die aufgerufen wird, um die hier verwendeten Gleichungen herzuleiten.

VPM-B Gradients as Gradient factors

In a comment, Rick suggested that given that in the end, VPM-B computes depth dependent maximal gradients, one could compare those to the depth dependent gradients computed from the Buehlmann model and expressed as gradient factors (i.e. as percentage of the gradient of a plain vanilla Buehlmann gradient). Here is what I found when I did this.

 

For concreteness, I computed deco schedules with Subsurface for a dive to 120m leaving the bottom at runtime 20min with TMX18/50 (yes, I know this is far too much pO2, but for deco that does not matter), EAN50 and EAN100. For some reason, my ascent speeds are set to 9m/min up to 75% average depth, then 6m/min up to 6m and 1m/min for the final ascent. With Bühlmann with GF 30/80, I obtain a plan that reaches the surface at a runtime of 188min while for VPM-B+1 it takes only 141min.

Actually, I patched subsurface a little bit (see this branch on github) that, during deco, it prints out the allowed gradient for all tissues at all deco stops. This output I ran thru a mathematica notebook  to produce these plots:

 

On the x-axis, we have depth in meters while on the y-axis, we have the current gradient factor. The different colored dots are the different tissues (red being those with the shortest halft-time) with the thick dot indicating the leading tissue, i.e. the tissue that is causing the current stop.

The first diagram is Bühlmann while the second is VPM-B.

A few remarks are in order: First, why is Bühlmann not a single line from GF 30 to GF 40? This is because of the way I compute things: The exact Bühlmann a and b coefficients depend on the gas mixture currently in the tissue. In addition, what is actually computed is the maximal ambient pressure at the ceiling (which is the current depth only for the leading tissue) for that tissue and the gradient I plot is the difference between that and the current ambient pressure. So this is not exactly the right thing for tissues that are not leading. But still we see, it is a nice band of values and they all nicely move between 30% and 80%.

For the VPM-B plot, on the other hand, we see that the variation within a tissue is much less but the gradient factor varies a lot more between tissues. After all, the actual variation in gradient factor with depth comes about mainly because the leading tissue is changing and much less from the cubic curve that implements the Boyle compensation.

The other thing that is striking is the scale: At the last deco stop, the effective gradient factor is 124% for the leading tissue (while for some slower ones it is as high 180% (which never matters as that tissue never leads). In fact, a Bühlmann plan with GF 20/125 leads to a very similar profile.

Here are the actual profiles: First, Bühlmann GF 30/80

Depth

Duration

Runtime

Gas

120m 7min 7min (18/50)
120m 13min 20min
51m 9min 29min
51m 2min 31min
48m 1min 32min
48m 1min 32min
45m 1min 33min
45m 2min 34min
42m 1min 35min
42m 2min 36min
39m 1min 37min
39m 4min 40min
36m 1min 41min
36m 3min 43min
33m 1min 44min
33m 4min 47min
30m 1min 48min
30m 6min 53min
27m 1min 54min
27m 6min 59min
24m 1min 60min
24m 10min 69min
21m 1min 70min
21m 5min 74min EAN50
18m 1min 75min
18m 7min 81min
15m 1min 82min
15m 8min 89min
12m 1min 90min
12m 13min 102min
9m 1min 103min
9m 20min 122min
6m 1min 123min
6m 20min 142min EAN100
3m 3min 145min
3m 40min 185min
0m 3min 188min

Then VPM-B+1: 

Depth

Duration

Runtime

Gas

120m 7min 7min (18/50)
120m 13min 20min
63m 7min 27min
63m 1min 28min
57m 1min 29min
57m 1min 30min
54m 1min 31min
54m 1min 31min
51m 1min 32min
51m 2min 33min
48m 1min 34min
48m 1min 34min
45m 1min 35min
45m 2min 36min
42m 1min 37min
42m 2min 38min
39m 1min 39min
39m 3min 41min
36m 1min 42min
36m 3min 44min
33m 1min 45min
33m 3min 47min
30m 1min 48min
30m 4min 51min
27m 1min 52min
27m 5min 56min
24m 1min 57min
24m 7min 63min
21m 1min 64min
21m 4min 67min EAN50
18m 1min 68min
18m 5min 72min
15m 1min 73min
15m 6min 78min
12m 1min 79min
12m 8min 86min
9m 1min 87min
9m 12min 98min
6m 1min 99min
6m 15min 113min EAN100
3m 3min 116min
3m 22min 138min
0m 3min 141min

Finally Bühlmann 20/125:

Depth

Duration

Runtime

Gas

120m 7min 7min (18/50)
120m 13min 20min
54m 8min 28min
54m 1min 29min
51m 1min 30min
51m 2min 31min
48m 1min 32min
48m 1min 32min
45m 1min 33min
45m 2min 34min
42m 1min 35min
42m 2min 36min
39m 1min 37min
39m 2min 38min
36m 1min 39min
36m 3min 41min
33m 1min 42min
33m 3min 44min
30m 1min 45min
30m 5min 49min
27m 1min 50min
27m 5min 54min
24m 1min 55min
24m 6min 60min
21m 1min 61min
21m 4min 64min EAN50
18m 1min 65min
18m 4min 68min
15m 1min 69min
15m 7min 75min
12m 1min 76min
12m 8min 83min
9m 1min 84min
9m 13min 96min
6m 1min 97min
6m 12min 108min EAN100
3m 3min 111min
3m 21min 132min
0m 3min 135min

Shortening deco by diving deeper

In VPM-B you can shorten your deco by doing another dive before.  Sounds crazy? But this is what this model predicts as I recently learned from Subsurface user who thought he was reporting a bug. To be concrete, let’s plan an air dive to 40m with 30min bottom time (just for concreteness, maybe this is not the optimal gas choice but let’s keep things simple, the argument does not depend on this). With conservatism +2 we get the following plan
<
Runtime: 93min

depth

duration

runtime

gas

40m 2min 2min air
40m 28min 30min
18m 6min 36min
15m 4min 40min
12m 6min 46min
9m 8min 54min
6m 13min 67min
3m 23min 90min
0m 3min 93min

But then add a 60m for 30m dive a bit less than two days (this is the limit that Subsurface considers two dives “repetitive diving”) before and you get:

Subsurface dive plan (surface interval 44:00)
Runtime: 78min

depth

duration

runtime

gas

40m 2min 2min air
40m 28min 30min
15m 8min 38min
12m 5min 43min
9m 6min 49min
6m 9min 58min
3m 17min 75min
0m 3min 78min

So, you get out of the water 15 minutes earlier! From the point of view of a Bühlmann-type model this sounds totally ridiculous: You would think that the effect of the previous dive is to add inert gas saturation to your tissues and indeed, even for VPM-B that is the case, but the consequences are opposite. The reason is that the previous dive sets the “maximal crushing pressure” and thus the “crushing radius” at the deepest point of the dive. And, as you know from a previous post, this enters the maximal gradient (at least the initial one) that VPM-B will allow you: Translated into gradient factors, without previous dive, Subsurface computes effective GFs as 24/71 versus as a second dive 26/92.

I was even more surprised that in the VPM-B literature this is considered a feature rather than a bug of the model: The previous dive pre-compresses the bubbles and thus they are less dangerous (or something like this). See the very last paragraph of this article.

Actually, to see this behaviour in Subsurface, you cannot use the latest version (or you have to comment out  the lines
for (ci = 0; ci < 16; ci++) {
max_n2_crushing_pressure[ci] = 0.0;
max_he_crushing_pressure[ci] = 0.0;
}

in the function clear_vpmb_state() in deco.c as I did)  as we decided this is too odd and rather opted for the more conservative option to reset the crushing pressure between dives. But that of course poses the question “What is exactly ‘between dives’?”. Is a short visit to the surface starting a second dive and thus magically resetting the state of bubbles in your body?

And of course the underlying question remains (until somebody does an empirical study): Can you really shorten the deco time by pre-compressing the diver?

It doesn’t even have to be a separate dive. According to VPM-B, I can bounce to 60m and immediately return back to 40m and then I get the benefit of shorter deco (compared to the version of the dive where I stayed at 40m):

Runtime: 79min

depth

duration

runtime

gas

60m 3min 3min air
40m 2min 5min
40m 25min 30min
15m 8min 38min
12m 5min 43min
9m 6min 49min
6m 10min 59min
3m 17min 76min
0m 3min 79min

Ratio Deco – is it nonsense?

[This is a post by Rick Walsh but this information got lost when this blog moved to a new server.]

When I mentioned to one of my dive buddies I was considering taking a GUE Tech 1 course, his response was “I wouldn’t trust that ratio deco crud”. Another explained calculating ratio deco by: average the depth of your dive; double it; add the last two digits of the serial number of your bottom timer; divide by the number of divers in your team, which is always three; then subtract the number you first started with.

For better or worse, there is a perception among many of us non-DIR (or not yet DIR) decompression divers that ratio deco is dangerous voodoo that should be avoided. But could it be justified?

Let me state now that I have no training in ratio deco, have never used it myself, and I am not advocating its use. If you are interested in applying it to your diving, I encourage you to take a course that covers it and how and when it can be used, and most importantly its limitations. Do not take reading something on the internet as a substitute for appropriate training. This post is intended to discuss the concept of ratio deco far more than the practice. I mention GUE, but the concept applies just as well to other versions of “ratio deco”.

What is Ratio Deco?
Ratio deco is a method for calculating or adjusting a dive decompression profile, which does not require referring to a decompression dive computer, tables or software. As such, the plan can be adjusted or re-calculated on-the-fly during the dive without relying on a dive computer’s decompression calculations.

To many, that sounds too good to be true. Almost all decompression software, dive computers and tables in current use are based on Buhlmann or VPM-B decompression models or some varient thereof. These models have received theoretical and real-life testing, include calculation for sixteen different theoretical tissues, and permit unlimited combinations of dive depths, durations, breathing gasses. Surely this cannot be replaced by a new decompression model calculated on-the-fly by the diver.

In science, engineering, medicine, and many other disciplines, there are countless complicated mathematical models that cannot be generalized by a simple function. However, by controlling some variables, the relationship between others become simplified. It is possible to use linear approximations for non-linear functions over limited ranges with acceptable levels of accuracy.

In reality, ratio deco is not a decompression model. Rather it is a series of approximate relationships and trends that can be observed from ascent schedules calculated using existing models. Searching the internet suggests GUE Ratio Deco is derived from either VPM-B with +2 conservatism, or Buhlmann with approximately 30/85 gradient factors. Either way, it is attempting to replicate a bubble model profile, so comparing it to VPM-B +2 is justifiable.

Whether bubble models generally, or VPM-B specificaly, are the best choice of decompression model is another topic or much debate. But if we think of ratio deco as an approximation of VPM-B used within set limits, the concept is not so radical.

Simplifying a complex model
What variables can be controlled that would permit the simplification of a decompression model?
– Bottom gas
– Decompression gasses
– Ascent and descent rates

GUE and related organizations have adopted standard gas mixes, selected according to dive depth, and have standard ascent and descent rates. With these known, for a set depth and over a limited range in duration, it should be possible to find a linear approximation of the relationship between bottom time and decompression time.

Example profiles
An internet search for “Ratio Deco” brings up a number of hits, including a Team Foxturd blog post. The post gives a procedure for using ratio deco in line with GUE Tech 1 practice. Adopting a bottom gas of either 21/35 or 18/45 trimix, and deco gas of 50% nitrox, the ratio of bottom time to deco time for a 45m dive is given as 1:1. For dives in the 30-48m depth range, the deco time should be adjusted by 5min per 3m depth greater or less than 45m. For example, a 25 minute bottom time at 48m would result in a deco time of 25min (1:1 ratio) + 5min (+3m depth adjustment) = 30min. For a 30min bottom time at 38m, the deco time would be 30min (1:1 ratio) – 10min (-6m depth adjustment) = 20min. GUE Tech 1 limits dives to 30 minutes planned decompression, so implicitly this approximation is applicable within this limit.

Of course, there is more to the decompression profile than the decompression time. Common to both Buhlmann and VPM-B models, a typical ascent profile comprises an initial ascent off the bottom up to the first stop, followed by a series of decompression stops and a final ascent to the surface from the last stop at 3m or 6m. The Team Foxturd blog post divides the ascent into portions:
(a) ascend from the bottom to 80% of the bottom ambient pressure (approximately three quarters of bottom depth) at 9m/min
(b) slow ascent rate to 6m/min to allow “deep stops” to clear while ascending to the gas change and start of “intermediate stops” at 21m
(c) spend the first half the calculated deco time on the “intermediate stops” (the 21m to 9m stops, inclusive), with each stop of approximately equal duration
(d) spend the second half of the calculated deco time at the 6m “shallow stop”
(e) ascend to surface at 1m/min

These steps are annotated in Figures 1 and 2. Figure 1 is the profile calculated using Ratio Deco as outlined by Team Foxturd for a 30min bottom time at 45m using 21/35 trimix bottom gas and 50% nitrox deco gas, while Figure 2 is a VPM-B +2 decompression profile calculated in Subsurface for the same bottom time and depth. The VPM-B +2 ceiling is plotted in green in both figures. The Ratio Deco profile spends slightly longer in the “intermediate stops” and slightly less time in the “shallow stop”, but the profiles are quite similar, and importantly the ratio deco profile does not break the ceiling +2. In both instances, the ceiling clears by the end of the 6m stop (end of deco time as defined above), so ascending to the surface over 6 minutes provides an extra buffer.

Figures 3 and 4 compare the bottom time to the deco time for VPM-B +2 dives to 45m and 51m, respectively, using 21/35 or 18/45 trimix bottom gas and 50% nitrox decompression gas. As described above, deco time is taken as the time from the first stop until leaving the 6m stop. It does not include the time to ascend from the bottom to the first stop, or the 6 minutes to ascend at 1m/min from the 6m stop to the surface. For comparison, the 1:1 ratio line is plotted on the 45m plot, and the 1:1 ratio plus 10 minutes (5 minutes per 3m increments beyond 45m) line is plotted on the 51m plot. So to is a line at 1:1 (or 1:1 + 10 minutes) ratio plus 6 minutes, representing the surfacing time, which is when the ceiling must have cleared so as not to be broken.

Figure 3 shows that for a 45m dive, the 1:1 bottom time to deco time ratio provides a good approximation when using 21/35 trimix bottom gas, up to about 35 minute bottom time. Beyond this the decompression time increases, diverging away from the 1:1 ratio. However, the 6 minutes taken to surface from the last stop provides some buffer, so for dives using 21/35 trimix, the ratio might be used up to about 50 minute bottom time without breaking the VPM-B +2 ceiling. Compared to 21/35, 18/45 trimix includes a greater portion of inert gas, so it is not surprising that decompression time is increased when using 18/45 trimix bottom gas. But for dives with bottom time up to 30 minutes, the 6 minutes surfacing time provides enough of a buffer that the VPM-B +2 ceiling might not be broken.

Figure 4 shows that for a 51m dive, the 1:1 + 10 minutes bottom time to deco time ratio is a poor fit. To be clear, this is beyond the specified depth range (maximum 48m) in the Team Foxturd post. It is more conservative than VPM-B for shorter bottom times and more aggressive for longer bottom times. However, up to 30 minute bottom time, the 6 minutes surfacing time provides enough of a buffer that the VPM-B +2 ceiling might not be broken when using either 21/35 or 18/45 trimix bottom gas.

Another way to compare ratio deco ascent schedule to the VPM-B model is to enter the ratio deco profile into Subsurface as a dive and see if the VPM-B +2 ceiling is broken at any point. If the ceiling is not broken, the profile is acceptable according to the model, and if the ceiling is broken the profile does not comply with the model. Where the ceiling is broken is also relevant. Some divers would excuse spending a minute or two just above a deep stop ceiling calculated with a bubble model like VPM-B (which calculate much deeper ceilings early in the ascent than a conventional Buhlmann model), so long as the time was minimal. Such a case is illustrated in Figure 5, which shows a 51m dive with 35 minute bottom time using 18/45 trimix bottom gas and 50% nitrox for decompression. Surfacing before the ceiling had cleared, such as illustrated by Figure 6 for a 45m dive with 60 minute bottom time, would be considered more risky.

Figures 7 and 8 plot the total runtime for profiles calculated using the ratio deco method outlined by Team Foxturd according to bottom time for 45m and 51m dives (noting that 51m exceeds the depth limit given), respectively. Also plotted are the runtimes when the VPM-B +2 ceiling clears, calculated by entering the ratio deco profile into Subsurface. For instances when it took longer than the total dive time for the ceiling to clear, the time to clear was determined by extending the final stop as long as necessary.

These figures show that for 45m and 51m dives with bottom time up to 35 minutes, the VPM-B +2 ceiling clears before surfacing in accordance with the ratio deco profile, when either 21/35 or 18/45 trimix bottom gas is used. However, brief breaches of the deep stop ceiling occurred when using 18/45 for 30 or 35 minute bottom time. For 40-45 minute bottom time, the ceiling clears just before or just after calculated ratio deco surface time and the deep stop ceiling is also breached. For bottom times exceeding 45 minutes, the ratio becomes increasingly unsatisfactory and risky.

Summary
The above examples demonstrate that it is possible to develop a approximation of a decompression model that provides a reasonable fit over a limited range of depths, bottom times and breathing gasses. Going beyond these limits the approximation starts to fall apart. Undoubtedly there exists, or could be created, approximations that are reasonable for greater depths, longer bottom times, different breathing gasses, altitude diving, and non-square profiles. But with more variations, modifications and adjustments to deal with different situations and contingencies, what started out as a reasonably simple approximation rapidly becomes complicated. Each adjustment introduces its own inaccuracies, not to mention the opportunity for human error.

Understanding trends and the effect of changes to depth, time and gas selection on a decompression model and plan is very powerful. This is the basis for any ratio deco “rules”. Even when the primary means of planning relies on software, and even when a dive computer is used to determine “revisions” to a planned dive, ratio deco can be used as an efficient cross-check. It is very easy to enter an incorrect depth in Subsurface or any other planning software, and it is very easy to select an incorrect gasmix (or neglect to select one at all) when using a dive computer.

Anyone using ratio deco methods for diving needs appropriate training and must understand the limits of the approximation. Not only that, they need to understand the limits of their own ability. This is especially true if they intend to use the technique for on-the-fly planning. Am I really up to calculating my decompression schedule during the dive? Will I have enough gas for the new plan? What about my buddy? How would I deal with lost gas? The ratio deco examples above approximate a VPM-B +2 profile. Many divers and experts disagree on whether VPM-B or Buhlmann (or Thalmann or RGBM) are better models, and many would regard +2 conservatism as not conservative enough.

A little knowledge is a dangerous thing, and this is certainly true of ratio deco. Training in ratio deco should cover not just the principle, and not just a set of rules of thumb, but must also reinforce the limitations of the technique and the need for dive planning to consider more than just developing a decompression schedule.