Deco calculation for repetitive dive - strange effect

Linus Torvalds torvalds at linux-foundation.org
Tue Feb 7 09:36:00 PST 2017


On Tue, Feb 7, 2017 at 12:25 AM, Robert Helling <helling at atdotde.de> wrote:
>
> In the model, there is a regeneration of the crushing radius, but it has
> this ridiculous half-time of two weeks.

I may be misreading things, but the vpmb C and python conversions
(from Bryan Waite) do clear the max crushing pressure in between
repetitive dives:

c/vpmb.c lines 1758-1770: vpmb_repetitive_dive_loop():

        else if (Repetitive_Dive_Flag == 1) {
            dive->Surface_Interval_Time =
current_dive->surface_interval_time_minutes;

            vpmb_gas_loadings_surface_interval(dive,
dive->Surface_Interval_Time);
            vpmb_vpm_repetitive_algorithm(dive, dive->Surface_Interval_Time);

            for(j = 0; j < 16; j++) {
                dive->Max_Crushing_Pressure_He[j] = 0.0;
                dive->Max_Crushing_Pressure_N2[j] = 0.0;
                dive->Max_Actual_Gradient[j] = 0.0;
            }
            dive->Run_Time = 0.0;
            dive->Segment_Number = 0;

and the python implementation has similar code and comments:

            # IF THERE IS A REPETITIVE DIVE, COMPUTE GAS LOADINGS
(OFF-GASSING) DURING
            # SURFACE INTERVAL TIME.  ADJUST CRITICAL RADII USING VPM REPETITIVE
            # ALGORITHM.  RE-INITIALIZE SELECTED VARIABLES AND RETURN
TO START OF
            # REPETITIVE LOOP AT LINE 30.

            elif repetitive_dive_flag == 1:
                self.Surface_Interval_Time =
dive["surface_interval_time_minutes"]

                self.gas_loadings_surface_interval(self.Surface_Interval_Time)
                self.vpm_repetitive_algorithm(self.Surface_Interval_Time)

                for i in range(ARRAY_LENGTH):
                    self.Max_Crushing_Pressure_He[i] = 0.0
                    self.Max_Crushing_Pressure_N2[i] = 0.0
                    self.Max_Actual_Gradient[i] = 0.0

                self.Run_Time = 0.0
                self.Segment_Number = 0

and I'm not seeing this in the subsurface code.

But I don't know that code, and the C code in particular is horribly
messy (the python code may be too, but since I don't really do python,
I don't react to it ;)

                    Linus


More information about the subsurface mailing list