[PULL REQUEST] VPM-B Attempt 2.

Jan Darowski jan.darowski at gmail.com
Fri Jul 3 15:27:23 PDT 2015


Hi,
Here is another pull request. I hope now it's better. Everything was
reorganized from scratch, the final code is almost the same.



The following changes since commit 5ae5aedab3b628ad04abc435ce3b06c3612d4d6c:

  Add FAQ item about creating a udev rule for Cobalt under Linux
(2015-07-02 12:26:14 -0700)

are available in the git repository at:

  https://github.com/Slagvi/subsurface.git new-vpm

for you to fetch changes up to ddfd046c8d0efe3bebc5c14b3d53e6d39eabe217:

  VPM-B: add CVA to the deco planner. (2015-07-04 00:13:34 +0200)

----------------------------------------------------------------
Jan Darowski (11):
      VPM-B: add basic algorithm settings.     Created vpmb_config
structure based on buehlmann_config.     Set it's default values to
ones taken from the existing C implementation.
      VPM-B: add calculating nucleons inner pressure.     This
function calculates the pressure inside the nucleon     during the
impermeable phase.     In the original code, Newton's method is used,
for simplicity, we     use binary search for finding cubic equations
root.
      VPM-B: add crushin pressure calculation.     Add new structures
holding vpm-b state.     Add function calculating current crushing
pressure.     Call it from add_segment() on every ambient pressure
change.     It determines what pressure acts on nuclei during the
descent     and thus their size at the beggining of the deco.
      VPM-B: add initial values for crushing pressure variables.
      VPM-B: add nuclei size calculation and  nuclear regeneration.
 This function calculates the size of nuclei at the end of deco,
then simulates their regeneration, to the moment before the deco.
This is redundant as nuclear regeneration is a very slow process.
      VPM-B: add deco choice to the ui.     Removed recreational mode
from ui and pref and replaced it with     new deco_mode enum.
Added radio button ui selection.     Set default deco_mode to
Buehlmann algorithm.
      VPM-B: add initial gradient calculation.     Calculate the max
difference between tissue saturation and ambient     pressure that can
be accepted during the ascent.     Partial results are kept for later
improving in next CVA iterations
      VPM-B: add vpm-b based deco checking.     Check during the
trial_ascent() if existing pressure gradient is     smaller than
previously calculated max gradient. If not, ascent     is impossible
from the vpm-b's point of view.
      VPM-B: vpm without CVA working.     Add call of initial
calculation of critical radius and start gradient,     so the VPM
could work.     Currently without CVA, so the gradient isn't improved.
    Only one iteration is run.
      VPM-B: add next gradient calculation.     It improves
(increases) gradients for all the compartments,     so more free gas
can be created in the divers body. Next gradients     will converge,
so the volume won't exceed the safe limit, indicated     by the
crit_volume_lambda parameter.
      VPM-B: add CVA to the deco planner.

Robert C. Helling (1):
      VPM-B: use an analytic solution for nucleon inner pressure
instead of binary root search

 deco.c                         | 159
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 dive.h                         |   4 +++
 planner.c                      | 296
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------
 pref.h                         |   8 ++++-
 qt-models/diveplannermodel.cpp |   6 ++--
 qt-models/diveplannermodel.h   |   2 +-
 qt-ui/diveplanner.cpp          |  20 +++++++++---
 qt-ui/diveplanner.h            |   2 ++
 qt-ui/plannerSettings.ui       |  23 ++++++++++++--
 subsurfacestartup.c            |   4 +--
 10 files changed, 387 insertions(+), 137 deletions(-)


More information about the subsurface mailing list