## Modelling line feeding |

Line feeding is used to introduce new line, or remove existing line, during an OrcaFlex simulation. Feeding occurs at line ends, and may occur at both ends simultaneously.

As a helpful analogy, consider a flexible hose being fed into the water from a rotating drum. The drum unwinds the hose at a constant rate, so that the length of hose in the water increases linearly as time progresses. This is referred to as *paying out*. If the system were running in reverse, then it would remove the hose from the water and wind it back up around the drum. This is *hauling in*. The line that has been paid out into the water is referred to as *active*, and that hauled in onto the drum as *inactive*.

Line feeding in OrcaFlex is analogous to this flexible hose system, in that it permits the amount of active line to vary during a simulation, up to a maximum length. Where line feeding departs from the analogy is in the properties of the inactive line, which plays no part in the model whatsoever and effectively does not exist for the purposes of simulation. The inactive line is, for instance, massless – unlike the hose on the drum.

Following the above analogy, we introduce a distinction between the *full* line and the *active* line.

The **full line** is the 'usual' OrcaFlex line, defined by the section lengths and properties specified on the structure page of the line data form. Depending upon the specific details of the model, the full line may well represent the whole of the real physical line, including those parts of the line that are not currently deployed. In our flexible hose analogy, the full line corresponds to the entire hose, both the portion that is deployed in the water and that which is wound around the drum.

The **active line** is, at any time, the instantaneous part of the **full** line which is included in the simulation. At the start of the simulation, this is defined by the initial arc length data of the feeding line ends; as the simulation progresses, the active line may grow or shrink as line is paid out or hauled in. The active line is what OrcaFlex shows on the 3D view.

The **inactive line** is simply the remainder of the **full** line which is not **active**. It may be at one or both ends of the full line; if all the line has been paid out, then there will be no inactive line at all. At this point, any attempt to pay out further line will fail, and the simulation will terminate with an error message.

The full line is discretised into a number of nodes, according to its segmentation structure data, with each node being assigned a nominal **reference arc length** on the full line. The corresponding segment lengths are referred to as the **reference unstretched lengths**. These values remains unchanged throughout the simulation, so are convenient for defining fixed points and lengths on the full line.

Active line segments are continually growing and shrinking (in both size and number) as line is paid out or hauled in, meaning that the arc length of a given node, measured from end A of the **full line**, can vary over the course of a simulation. We refer to this as the **actual arc length** of the node.

Another obvious reference point is end A of the **active line**: the arc length of a node measured from this point is called the **active arc length**. So, while the node at end A of the active line has *actual* arc length corresponding to its position on the full line, its *active* arc length is always zero.

All of these arc length values are reported by OrcaFlex as position results.

The ends of the line are referred to as end A and end B for both the full line and the active line. Where this has the potential to cause confusion, it will be made explicit to which line we are referring (e.g. "full line end A", or "active line end A"). Otherwise, the meaning should be clear from the context. The reason for using the same labels in both cases is that this terminology is widely ingrained throughout OrcaFlex, sometimes naturally fitting the definition of the full line, and sometimes better suited to the active one. For instance, the end connection stiffness data on the line data form naturally apply to the *active* line ends, but it makes more sense to place attachments by referencing a fixed arc length relative to one end of the *full* line.

A given segment of the active line may be shorter (or, rarely, slightly longer) than the corresponding segment on the full line, as line is paid out or hauled in. This means that nodes are not always in the same position on the full line, which makes node results difficult to interpret: to minimise this difficulty, only the end node (and, if smooth growth is enabled, its immediate neighbour) on the active line is allowed to deviate from its reference arc length. All other nodes on the active line remain at their reference arc lengths. See below for details of the growth model.

As a simple illustration, consider a 100 m long, single-section, full line of 10 segments. It has 11 nodes at reference arc lengths of 0, 10, 20, $\ldots$ 100 m, and these arc lengths will remain associated with the corresponding nodes, regardless of the state of the active line, at all times. We can specify that just over half of the full, 100 m long, line is initially hauled in (i.e. inactive) by setting an initial arc length for end A of 55 m, and that for end B as '~'. The active line then initially spans the reference arc length range of 55–100 m on the full line and the inactive line spans the remainder, 0–55 m.

The nodes with reference arc lengths of 0 m, 10 m, 20 m, 30 m and 40 m are inactive; the node with *reference* arc length 50 m is the active line end node at an *actual* arc length of 55m; and the nodes with reference arc lengths of 60 m, 70 m, 80 m, 90 m and 100 m are active and at at their reference positions (i.e. their actual arc lengths correspond to their reference arc lengths). The initial active line therefore has five segments: the first is 5 m long, the other four are each 10 m long.

Figure: | Full line and initial active line |

If we apply a constant positive payout rate of 0.2 m/s at end A, we will (neglecting any ramping) pay out 48 m of line over a duration of 240 s, corresponding to end A of the active line moving from actual arc length 55 m at the start of the simulation, to actual arc length 7 m at the end. At this point, all the nodes will be active and (if smooth growth is disabled) will be at actual arc lengths of 7 m, 10 m, 20 m, 30 m, $\ldots$ 100 m (if smooth growth is enabled, then the pattern will be marginally more complicated).

Figure: | Full line and subsequent active line |

If we continue to pay out line, we must be aware that at this point we have only a further 7 m of inactive line available. After this, end A of the active line will coincide with end A of the full line. This is its ultimate extent; it is not possible to pay out any further, because there is no inactive line remaining.

This perspective views the full line as a fixed reference, and feeding as the motion of the active line ends along its length. It is helpful to adopt this viewpoint as a way of visualising the associated terminology. Physically, of course, the two ends of the active line correspond to well-defined points in space – as seen in the 3D view – and feeding can instead be thought of as the movement of line through these line ends. Each active line end may be **free**, **fixed**, **anchored** or connected as a child to some other object in the usual fashion: if the line ends are **fixed**, for instance, the amount of line hanging between them - the active line - increases or decreases according to the payout rate.

The following figure shows the evolution of this example on an OrcaFlex wire frame 3D view. Initially, the active line is drawn in red; as line is paid out, line which has been introduced (and was previously inactive) is drawn in yellow. At any point in time, the active line consists of the total length of red (initially active) and yellow (subsequently paid out) line. Remember that it is the *active* line which is drawn on the 3D view. In this example the (active) line ends are **fixed** so, as line is paid out at end A, it effectively moves from the inactive pool through the immobile end A and into the active line, and the line hanging between the ends lengthens correspondingly.

Figure: | Line feeding, active line |

We describe the growth model here for the case of paying out. The process is, essentially, reversed when hauling in.

On paying out line, the existing segments close to the line end are grown to a point at which an inactive node needs to be made active and introduced into the active line. At this point, the new active node is placed at an arc length, relative to the feeding end, calculated as the product of the shortest viable segment factor, $r$, and the reference unstretched segment length, $l_0$.

How the segments are grown depends on whether smooth growth is enabled.

- With
**smooth growth disabled**, the first segment adjacent to the end grows to a length $(1{+}r)l_0$. At this point, it splits into one segment of length $r l_0$ and one of length $l_0$, and the newly active node is placed on the segment boundary at arc length $r l_0$ relative to the end. Its kinematics are determined by the payout rate: it is emitted at the full payout rate relative to the line end's motion. - With
**smooth growth enabled**, the first*two*segments adjacent to the end grow simultaneously. The first segment grows up to a length $(0.5{+}r)l_0$, the second segment to its full reference length $l_0$. At this point, the first segment splits into one segment of length $r l_0$ and one of length $0.5 l_0$, and the newly active node is again placed on the segment boundary at arc length $r l_0$ relative to the end. In this case, however, the new node is introduced*stationary*relative to the line end because all of the payout rate is instantaneously being fed into the segment of length $0.5 l_0$. The continuing growth rate is then distributed between the first two segments such that the new node transitions smoothly from stationary to moving at the payout rate. The advantage of this approach is that the effects of the change in discretisation of the line are introduced gradually over a longer time-scale, giving the solver a chance to gradually transition to a new dynamic equilibrium in order to minimise noise.

The following figures illustrate the differences between the two growth models. The left-hand figure shows the smooth-growth-enabled nodes (green line) accelerating from zero up to the full payout rate, while without smooth growth (purple line) the nodes enter the line at the full payout rate. The right-hand figure shows how disabling smooth growth can introduce noise which is avoided when smooth growth is enabled.

Figures: | Smooth growth enabled and disabled |

The growth model is adapted in the following special cases:

**Simulation start-up**. The line feeding algorithm can behave differently near the start of the simulation in order to settle the line down into the regular, repeating growth cycle pattern described above.**Short lines**. The behaviour of the feeding algorithm becomes more complicated for lines that have very few segments because it is not always possible to feed into multiple segments simultaneously. In particular, there must be at least one mid-node in a line that is feeding at both ends, so such a line must be at least two segments long. This restriction does not apply for lines that only have feeding at a single end.**Section boundaries**. The feeding algorithm is modified near to section boundaries, to ensure that each section is fully paid out or hauled in before feeding proceeds in a neighbouring section, thus avoiding having a segment straddling a section boundary.**Children and attachments**. Child and attachment connections in OrcaFlex are made to a given node on the line. It would not make sense for the actual arc length of such a node to vary during the simulation because this would correspond to the attachment moving along the phyiscal line. OrcaFlex therefore treats nodes with children and attachments differently to ensure that such nodes remain at their specified reference arc lengths in all circumstances.

The dynamic introduction of new nodes into the simulation presents a modelling challenge. A new node cannot be introduced exactly coincident with the line end, i.e. with a shortest viable segment factor of zero. In such a case, the first segment's length would be zero and, as a result, its stiffness infinite. Unfortunately, it is impossible to introduce a new node at a finite distance from the line end and for the line to remain in dynamic equilibrium in both tension and bending simultaneously. This means that the line enters a transitional regime after the introduction of the new node, whilst it adapts to the new discretisation. This can manifest itself as noisy/spiky time histories or, in extreme cases, oscillations visible in the model view. In general, as the shortest viable segment factor is increased, this noise will be exacerbated. Conversely, as the shortest viable segment factor is reduced towards zero, the segment's stiffness will approach the infinite limit and the solver will require increasingly shorter time steps to converge.

In some cases, these issues will not be present and the default control parameters will be sufficient. However, there are some prototypical cases in which these issues are expected to be important and a change to the control parameters will be required :

- Feeding from ends at which there is significant bending (e.g. a horizontally oriented encastré end) are generally most affected by the discontinuous behaviour due to resegmentation of the line as new nodes are added. In such scenarios, it is generally best to reduce the shortest viable segment factor as small as possible and to use smooth growth.
- Feeding from ends which are connected to rapidly moving parents, or feeding lines with a very high bend stiffnesses, are generally the cases most sensitive to the short stiff first segment and the associated solver convergence issues. In such cases, it may be necessary to increase the shortest viable segment factor and/or turn off smooth growth. Fortunately, the effect of any discontinuous behaviour due to resegmentation tends to be obscured in such cases and it is often possible to raise the shortest viable segment factor significantly without noticeably introducing noise into the model.

Another issue that can introduce noise is a discontinuous change in the payout rate. It is for this reason that OrcaFlex defaults to ramping the payout rate from zero during build-up. Occasionally, it may be desirable to suppress the ramp – such as when the build-up has already been accounted for in a variable payout rate profile – but be aware that this could potentially introduce undesirable noise in some cases.

The following features are currently incompatible with line feeding:

- Child objects or attachments on inactive line segments
- Paying out or hauling in child objects or attachments
- P-y modelling
- Slug flow
- Nonlinear Young's modulus
- Wake interference
- Dynamics VIV
- Sea state disturbance for vessels whose sea state RAO data is interpolated on direction and period only
- The static position (interpolated) wave calculation method
- Hysteretic or externally calculated bend stiffness
- Bend stiffness external results
- Hysteretic or externally calculated axial stiffness

In addition, line feeding can currently only be used with the implicit time domain dynamics solution method.

Note: | Rayleigh damping is compatible with line feeding but is not applied to any line segment whose unstretched length is actively varying. This is because the Rayleigh damping tends to work against the feeding and can cause the simulation to become unstable. Rayleigh damping will be applied to all line segments once they are fully grown to their reference unstretched lengths. |