Orcina news

Here you will find the latest news on the development of OrcaFlex. Alongside our LinkedIn page, it is a valuable source of information about what we are up to!

OrcaFlex 11.5 released

We are very pleased to announce the release of OrcaFlex version 11.5. The software was finalised and built on 12th December. All clients with up-to-date MUS contracts will receive, in the next few days, an e-mail with instructions on how to download and install the new version.

Update: These e-mails were all sent on 13th December.

Version 11.5 introduces much new functionality, including:

OrcaFlex

OrcaWave

These are the most significant developments, in our opinion. As always there are more enhancements that are not listed here. All new features are fully documented in the what’s new topics:

What follows is a brief introduction to each of the main new features.

Buried and covered lines

Buried lines can now be modelled using a new feature: line covered sections. Covered sections can be used to model upheaval buckling, pipe ratcheting, and a range of other phenomena.

Covered sections are defined on the seabed page of the line data form:

Line covered section data

This example shows a single cover for the line, covering arc lengths between 200m and 300m. Multiple rows can be specified in this table to allow different sections of the line to be covered differently. The properties of the cover are defined in the other named objects referenced in the table.

There are a huge range of options for defining cover properties, and we won’t attempt to discuss them all here. The documentation has a full description of the available choices. It is worth noting here that we have implemented a lot of flexibility for specifying these properties. There are many different types of cover, and many different models used to specify how that cover provides resistance to line movement. We have provided options to specify these models in both tabular form, and in direct functional form. For the latter approach, the functional form is specified using simple Python expressions.

For example we can implement the DNV model for drained soil, as per DNVGL-RP-F114:

\(
\begin{equation}
R_c(D, H) = \gamma’ \left[ D H + \left(\frac12 – \frac{\pi}{8} \right) D^2 + f \left(H + \frac{D}{2} \right)^2 \right]
\end{equation}
\)

To see the meaning of all these symbols, refer to the details in the documentation.

In OrcaFlex this formula is defined in a variable data source as a Python expression:

DNV drained soil model formulae

Hopefully this gives a flavour of the flexibility and generality that we are offering with this new feature. Because the data specification can be quite complex, we have provided a comprehensive set of examples as part of the documentation.

The following animation is taken from one of these examples. There are two lines in the model. The yellow line has no cover defined, and is intended to contrast with the purple line, for which cover is specified. The line ends are lifted up during a dynamic analysis. The upwards motion of the purple line is resisted by the cover. During the simulation, the covered line’s ends are released, and this line falls back down. The cover now resists this downward motion, representing a ratcheting effect. Note that this is not meant to be a realistic example of a pipeline behaviour, but is intended to demonstrate some of the qualitative properties of covered line modelling in OrcaFlex.

Buried lines, DNV drained soil model with ratcheting

To learn more about this feature, please refer to the following documentation topics:

This development continues a recent thread of new features which improve modelling options for line/seabed interaction:

  • Restart analyses.
  • Tangential seabed resistance profiles.
  • Decoupled seabed friction.
  • Tabular contents and line expansion factors.
  • Line/seabed properties specified as varying with arc length.

Covered sections add another powerful option for line/seabed modelling, but there are still a number of future improvements that we are evaluating, so watch this space! If you have any suggestions for future developments in this area, please do contact us.

Support for the modelling of synthetic ropes with rate-dependent stiffness

To help support the modelling of synthetic ropes with rate-dependent stiffness, the line type axial stiffness can now accept an axial static-dynamic stiffness variable data source:

Axial static-dynamic stiffness

This allows the axial stiffness to vary between the static and dynamic analyses, whilst ensuring the continuity of the system’s equilibrium between statics and dynamics.

The dynamic stiffness is linear, but its value can vary as a function of the static tension. The dependence of linear dynamic stiffness on static tension is either parametric, using the SYROPE model, or piecewise linear defined by a user-specified table. The below figure illustrates the model implemented:

Axial static-dynamic stiffness

Before this development, users had to perform static analyses using static stiffnesses, and then change stiffness to the dynamic stiffness. Then the line lengths had to be adjusted to achieve the earlier calculated static configuration. All of this required a lot of manual intervention, or significant coding. The new functionality is intended to do away with such procedures and allow analysis to flow smoothly and efficiently.

Turbine initial rotor angular velocity, turbine runtime performance improvements

The turbine’s initial rotor angular velocity can now be specified on the hub page of the turbine data form:

Turbine initial rotor state

Applied in the static analysis, it permits the system to find a quasi-dynamic equilibrium, accounting for the steady-state loading associated with the turbine’s rotation. This enables a smooth transition between statics and dynamics, and removes the need for a lengthy build-up period to simulate the rotor accelerating up to speed. This can lead to significant time savings in your analysis workflow.

Traditionally, OrcaFlex solves degrees of freedom (DOFs) with respect to a fixed inertial frame. However, in order to perform static analysis with a non-zero initial angular velocity, it is necessary to solve the blade DOFs with respect to a non-inertial rotating frame, fixed to the turbine’s hub. If you have a non-zero initial angular velocity OrcaFlex will automatically solve with respect to this non-inertial frame.

Having implemented the capability to solve blade DOFs with respect to this non-inertial frame, we subsequently discovered that dynamic analysis also benefits from solving with respect to this frame. For most cases that we have examined, solving with respect to this frame makes it possible to use significantly longer time steps and have more robust dynamic analysis. As a result we have added an option to the program to allow you to choose which frame is used to solve blade DOFs:

Turbine DOFs solve with respect to rotating or inertial frame

For new models the default choice for this data item is set to rotating frame because we believe that it will lead to more efficient analysis. If you have existing models, you may wish to investigate whether you can switch to solving with respect to the rotating frame, and increase the time step, without losing accuracy or stability.

Frequency domain enhancements

The frequency domain solver was added to OrcaFlex in version 10.0, back in 2015, and has been continuously improved since then. In this release the following enhancements have been made for frequency domain analysis:

  • Multibody groups are now supported by the frequency domain solver. Multibody groups are used to model hydrodynamic coupling between vessels in OrcaFlex. Previously this feature this was only supported for time domain analyses.
  • Vessel wind load and current load results are now available. These results were previously only available for time domain analyses.
  • Data that only affects the synthesised realisation of time histories can now be changed after the frequency domain dynamic analysis has completed. Examples of such realisation data include wave and wind random seeds, wave origin, and wave and wind time origins.

Modeless data forms

Data forms can now be modal or modeless, as determined by a preference:

Modeless data form preference

Modal

  • All data forms were like this in previous versions.
  • The open data form is the only part of the user interface you can interact with.

Modeless

  • Multiple data forms can be open at the same time.
  • You can interact with other parts of the interface while the data forms are open.

Being able to interact with other parts of the interface without having to close and re-open windows makes OrcaFlex more convenient to work with. So, modeless data forms are now the default. Of course, if you wish to revert to modal, then you can do so using the preference.

Time domain panel pressure results

An OrcaWave model can now be used, together with an OrcaFlex time domain simulation, to calculate time domain panel pressure results. These pressure results are specific to the vessel motion seen in the time domain simulation, in contrast to the standard frequency domain panel pressure results, which are specific to the vessel motion given by displacement RAOs.

This feature is intended for use as part of a structural analysis for hull design. The structural analysis would be performed using a separate FE code which accepts, as input, time histories of pressure around the hull.

Because of the nature of the intended analysis, we decided that there would be no benefit to being able to access this functionality from the GUI. Instead, the time domain pressure is obtained via the API, which performs a post-processing calculation using both the OrcaWave model and the OrcaFlex simulation. Note that the principal requirement for the OrcaWave model is that the output option for intermediate results is selected.

This API functionality can be accessed from all of the supported interfaces. For example, for the Python API the functionality is exposed as a method of the OrcaFlexVesselObject class:

def PanelPressureTimeHistory(
    self,
    diffraction: "Diffraction",
    resultPanels: Iterable[int],
    period: PeriodArg = None,
    parameters: Optional[PanelPressureParameters] = None,
) -> numpy.ndarray:

The diffraction argument is an OrcaWave diffraction model, e.g.

diffraction = OrcFxAPI.Diffraction("untitled.owr")

The return value is a numpy array with shape [Nt, Nrp], where Nt is the number of samples in the specified period and Nrp is the number of resultPanels.

For full details on how to use this method, please refer to the documentation.

We also plan to publish an example demonstrating how to use this new feature. The example will appear shortly after version 11.5 has been released.

Spring/dampers for OrcaWave

OrcaWave models can now include spring/dampers. These are simple connections between two points in the model that pull the points together, or hold them apart. If used to connect a body to a point that is fixed, they provide a simpler alternative to using external stiffness and external damping data to represent the same effects.

OrcaWave spring/dampers

Spring/dampers can also model a non-rigid connection between two bodies, which could not be modelled in previous versions of OrcaWave.

The forces generated by spring/dampers affect results for displacement RAOs, and quantities dependent on them, such as QTFs. These spring/damper forces do not affect results for load RAOs, added mass or damping. A typical application is a full QTF calculation in a situation where a mooring system affects body motion. Spring/dampers can be used to improve the displacement RAOs, and hence improve the QTF results.

When an OrcaWave model that uses spring/dampers is imported into OrcaFlex, the spring/dampers are imported as OrcaFlex link objects with equivalent properties.

This new feature serves a similar purpose to the existing external stiffness and damping matrices in OrcaWave. The external stiffness and damping matrices in OrcaWave are limited to the block diagonal terms of the overall stiffness and damping matrices. In a future release of OrcaWave we plan to extend this functionality to allow specification of the complete 6NĂ—6N stiffness and damping matrices.

Mesh validation performance for OrcaWave

We have improved the performance of mesh validation when the option to perform validation of panel arrangement is selected. The improvement is due to:

  1. using multiple threads to perform the validation checks in parallel, and
  2. optimised validation code.

Models with large meshes and multiple execution threads will benefit the most, and the performance improvement can be very significant.