The following material relates primarily to the original open source code VPM-O,
which predates VPM-A. Most of the concepts do, however, carry over to the
implementation of the VPM that is presently used in commercial decompression
software.
Why are VPM Decompression Tables so Similar to the RGBM Tables?
Why have VPM tables always been so similar to Bruce Wienke's RGBM tables?
Until 2002, this was simply because the RGBM was essentially the same as the VPM
for a single decompression dive. Even though Wienke claims to have "abandoned"
VPM, his publications and publicity from vendor partners belie this
as marketing over substance. Wienke apparently still uses core elements of Yount and Hoffman's
VPM algorithm as a basis for the RGBM. Even today, in 2004, it can be
demonstrated from commercial programs that the "full-up" RGBM is still
underpinned by Yount and Hoffman's iterative algorithm. With the wide
distribution of open source VPM, Wienke was placed under pressure
to differentiate his product by customers who had paid for material that could
be obtained virtually for free. Since 2002, this has resulted in a new RGBM
model, publicized in dive industry print and venues. Nonetheless, as
demonstrated by the close correlation of ascent data for VPM and RGBM, this work has
actually only resulted in incremental adjustments of the model. You pay your
money and you take your chances.
Comparison of the VPM to Conventional Decompression Procedures
A major difference between the VPM and standard supersaturation algorithms is
that the VPM programs use an iterative procedure to calculate a decompression
schedule. In each step of the iteration, a new
decompression schedule is calculated. The total decompression time is then fed-back
into the calculation to revise the critical gradients (SUB PNEW in the BASIC
Programs), and a more
liberal schedule is produced. Maybe this should be called the "IGBM"
--the increased gradient bubble model ;*) This process of updating the
ascent repeats until the
decompression time converges to what supposedly corresponds to the formation of
the maximal allowable amount of free gas. The first and last schedules produced
for a short dive are often quite different. This results from the contribution
of both the magnitude of the growth gradient +G and the time that the gradient
acts to drive bubble growth. After a short dive, the tissues will off gas rapidly
to circulation. Hence, because the time that the gradient acts is small, the
magnitude of G can be increased by allowing shorter and shallower stops.
VPM tables handle the in and out gassing of dissolved gas in tissues the same way as conventional neo-Haldane calculations do. That is, parallel compartments with exponential half-times ranging from minutes to hours are used to model the uptake and elimination of inert gas by the body. This is in and off gassing is handled symmetrically in all of my programs. The divergence of the VPM from conventional calculations is in the details of how a diver's ascent is controlled. Rather than setting limits on the maximum pressure ratio/difference between gas dissolved in tissues and ambient pressure (supersaturation), ascents are limited by controlling the volume of gas that evolves in the body due to the inevitable formation of bubbles. As long as this volume is kept smaller than a certain "critical volume," it is presumed that a diver's body has the ability to tolerate the bubbles. If the volume of bubbles exceeds the critical volume, the diver is at risk of a pain-hit or worse. The volume of the gas in bubbles is related to the product: (number of bubbles) x (Gradient) x (growth time). The number of growing bubbles is set by the maximum compression encountered on a dive. This crushing pressure is related to the deepest depth of the dive as well as the descent rate and gas mixture. All of the programs on this site directly relate pCrush to the maximum depth. The gradients and bubble growth time are controlled by the ascent schedule, with the surface explicitly considered the last decompression stop.
Rather than using tens or hundreds of arbitrary of parameters to generate
ascent schedules, the main result of the VPM is the replacement of the
ascent-limiting matrix of M /a-b values with only four constants, corresponding
to measurable physical and physiological quantities. In the BASIC programs, they are found in SUB
DIVEDATA. The minimum bubble radius excitable into growth ro = ro,
the skin tension of bubble nuclei gamma = g , the nuclear
crushing tension gc = g c, and the maximum
tolerable volume of bubbles, which is proportional to lambda = l. For the hour-long time scales treated by this program, the nuclear
regeneration time (see Yount's eq. 2) is essentially infinite, and hence,
not used. From these constants, critical gradients G are formed in SUB DIVEDATA
on the first iteration and then in SUB PNEW on subsequent iterations. The critical gradients limit ascents because they are
directly related to the rate of bubble-growth by the diffusion equation.
Benchmarking the VPM
Hundreds of decompression schedules generated by the current VPM-B model are
been compared to Buhlmann, GF, RGBM, and NOAA tables in a series of files listed
on the
VPM Publications page
By duplicating Yount and Hoffman's results, I mean that the open source programs calculate tables that look like theirs if the bubble parameters are set to: (lambda = 7180 fsw min, gamma = 17.9 dyne/cm, gc = 257 dyne/cm, ro = 1 um). For example, the deco profile generated by the BASIC VPM programs for the air dive 200 ft for 60 min is similar to the profile published as Yount & Hoffman FIG. 1 in ref. 1. The program's no-stop air limits duplicate FIG. 2, while FIGS. 3 and 4 are also well fit.
Open Source VPM Air Diving No-Stop Times
The O2 Window and the VPM
Often, if you compare an ascent made with a closed oxygen window to an ascent
with high ppO2 deco mixes, then not only are the stops where the high ppO2 mix
is breathed shortened, but so also are the preceding deeper stop times.
There is no analogy to this effect in a supersaturation calculation (where only
the stop times where the mix is breathed are reduced). This is an artifact of
the iterative procedure used in the VPM model. Because The
dissolved nitrogen will wash out faster when high ppO2 mixes are used in shallow
stops, the total deco time is reduced and the allowable Gs for each iteration
are greater --thereby reducing all of the stop times (the BASIC program's
SUB PNEW sets the new
supersaturation gradients for all stops).
It's best to open the O2 window as wide as possible and as early as possible in the ascent. However, with a limited number of stages, and short deep stop times, remember that because the volume of bubbles also depends on growth time, you shouldn't sacrifice high ppO2 on the longer shallow stops for an early switch. Try coming onto nitrox 50% or 50/50 at 70ft and pure O2 at 20 ft. You do the tox calculations. Inert gas management is also important, with long decompression dives favoring high helium content in decompression mixes.
Mixed Gas and
Repetitive Diving and the VPM
I extended the VPM algorithm to trimix (or multi-inert-gas) diving in the
Mathematica version of the VPM decompression program. This was done by fractioning the in and out
gassing of inert gases in tissues (ala Keller/ Bhulmann) and setting the critical
ascent gradients for the total partial pressure of the inert gases summed in
series. The analytic, logarithmic expression for stop times (tstop) employed in
the BASIC program's SUB STOPS was replaced with a numerical solution of the
restriction on the sum of He and N2
partial pressures. Although, this is a conventional procedure for modeling
multiple inert gasses, the physiological and physical basis of this
technique is dubious because both He and N2 diffuse into bubbles
independently --yet the rates of transfer of each gas are coupled because bubble
pressure depends on bubble volume.
Using highly soluble gases such as argon during ascent can lead to bubble growth even though the tissue partial pressures of other inert gasses is reduced via lowered inspired partial pressure. That is, soluble inert gases such as argon, sulfur hexaflouride, etc. can act as bubble amplifiers during or after deco. This is clearly one area where a supersaturation view is naive and a full bubble mechanical calculation would be complex.