Limiting the maximum suspension time for tasks which are allowed to suspend

Indefinite suspensions

For a long time it has been possible to allow tasks and groups of work in Mermaid to suspend, meaning that work is allowed to stop once it has started but before it is complete.  There are two cases for this, Fully Suspendable which allows the vessel to come and go as it pleases, and If Holding Station which requires the vessel(s) to remain at the working location throughout the suspension.  In both cases the length of time for which work can stop has been unlimited.  As an example, assume work has stopped on an operation and the vessel is required to stay on station.  Realistically we wouldn’t want the vessel to remain in position for more than a few hours, maybe a day or two at the most.  The current set up allows the vessel to stay for weeks or months, even years, in fact it’s indefinite.

Maximum suspension

In the next release of Mermaid we allow this time to be restricted by adding in a “Maximum Suspension Time” parameter to all suspendable tasks and groups.  Obviously Not Suspendable tasks and groups are unaffected by this as any stopping is illegal.  This parameter limits the amount of time that work is allowed to stop for.  When a pause occurs Mermaid checks that the length of the pause is less than the limit.  If the pause is short enough there is no problem and the work may continue during the next working window.  If the pause is too long it exceeds the limit and the work is invalidated.  This means that (as with other illegal work) a later window must be found for the whole operation.

Applying the limit

It is possible to have this parameter turned off when a) the length of the suspension is unlimited and b) for backward compatibility with previous Mermaid simulations.  The image below shows the option selected for a Fully Suspendable task.  As with all durations in Mermaid it can be set via the up/down box or the slider.

MaxSusp_OnTask

When the suspension length limit is on for a group any items (tasks or groups) within the that group must also use the limit.  Mermaid will automatically ensure that this restriction is applied.  It’s also possible to set the child objects to inherit from the parent, meaning that a change to the top level group also occurs on the contained items.  A task inheriting from a group is shown below, note how the check box is disabled (it must be on) and the inheritance toggle disables the setting of the duration (it is linked to the parent).

MaxSusp_OnTask_Inheriting

Inheritance is optional and may be toggled to off, allowing the task (or nested group) to have its own duration, provided that it is less than or equal to the parent.  Mermaid also forces this, preventing the setting of a limit which is too high.  In this case the task has a 1 hour limit and the group a 2 hour limit (as we’ve seen in the previous images).  In the image below the inheritance is turned off and the task limit of 1 hour is used, this can now be edited and may be set to any value up to 2 hours.

MaxSusp_OnTask_NotInheriting

Summary

We think this new option allows for more realistic modelling of the stopping of work and we think that the way we’ve implemented it across tasks and groups is the most appropriate and sensible way to handle this.  As always, we’re keen to hear feedback from our users so please do get in touch with any thoughts.