## Vessel types: Sea state disturbance RAOs |

By default, objects in OrcaFlex experience the *undisturbed* sea, as specified on the environment form. In reality, however, the presence of each of these objects will modify the undisturbed sea due to interactions between the objects and the passing waves (e.g. wave radiation and diffraction). Relatively small objects, such as small buoys, will cause only minimal disturbance to the sea state, but large objects such as vessels can significantly disturb the sea state that is experienced by other objects nearby.

You can model the disturbance effects of a vessel (or a multibody group of vessels) with sea state RAO data for the vessel's type. We call this vessel the **disturbance vessel**. Its disturbance effects can be applied to nearby 3D buoys, 6D buoys and lines (including line attachments) by specifying, on the object's data form, that the object is affected by this disturbance vessel. You can also view the disturbed sea surface on a 3D view, by choosing a disturbance vessel on that view window's view parameters form. If an object's disturbance vessel is set to **(none)** (the default), then the undisturbed sea state is used.

This facility can be used to model effects such as wave shielding, where objects in the lee of a large vessel experience smaller waves than they would otherwise be exposed to in clear water. It might also be useful in other situations where the presence of the vessel significantly affects the nearby sea state – for example to model the vessel-driven fluid motions experienced by an object that is very close to the vessel hull, or to model the sea state in a moonpool.

The sea state effects of a disturbance vessel are specified on the sea state RAOs page of that vessel's vessel type data. The sea state RAO data are velocity potential disturbance RAOs, from which OrcaFlex can calculate the sea surface elevation, fluid velocity and acceleration in the disturbed sea state. Essentially they define the amplitude scaling and phase shift of the velocity potential of the disturbed wave components, relative to the incoming undisturbed wave components, as a function of position and wave direction relative to the vessel and of wave period. For more details see sea state disturbance theory.

OrcaFlex requires as input the velocity potential disturbance RAOs, measured relative to the undisturbed wave, rather than having you give the disturbed elevation, fluid velocity and acceleration data directly, because (i) this makes it more convenient to enter data manually, and (ii) interpolation on the velocity potential is much better-behaved.

Some vessel motion diffraction analysis programs can calculate sea state results at a grid of points near the vessel, from which the OrcaFlex sea state RAO data can be derived. OrcaFlex can import such data from OrcaWave and WAMIT output files.

As an alternative you can enter very simple sea state RAO data manually. For example you can model uniform scaling of all wave component amplitudes by entering a single sea state RAO amplitude. This leaves the component phases unchanged and ignores variation with position, wave period and direction. This amplitude scaling would then be applied to all wave components, and at all positions, for any object whose disturbance vessel is set to this vessel.

OrcaFlex will use interpolation, where necessary, to obtain the sea state disturbance RAO to use for any given wave component at any given position.

Warning: | OrcaFlex's sea state disturbance model is not valid for nonlinear wave theories; a warning will be issued if a nonlinear wave train has been included in the model (although the model will still run, ignoring the disturbance effects associated with the nonlinear wave train). |

As well as specifying the disturbance effects of a vessel using the sea state RAOs described above, you also need to tell OrcaFlex which objects are close enough to be significantly affected by that vessel's disturbance. You do this by selecting, on the object's data form, the **disturbance vessel** that affects that object.

The following objects are able to experience the disturbed sea state generated by a disturbance vessel: 3D buoys, 6D buoys, line sections and line attachments (clumps, drag chains, 6D buoys and stiffeners). You cannot apply disturbance effects to other vessels in the model using sea state RAOs: to model inter-vessel disturbance effects you need to set up a multibody group of vessels, using the results of a multibody analysis from an external vessel response program.

The disturbance vessel associated with a given object is selected by name from a drop-down list on that object's data form. This drop-down list includes all vessels in the model for which you have provided sea state RAOs, plus the reserved keyword **(none)**. The value **(none)** means that the object experiences the undisturbed sea state (as defined on the environment data form) without disturbance effects from any vessel.

The disturbance vessel is selected as follows:

**3D and 6D buoys**: the disturbance vessel drop-down list is on the buoy data form.**Lines**: the disturbance vessel is specified*per line section*, on the fluid loads page of the line data form.**Line attachments**: it is not possible to independently specify the disturbance vessel for line attachments. Instead the disturbance vessel of the attachment will be that of the node to which that attachment is connected. Note that this is also true if you create a 6D buoy line attachment, even if the template 6D buoy specifies a different disturbance vessel on its data form.

Note: | If the disturbance vessel for a line section is not (none) then all the nodes in that section (including both the nodes at the ends of that section) are subject to that vessel's disturbance. Consequently, two neighbouring sections of a line may not specify different disturbance vessels unless at least one of them is (none), to avoid ambiguity at the shared boundary node between the two sections. You can work around this restriction by breaking one of the sections into two sections: define the resulting intervening section to have just one segment, and set that section's disturbance vessel to (none). This removes the ambiguity at the section boundaries and ensures that all nodes in these sections still experience disturbance from the intended vessels. |

The sea state disturbance due to the presence of a vessel can be visualised in a 3D view by selecting a disturbance vessel for the 3D view. The waves shown in the 3D view will then be calculated as if disturbed by the presence of this vessel.

The sea state results (e.g. sea surface elevation, fluid velocity) associated with individual objects (6D buoys, lines, etc.) will include the effects of any sea state disturbance if the associated object has a disturbance vessel associated with it. It is also possible to select a disturbance vessel when viewing environment results, in order to see its effect on sea state results directly.

The disturbance effects of a vessel (or a multibody group of vessels) are specified on the **sea state RAOs** page of the vessel type data form, in a table of velocity potential disturbance RAOs. For an overview see the introduction above.

The sea state disturbance RAO data define the amplitude scaling and phase changes that the disturbance causes to the velocity potential of the undisturbed wave components, as a function of five independent variables: the wave direction (relative to the vessel), the wave period/frequency and the (x,y,Z) coordinates of position (x, y relative to vessel, Z relative to mean sea level).

For points at mean water level (Z=0) these disturbance RAOs are also the disturbance RAOs for the surface elevation; see sea state disturbance for details.

From these data, interpolating as necessary, OrcaFlex calculates the disturbed velocity potential of each wave component at any point. Since the velocity potential of a wave component completely determines all properties of that component, OrcaFlex can then calculate the resulting disturbed sea surface elevation, fluid velocity and acceleration.

The disturbance RAO data are given in a table, the rows of which may be in any order; OrcaFlex will internally analyse and sort the data before using it. But you must not have two or more rows in the table that specify RAOs for the same wave direction *and* the same period/frequency *and* the same position (all three coordinates), since that would give ambiguous data.

The table has the following columns. The first 5 columns specify the wave direction and period, and the position in the water; these are the independent variables. The remaining columns then specify the disturbance RAO data; these are the dependent variables.

**Direction:** $\theta$, the heading of the wave component relative to the vessel.

**Period or frequency:** the period $(T)$ or frequency (as determined by the vessel type's conventions) of the wave component to which the disturbance RAO data apply.

**Position:** The position ($x,y$ relative to vessel origin, $Z$ relative to mean water level) of the point at which the RAOs apply, relative to a right-handed frame of reference defined such that

- the frame origin is at the mean sea surface, vertically above or below the low frequency position of the vessel origin
- the $Z$-axis points vertically upwards, so $-Z$ is the depth below the mean sea surface
- the $x$ & $y$ axes are horizontal, $x$ positive in the vessel forwards direction and $y$ positive to port, following the low frequency yaw only of the vessel.

These positions can be visualised on a 3D view window by using the **view sea state RAO points** button on the vessel data form.

**Velocity potential disturbance RAO amplitude & phase:** The amplitude and phase of the velocity potential disturbance RAO at this position for this wave direction and period/frequency. The RAO amplitudes are amplitude ratios, and so are dimensionless. The phases are either leads or lags, in either degrees or radians, as determined by the vessel type phase conventions.

**Velocity potential disturbance RAO gradients**: OrcaFlex also needs to know the gradients (spatial rates of change) of the velocity potential RAOs. Estimates for these can be calculated from the RAOS if necessary, but if you have data available then it is better to specify the gradients as well as the RAOs themselves. OrcaFlex therefore allows you to choose whether the disturbance RAO gradients are **calculated** or **specified**.

Note: | Some of the vessel type conventions apply to sea state disturbance RAOs. The conventions that do apply are whether waves are referred to by period or frequency (in Hz or radians/sec), and the phase conventions for leads or lags and degrees or radians. The other conventions on the vessel types conventions page do not apply to these data. |

The spatial gradients of the disturbance RAO are required for the calculation of wave component properties from the disturbed velocity potential. If these data are present, alongside the disturbance RAO amplitudes and phases in your input data, then it is likely that choosing the gradients to be **specified** will lead to a better representation of the disturbed wave field.

Upon choosing **specified** RAO gradients, you will need to provide amplitudes and phases for the x, y and Z components of the gradient of the velocity potential disturbance RAO. These spatial rates of change use the same x, y, Z directions as are used for the position columns in the table, so they are the rates of change in the directions of the vessel low frequency heading axes (the Z-direction gradient is the rate of change in the vertically upwards direction). See vessel theory: Sea state disturbance for details. Gradient data can be derived from sea state results output by some vessel response diffraction programs, and this will normally be more accurate than using the **calculated** option. OrcaFlex will import gradient data from OrcaWave *.owr* files and WAMIT *.out* files if the necessary fluid velocity data are present in the file, and will set the gradient type to **calculated** if these data are not present.

If you choose **calculated** RAO gradients, then the gradient columns are not shown in the RAOs table, and the gradients will be estimated using finite-difference differentiation of the RAO data given in the previous columns. The accuracy of this approximation will depend upon the resolution of your grid of (x,y,Z) points. A coarse grid with widely-spaced positions will give greater approximation error.

Let $\{\theta_i,\,i{=}1,\ldots,n_\theta\}$, $\{T_j,\,j{=}1,\ldots,n_\mathrm{T}\}$, $\{x_k,\,k{=}1,\ldots,n_\mathrm{x}\}$, $\{y_l,\,l{=}1,\ldots,n_\mathrm{y}\}$, $\{Z_m,\,m{=}1,\ldots,n_\mathrm{Z}\}$ be the sets of distinct directions, distinct periods and distinct x, y and Z coordinates given for the five independent variables (the first five columns) in the table.

Now consider an arbitrary wave component of direction $\theta$ (relative to the vessel) and period $T$ from the sea state. The direction and period will not in general correspond to any of the values $\{\theta_i,\,i{=}1,\ldots,n_\theta\}$, $\{T_j,\,j{=}1,\ldots,n_\mathrm{T}\}$ given in the disturbance RAO table, and so OrcaFlex will need to interpolate the given data to obtain the disturbance RAO to use for each wave component in the sea state. This is a 2-dimensional (2D) interpolation, on wave direction and period.

In addition, the position (x,y,Z) of a given disturbed object will not in general match any of the positions in the disturbance RAO table. For best accuracy, OrcaFlex needs to also interpolate the disturbance RAOs on position, as well as on wave direction and period. However, this is a 5-dimensional (5D) interpolation, which involves significantly more computation.

OrcaFlex therefore gives you the choice of whether to do 5D interpolation on **position, direction and period** or 2D interpolation on **direction and period only**. The former is generally preferable, but entails greater computational cost than the latter, and also requires that the positions specified in the disturbance RAOs table form a complete grid.

For each wave component (of period $T$ and direction $\theta$) in the sea state, and at each disturbed object position $(x,y,Z)$ at each time step, OrcaFlex will calculate the disturbance RAO for that object using full 5D interpolation on the independent variables $\theta$, $T$, $x$, $y$, $Z$ that are defined by the first 5 columns of the disturbance RAO table.

To do so, OrcaFlex requires that those 5 columns of the disturbance RAO table specify a *complete grid* in the five independent variables, in the sense that there must be a row present in the table for every possible combination of the $\theta_i$, $T_j$, $x_k$, $y_l$, $Z_m$ values that have been given. If this is not the case then OrcaFlex will report an error. As a result, the table must contain $n_\theta.n_\mathrm{T}.n_\mathrm{x}.n_\mathrm{y}.n_\mathrm{Z}$ rows, so the volume of data becomes large quite quickly.

The advantage of this interpolation scheme is that the disturbance experienced by an object will be updated as the object moves relative to the vessel. The disadvantage is the requirement of a *complete* five-dimensional grid and a possibly significant increase in calculation time.

The interpolations on the independent variables $T$, $x$, $y$ and $Z$ use linear Cartesian interpolation. If any of the requested values lie outside the grid of given values then OrcaFlex will not extrapolate – instead, for that dimension, OrcaFlex will truncate using the given value for the nearest edge of the grid. See treatment of values outside the range specified, below.

Interpolation on $\theta$ uses linear circular interpolation. It treats the given directions as being arranged around the full circle of possible directions (modulo 360°), and linearly interpolates all values within that circle.

In this case, there is no interpolation on position, and therefore no requirement that the $x_k$, $y_l$, $Z_m$ positions in the table form a complete grid of positions. Instead, OrcaFlex will find the position $(x_k, y_l, Z_m)$ in the disturbance RAOs table that is *closest* to the position of that disturbed object *at the start of the simulation*. Internally, a cut-down table of disturbance RAOs is formed for that disturbed object, consisting only of those rows from the user's data that correspond to that nearest specified position. This *nearest specified point* table does not include the position columns, and so only two independent variables remain: direction and period.

OrcaFlex uses this nearest specified point table to calculate the disturbance RAOs for that disturbed object, using 2D linear interpolation on the direction and period columns, with no interpolation on position. This option therefore does not account for any change in disturbance RAO due to movement of the disturbed object relative to the vessel during the simulation.

As with the 5D interpolation on position, direction and period described above, period interpolation is linear Cartesian and direction interpolation is linear circular. See also treatment of values outside the range specified below regarding extrapolation.

The *nearest specified point* table must again be *complete*, but this time the condition only applies to the direction and period/frequency values. That is, the cut-down table must contain rows for all combinations of the directions $\theta_i$ and periods $T_j$ which it includes; otherwise OrcaFlex will report an error. Since this table contains data for only a single $(x,y,Z)$ position, its number of rows is much reduced.

Interpolation on direction and period only is, in general, faster than interpolating on position, direction and period, and requires fewer data. However, interpolation on direction and period only will not be as accurate in cases where any disturbed objects move significantly relative to their disturbance vessel(s) during the simulation.

If a wave component period $T$ is outside the range of $T_j$ given in the table (the *nearest specified point* table in the case of 2D interpolation), then OrcaFlex will not extrapolate beyond the user's data but will use the data specified for the lowest or highest period in the table, as appropriate. The disturbance RAOs specified at the lowest and highest specified periods will therefore be used for all wave components with periods outside the specified period range.

If 5D interpolation is being used, then values of $x$, $y$ and $Z$ outside the ranges specified in the table are treated analogously. So the disturbance RAOs at the edges of the grid will be used everywhere outside that grid.

Note that this treatment does not apply to the direction $\theta$, since as explained above the direction interpolation is done using circular interpolation modulo 360°.

The requirement for a *complete grid*, when interpolating on **position, direction and period** (i.e. 5D), can become awkward when the disturbance vessel lies at the centre of the grid of field points. In such cases, the geometry of the model may necessitate placing some field points within the vessel's hull. Whilst ultimately invalid, diffraction packages may ostensibly generate results at such field points; these results are completely meaningless and may not exhibit any correlation with the results at neighbouring field points. If a disturbed object should stray too close to its associated disturbance vessel, then these invalid results may feed into the OrcaFlex analysis. What is more, the user will be given no indication that this has happened.

To rectify this problem, it is possible to explicitly specify which sea state RAO data points lie within the vessel. This is achieved by setting **all** the dependent variables (the velocity potential disturbance RAO and its gradients) to the special placeholder value of **?** for any row of data whose $(x, y, Z)$ coordinates lie within the hull of the vessel. The **?** placeholder instructs OrcaFlex to compute a representative value for the disturbance RAO at that point. This value will be generally consistent with the disturbance RAOs at neighbouring field points in the spatial grid. The idea is that these representative values, whilst not in any way intended as a valid measure of the disturbance at that point, will at least provide a relatively smooth background for the disturbed object. Contrast this with the disturbance RAOs output from a diffraction package: it is possible that these could differ from their counterparts outside the hull by many orders of magnitude, which may seriously affect the convergence of the model.

In reality, of course, a disturbed object would never venture inside the hull of a vessel. However, preventing this entirely would only be possible if the hull were modelled as a solid object in OrcaFlex. This is outside the scope of most models, which are simplified representations of the real physics. This brings us to the main advantage of the **?** placeholder – it allows OrcaFlex to report a warning message should any object stray close enough to a vessel that one of these undefined points is used in the interpolation. You should give serious consideration to the validity of your model if such a warning is reported.

A parallel development in OrcaWave allows you to optionally detect which field points lie within a body, and report **?** for the sea state RAO results at such points. These placeholder values are imported into OrcaFlex at the same time as the rest of the sea state RAO data.

Note: | Placeholder values of ? are not permitted for interpolation on direction and period only (i.e. 2D). In this case, there is no requirement for a complete spatial grid, so the offending field points should simply be removed from the data. |

The facilities described above provide a great deal of flexibility for modelling sea state disturbance. Here are some typical examples of their use.

Some vessel response diffraction analysis programs produce sea state results from which disturbance RAOs can be derived. OrcaFlex can import sea state RAO data from both OrcaWave and WAMIT output files.

Notes: | The sea state results output by WAMIT are not the velocity potential disturbance RAOs required by OrcaFlex – they are RAOs of the disturbed sea surface elevation, and of the fluid pressure and velocity. But the OrcaFlex velocity potential disturbance RAOs can be derived directly from the WAMIT results, and OrcaFlex does this automatically when importing WAMIT files. |

If you import sea state RAOs for a multibody group of vessels, then OrcaFlex will import sea state RAOs for each of the vessel types in the group. For details see sea state disturbance data for multibody groups. |

To use sea state data calculated by other programs it is necessary to convert the sea state data into the disturbance RAO form required by OrcaFlex. This is probably be best done programmatically. It should be possible to derive both the disturbance RAOs and their gradients from the external data, in which case you would select **specified** disturbance RAO gradients.

It will be more accurate to use full 5D interpolation on position, direction and period when using disturbance RAOs derived from externally-calculated sea state data. However, 2D interpolation on direction and period only might result in usefully-faster simulations.

If externally-calculated sea state results are not available, estimated disturbance RAOs can be entered manually. For example:

**Simple scaling, independent of direction, period and position:**you can give just a single row in the disturbance RAOs table, containing arbitrary direction, period and (x,y,Z) values. Set the disturbance RAO amplitude to be the scaling factor that you want applied to the undisturbed wave field, zero for the disturbance RAO phase, and**calculated**disturbance RAO gradients. OrcaFlex will apply the input scaling factor to all wave components when calculating fluid effects on any disturbed objects that have this disturbance vessel. A disturbance RAO amplitude of 1 therefore corresponds to no disturbance: the object experiences the undisturbed wave. You could also apply a phase shift, as a non-zero disturbance RAO phase value, but that is less likely to be useful.**Simple scaling, but differing for different disturbed objects:**if you have several objects affected by the disturbance vessel, then you can separately control the disturbance they experience by having one row in the disturbance RAO table for each disturbed object. Give $(x,y,Z)$ values corresponding to the position of each of those objects at the start of the simulation, and choose 2D interpolation, on direction and period only. For each disturbed object, OrcaFlex will use the disturbance RAOs specified on the row whose specified position is nearest to that disturbed object's position at the start of the simulation. So you can expose the various objects to differing levels of sea state amplitude (and phase changes, if wanted).