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