It’s been a long time since our last article and we’ve all been very consumed with work for OrcaFlex 9.2. We are nearly ready to release this major upgrade and are now in a position to announce the new features which it will introduce. The major enhancements fall into the following categories:

- Performance
- Bend Stiffener and Stress Joint modelling
- Multi-threaded batch processing
- Fatigue post-processing enhancements
- Non-linear seabed
- Wake deficit / interference modelling
- Wave spreading
- 6 DOF Vessel QTFs
- Python interface to OrcFxAPI

### Performance

We have continued the trend of significant performance improvements to OrcaFlex which started with the introduction of the implicit solver in version 9.0. For 9.2 we have improved the implicit solver in the following ways:

- Increased the default dynamics convergence tolerance to 25e-6. This results in faster simulations and our extensive trials indicate no discernible loss of accuracy. Note that this convergence tolerance is safe to use with version 9.1 so you can take advantage of the speed-up today.
- We have overhauled the linear matrix solvers used by the implicit solver. This has two benefits. First, many simulations will now run even faster because the new solvers are more efficient. Second, complex cases with many connections are now significantly more robust.
- Improved the convergence still further for many cases.

In summary, 9.2 is even faster than 9.1 and diverges less frequently.

### Bend Stiffener and Stress Joint modelling

Bend stiffeners (BSR) and tapered stress joints (TSJ) are modelled in OrcaFlex by discretising the BSR/TSJ profile as part of the overall line discretisation. Currently this involves quite a lot of pre-processing of data since you need a separate OrcaFlex Line Type object for each segment of the discretised profile. To make the modelling easier we are introducing the following enhancements in 9.2:

- There is a new category of Line Type called
*Homogeneous Pipe*. This enables you to specify a homogeneous pipe line type by giving the basic structural properties such as material density, Young’s modulus, diameters etc., and OrcaFlex will calculate for you the derived structural values (e.g. mass per unit length, axial & bend stiffnesses, etc.). This is now the preferred way to define steel riser properties. - The outer diameter of a Homogeneous Pipe Line Type can vary. You specify the variation as a piecewise-linear table on the Variable Data form. When OrcaFlex builds a line based on this Line Type it discretises the variation of mass, buoyancy, stiffness etc. automatically for you based on your specified segmentation.
- Bend stiffeners are modelled as separate OrcaFlex Lines, with a user-specified diameter profile, that can then be attached to the product (riser, umbilical, etc.) that they are protecting. This allows the stiffener line to apply bend moments etc. to the product line, but you can obtain results for the product and stiffener lines separately.

For example a stress joint may be modelled in 9.2 by first specifying a diameter profile on the Variable Data form:

This simple profile results in a linear variation of diameter over the length of the joint but arbitrary piecewise linear variations can be modelled.

The profile can then be referenced on the Line Type data form, together with material properties:

Note that we have not shown hydrodynamic data, drawing data etc. but this data is still present.

### Multi-threaded batch processing

The advent of commonly available multi-core CPUs means that in order to take advantage of their capabilities, programs need to perform multiple threads of execution concurrently. The OrcaFlex batch form has traditionally processed each job in sequence. In version 9.2, jobs are processed concurrently. For example on a dual core machine the OrcaFlex batch processor can now run two simulations at the same time.

In the past you could achieve this effect by running multiple separate instances of OrcaFlex, i.e. running multiple separate copies of OrcaFlex on the same machine, but the division of tasks for the separate instances was a manual and tedious procedure. Of course on a machine with even more processor cores the tedium increases linearly! The new batch processor in 9.2 removes the tedium. This is what it looks like running on our brand new 8 core machine:

### Fatigue post-processing enhancements

The fatigue post-processor in OrcaFlex has been given a thorough review for the release of 9.2.

##### Performance

In light of the numerous recent improvements to OrcaFlex runtimes we have realised that the fatigue post-processor has become a bottleneck. In 9.1 it can take longer to post-process the fatigue analysis than it does to run the simulations.

We have made numerous optimisations to the post-processor and it is now significantly faster. It’s impossible to give a single speed-up figure, but for a typical SCR fatigue analysis, which we have used to benchmark the optimisations, 9.2 is around 20 times faster than 9.1.

The new version also uses multiple processor cores if they are available and this can result in even greater speed-up. Our 8 core machine is around 100 times faster when post-processing fatigue with 9.2 than 9.1!

The improvements give a step change in the effectiveness of the OrcaFlex post-processor. Combined with the simulation speed improvements over recent years this now opens the way for routine use of irregular wave rainflow fatigue assessments. We will be talking in more detail on this subject in the upcoming OrcaFlex User Group Meetings.

##### Stress factor fatigue

The fatigue post-processor was designed for use with homogeneous pipe (e.g. steel pipes), and stresses are recovered easily for homogeneous pipes. But for umbilicals and flexibles, where the construction is more complex, the homogeneous pipe stress calculation built into OrcaFlex is not appropriate.

For many years now we have made use of the Line Type Stress Loading Factor data to *trick* the homogeneous stress recovery into producing appropriate stresses for an umbilical or a flexible. Whilst this works well it is quite complex to explain and very error-prone. Accordingly we have now encoded this method directly into the fatigue post-processor and removed the need for any manipulation of Stress Loading Factors.

##### Results presentation

The final major fatigue development is to the results presentation. The existing tabular output has been augmented by some new summary tables which draw out the variation of damage with arclength. In addition we will very shortly be adding charting facilities to make visualisation of the fatigue results more immediate.

### Non-linear seabed soil model

In previous versions of OrcaFlex the seabed is modelled as a simple linear spring+damper. A real soil seabed behaves in a much more complex way, so we have added a new alternative seabed model which models seabed-pipe interaction using a fully non-linear hysteretic seabed soil model.

The new model has been developed by Prof. Mark Randolph of the University of Western Australia, an acknowledged expert on seabed behaviour. It takes as data the seabed soil properties, such as the undrained shear strength at the mudline, the shear strength gradient with depth and the saturated soil density, and the model then calculates the seabed reaction force. The model includes the non-linear and hysteretic behaviour of the seabed, and effects like suction resisting uplift.

The above graph illustrates the model for a case where a catenary line touches down on the seabed, giving initial penetration that increases as the pipe sinks into the seabed (blue curve). And the graph shows how the model’s seabed reaction responds if the pipe then starts to lift again, either lifting right off the seabed (the green curve) or lifting and then repenetrating again (the purple curve). Further cycles of uplift and repenetration give suitably calculated hysteresis loops of seabed reaction.

### Wake deficit / interference modelling

The new version will include the option to model wake deficit and interference effects. Wake interference effects occur when a downstream line is in the wake of an upstream line. The downstream line experiences reduced flow velocity in the wake, and so is subject to reduced drag loads (wake deficit). It can also experience a transverse lift force that tends to pull it in towards the centre of the wake of the upstream line. These effects can lead to dangers such as riser clashing, so it is very useful in some analyses to be able to include modelling of wake interference effects.

In the new version you have the option of including these wake interference effects in your model, using one of the following 3 wake interference models:

*Huse model*. This is a well known drag reduction model, but it does not include any transverse lift force effect.*Blevins model*. This is a more recent model developed by RD Blevins, which models both the drag reduction and also the transverse lift effect.*User-specified model*. This allows you to specify the wake interference effects yourself, by specifying a table of drag coefficient factors and transverse lift coefficient factors, as a function of the position of the downstream line element relative to the upstream line. This option is useful if you have experimental data available that you believe is suitable for the cases that you want to model.

These wake interference models define the wake effects in the simple situation of two rigid parallel cylinders, one downstream of the other, subject to flow normal to their axes. The models are intrinsically 2D and the most challenging aspect of the development was coming up with an effective generalisation to arbitrary 3D configurations that are common in OrcaFlex. These generalisations, and the OrcaFlex wake interference modelling, are discussed in a paper (Innovative Riser Wake Interference Assessment) to which we have contributed, and which will be presented at the ISOPE conference in July.

### Wave spreading

OrcaFlex irregular wave trains are currently unidirectional. In 9.2 we have added support for directional spread spectra. This augments the existing frequency spectrum.

The directional spectrum that we have chosen is a cos^{2n} spread over 180°. The new user data items are the number of wave directions and the exponent 2n.

We have adopted an equal energy approach to discretising the directional spectrum. This is similar to our handling of the frequency spectrum. Instead of using equally spaced wave directions OrcaFlex chooses wave directions that are concentrated towards the mean wave direction, with a distribution specified by the direction spectrum. For a given total number of wave components this results in a much more efficient discretisation than using equal spacing in direction.

### 6 DOF Vessel QTFs

For many years now the 2^{nd} order wave drift facility in OrcaFlex, useful for coupled analyses, has catered for drift loads only in the 3 horizontal degrees of freedom: surge, sway and yaw.

For a barge or tanker shaped vessel then this is adequate but for a SPAR, for example, with a much smaller water plane area, wave drift becomes significant in the other degrees of freedom. In 9.2 we cater for this by adding to the existing data some extra columns for heave, roll and pitch wave drift coefficients.

### Python interface to OrcFxAPI

The programming interface to OrcaFlex, OrcFxAPI, allows full access to OrcaFlex’s capabilities from other programs. The native language for this interface is C and we also provide full support for accessing the interface from Delphi and Visual Basic.

Accessing OrcFxAPI from these languages is very powerful but also quite a complex process. Quite a significant amount of relatively low-level programming is required to perform memory management, error checking etc., and this makes it much harder to automate OrcaFlex than we would like. We have now addressed this issue by developing a powerful new interface with the Python programming language.

Python is a very high level language that is very widely used and is freely available. Automating OrcaFlex is greatly simplified by using the new Python interface. We recommend that anybody wishing to automate OrcaFlex gives very serious consideration to using Python to do so. The Python interface supports version 9.1 and we can supply a pre-release.

### Miscellaneous developments

As usual there are a host of other smaller developments to the program that improve it (we hope!)

### Release schedule

We are currently planning to release 9.2 towards the end of July. We hope that you find it as big an improvement as we believe it to be.