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(-) _______________________________________________ subsurface mailing list [email protected] http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
