DPlan - Introduction

D-Plan Is my own take on Buhlmann's classic decompression algorithm. I first became interested in writing my own after my dive computer 'bent' me on an otherwise uneventful normal dive. I had done this dive dozens of times, I did it the day before, and this one was no different, I was fine. I went home, put the profile in my fancy commercial deco software, and lo and behold, it 'bent' me too! As near as I can tell, neither one was giving me any credit for nearly 24 hours of surface interval from the previous day. That's pretty bad, I stopped trusting either one, but especially the software. There's just no excuse for that. The authors clearly spent more time on pretty graphics than actually getting the program right !

So I decided to 'roll my own'. The equations are simple enough - exponential uptake, allowable over-pressures, etc etc. In fact, the instructions I originally followed are posted in the References section at the end of this manual. But it is not that simple, and I made it even harder for myself - I wanted a program that would do just about anything - any gas mix, any profile, any equipment, from fully automatic to fully manual.

Predicting complete decompression schedules turns out to be fiendishly tricky. Your dive computer doesn't even try to do it - it just tells you go up to 30 feet and hang for 5 minutes it says nothing about 'then go to 20 feet and hang for half an hour, then go to 10 feet and ...' Because of this, I also wanted a program that could generate entire decompression tables, not just single dive profiles. D-Plan does that too, with ease.

So here is the end result. I have tested it exhaustively, and have not seen it obviously 'screw up' in a long time. But that is not proof that it is correct. With a program like this, you can't prove it's right, but it just takes one example to prove it's wrong. Still, I trust this more than I trust someone else's programming. And if I do find something that doesn't seem quite right, I can go in, study it, understand it, and fix it if need be. To that end, the program can actually be told to 'spill its guts' as it runs, and I have left this feature open to you as well. Try that with your commercial software.

D-Plan has decompression models and conservatism options far in excess of any other decompression software. This is for the purpose of experimentation. One can compare many different decompression models and schedules quickly and easily. Many of the decompression models are of purely historical interest, while others are mainstream and current, and some of the conservatism options are the latest thinking. There are no "bubble models" here, at least not yet. In my opinion, they have too many arbitrary assumptions and fudge factors, and too much complexity to be worth the considerable trouble it would take to get one working.

The Control Panel is very dense, with over 100 controls, but you don't need to be concerned with most of them. Simply click on Reset and all settings will return to defaults. Defaults include:

  • the sample list of waypoints, Waypoints selected
  • ZH-L16B model, with standard settings
  • Open Circuit Equipment, with standard settings
  • ascent and descent modeling on, with standard settings
  • conservatism off, automatic decompression on, sea level, salt water
  • the base set of Nitrox deco gases: 0.36, 0.80, 1.00, none selected

The program interface is divided into several panels of user-selectable options. The interface is primarily point-and-click, allowing for quick what-if type analysis. Results are displayed in a new browser window or tab, so they can be easily printed or saved. I think this is the best and easiest-to-use of any decompression modeling software I have seen, and I've seen a lot of them. Some of even the expensive commercial programs have interfaces so bad that they are almost unusable. I find that fancy graphical interfaces actually just get in the way. There are no graphics here, all inputs are specified as numbers and clickable options, and all results are displayed as printable ( save-able, cut-and-paste-able ) text.

The program implements all three versions of Buehlmann's ZH-L16 algorithm, as well as the compartment 1/1b option. This is the most widespread and widely accepted decompression algorithm in the world. This particular implementation utilizes the closed-form solution to the Shreiner equation, rather than messy slow numerical integration. It is therefore very fast and efficient and avoids the cumulative calculation errors of many other programs. Whether or not I really got it right is another story, however - D-Plan may just be quickly calculating very precise wrong answers - no amount of testing will ever make me 100% certain.

All program inputs are rounded to the number of decimal places shown in the default values before any calculations. Specifying more decimal places than shown is simply false precision, and is rounded-off. Internally, the program does all calculations in full precision, but then results are rounded-off to a believable number of decimal places, for example, full minutes. This can result in some anomalies, such as apparently instantaneous ascents during decompression, and columns of numbers that don't seem to add up. This is no cause for concern - the program carries everything in full precision during all calculations.

D-Plan is optimized for the type of diving I do, under the conditions that I expect, with the equipment I would use. That is to say, it is for Northeast wreck diving. Therefore, it defaults to sea level, saltwater, unlike some other expensive decompression programs which annoyingly insist on cave diving conditions. However, the program can handle the craziest saw-tooth yo-yo profile you can come up with, so should also be useful for cave diving.

The program will automatically handle a single bottom gas and up to three decompression gases, equating to a set of tanks on your back and one or two stage bottles - a typical Northeast rig. More complex schedules, as for extreme deep technical dives or cave dives, can be input and processed manually. For example, by specifying a different gas mix at every depth, you can use as many deco mixes as you like, although the program can only track volumes for the three mixes on the panel, everything else gets lumped together under 'Other'.

There is a great deal of logic to conveniently duplicate common-sense Northeast diving practices. However, all of the convenience settings may be disabled, allowing full manual control of the program using waypoints. Left to its own devices, the program will do its utmost to generate safe schedules, but in full-manual mode you can easily generate Bent schedules and complete disasters. This is useful for checking other programs or real-world profiles. D-Plan calculates oxygen exposures during dives and O2 credits for surface intervals.

Buhlman's algorithm has no built-in depth limit. D-Plan has a maximum depth of 421 feet, based on the built-in allowable PO2 range. However, such extreme depths are poorly understood, there may be unknown factors at such depths that upset Buhlmann's model. I had a wealth of data to compare and validate down to 200 feet, which I have done. I had some data to correlate down to 300 feet, but beyond that, we're going on faith.

Much of the data I used for verification was in the form of technical decompression tables given to me by someone who used them without incident for many years. These tables were laboriously compiled by hand from runs of an old old program called Z-Plan, a program that I have found to contain errors. However, Z-Plan's errors all stack up on the safe side, so it is not actually dangerous, it is just not quite right. The important thing is that these tables were all used in the real world, and proved to be safe. D-Plan can duplicate them all, within reasonable limits. I have dived several D-Plan decompression profiles myself, without incident, and they agreed pretty well with my dive computer. But I admit that I don't do that kind of diving anymore, so this is mostly all theory to me now.

D-Plan is the only automatic decompression table generator I have ever seen, although I've heard others do exist. Normally it requires many single runs and then a great deal of data collation to create a decompression table. D-Plan will do it with a few clicks of the mouse. You can generate many different scenarios in just seconds, with no setup or transcription errors. This could include: lost deco gas for open circuit, or regular and open-circuit bailout tables for a rebreather.

A password is required to unlock all the functions, but you may experiment with it in many useful ways without one:

  • Depth is restricted to 140 feet.
  • Table Generator is restricted to 45 minutes.
  • All segment times are limited to 60 minutes ( except surface intervals. )

If any of these restrictions are violated, the program simply quits. In this mode, the output is slathered with warnings and disclaimers. Remember, this is really just a whole lot of complicated mathematical theory that may have no relation to your own flesh-and-blood body!


By Alex Brylske
Reprinted from Dive Training
Sept. 1996

PARALLELS ARE OFTEN DRAWN BETWEEN DIVING AND FLYING. Both take place in an environment where the ambient pressure is different than the earth's surface - where we spend most of our time breathing - and both require formal training to qualify as a participant. Yet, on one point the two activities diverge completely. In flying, the highlight of a pilot's life is his or her first opportunity to solo - to operate the aircraft alone. In fact, after earning a private pilot's license, aviators commonly fly with no one other than God as their copilot.

Not so in diving; the admonition to "never dive alone" is considered the hallmark of safe diving.

To most divers, entering the water without a buddy is tantamount to a pilot taking off without doing a preflight check of the airplane. But to assume that buddy diving is an absolute universal practice would be a mistake. Lots of divers dive solo. Some do it intentionally, but most end up sans buddy completely by accident.

Printed from njscuba.net