On 04.11.2014, at 11:17, Willem Ferguson <[email protected]> 
wrote:

> On 04/11/2014 11:10, Robert Helling wrote:
>> 
>> On 04.11.2014, at 08:45, Willem Ferguson <[email protected]> 
>> wrote:
>> 
>> Willem,
>> 
>>> The calculation of MOD, EAD and the like that happens in profile.c does not 
>>> work for CCR because it is based on the gas mix info associated with 
>>> individual cylinders. Function gas_mod in dive.h is a case in point. I was 
>>> starting to mess around with these calculations to use dynamic fo2 values 
>>> for each point on the dive profile (instead of fixed cylinder-specific fo2 
>>> values), but then I saw that this function is used in many places, 
>>> including extensively in the planner.
>> 
>> 
>> I am not sure exactly what would be the meaning of MOD for a CCR given the 
>> dynamic O2 content. The only way I think this makes sense would be the MOD 
>> of the dillutant (since that sets the minimum fO2 that the CCR can deliver 
>> and that determines the depth).
>> 
> I was thinking that it would be useful that a diver could review a dive and 
> see at a particular moment, how far he/she was from the MOD, given the gas 
> composition at that moment in time. Let's the fo2 was 35% at a particular 
> moment and the diver was 30m deep. The diver should know that this was pretty 
> close to the MOD for that particular gas combination. This might for instance 
> affect decision making with respect to setpoints. Of course the dive computer 
> should provide such facilities for decision making and/or automatic control 
> during the dive, but for the review of a dive afterwards, this information 
> might be useful.

Does the “how close relative to the current mix” really make sense for a CCR? 
Take for example a set-point of 1.3bar and use as your max pO2 for calculating 
an MOD 1.6. Then the MOD will always be the depth corrspoding to an ambient 
pressure of

1.6/1.3 * ambeint_pressure 

i.e. with 1.3 and 1.6 bar, your ambient pressure will always be 81% of the 
ambient pressure of the MOD if I am not mistaken. Is that what you wanted to 
calculate?
> 
>> Indeed, gas_mod is used in various places but only the call in profile.c is 
>> about the current gas, in all other cases the MOD of an explicit cylinder is 
>> calculated (essentially to find the max depth to switch to it). What I would 
>> probably do is to leave everything as it is and only wrap the call in 
>> profile.c with an if(dc.dctype != CCR) { and in the else clause make sure 
>> the dillutant is used.
>> 
>> I guess the others EAD, END and EADD should be ok the way they are since 
>> they use the info from fill_pressures which takes CCR-ness into account.
>> 
> 
> At the moment it gives EAD of 0m throughout the dive and EADD of 
> current_depth, but I have not looked at that code closely to explain     
> that. However I note that fhe and fo2 are derived from cylinder-related data, 
> using get_o2() and get_he().
> 

I am currently knee-deep in debugging the replanting code. Will look into this 
once I am back.

Best
Robert

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to