01.12.2012 Views

OrcaFlex Manual - Orcina

OrcaFlex Manual - Orcina

OrcaFlex Manual - Orcina

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

w<br />

<strong>Orcina</strong> Ltd.<br />

Daltongate<br />

Ulverston<br />

Cumbria<br />

LA12 7AJ<br />

UK<br />

Telephone: +44 (0) 1229 584742<br />

Fax: +44 (0) 1229 587191<br />

E-mail: orcina@orcina.com<br />

Web Site: www.orcina.com<br />

<strong>OrcaFlex</strong> <strong>Manual</strong><br />

Version 9.6a<br />

1


w<br />

CONTENTS<br />

3<br />

Contents<br />

1 INTRODUCTION 11<br />

1.1 Installing <strong>OrcaFlex</strong> 11<br />

1.2 Running <strong>OrcaFlex</strong> 13<br />

1.3 Parallel Processing 14<br />

1.4 Distributed <strong>OrcaFlex</strong> 15<br />

1.5 <strong>Orcina</strong> Licence Monitor 15<br />

1.6 Demonstration Version 15<br />

1.7 <strong>OrcaFlex</strong> Examples 15<br />

1.8 Validation and QA 15<br />

1.9 <strong>Orcina</strong> 15<br />

1.10 References and Links 16<br />

2 TUTORIAL 21<br />

2.1 Getting Started 21<br />

2.2 Building a Simple System 21<br />

2.3 Adding a Line 21<br />

2.4 Adjusting the View 22<br />

2.5 Static Analysis 22<br />

2.6 Dynamic Analysis 23<br />

2.7 Multiple Views 23<br />

2.8 Looking at Results 24<br />

2.9 Getting Output 24<br />

2.10 Input Data 24<br />

3 USER INTERFACE 25<br />

3.1 Introduction 25<br />

3.1.1 Program Windows 25<br />

3.1.2 The Model 25<br />

3.1.3 Model States 26<br />

3.1.4 Toolbar 27<br />

3.1.5 Status Bar 28<br />

3.1.6 Mouse and Keyboard Actions 28<br />

3.2 <strong>OrcaFlex</strong> Model Files 31<br />

3.2.1 Data Files 31<br />

3.2.2 Text Data Files 32<br />

3.2.3 Simulation Files 36<br />

3.3 Model Browser 37<br />

3.3.1 Model Browser Views 39<br />

3.3.2 Move Selected Objects Wizard 39


Contents<br />

4<br />

w<br />

3.4 Libraries 40<br />

3.4.1 Using Libraries 41<br />

3.4.2 Building a Library 44<br />

3.5 Menus 44<br />

3.5.1 File Menu 45<br />

3.5.2 Edit Menu 46<br />

3.5.3 Model Menu 46<br />

3.5.4 Calculation Menu 48<br />

3.5.5 View Menu 49<br />

3.5.6 Replay Menu 49<br />

3.5.7 Graph Menu 50<br />

3.5.8 Results Menu 50<br />

3.5.9 Tools Menu 50<br />

3.5.10 Workspace Menu 51<br />

3.5.11 Window Menu 51<br />

3.5.12 Help Menu 52<br />

3.6 3D Views 52<br />

3.6.1 View Parameters 53<br />

3.6.2 View Control 54<br />

3.6.3 Navigating in 3D Views 54<br />

3.6.4 Shaded Graphics 55<br />

3.6.5 How Objects are Drawn 57<br />

3.6.6 Selecting Objects 59<br />

3.6.7 Creating and Destroying Objects 59<br />

3.6.8 Dragging Objects 59<br />

3.6.9 Connecting Objects 59<br />

3.6.10 Printing, Copying and Exporting Views 60<br />

3.7 Replays 60<br />

3.7.1 Replay Parameters 60<br />

3.7.2 Replay Control 61<br />

3.7.3 Custom Replays 62<br />

3.7.4 Custom Replay Wizard 62<br />

3.8 Data Forms 63<br />

3.8.1 Data Fields 64<br />

3.8.2 Data Form Editing 65<br />

3.9 Results 66<br />

3.9.1 Producing Results 66<br />

3.9.2 Selecting Variables 68<br />

3.9.3 Summary and Full Results 68<br />

3.9.4 Statistics 69<br />

3.9.5 Linked Statistics 69<br />

3.9.6 Offset Tables 69<br />

3.9.7 Line Clashing Report 70<br />

3.9.8 Time History and XY Graphs 71<br />

3.9.9 Range Graphs 72<br />

3.9.10 Offset Graphs 73<br />

3.9.11 Spectral Response Graphs 73<br />

3.9.12 Extreme Value Statistics Results 73


w<br />

5<br />

Contents<br />

3.9.13 Presenting <strong>OrcaFlex</strong> Results 76<br />

3.10 Graphs 77<br />

3.10.1 Modifying Graphs 78<br />

3.11 Spreadsheets 79<br />

3.12 Text Windows 79<br />

3.13 Workspaces 79<br />

3.14 Comparing Data 80<br />

3.15 Preferences 81<br />

3.16 Printing and Exporting 83<br />

4 AUTOMATION 85<br />

4.1 Introduction 85<br />

4.2 Batch Processing 85<br />

4.2.1 Introduction 85<br />

4.2.2 Script Files 87<br />

4.2.3 Script Syntax 87<br />

4.2.4 Script Commands 87<br />

4.2.5 Examples of setting data 91<br />

4.2.6 Handling Script Errors 96<br />

4.2.7 Obtaining Variable Names 97<br />

4.2.8 Automating Script Generation 97<br />

4.3 Text Data Files 99<br />

4.3.1 Examples of setting data 99<br />

4.3.2 Automating Generation 106<br />

4.4 Post-processing 107<br />

4.4.1 Introduction 107<br />

4.4.2 <strong>OrcaFlex</strong> Spreadsheet 107<br />

4.4.3 Instruction Format 111<br />

4.4.4 Pre-defined commands 112<br />

4.4.5 Basic commands 113<br />

4.4.6 Time History and related commands 114<br />

4.4.7 Range Graph commands 115<br />

4.4.8 Data commands 115<br />

4.4.9 Instructions Wizard 116<br />

4.4.10 Duplicate Instructions 119<br />

5 THEORY 123<br />

5.1 Coordinate Systems 123<br />

5.2 Direction Conventions 124<br />

5.3 Object Connections 125<br />

5.4 Interpolation Methods 125<br />

5.5 Static Analysis 127<br />

5.5.1 Line Statics 127<br />

5.5.2 Buoy and Vessel Statics 131<br />

5.5.3 Vessel Multiple Statics 131


Contents<br />

6<br />

w<br />

5.6 Dynamic Analysis 132<br />

5.6.1 Calculation Method 133<br />

5.6.2 Ramping 135<br />

5.7 Friction Theory 135<br />

5.8 Spectral Response Analysis 138<br />

5.9 Extreme Value Statistics Theory 139<br />

5.10 Environment Theory 141<br />

5.10.1 Buoyancy Variation with Depth 141<br />

5.10.2 Current Theory 141<br />

5.10.3 Seabed Theory 142<br />

5.10.4 Seabed Non-Linear Soil Model Theory 143<br />

5.10.5 Morison's Equation 149<br />

5.10.6 Waves 150<br />

5.11 Vessel Theory 157<br />

5.11.1 Vessel Rotations 157<br />

5.11.2 RAOs and Phases 158<br />

5.11.3 RAO Quality Checks 160<br />

5.11.4 Current and Wind Loads 161<br />

5.11.5 Stiffness, Added Mass and Damping 164<br />

5.11.6 Impulse Response and Convolution 165<br />

5.11.7 Wave Drift and Sum Frequency Loads 166<br />

5.11.8 Manoeuvring Load 171<br />

5.11.9 Other Damping 171<br />

5.12 Line Theory 172<br />

5.12.1 Overview 172<br />

5.12.2 Structural Model Details 174<br />

5.12.3 Calculation Stages 175<br />

5.12.4 Calculation Stage 1 Tension Forces 175<br />

5.12.5 Calculation Stage 2 Bend Moments 176<br />

5.12.6 Calculation Stage 3 Shear Forces 179<br />

5.12.7 Calculation Stage 4 Torsion Moments 179<br />

5.12.8 Calculation Stage 5 Total Load 180<br />

5.12.9 Line End Orientation 180<br />

5.12.10 Line Local Orientation 181<br />

5.12.11 Treatment of Compression 181<br />

5.12.12 Contents Flow Effects 182<br />

5.12.13 Line Pressure Effects 183<br />

5.12.14 Pipe Stress Calculation 184<br />

5.12.15 Pipe Stress Matrix 185<br />

5.12.16 Hydrodynamic and Aerodynamic Loads 187<br />

5.12.17 Drag Chains 189<br />

5.12.18 Line End Conditions 191<br />

5.12.19 Interaction with the Sea Surface 191<br />

5.12.20 Interaction with Seabed and Shapes 192<br />

5.12.21 Clashing 192<br />

5.13 6D Buoy Theory 195<br />

5.13.1 Overview 195<br />

5.13.2 Lumped Buoy Added Mass, Damping and Drag 197


w<br />

7<br />

Contents<br />

5.13.3 Spar Buoy and Towed Fish Added Mass and Damping 198<br />

5.13.4 Spar Buoy and Towed Fish Drag 201<br />

5.13.5 Slam Force 203<br />

5.13.6 Contact Forces 205<br />

5.14 3D Buoy Theory 205<br />

5.15 Winch Theory 206<br />

5.16 Shape Theory 208<br />

6 SYSTEM MODELLING: DATA AND RESULTS 211<br />

6.1 Modelling Introduction 211<br />

6.2 Data in Time History Files 212<br />

6.3 Variable Data 214<br />

6.3.1 External Functions 215<br />

6.4 General Data 217<br />

6.4.1 Statics 217<br />

6.4.2 Dynamics 219<br />

6.4.3 Integration & Time Steps 220<br />

6.4.4 Explicit Integration 220<br />

6.4.5 Implicit Integration 222<br />

6.4.6 Numerical Damping 223<br />

6.4.7 Response Calculation 223<br />

6.4.8 Results 223<br />

6.4.9 Drawing 224<br />

6.4.10 Properties Report 224<br />

6.5 Environment 225<br />

6.5.1 Sea Data 225<br />

6.5.2 Sea Density Data 226<br />

6.5.3 Seabed Data 227<br />

6.5.4 Wave Data 230<br />

6.5.5 Data for Regular Waves 232<br />

6.5.6 Data for Random Waves 232<br />

6.5.7 Data for JONSWAP and ISSC Spectra 233<br />

6.5.8 Data for Ochi-Hubble Spectrum 234<br />

6.5.9 Data for Torsethaugen Spectrum 235<br />

6.5.10 Data for Gaussian Swell Spectrum 235<br />

6.5.11 Data for User Defined Spectrum 235<br />

6.5.12 Data for Time History Waves 236<br />

6.5.13 Data for User Specified Components 237<br />

6.5.14 Data for Response Calculation 237<br />

6.5.15 Waves Preview 237<br />

6.5.16 Modelling Design Waves 238<br />

6.5.17 Setting up a Random Sea 240<br />

6.5.18 Current Data 242<br />

6.5.19 Wind Data 244<br />

6.5.20 Drawing Data 245<br />

6.5.21 External Functions 246<br />

6.5.22 Results 246


Contents<br />

8<br />

w<br />

6.5.23 Wave Scatter Conversion 247<br />

6.6 Solid Friction Coefficients Data 251<br />

6.7 Vessels 252<br />

6.7.1 Vessel Modelling Overview 254<br />

6.7.2 Vessel Data 255<br />

6.7.3 Vessel Types 264<br />

6.7.4 Modelling Vessel Slow Drift 292<br />

6.7.5 Vessel Response Reports 294<br />

6.7.6 Vessel Results 296<br />

6.8 Lines 300<br />

6.8.1 Line Data 302<br />

6.8.2 Line Types 318<br />

6.8.3 Attachments 330<br />

6.8.4 Line Contact 334<br />

6.8.5 Rayleigh Damping 340<br />

6.8.6 P-y Models 343<br />

6.8.7 Line Results 346<br />

6.8.8 Drag Chain Results 358<br />

6.8.9 Flex Joint Results 359<br />

6.8.10 Line Setup Wizard 359<br />

6.8.11 Line Type Wizard 360<br />

6.8.12 Chain 361<br />

6.8.13 Rope/Wire 366<br />

6.8.14 Line with Floats 369<br />

6.8.15 Homogeneous Pipe 373<br />

6.8.16 Hoses and Umbilicals 375<br />

6.8.17 Modelling Stress Joints 377<br />

6.8.18 Modelling Bend Restrictors 379<br />

6.8.19 Modelling non-linear homogeneous pipes 381<br />

6.8.20 Line Ends 383<br />

6.8.21 Modelling Compression in Flexibles 386<br />

6.9 6D Buoys 387<br />

6.9.1 Wings 388<br />

6.9.2 Common Data 389<br />

6.9.3 Applied Loads 391<br />

6.9.4 Wing Data 391<br />

6.9.5 Wing Type Data 392<br />

6.9.6 Lumped Buoy Properties 394<br />

6.9.7 Lumped Buoy Drawing Data 395<br />

6.9.8 Spar Buoy and Towed Fish Properties 396<br />

6.9.9 Spar Buoy and Towed Fish Drag & Slam 398<br />

6.9.10 Spar Buoy and Towed Fish Added Mass and Damping 399<br />

6.9.11 Spar Buoy and Towed Fish Drawing 400<br />

6.9.12 Shaded Drawing 401<br />

6.9.13 Other uses 403<br />

6.9.14 External Functions 403<br />

6.9.15 Properties Report 403<br />

6.9.16 Results 404<br />

6.9.17 Buoy Hydrodynamics 407


w<br />

9<br />

Contents<br />

6.9.18 Hydrodynamic Properties of a Rectangular Box 407<br />

6.9.19 Modelling a Surface-Piercing Buoy 410<br />

6.10 3D Buoys 412<br />

6.10.1 Data 413<br />

6.10.2 Properties Report 414<br />

6.10.3 Results 414<br />

6.11 Winches 415<br />

6.11.1 Data 416<br />

6.11.2 Wire Properties 416<br />

6.11.3 Control 417<br />

6.11.4 Control by Stage 417<br />

6.11.5 Control by Whole Simulation 419<br />

6.11.6 Drive Unit 419<br />

6.11.7 External Functions 419<br />

6.11.8 Results 419<br />

6.12 Links 420<br />

6.12.1 Data 421<br />

6.12.2 Results 422<br />

6.13 Shapes 423<br />

6.13.1 Data 424<br />

6.13.2 Blocks 425<br />

6.13.3 Cylinders 426<br />

6.13.4 Curved Plates 426<br />

6.13.5 Planes 427<br />

6.13.6 Drawing 428<br />

6.13.7 Results 429<br />

6.14 All Objects Data Form 429<br />

7 MODAL ANALYSIS 431<br />

7.1 Data and Results 431<br />

7.2 Theory 432<br />

8 FATIGUE ANALYSIS 435<br />

8.1 Introduction 435<br />

8.2 Commands 436<br />

8.3 Data 437<br />

8.4 Load Cases Data for Regular Analysis 438<br />

8.5 Load Cases Data for Rainflow Analysis 439<br />

8.6 Load Cases Data for Spectral Analysis 439<br />

8.7 Load Cases Data for SHEAR7 441<br />

8.8 Components Data 441<br />

8.9 Analysis Data 442<br />

8.10 S-N and T-N Curves 443<br />

8.11 Integration Parameters 444


Contents<br />

10<br />

w<br />

8.12 Results 444<br />

8.13 Automation 445<br />

8.14 Fatigue Points 446<br />

8.15 How Damage is Calculated 446<br />

9 VIV TOOLBOX 449<br />

9.1 Frequency Domain Models 449<br />

9.1.1 VIVA 449<br />

9.1.2 SHEAR7 453<br />

9.2 Time Domain Models 460<br />

9.2.1 Wake Oscillator Models 463<br />

9.2.2 Vortex Tracking Models 466<br />

9.2.3 VIV Drawing 472


w<br />

1 INTRODUCTION<br />

11<br />

Introduction, Installing <strong>OrcaFlex</strong><br />

Welcome to <strong>OrcaFlex</strong> (version 9.6a), a marine dynamics program developed by <strong>Orcina</strong> for static and dynamic<br />

analysis of a wide range of offshore systems, including all types of marine risers (rigid and flexible), global analysis,<br />

moorings, installation and towed systems.<br />

<strong>OrcaFlex</strong> provides fast and accurate analysis of catenary systems such as flexible risers and umbilical cables under<br />

wave and current loads and externally imposed motions. <strong>OrcaFlex</strong> makes extensive use of graphics to assist<br />

understanding. The program can be operated in batch mode for routine analysis work and there are also special<br />

facilities for post-processing your results including fully integrated fatigue analysis capabilities.<br />

<strong>OrcaFlex</strong> is a fully 3D non-linear time domain finite element program capable of dealing with arbitrarily large<br />

deflections of the flexible from the initial configuration. A lumped mass element is used which greatly simplifies the<br />

mathematical formulation and allows quick and efficient development of the program to include additional force<br />

terms and constraints on the system in response to new engineering requirements.<br />

In addition to the time domain features, modal analysis can be performed for either the whole system or for<br />

individual lines. RAOs can be calculated for any results variable using the Spectral Response Analysis feature.<br />

<strong>OrcaFlex</strong> is also used for applications in the Defence, Oceanography and Renewable energy sectors. <strong>OrcaFlex</strong> is fully<br />

3D and can handle multi-line systems, floating lines, line dynamics after release, etc. Inputs include ship motions,<br />

regular and random waves. Results output includes animated replay plus full graphical and numerical presentation.<br />

If you are new to <strong>OrcaFlex</strong> then please see the tutorial and examples.<br />

For further details of <strong>OrcaFlex</strong> and our other software, please contact <strong>Orcina</strong> or your <strong>Orcina</strong> agent.<br />

Copyright notice<br />

Copyright <strong>Orcina</strong> Ltd. 1987-2012. All rights reserved.<br />

1.1 INSTALLING ORCAFLEX<br />

Hardware Requirements<br />

<strong>OrcaFlex</strong> can be installed and run on any computer that has:<br />

� Windows XP, Windows Vista, Windows 7 or Windows 8. Both 32 bit and 64 bit versions of Windows are<br />

supported.<br />

� If you are using small fonts (96dpi) the screen resolution must be at least 1024×768. If you are using large fonts<br />

(120dpi) the screen resolution must be at least 1280×1024.<br />

However, <strong>OrcaFlex</strong> is a powerful package and to get the best results we would recommend:<br />

� A 64 bit edition of Windows 7 or later.<br />

� A powerful processor with fast floating point and memory performance. This is the most important factor since<br />

<strong>OrcaFlex</strong> is a computation-intensive program and simulation run times can be long for complex models.<br />

� At least 4GB of memory. This is less important than processor performance but some aspects of <strong>OrcaFlex</strong> do<br />

perform better when more memory is available, especially on multi-core systems. If you have a multi-core<br />

system with a 64 bit version of Windows then you may benefit from fitting even more memory.<br />

� A multi-core system to take advantage of <strong>OrcaFlex</strong>'s multi-threading capabilities.<br />

� As much disk space as you require to store simulation files. Simulation files vary in size, but can be hundreds of<br />

megabytes each for complex models.<br />

� A screen resolution of 1280×1024 or greater with 32 bit colour.<br />

� A DirectX 9 compatible graphics card with at least 256MB memory for the most effective use of the shaded<br />

graphics facility.<br />

� Microsoft Excel (Excel 2000, or later) in order to use the <strong>OrcaFlex</strong> automation facilities. Both 32 bit and 64 bit<br />

versions of Excel are supported.<br />

Installation<br />

To install <strong>OrcaFlex</strong>:


Introduction, Installing <strong>OrcaFlex</strong><br />

� You will need to install from an account with administrator privileges.<br />

12<br />

w<br />

� If installing from disc, insert the <strong>OrcaFlex</strong> installation disc and run the Autorun.exe program on the disc (on<br />

many machines this program will run automatically when you insert the disc). Then click on 'Install <strong>OrcaFlex</strong>'.<br />

� If you have received <strong>OrcaFlex</strong> by e-mail or from the web you will have a zip file, and possibly a number of<br />

licence files (.lic). Extract the files from the zip file to some temporary location, and save the licence files to the<br />

same folder. Then run the extracted file Setup.exe.<br />

� You will also need to install the <strong>OrcaFlex</strong> dongle supplied by <strong>Orcina</strong>. See below for details.<br />

For further details, including information on network and silent installation, click on Read Me on the Autorun menu<br />

or open the file Installation Guide.pdf on the disc. If you have any difficulty installing <strong>OrcaFlex</strong> please contact <strong>Orcina</strong><br />

or your <strong>Orcina</strong> agent.<br />

<strong>Orcina</strong> Shell Extension<br />

When you install <strong>OrcaFlex</strong> the <strong>Orcina</strong> Shell Extension is also installed. This integrates with Windows Explorer, and<br />

associates the data and simulation file types (.dat and .sim) with <strong>OrcaFlex</strong>. You can then open an <strong>OrcaFlex</strong> file by<br />

simply double-clicking the filename in Explorer. The shell extension also provides file properties information, such<br />

as which version of <strong>OrcaFlex</strong> wrote the file and the Comments text for the model in the file. For details see the file<br />

OrcShlEx\ReadMe.htm on the <strong>OrcaFlex</strong> installation disc.<br />

Installing the Dongle<br />

<strong>OrcaFlex</strong> is supplied with a dongle, a small hardware device that must be attached to the machine or to the network<br />

to which the machine is attached.<br />

Note: The dongle is effectively your licence to run one copy (or more, if the dongle is enabled for more<br />

copies) of <strong>OrcaFlex</strong>. It is, in essence, what you have purchased or leased, and it should be treated<br />

with appropriate care and security. If you lose your dongle you cannot run <strong>OrcaFlex</strong>.<br />

Warning: <strong>Orcina</strong> can normally resupply disks or manuals (a charge being made to cover costs) if they are lost<br />

or damaged. But we can only supply a new dongle in the case where the old dongle is returned to<br />

us.<br />

Dongles labelled 'Hxxx' (where xxx is the dongle number) must be plugged into the machine on which <strong>OrcaFlex</strong> is<br />

run. Dongles labelled 'Nxxx' can be used in the same way as 'Hxxx' dongles, but they can also be used over a<br />

network, allowing the program to be shared by multiple users. In the latter case the dongle should be installed by<br />

your network administrator; instructions can be found in the Dongle directory on the <strong>OrcaFlex</strong> installation disc.<br />

Types of Dongle<br />

Dongles are available for either parallel or USB ports, and these are functionally equivalent so far as <strong>OrcaFlex</strong> is<br />

concerned. In general, USB dongles are preferred, since they seem to be more reliable. In any case, parallel ports are<br />

becoming less common on new machines. By default, 'N' dongles can hold up to 10 <strong>OrcaFlex</strong> licences for use over a<br />

network. We can supply dongles with larger capacities on request.<br />

Dongle Troubleshooting<br />

We supply, with <strong>OrcaFlex</strong>, a dongle utility program called OrcaDongle. If <strong>OrcaFlex</strong> cannot find the dongle then this<br />

program may be used to check that the dongle is working correctly and has the expected number of licences. For<br />

details see the OrcaDongle help file.<br />

The OrcaDongle program is included on the <strong>OrcaFlex</strong> installation disc, and you may choose to install it from the<br />

Autorun menu in the same way as <strong>OrcaFlex</strong>. It is also available for download from<br />

www.orcina.com/Support/Dongle.<br />

Also on our website, users of network dongles may find the <strong>Orcina</strong> Licence Monitor to be useful. This application<br />

keeps track of the number of <strong>OrcaFlex</strong> licences claimed on a network at any time.<br />

Diagnostics<br />

If <strong>OrcaFlex</strong> fails to start, with the error that it can't obtain a licence, then please check the following.<br />

� If you are using a network dongle, are all the licences in use? The <strong>Orcina</strong> Licence Monitor may be of use in<br />

determining this. If they are, you will need to wait until a licence becomes free before you can run <strong>OrcaFlex</strong>.


w<br />

13<br />

Introduction, Running <strong>OrcaFlex</strong><br />

� If you are using a local dongle, is it plugged into your machine? If so, is the dongle device driver installed? You<br />

can check this by running OrcaDongle. If the driver is not present, it may have been uninstalled by another<br />

program: if so, you can fix this by Repairing the <strong>OrcaFlex</strong> installation (from the Windows Control Panel, select<br />

'Add or Remove Programs' (XP) or Programs / Programs and Features (Vista), select the <strong>OrcaFlex</strong> entry, select<br />

Change then Repair). If this still fails, you can install the driver by downloading from our website, and running,<br />

the file Hasp-Setup.msi.<br />

� Does the dongle you are using have an <strong>OrcaFlex</strong> licence on it? Again, you can check this with OrcaDongle.<br />

� Do you have a licence file for the dongle you wish to access? This file will be named Nxxx.lic or Hxxx.lic (where<br />

xxx is the dongle number) and will be in the <strong>OrcaFlex</strong> installation folder. If not, then you should be able to copy<br />

the required file(s) from the root level of the <strong>OrcaFlex</strong> installation disc into the installation folder.<br />

If none of these help, then please contact us at <strong>Orcina</strong> with a description of the problem. Ideally, please also email to<br />

us the diagnostics file named OrcLog.txt which <strong>OrcaFlex</strong> will have written on failing to find a licence. This file can be<br />

found in the folder "%appdata%/<strong>Orcina</strong>/<strong>OrcaFlex</strong>": to open this folder, select Start menu | Run… and enter the text<br />

between the quotes (including the '%' characters).<br />

1.2 RUNNING ORCAFLEX<br />

A shortcut to run <strong>OrcaFlex</strong> is set up on the Start menu when you install <strong>OrcaFlex</strong> (see Start\Programs\<strong>Orcina</strong><br />

Software\).<br />

This shortcut passes no parameters to <strong>OrcaFlex</strong> so it gives the default start-up behaviour; see below. If this is not<br />

suitable you can configure the start-up behaviour using command-line parameters, for example by setting up your<br />

own shortcuts with particular parameter settings.<br />

Default Start-up<br />

<strong>OrcaFlex</strong> has two basic modules: full <strong>OrcaFlex</strong> and statics-only <strong>OrcaFlex</strong>. A full <strong>OrcaFlex</strong> licence is needed for<br />

dynamic analysis.<br />

When you run <strong>OrcaFlex</strong> it looks for an <strong>Orcina</strong> dongle from which it can claim an <strong>OrcaFlex</strong> licence (either a full<br />

licence or a statics-only licence). By default, it first looks for a licence on a local dongle (i.e. one in local mode and<br />

connected to the local machine) and if none is found then it looks for a licence on a network dongle (i.e. one in<br />

network mode and accessed via a licence manager over the network). This default behaviour can be changed by<br />

command-line parameters.<br />

If <strong>OrcaFlex</strong> finds a network dongle and there is a choice of which licences to claim from it, then <strong>OrcaFlex</strong> displays a<br />

Choose Modules dialog to ask you which modules you want to claim. This helps you share the licences with other<br />

users of that network dongle. For example if the network dongle contains both a full licence and a statics-only<br />

licence then you can choose to use the statics-only licence, if that is all you need, so that the full licence is left free for<br />

others to use when you do not need it yourself. The Choose Modules dialog can be suppressed using command-line<br />

parameters.<br />

Command Line Parameters<br />

<strong>OrcaFlex</strong> can accept various parameters on the command line to modify the way it starts up. The syntax is:<br />

<strong>OrcaFlex</strong>.exe Filename Option1 Option2 … etc.<br />

Filename is optional. If present it should be the name of an <strong>OrcaFlex</strong> data file (.dat or .yml) or simulation file (.sim).<br />

After starting up <strong>OrcaFlex</strong> will automatically open that file.<br />

Option1, Option2 etc. are optional parameters that allow you configure the start-up behaviour. They can be any of<br />

the following switches. For the first character of an option switch, the hyphen character '-' can be used as an<br />

alternative to the '/' character.<br />

Dongle Search switches<br />

By default the program searches first for a licence on a local dongle and then for a licence on a network dongle. The<br />

following switches allow you to modify this default behaviour.<br />

� /LocalDongle Only search for licences on a local dongle. No search will be made for network dongles.<br />

� /NetworkDongle Only search for licences on a network dongle. Any local dongle will be ignored. This can be<br />

useful if you have a local dongle but want to use a network dongle that has licences for more modules.


Introduction, Parallel Processing<br />

Module Choice switch<br />

14<br />

w<br />

This switch is only relevant if the dongle found is a network dongle and there is a choice of licences to claim from<br />

that dongle. You can specify your choice using the following command line switch:<br />

� /DisableDynamics Choose the statics-only basic licence. This is sometimes useful when using a network dongle<br />

since it allows you to leave full licences free for other users when you only need a statics-only licence.<br />

If you do not specify all the choices then the program displays the Choose Modules dialog to ask for your remaining<br />

choices. You can suppress this dialog using the following switch.<br />

� /DisableInteractiveStartup Do not display the Choose Modules dialog. The program behaves the same as if the<br />

user clicks OK on that dialog without changing any module choices.<br />

Batch Calculation switches<br />

These switches allow you to instruct <strong>OrcaFlex</strong> to start a batch calculation as soon as the program has loaded. The<br />

following switches are available:<br />

� /Batch Start a batch calculation as soon as the program has loaded. The batch calculation will contain all the<br />

files specified on the command line (you can have more than one) in the order in which they are specified. You<br />

can use relative paths which will be relative to the working directory.<br />

� /CloseAfterBatch Instructs the program to close once the batch is complete.<br />

� /BatchAnalysisStatics, /BatchAnalysisDynamics specify what type of analysis to perform to the specified files. If<br />

these parameters are missing then the program defaults to dynamic analysis.<br />

� /FileList instructs the program that any text files specified on the command line contain a list of files to include<br />

in the batch calculation. The command line can contain more than one file list. Text files within the file list will<br />

be treated as batch script files.<br />

Process Priority switches<br />

These switches determine the processing priority of <strong>OrcaFlex</strong>. The available switches are /RealtimePriority,<br />

/HighPriority, /AboveNormalPriority, /NormalPriority, /BelowNormalPriority, /LowPriority.<br />

ThickLines switch<br />

The /ThickLines switch allows you to specify a minimum thickness for lines drawn on <strong>OrcaFlex</strong> 3D View windows.<br />

For example using the switch /ThickLines=5 forces <strong>OrcaFlex</strong> to draw all lines at a thickness of at least 5. If no value<br />

is specified (i.e. the switch is /ThickLines) then the minimum thickness is taken to be 2.<br />

This switch has been added to make <strong>OrcaFlex</strong> 3D Views clearer when projected onto a large screen.<br />

ThreadCount switch<br />

The /ThreadCount switch allows you to set the number of execution threads used by <strong>OrcaFlex</strong> for parallel<br />

processing. For example /ThreadCount=1 forces <strong>OrcaFlex</strong> to use a single execution thread which has the effect of<br />

disabling parallel processing.<br />

1.3 PARALLEL PROCESSING<br />

Machines with multiple processors or processors with multiple cores are becoming increasingly common. <strong>OrcaFlex</strong><br />

can make good use of the additional processing capacity afforded by such machines. For up to date information on<br />

hardware choice for <strong>OrcaFlex</strong> please refer to www.orcina.com/Support/Benchmark.<br />

<strong>OrcaFlex</strong> performs the calculations of the model's Line objects in parallel. This means that, interactively at least,<br />

performance is only improved for models with more than one Line object. However, for models with more than one<br />

Line performance is significantly improved.<br />

Batch processing, fatigue analysis and <strong>OrcaFlex</strong> spreadsheet post-processing tasks process jobs and load cases<br />

concurrently, using all available processing resources.<br />

Thread count<br />

<strong>OrcaFlex</strong> manages a number of execution threads to perform the parallel calculations. The number of these threads<br />

(the thread count) defaults to the number of logical processors available on your machine, as reported by the<br />

operating system. This default will work well for most cases. Should you wish to change it you can use the Tools | Set<br />

Thread Count menu item. The thread count can also be controlled by a command line switch.


w<br />

1.4 DISTRIBUTED ORCAFLEX<br />

15<br />

Introduction, Distributed <strong>OrcaFlex</strong><br />

Distributed <strong>OrcaFlex</strong> is a suite of programs that enables a collection of networked, <strong>OrcaFlex</strong> licensed computers to<br />

run <strong>OrcaFlex</strong> jobs, transparently, using spare processor time. For more information about Distributed <strong>OrcaFlex</strong><br />

please refer to www.orcina.com/Support/Distributed<strong>OrcaFlex</strong>. Distributed <strong>OrcaFlex</strong> can be downloaded from this<br />

address.<br />

<strong>OrcaFlex</strong> can also make use of machines with multiple processors using parallel processing technology.<br />

1.5 ORCINA LICENCE MONITOR<br />

The <strong>Orcina</strong> Licence Monitor (OLM) is a service that monitors the current number of <strong>OrcaFlex</strong> licences claimed on a<br />

network in real time. Other programs that use the <strong>OrcaFlex</strong> programming interface (OrcFxAPI) such as Distributed<br />

<strong>OrcaFlex</strong> and the <strong>OrcaFlex</strong> spreadsheet are also monitored. You can obtain information on each licence claimed that<br />

includes:<br />

� Network information: the computer name, network address and the user name.<br />

� Licence information: the dongle name, the dongle type (network or local) and the time the licence was claimed.<br />

� Program information: which modules are being used, the version, and the location of the program which has<br />

claimed the licence (usually this is <strong>OrcaFlex</strong>.exe but it can be Excel.exe for the <strong>OrcaFlex</strong> spreadsheet for<br />

example).<br />

OLM can be downloaded from www.orcina.com/Support/<strong>Orcina</strong>LicenceMonitor.<br />

1.6 DEMONSTRATION VERSION<br />

For an overview of <strong>OrcaFlex</strong>, see the Introduction topic and the tutorial.<br />

The demonstration version of <strong>OrcaFlex</strong> has some facilities disabled – you cannot calculate statics or run simulation,<br />

and you cannot save files, print, export or copy to the clipboard. Otherwise the demonstration version is just like the<br />

full version, so it allows you to see exactly how the program works.<br />

In particular the demonstration version allows you to open any prepared <strong>OrcaFlex</strong> data or simulation file. If you<br />

open a simulation file then you can then examine the results, see replays of the motion etc. There are numerous<br />

example files provided on the demonstration disc. These example files are also available from<br />

www.orcina.com/SoftwareProducts/<strong>OrcaFlex</strong>/Examples.<br />

If you have the full version of <strong>OrcaFlex</strong> then you can use the demonstration version to show your customers your<br />

<strong>OrcaFlex</strong> models and results for their system. To do this, give them the demonstration version and copies of your<br />

<strong>OrcaFlex</strong> simulation files. The demonstration version can be downloaded from<br />

www.orcina.com/SoftwareProducts/<strong>OrcaFlex</strong>/Demo.<br />

1.7 ORCAFLEX EXAMPLES<br />

<strong>OrcaFlex</strong> is supplied with an examples disc containing a comprehensive collection of example files. These examples<br />

can also be found at www.orcina.com/SoftwareProducts/<strong>OrcaFlex</strong>/Examples.<br />

1.8 VALIDATION AND QA<br />

The <strong>OrcaFlex</strong> validation documents are available from www.orcina.com/SoftwareProducts/<strong>OrcaFlex</strong>/Validation.<br />

1.9 ORCINA<br />

<strong>Orcina</strong> is a creative engineering software and consultancy company staffed by mechanical engineers, naval<br />

architects, mathematicians and software engineers with long experience in such demanding environments as the<br />

offshore, marine and nuclear industries. As well as developing engineering software, we offer a wide range of<br />

analysis and design services with particular strength in dynamics, hydrodynamics, fluid mechanics and<br />

mathematical modelling.


Introduction, References and Links<br />

Contact Details<br />

<strong>Orcina</strong> Ltd.<br />

Daltongate<br />

Ulverston<br />

Cumbria<br />

LA12 7AJ<br />

UK<br />

Telephone: +44 (0) 1229 584742<br />

Fax: +44 (0) 1229 587191<br />

E-mail: orcina@orcina.com<br />

Web Site: www.orcina.com<br />

<strong>Orcina</strong> Agents<br />

We have agents in many parts of the world. For details please refer to www.orcina.com/Contact<strong>Orcina</strong>.<br />

1.10 REFERENCES AND LINKS<br />

References<br />

16<br />

w<br />

API, 1993. API RP 2A-WSD, Recommended Practice for Planning, Designing and Constructing Fixed Offshore<br />

Platforms – Working Stress Design. American Petroleum Institute.<br />

API, 2000. API RP 2A-WSD, Recommended Practice for Planning, Designing and Constructing Fixed Offshore<br />

Platforms – Working Stress Design. American Petroleum Institute.<br />

API, 1998. API RP 2RD, Design of Risers for Floating Production Systems and Tension-Leg Platforms. American<br />

Petroleum Institute.<br />

API, 2005. API RP 2SK, Design and Analysis of Stationkeeping Systems for Floating Structures. American Petroleum<br />

Institute.<br />

API. Comparison of Analyses of Marine Drilling Risers. API Bulletin. 2J.<br />

Aranha J A P, 1994. A formula for wave drift damping in the drift of a floating body. J. Fluid Mech. 275, 147-155.<br />

Aubeny C, Biscontin G and Zhang J, 2006. Seafloor interaction with steel catenary risers. Offshore Technology<br />

Research Center (Texas A&M University) Final Project Report (http://www.mms.gov/tarprojects/510.htm).<br />

Aubeny C, Gaudin C and Randolph M, 2008. Cyclic Tests of Model Pipe in Kaolin. OTC 19494, 2008.<br />

Barltrop N D P and Adams A J, 1991. Dynamics of fixed marine structures. Butterworth Heinemann for MTD. 3rd<br />

Edition.<br />

Batchelor G K, 1967. An introduction to fluid dynamics. Cambridge University Press.<br />

Bellanger M, 1989. Digital Processing of Signals. Wiley.<br />

Blevins R D, 2005. Forces on and Stability of a Cylinder in a Wake. J. OMAE, 127, 39-45.<br />

Bridge C, Laver K, Clukey E, Evans T, 2004. Steel Catenary Riser Touchdown Point Vertical Interaction Models. OTC<br />

16628, 2004.<br />

Carter D J T, 1982. Prediction of Wave height and Period for a Constant Wind Velocity Using the JONSWAP Results,<br />

Ocean Engineering, 9, no. 1, 17-33.<br />

Casarella M J and Parsons M, 1970. Cable Systems Under Hydrodynamic Loading. Marine Technology Society Journal<br />

4, No. 4, 27-44.<br />

Chapman D A, 1984. Towed Cable Behaviour During Ship Turning Manoeuvres. Ocean Engineering. 11, No. 4.<br />

Chung J and Hulbert G M, 1993. A time integration algorithm for structural dynamics with improved numerical<br />

dissipation: The generalized-α method. ASME Journal of Applied Mechanics. 60, 371-375.<br />

CMPT, 1998. Floating structures: A guide for design and analysis. Edited by Barltrop N D P. Centre for Marine and<br />

Petroleum Technology publication 101/98, Oilfield Publications Limited.<br />

Coles S, 2001. An Introduction to Statistical Modelling of Extreme Values. Springer.<br />

Cummins W E, 1962. The impulse response function and ship motions. Schiffstechnik, 9, 101-109.


w<br />

17<br />

Introduction, References and Links<br />

Dean R G, 1965. Stream function representation of non-linear ocean waves. J. Geophys. Res., 70, 4561-4572.<br />

Dirlik T, 1985. Application of computers in Fatigue Analysis. PhD Thesis University of Warwick.<br />

DNV-OS-F201, Dynamic Risers.<br />

DNV-RP-C205, Environmental Conditions and Environmental Loads.<br />

DNV-RP-H103, Modelling and Analysis of Marine Operations, April 2011.<br />

ESDU 71016. Fluid forces, pressures and moments on rectangular blocks. ESDU 71016 ESDU International, London.<br />

ESDU 80025. Mean forces, pressures and flow field velocities for circular cylindrical structures: Single cylinder with<br />

two-dimensional flow. ESDU 80025 ESDU International, London.<br />

Falco M, Fossati F and Resta F, 1999. On the vortex induced vibration of submarine cables: Design optimization of<br />

wrapped cables for controlling vibrations. 3 rd International Symposium on Cable Dynamics, Trondheim, Norway.<br />

Faltinsen O M, 1990. Sea loads on ships and offshore structures. Cambridge University Press.<br />

Fenton J D, 1979. A high-order cnoidal wave theory. J. Fluid Mech. 94, 129-161.<br />

Fenton J D, 1985. A fifth-order Stokes theory for steady waves. J. Waterway, Port, Coastal & Ocean Eng. ASCE. 111,<br />

216-234.<br />

Fenton J D, 1990. Non-linear wave theories. Chapter in "The Sea – Volume 9: Ocean Engineering Science", edited by<br />

B. Le MeHaute and D. M. Hanes. Wiley: New York. 3-25.<br />

Fenton J D, 1995. Personal communication – pre-print of chapter in forthcoming book on cnoidal wave theory.<br />

Gregory R W and Paidoussis M P, 1996. Unstable oscillation of tubular cantilevers conveying fluid: Part 1:Theory.<br />

Proc. R. Soc. 293 Series A, 512-527.<br />

Hartnup G C, Airey R G and Fraser J M, 1987. Model Basin Testing of Flexible Marine Risers. OMAE Houston.<br />

Hoerner S F 1965. Fluid Dynamic Drag, Published by the author at Hoerner Fluid Dynamics, NJ 08723, USA.<br />

Huse E, 1993. Interaction in Deep-Sea Riser Arrays. OTC 7237, 1993.<br />

Isherwood R M, 1987. A Revised Parameterisation of the JONSWAP Spectrum. Applied Ocean Research, 9, No. 1<br />

(January), 47-50.<br />

Iwan W D, 1981. The vortex-induced oscillation of non-uniform structural systems. Journal of Sound and Vibration,<br />

79, 291-301.<br />

Iwan W D and Blevins R D, 1974. A Model for Vortex Induced Oscillation of Structures. Journal of Applied Mechanics,<br />

September 1974, 581-586.<br />

Kotik J and Mangulis V, 1962. On the Kramers-Kronig relations for ship motions. Int. Shipbuilding Progress, 9, No. 97,<br />

361-368.<br />

Lamb H, 1932. Hydrodynamics. 6th Edition.Cambridge University Press.<br />

Larsen C M, 1991. Flexible Riser Analysis – Comparison of Results from Computer Programs. Marine Structures,<br />

Elsevier Applied Science.<br />

Longuet-Higgins M S, 1983. On the joint distribution of wave periods and amplitudes in a random wave field.<br />

Proceedings Royal Society London, Series A, Mathematical and Physical Sciences.389, 241-258.<br />

Maddox S J, 1998. Fatigue strength of welded structures. Woodhead Publishing Ltd, ISBN 1 85573 013 8.<br />

Malenica S et al, 1995. Wave and current forces on a vertical cylinder free to surge and sway. Applied Ocean<br />

Research, 17, 79-90.<br />

Molin B, 1994. Second-order hydrodynamics applied to moored structures. A state-of-the-art survey. Ship<br />

Technology Research. 41, 59-84.<br />

Morison J R, O'Brien M D, Johnson J W, and Schaaf S A, 1950. The force exerted by surface waves on piles. Petrol<br />

Trans AIME. 189.<br />

Mueller H F, 1968. Hydrodynamic forces and moments of streamlined bodies of revolution at large incidence.<br />

Schiffstechnik. 15, 99-104.<br />

Newman J N. 1974. Second-order, slowly-varying forces on vessels in irregular waves. Proc Int Symp Dynamics of<br />

Marine Vehicles and Structures in Waves, Ed. Bishop RED and Price WG, Mech Eng Publications Ltd, London.


Introduction, References and Links<br />

Newman J N, 1977. Marine Hydrodynamics, MIT Press.<br />

18<br />

w<br />

NDP, 1995. Regulations relating to loadbearing structures in the petroleum activities. Norwegian Petroleum<br />

Directorate.<br />

Ochi M K and Hubble E N, 1976. Six-parameter wave spectra, Proc 15th Coastal Engineering Conference, 301-328.<br />

Ochi M K, 1973. On Prediction of Extreme Values, J. Ship Research, 17, No. 1, 29-37.<br />

Ochi M K, 1998. Ocean Waves: The Stochastic Approach, Cambridge University Press.<br />

Oil Companies International Marine Forum, 1994. Prediction of Wind and Current Loads on VLCCs, 2 nd edition,<br />

Witherby & Co., London.<br />

Paidoussis M P, 1970. Dynamics of tubular cantilevers conveying fluid. J. Mechanical Engineering Science, 12, No 2,<br />

85-103.<br />

Paidoussis M P and Deksnis E B, 1970. Articulated models of cantilevers conveying fluid: The study of a paradox. J.<br />

Mechanical Engineering Science, 12, No 4, 288-300.<br />

Paidoussis M P and Lathier B E, 1976. Dynamics of Timoshenko beams conveying fluid. J. Mechanical Engineering<br />

Science, 18, No 4, 210-220.<br />

Palmer A C and Baldry J A S, 1974. Lateral buckling of axially constrained pipes. J. Petroleum Technology, Nov 1974,<br />

1283-1284.<br />

Pode L, 1951. Tables for Computing the Equilibrium Configuration of a Flexible Cable in a Uniform Stream. DTMB<br />

Report. 687.<br />

Principles of Naval Architecture. Revised edition, edited by J P Comstock, 1967. Society of Naval Architects and<br />

Marine Engineers, New York.<br />

Puech A, 1984. The Use of Anchors in Offshore Petroleum Operations. Editions Technique.<br />

Randolph M and Quiggin P, 2009. Non-linear hysteretic seabed model for catenary pipeline contact. OMAE paper<br />

79259, 2009 (www.orcina.com/Resources/Papers/OMAE2009-79259.pdf).<br />

Rawson and Tupper, 1984. Basic Ship Theory 3rd ed, 2: Ship Dynamics and Design, 482. Longman Scientific &<br />

Technical (Harlow).<br />

Rienecker M M and Fenton J D, 1981. A Fourier approximation method for steady water waves. J. Fluid Mech. 104,<br />

119-137.<br />

Roark R J, 1965. Formulas for Stress and Strain. 4th edition McGraw-Hill.<br />

Sarpkaya T, Shoaff R L, 1979. Inviscid Model of Two-Dimensional Vortex Shedding by a Circular Cylinder. Article No.<br />

79-0281R, AIAA Journal,17, no. 11, 1193-1200.<br />

Sarpkaya T, Shoaff R L, 1979. A discrete-vortex analysis of flow about stationary and transversely oscillating circular<br />

cylinders. Report no. NPS-69SL79011, Naval Postgraduate School, Monterey, California.<br />

Rychlik I, 1987. A new definition of the rainflow cycle counting method. Int. J. Fatigue 9, No 2, 119-121.<br />

Skjelbreia L, Hendrickson J, 1961. Fifth order gravity wave theory. Proc. 7th Conf. Coastal Eng. 184-196.<br />

Sobey R J, Goodwin P, Thieke R J and Westberg R J, 1987. Wave theories. J. Waterway, Port, Coastal & Ocean Eng.<br />

ASCE 113, 565-587.<br />

Sparks C P, 1980. Le comportement mecanique des risers influence des principaux parametres. Revue de l'Institut<br />

Francais du Petrol, 35, no. 5, 811.<br />

Sparks C P, 1984. The influence of tension, pressure and weight on pipe and riser deformations and stresses. J.<br />

Energy Resources Technology, 106, Issue 1, 46-54.<br />

Standing RG, Brendling WJ, Wilson D, 1987. Recent Developments in the Analysis of Wave Drift Forces, Low-<br />

Frequency Damping and Response. OTC paper 5456, 1987.<br />

Tan Z, Quiggin P, Sheldrake T, 2007. Time domain simulation of the 3D bending hysteresis behaviour of an<br />

unbonded flexible riser. OMAE paper 29315, 2007 (www.orcina.com/Resources/Papers/OMAE2007-29315.pdf).<br />

Taylor R and Valent P, 1984. Design Guide for Drag Embedment Anchors, Naval Civil Engineering Laboratory (USA),<br />

TN No N-1688.


w<br />

19<br />

Introduction, References and Links<br />

Torsethaugen K and Haver S, 2004. Simplified double peak spectral model for ocean waves, Paper No. 2004-JSC-193,<br />

ISOPE 2004 Touson, France.<br />

Thwaites, 1960. Incompressible Aerodynamics, Oxford, 399-401.<br />

Timoshenko S,1955. Vibration Problems in Engineering, van Nostrand.<br />

Triantafyllou M S, Yue D K P and Tein D Y S, 1994. Damping of moored floating structures. OTC 7489, Houston, 215-<br />

224.<br />

Tucker et al, 1984. Applied Ocean Research, 6, No 2.<br />

Tucker M J, 1991. Waves in Ocean Engineering. Ellis Horwood Ltd. (Chichester).<br />

Wichers J E W, 1979. Slowly oscillating mooring forces in single point mooring systems. BOSS79 (Second<br />

International Conference on Behaviour of Offshore Structures).<br />

Wichers J E W, 1988. A Simulation Model for a Single Point Moored Tanker. Delft University Thesis.<br />

Wu M, Saint-Marcoux J-F, Blevins R D, Quiggin P P, 2008. Paper No. ISOPE-2008-MWU10. ISOPE Conference 2008,<br />

Vancouver, Canada. (www.orcina.com/Resources/Papers/ISOPE2008-MWU-10.pdf)<br />

Young A D, 1989. Boundary Layers. BSP Professional Books, 87-91.<br />

Suppliers of frequency domain VIV software<br />

SHEAR7<br />

AMOG Consulting Inc.<br />

770 South Post Oak Lane, Suite 505<br />

Houston, TX 77056<br />

USA<br />

Attention: Dr. H. Marcollo<br />

Tel: +1 713 255 0020<br />

Email: shear7@amogconsulting.com<br />

VIVA<br />

JD Marine<br />

11777 Katy Freeway, Suite 434 South<br />

Houston, TX 77079<br />

USA<br />

Tel: +1 281 531 0888<br />

Email: info@jdmarineus.com


w<br />

2 TUTORIAL<br />

2.1 GETTING STARTED<br />

21<br />

Tutorial, Getting Started<br />

This short tutorial gives you a very quick run through the model building and results presentation features of<br />

<strong>OrcaFlex</strong>.<br />

On completion of the tutorial we suggest that you also look through the pre-run examples – see Example Files.<br />

On starting up <strong>OrcaFlex</strong>, you are presented with a 3D view showing just a blue line representing the sea surface and<br />

a brown line representing the seabed. At the top of the screen are menus, a tool bar and a status bar arranged in the<br />

manner common to most Windows software. As usual in Windows software, nearly all actions can be done in<br />

several ways: here, to avoid confusion, we will usually only refer to one way of doing the action we want, generally<br />

using the mouse.<br />

Figure: The <strong>OrcaFlex</strong> main window<br />

2.2 BUILDING A SIMPLE SYSTEM<br />

To start with, we will build a simple system consisting of one line and one vessel only.<br />

Using the mouse, click on the new vessel button on the toolbar. The cursor changes from the usual pointer to a<br />

crosshair cursor to show that you have now selected a new object and <strong>OrcaFlex</strong> is waiting for you to decide where to<br />

place it. Place the cursor anywhere on the screen and click the mouse button. A "ship" shape appears on screen,<br />

positioned at the sea surface, and the cursor reverts to the pointer shape. To select the vessel, move the cursor close<br />

to the vessel and click the mouse button – the message box (near the top of the 3D view) will confirm when the<br />

vessel has been selected. Now press and hold down the mouse button and move the mouse around. The vessel<br />

follows the mouse horizontally, but remains at the sea surface. (To alter vessel vertical position, or other details,<br />

select the vessel with the mouse, then double click to open the Vessel data window.)<br />

2.3 ADDING A LINE<br />

Now add a line. Using the mouse, click on the new line button . The crosshair cursor reappears – move the<br />

mouse to a point just to the right of the vessel and click. The line appears as a catenary loop at the mouse position.<br />

Move the mouse to a point close to the left hand end of the line, press and hold down the mouse button and move<br />

the mouse around. The end of the line moves around following the mouse, and the line is redrawn at each position.<br />

Release the mouse button, move to the right hand end, click and drag. This time the right hand end of the line is<br />

dragged around. In this way, you can put the ends of the lines roughly where you want them. (Final positioning to<br />

exact locations has to be done by typing in the appropriate numbers – select the line with the mouse and double<br />

click to bring up the line data form.)<br />

Move the line ends until the left hand end of the line is close to the bow of the ship, the right hand end lies above the<br />

water and the line hangs down into the water.


Tutorial, Adjusting the View<br />

22<br />

w<br />

At this point, the line has a default set of properties and both ends are at fixed positions relative to the Global origin.<br />

For the moment we will leave the line properties (length, mass, etc.) at their default values, but we will connect the<br />

left hand end to the ship. Do this as follows:<br />

1. Click on the line near the left hand end, to select that end of the line; make sure you have selected the line, not<br />

the vessel or the sea. The message box at the left hand end of the status bar tells you what is currently selected.<br />

If you have selected the wrong thing, try again. (Note that you don't have to click at the end of the line in order<br />

to select it – anywhere in the left hand half of the line will select the left hand end. As a rule, it is better to choose<br />

a point well away from any other object when selecting something with the mouse.)<br />

2. Release the mouse and move it to the vessel, hold down the CTRL key and click. The message box will confirm<br />

the connection and, to indicate the connection, the triangle at the end of the line will now be the same colour as<br />

the vessel.<br />

Now select the vessel again and drag it around with the mouse. The left hand end of the line now moves with the<br />

vessel. Leave the vessel positioned roughly as before with the line in a slack catenary.<br />

2.4 ADJUSTING THE VIEW<br />

The default view of the system is an elevation of the global X-Z plane – you are looking horizontally along the<br />

positive Y axis. The view direction (the direction you are looking) is shown in the Window Title bar in<br />

azimuth/elevation form (azimuth=270; elevation=0). You can move your view point up, down, right or left, and you<br />

can zoom in or out, using the view control buttons near the top left corner of the window. Click on each<br />

of the top 3 buttons in turn: then click again with the SHIFT key held down. The SHIFT key reverses the action of the<br />

button. If you want to move the view centre without rotating, use the scroll bars at the bottom and right edges of the<br />

window. By judicious use of the buttons and scroll bars you should be able to find any view you like.<br />

Alternatively, you can alter the view with the mouse. Hold down the ALT key and left mouse button and drag. A<br />

rectangle on screen shows the area which will be zoomed to fill the window when the mouse button is released.<br />

SHIFT+ALT+left mouse button zooms out – the existing view shrinks to fit in the rectangle.<br />

Warning: <strong>OrcaFlex</strong> will allow you to look up at the model from underneath, effectively from under the<br />

seabed! Because the view is isometric and all lines are visible, it is not always apparent that this<br />

has occurred. When this has happened, the elevation angle is shown as negative in the title bar.<br />

There are three shortcut keys which are particularly useful for controlling the view. For example CTRL+P gives a plan<br />

view from above; CTRL+E gives an elevation; CTRL+Q rotates the view through 90° about the vertical axis. (CTRL+P<br />

and CTRL+E leave the view azimuth unchanged.)<br />

Now click the button on the 3D View to bring up the Edit View Parameters form. This gives a more precise way<br />

of controlling the view and is particularly useful if you want to arrange exactly the same view of 2 different models –<br />

say 2 alternative configurations for a particular riser system. Edit the view parameters if you wish by positioning the<br />

cursor in the appropriate box and editing as required.<br />

If you should accidentally lose the model completely from view (perhaps by zooming in too close, or moving the<br />

view centre too far) there are a number of ways of retrieving it:<br />

� Press CTRL+T or right click in the view window and select Reset to Default View.<br />

� Press the Reset button on the Edit View Parameters form. This also resets back to the default view.<br />

� Zoom out repeatedly until the model reappears.<br />

� Close the 3D View and add a new one (use the Window|Add 3D View menu item). The new window will have<br />

the default view centre and view size.<br />

2.5 STATIC ANALYSIS<br />

Note: If you are running the demonstration version of <strong>OrcaFlex</strong> then this facility is not available.<br />

To run a static analysis of the system, click on the calculate statics button . The message box reports which line is<br />

being analysed and how many iterations have occurred. When the analysis is finished (almost instantly for this<br />

simple system) the Program State message in the centre of the Status Bar changes to read "Statics Complete", and<br />

the Static Analysis button changes to light grey to indicate that this command is no longer available. The appearance<br />

of the line will have changed a little. When editing the model, <strong>OrcaFlex</strong> uses a quick approximation to a catenary


w<br />

23<br />

Tutorial, Dynamic Analysis<br />

shape for general guidance only, and this shape is replaced with the true catenary shape when static analysis has<br />

been carried out. (See Static Analysis for more details).<br />

We can now examine the results of the static analysis by clicking on the Results button . This opens a Results<br />

Selection window.<br />

You are offered the following choices:<br />

� Results in numerical and graphical form, with various further choices which determine what the table or graph<br />

will contain.<br />

� Results for all objects or one selected object.<br />

Ignore the graph options for the moment, select Summary Results and All Objects, then click Table. A summary of<br />

the static analysis results is then displayed in spreadsheet form. Results for different objects are presented in<br />

different sheets. To view more static analysis results repeat this process: click on the Results button and select as<br />

before.<br />

2.6 DYNAMIC ANALYSIS<br />

We are now ready to run the simulation. If you are running the demonstration version of <strong>OrcaFlex</strong> then you cannot<br />

do this, but instead you can load up the results of a pre-run simulation – see Examples.<br />

Click the Run Dynamic Simulation button . As the simulation progresses, the status bar reports current<br />

simulation time and expected (real) time to finish the analysis, and the 3D view shows the motions of the system as<br />

the wave passes through.<br />

Click the Start Replay button . An animated replay of the simulation is shown in the 3D view window. Use the<br />

view control keys and mouse as before to change the view. The default Replay Period is Whole Simulation. This<br />

means that you see the simulation start from still water, the wave building and with it the motions of the system.<br />

Simulation time is shown in the Status bar, top left. Negative time means the wave is still building up from still water<br />

to full amplitude. At the end of the simulation the replay begins again.<br />

The replay consists of a series of "frames" at equal intervals of time. Just as you can "zoom" in and out in space for a<br />

closer view, so <strong>OrcaFlex</strong> lets you "zoom" in and out in time. Click on the Replay Parameters button , edit Interval<br />

to 0.5s and click OK. The animated replay is now much jerkier than before because fewer frames are being shown.<br />

Now click again on Replay Parameters, set Replay Period to Latest Wave and click on the Continuous box to deselect.<br />

The replay period shown is at the end of the simulation and has duration of a single wave period. At the end of the<br />

wave period the replay pauses, then begins again.<br />

Now click on the Replay Step button to pause the replay. Clicking repeatedly on this button steps through the<br />

replay one frame at a time – a very useful facility for examining a particular part of the motion in detail. Click with<br />

the SHIFT key held down to step backwards.<br />

You can then restart the animation by clicking on 'Start Replay' as before. To slow down or speed up the replay, click<br />

on Replay Parameters and adjust the speed. Alternatively use the shortcuts CTRL+F and SHIFT+CTRL+F to make the<br />

replay faster or slower respectively.<br />

To exit from replay mode click on the Stop Replay button .<br />

2.7 MULTIPLE VIEWS<br />

You can add another view of the system if you wish by clicking on the View button . Click again to add a third<br />

view, etc. Each view can be manipulated independently to give, say, simultaneous plan and elevation views. To make<br />

all views replay together, click on Replay Control and check the All Views box. To remove an unwanted view simply<br />

close its view window. To rearrange the screen and make best use of the space, click Window and choose Tile<br />

Vertical (F4) or Tile Horizontal (SHIFT+F4). Alternatively, you can minimise windows so that they appear as small<br />

icons on the background, or you can re-size them or move them around manually with the mouse. These are<br />

standard Windows operations which may be useful if you want to tidy up the screen without having to close a<br />

window down completely.


Tutorial, Looking at Results<br />

2.8 LOOKING AT RESULTS<br />

Now click on the Results button . This opens a Results Selection window.<br />

You are offered the following choices:<br />

24<br />

w<br />

� Results as Tables or Graphs, with various further choices which determine what the table or graph will contain.<br />

� Results for all objects or one selected object.<br />

Select Time History for any line, then select Effective Tension at End A and click the Graph button. The graph<br />

appears in a new window. You can call up time histories of a wide range of parameters for most objects. For lines,<br />

you can also call up Range Graphs of effective tension, curvature, bend moment and many other variables. These<br />

show maximum, mean and minimum values of the variable plotted against position along the line. Detailed<br />

numerical results are available by selecting Summary Results, Full Results, Statistics and Linked Statistics.<br />

Time history and range graph results are also available in numerical form – select the variable you want and press<br />

the Values button. The results can be exported as Excel compatible spreadsheets for further processing as required.<br />

Further numerical results are available in tabular form by selecting Summary Results, Full Results, Statistics and<br />

Linked Statistics.<br />

Results Post-Processing<br />

Extra post-processing facilities are available through Excel spreadsheets.<br />

2.9 GETTING OUTPUT<br />

You can get printed copies of data, results tables, system views and results graphs by means of the File | Print<br />

menu, or by clicking Print on the pop-up menu. Output can also be transferred into a word processor or other<br />

application, either using copy and paste via the clipboard or else export/import via a file.<br />

Note: Printing and export facilities are not available in the demonstration version of <strong>OrcaFlex</strong>.<br />

2.10 INPUT DATA<br />

Take a look through the input data forms. Start by resetting the program: click on the Reset button . This returns<br />

<strong>OrcaFlex</strong> to the reset state, in which you can edit the data freely. (While a simulation is active you can only edit<br />

certain non-critical items, such as the colours used for drawing.)<br />

Now click on the Model Browser button . This displays the data structure in tree form in the Model Browser.<br />

Select an item and double click with the mouse to bring up the data form. Many of the data items are self<br />

explanatory. For details of a data item, select the item with the mouse and press the F1 key. Alternatively use the<br />

question mark Help icon in the top right corner of the form. Have a look around all the object data forms available to<br />

get an idea of the capabilities of <strong>OrcaFlex</strong>.<br />

End of Tutorial<br />

We hope you have found this tutorial useful. To familiarise yourself with <strong>OrcaFlex</strong>, try building and running models<br />

of a number of different systems. The manual also includes a range of examples which expand on particular points of<br />

interest or difficulty.<br />

Finally, please remember that we at <strong>Orcina</strong> are on call to handle your questions if you are stuck.


w<br />

3 USER INTERFACE<br />

3.1 INTRODUCTION<br />

3.1.1 Program Windows<br />

25<br />

User Interface, Introduction<br />

<strong>OrcaFlex</strong> is based upon a main window that contains the Menus, a Tool Bar, a Status Bar and usually at least one 3D<br />

view. The window caption shows the program version and the file name for the current model.<br />

Figure: The <strong>OrcaFlex</strong> main window<br />

Within this main window, any number of child windows can be placed which may be:<br />

3D View Windows showing 3D pictorial views of the model<br />

Graph Windows showing results in graphical form<br />

Spreadsheet Windows showing results in numerical form<br />

Text Windows reporting status<br />

Additional temporary windows are popped up, such as Data Forms for each object in the model (allowing data to be<br />

viewed and modified) and dialogue windows (used to specify details for program actions such as loading and saving<br />

files). While one of these temporary windows is present you can only work inside that window – you must dismiss<br />

the temporary window before you can use other windows, the menus or toolbar.<br />

The actions that you can perform at any time depend on the current Model State.<br />

Arranging Windows<br />

3D View, Graph, Spreadsheet and Text Windows may be tiled so that they sit side-by-side, but they must remain<br />

within the bounds of the main window. The program rearranges the windows every time a new window is created.<br />

3.1.2 The Model<br />

<strong>OrcaFlex</strong> works by building a mathematical computer model of your system. This model consists of a number of<br />

objects that represent the parts of the system – e.g. vessels, buoys, lines etc.<br />

Each object has a name, which can be any length. Object names are not case-sensitive, so Riser, riser and RISER<br />

would all refer to the same object. This behaviour is the same as for Windows file names.<br />

The model always has two standard objects:<br />

� General contains general data, such as title, units etc.<br />

� Environment represents the sea, seabed, waves, current etc.<br />

You can then use the Model Browser or the toolbar to add other objects to represent the parts of your system. There<br />

is no limit, other than the capacity of your computer, to the number of objects you can add to the model. At any time,<br />

you can save your model to a data file.


User Interface, Introduction<br />

3.1.3 Model States<br />

26<br />

w<br />

<strong>OrcaFlex</strong> builds and analyses a mathematical model of the system being analysed, the model being built up from a<br />

series of interconnected objects, such as Lines, Vessels and Buoys. For more details see Modelling and Analysis.<br />

<strong>OrcaFlex</strong> works on the model by moving through a sequence of states, the current state being shown on the status<br />

bar. The following diagram shows the sequence of states used and the actions, results etc. available in each state.<br />

Reset<br />

SIMULATION<br />

UNSTABLE<br />

Figure: Model States<br />

The states used are as follows:<br />

Reset<br />

Calculate<br />

Static<br />

Position<br />

RESET<br />

Calculating<br />

Statics<br />

STATICS COMPLETE<br />

Run<br />

Simulating<br />

SIMULATION<br />

COMPLETE<br />

Pause<br />

Run<br />

Reset<br />

Edit or<br />

Reset<br />

SIMULATION<br />

PAUSED<br />

Extend<br />

Simulation<br />

Reset<br />

Reset<br />

The state in which <strong>OrcaFlex</strong> starts. In Reset state you can freely change the model and edit the data. No results are<br />

available.<br />

Calculating Statics<br />

<strong>OrcaFlex</strong> is calculating the statics position of the model. You can abort the calculation by CLICKING the Reset button.<br />

Statics Complete<br />

The statics calculation is complete and the static position results are available. You are allowed to make changes to<br />

the model when in this state but if you make any changes (except for very minor changes like colours used) then the<br />

model will be automatically reset and the statics results will be lost.<br />

Simulating<br />

The dynamic simulation is running. The results of the simulation so far are available and you can examine the model<br />

data, but only make minor changes (e.g. colours used). You cannot store the simulation to a file while simulating –<br />

you must pause the simulation first.


w<br />

Simulation Paused<br />

27<br />

User Interface, Introduction<br />

There is a simulation active, but it is paused. The results so far are available and you can examine the model data.<br />

You can also store the part-run simulation to a file.<br />

Simulation Complete<br />

The simulation is complete. The simulation results are available and you can store the results to a simulation file for<br />

later examination. You must reset the model, by CLICKING on the Reset button, before significant changes to the<br />

model can be made.<br />

You can use the Extend Dynamic Simulation facility if you wish to simulate for a further period of time.<br />

Simulation Unstable<br />

The simulation has become unstable. The simulation results are available and you can store the results to a<br />

simulation file for later examination. This allows you to try and understand why the simulation has become<br />

unstable. You may also want to examine the results up until the point at which the simulation became unstable.<br />

However, please treat these results with caution – because the simulation eventually went unstable this indicates<br />

that the dynamic simulation may not have converged at earlier simulation times.<br />

You must reset the model, by CLICKING on the Reset button, before significant changes to the model can be made.<br />

Typical model state flow<br />

To illustrate how model states work, here is an example of a typical working pattern:<br />

1. In Reset state, open a new model from a data file or use the current model as the starting point for a new model.<br />

2. In Reset state, add or remove objects and edit the model data as required for the new model. It is generally best<br />

to use a very simple model in the early stages of design and only add more features when the simple model is<br />

satisfactory.<br />

3. Run a static analysis (to get to Statics Complete state) and examine the static position results. Make any<br />

corrections to the model that are needed – this will automatically reset the model. Steps (2) and (3) are<br />

repeated as required.<br />

4. Run a simulation and monitor the results during the simulation (in Simulating state).<br />

5. If further changes to the model are needed then Reset the model and edit the model accordingly. Steps (2) to<br />

(5) are repeated as required.<br />

6. Finalise the model, perhaps improving the discretisation (for example by reducing the time step sizes or<br />

increasing the number of segments used for Lines). Run a final complete simulation (to reach<br />

Simulation Complete state) and generate reports using the results.<br />

3.1.4 Toolbar<br />

The toolbar holds a variety of buttons that provide quick access to the most frequently used menu items. The<br />

selection of buttons available varies with the current Program State.<br />

Button Action Equivalent Menu Item<br />

Open File | Open<br />

Save File | Save<br />

Model Browser Model | Model Browser<br />

New Vessel Model | New Vessel<br />

New Line Model | New Line<br />

New 6D Buoy Model | New 6D Buoy<br />

New 3D Buoy Model | New 3D Buoy<br />

New Winch Model | New Winch<br />

New Link Model | New Link


User Interface, Introduction<br />

Button Action Equivalent Menu Item<br />

New Shape Model | New Shape<br />

Calculate Statics Calculation | Single Statics<br />

Run Simulation Calculation | Run Dynamic Simulation<br />

Pause Simulation Calculation | Pause Dynamic Simulation<br />

Reset Calculation | Reset<br />

Start Replay Replay | Start Replay<br />

Stop Replay Replay | Stop Replay<br />

Step Replay Forwards Replay | Step Replay Forwards<br />

Edit Replay Parameters Replay | Edit Replay Parameters<br />

Add New 3D View Window | Add 3D View<br />

Examine Results Results | Select Results<br />

Help Contents and Index Help | <strong>OrcaFlex</strong> Help<br />

3.1.5 Status Bar<br />

The Status Bar is divided into three fields:<br />

The Message Box<br />

28<br />

w<br />

This is at the left hand end. It shows information about the progress of the current action, such as the name of the<br />

currently selected object, or the current iteration number or simulation time. Error messages are also shown here.<br />

When a statics calculation is done messages showing the progress of the calculation are shown in the message box.<br />

To see all the messages from the statics calculation CLICK on the message box – the Statics Progress Window will<br />

then be opened.<br />

The Program State Indicator<br />

In the centre and shows which state the program is in (see Model States).<br />

The Information Box<br />

This is on the right. It shows additional information, including:<br />

� The global coordinates of the position of the cursor, in the current view plane.<br />

� Distances when using the measuring tape tool.<br />

3.1.6 Mouse and Keyboard Actions<br />

As well as the standard Windows mouse operations such as selection and dragging <strong>OrcaFlex</strong> uses some specialised<br />

actions. Clicking the right mouse button over a 3D View, Graph or Text Window displays a pop-up menu of<br />

frequently used actions, such as Copy, Paste, Export etc. For wire frame 3D Views and Graph Windows the mouse<br />

can be used for zooming. Simply hold the ALT key down and using the left mouse button, drag a box over the region<br />

you want to view.<br />

All of the menu items can be selected from the keyboard by pressing ALT followed by the underlined letters.<br />

Example: To exit from the program (menu: File | Exit) press ALT+F then X, or ALT then F then X<br />

A number of frequently used menu items may also be accessed by shortcut keys, such as CTRL+R to start a replay.<br />

See the tables below. The shortcut keys are also displayed on the <strong>OrcaFlex</strong> menus. We suggest that as you become<br />

more familiar with the operation of <strong>OrcaFlex</strong> that you memorise some of the shortcut keys for actions that you use<br />

frequently.


w<br />

Keys on Main Window<br />

New model<br />

Open file<br />

Save file<br />

Open data<br />

Save data<br />

Help<br />

Print<br />

Show / hide Model Browser<br />

Switch to Model Browser<br />

Calculate static position<br />

Run dynamic simulation<br />

Pause dynamic simulation<br />

Reset<br />

Open results selection form<br />

Go to next window<br />

Go to previous window<br />

Tile windows vertically<br />

Tile windows horizontally<br />

Close selected window<br />

Close program<br />

Keys on Model Browser<br />

View by Groups<br />

Edit data<br />

Move selected objects<br />

Rename object<br />

Locate<br />

Compare<br />

Lock / Unlock objects<br />

Hide/Show<br />

Properties<br />

Cut<br />

Copy<br />

Paste<br />

Delete<br />

Switch to Main Window<br />

Close browser<br />

Keys on Data Forms<br />

Help<br />

Go to next data form<br />

Go to previous data form<br />

Display batch script names for currently selected<br />

data item or table.<br />

29<br />

CTRL+N<br />

CTRL+O<br />

CTRL+S<br />

SHIFT+CTRL+O<br />

SHIFT+CTRL+S<br />

F1<br />

F7<br />

F6<br />

SHIFT+F6<br />

F9<br />

F10<br />

F11<br />

F12<br />

F5<br />

CTRL+F6<br />

SHIFT+CTRL+F6<br />

F4<br />

SHIFT+F4<br />

CTRL+F4<br />

ALT+F4<br />

CTRL+ALT+G<br />

ENTER<br />

CTRL+M<br />

F2<br />

F3<br />

F8<br />

CTRL+L<br />

CTRL+H<br />

ALT+ENTER<br />

CTRL+X<br />

CTRL+C<br />

CTRL+V<br />

DELETE<br />

SHIFT+F6<br />

F6<br />

F1<br />

F6<br />

SHIFT+F6<br />

F7<br />

User Interface, Introduction


User Interface, Introduction<br />

Display Properties Report<br />

Show connections report<br />

Copy form<br />

Export form<br />

Print form<br />

Open calculator<br />

Data Selection Keys<br />

Go to next data item or table<br />

Go to previous data item or table<br />

Go to data item or table labelled with underlined letter<br />

30<br />

ALT+ENTER<br />

F8<br />

F9<br />

F10<br />

CTRL+P<br />

F12<br />

TAB<br />

SHIFT+TAB<br />

ALT+LETTER<br />

Move around within a table ← → ↑ ↓<br />

Select multiple cells in table SHIFT + ← → ↑ ↓<br />

SHIFT+HOME<br />

SHIFT+END<br />

Go to first or last column in table<br />

Go up or down table several rows at a time<br />

Data Editing Keys<br />

HOME END<br />

PGUP PGDN<br />

Enter new value for selected cell Type new value<br />

Edit current value of selected cell<br />

Open drop-down list ALT + ↑ ↓<br />

Move around within new data value being entered ← → HOME END<br />

Accept edit<br />

Accept edit and go to adjacent cell in table ↑ ↓<br />

Cancel edit<br />

Copy selected cell(s) to clipboard<br />

Paste from clipboard<br />

Fill selection from top (copy top cell down)<br />

Fill selection from left (copy leftmost cell to right)<br />

Fill selection from bottom (copy bottom cell up)<br />

Fill selection from right (copy rightmost cell to left)<br />

Insert new rows in table<br />

Delete selected rows from table<br />

Graph Control Keys<br />

Use default ranges<br />

F2<br />

ENTER<br />

ESC<br />

CTRL+C<br />

CTRL+V<br />

CTRL+D<br />

CTRL+R<br />

CTRL+U<br />

SHIFT+CTRL+D<br />

CTRL+L<br />

SHIFT+CTRL+R<br />

INSERT<br />

DELETE<br />

CTRL+T<br />

Zoom ALT+drag, CTRL+wheel<br />

Pan SHIFT+drag<br />

3D View Control Keys<br />

Elevation view<br />

Plan view<br />

CTRL+E<br />

CTRL+P<br />

Rotate viewpoint up (increment view elevation angle) CTRL+ALT+↑<br />

Rotate viewpoint down (decrement view elevation angle) CTRL+ALT+↓<br />

Rotate viewpoint right (increment view azimuth angle) CTRL+ALT+→<br />

w


w<br />

Rotate viewpoint left (decrement view azimuth angle) CTRL+ALT+←<br />

Rotate viewpoint +90°<br />

Rotate viewpoint -90°<br />

31<br />

CTRL+Q<br />

SHIFT+CTRL+Q<br />

User Interface, <strong>OrcaFlex</strong> Model Files<br />

Zoom In CTRL+I, CTRL+wheel, ALT+drag<br />

Zoom Out SHIFT+CTRL+I, CTRL+wheel, SHIFT+ALT+drag<br />

Move view centre – mouse panning SHIFT+drag<br />

Move view centre – fine adjustment ← → ↑ ↓<br />

Move view centre – coarse adjustment CTRL + ← → ↑ ↓<br />

Edit view parameters for current 3D view<br />

Reset to default view<br />

Set as default view<br />

Show entire model<br />

3D View Control Keys (for wire frame graphics only)<br />

Show / Hide local axes<br />

Show / Hide node axes<br />

Undo most recent drag<br />

Lock/Unlock selected object<br />

CTRL+W<br />

CTRL+T<br />

SHIFT+CTRL+T<br />

CTRL+ALT+T<br />

CTRL+Y<br />

CTRL+ALT+Y<br />

CTRL+Z<br />

CTRL+L<br />

Place new object SPACE or ENTER<br />

Edit selected object<br />

Cut selected object to clipboard<br />

Copy selected object, or view if none selected,<br />

to clipboard<br />

Paste object from clipboard (followed by mouse click<br />

or ENTER to position the new object)<br />

Delete selected object<br />

CTRL+F2<br />

CTRL+X<br />

CTRL+C<br />

CTRL+V<br />

DELETE<br />

Measuring tape tool SHIFT+CTRL+drag<br />

Replay Control Keys<br />

Start / Stop replay<br />

Replay faster<br />

Replay slower<br />

Step forwards one frame in the replay and pause<br />

Step backwards one frame in the replay and pause<br />

Edit replay parameters<br />

3.2 ORCAFLEX MODEL FILES<br />

3.2.1 Data Files<br />

CTRL+R<br />

CTRL+F<br />

SHIFT+CTRL+F<br />

CTRL+A<br />

CTRL+B<br />

CTRL+D<br />

<strong>OrcaFlex</strong> models are saved to either binary data files (.dat) or text data files (.yml).<br />

All versions of <strong>OrcaFlex</strong> can read binary data files. Text data files were only introduced in version 9.3a and so cannot<br />

be read by older versions of the program.<br />

Binary data files have strong version compatibility features. For example, when <strong>OrcaFlex</strong> attempts to open a binary<br />

data file written by a later version of the program it is able to report informative compatibility warnings. The<br />

program is not able to be as helpful and informative when working with text data files across program versions.<br />

Whilst we strive to achieve as much compatibility as possible for text data files across program versions, we cannot<br />

achieve the same level of compatibility as that for binary data files.


User Interface, <strong>OrcaFlex</strong> Model Files<br />

32<br />

w<br />

Text data files, as written by <strong>OrcaFlex</strong>, contain only data that is active in the model. For example, if implicit time<br />

integration is selected in the model then all data relating to explicit time integration is excluded from the text data<br />

file. On the other hand, binary data files contain all data whether or not it is active. The fact that the binary data file<br />

contains inactive data can be very useful and so, in general, we would recommend that model building and<br />

development is performed using the binary data file.<br />

Text data files can be created without the use of <strong>OrcaFlex</strong> simply by entering text into a text editor. In general we<br />

would not advocate this approach to model building. For very simple systems it may be a practical approach but<br />

more complex models are usually much easier to build and inspect using the full capabilities and visualisation<br />

strengths of <strong>OrcaFlex</strong>. On the other hand, text data files can be very effective when making minor changes to existing<br />

models. Using text data files for such minor variations of existing models makes it much easier to monitor just what<br />

has been changed, for example by using standard text differencing programs.<br />

Text data files are highly readable and self-documenting which makes them ideal for QA and archival purposes.<br />

Another application well suited to the use of text data files is automation.<br />

3.2.2 Text Data Files<br />

Text data files are used to define and represent <strong>OrcaFlex</strong> models in a human readable and easily editable format.<br />

Text data files can be opened and saved by <strong>OrcaFlex</strong>. A very simple example is shown below:<br />

General:<br />

StageDuration:<br />

- 10.0<br />

- 50.0<br />

Lines:<br />

- Name: Line1<br />

Length, TargetSegmentLength:<br />

- [60.0, 5.0]<br />

- [40.0, 2.0]<br />

- [120.0, 10.0]<br />

This example first defines a 10s build-up stage followed by stage 1 with 50s duration. Then a Line is created and<br />

named "Line1". Finally the section data is specified: three sections are created with varying section lengths and<br />

segment lengths. Default values are used for all data which are not specified.<br />

Note: The formatting (colour, bold, italic etc.) in the examples here has been added to aid readability,<br />

and is not a feature or requirement of text data files themselves.<br />

YAML file format<br />

Text data files use a standard file format called YAML and should be saved with the .yml file extension. The YAML file<br />

format was chosen because it is extremely easy to read and write.<br />

YAML files are plain text files and so can be edited in any text editor. We have found Notepad++ to be a very effective<br />

editor for YAML files. Notepad++ has a tabbed interface for easy editing of multiple files and has code folding and<br />

syntax highlighting facilities that work well with YAML files.<br />

Note: YAML files must be saved with the UTF-8 character encoding.<br />

More details on the YAML format and Notepad++ can be obtained from the following web sites:<br />

� http://en.wikipedia.org/wiki/YAML – YAML page on Wikipedia.<br />

� http://www.yaml.org/ – Official YAML homepage.<br />

� http://www.yaml.org/spec/ – Complete technical specification of YAML.<br />

� http://notepad-plus.sourceforge.net/ – Notepad++.<br />

Elements of a text data file<br />

The most basic element of a text data file is the name/value pair:<br />

UnitsSystem: SI<br />

The name (UnitsSystem) is written first, followed by a colon (:), then a SPACE, and then the value (SI). The names<br />

used in text data files are the same as used to identify data items in batch script files.<br />

Names and values in YAML files can contain spaces and other punctuation:


w<br />

General:<br />

StaticsMethod: Whole System statics<br />

Lines:<br />

- Name: 12" Riser<br />

- Name: Umbilical, upper<br />

- Name: £"!$%^&*(){}[]=+-_#~'@:;/?.>,


User Interface, <strong>OrcaFlex</strong> Model Files<br />

3DBuoys:<br />

- Name: 3D Buoy1<br />

InitialPosition: [0, 0, 10]<br />

DragArea: [100, 100, 30]<br />

Pen: [4, Solid, Yellow]<br />

Without grouping the file would be significantly longer:<br />

3DBuoys:<br />

- Name: 3D Buoy1<br />

InitialX: 0<br />

InitialY: 0<br />

InitialZ: 10<br />

DragAreaX: 100<br />

DragAreaY: 100<br />

DragAreaZ: 30<br />

PenWidth: 4<br />

PenStyle: Solid<br />

PenColour: Yellow<br />

34<br />

w<br />

The majority of grouped data are X,Y,Z components and we adopt the convention that these components appear in<br />

that order when grouped.<br />

YAML files may contain comments which are introduced by a hash (#) character followed by a SPACE. All<br />

subsequent text on the same line is comment and is ignored when <strong>OrcaFlex</strong> reads a text data file. Comments are not<br />

preserved by <strong>OrcaFlex</strong> and any user comments in a manually edited YAML file opened with <strong>OrcaFlex</strong> will be lost if<br />

the file is saved. Comments are formatted in green in the following example:<br />

General:<br />

# Statics<br />

StaticsMethod: Whole System statics<br />

BuoysIncludedInStatics: Individually Specified<br />

# Dynamics<br />

StageDuration:<br />

- 8<br />

- 16<br />

TargetLogSampleInterval: 0.1<br />

# Integration<br />

SimulationIntegrationMethod: Implicit<br />

ImplicitConstantTimeStep: 0.1<br />

A text data file can be rather large, particularly if it contains vessel hydrodynamic data. Code folding editors can help<br />

somewhat, but even so such files can be awkward to work with. The IncludeFile identifier allows you to move<br />

data into a separate file which is then included in the main file:<br />

# File: C:\Desktop\main.yml<br />

VesselTypes:<br />

- Name: FPSO<br />

IncludeFile: FPSO.yml<br />

Vessels:<br />

- Name: Vessel1<br />

VesselType: FPSO<br />

The included file contains just the data for the vessel type:<br />

# File: C:\Desktop\FPSO.yml<br />

Length: 240<br />

RAOResponseUnits: degrees<br />

RAOWaveUnit: amplitude<br />

WavesReferredToBy: period (s)<br />

# ... remainder of large file omitted ...<br />

As well as making the main file shorter and more readable, using this approach can offer significant QA benefits.<br />

In this example we have used a relative path and so the program will look for FPSO.yml in the same directory as the<br />

main text data file.


w<br />

A text data file saved by <strong>OrcaFlex</strong> contains some extra information:<br />

%YAML 1.1<br />

# Program: <strong>OrcaFlex</strong> 9.3a<br />

# File: C:\Desktop\untitled.yml<br />

# Created: 12:35 on 21/07/2009<br />

# User: jamie<br />

# Machine: holly<br />

---<br />

General:<br />

# Statics<br />

StaticsMethod: Whole System statics<br />

BuoysIncludedInStatics: Individually Specified<br />

# Dynamics<br />

StageDuration:<br />

- 8<br />

- 16<br />

TargetLogSampleInterval: 0.1<br />

# Integration<br />

SimulationIntegrationMethod: Implicit<br />

ImplicitConstantTimeStep: 0.1<br />

Environment:<br />

# Seabed<br />

SeabedType: Flat<br />

WaterDepth: 100<br />

SeabedModel: Linear<br />

SeabedNormalStiffness: 100<br />

# Current<br />

RefCurrentSpeed: 0.4<br />

RefCurrentDirection: 180<br />

...<br />

35<br />

User Interface, <strong>OrcaFlex</strong> Model Files<br />

The section between the --- and ... lines is the main body of the file and is known in YAML terminology as a<br />

document. Everything else is in fact optional and can be omitted. A YAML file can contain multiple documents,<br />

separated by --- lines but <strong>OrcaFlex</strong> has no special treatment for such multi-document files and all data is read into<br />

a single <strong>OrcaFlex</strong> model.<br />

The first line (%YAML 1.1) is known as the YAML directive and specifies which version of YAML the file adheres to.<br />

The YAML directive can be omitted. The rest of the header contains a number of comments detailing the version of<br />

<strong>OrcaFlex</strong> which created the file, the file name etc. Again, these comments can be omitted.<br />

Ordering issues<br />

The order in which the data appear in a text data file is very important. <strong>OrcaFlex</strong> processes the file line by line in the<br />

order in which it appears in the file.<br />

Any references (e.g. Lines referring to Line Types) must be ordered so that the referenced object appears before<br />

any references to it. So Line Types appear before Lines in the file. Similarly Vessels and 3D/6D Buoys appear before<br />

Lines, Links, Winches and Shapes so that any connection references (e.g. a Line connected to a Vessel) can be<br />

ordered correctly.<br />

The other ordering issue relates to inactive data. Data which are not currently available are known as inactive data.<br />

For example, data relating to the explicit solver are inactive when the implicit solver is selected. Inactive data cannot<br />

be specified in a text data file.<br />

This rule has implications for the order in which data are presented in the text data file. Consider the following<br />

example:<br />

General:<br />

InnerTimeStep: 0.01<br />

SimulationIntegrationMethod: Explicit<br />

Since the default integration method is the implicit solver the attempt to set the explicit time step<br />

(InnerTimeStep) will fail because it is inactive data. The solution is to set the integration method before setting<br />

the time step:


User Interface, <strong>OrcaFlex</strong> Model Files<br />

General:<br />

SimulationIntegrationMethod: Explicit<br />

InnerTimeStep: 0.01<br />

36<br />

w<br />

This principle applies in general – you should set as soon as possible all data which influences whether other data<br />

are active.<br />

Automation<br />

Text data files can easily be modified and/or generated by computer programs/scripts. This means that the text<br />

data file format, combined with a text processing script language (e.g. Python, Perl, Ruby etc.), can form a very<br />

effective automation tool. The <strong>OrcaFlex</strong> Spreadsheet provides a simple, yet effective, facility for automating the<br />

production of text data files. See the Automation topic Text Data Files: Examples of setting data for examples of<br />

setting various model data items.<br />

Some specialist features have been included in the text data file to aid with automation tasks, as illustrated in the<br />

following example:<br />

BaseFile: base.dat<br />

Riser:<br />

ContentsDensity: 0.8<br />

Length[1]: 180<br />

Delete: Connector<br />

When this text data file is loaded in <strong>OrcaFlex</strong> the program does the following:<br />

1. Opens the <strong>OrcaFlex</strong> binary data file named base.dat, located in the same directory as the text data file.<br />

2. Sets the contents density for the <strong>OrcaFlex</strong> Line called "Riser" to 0.8.<br />

3. Sets the length of the first section of "Riser" to 180.<br />

4. Deletes the object named "Connector".<br />

The BaseFile identifier differs from IncludeFile in that it is able to load either binary or text data files<br />

(IncludeFile only works with text data files). In addition BaseFile clears all existing data in the model before<br />

loading the contents of the specified file. On the other hand, IncludeFile acts incrementally, starting from<br />

whatever state the model is in when the IncludeFile identifier is encountered.<br />

Standard text data files typically specify the entire model. The common automation task of making systematic<br />

variations to a base case requires the ability to specify an existing object for which data modifications are to be<br />

made. This is done using the object's name – in the example above the Riser: line performs this step.<br />

In a similar vein it is a common requirement to modify data for certain items in a list or table without specifying the<br />

entire table. The indexing syntax (Length[1] in the example) performs this task. Note that as for batch script files the<br />

indices are always 1-based.<br />

<strong>Manual</strong>ly edited text data files<br />

Saving a text data file, then editing it is a good way to create a base file for automation, or to discover data names<br />

and data structure for an object. However, please be aware that this is a one way process. <strong>OrcaFlex</strong> reads and<br />

interprets a text data file line by line to build the model incrementally, discarding the lines once processed. When<br />

saving a file <strong>OrcaFlex</strong> exports each object, including any default values. Consequently the save process is not the<br />

inverse of the load process and any manual modifications to the input file will be overwritten when the file is saved<br />

by <strong>OrcaFlex</strong>.<br />

In the short automation example above, if the model created when this file is loaded is saved, the text data file would<br />

contain data for all the objects imported by the BaseFile command, the full data for the line Riser and other<br />

default data not specified in the input file.<br />

3.2.3 Simulation Files<br />

Results from <strong>OrcaFlex</strong> calculations (statics or dynamics) are saved to simulation files (.sim). These are binary files<br />

containing the following sections:<br />

� The model data. This section is essentially a binary data file.<br />

� The latest calculated state (positions, loads etc.) of the model. This section allows static state results to be<br />

retrieved and also enables partially-run dynamic simulations to be continued.


w<br />

37<br />

User Interface, Model Browser<br />

� The log file which contains results for a dynamic simulation. This section is not present for static state<br />

simulation files.<br />

Simulation files can be generated in a number of different ways:<br />

� Interactively from the main <strong>OrcaFlex</strong> window. After a calculation (statics or dynamics) has performed then a<br />

simulation can be saved using the File | Save or File | Save As menu items.<br />

� From the batch processing form.<br />

� From Distributed <strong>OrcaFlex</strong>.<br />

� From the <strong>OrcaFlex</strong> programming interface (OrcFxAPI).<br />

Similarly, results can be post-processed from simulation files in a number of different ways:<br />

� Interactively from the results form.<br />

� From the <strong>OrcaFlex</strong> spreadsheet.<br />

� From the <strong>OrcaFlex</strong> programming interface.<br />

3.3 MODEL BROWSER<br />

At any time you can use the Model Browser to see what objects you have in your model. To display the model<br />

browser, use the model browser button or the Model | Model Browser menu item or use the keyboard shortcuts<br />

(F6 to open the model browser).<br />

Figure: Model Browser


User Interface, Model Browser<br />

38<br />

w<br />

The Model Browser consists of a list of all the objects in the model, arranged into categories according to object type.<br />

Several symbols are used in the list of objects:<br />

Categories can be opened, to show their contents, or closed, to simplify viewing a complex model.<br />

Objects. Use double click to view or edit the object's data.<br />

Locked. These objects cannot be dragged by the mouse in the 3D View.<br />

You can navigate the list and select the object required by clicking with the mouse, or using the arrow keys and<br />

return. If the list is longer than the window then you can either enlarge the window or use the scroll bar.<br />

Note: More than one object can be selected in the model browser. This allows you to perform the same<br />

action (e.g. delete, copy, hide, show, locate) on many objects at once. To select more than one object<br />

you use the standard Windows key presses CTRL+CLICK to add to a selection and SHIFT+CLICK to<br />

extend a selection.<br />

Hint: If you have all objects in the model browser selected then it can be difficult to de-select them. The<br />

simplest way is to use CTRL+CLICK to de-select one item and then to CLICK that item again to select<br />

it alone.<br />

Model Browser Facilities<br />

The model browser menus, and its pop-up menu, provide the following model management facilities. For details of<br />

keyboard shortcuts see Keys on Model Browser.<br />

Library<br />

The Library menu facilities allow you to open a second data file. You can then Import objects from that second file<br />

into the current model. You can also import using drag and drop with the mouse.<br />

Add<br />

Add a new object to the model.<br />

Edit<br />

Open the object's data form. This action can also be invoked by double-clicking an item, or by selecting it and<br />

pressing ENTER.<br />

Move Selected Objects<br />

Opens the Move Selected Objects Wizard.<br />

Rename<br />

Rename the selected object. You can also rename by single-clicking the selected object.<br />

Locate<br />

Finds and highlights the object in any open 3D view windows. This is useful in complex models where many objects<br />

are on the 3D view. The highlighting method is determined by the Locate Object Method preference.<br />

Compare<br />

Compares data for the two selected objects. The objects can be simple <strong>OrcaFlex</strong> objects (e.g. Vessels, Lines etc.) or<br />

browser groups. The Compare Data configuration is used to perform the comparison.<br />

Lock/Unlock<br />

Lock or unlock the selected object.<br />

Hide/Hide All/Show/Show All<br />

Control whether the objects are drawn on 3D views.<br />

Expand All/Collapse All<br />

Expands or collapses all top level containers in the current browser view.<br />

Properties<br />

Shows the object properties form for the selected object.


w<br />

Cut/Copy<br />

Cut or Copy the selected object to the clipboard.<br />

Paste<br />

Paste an object from the clipboard into the model.<br />

Delete<br />

Delete the selected object from the model.<br />

Floating, Dock Left, Dock Right<br />

39<br />

User Interface, Model Browser<br />

Determines whether the Model Browser is a separate, floating, top-level window or is docked inside the main<br />

<strong>OrcaFlex</strong> window.<br />

Reorder<br />

You can use drag and drop with the mouse to reorder objects in the model. This is useful if you are working on the<br />

static position of one particular line – you can drag it up to the top of the list of lines, so that it will be tackled first<br />

when <strong>OrcaFlex</strong> does the static analysis.<br />

Switch to Main Window<br />

The browser's Window menu enables you to switch focus to the main form without closing the browser window. A<br />

corresponding command on the main form's Window menu switches focus back.<br />

3.3.1 Model Browser Views<br />

There are 2 ways of viewing objects in the model browser: by Types or by Groups. You can switch between views<br />

by clicking on the model browser View | View by Groups menu item, or though the popup menu.<br />

Types View<br />

This is the traditional model browser view. The browser has a number of folders containing objects of the same<br />

type. For example all the lines are contained in a folder called "Lines". Objects can be reordered within a folder but<br />

they cannot be moved to a different folder.<br />

Groups View<br />

This view allows you to customise how the objects are arranged in the model browser. You can add any number of<br />

browser groups to the browser. These groups are simply folders in the browser tree. Groups can contain any<br />

number of objects or other groups. In this way a hierarchical structure for the model can be created.<br />

To add groups you select the Edit | Add Group menu item or use the popup menu. Groups can be renamed in the<br />

same way as other objects. Objects can be added to a group by dragging the objects onto the group. Any number of<br />

objects can be added to a group in one operation by first selecting the objects and then dragging them. This multiple<br />

selection is performed using the standard Windows key presses CTRL+CLICK to add to a selection and SHIFT+CLICK to<br />

extend a selection. Groups can be dragged into other groups and so a hierarchical structure for the model can be<br />

created.<br />

As well as allowing you the freedom to structure your model however you like, the Groups View allows you to<br />

perform the same action (e.g. delete, copy, hide, show, locate) on all objects in a group. The grouping structure is<br />

also used when cycling through data forms- clicking the Next button takes you to the next object in the groups view.<br />

3.3.2 Move Selected Objects Wizard<br />

This wizard allows you to move and rotate a number of objects en masse. The wizard is most useful when you select<br />

multiple objects, a group or a number of groups or even the entire model.<br />

To use the wizard you must first open the Model Browser and select the objects which you wish to move. Then click<br />

Move Selected Objects on the browser's edit menu (also available from the popup menu).<br />

Selecting objects<br />

Before using the wizard you must select (in the model browser) the objects which you wish to move. There are a<br />

variety of ways in which you can do this. We list a few of the more useful methods below:<br />

� Select a single object.


User Interface, Libraries<br />

40<br />

w<br />

� Select multiple objects. You can do this in the model browser using CTRL+CLICK to add to a selection and<br />

SHIFT+CLICK to extend a selection.<br />

� Select an object type folder. This works when the model browser is in Types View mode. For example select the<br />

Lines folder if you wish to move all the lines in a model.<br />

� Select a group. This works when the model browser is in Groups View mode. This allows you to move all objects<br />

in that group.<br />

� Select the entire model. This is easiest to do when the model browser is in Groups View mode. The first item in<br />

the model browser is titled "Model". Select this item if you wish to move all objects in the model.<br />

There is no limitation to the type of selections you can make. If you wish to move 2 groups then select both of them<br />

(using CTRL+CLICK) and open the wizard.<br />

Points<br />

Note: If your selection includes an item which contains other objects (e.g. a group or an object type<br />

folder) then all objects contained by that item will be moved by the wizard.<br />

The wizard shows a list of the points associated with each selected object. For objects like buoys, vessels and shapes<br />

a single point is shown. For objects like lines, links and winches with multiple connection points the list shows each<br />

connection point for that object. The list also shows the global coordinates of each point.<br />

For each point you have the option of including or excluding it in the move operation. This might be useful if you<br />

wanted to move only the End A line connection points and leave the End B connection points unchanged, for<br />

example.<br />

Move specified by<br />

There are 4 methods of specifying how the objects are moved.<br />

Displacement<br />

For this method you specify a position change (i.e. a displacement) which will be applied to all the points included in<br />

the move operation.<br />

Polar Displacement<br />

This method is similar to the Displacement method. Here you specify a direction and distance which determine a<br />

position change. This is applied to all the points included in the move operation.<br />

New Position<br />

Here you give a reference point and its new position. The same displacement is applied to all other points included<br />

in the move.<br />

Rotation<br />

This method rotates the included points in the horizontal plane. You specify an angle of rotation and a central point<br />

about which the rotation is performed. Note that the environment data (e.g. wave and current directions, seabed<br />

direction etc.) is not included in the rotation.<br />

Moving the objects<br />

Once you have decided which objects to include in the move and how the move is specified you are ready to actually<br />

move the objects. This is done by clicking the Move button. If you change your mind and decide not to move the<br />

objects then simply click the Close button.<br />

3.4 LIBRARIES<br />

An <strong>OrcaFlex</strong> Library is a collection of <strong>OrcaFlex</strong> objects (line types, lines, buoys etc.) stored in an ordinary <strong>OrcaFlex</strong><br />

data file. For example, a library may contain all the standard Line Types that you use regularly. Once such a library<br />

file has been built you can quickly build new models using the library – this gives faster model building and can<br />

make QA procedures safer.<br />

To open a library file, use the Library menu on the Model Browser. Note that any <strong>OrcaFlex</strong> data file can be opened as<br />

a library file, and this makes it easy to use the model browser to copy objects from one model to another.


w<br />

3.4.1 Using Libraries<br />

41<br />

User Interface, Libraries<br />

Libraries allow you to easily import objects from one <strong>OrcaFlex</strong> model to another. To do this run <strong>OrcaFlex</strong> and open<br />

the model browser by clicking the model browser button or the Model | Model Browser menu item, or pressing<br />

F2. The model browser should look like:<br />

Now you open your file as a library. To do this click the open button on the model browser and select your data<br />

file. Now the model browser will look like:


User Interface, Libraries<br />

42<br />

w<br />

We are now going to copy some objects from the right hand pane to the left hand pane. To do so select the required<br />

line types and click the import button . As an alternative to the import button the objects can be dragged from<br />

the right hand pane to the left hand pane or the Library | Import menu item can be used.<br />

Note that you can select a number of objects and import them all in one go. You do this by using the standard<br />

Windows key presses CTRL+CLICK to add to a selection and SHIFT+CLICK to extend a selection. If you do this the<br />

library will look like:


w<br />

43<br />

User Interface, Libraries<br />

Once you have imported the required objects you can close the library by selecting the Library | Close menu item<br />

on the model browser. Now the model browser looks like:


User Interface, Menus<br />

Here are some other points about using library files:<br />

44<br />

w<br />

� Because library files are simply ordinary <strong>OrcaFlex</strong> data files, you can temporarily treat any <strong>OrcaFlex</strong> data file as<br />

a library. This allows you to import objects from one <strong>OrcaFlex</strong> data file to another.<br />

� You can re-size the model browser by dragging its border. You can also control the relative sizes of its two<br />

panes, by dragging the right border of the left pane.<br />

� You can view, but not edit, the data for a library model object, by double clicking it in the Model Browser or by<br />

selecting it and using the pop-up menu.<br />

� When an object is imported from a library, the current model may already have an object of that name. In this<br />

case <strong>OrcaFlex</strong> automatically gives the object a new name based on the old name.<br />

3.4.2 Building a Library<br />

A library file is simply an <strong>OrcaFlex</strong> data file – you can use any <strong>OrcaFlex</strong> data file as a library. In practice it is most<br />

convenient to put your commonly used <strong>OrcaFlex</strong> objects into files designated as <strong>OrcaFlex</strong> library files.<br />

You build a library file in the same way as you build a standard <strong>OrcaFlex</strong> data file. Starting with a blank model you<br />

can add objects in the usual way and set their data. Typically, however, you would want to reuse objects that had<br />

previously been created and used for a project.<br />

To do this you would open the model browser and load your project data file as a library using the open button<br />

on the model browser. Then you import the required objects as described in Using Libraries. This procedure can be<br />

repeated with a number of different data files until you have all the objects you wish to keep in the library. Then you<br />

should close the model browser and save the data file by clicking the button on the main <strong>OrcaFlex</strong> form. This<br />

data file can now be used as a library.<br />

Notes: Because they are <strong>OrcaFlex</strong> models, libraries contain General and Environment data, but these<br />

would not usually be used, except perhaps for the General data Comment field, which can act as a<br />

title for the library.<br />

Because the library file is just an ordinary <strong>OrcaFlex</strong> data file, it can also be opened using File |<br />

Open. This allows you to edit the data of the objects in the library.<br />

You can set up as many library files as you wish. For example you might have separate libraries for Line Types,<br />

Attachment Types, Vessel Types, Variable Data Sources etc., or you may choose to use just one library for<br />

everything. The model browser's Library menu contains a list of the most recently used libraries.<br />

3.5 MENUS<br />

<strong>OrcaFlex</strong> has the following menus:<br />

� The File menu has the file opening and saving commands, plus commands for printing or exporting data or<br />

results and managing libraries.<br />

� The Edit menu has data and object editing facilities.<br />

� The Model menu gives access to the model building facilities.<br />

� The Calculation menu provides commands for starting and stopping analyses, including batch processing.<br />

� The View menu provides view control.<br />

� The Replay menu provides replay control.<br />

� The Graph menu gives you access to facilities related to the currently active graph window.<br />

� The Results menu leads to the results facilities.<br />

� The Tools menu allows you adjust preferences and to lock or unlock objects.<br />

� The Workspace menu allows you to save and restore collections of view, graph and spreadsheet windows.<br />

� The Window menu gives access to the various windows that are available, and allows you to adjust the layout of<br />

your windows.<br />

� The Help menu leads to the various help documentation that is available.


w<br />

3.5.1 File Menu<br />

New<br />

Deletes all objects from the model and resets data to default values.<br />

Open<br />

Open an <strong>OrcaFlex</strong> file – either a data file (.dat or .yml) or a simulation file (.sim).<br />

45<br />

User Interface, Menus<br />

You can also open an <strong>OrcaFlex</strong> file by dragging and dropping it onto the <strong>OrcaFlex</strong> window. For example if you have<br />

Windows Explorer running in one window and <strong>OrcaFlex</strong> running in another then you can ask <strong>OrcaFlex</strong> to open a file<br />

by simply dragging it from Explorer and dropping it over the <strong>OrcaFlex</strong> window.<br />

If you open a data file then <strong>OrcaFlex</strong> reads in the data, whereas if you select a simulation file then <strong>OrcaFlex</strong> reads in<br />

both the data and the simulation results. To read just the data from a simulation file, you can use the Open Data<br />

menu item.<br />

Save<br />

Save an <strong>OrcaFlex</strong> file – either a data file (.dat or .yml) or a simulation file (.sim) – to the currently selected file name.<br />

If a file of that name already exists then it is overwritten.<br />

If calculation results (either statics or dynamics) are available then a simulation file will be saved. Otherwise a data<br />

file will be saved.<br />

Note: You cannot save a dynamic simulation while it is running – you must pause the simulation first.<br />

Save As<br />

This is the same as Save but allows you to specify the file name to save to. If a file of that name already exists then<br />

you are asked whether to overwrite the file.<br />

When saving data you can choose either the binary file format (.dat) or the text file format (.yml) from the Save as<br />

type drop down list.<br />

Open Data<br />

Read the data from an existing data file or simulation file, replacing the existing model. If a simulation file is<br />

specified then <strong>OrcaFlex</strong> reads just the data from it, ignoring the simulation results in the file.<br />

Save Data<br />

Save the data to the currently selected file name, using extension .dat or .yml. If a file of that name already exists<br />

then it is overwritten.<br />

Save Data As<br />

This is the same as Save Data but allows you to specify the file name to save to. If a file of that name already exists<br />

then you are asked whether to overwrite the file.<br />

You can choose either the binary file format (.dat) or the text file format (.yml) from the Save as type drop down list.<br />

Compare Data<br />

Compares the data of two <strong>OrcaFlex</strong> models. See Comparing Data for details.<br />

Properties<br />

Displays the system file properties dialog for the current file. This is mainly intended to make it easier to find the full<br />

path for files with long names.<br />

Submit to Distributed <strong>OrcaFlex</strong><br />

Submit the current file for processing by Distributed <strong>OrcaFlex</strong>. For this option to be available, either the Distributed<br />

<strong>OrcaFlex</strong> Viewer or Client must also be installed on the machine.<br />

Selected Printer<br />

Allows you to change the selected printer.


User Interface, Menus<br />

Printer Setup<br />

46<br />

w<br />

Calls up the Printer Setup dialogue window. This standard Windows dialogue is used to select which printer to use,<br />

and allows you to control the way that it is used – the details vary from printer to printer, and depend on the printer<br />

manufacturer's device driver currently installed. Please refer to the manuals for your printer as well as the<br />

Microsoft documentation.<br />

Print<br />

Display the Print form, allowing you to print 3D Views, Graphs, Spreadsheets or Text Windows. See Printing.<br />

Most Recent Files<br />

List of the most recently used files. Selecting an item on the list causes the file to be opened.<br />

Exit<br />

Close <strong>OrcaFlex</strong>.<br />

3.5.2 Edit Menu<br />

Undo Drag<br />

Undo the most recent drag. This is useful if you accidentally drag an object.<br />

Cut<br />

Copies the current selection to the clipboard and then deletes it.<br />

Copy<br />

If there is a currently selected object (see Selecting Objects), then that object is copied to the clipboard. You can then<br />

use Edit | Paste to create duplicate copies of the object. The data for the object is copied to the clipboard in text form,<br />

from where it can be pasted into a word processor document.<br />

Note: After pasting into a word processor, you will probably need to put the text into a fixed space font<br />

since much of the data is in tables.<br />

If there is no currently selected object then the currently selected 3D view, text window, graph or spreadsheet is<br />

copied to the clipboard.<br />

Paste<br />

Insert object from clipboard. This can be used to duplicate an object several times within the model. After selecting<br />

Paste, the object is inserted at the next mouse CLICK position in a 3D view.<br />

If the current window is a Spreadsheet then the contents of the clipboard are pasted into the spreadsheet.<br />

Delete<br />

If the active window is a 3D View then the currently selected object is deleted. Before the object is deleted, any<br />

connected objects are disconnected, and any graphs associated with the object are closed.<br />

If the active window is a Spreadsheet then the selected cells are cleared.<br />

Select All<br />

Selects all the cells in a Spreadsheet.<br />

3.5.3 Model Menu<br />

Model Browser<br />

Toggles the visibility of the Model Browser.


w<br />

New Vessel<br />

New Line<br />

New 6D Buoy<br />

New 3D Buoy<br />

New Winch<br />

New Link<br />

New Shape<br />

47<br />

User Interface, Menus<br />

Create new objects. The mouse cursor changes to the New Object symbol . The object is placed at the position of<br />

the next mouse CLICK within a 3D View. A three dimensional position is generated by finding the point where the<br />

mouse CLICK position falls on a plane normal to the view direction and passing through the View Centre. Vessels are<br />

always placed initially at the sea surface.<br />

Show Connections Report<br />

Displays a spreadsheet containing information about all object connections in the model.<br />

Delete Unused Types<br />

Deletes any types (e.g. Line Types, Clump Types etc.) that are not in use. This is sometimes useful to simplify a data<br />

file, or to find out which types are in use.<br />

Delete Unused Variable Data Sources<br />

Deletes any variable data sources that are not in use. This is sometimes useful to simplify a data file, or to find out<br />

which variable data sources are in use.<br />

Use Calculated Positions<br />

This menu item is available after a successful static iteration or when the simulation is finished or paused.<br />

If the model is in the statics complete state then clicking the menu item sets the initial positions of buoys, vessels<br />

and free line ends to be the calculated static positions. This can be desirable when setting up a model, since the<br />

positions found are likely to be good estimates for the next statics calculation.<br />

If the model is in the simulation paused or stopped state, then clicking the menu item sets the initial positions of<br />

buoys and free line ends to be the latest positions in the simulation. This is useful when <strong>OrcaFlex</strong> statics fails to find<br />

an equilibrium configuration. In such cases you can use dynamics with no wave motion to find the static equilibrium<br />

position and then click Use Calculated Positions.<br />

If a replay is active then clicking the menu item sets the initial positions of buoys and free line ends to be the<br />

positions at the latest replay time.<br />

Use Specified Starting Shape for Lines<br />

This menu item is an extension of Use Calculated Positions. As well as setting the initial positions of buoys, vessels<br />

and free line ends it modifies data for all Lines in the following way:<br />

1. The Step 1 Statics Method is set to User Specified.<br />

2. The User Specified Starting Shape data are set to the calculated node positions. As described above these<br />

positions are either the results of a static calculation or the results of a dynamic simulation.<br />

Use Static Line End Orientations<br />

This menu item is only available after a successful static analysis. Clicking the menu item sets the line end<br />

orientation data, for all line ends in the model that have zero connection stiffness, to the orientations found in the<br />

static analysis. This is done as follows.<br />

� For any line end with zero bend connection stiffness, the end azimuth and end declination will be set to the<br />

azimuth and declination of the end node, as found by the static analysis.


User Interface, Menus<br />

48<br />

w<br />

� If the line includes torsion and the line end connection twist stiffness is zero, then the end gamma will be set to<br />

the gamma of the end node, as found by the static analysis.<br />

This action can be useful if you want to set the line end orientation to that which gives zero end moments when the<br />

line is in its static position. To do this first set the end connection stiffness values to zero, then run the static analysis<br />

and then click the Use Static Line End Orientations menu item. You can then set the end connection stiffness to<br />

their actual values.<br />

3.5.4 Calculation Menu<br />

Single Statics<br />

Start the single statics calculation (see Static Analysis). Progress and any error messages that occur are reported in<br />

the Statics Progress Window, which is shown as a minimised window icon. The statics calculation can be<br />

interrupted by CLICKING the Reset button.<br />

Multiple Statics<br />

Starts the multiple offset statics calculation (see Multiple Statics). Progress and any error messages that occur are<br />

reported in the Statics Progress Window, which is shown as a minimised window icon. The statics calculation can be<br />

interrupted by CLICKING the Reset button.<br />

Run Dynamic Simulation<br />

Start a dynamic simulation (see Dynamic Analysis). If necessary, <strong>OrcaFlex</strong> will automatically do a statics calculation<br />

first. During the simulation, the Status Bar shows the current simulation time and an estimate of the time that the<br />

simulation will take, and all 3D View windows and Graphs are updated at regular intervals.<br />

Pause Dynamic Simulation<br />

Pause the simulation. To save the results of a part-run simulation you need to pause it first. The simulation can be<br />

restarted by CLICKING the Run button.<br />

Extend Dynamic Simulation<br />

This facility is only available when the current simulation is either paused or completed. It adds another stage to the<br />

current simulation, without having to reset. You are asked to specify the length of the new stage. You can then<br />

continue the simulation, without having to restart it from scratch. This is particularly useful if you have a simulation<br />

that has not been run for long enough.<br />

Note that data for the new stage, e.g. for winch control and vessel prescribed motion, are initially set to be the same<br />

as for the previous stage. However, the data for the new stage can be edited because the new stage has not yet<br />

started.<br />

Reset<br />

Reset the model, discarding any existing results. The model can then be edited or a new model loaded.<br />

View Warnings<br />

Displays a window allowing you to review all warnings displayed by <strong>OrcaFlex</strong> during a calculation (statics or<br />

dynamics).<br />

This feature is particularly useful for simulations run in batch mode or by Distributed <strong>OrcaFlex</strong>. In these<br />

circumstances warnings are not displayed since to do so would require user intervention.<br />

Line Setup Wizard<br />

Opens the Line Setup Wizard. The wizard is only available when the current simulation is in Reset state.<br />

Wave Scatter Conversion<br />

Opens the Wave Scatter Conversion form. This facility converts a scatter table of sea states to a scatter table of<br />

regular (i.e. individual) waves.<br />

Batch Processing<br />

Run a batch of analyses automatically while the program is unattended. See Batch Processing for details.


w<br />

3.5.5 View Menu<br />

Change Graphics Mode<br />

Toggles the graphics mode between wire frame and shaded.<br />

Edit View Parameters<br />

Adjust the View Parameters for the active 3D View.<br />

Rotate Up / Down / Left / Right<br />

Change the view direction, for the active 3D View, by the view rotation increment.<br />

Plan<br />

Set the active 3D View to a plan view (Elevation = 90°).<br />

Elevation<br />

Set the active 3D view to an elevation view (Elevation = 0°).<br />

Rotate 90 / Rotate -90<br />

Increase (or decrease) the view azimuth by 90°, for the active 3D view.<br />

Zoom In / Zoom Out<br />

Click the zoom button to zoom in (decrease view size) or SHIFT+CLICK it to zoom out (increase view size).<br />

Reset to Default View<br />

Set the view parameters for the active 3D View to be the default view of the model.<br />

Set as Default View<br />

Set the default view of the model to be the view parameters of the active 3D View.<br />

Show Entire Model<br />

Set the view parameters for the active 3D View so that the entire model will be displayed.<br />

Axes<br />

This submenu gives you control of the 3D View Axes Preferences.<br />

3.5.6 Replay Menu<br />

Edit Replay Parameters<br />

49<br />

User Interface, Menus<br />

Adjust the Replay Parameters, such as the period of simulation to replay, the time interval between frames, the<br />

replay speed etc. For more information see Replays.<br />

Start / Stop Replay<br />

Starts or stops the replay.<br />

Step Replay Forwards, Step Replay Backwards<br />

Step the replay forwards or backwards one frame at a time. Click the button to step forwards; CLICK with SHIFT held<br />

down to step backwards.<br />

Replay Faster / Slower<br />

Increase or decrease the replay frame rate (replay speed).<br />

Export Video<br />

Exports the replay as a video clip in AVI file format. See Replays for more details.


User Interface, Menus<br />

3.5.7 Graph Menu<br />

Use Default Ranges<br />

Sets the graph axes to their original ranges<br />

Values<br />

Displays a spreadsheet containing the numerical values on which the graph is based.<br />

Spectral Density (only available for time history graphs)<br />

Opens a new spectral density graph.<br />

Empirical Cumulative Distribution (only available for time history graphs)<br />

Opens a new empirical cumulative distribution graph.<br />

Rainflow half-cycle Empirical Cumulative Distribution (only available for time history graphs)<br />

Opens a new rainflow half-cycle empirical cumulative distribution graph.<br />

Properties<br />

Opens the graph properties form (which can also be opened by double clicking the graph).<br />

3.5.8 Results Menu<br />

Select Results<br />

50<br />

w<br />

Display the results form which allows you to choose from the currently available selection of graphs and results<br />

tables. Graphs such as Time Histories, XY Graphs and Range Graphs may be created before a simulation has been<br />

run, thus allowing you to watch the variables during a simulation.<br />

Fatigue Analysis<br />

Opens the Fatigue Analysis form.<br />

Modal Analysis<br />

Opens the Modal Analysis form.<br />

Report Vessel Response<br />

Opens the Vessel Response form.<br />

3.5.9 Tools Menu<br />

Lock / Unlock Selected Object<br />

Locking an object prevents it from being accidentally dragged or connected using the mouse on 3D views, for<br />

example if you nudge the mouse slightly while trying to DOUBLE CLICK. Lock / Unlock Selected Object toggles the lock<br />

on the currently selected object. If the lock is on, it will be switched off. If the lock is off, then it will be switched on.<br />

Locked Objects may still have their positions edited in the data Edit Forms. The status of the object locks is shown<br />

by symbols in the Model Browser.<br />

Lock / Unlock All Objects<br />

Locks or unlocks all objects in the model.<br />

Set Thread Count<br />

Allows you to change the number of execution threads used by <strong>OrcaFlex</strong> for parallel processing.<br />

Calculate Speed Index<br />

The Speed Index is an approximate measure of how quickly a machine can perform <strong>OrcaFlex</strong> simulations. Larger<br />

values correspond to faster machines. The Speed Index is also reported by Distributed <strong>OrcaFlex</strong>.<br />

The Speed Index is calculated by performing a series of floating point calculations that are representative of the<br />

calculations performed by <strong>OrcaFlex</strong> itself. The value reported is meant only to give an estimate of the relative<br />

performance of similar machines. It is always preferable, if possible, to compare actual <strong>OrcaFlex</strong> simulation run<br />

times for models representative of your typical use.


w<br />

Preferences<br />

51<br />

User Interface, Menus<br />

Allows you to control various program settings so that you can customise the program to the way you prefer to<br />

work. See Preferences.<br />

3.5.10 Workspace Menu<br />

Open Workspace<br />

Opens a previously saved workspace file and restores the window layout described in that workspace file.<br />

Save Workspace<br />

Save the current window layout to a workspace file.<br />

Preserve axes ranges<br />

If this option is checked then graph axes ranges will be written to the workspace file. When the workspace is<br />

subsequently opened, those axes ranges will be restored.<br />

If this option is not checked then graph axes ranges are not written to the workspace file. When the workspace is<br />

subsequently opened, default axes ranges are chosen based on the extent of the curves shown in the graph.<br />

Make default for this file, Make default for this folder<br />

Makes the current window layout the default workspace for the current simulation file or for the current folder,<br />

respectively. The default workspace for a simulation file will be restored whenever you open that file. The default<br />

workspace for a folder will be restored whenever you open any simulation file in that folder.<br />

If a default workspace exists for a both a file and the folder containing the file, then the default for the file is used.<br />

Use file default, Use folder default<br />

Applies the default workspace to the current model. This is useful if you have changed the window layout and wish<br />

to restore the default workspace layout without re-loading the model.<br />

Remove file default, Remove folder default<br />

Deletes the default workspace.<br />

Most Recent Files<br />

List of the most recently saved workspaces in the directory which contains the current model. Selecting an item on<br />

the list causes the workspace to be loaded.<br />

3.5.11 Window Menu<br />

Add 3D View<br />

Add another 3D View Window. Having multiple views on screen allows you to watch different parts of the system<br />

simultaneously, or to see different views at the same time (for example a plan and an elevation).<br />

Tile Vertical, Tile Horizontal<br />

Arranges all the windows (3D View, graph or spreadsheet) so that they fill the main window area and fit side by side<br />

without overlapping. The program automatically tiles windows every time a new window is created or deleted.<br />

Switch to Model Browser<br />

This command, and the corresponding command on the model browser's Window menu, enable you to switch focus<br />

between the main form and the model browser window.<br />

Statics Progress<br />

Displays the Statics Progress Window.<br />

External Function Output<br />

Displays a window containing the diagnostics text produced by external functions.<br />

Window List<br />

This is a list of all currently open windows. If a window is hidden under others it can be selected easily from this list.


User Interface, 3D Views<br />

3.5.12 Help Menu<br />

<strong>OrcaFlex</strong> Help<br />

Opens the <strong>OrcaFlex</strong> on-line help system.<br />

What's New<br />

Gives a list of recent improvements and alterations to <strong>OrcaFlex</strong>.<br />

Tutorial<br />

Opens the help file at the start of the <strong>OrcaFlex</strong> tutorial.<br />

Examples<br />

Opens the help file at the introduction to the <strong>OrcaFlex</strong> Examples topics.<br />

Keyboard Shortcuts<br />

Lists the keyboard shortcuts used by <strong>OrcaFlex</strong>.<br />

<strong>Orcina</strong> Home Page<br />

Opens the <strong>Orcina</strong> homepage (www.orcina.com).<br />

About<br />

52<br />

w<br />

Displays a window giving the program version, details about <strong>Orcina</strong> Ltd and various other miscellaneous<br />

information.<br />

3.6 3D VIEWS<br />

3D Views are windows showing a spatial representation of the model. Two distinct types of 3D View are available:<br />

wire frame shows an isometric projection of the model; shaded draws the model as solid objects with lighting,<br />

shading, perspective and hidden line removal.<br />

Figure: A wire frame 3D View (left) alongside a shaded 3D View (right)


w<br />

53<br />

User Interface, 3D Views<br />

3D View windows may be rotated, zoomed and panned to allow any aspect of the system to be viewed. The view is<br />

controlled by a number of View parameters – see View Parameters – and the caption of a 3D View window shows<br />

the current View Azimuth and View Elevation values, while a scale bar in the view indicates the current View Size.<br />

Multiple view windows may be placed side-by-side so that you can view different parts of the system<br />

simultaneously or view from different angles (for example a plan and elevation view). This allows you to build nonin-plane<br />

models on screen with the mouse. Further 3D View windows are added by using the Window | Add 3D<br />

View menu item or by CLICKING on the Add 3D View button on the tool bar. Windows may be arranged by dragging<br />

their borders or using the Window | Tile Vertical/Horizontal menu items. 3D Views may be closed by CLICKING the<br />

cross at the top right-hand corner.<br />

The objects in a 3D view are "live" in the sense that you can use the mouse pointer to select objects, drag them<br />

around in the view and make connections between objects. See Selecting Objects, Creating and Destroying Objects,<br />

Dragging Objects, Object Connections, for details. If you DOUBLE CLICK on an object then the data form for that object<br />

appears, so that you can examine or edit its data.<br />

Note: When using the shaded view objects cannot be selected, dragged etc. For this reason, the wire<br />

frame view is most useful when building your model.<br />

After running a simulation, or loading a simulation file, a dynamic replay (animation) can be shown in one or more<br />

3D View windows. A replay shows a sequence of snapshots of the model taken at specified intervals throughout part<br />

or all of the simulation. Replays may be played in just one 3D View window, or in all of them simultaneously – see<br />

Preferences.<br />

Finally, 3D Views may be printed by selecting the view desired and using the print menu. Also, the picture may be<br />

exported to a file or the windows clipboard.<br />

Measuring Tape Tool (only available in wire frame mode)<br />

You can measure distance on a 3D view using the measuring tape tool. Hold down the SHIFT and CTRL keys and then<br />

drag a line between any two points – the distance between them is displayed on the status bar. Note that this is the<br />

distance in the plane of the 3D view.<br />

3.6.1 View Parameters<br />

The view shown in a 3D view window is determined by the following parameters, which can be adjusted using the<br />

view control buttons or the Edit View Parameters item on the View menu.<br />

Relative To<br />

The view parameters can be specified relative to Global or relative to any Vessel, 6D Buoy or Shape object in the<br />

model. Relative to Global gives the view from a fixed camera position. Relative to an object gives the view from a<br />

camera that moves with that object. This can be useful when modelling systems such as towed cases, where you<br />

want a view that tracks along with the overall movement of the model.<br />

Size<br />

The diameter of the view area. It equals the distance represented by the smaller of the 2 sides of the view window.<br />

This parameter must be greater than zero.<br />

Centre<br />

Example: If the window on screen is wider than it is high, and View Size = 100.0 then an object 100 units<br />

high would just fill the height of the window.<br />

Defines the coordinates of the point that is shown at the centre of the window. This may be in global or relative<br />

coordinates.<br />

Azimuth, Elevation and Gamma<br />

These determine the direction (from the view centre) from which the model is being viewed and the rotation about<br />

this direction. The azimuth angle is measured from the x direction towards the y direction of the object we are<br />

relative to. The elevation angle is then measured upwards (downwards for negative elevation angles) from there.<br />

The view shown is that seen when looking from this direction, i.e. by a viewer who is in that direction from the view<br />

centre. The Gamma angle rotates about this view direction.<br />

Example: View Elevation +90° means looking in plan view from above, and View Elevation = 0°, View<br />

Azimuth = 270° (or -90°) means a standard elevation view, looking along the Y axis.


User Interface, 3D Views<br />

Window Size<br />

54<br />

w<br />

You can adjust the size of a 3D view window either by dragging the window border, or by setting its window size on<br />

the view parameters form. The latter is sometimes useful when exporting a view or exporting a replay video, since it<br />

makes it easier to export multiple files and produce videos with identical dimensions.<br />

Graphics Mode<br />

Can be either of the following options:<br />

� Wire frame: the model is represented using a wire frame, isometric projection.<br />

� Shaded: the model is represented as solid objects with lighting, shading, perspective and hidden line removal.<br />

Default View<br />

Each model has its own default view parameters that are saved with the model data. Whenever a new 3D view is<br />

created, it starts with this default view. You can set an existing 3D view to the default view by using the Reset to<br />

Default View command (on the view menu or pop-up menu).<br />

To set the default view parameters, first set up a 3D View to the default view that you want and then use the Set as<br />

Default View command (on the view menu or pop-up menu). As an alternative you can use the calculated based on<br />

the model extent option which results in a default view that is sized so that the entire model will be displayed.<br />

3.6.2 View Control<br />

You can adjust the view in a 3D view window using the view control buttons:<br />

Button Menu Item Shortcut Action<br />

+ SHIFT<br />

+ SHIFT<br />

+ SHIFT<br />

View | Rotate Up CTRL+ALT+↑ Increase view elevation<br />

View | Rotate Down CTRL+ALT+↓ Decrease view elevation<br />

View | Rotate Right CTRL+ALT+→ Increase view azimuth<br />

View | Rotate Left CTRL+ALT+← Decrease view azimuth<br />

View | Zoom In CTRL+I Zoom in<br />

View | Zoom Out SHIFT+CTRL+I Zoom out<br />

View | Change Graphics Mode CTRL+G Changes graphics mode<br />

View | Edit View Parameters CTRL+W Edit View Parameters<br />

You can also use the mouse wheel button to change view. Turn the wheel to scroll the 3D view up and down. Turn it<br />

with the CTRL key held down to zoom in or out on the location at which the mouse is currently pointing.<br />

For more precise control you can set the view parameters explicitly using the View Parameters form.<br />

Finally, 3D views can also be controlled using the View menu and various shortcut keys – see Mouse and Keyboard<br />

Actions and Navigating in 3D Views.<br />

3.6.3 Navigating in 3D Views<br />

Moving<br />

Moving in 3D Views can be achieved by a variety of means:<br />

� Drag the 3D View with the SHIFT key held down. We call this direct manipulation of the view centre panning.<br />

� Use the scroll bars on the 3D View.<br />

� Use the cursor keys ↑ ↓ ← →. Use these cursor keys with the CTRL key held down to effect larger shifts.<br />

� Move up and down with the PGUP and PGDN keys.<br />

� Edit the View Centre in the View Parameters form.<br />

Rotating<br />

Rotating in 3D Views can be achieved by a variety of means:


w<br />

55<br />

User Interface, 3D Views<br />

� Drag the 3D View with the CTRL key held down. For shaded views only you can rotate about the viewer position<br />

(as opposed to rotating about the view centre) by holding down the ALT key (as well as the CTRL key) whilst<br />

dragging.<br />

� Use the rotate buttons . Pressing these with the SHIFT key held reverses the rotation.<br />

� Use the Rotate Up, Rotate Down, Rotate Left or Rotate Right menu items or their shortcut keys CTRL+ALT+ ↑ ↓ ←<br />

→.<br />

� Use the Plan, Elevation, Rotate 90 or Rotate -90 menu items or their shortcut keys CTRL+P, CTRL+E, CTRL+Q and<br />

SHIFT+CTRL+Q.<br />

� Edit the View Azimuth and View Elevation in the view parameters form.<br />

Zooming<br />

You can zoom into and out of 3D Views by using the zoom button , the zoom menu items and the shortcut keys<br />

CTRL+I and SHIFT+CTRL+I. In addition, you can zoom in or out using the mouse wheel button with the CTRL key held<br />

down.<br />

The following methods of zooming are only available in wire frame 3D Views.<br />

Also you can zoom in on a particular region of interest in a 3D view by defining a rectangle around it on screen using<br />

the mouse. To do this, hold the ALT key down, place the mouse in one corner of the desired rectangle and press<br />

down the left mouse button while dragging the mouse to the opposite corner. When you release, the region selected<br />

will be expanded to fill the window.<br />

To zoom out, repeat the operation holding down the SHIFT and ALT keys – the region shown in the window will<br />

shrink to fit into the rectangle drawn.<br />

You can also zoom in and out by a fixed amount, keeping the same view centre, by using ALT+CLICK and<br />

ALT+SHIFT+CLICK.<br />

3.6.4 Shaded Graphics<br />

The shaded graphics mode renders the model as solid objects with lighting, shading, perspective and hidden line<br />

removal.


User Interface, 3D Views<br />

Figure: Shaded graphics<br />

Using the Shaded Graphics mode<br />

56<br />

w<br />

To a large extent there is no extra work required to build a model for the shaded graphics mode. You are able to<br />

build a model or take an existing model designed using the wire frame mode and simply change to the shaded<br />

graphics mode to see a high quality shaded rendering of your model. There are a number of things you can do to<br />

improve your experience with the shaded graphics mode as described below.<br />

Translucency<br />

The Sea Surface and Seabed are drawn as textured surfaces. If there are objects on the other side of these surfaces<br />

then they can be obscured. These surfaces are drawn with a user-specified amount of translucency which allows you<br />

to compensate for this.<br />

Importing 3D models<br />

Objects like Lines are straightforward to draw. <strong>OrcaFlex</strong> uses the Line Type contact diameter to determine the<br />

thickness of each segment of the Line.<br />

Objects like Vessels present more difficulties. <strong>OrcaFlex</strong> by default will draw a solid, filled-in shape based on the wire<br />

frame data you have specified. While this can be sufficient you may prefer something less simplistic. Alternatively<br />

you may import a more detailed 3D model, e.g. the turret moored FPSO above. You can import 3D models for 6D<br />

Buoys, Wings and Shapes as well as for Vessels.<br />

We have provided a very basic selection of generic models which you are free to use. There are models of an FPSO, a<br />

turret moored FPSO, an installation vessel, a semisub and a subsea template. For information on generating and<br />

importing 3D models specific to your project please refer to www.orcina.com/Support/ShadedGraphics.<br />

Viewer Position<br />

Because the shaded graphics mode uses perspective it requires the concept of the viewer position as well as the<br />

viewer centre. The isometric wire frame view has no such requirement. <strong>OrcaFlex</strong> defines the viewer position to be in


w<br />

57<br />

User Interface, 3D Views<br />

a line in the view direction (defined by the view azimuth and view elevation) at a distance of view size * 1.5 from the<br />

view centre. It is possible to rotate the view around both the view centre and around the viewer position.<br />

Video export<br />

Just as for wire frame views <strong>OrcaFlex</strong> can export video files of a replays in shaded views. When producing videos it<br />

is very important to use compression, otherwise the video file size becomes unreasonably large. The software that<br />

performs this compression is called a codec.<br />

For wire frame replays <strong>OrcaFlex</strong> uses a built-in codec called run-length encoding. This codec is not suitable for<br />

shaded replays and in fact there is no suitable built-in codec in Windows. We would recommend using an MPEG-4<br />

codec of which many are available. In our experience the freely available XVID codec performs very well. The XVID<br />

codec can be downloaded from www.orcina.com/Support/ShadedGraphics.<br />

Should you wish to use a different codec you can select this from the Preferences form.<br />

Hardware Requirements<br />

The shaded graphics mode does require the presence of a DirectX 9 compatible graphics card. In our experience the<br />

most important factor to consider when choosing a card to work with shaded graphics is the amount of memory. We<br />

would recommend using a card with 256MB or more.<br />

It is also important to make sure that your computer's graphics settings specify a colour mode of 16 bits (65536<br />

colours) or better.<br />

Notes: If your machine's graphics capabilities are insufficient then the shaded graphics mode may fail to<br />

function properly or indeed fail to function at all. For example, low quality, blocky images usually<br />

indicate a graphics card with insufficient memory. This problem can also manifest itself by failure<br />

to draw the sky which appears plain white.<br />

3.6.5 How Objects are Drawn<br />

For best results you should centre your model close to the global origin. The Move Selected Objects<br />

facility can help you do this.<br />

Each object in the model is drawn as a series of lines using the Pen Colour, Line Width and Style (solid, dashed etc.)<br />

defined in the drawing data for that object. You can change the pen colours etc. used at any time by editing the<br />

drawing data for that object. To change the pen colour, select and CLICK the colour button on the data form and then<br />

CLICK on the new colour wanted.<br />

You can also exclude (or include) individual objects from the 3D view, by opening the model browser, selecting the<br />

object and then using the Hide (or Show) command on the browser's Edit or pop-up menu.<br />

Notes: In Windows, a line width of zero does not mean "don't draw" – it means draw with the minimum<br />

line width. To suppress drawing either set the line style to null (the blank style at the bottom of the<br />

drop down list) or else hide the object.<br />

Wire Frame Drawing<br />

On some machines the display driver cannot draw the dashed or dotted pen styles and instead<br />

draws nothing. So on such machines only the solid and blank pen styles work.<br />

For wire frame views the various objects are drawn as follows:<br />

� The various coordinate systems can be drawn as small triplets of lines showing their origin and the orientation<br />

of their axes. The wave, current and wind directions can be drawn as arrows in the top right hand corner of 3D<br />

views. You can control both what is drawn (see 3D View Drawing Preferences) and the drawing data used.<br />

� The Seabed is drawn as a grid using the seabed pen.<br />

� The Sea Surface is drawn as a grid or as a single line. This is controlled by the user's choice of Surface Type as<br />

specified on the drawing page on the Environment data form. If the Surface Type is set to Single Line then one<br />

line is drawn, aligned in the wave direction. If the Surface Type is set to Grid then a grid of lines is drawn. This<br />

line or grid is drawn using the sea surface pen.<br />

� Shapes are drawn either as wire frames (Blocks, Cylinders and Curved Plates) or as a grid (Planes). As well as<br />

controlling the pen colour, width and style, for shapes you can also control the number of lines used to draw the<br />

shape.


User Interface, 3D Views<br />

58<br />

w<br />

� Vessels are drawn as a wire frame of edges and vertices defined by the user on the Vessel and Vessel Types data<br />

forms.<br />

� 3D Buoys are drawn as a single vertical line of length equal to the height of the buoy.<br />

� 6D Buoys are drawn as a wire frame of edges and vertices. For Lumped Buoys, the vertices and edges are<br />

defined by the user on the buoy data form. For Spar Buoys and Towed Fish the vertices and edges are<br />

automatically generated by <strong>OrcaFlex</strong> to represent the stack of cylinders that make up the buoy. As an option<br />

Spar Buoys and Towed Fish can be drawn as a stack of circular cylinders – this is the default setting.<br />

� Wings are drawn as rectangles in either the 6D Buoy pen or the Wing Type pen as determined in the Wing Type<br />

data.<br />

� Lines are drawn as a series of straight lines, one for each segment, joining points drawn at each node. Separate<br />

pens are used for the segments and nodes, so you can, for example, increase the pen width used for the nodes to<br />

make them more visible. There is also, on the Line Data form, a choice of which pen to use to draw the segments.<br />

� Clumps are drawn as a thin vertical bar.<br />

� Drag Chains are drawn using the colour and line style specified on the attachment types form. The hanging part<br />

of the chain is drawn as a line, of length equal to the hanging length and at the angle calculated using the above<br />

theory. The supported part of the chain (if any is supported) is separately drawn as a blob at the seabed, directly<br />

beneath the node. The drag chain drawing therefore directly reflects the way in which the chain is modelled.<br />

� Flex Joints are drawn as a circular blob using the colour and line style specified on the attachment types form.<br />

� Links and Winches are drawn as a straight line segments joining the connection points.<br />

Lines, Links and Winches and Shapes are special slave objects that can be connected to other master objects – see<br />

Connecting Objects. To allow these connections to be made, each slave object has a joint at each end that you can<br />

connect to a master object or else leave Free. When the program is in Reset or Statics Complete state these joints are<br />

drawn as follows:<br />

The joint at End A of a line or end 1 of a Link or Winch is drawn as a small triangle. The other joints are drawn as<br />

small squares. This distinguishes which end of a Line, Link or Winch is which.<br />

If the joint is connected to a master object, then it is drawn in the colour of the master object to which it is<br />

connected. If the joint is Free, then it is drawn in the colour of the Line, Link or Winch to which it belongs.<br />

Shaded Drawing<br />

For shaded views the various objects are drawn as follows:<br />

� View axes and global axes are drawn as small triplets of lines showing their origin and the orientation of their<br />

axes. The wave, current and wind directions can be drawn as arrows in the top right hand corner of 3D views.<br />

You can control both what is drawn (see 3D View Drawing Preferences) and the drawing data used.<br />

� The Sea Surface and Seabed are drawn as textured surfaces using their respective pen colours. Both surfaces<br />

can be drawn with user-specified levels of translucency.<br />

� Shapes are drawn as solid objects and Planes allow for user-specified levels of translucency. Alternatively<br />

Shapes can be represented by an imported 3D model.<br />

� Vessels are drawn as a solid, filled-in shape based on the wire frame data. Alternatively Vessels can be<br />

represented by an imported 3D model.<br />

� 3D Buoys and Clumps are drawn as an ellipsoid with the specified volume and height.<br />

� Lumped 6D Buoys are drawn as a solid, filled-in shape based on the wire frame data. Spar Buoys and Towed<br />

Fish are drawn as solid objects using the specified cylinder geometry. Alternatively 6D Buoys can be<br />

represented by an imported 3D model.<br />

� Wings are drawn as plates using their specified span and chord. Alternatively they can be represented by an<br />

imported 3D model.<br />

� Lines are drawn as a series of cylinders, one for each segment using the contact diameter as specified on the<br />

Line Type form. There is also, on the Line Data form, a choice of which pen to use to draw the segments.<br />

� Drag Chains are drawn as a chain with bar diameter derived from the drag chain's effective diameter.


w<br />

59<br />

User Interface, 3D Views<br />

� Flex Joints are drawn as cylinders with radius 2R and length 4R where R is the radius of the node to which the<br />

flex joint is attached.<br />

� Links and Winches are drawn as a series of cylinders joining the connection points. The diameter of the<br />

cylinders can be specified on the object's data form.<br />

3.6.6 Selecting Objects<br />

A single CLICK on or near an object in a 3D View selects it ready for further operations. The currently selected object<br />

is indicated in the Status bar. All objects have a hot zone around them. If several objects have overlapping hot zones<br />

at the mouse position, they will be selected in turn at subsequent CLICKS.<br />

To deselect the object (without selecting another object) CLICK on the 3D view away from all objects. CLICK on an<br />

object to open its data form.<br />

3.6.7 Creating and Destroying Objects<br />

When the model is in Reset or Statics Complete state then you can create and destroy objects using the mouse.<br />

To create a new object, CLICK on the appropriate new object button on the tool bar or select the Model | New Object<br />

menu item. The mouse cursor changes to show this. A new object of that type is created at the position of the next<br />

CLICK on a 3D View.<br />

You can also create a new object by copying an existing one. To do this select the object and press CTRL+C to take a<br />

copy of it. You can now press CTRL+V (more than once if you want more than one copy) – again the mouse cursor<br />

changes and the copy object is pasted at the position of the next mouse CLICK in a 3D view. This method of creating a<br />

new object is particularly useful if you want an almost identical object – you can create a copy of it and then just<br />

change the data that you want to differ.<br />

To destroy an object, simply select it and then press the DELETE key. You will be asked to confirm the action.<br />

3.6.8 Dragging Objects<br />

An unlocked object may be dragged to relocate it by pressing the mouse button down and holding it down while<br />

moving the mouse. When the mouse button is released, then the object will be positioned at the new location. The<br />

current coordinates of the object are shown in the Status Bar during the drag operation.<br />

Note: Objects must be dragged a certain minimum distance (as specified in the Preferences form) before<br />

the drag operation is started. This prevents accidental movement of objects when DOUBLE CLICKING<br />

etc.<br />

Objects may be locked to prevent unintended drag operations moving them (see Locking an object). Their<br />

coordinates may still be edited on their data form.<br />

Note: Slave objects that are connected are moved relative to their master's local origin. Other objects are<br />

moved in the global coordinate frame.<br />

Dragging is only available in Reset or Statics Complete states, and when the object is not locked.<br />

3.6.9 Connecting Objects<br />

Unlocked slave objects (e.g. Lines, Links, etc.) can be connected to master objects using the mouse in a 3D View (see<br />

Object Connections). First select the end of the slave that you want to connect by CLICKING on or near its end joint.<br />

Then hold down the CTRL key while CLICKING on the master object – the two will then be connected together. This<br />

operation is only permitted for master-slave object pairs, for example connecting a line to a vessel. The connection is<br />

indicated in the Status Bar and the joint connected is drawn in the colour of the master object to show the<br />

connection.<br />

To Free a joint – i.e. to disconnect it – select it and then CTRL+CLICK on the sea surface.<br />

To connect a joint to a Fixed Point, select it and then CTRL+CLICK on the global axes.<br />

To connect an object to an Anchor (a fixed point with a coordinate relative to the seabed), select it and then<br />

CTRL+CLICK on the seabed grid. If the object is close to the seabed then the program snaps it onto the seabed. This<br />

allows an object to be placed exactly on the seabed. If you require an anchor coordinate close to, but not on the<br />

seabed, connect it to the seabed at a distance and then drag it nearer or edit the coordinate in the Data Form.


User Interface, Replays<br />

3.6.10 Printing, Copying and Exporting Views<br />

60<br />

w<br />

3D Views may be printed, copied to the windows clipboard, or exported to a windows graphics metafile, so that the<br />

pictures may be used in other applications such as word processors and graphics packages.<br />

First select the view and adjust the viewpoint as desired. Then to copy to the clipboard press CTRL+C, or select Copy<br />

from the pop-up menu. The pop-up menu also has commands to print or export the 3D view. If needed, you can first<br />

adjust the printer setup using the Printer Setup command on the pop-up menu or on the File menu.<br />

If you are printing the view on a black and white printer (or are transferring the view into a document which you<br />

intend to print on a black and white printer) then it is often best to first set <strong>OrcaFlex</strong> to output in monochrome (use<br />

the Tools|Preferences|Output menu item). This avoids light colours appearing as faint shades of grey.<br />

After a 3D view has been transferred to another application you should be careful not to change its aspect ratio,<br />

since this will produce unequal scaling in the vertical and horizontal directions and invalidate the scale bar. In Word<br />

you can maintain aspect ratio by dragging the corners of the picture, whereas if you drag the centres of the sides<br />

then the aspect ratio is changed.<br />

3.7 REPLAYS<br />

A Replay is a sequence of 3D views shown one after another to give an animation. A replay is therefore like a short<br />

length of film, with each frame of the film being a snapshot of a model as it was at a given time.<br />

There are various controls and parameters that allow you to control a replay.<br />

There are two types of replay:<br />

� Active Simulation Replays show the model as it was at regularly spaced times during the currently active<br />

simulation. This type of replay is therefore only available when a simulation is active and can only cover the<br />

period that has already been simulated. If you have a time history graph window open when the replay is run,<br />

then the replay time is indicated on the graph.<br />

� Custom Replays are replays where you have complete control over frames which make up the replay. This<br />

means that, for example, you are not restricted to regularly spaced times; you can have frames from different<br />

simulation files in the same replay; you can include frames showing the static configuration of a model; you are<br />

able to vary the view size, view angles and view centre to achieve panning, rotating and zooming effects. Custom<br />

replays were originally introduced to help visualise series of static snapshots, for example during a lowering<br />

operation. However, the facility is very powerful and you are certainly not restricted to this application. See<br />

Custom Replays for details.<br />

Export Video<br />

Replays can be exported as a video clip in AVI file format, using the Export Video button on the replay parameters<br />

form. An AVI file is generated containing the replay using the most recently selected 3D view window and using the<br />

same period, frame interval and speed as the replay.<br />

When you export a video clip you will be asked to select a file name for the video using the standard Save File<br />

window. At the bottom of this window is a checkbox titled Include frame details in video. If this is selected then<br />

each frame in the video has details of that frame (e.g. simulation time) written in the top left hand corner of the<br />

frame. There is also a button which provides a link to the Video preferences.<br />

AVI is a standard video format, so the file can then be imported into other applications, for example to be shown in a<br />

presentation. The compression method (the codec) used for the generating the video file can be set on the<br />

Preferences form.<br />

Note: AVI files can be very large if the window size is large or there are a lot of frames in the replay. Also,<br />

resizing video clips (after pasting into your presentation) will introduce aliasing (digitisation<br />

errors), so it is often best to set the 3D View window size to the required size before you export the<br />

video.<br />

3.7.1 Replay Parameters<br />

The replay can be controlled by the following parameters that can be set in the Replay Parameters form,<br />

accessed using the Replay Parameters button.


w<br />

Replay Period<br />

61<br />

User Interface, Replays<br />

The part of the simulation that the replay covers. You can select to replay the whole simulation, just one simulation<br />

stage (an asterisk * denotes an incomplete stage), the latest wave period or else a user specified period. If you select<br />

User Specified then you can enter your own Start and End Times for the replay period. These can be set to '~'<br />

which is interpreted as simulation start time and simulation finish time respectively.<br />

Interval<br />

The simulation time step size between frames of the replay. The value '~' is interpreted as the actual sample<br />

interval, i.e. the smallest possible interval.<br />

Using shorter intervals means that you see a smoother animation (though the extra drawing required may slow the<br />

animation).<br />

Example: For a simulation with stages of 8 seconds each, selecting stage 2 and a replay time step of 0.5 seconds<br />

causes the replay to show 16 frames, corresponding to times 8.0, 8.5, 9.0, …, 15.5.<br />

Target Speed<br />

Determines how fast the replay is played. It is specified as a percentage of real time, so 100% means at real time,<br />

200% means twice as fast etc.<br />

Continuous<br />

Continuous means replaying like an endless film loop, automatically cycling back to the first frame after the last<br />

frame has been shown; this is suitable for replays of whole cycles of regular cyclic motion. Non-continuous means<br />

that there will be a pause at the end of the replay, before it starts again at the beginning; this is more suitable for<br />

non-cyclic motion.<br />

All Views<br />

If this is selected, then the replay is shown in all 3D Views simultaneously, allowing motion to be viewed from<br />

several different viewpoints. Otherwise the replay is played in the currently selected view window only.<br />

Show Trails<br />

If this is selected, then when each frame of the replay is drawn the previous frame is first overdrawn in grey – this<br />

results in grey 'trails' showing the path of each object.<br />

3.7.2 Replay Control<br />

The replay can be controlled from the Replay menu, by using toolbar buttons or with shortcut keys. In addition,<br />

some replay settings can only be modified on the Replay Parameters form.<br />

The toolbar has a section dedicated to replay control:<br />

Figure: Replay toolbar controls<br />

The replay control buttons, menu items are listed in the table below:<br />

Button Menu Item Shortcut Action<br />

+ SHIFT<br />

Replay | Start Replay CTRL+R Start replay<br />

Replay | Stop Replay CTRL+R Stop replay<br />

Replay | Step Replay Forwards CTRL+A Step to next frame and pause<br />

Replay | Step Replay Backwards CTRL+B Step to previous frame and pause<br />

Replay | Replay Faster CTRL+F Speed up replay<br />

Replay | Replay Slower SHIFT+CTRL+F Slow down replay<br />

Replay | Replay Parameters CTRL+D Edit replay parameters


User Interface, Replays<br />

Replay Slider Control<br />

62<br />

w<br />

The final part of the replay toolbar is the replay slider. This allows direct control of the replay<br />

time. Drag the slider to the left to move to an earlier part of the replay and to the right to move to a later part. For<br />

fine grained adjustment of replay time you can use the Replay | Step Replay Forwards and Replay | Step Replay<br />

Backwards actions or alternatively their shortcuts, CTRL+A and CTRL+B. The replay time is displayed on and can be<br />

controlled from Time History graphs.<br />

3.7.3 Custom Replays<br />

Custom replays allow you to piece together arbitrary frames from one or more <strong>OrcaFlex</strong> files. Each frame of the<br />

replay can be either the static configuration, or a snapshot of a specified time in a dynamic simulation file.<br />

Using frames of static configurations you can string together a series of static snapshots giving, for example, an<br />

animation of an installation procedure. Using frames from dynamic simulation files allows you to create replays<br />

where the frames are from one or more simulations, and, if you wish, vary the time intervals between frames.<br />

Frames of both static and dynamic configurations can be included in the same custom replay. In addition you are<br />

able to vary the view size, view angles and view centre to achieve panning, rotating and zooming effects.<br />

To use the custom replay feature you must first set the Replay Type data item on the Replay Parameters form to<br />

Custom Replay. Next you must build the custom replay which is most easily done using the Custom Replay Wizard,<br />

which can be opened by clicking the Custom Replay Wizard button.<br />

Replay Specification<br />

This is the file containing the custom replay specification – that is the file that is saved by the Custom Replay Wizard.<br />

Custom Replay Parameters<br />

Custom replays also make use of some of the parameters needed for standard simulation replays. These parameters<br />

are Target Speed, Continuous, All Views and Show Trails.<br />

3.7.4 Custom Replay Wizard<br />

The Custom Replay Wizard allows you to define a series of replay sections. Each replay section can show either:<br />

1. A series of regularly spaced snapshots from a simulation file.<br />

2. The static configuration of a model specified by either a data file or a simulation file.<br />

Different files can be used for different replay sections.<br />

Custom Replay Files<br />

When you have built your custom replay you must save it using the File menu or save button on the toolbar. Custom<br />

replay files can be opened in a similar way.<br />

We recommend that you save your custom replay file before you start setting up the replay sections. This is because<br />

once you have saved the custom replay file you will be able to use relative paths for the <strong>OrcaFlex</strong> file names.<br />

Custom Replay Data<br />

Custom replay specifies view parameters (size, position, angles and graphics mode)<br />

If this data item is not checked then the replay will use the view parameters of whichever 3D View window it<br />

appears in. In this mode of operation you will be able manually to pan, rotate and zoom the 3D View using the<br />

normal buttons and shortcuts.<br />

If this data item is checked then you will be required to specify the view parameters (view size, view centre, view<br />

azimuth, view elevation and graphics mode) for each replay section. This allows you to include panning, rotating<br />

and zooming effects in your replay.<br />

While learning how custom replays work we recommend that you do not check this data item.<br />

Use smoothed panning, rotating and zooming effects<br />

This item is only available if the "Custom replay specifies view parameters" option is enabled. If you are panning,<br />

rotating and zooming during replay sections then the transition from one section to another sometimes appears to<br />

be disjointed. If this option is checked then the transition between sections is smoothed.


w<br />

Frame interval in real time<br />

63<br />

User Interface, Data Forms<br />

<strong>OrcaFlex</strong> needs to know how fast to play the replay. This data item specifies the interval, in real time, between each<br />

replay frame, assuming a target replay speed of 100%. If the target replay speed is, say 200%, then the interval<br />

between frames will be half this value, and so on.<br />

Replay Sections<br />

You can specify any number of replay sections. For each replay section you must also specify the following:<br />

Replay Section Name<br />

This is a descriptive name for the replay section. When the replay is running <strong>OrcaFlex</strong> displays a description of the<br />

current frame in the message box on the status bar – this includes the replay section name. This description can also<br />

be included in exported videos.<br />

<strong>OrcaFlex</strong> File Name<br />

The model to be used for this section – either a data file (.dat or .yml) or a simulation file (.sim).<br />

Dynamics<br />

This setting determines whether the replay section defines snapshots from a dynamic simulation or a static<br />

configuration. If the file is a data file then the replay section will show the static configuration and so this data item<br />

cannot be edited.<br />

The custom replay displays static configurations for a data file by loading the file and then performing the static<br />

calculation. This can be time consuming – static state simulation files can be used instead to avoid the overhead of<br />

performing statics each time the replay is shown.<br />

Simulation Time From, Simulation Time To<br />

This specifies the period of the dynamic simulation covered by the replay section. These are <strong>OrcaFlex</strong> simulation<br />

times for the specified simulation file of this replay section.<br />

If the replay section is a static snapshot then these data items are not editable.<br />

Number of Frames<br />

This is the total number of frames in the replay section. If your custom replay is a series of static snapshots then you<br />

would usually set this value to 1.<br />

Included in Replay<br />

This allows you to exclude certain sections from the replay. This may be useful while developing the custom replay<br />

because it allows you to concentrate on particular replay sections.<br />

View Parameter data<br />

The following data items are only available when the specifies view parameters option is checked.<br />

From View Parameters, To View Parameters<br />

The view size, view centre, view azimuth and view elevation for the first and last frames of the replay section. These<br />

view parameters are varied between these values for the other frames in the replay section.<br />

Hint: These values can be copied from <strong>OrcaFlex</strong>'s View Parameters form using the clipboard.<br />

Graphics Mode<br />

Specifies either the Wire frame or Shaded graphics mode for the replay section.<br />

3.8 DATA FORMS<br />

Each object in the model has data items that define its properties. The data are examined and edited in the object's<br />

Data Form, which can be accessed by various methods:<br />

� use the Model Browser<br />

� DOUBLE CLICK the object in a 3D view<br />

� RIGHT CLICK the object in a 3D view and use the pop-up menu.


User Interface, Data Forms<br />

64<br />

w<br />

If a simulation is active then most data items cannot be changed since they affect the calculation, but you can change<br />

things like the object's colour.<br />

Control Buttons<br />

Ok<br />

Accepts the data changes made and then closes the form.<br />

Cancel<br />

Cancels the data changes made and then closes the form.<br />

Next<br />

Accepts the data changes made and then displays the next form in sequence. Holding the SHIFT key down while<br />

CLICKING the Next button accepts the changes and then displays the previous data form in sequence. You can also<br />

use the keyboard shortcuts F6 for next and SHIFT+F6 for previous.<br />

Pop-up Menu<br />

The pop-up menu on a data form provides various facilities, including:<br />

� The data form can be printed, copied to the clipboard or exported to a file. The data for the whole model may be<br />

printed using the File | Print menu item.<br />

� Access to the next and previous data form and to the Variable Data form.<br />

� The batch script names for the currently-selected block of data items.<br />

� Data forms for 3D Buoys, 6D Buoys, Vessels and Lines provide a Connections Report. This is a spreadsheet<br />

listing information about other objects connected to it. Note that the same information, but for all objects in the<br />

model, can be displayed using the Model | Show Connections Report menu item.<br />

Object properties reports<br />

On data forms of some model objects, a report of the properties of that object. It can be opened from the popup<br />

menu or alternatively by pressing Alt+Enter. The report displays properties like weight in air, displacement, weight<br />

in water etc.<br />

These reports are currently available for General Data, 3D Buoys, 6D Buoys, Vessels, Lines, Line Types, Clump Types<br />

and Drag Chain Types.<br />

Calculator<br />

A simple calculator is available from any <strong>OrcaFlex</strong> data form. It can be opened from the popup menu or alternatively<br />

by pressing F12. Numbers can be transferred to and from it with standard Windows copy (CTRL+C) and paste<br />

(CTRL+V). The calculator can also be closed by pressing F12 – if you do this then the value in the calculator is<br />

transferred to the active edit cell.<br />

3.8.1 Data Fields<br />

Data items on each Data Form are displayed in Fields, generally with related fields organised into Groups or Tables.<br />

You can select a field with the mouse, or use the keyboard to navigate around the form. TAB moves from group to<br />

group, and the arrow keys move across the fields in a group.<br />

The following types of fields are used:<br />

Text<br />

A general string of text, used for example for titles and comments.<br />

Name<br />

Each object is given a name, which you can edit. Object names must be unique – you cannot have two objects with<br />

the same name. Certain names are reserved for special purposes: Fixed, Anchored and Free (see Connecting<br />

Objects).


w<br />

Numeric<br />

65<br />

User Interface, Data Forms<br />

Numbers can be entered in a number of formats such as 3, 3.0, 0.3, .3 or 3.0e6 or 3.0E6. It is possible to enter more<br />

digits than those shown in the field, but beware that it will not be possible to see them again without editing again<br />

and using the arrow keys to examine the rest of field.<br />

For some numeric data items the value '~' is permitted. For example this is sometimes used to mean 'default value'.<br />

Details are given in the descriptions of the relevant data items.<br />

Spin Buttons<br />

These are small buttons with up and down arrows, used for incrementing and decrementing the associated field<br />

(such as the number of entries in a table). Using the mouse, CLICK on the upper or lower parts of the button to<br />

increment or decrement the associated counter.<br />

Multi-choice Buttons<br />

These are used when a number of options are available. Activate the button to step on to the next available option.<br />

Check Boxes<br />

These show a tick, meaning selected, or are blank, meaning not selected. CLICK or press ENTER to change.<br />

Colour Selection<br />

These show as a block of colour. DOUBLE CLICK or press ENTER to open the Colour Selection dialogue window. The<br />

desired colour may now be selected.<br />

List Boxes<br />

These show the current selection, such as the name of another object that this object is connected to. DOUBLE CLICK<br />

or press ENTER to show a List Box, and then select another item and ENTER to accept the new choice.<br />

3.8.2 Data Form Editing<br />

The TAB, SHIFT+TAB, HOME, END and ARROW keys and the mouse can be used to navigate around the Edit Form.<br />

Editing mode is entered by DOUBLE CLICKING a cell with the mouse, or by starting to type alphanumeric characters,<br />

which are entered into the field as they are typed. The characters that have been typed can be edited by using the<br />

arrow keys to move around (now within the field) and the BACKSPACE and DELETE keys.<br />

Editing mode is ended, and the new value takes effect, when you press ENTER or select another field or button on the<br />

form. To end editing mode but reject the edit (and so keep the old value) press ESC.<br />

Many numeric fields have limits on the range of values that can be entered, for example an object's mass must<br />

always be greater than zero. Warnings are given if invalid values are typed.<br />

Input can also be from the Windows clipboard. CTRL+C copies the selected field or block of fields to the clipboard<br />

whilst CTRL+V pastes from the clipboard into the selected field. In this way data can be easily transferred to and<br />

from Spreadsheets, Word Processors, etc.<br />

Mouse Actions<br />

CLICK Select Field<br />

CLICK+DRAG,<br />

SHIFT+CLICK<br />

Select a block of fields<br />

DOUBLE CLICK Start Edit Mode in this field (please also see Data Fields)<br />

SECONDARY<br />

BUTTON CLICK<br />

Group Movement<br />

TAB Next Group<br />

SHIFT+TAB Previous Group<br />

Context sensitive pop-up menu for copying, exporting and printing the form and, for some<br />

model objects, viewing additional properties<br />

ALT+… Move to the group with this letter underlined in its heading<br />

Field Movement<br />

← ↑ ↓ → Go to adjacent row or column<br />

HOME Go to leftmost column


User Interface, Results<br />

Mouse Actions<br />

END Go to rightmost column<br />

PAGE UP Go to top row<br />

PAGE DOWN Go to bottom row<br />

Table Editing<br />

INSERT, DELETE Insert or delete rows<br />

Start Editing<br />

0…9, A…Z Edit (replace)<br />

During Editing<br />

← →, HOME, END Move within field<br />

End Editing<br />

ESC Cancel edit<br />

↑ ↓ Accept edit and move to previous/next row<br />

ENTER Accept edit<br />

Copy / Paste<br />

CTRL+C Copy selected field/block to clipboard<br />

CTRL+V Paste from clipboard into selected field<br />

CTRL+D Fill selection from top (copy top cell down)<br />

CTRL+R Fill selection from left (copy leftmost cell to right)<br />

CTRL+U<br />

SHIFT+CTRL+D<br />

CTRL+L<br />

SHIFT+CTRL+R<br />

3.9 RESULTS<br />

3.9.1 Producing Results<br />

Fill selection from bottom (copy bottom cell up)<br />

Fill selection from right (copy rightmost cell to left)<br />

66<br />

w<br />

You can access results by either CLICKING on the Results button on the toolbar or by using the Select Results<br />

menu item; the Select Results form then appears.<br />

There is a Keep Open switch on the form's context menu, which allows you to choose whether the form<br />

automatically closes when you select a result, or alternatively stays open (and on top) until you explicitly close it.<br />

Graphs and Tables can be sent straight to the printer by CLICKING the Print button. If the values of a graph are<br />

required in text form then CLICK the Values button – this give the values in a Spreadsheet window, which can handle<br />

multiple variables if desired.<br />

The Select Results form allows you to select the results you want by specifying:<br />

Result Type<br />

This option allows you to select which of the various types of results output you require. Results are available as text<br />

tables (summary results, full results, offset tables, statistics, linked statistics, extreme value statistics or line clashing<br />

reports) or as graphs (time histories, range graphs, XY graphs, offset graphs or spectral response graphs). The types<br />

of results available depend on the current model state.<br />

Object<br />

The object for which you want results (selected in the same way as in the Model Browser) and for some objects<br />

which point in the object.<br />

� For the Environment you must specify the global X,Y,Z coordinates of the Position for which you want results.<br />

� For 6D Buoys that have wings attached, results for the buoy and for each wing are available separately.<br />

� For 6D Buoys and Vessels the translational position, velocity and acceleration results are reported at a user<br />

specified Position on the object. The coordinates of this Position are specified in object local coordinates.


w<br />

� For lines you must specify the arc length along the line – see Line Results.<br />

Period<br />

67<br />

User Interface, Results<br />

For time histories, XY graphs and range graphs you must specify the period of the simulation to be included. This<br />

can be:<br />

� One of the numbered stages of the simulation.<br />

� The Whole Simulation.<br />

� A Specified Period, defined by a start and end time. These time values can be set to '~' which is interpreted as<br />

simulation start time and simulation finish time respectively.<br />

� The Latest Wave (only available for regular wave simulations) which is defined to be the wave period<br />

immediately preceding the latest simulation time.<br />

For Range Graphs the period can also be Static State or Instantaneous Value:<br />

� The Static State period is only available after a statics calculation and the graph shows a curve of the values in<br />

the static configuration.<br />

� The Instantaneous Value period is available when a simulation has been run. It shows a curve of the values at<br />

the instantaneous simulation time. This is normally the latest simulated time. However, if a replay is active then<br />

the graph shows a curve of values at the active replay time. This allows you to see, for an entire line, how a<br />

results variable evolves over a simulation.<br />

Variable<br />

The desired variable(s).<br />

Definitions of the results variables can be obtained by selecting them in the Variable list box and then pressing F1.<br />

Logging for results<br />

The summary and full results are taken directly from the current state of the model. All the other results are derived<br />

from the simulation log file which <strong>OrcaFlex</strong> creates automatically when a simulation is run. As the simulation<br />

progresses, <strong>OrcaFlex</strong> samples the variables for each object at regular intervals and stores the sampled values in the<br />

log file. All time histories, statistics and range graphs are derived from the simulation log file.<br />

You can control the time resolution of the results by setting the Target Sample Interval data item on the general data<br />

form. This must be done before the simulation is started. Decreasing the sample interval will improve the time<br />

resolution of the results (and increase the number of samples taken). However, because more samples are taken this<br />

will also increase the size of the simulation file that is created.<br />

Spike Logging<br />

A special algorithm is used for logging results that tend to vary rapidly to ensure that any spikes that may occur<br />

between samples are recorded. We refer to this algorithm as spike logging.<br />

Line Results<br />

<strong>OrcaFlex</strong> spike logs Effective Tension, Torque, Clash Force, Clash Energy, Solid Contact Force, End Force results and<br />

Vortex Force results. In addition other results which are derived from these quantities are effectively spike logged<br />

by association. Such variables include Wall Tension, Normalised Tension, Direct Tensile Strain, ZZ Strain, Worst ZZ<br />

Strain, Direct Tensile Stress, von Mises Stress, Max von Mises Stress and ZZ Stress.<br />

Link and Winch Results<br />

<strong>OrcaFlex</strong> spike logs Tension and Velocity.<br />

Solid Results<br />

<strong>OrcaFlex</strong> spike logs contact force magnitude.<br />

General Results<br />

<strong>OrcaFlex</strong> spike logs Implicit solver iteration count and Implicit solver time step.


User Interface, Results<br />

Inadequate segmentation warning<br />

68<br />

w<br />

If any lines have, during the simulation, gone into greater compression than their segment Euler load then a warning<br />

note is added to the Results form. Such lines are marked with the symbol § in the Model Browser. Usually this<br />

means that finer segmentation is needed in some sections of these lines in order to model compression adequately.<br />

Offset warning<br />

If any of the multiple statics calculations have failed then a warning note is added to the Results form.<br />

3.9.2 Selecting Variables<br />

Each object has associated with it:<br />

� A currently selected variable that will be used for graphs.<br />

� A set of statistics variables that will be included in statistics reports.<br />

For the currently selected object, the currently selected variables are shown in a list on the results selection form.<br />

If Statistics results are selected, then the list shows the set of variables that will be included in the statistics report<br />

and you can add or remove variables by CLICKING on them in the list.<br />

If a Time History is selected, the list shows the (single) currently selected variable and you can select a different<br />

variable by CLICKING on it in the list.<br />

You can also multi-select variables, using:<br />

CLICK select one variable<br />

DRAG select a range of variables<br />

SHIFT+CLICK select a range of variables<br />

CTRL+CLICK add / remove one variable<br />

CTRL+DRAG add / remove range of variables<br />

If more than one variable is selected, then the Values button will give a single Spreadsheet Window with a time<br />

history column for each selected variable, and the Graph button will give a separate Graph Window for each<br />

variable.<br />

New columns can be appended to existing time history spreadsheet windows, as follows:<br />

� Select the spreadsheet window to which you want to append, by clicking on it.<br />

� Then open the Select Results form and select the variables that you want to append.<br />

� Then hold the CTRL button down and click the Values button.<br />

� Provided that the selected spreadsheet window is a time history values table and that the time periods for both<br />

sets of histories match, then the new time histories will be appended to the active window. This allows you to<br />

have a single window containing results from different objects.<br />

3.9.3 Summary and Full Results<br />

These spreadsheet windows give the current state of an object or of the whole model. For example, in<br />

Statics Complete state the full results tables show the positions of objects in their static position. If a simulation is<br />

active, then they show the positions of objects at the latest time calculated.<br />

To obtain one of these results tables:<br />

� Select Summary Results or Full Results on the Results form.<br />

� Select the object required.<br />

� Click the Table button.<br />

The summary results are simply an abbreviated form of the full results, in which the results for lines only include<br />

the end nodes, not all of the intermediate nodes.<br />

When the model is in Statics Complete state the summary and full results include estimates of the shortest natural<br />

periods of objects or of the whole model. These can be used to determine suitable simulation time steps. The<br />

simulation inner time step should normally be no more than 1/10th of the shortest natural period of the model –


w<br />

69<br />

User Interface, Results<br />

this is given at the top of the summary results or full results report for All Objects. In addition the full results table<br />

for a line contains detailed reports of the shortest natural periods.<br />

3.9.4 Statistics<br />

The Statistics report provides, for each statistics variable:<br />

� The minimum and maximum values and the simulation times when they occurred.<br />

� The mean and standard deviation (i.e. the root mean square about the mean).<br />

These statistics are reported for each of a number of periods of the simulation. If Statistics by Wave Period is<br />

selected then these periods are successive wave periods; otherwise they are the stages of the simulation.<br />

To obtain a Statistics report:<br />

� Select Statistics.<br />

� Select the object and the variables of interest (see Selecting Variables).<br />

� CLICK the Table button.<br />

The report is presented in a spreadsheet.<br />

Note: Be careful when interpreting statistics of Line Clearance and Seabed Clearance, since these results<br />

are already minima – the shortest distance to any other line and to any point on the seabed. For<br />

example, the maximum of Line Contact Clearance will be the maximum value that the smallest<br />

clearance took during the period.<br />

3.9.5 Linked Statistics<br />

The Linked Statistics table relates a group of variables for a given object. For a specified group of variables and a<br />

specified period of simulation, <strong>OrcaFlex</strong> finds the minimum and maximum of each variable and reports these<br />

extreme values, the times they occurred and the values that all the other variables took at those times.<br />

The report also includes:<br />

μ mean,<br />

σ standard deviation,<br />

Tz<br />

Tc<br />

m0<br />

m2<br />

m4<br />

mean up-crossing period, estimated as the average time between successive up-crossings of the mean value μ,<br />

mean crest period, estimated as the average time between successive local maxima,<br />

zeroth spectral moment, estimated as σ 2 ,<br />

second spectral moment, estimated as m0/Tz 2 ,<br />

fourth spectral moment estimated as m2/Tc 2 ,<br />

ε spectral bandwidth parameter, estimated as (1-Tc 2 /Tz 2 ) ½ ,<br />

To obtain a Linked Statistics report:<br />

� Select Linked Statistics.<br />

� Select the required object and period.<br />

� Select the variables of interest (see Selecting Variables).<br />

� CLICK the OK button.<br />

The report is presented in a spreadsheet.<br />

Note: Be careful when interpreting statistics of Line Clearance and Seabed Clearance, since these results<br />

are already minima – the shortest distance to any other line and to any point on the seabed. For<br />

example, the maximum of Line Contact Clearance will be the maximum value that the smallest<br />

clearance took during the period.<br />

3.9.6 Offset Tables<br />

These Text Windows are available only after multiple statics calculations and only for vessels. For a given offset<br />

direction they report the total load on the vessel and show how it varies with offset distance. The worst tension in<br />

any segment of any line connected to the vessel is also reported for each offset.


User Interface, Results<br />

To obtain an Offset Table:<br />

� Select Offset Table on the Results form.<br />

� Select the offset vessel.<br />

� Select the offset direction required.<br />

� CLICK the Table button.<br />

The report is presented in a spreadsheet.<br />

3.9.7 Line Clashing Report<br />

70<br />

w<br />

The Line Clashing Report produces a detailed tabular report about the line clashing events during a simulation.<br />

To obtain a Line Clashing Report:<br />

� Select Line Clashing Report on the Results form.<br />

� Select a line.<br />

� Select the period required.<br />

� CLICK the Table button.<br />

The report is presented in a spreadsheet.<br />

Contents of the Line Clashing Report<br />

The report lists a summary table followed by a detailed table as described below.<br />

Summary table<br />

The summary table lists all clash events for segments on the selected line. A clash event is deemed to start when a<br />

segment from the selected line first comes into contact with another line segment. We shall refer to the selected line<br />

as L1 and to the particular segment on this line as S1. The clash event ends when S1 is no longer in contact with any<br />

other line segments.<br />

Note: During the course of a clash event the segment S1 may be in contact with a number of different line<br />

segments from other lines, e.g. if the clash is a sliding contact. This is counted as a single clash<br />

event from the perspective of S1.<br />

For each clash event the following results are reported:<br />

Event number<br />

A number of clash events may occur during the simulation. Each event is given a number to identify it. This is useful<br />

when relating the summary results of a clash event to the detailed results.<br />

Segment number and segment arc length<br />

This identifies the segment S1 on the selected line.<br />

Start Time, End Time and Duration<br />

The simulation time of the start and end of the clash event together with its duration.<br />

Total Impulse<br />

The total impulse of the clash event.<br />

Peak Clash Force<br />

A scalar value reporting the greatest value of clash force achieved during the clash event. The clash force vector is<br />

monitored during each clash event and the greatest magnitude of this vector is reported.<br />

Peak Clash Energy<br />

A scalar value reporting the greatest value of clash energy achieved during the clash event.<br />

Max Penetration<br />

At each time step we calculate the depth of penetration between the outer surfaces of segment S1 and all other<br />

segments. Let S2 be a segment on another line.


w<br />

71<br />

User Interface, Results<br />

Let the radii of the two segments be r1 and r2 (as defined by the line type contact diameter). <strong>OrcaFlex</strong> calculates the<br />

shortest separation distance, d, between the centrelines of the two segments. The penetration of these two segments<br />

is defined to be (r1 + r2) – d. The value reported as Max Penetration is the maximum value of penetration between<br />

segment S1 and any other segment over the duration of the clash event.<br />

Detailed table<br />

The detailed table reports information about each individual contact between segment S1 and another segment. If<br />

during the course of a clash event segment S1 is in contact with a number of segments on other lines then the start<br />

time, end time and duration of each of those individual contacts is reported.<br />

Contact velocity<br />

The detailed table also includes the contact velocity for each individual contact. This is the normal component of<br />

relative velocity of the two contact points at the start of the time step during which the clash event started.<br />

3.9.8 Time History and XY Graphs<br />

Time History graphs are of a single variable against time. XY graphs are of one time dependent variable against<br />

another.<br />

The period of simulation covered by the graph is chosen from a list.<br />

To obtain a Time History or XY Graph:<br />

1. Select Time History or XY Graph on the Results form.<br />

2. Select the object required.<br />

3. Select the variable required (see Selecting Variables). More than one variable can be selected for time histories.<br />

For XY graphs the steps 2 and 3 need to be done for both axes. Do this by CLICKING on one of the options labelled Xaxis<br />

or Y-axis, which are located at the bottom of the results form, and then repeating steps 2 and 3.<br />

� Select the period required.<br />

� CLICK the Graph button.<br />

Time history and XY graphs are displayed in Graph Windows and they are "live" – i.e. they are regularly updated<br />

during the simulation. You can therefore set up one or more graph windows at the start of a simulation and watch<br />

the graphs develop as the simulation progresses. If you reset the simulation then the curves will be removed but the<br />

graphs will remain, so you can adjust the model and re-run the simulation and the graphs will then be redrawn.<br />

Graphs are automatically deleted if the object that they refer to is removed, for example by loading a new model.<br />

Range Jump Suppression<br />

For time histories of angles <strong>OrcaFlex</strong> chooses the angle's range so that the time history is continuous.<br />

For example consider vessel heading, which is normally reported in the range -180° to +180°. If the vessel's heading<br />

passes through 180° then without range jump suppression the time history would be:<br />

.., 179°, 180°, -179°, ..<br />

i.e. with a 360° jump. To avoid this jump <strong>OrcaFlex</strong> adds or subtracts multiples of 360° to give the best continuation<br />

of the previous value. So in this example it adds 360° to the -179° value and hence reports:<br />

.., 179°, 180°, 181°, ..<br />

This addition is valid since 181° and -179° are of course identical headings.<br />

Note that this means that angle time history results can go outside the range -360° to +360°.<br />

Spectral Density<br />

From any time history graph you can use the pop-up menu to obtain the spectral density graph for that time history.<br />

The curve shown on the graph is the one-sided power spectral density (PSD) per unit time of the sampled time<br />

history, obtained using the Fourier Transform. The fundamental frequency is specified on the General data form.<br />

Notes: Using the Fourier Transform to estimate the PSD inevitably introduces 'noise' or 'leakage' to the<br />

spectrum. To reduce the leakage the time history is partitioned into a number of overlapping<br />

periods. The PSDs are calculated for each period and then averaged to give the reported PSD which<br />

has the effect of smoothing the resulting PSD.


User Interface, Results<br />

Empirical Cumulative Distribution<br />

72<br />

w<br />

This smoothing technique is only applied if there is more than 200s of data in the time history.<br />

From any time history graph you can use the pop-up menu to obtain the empirical cumulative distribution graph for<br />

that time history. This graph shows what proportion of the samples in the time history are less than or equal to a<br />

given value.<br />

These graphs are sometimes referred to as Exceedence Plots since they can sometimes be used to estimate the<br />

probability that the variable will exceed a given value.<br />

Warning: The samples in a time history are not independent. They have what is called 'serial correlation',<br />

which often affects the accuracy of statistical results based on them.<br />

Rainflow half-cycle Empirical Cumulative Distribution<br />

From any time history graph you can use the pop-up menu to obtain the rainflow half-cycle empirical cumulative<br />

distribution graph for that time history. The curve on this graph is produced in the following way:<br />

1. The time history is analysed using the rainflow cycle-counting algorithm. For details of this algorithm see the<br />

paper by Rychlik.<br />

2. The rainflow algorithm produces a list of half-cycles associated with the time history. The empirical cumulative<br />

distribution of these half-cycles is then plotted.<br />

3.9.9 Range Graphs<br />

Range graphs are only available for a selection of variables and they are only available for Lines. They show the<br />

values the variable took, during a specified part of the simulation, as a function of arc length along the Line. In<br />

particular:<br />

� Range graphs show the minimum, mean and maximum values that the variable took during the specified part of<br />

the simulation with the exception that the Line Clearance range graphs only show the minimum value.<br />

� Effective tension range graphs have extra curves showing the segment Euler load and the Allowable Tension<br />

value (as specified on the Line Types data form).<br />

� Bend Moment range graphs have an extra curve showing the maximum permitted bend moment<br />

(EI / Minimum Bend Radius specified on the Line Types data form).<br />

� Curvature range graphs have an extra curve showing the maximum permitted curvature (the reciprocal of the<br />

Minimum Bend Radius specified on the Line Types data form).<br />

� Stress range graphs show the Allowable Stress (as specified on the Line Types data form).<br />

� A Standard Deviation curve can also be added to a range graph – to do this edit the graph's properties (by<br />

double clicking on the graph) and set the Standard Deviation curve's visible property (by default the curves are<br />

not visible). Two curves are then drawn, at Mean ± xσ, where x is a user chosen value and σ is the standard<br />

deviation. The standard deviation is calculated from all the samples that lie in the simulation period chosen for<br />

the graph.<br />

Warning: Be careful not to assume that 95% of the data lie in the interval Mean ± 2σ. This common guideline<br />

is based on the assumption that the data are sampled from a Normal (i.e. Gaussian) distribution.<br />

To obtain a Range Graph:<br />

� Select Range Graph on the Results form.<br />

� Select the object required.<br />

� Select the arc lengths required. This can be the entire line, a selected arc length range, or a selected line section.<br />

� Select the variable required (see Selecting Variables).<br />

� Select the period required.<br />

� CLICK the Graph button.<br />

Range graphs are displayed in Graph Windows and they are "live" – i.e. they are regularly updated during the<br />

simulation. You can therefore set up one or more graph windows at the start of a simulation and watch the graphs<br />

develop as the simulation progresses. If you reset the simulation then the curves will be removed but the graphs will


w<br />

73<br />

User Interface, Results<br />

remain, so you can adjust the model and re-run the simulation and the graphs will then be redrawn. Graphs are<br />

automatically deleted if the object that they refer to is removed, for example by loading a new model.<br />

Range Jump Suppression<br />

Just as it does for Time History and XY Graphs, <strong>OrcaFlex</strong> applies range jump suppression for range graphs of angles.<br />

3.9.10 Offset Graphs<br />

These graphs are available only after a multiple statics calculation has been done and only for the offset vessel. The<br />

following variables are plotted against offset distance:<br />

Restoring Force<br />

The magnitude of the horizontal component of the total force applied to the vessel by the attached Lines or other<br />

objects. Note that this force is not necessarily in the offset direction.<br />

Vertical Force<br />

The vertically downwards component of the total force applied to the vessel by the attached Lines or other objects.<br />

Yaw Moment<br />

The moment, about the vertical, applied to the vessel by the attached Lines or other objects.<br />

Worst Tension<br />

The largest tension in any segment of any Line connected to the vessel.<br />

To obtain an Offset Graph:<br />

� Select Offset Graph on the Results form.<br />

� Select the offset vessel.<br />

� Select the offset direction required.<br />

� Select the variable required.<br />

� CLICK the Graph button.<br />

3.9.11 Spectral Response Graphs<br />

These graphs are available only if you have run a response calculation wave. The graph is only available once the<br />

simulation has been completed.<br />

The graph plots the calculated RAO for the selected variable on the Y axis and wave frequency on the X axis.<br />

To obtain a Spectral Response Graph:<br />

� Select Spectral Response Graph on the Results form.<br />

� Select the object required.<br />

� Select the variable required (see Selecting Variables). More than one variable can be selected.<br />

� CLICK the Graph button.<br />

3.9.12 Extreme Value Statistics Results<br />

There is often a requirement to predict the extreme responses of a system, for example to determine the likelihood<br />

of a load exceeding a critical value that may lead to failure. Such values are needed when using standards such as<br />

DNV-OS-F201 and API RP 2SK.<br />

<strong>OrcaFlex</strong> can estimate extreme values for any given result variable by analysing the simulated time history of the<br />

variable using extreme value statistical methods. You may, for instance, perform a mooring analysis in an irregular<br />

sea-state and then estimate the maximum mooring line tension for a 3-hour storm.<br />

The statistical theory for this estimation is well-established and is described in the theory section. The procedure is<br />

essentially this:<br />

� You select the statistical distribution to be used to model the distribution of extremes. See Data below.<br />

� <strong>OrcaFlex</strong> estimates the distribution model parameters that best fit the simulation time history of the variable.


User Interface, Results<br />

74<br />

w<br />

� <strong>OrcaFlex</strong> uses the fitted distribution to estimate and report the required extreme statistic (e.g. return level), for<br />

a specified period of exposure. See Results below.<br />

� <strong>OrcaFlex</strong> provides diagnostic graphs that you should use to judge the reliability of the results.<br />

The Extreme Value Statistics Results form is designed to lead you through this process.<br />

When you open the Extreme Value Statistics Results form, for a selected results variable, you will come first to the<br />

Data page, where you will select the distribution. Moving then to either of the other pages (Results or Diagnostic<br />

Graphs) will cause <strong>OrcaFlex</strong> to carry out the estimation part of the procedure. The Diagnostic Graphs assist in<br />

testing the model. The Results page reports the estimated statistics, e.g. the return value for the specified period, the<br />

estimation uncertainty inherent in that value etc.<br />

Data<br />

For convenience, the time history result graph is reproduced on the Data page. The data required for the fitting of<br />

the model are entered on this page, and are as follows.<br />

Distributions<br />

These fall into two groups, according to the statistical method with which they are applied. For details see the<br />

Extreme Value Statistics Theory section.<br />

� Rayleigh distribution. This method assumes that the variable is a stationary Gaussian process. This is perhaps a<br />

reasonable assumption for waves, particularly in deep water, and for responses which are approximately linear<br />

with respect to wave height. However, for many other variables of interest, the Gaussian assumption is invalid<br />

and leads to poor estimates of extreme values.<br />

� Weibull and Generalised Pareto (GPD) distributions. These distributions are both fitted using the maximum<br />

likelihood method. Historically, the Weibull distribution has often been used for marine systems, but the<br />

Generalised Pareto is preferred by the extreme value statistics community because of its sound mathematical<br />

foundations.<br />

Extremes to analyse<br />

Specifies whether maxima (upper tail) or minima (lower tail) are to be analysed.<br />

Threshold and Decluster Period<br />

These data are only required when using the Weibull and GPD distributions, which are fitted to extremes of the time<br />

history and those extremes are selected using the peaks-over-threshold method with (optional) declustering.<br />

The threshold controls the peaks-over-threshold method. This allows you to control the extent to which the<br />

analysis is based on only the extreme values in the data (the tail of the distribution).<br />

The decluster period controls the declustering. This helps avoid or reduce any statistical dependence between the<br />

extreme data values used in the analysis. It can be set to one of the following:<br />

� Zero, in which case no declustering will be done, and all values above the specified threshold will be included.<br />

This is generally not recommended since the values are unlikely to be independent.<br />

� A positive value. In this case <strong>OrcaFlex</strong> will break the sequence of time history values into clusters of successive<br />

values that stay above the threshold. It will then decluster by merging successive clusters that are separated by<br />

periods (during which the variable is less than the threshold) that last no longer than the specified decluster<br />

period. The most extreme value of each of the resulting merged clusters will then be included in the analysis.<br />

� '~'. This special value may be used to tell <strong>OrcaFlex</strong> to take the clusters to be the groups of values between<br />

successive up-crossings of the mean value (or down-crossings if analysing lower tail). The most extreme value<br />

of each such cluster will then be included in the analysis, but ignoring any that do not exceed the threshold.<br />

The threshold is drawn on the time history graph, to help visualise its value relative to the extremes of the data. The<br />

number of data points that will be included in the analysis (after the threshold and declustering have been done) is<br />

also displayed. This helps with setting the threshold and decluster period.<br />

The best value for the threshold is one that strikes a balance between a not-extreme-enough value (which will<br />

increase the number of data points fitted but may give biased fitting by allowing less extreme values to influence the<br />

fitting too much), and a too-extreme value (which will fit to only the more relevant extreme data points, but may<br />

give very wide confidence intervals if there are too few such extremes in the data).


w<br />

Results<br />

75<br />

User Interface, Results<br />

The following data items, found on the Results page, do not affect the fitting of the statistical model. Rather, they are<br />

applied to the fitted model to obtain the reported results.<br />

Rayleigh<br />

Storm duration is the return period for which the return level is reported. The length of the simulation, relative to<br />

this duration, will determine the accuracy of the estimate for the return level.<br />

Risk factor is the probability of exceeding (or falling below, for lower tail) the estimated extreme value. For<br />

example, you may ask for the 3-hour extreme value that is exceeded with a probability of 0.01 (i.e. a risk factor of<br />

1%).<br />

Weibull and GPD<br />

Storm duration is defined as for the Rayleigh distribution.<br />

The maximum likelihood fitting procedure used for these distributions allows the estimation of a confidence<br />

interval for the return level, for a specified confidence level. <strong>OrcaFlex</strong> reports this estimated confidence interval in<br />

addition to the estimated return level.<br />

The reported return level is defined to be the level whose expected number of exceedences in the specified storm<br />

duration is one. The fitted values of the model parameters and corresponding standard errors are also reported.<br />

Note: For some values of storm duration (usually small values) it might not be possible to calculate the<br />

return level. This is indicated by the value 'N/A' (meaning 'not available'). Similarly, for some<br />

combinations of storm duration and confidence level, the calculation may fail to determine the<br />

confidence limits, and again these are then denoted by 'N/A'.<br />

Diagnostic Graphs<br />

The diagnostic graphs will help you to assess the goodness-of-fit of the model, and how appropriate or not the fitted<br />

distribution is. They should be interpreted together, not in isolation, as follows.<br />

� The Quantile Plot displays quantiles of the empirical data plotted against model quantiles. If the model is a<br />

good fit, then the points should lie close to the superimposed 45° diagonal line, and any significant departure<br />

from this (especially a systematic one, for example an obvious trend away from the diagonal) indicates poor<br />

model fit. The vertical lines, drawn through each point, are pointwise 95% tolerance intervals and may be<br />

used as a guide to deciding whether any departure from the diagonal is significant. If all the vertical lines<br />

intersect the diagonal line, then the modelled values are probably sufficiently close to the empirical value not to<br />

be of concern. If, however, a number of the vertical lines fail to reach the diagonal, then that may raise concerns<br />

about the validity of the fitted model.<br />

� The Return Level Plot shows return level against return period (i.e. storm duration), with the latter on a<br />

logarithmic scale to highlight the effect of extrapolation. The central line on the graph is the return level for the<br />

fitted model, and the pair of outer lines the corresponding pointwise 95% confidence limits. The points are the<br />

empirical return levels, based upon the data, and should lie between the confidence limits if the model fits the<br />

data well. As with the quantile plot, a significant number of points contravening these limits indicates poor<br />

model fit. Again, <strong>OrcaFlex</strong> may sometimes be unable to determine the confidence limits for some return periods<br />

– this may result in gaps in the confidence limit lines, or even in their not appearing at all.<br />

An example of diagnostics graphs indicating a good model fit is shown below:


User Interface, Results<br />

Figure: Diagnostics graphs for a good model fit<br />

76<br />

w<br />

If either of these graphs indicates a poor model fit, then you should reconsider the entries on the data page:<br />

� Distribution. The distribution may be inappropriate – the data may simply not conform to the selected<br />

distribution.<br />

� Threshold. The threshold may be too low, hence including too many points which are not in the tail of the<br />

distribution; or too high, resulting in too few data points for the analysis and consequent large variation in the<br />

results.<br />

� Decluster period. This may be too long (so too few data points), or too short (so successive data points might<br />

not be independent).<br />

Automation<br />

The extreme value statistics capabilities can be automated in a number of different ways.<br />

<strong>OrcaFlex</strong> spreadsheet<br />

The <strong>OrcaFlex</strong> spreadsheet post-processing facility supports analysis using the Rayleigh distribution via the Rayleigh<br />

Extremes command. The Weibull and GPD distributions are not available in the current version due to the<br />

complexity of threshold selection.<br />

<strong>OrcaFlex</strong> programming interface<br />

The C/C++, Delphi, Python and MATLAB programming interfaces to <strong>OrcaFlex</strong> all support automation of extreme<br />

value statistics. As with all other functionality, the Python and MATLAB interfaces are the easiest to use.<br />

The full analysis capability is available via the programming interface. That is, in contrast to the <strong>OrcaFlex</strong><br />

spreadsheet, analysis using the Weibull and GPD distributions is available.<br />

3.9.13 Presenting <strong>OrcaFlex</strong> Results<br />

<strong>OrcaFlex</strong> users often wish to show their <strong>OrcaFlex</strong> results in a slide presentation prepared using a presentation<br />

program such as Microsoft PowerPoint. Here are some tips on how this can be done.<br />

Graphs<br />

Graphs can be transferred from <strong>OrcaFlex</strong> to presentation programs by simple copy + paste.


w<br />

Replays<br />

77<br />

User Interface, Graphs<br />

Note: In PowerPoint, instead of using Paste, it is better to use Paste Special (from the Edit menu) and<br />

then select the Enhanced Metafile. This gives better resolution.<br />

Replays can be transferred by exporting to an AVI file and then importing that video clip file into the presentation<br />

program.<br />

An XVID encoded AVI file (and possibly other codecs) added to Microsoft PowerPoint slides as a Movie Object may<br />

not play correctly (displaying a blank screen on replay, or the video only appearing in full screen mode). To avoid<br />

these problems, an XVID AVI file needs to be inserted as a Video Clip Object. This can be done in two ways:<br />

1. Drag and Drop the AVI file onto the PowerPoint slide, or<br />

2. From the PowerPoint menu, choose Insert | Object. Select 'Create from file' and Browse to your file (do not<br />

select the 'Link' option).<br />

To set options such as auto repeat, right-click on the image in the slide, then select Video Clip Object | Open, this<br />

displays the video player window and menus.<br />

The Video Clip Object links to the AVI file (it is not embedded within PowerPoint) so the file location needs to be<br />

accessible when running the presentation. The computer running the presentation must also have the XVID codec<br />

installed.<br />

Note: Resizing video clips (after pasting into your presentation) will introduce aliasing (re-digitisation<br />

errors) so it is best to set the <strong>OrcaFlex</strong> 3D View window to the required size before you export the<br />

video.<br />

Video Clips of <strong>OrcaFlex</strong> in Use<br />

Your presentation can even show video clips of <strong>OrcaFlex</strong> in use, illustrating how the program is used. However, it is<br />

rather harder to generate the required video files. We recommend using software called Camtasia<br />

(www.techsmith.com) to record video clips showing <strong>OrcaFlex</strong> in use.<br />

3.10 GRAPHS<br />

When you request results in graphical form, they are presented in Graph Windows. You can open several<br />

simultaneous graph windows, showing different results, and tile them on the screen together with 3D Views and<br />

text results windows. To adjust a graph's properties (range of axes, colours, etc.) see Modifying Graphs.<br />

Graphs have a pop-up menu that provides the following facilities.<br />

� Use Default Ranges.<br />

� Copy copies the graph to the clipboard, from where you can paste it into other applications.<br />

� Values.<br />

� Spectral Density.<br />

� Empirical Cumulative Distribution.<br />

� Rainflow half-cycle Empirical Cumulative Distribution.<br />

� Export enables you to export the graph to a metafile or bitmap file.<br />

� Print facilities and the Monochrome Output preference.<br />

� Properties.<br />

Graphs of simulation results are updated automatically as the simulation progresses. Also, they are kept even if you<br />

reset the simulation, so once you have set up a set of interesting graphs you can edit the model and re-run the<br />

simulation to see the effect of changing the model.<br />

You can also set up results graphs when in reset state, prior to running a simulation – the graph will be empty<br />

initially and will grow as the simulation progresses. Note that we do not recommend this for graphs of line<br />

clearance, however, since updating them can significantly slow down the simulation.<br />

The workspace feature provides a very powerful way of managing collections of related graphs.<br />

When a replay is in progress the replay time is indicated on both Time History and XY graphs.


User Interface, Graphs<br />

78<br />

w<br />

Figure: Replay time indicator on a Time History Graph (vertical line at Time=16s) and on an XY<br />

Graph (grey cross in bottom right of the graph).<br />

The replay time indicator on a Time History graph can be directly manipulated using the mouse. With the CTRL key<br />

pressed you simply click on a Time History graph and the indicator moves to where you have clicked. Any open 3D<br />

Views are updated to show the new replay time. Similarly, with the CTRL key pressed you can click and then drag the<br />

indicator. This direct manipulation of the replay time indicator is designed to help understand and visualise how<br />

your model is behaving at key moments of the simulation.<br />

Printing Graphs<br />

To print a graph, use the File | Print menu item. When printing to a monochrome printer you will get the best results<br />

by setting the Monochrome Output preference – this is set by default when the program is first installed.<br />

Copy and Paste with graphs<br />

You can also copy a graph to the clipboard – simply select the graph window by CLICKING on it and then using the<br />

Edit | Copy menu item. From the clipboard you can then paste it into another application, for instance into a word<br />

processor document. Graphs can also be exported as Windows metafiles, use the File | Export menu item. Metafiles<br />

can be imported into many Windows programs, such as word processors, spreadsheets, graphics packages etc.<br />

Note: When copying a graph to the clipboard, the size of the graph window you copy from has an effect<br />

on how the text label fonts appear when the graph is pasted into another application. For example,<br />

if you are copying a graph to a Word Processor and want the graph to be full page size, then the<br />

graph window should be made large on screen (e.g. maximised). If you want a number of graphs on<br />

one page of a document then the graph should be smaller on screen – try tiling or cascading the<br />

windows (see the Window menu). By experimenting with various differently sized graphs it should<br />

be possible to arrange for the fonts to appear as you wish.<br />

3.10.1 Modifying Graphs<br />

You can zoom into a graph by holding down the ALT key and dragging a box around the area that you want the graph<br />

to display. When you release the mouse button the region selected will be expanded to fill the graph. Mouse<br />

shortcuts can also be used: CTRL+wheel to zoom, SHIFT+drag to pan. If you want to reverse this process then right<br />

click the mouse and choose Use Default Ranges from the pop-up menu.<br />

You can also change the appearance of a graph by double clicking on the graph or by selecting Properties from the<br />

graph's pop-up menu. A form is then shown which allows you to change various aspects of the graph, as follows:


w<br />

Axes<br />

79<br />

User Interface, Spreadsheets<br />

You can set the range, the tick spacing and the number of small ticks. The Use Default Tick Spacing button sets the<br />

tick spacing and the number of small ticks to sensible default values based on the range. This is useful if you want to<br />

set the range to a specific value and want the tick spacing to be set automatically.<br />

Labels<br />

You can alter the text and fonts of the axis and tick labels.<br />

Curves<br />

You can control the line properties and visibility for each curve on the graph.<br />

Legend<br />

The legend is a key showing which curve is which. It only appears on graphs that have multiple curves, e.g. range<br />

graphs. You can control whether the legend is shown and if so where and using what font. Note that the legend<br />

includes all the curves, even if some of them may not be visible at the time.<br />

Intercepts<br />

Intercepts are lines, like the axes, that go right across the graph. In fact the X and Y axes themselves are considered<br />

to be intercepts. You can add more intercepts, for example to mark things like stage start times, and you can control<br />

their position and style.<br />

Save As Default<br />

Changes to a graph's properties normally only apply to that graph. But for general settings (fonts etc.) you can also<br />

click the Save As Default button. <strong>OrcaFlex</strong> then remembers the current settings for use with future graphs.<br />

3.11 SPREADSHEETS<br />

Some numerical results (e.g. obtained with the Values button on the Results form) appear in an Excel compatible<br />

spreadsheet. The spreadsheet is read-only. If you wish to modify or extend it you must first save it as described<br />

below.<br />

Printing, Copying and Exporting Spreadsheets<br />

To print the spreadsheet right click and select Print, but remember that <strong>OrcaFlex</strong> time histories are normally quite<br />

long and will therefore produce many pages. If necessary, you can first adjust the printer setup using File | Printer<br />

Setup.<br />

You can also easily transfer the results to other applications by either:<br />

� Copy and paste via the Windows clipboard. Select the block to be transferred and press CTRL+C.<br />

� Saving to file. Choose Export from the popup menu to save as Excel format (.xls), comma separated values (.csv)<br />

or as tab delimited text (.txt).<br />

3.12 TEXT WINDOWS<br />

Simple text windows are used for some reports – see below. To print a text window, use the File | Print menu. You<br />

can also copy text to the clipboard – simply select a region of text and then use the Edit | Copy menu item (or press<br />

CTRL+C). From the clipboard you can then paste it into another application, for instance into a word processor<br />

document. Alternatively, you can export the text to a file by using the File | Export menu item. The resulting text file<br />

can then be imported into your word processor.<br />

Statics Progress Window<br />

During a Statics Calculation, the progress of the calculation is shown in the message box on the status bar. However<br />

the messages are also sent to a text window that is normally minimised. This window may be viewed by clicking on<br />

the message box during statics, or by selecting the Window | Statics Progress menu item if you wish to watch the<br />

process more closely. Like other text windows it may be printed, copied or exported, as described above.<br />

3.13 WORKSPACES<br />

It is common to have many windows (3D View, graph or spreadsheet) open within <strong>OrcaFlex</strong>. The workspace facility<br />

is designed to help manage these windows.


User Interface, Comparing Data<br />

Workspace files<br />

80<br />

w<br />

A collection of view, graph or spreadsheet windows can be saved using the Workspace | Save Workspace menu item.<br />

This creates a text file with the .wrk file extension containing a specification of the current window layout. The<br />

workspace can be restored at any time with the Workspace | Open Workspace menu item. This can give significant<br />

time savings if you wish to look at a number of different results windows for a large number of <strong>OrcaFlex</strong> models.<br />

Note that the contents of the windows are not saved to the workspace file, just a logical description of the window.<br />

For example, suppose you saved a workspace containing a graph of Effective Tension of a Line called Riser. If you<br />

then loaded a different simulation file and open that workspace then you would see the Effective Tension of the Line<br />

called Riser in the new simulation file and not the simulation filed open when the workspace was saved. This means<br />

that you can look at the same collection of results for any number of simulation files.<br />

Workspace files are not limited to simulation files – static results and multiple statics results can also be saved.<br />

Default workspaces<br />

As an alternative to loading a workspace by using the Workspace menu items you can associate default workspaces<br />

with either individual simulation files or with entire directories.<br />

� If you define a default workspace for a simulation file then the workspace is restored whenever you open that<br />

same simulation file.<br />

� If you define a default workspace for a directory then the workspace is restored whenever you open any<br />

simulation file in that directory.<br />

Getting the most out of workspaces<br />

We recommend that you save your workspace files in the same directory as the <strong>OrcaFlex</strong> files. If you do so then the<br />

workspace file will appear in the Most Recent Files list on the Workspace menu.<br />

Workspace files can be very useful if you are sending simulation files to another person. By including a workspace<br />

file with the results of interest you can be sure that they will view the correct information. This can be particularly<br />

valuable when sending files to someone who is not an experienced <strong>OrcaFlex</strong> user. This can even be useful when<br />

sending files to <strong>Orcina</strong> for software support because they contain a precise specification of the results you are<br />

interested in.<br />

3.14 COMPARING DATA<br />

The Compare Data menu item opens the Compare Data form, which allows you to find differences between the data<br />

in two <strong>OrcaFlex</strong> files.<br />

The comparison is done using a user-provided compare program, so when you first use this facility you need to<br />

configure <strong>OrcaFlex</strong> to tell it which compare program that you want to use; see Configuration below.<br />

You can then compare files as follows:<br />

� On the Files page, specify the two files that you wish to compare. These can be data or simulation files.<br />

� Click the Compare button.<br />

� <strong>OrcaFlex</strong> then saves the data from the two files to temporary text files and then runs the user-specified compare<br />

program to compare those text files.<br />

As an alternative to comparing two data files on disk you can optionally choose to compare the currently loaded<br />

model with a single file on disk.<br />

Configuration<br />

On the Configuration page you need to tell <strong>OrcaFlex</strong> the text file compare program that you want to use, and how to<br />

use it. The compare program must be a program that can compare text files passed to it through the command line.<br />

Many such programs are available on the web; we at <strong>Orcina</strong> have a preference for WinMerge.<br />

Compare Program<br />

This is the compare program's executable file name. You can specify either the full path, or just the file name if the<br />

executable file resides in a directory which is on your system path.<br />

If no program is specified <strong>OrcaFlex</strong> uses a very basic, built-in, compare facility.


w<br />

Command Line Parameters<br />

81<br />

User Interface, Preferences<br />

This defines the command line parameters that are passed to the compare program. <strong>OrcaFlex</strong> replaces the special<br />

strings %1 and %2 with the file names of the temporary text files.<br />

<strong>OrcaFlex</strong> also replaces special strings %name1 and %name2 with readable names describing the two files or objects<br />

that are being compared. Not all compare programs have the capability of assigning readable names and just use the<br />

file name, so the use of this facility is optional.<br />

For most compare programs the default setting of %1 %2 will be sufficient. Otherwise you will need to consult the<br />

documentation of your compare program.<br />

If you are using WinMerge then we recommend using the following: /e /x /s /dl %name1 /dr %name2 %1 %2<br />

3.15 PREFERENCES<br />

<strong>OrcaFlex</strong> has a number of settings that can be customised to suit the way that you work. The majority of settings can<br />

be adjusted in the Preferences form, which is accessed by using the Tools | Preferences menu item.<br />

3D View Preferences<br />

Minimum Drag Distance<br />

Object positions are not updated until the mouse has been dragged at least this distance (in pixels). This prevents<br />

accidental changes to object positions. To make a small movement, drag away and then back again, or edit the<br />

coordinate directly in the object's Edit Form.<br />

View Rotation Increment<br />

Each CLICK on a Rotate View button increments or decrements View Azimuth or Elevation by this amount.<br />

Refresh Rate<br />

During a simulation calculation all 3D View and Graph windows are updated at this rate. Selecting a faster rate<br />

allows you to see the behaviour of the simulation more clearly at the expense of performance. Set a slow Refresh<br />

Rate to give the numerical calculation more processor time.<br />

Background Colour<br />

This sets the background colour of all 3D View windows.<br />

Locate Object Method<br />

Can be either Flash object or Hide other objects. It determines what method the Locate action in the model<br />

browser uses.<br />

� When the Flash object preference is set then the Locate action repeatedly draws and hides the object on the 3D<br />

View, like a blinking cursor.<br />

� When the Hide other objects preference is set then the Locate action temporarily hides all other objects.<br />

Normally the default setting of Flash object is sufficient to locate objects. However, if the model you are searching<br />

for is obscured by other objects then this method may not help you to locate the object. In this case you should use<br />

the Hide other objects preference.<br />

3D View Axes Preferences<br />

View Axes<br />

The view axes show the same directions as the global axes, but are drawn in the top right hand corner of 3D views,<br />

rather than at the global origin. Can also be set from the View menu.<br />

Scale Bar<br />

Determines whether a scale bar is drawn in 3D views. Can also be set from the View menu.<br />

Note: The Scale Bar is not drawn for shaded graphics views because it would be meaningless due to<br />

perspective.


User Interface, Preferences<br />

Global Axes<br />

82<br />

w<br />

Determines whether the global axes are drawn, at the model's global origin (0,0,0). Can also be set from the View<br />

menu.<br />

Environment Axes<br />

Determines whether the wave, current and wind directions are drawn in the 3D view. When multiple wave trains<br />

are present the first wave train is taken to be the dominant one and is drawn using sea surface pen, whereas the<br />

other wave trains' directions are drawn in the secondary wave direction pen. Can also be set from the View menu.<br />

Local Axes<br />

Determines whether the local axes for vessels, buoys and line ends are shown. Drawing the local axes on the 3D<br />

view helps you check the orientations of these objects. This preference can also be set from the View menu.<br />

Node Axes<br />

Note: Local Axes are not drawn for shaded graphics views.<br />

Determines whether axes for line nodes are shown. This preference can also be set from the View menu.<br />

Out of Balance Forces<br />

If selected, then in the static analysis (not during the simulation) there are extra lines drawn on the 3D view,<br />

representing the out of balance force acting on each vessel and buoy. This preference is sometimes useful for static<br />

analysis, since it enables you to see how far a buoy or vessel is from being in equilibrium. This preference can also<br />

be set from the View menu.<br />

The force is drawn as a line, starting at the force's effective point of application, and whose length represents the<br />

size of the force. The scaling is piecewise linear and based on the View Size of the 3D view. Lines up to ViewSize/2<br />

long mean forces up to 10 force units and lines from ViewSize/2 to ViewSize mean forces from 10 to 1000 force<br />

units.<br />

Note: Out of Balance Forces are not drawn for shaded graphics views.<br />

Video Preferences<br />

The video preferences allow you to control the compression algorithm used for exported video. The software which<br />

performs this compression is called a codec. Because the different graphics modes produce very different images<br />

they require different types of codec.<br />

Shaded Graphics Codec<br />

The run-length encoding which works well for wire frame graphics is not suitable for shaded replays and in fact<br />

there is no suitable built-in codec in Windows. We would recommend using an MPEG-4 codec of which many are<br />

available. In our experience the freely available (licensed under the GPL) XVID codec performs very well. The<br />

Shaded Graphics topic has more information about the XVID codec.<br />

Another reasonable choice is the Windows Media Video 9 codec, which is identified by the code WMV3. This codec<br />

produces lower quality videos than XVID for the same video file size, but does have the advantage that the videos<br />

should work on almost all Windows machines without the need for codec installation. Details on how to download<br />

this codec can be found at: www.orcina.com/Support/ShadedGraphics.<br />

You can choose to use other codecs that are installed on your machine. Should you do so then you must also specify<br />

the following information:<br />

� Codec 4 character code: Codecs are identified by unique codes, 4 characters long. Good alternatives to XVID<br />

and WMV3 include DIVX, the 3ivx codec (character code 3IV2).<br />

� Padding: MPEG-4 codecs commonly require round number frame sizes (width and height in pixels). For<br />

example XVID requires frame sizes to be multiples of 8. When <strong>OrcaFlex</strong> exports the video it ensures that the<br />

frame sizes are a multiple of this number. If you are unsure of what number to use for your codec then we<br />

recommend trying 8 which usually works.<br />

� Colour depth: Some MPEG-4 codecs require a specific colour depth. Again, if you are unsure of what value to<br />

use then we recommend trying 32 bit or 16 bit colour depth.


w<br />

Wire Frame Graphics Codec<br />

83<br />

User Interface, Printing and Exporting<br />

Run-length encoding is the default setting and is usually the best choice. This codec offers good compression rates<br />

for <strong>OrcaFlex</strong> wire frame video. The AVI files produced using this codec can be played on most Windows PCs.<br />

If you choose Uncompressed then each frame of the video is stored as an uncompressed bitmap. This means that<br />

the AVI file produced can be extremely large.<br />

Output Preferences<br />

Printer Margins<br />

These set the Left and Top margins used on printouts.<br />

Monochrome Output<br />

If this is checked then external output (copying to the clipboard, exporting metafiles and printing) is in black and<br />

white. This is useful with black and white printers, since otherwise pale colours may be drawn in very light grey and<br />

may be hard to see.<br />

Messages Preferences<br />

A number of <strong>OrcaFlex</strong> warning messages can be disabled by checking Don't show this message again on the warning<br />

message form. Once a message has been disabled, it will not be shown again. These messages can be re-enabled by<br />

checking the appropriate box on this page.<br />

Miscellaneous Preferences<br />

Show Splash Screen<br />

Determines whether <strong>OrcaFlex</strong> displays its splash screen when the program starts.<br />

Batch Auto Save<br />

If this is enabled then simulations run in batch mode are automatically stored to simulation files at the specified<br />

regular Auto Save Interval. This is useful if your computer is prone to failure (for example because of overnight<br />

power failures) since the part-run simulation file can be loaded and continued, rather than having to re-run the<br />

whole simulation from scratch. The Auto Save Interval should be neither too short, since then the program will then<br />

waste a lot of time repeatedly storing away the results, nor too long, since then a lot of simulation work will be lost if<br />

a failure occurs.<br />

3.16 PRINTING AND EXPORTING<br />

The Print / Export form is accessed using either the File | Print or the File | Export menu item and allows you to<br />

choose one or more of the following items to be printed or saved to file:<br />

� The model data. Vessel Types often have very large amounts of data, much of which may not apply to the<br />

current model, so <strong>OrcaFlex</strong> offers you the option of printing all the vessel type data or only the data that is in<br />

use.<br />

� Any 3D Views, Graphs, Spreadsheets and Text Windows currently on display.<br />

Note: Graphs are printed as large as possible whilst maintaining aspect ratio.


w<br />

4 AUTOMATION<br />

4.1 INTRODUCTION<br />

<strong>OrcaFlex</strong> provides several important facilities for automating and post-processing work:<br />

85<br />

Automation, Introduction<br />

� <strong>OrcaFlex</strong> is supplied with a special Excel spreadsheet which enables you to automate the extraction of<br />

simulation results into your own spreadsheet. You can then use the normal Excel calculation facilities to do your<br />

own customised post-processing and graphing.<br />

� The Batch Processing facility enables you to run a set of simulations in unattended mode, for example as an<br />

overnight job. The simulations can either be of pre-prepared data files, or else can be specified by a batch script<br />

file that specifies the simulation as variations on a base data file. The <strong>OrcaFlex</strong> Spreadsheet mentioned above<br />

also has facilities for automating the production of batch script files and text data files.<br />

� <strong>OrcaFlex</strong> includes a well-documented programming interface called OrcFxAPI (short for <strong>OrcaFlex</strong> Application<br />

Program Interface). See the OrcFxAPI help file for details. OrcFxAPI is a Windows dynamic link library (DLL)<br />

that is installed when you install <strong>OrcaFlex</strong>, and which provides facilities for setting data, calculating static<br />

positions and extracting results from those calculations or from pre-run simulation files. For example you can<br />

write programs to automate post-processing or that use <strong>OrcaFlex</strong> as a 'statics calculation engine'. One important<br />

example application of this is for real-time monitoring of pipes, moorings etc. For further information or to<br />

discuss possible applications of OrcFxAPI, please contact <strong>Orcina</strong>.<br />

4.2 BATCH PROCESSING<br />

4.2.1 Introduction<br />

Simulations, script files, post processing spreadsheets and fatigue analyses can all be run in unattended mode, by<br />

using the Calculation | Batch Processing menu item. This command opens a form that allows you to set up a list of<br />

jobs that are to be run. The list can include any number and mixture of the following types of job:<br />

1. Static analysis of pre-prepared <strong>OrcaFlex</strong> data files (.dat or .yml). <strong>OrcaFlex</strong> opens the data file, performs the static<br />

analysis and then saves the results in a simulation file with the same name as the data file, but with a .sim<br />

extension.<br />

2. Dynamic analysis of pre-prepared <strong>OrcaFlex</strong> data files (.dat or .yml). <strong>OrcaFlex</strong> opens the data file, performs the<br />

static analysis, runs the dynamic simulation and then saves the results in a simulation file with the same name<br />

as the data file, but with a .sim extension.<br />

3. Partially-run <strong>OrcaFlex</strong> simulation files (.sim). <strong>OrcaFlex</strong> opens the simulation file, finishes the dynamic<br />

simulation and then saves the completed simulation, overwriting the original file.<br />

4. A batch script file (.txt). This is a text file which contains <strong>OrcaFlex</strong> script commands. <strong>OrcaFlex</strong> opens the script<br />

file and obeys the commands in turn. The most common use of script files is to perform a series of systematic<br />

variations on a base data file.<br />

5. A fatigue analysis file (.ftg or .yml). <strong>OrcaFlex</strong> performs the fatigue analysis and saves the results to a binary .ftg<br />

file. In addition the results tables are saved to an .xls spreadsheet.<br />

6. An <strong>OrcaFlex</strong> Spreadsheet (.xls or .xlsx). <strong>OrcaFlex</strong> will process all Instructions sheets in the Excel workbook. Note<br />

that if the spreadsheet's "Contains Dependencies" options is checked (or the spreadsheet is pre <strong>OrcaFlex</strong> v9.4)<br />

then the workbook will be processes as a single job using a single thread. If it isn’t checked, then each<br />

instructions sheet will be broken down into multiple load cases which are individually added to the batch and<br />

may be processed simultaneously.<br />

Note: If you wish to use Excel for any reason while <strong>OrcaFlex</strong> is processing spreadsheets within a batch it<br />

is important that you open Excel first, then open the file you wish to work on. The reason for this is<br />

that when you double click an Excel file, Windows will try to use the copy of Excel <strong>OrcaFlex</strong> has<br />

claimed, resulting in unpredictable failures.<br />

When adding data files (.dat or .yml) you need to specify whether static or dynamic analysis is to be performed.<br />

This choice is made from the Add Files file dialogue window, or from the popup menu.<br />

<strong>OrcaFlex</strong> can auto-save partial completed dynamic simulations to file at regular intervals during the batch job. This<br />

is useful if your computer is prone to failure (for example because of overnight power failures) since the part-run<br />

simulation file can be loaded and continued, rather than having to re-run the whole simulation from scratch.


Automation, Batch Processing<br />

Multi-threading<br />

86<br />

w<br />

The batch processing functionality can make use of multiple processor cores. So, for example, if you have a quadcore<br />

machine then 4 simulation files can be run concurrently.<br />

Since some batch tasks can depend on the output of other tasks <strong>OrcaFlex</strong> processes tasks in a very particular order,<br />

as follows:<br />

� The batch script files are all processed first. Because it is common to write scripts that output data files it is<br />

important to complete all batch scripts before processing the data files.<br />

� Any data or simulation files are processed next.<br />

� Fatigue files are processed next. These use simulation files as input and so should not be started until all data or<br />

simulation files have been processed.<br />

� Finally any <strong>OrcaFlex</strong> spreadsheet files or load cases are processed. These also cannot be started until all data or<br />

simulation files have been processed.<br />

The commands in batch script files are processed sequentially. Consequently any simulations that are processed<br />

with RunDynamics commands cannot be performed in parallel. Because of this it is advisable to use the SaveData<br />

command rather than the RunDynamics command when creating batch scripts. Such a script would create a number<br />

of <strong>OrcaFlex</strong> data files which you could then process in the batch form using all available processor cores.<br />

Batch Form User Interface<br />

Close<br />

Dismisses the batch form.<br />

Add Files<br />

Adds jobs to the list. Files can also be added by drag and drop. That is if you are browsing your file system then you<br />

can highlight files and drag them onto the jobs list.<br />

Files can be added whilst a batch is running. Note that this feature has the limitation that all pre-existing jobs must<br />

be run to completion before the program starts processing the files added whilst the batch was active.<br />

Remove Files<br />

Removes any files highlighted in the jobs list.<br />

Check Files<br />

<strong>OrcaFlex</strong> opens each file in the jobs list, checks that they contain valid <strong>OrcaFlex</strong> data or script commands and reports<br />

any errors. When checking <strong>OrcaFlex</strong> spreadsheet or fatigue files it simply confirms the file exists.<br />

Run Batch<br />

Processes the list of jobs. If a job fails then it is abandoned but other jobs are still attempted. Any errors are reported<br />

once all jobs have been processed.<br />

Pause Batch<br />

Pauses the currently running batch jobs. This can be useful if you temporarily want another process on your<br />

machine to have the processor resource that <strong>OrcaFlex</strong> is using.<br />

Stop Batch<br />

Terminate processing of batch jobs.<br />

Warnings<br />

Displays a window allowing you to review all warnings generated by <strong>OrcaFlex</strong> during a calculation. These warnings<br />

are suppressed when you are operating in batch mode and this button allows you to review them once the<br />

simulation has completed.<br />

Close program when Batch completes<br />

If checked then <strong>OrcaFlex</strong> will close once the processing of jobs completes. This feature is intended principally for<br />

users with networked licences. It allows you to release your claim on an <strong>OrcaFlex</strong> licence as soon as the batch of jobs<br />

is complete.


w<br />

4.2.2 Script Files<br />

87<br />

Automation, Batch Processing<br />

<strong>OrcaFlex</strong> provides special facilities for running a series of variations on a base data file, using a script file. This<br />

contains a sequence of commands to read a data file, make modifications to it, and run the modified file, storing the<br />

results for later processing. The file can also include comments. The syntax for the instructions is described in the<br />

next topic.<br />

Script files can be written using any text editor. However, it is quite unusual to do this because there are very<br />

productive facilities in the <strong>OrcaFlex</strong> spreadsheet for automatically generating script files for regular sets of cases.<br />

A more recently introduced alternative to script files are text data files. These can be used to specify load case<br />

variations. Once again, the <strong>OrcaFlex</strong> spreadsheet offers a facility to generate these text data files.<br />

4.2.3 Script Syntax<br />

An <strong>OrcaFlex</strong> batch script is made up of commands, which are obeyed sequentially, and comments, which are<br />

ignored. A comment is a line that is either blank or on which the first non-blank characters are "//". A command can<br />

be:<br />

1. A directive followed by one or more arguments, optionally separated by white space (one or more spaces or<br />

tabs). For example: load c:\temp\test.dat where load is the directive and c:\temp\test.dat is the<br />

argument.<br />

2. An assignment of the form VariableName=value, again with optional white space separators. For example:<br />

Length = 55.0.<br />

Note that:<br />

� Directives, variable names, and model object names are all case independent.<br />

� If your script includes a relative file name then it is taken to be relative to the directory from which the script<br />

was loaded.<br />

� File names, arguments, variables or values containing spaces or non-alphanumeric characters must be enclosed<br />

in single or double quotes and they must not contain the same quote character as is used to enclose them. For<br />

example '6" pipe' and "200' riser" are valid, but the following are not valid:<br />

6 inch pipe – contains spaces, so needs to be enclosed in quotes;<br />

6"pipe – contains a double quote, so needs to be enclosed in single quotes;<br />

'6' pipe' – contains a single quote, so needs to be enclosed in double quotes instead of single.<br />

4.2.4 Script Commands<br />

The script commands are executed in the context of an active model. This can be either an <strong>OrcaFlex</strong> model<br />

containing Vessels, Lines etc., or a Fatigue Analysis. The active model defaults, at the start of script execution to<br />

being an <strong>OrcaFlex</strong> model. The active model can change due to a Load/LoadData command, or following a<br />

NewModel/NewFatigue command. Some of the commands have different interpretations, depending on what type<br />

of model is active, as described below.<br />

The following batch script commands are currently available. You need to put quotes round file names or other<br />

parameters that include spaces or non-alphanumeric characters.<br />

Load <br />

Opens the <strong>OrcaFlex</strong> file named . The file can be a data file, a simulation file or a fatigue analysis file.<br />

LoadData <br />

Opens the data from the <strong>OrcaFlex</strong> data file named .<br />

RunStatics <br />

Perform statics for the current model and save the resulting simulation to . After the file is saved the<br />

model is reset.<br />

RunDynamics <br />

Run dynamics for the current model and save the resulting simulation to . After the file is saved the<br />

model is reset.


Automation, Batch Processing<br />

88<br />

w<br />

Note: We no longer recommend that you use the RunStatics and RunDynamics commands. The<br />

commands in a batch script are executed sequentially. This means that if your machine has<br />

multiple processors, those processors will not be fully utilised. The recommended approach is to use<br />

the batch script to generate <strong>OrcaFlex</strong> data files and then add those to the batch job list. This will<br />

result in the most effective use of processor resources.<br />

Run (<strong>OrcaFlex</strong> model active)<br />

This command is identical to RunDynamics.<br />

Run (Fatigue active)<br />

This command:<br />

1. Performs the fatigue analysis.<br />

2. Saves the results to which should have the .ftg extension.<br />

3. Saves tabular results to an Excel workbook with the same name, but an .xls extension.<br />

Save (<strong>OrcaFlex</strong> model active)<br />

Save the current model to . If calculation results (either statics or dynamics) are available then a<br />

simulation file will be saved. Otherwise a data file will be saved. When saving data, if the file extension is .yml then a<br />

text data file will be saved; otherwise a binary data file will be saved.<br />

Save (Fatigue active)<br />

Saves the fatigue model to which should have the .ftg extension.<br />

SaveData <br />

Save the data from the current model to .<br />

If the file extension is .yml then a text data file will be saved; otherwise a binary data file will be saved.<br />

Note: In the Load/LoadData, Save/SaveData and RunStatics/RunDynamics/Run commands, if<br />

is a relative path then it is taken to be relative to the directory from which the script<br />

file was loaded.<br />

ExtendSimulation <br />

Adds a new stage of length . This command is equivalent to the Calculation | Extend Dynamic<br />

Simulation menu item. You would normally follow this command with a Run command.<br />

Reset<br />

Resets the current model. This command is equivalent to the Calculation | Reset menu item.<br />

NewModel<br />

This command makes the active model an <strong>OrcaFlex</strong> model, deletes all objects from the model and then resets data to<br />

default values. This command is equivalent to the File | New menu item.<br />

NewFatigue<br />

This command makes the active model a Fatigue Analysis and then resets data to default values. This command is<br />

equivalent to the Fatigue Analysis File | New menu item.<br />

Create []<br />

Creates a new object of type . The new object is automatically selected which means that subsequent<br />

assignment commands apply to this new object.<br />

The parameter can be "Line Type", "Vessel Type", "Line", "Winch" etc. Select Edit | Add from the<br />

Model Browser menu to see a list of possible values for this parameter.<br />

Alternatively variable data sources can be created by setting the parameter to "Bending Stiffness",<br />

"Drag Coefficient" etc. This list of possible variable data source object types can be found in the Data Source Type<br />

tree on the variable data form.<br />

If the optional parameter is included then the new object will be given that name.


w<br />

Delete <br />

Deletes the object called .<br />

Select [] <br />

Specify the model object to which subsequent assignment commands will apply.<br />

89<br />

Automation, Batch Processing<br />

The parameter is optional, and by default is 'object', meaning select the named model object.<br />

must then be either the name of an object that exists in the current model or one of the reserved<br />

names 'General' (for the General data form) or 'Environment' (for the Environment data form).<br />

Some examples of the select and assignment commands are given in Examples of setting data.<br />

Other values only need to be specified in the following special cases.<br />

If the Environment has been selected and there is more than one wave train, then before you can specify any wave<br />

train data you must give another select command to select the wave train. This second select command has the<br />

form:<br />

Select WaveTrain <br />

So, for example:<br />

Select Environment<br />

Select WaveTrain Primary<br />

WaveDirection = 30.0<br />

Similarly, if the Environment has been selected and there is more than one current data set, then you must select<br />

one of them before specifying any current data. For example:<br />

Select Environment<br />

Select Current Current2<br />

RefCurrentDirection = 270.0<br />

Note that this is not the same as setting the Active Current. In fact, you should avoid setting up multiple current data<br />

in batch scripts if possible: this is best done interactively on the Environment form.<br />

If a vessel type has been selected and it has more than one draught, then before specifying any draught-dependent<br />

data you must give another select command that selects the draught. This second select command has the form:<br />

Select Draught <br />

Before specifying data for RAOs you need to specify the type of RAOs – this can be either Displacement, WaveLoad<br />

or QTF. This is done with a command of the form:<br />

Select RAOs <br />

Similarly, before specifying vessel type data for a given wave direction you must give another select command to<br />

select that direction. This takes the form:<br />

Select Direction <br />

So, for example:<br />

Select "Vessel Type1"<br />

Select Draught Transit<br />

Select RAOs Displacement<br />

RAOOriginX = 10<br />

RAOOriginY = 0<br />

RAOOriginZ = 2<br />

Select Direction 45<br />

RAOSurgeAmplitude[2] = 0.1<br />

Select Direction 90<br />

RAOSurgeAmplitude[2] = 0.16<br />

When the a Fatigue Analysis is active, you need to select S-N and T-N curves before assigning their data. For<br />

example:<br />

Select SNcurve "S-N Curve1"<br />

SNDataA = 23.0<br />

Select TNcurve "T-N Curve1"<br />

TNcurvem = 2.8<br />

Note: Indentation with spaces or tabs is optional, but makes scripts more readable.


Automation, Batch Processing<br />

Assignment<br />

Assignment commands take the form<br />

VariableName = Value<br />

90<br />

w<br />

The VariableName on the left hand side must be one of the recognised variable names and the named variable must<br />

exist in the currently selected model object. The Value on the right hand side must be in the appropriate form for<br />

that variable (i.e. numeric or text) and it must be given in the same units as used in the current model.<br />

For example:<br />

Select Vessel1<br />

Length = 110<br />

Draught = "Operating draught"<br />

If VariableName is the name of a variable that appears in a check box in <strong>OrcaFlex</strong> then the Value should be Yes or No.<br />

For example:<br />

Select Environment<br />

CurrentRamp = Yes<br />

If VariableName is the name of a variable that appears in a table in <strong>OrcaFlex</strong>, then its row number must be given.<br />

The row number is given as an index enclosed by either square or round brackets (don't mix them on the same line),<br />

and is always 1-based, i.e. [1] is the first row of the table. Note that this sometimes requires care, since in <strong>OrcaFlex</strong><br />

the table might not be 1-based. For example, when setting the prescribed motion for a vessel, the command<br />

PrescribedMotionVelocity[2] = 4.8<br />

sets the velocity in the 2 nd row of the table, but in this case the first row of the table is stage 0 (the build-up stage) so<br />

this command (slightly confusingly) sets the velocity for stage 1.<br />

More examples of the select and assignment commands are given in Examples of setting data.<br />

InvokeWizard<br />

Sets the data for the selected object using either the Line Type Wizard or the Plasticity Wizard. The selected object<br />

must be either a line type or a bend stiffness variable data source. The input data for the Wizard should first be set<br />

using data assignment commands.<br />

An example of how to use this command is given in Examples of setting data.<br />

InvokeLineSetupWizard<br />

Invokes the Line Setup Wizard calculation. The input data for the Wizard should first be set using data assignment<br />

commands.<br />

An example of how to use this command is given in Examples of setting data.<br />

WaveSearch <br />

Exports the wave search spreadsheet to the specified file. The file can be an Excel spreadsheet (.xls), a tab delimited<br />

file (.txt) or a comma separated file (.csv). The decision is taken based on the file extension that you specify. The<br />

input data for the wave search should first be set using data assignment commands.<br />

DisplacementRAOsReport []<br />

SpectralResponseReport []<br />

Exports the vessel response report spreadsheets to the specified file for the specified vessel. The file can be an Excel<br />

spreadsheet (.xls), a tab delimited file (.txt) or a comma separated file (.csv). The decision is taken based on the file<br />

extension that you specify. If no vessel is specified, and there is only one vessel in the model, then that vessel will be<br />

used. The input data for the response reports should first be set using data assignment commands.<br />

SHEAR7DataFile <br />

Exports to a SHEAR7 data file for the line named .<br />

SHEAR7MdsFile [ ]<br />

Exports to a SHEAR7 Mds file for the line named .<br />

The and parameters are optional. If they are specified then mode numbers in the range<br />

to inclusive are exported. If these parameters are omitted then all modes are exported.


w<br />

91<br />

Automation, Batch Processing<br />

Only the Transverse and Mostly Transverse modes are included in the exported file. If you have specified first and<br />

last modes to export then these mode numbers refer to the transverse and mostly transverse modes. The program<br />

takes the following steps:<br />

1. Calculate all modes.<br />

2. Sort the modes into order of decreasing period / increasing frequency.<br />

3. Remove all modes which are not Transverse or Mostly Transverse.<br />

4. Export the modes in the range to inclusive.<br />

SHEAR7OutputFile <br />

Exports to the SHEAR7 output file for the line named . The file extension that you specify<br />

(e.g. .out, .plt etc.) is used to determine which output file is exported. This command is only available if the direct<br />

SHEAR7 interface is in use.<br />

4.2.5 Examples of setting data<br />

The Select command is probably the most difficult script command to use. To help understand how it works we<br />

present some examples of its use below:<br />

Simple examples<br />

For many objects the script commands for setting data take the form:<br />

1. Select the object using the command Select .<br />

2. Set the data using one or more commands of the form VariableName = Value.<br />

The object name is most easily found on the Model Browser. The variable name is found by opening the relevant<br />

data form, selecting the required data item and pressing F7.<br />

Some examples of this procedure follow:<br />

Select Link1<br />

UnstretchedLength = 50<br />

Select "3D Buoy1"<br />

Mass = 4<br />

Volume = 8<br />

Height = 7.5<br />

Select Line1<br />

IncludeTorsion = Yes<br />

Note: The name "3D Buoy" needs to be enclosed in quotes because it contains a space. If the name<br />

contains a double quote and spaces then it should be enclosed with single quotes.<br />

Data in tables and indices<br />

Some data in <strong>OrcaFlex</strong> appears in tables. For example consider the Structure page of the Line Data form which<br />

specifies how a Line is made up of a number of sections. Each section is specified by its Line Type, length etc. The<br />

following example sets the number of sections of the line to be 2 and then sets data for both sections in turn.<br />

Select Line1<br />

NumberOfSections = 2<br />

LineType[1] = Riser<br />

Length[1] = 75<br />

TargetSegmentLength[1] = 4<br />

LineType[2] = Rope<br />

Length[2] = 200<br />

TargetSegmentLength[2] = 20<br />

Note that we use blank lines to lay out the script. This is not essential but makes reading the script easier.<br />

Data which appears in tables is always set using the indexed notation used above. Having stated this rule, we<br />

immediately break it in the section below!


Automation, Batch Processing<br />

Line Type, Clump Type and Flex Joint Type data<br />

These data are set by first selecting the type by name and then assigning the data as illustrated below:<br />

Select "Line Type1"<br />

OuterDiameter = 0.28<br />

InnerDiameter = 0.21<br />

92<br />

w<br />

On the Line Types Data form there is an option to view the data for all Line Types at once or to view it by individual<br />

Line Type. When the data is being viewed for all Line Types at once the data appears in tables with one row per Line<br />

Type. However, the data must be set by first selecting the type by name and then assigning the data. You cannot set<br />

Line Type using index notation.<br />

Similar rules apply to Clump Type data and to Flex Joint Type data.<br />

Drag Chain Type and Wing Type data<br />

These data are also set by first selecting the type by name and then assigning the data. For example:<br />

Select "Drag Chain Type1"<br />

Length = 12<br />

Select "Wing Type1"<br />

NumberOfAngles = 12<br />

Angle[2] = -80<br />

Lift[2] = 0.2<br />

Drag[2] = 0.15<br />

Moment[2] = 0.5<br />

Data found on the General Data form<br />

Data found on the General Data form can be set as follows:<br />

Select General<br />

InnerTimeStep = 0.01<br />

OuterTimeStep = 0.1<br />

Data found on the Environment Data form<br />

Data found on the Environment Data form can be set as follows:<br />

Select Environment<br />

SeaBedStiffness = 3000<br />

SeaBedDamping = 80<br />

For data specific to a particular wave train you must first select the Environment and then select the particular wave<br />

train. This makes use of the alternative syntax for Select which is Select . For a wave<br />

train you replace with WaveTrain and replace with the name of the wave train as<br />

defined on the Environment Data form. For example:<br />

Select Environment<br />

Select WaveTrain "Swell from SW"<br />

WaveDirection = 135<br />

WaveType = "Dean Stream"<br />

WaveHeight = 2.5<br />

WavePeriod = 18<br />

Select WaveTrain "Local Wind Sea"<br />

WaveDirection = 40<br />

WaveType = JONSWAP<br />

WaveHs = 5.7<br />

WaveTz = 9<br />

Data for Current data sets<br />

Multiple Current data sets can be defined. Again this requires the alternative syntax for Select as shown below:<br />

Select Environment<br />

MultipleCurrentDataCanBeDefined = Yes<br />

NumberOfCurrentDataSets = 2<br />

CurrentName[1] = "120deg"<br />

CurrentName[2] = "150deg"<br />

Select Current "120deg"<br />

RefCurrentDirection = 120


w<br />

Select Current "150deg"<br />

RefCurrentDirection = 150<br />

ActiveCurrent = "150deg"<br />

Vessel Type Data<br />

Some Vessel Type data is set in a straightforward manner as follows:<br />

Select "Vessel Type1"<br />

Length = 120<br />

PenWidth = 3<br />

Symmetry = "XZ plane"<br />

93<br />

Automation, Batch Processing<br />

However, the majority of Vessel Type data requires that you also specify which draught the data applies to. For<br />

example:<br />

Select "Vessel Type1"<br />

Select Draught "Transit Draught"<br />

CurrentCoeffSurgeArea = 1200<br />

CurrentCoeffSwayArea = 1100<br />

CurrentCoeffYawAreaMoment = 120E3<br />

To set data for displacement RAOs, wave load RAOs, wave drift QTFs and sum frequency QTFs you must also specify<br />

which type of RAO the data applies to. For example:<br />

Select "Vessel Type1"<br />

Select Draught "Survival Draught"<br />

Select RAOs Displacement<br />

RAOOriginX = 10<br />

RAOOriginY = 0<br />

RAOOriginZ = 2<br />

Select RAOs WaveLoad<br />

RAOOriginX = 0<br />

RAOOriginY = 0<br />

RAOOriginZ = 0<br />

Select RAOs WaveDrift<br />

RAOOriginX = -3<br />

RAOOriginY = 0<br />

RAOOriginZ = 4<br />

Select RAOs SumFrequencyQTF<br />

RAOOriginX = -3<br />

RAOOriginY = 0<br />

RAOOriginZ = 4<br />

Note that the variable names are the same but different data is set depending on which type of RAOs has been<br />

selected.<br />

In addition, when setting RAO table data (for displacement RAOs, wave load RAOs and wave drift QTFs) you must<br />

specify which direction the data applies to. For example:<br />

Select "Vessel Type1"<br />

Select Draught "Survival Draught"<br />

Select RAOs Displacement<br />

Select Direction 22.5<br />

RAOYawAmplitude[2] = 0.13<br />

Select Direction 45<br />

RAOYawAmplitude[2] = 0.18<br />

However, it is worth pointing out that situations where you would wish to specify RAO table data in a batch script<br />

are rare. It is much more likely that you would import this data into <strong>OrcaFlex</strong> from some external source and then<br />

save it as part of the base case data file.<br />

P-y Model Data<br />

P-y Model data is complicated because each depth needs to be selected before the model data can be accessed.<br />

Select "P-y Model1"<br />

NumberOfDepths = 3


Automation, Batch Processing<br />

SHEAR7 Data<br />

DepthBelowSeabedFrom[1] = 0.0<br />

DepthBelowSeabedFrom[2] = 10.0<br />

DepthBelowSeabedFrom[3] = 20.0<br />

SelectedDepthBelowSeabedFrom = 0.0<br />

ModelType = "API RP 2A Soft Clay"<br />

EffectiveUnitSoilDensity = 1.6<br />

UndrainedShearStrength = 6.0<br />

J = 0.5<br />

Epsilonc = 4.0<br />

SelectedDepthBelowSeabedFrom = 10.0<br />

ModelType = "API RP 2A Sand"<br />

EffectiveUnitSoilDensity = 1.3<br />

C1 = 1.1<br />

C2 = 2.0<br />

C3 = 15.0<br />

k = 42.0<br />

SelectedDepthBelowSeabedFrom = 20.0<br />

ModelType = "P-y Table"<br />

NumberOfEntries = 2<br />

Deflection[1] = 0.0<br />

Resistance[1] = 0.0<br />

Deflection[2] = 0.2<br />

Resistance[2] = 11.0<br />

94<br />

w<br />

SHEAR7 data ownership is divided between the General object and the Line object. The SHEAR7 file version, output<br />

file options and S-N curve data is owned by the General object:<br />

Select General<br />

SHEAR7FileVersion = 4.6<br />

SHEAR7OutputDmg = Yes<br />

To access the S-N Curve table requires that the curve is selected first:<br />

Select General<br />

SelectedSHEAR7SNCurve = Curve2<br />

SHEAR7SNCurveNumberOfPoints = 3<br />

SHEAR7SNCurveS[3] = 10E5<br />

SHEAR7SNCurveN[3] = 10E4<br />

SHEAR7SNCurveEnduranceLimit = 750.7<br />

SHEAR7 Whole Line Data and Stress Concentration Factors are accessed through the Line Data:<br />

Select Line1<br />

SHEAR7CurrentProfileDiscretisation = "Regular spacing"<br />

SHEAR7CurrentProfileTargetSpacing = 10<br />

SHEAR7LocalSCFArcLength[1] = 32.0<br />

SHEAR7LocalSCF[1] = 1.15<br />

The SHEAR7 Hydrodynamic and Structural Section Data applies to a line section, so the index of the section is<br />

required:<br />

Select Line1<br />

SHEAR7StrouhalType[1] = "Rough Cylinder"<br />

SHEAR7LiftFactor[1] = 0.9<br />

SHEAR7SectionSNCurve[2] = Curve1<br />

Variable Data sources<br />

Data for Variable Data sources can be set from the batch script, although once again we feel it is unlikely that you<br />

would need to do this often. The procedure for setting variable data sources is illustrated below:<br />

Select Stiffness1<br />

NumberOfRows = 3<br />

IndependentValue[1] = 0<br />

DependentValue[1] = 0<br />

IndependentValue[2] = 0.2<br />

DependentValue[2] = 1000


w<br />

IndependentValue[3] = 0.4<br />

DependentValue[3] = 5000<br />

95<br />

Automation, Batch Processing<br />

Note that IndependentValue and DependentValue are the variable names for the X and Y columns of the variable<br />

data source. That is if you are setting data for a bending stiffness data source then IndependentValue denotes<br />

curvature and DependentValue denotes bend moment.<br />

Line Type Wizard<br />

The Line Type Wizard can be used from batch script. First of all you must select the Line Type and set its Wizard<br />

data. Once this is complete the Wizard is invoked using the InvokeWizard command as illustrated below:<br />

Select "Line Type1"<br />

WizardCalculation = "Homogeneous Pipe"<br />

PipeMaterial = Steel<br />

PipeOuterDiameter = 0.082<br />

PipeWallThickness = 0.005<br />

InvokeWizard<br />

Select "Line Type2"<br />

WizardCalculation = "Line with Floats"<br />

FloatBaseLineType = "Line Type3"<br />

FloatDiameter = 0.80<br />

FloatLength = 1.2<br />

FloatPitch = 5.5<br />

InvokeWizard<br />

Plasticity Wizard<br />

The Plasticity Wizard can be used from batch script. First of all you must select the Bend Stiffness variable data<br />

source and set its Wizard data. Once this is complete the Wizard is invoked using the InvokeWizard command as<br />

illustrated below:<br />

Select Stiffness1<br />

StressOD = 0.30<br />

StressID = 0.27<br />

Type = "Ramberg-Osgood curve"<br />

E = 230.0e6<br />

RefStress = 385.0e3<br />

InvokeWizard<br />

Line Setup Wizard<br />

The Line Setup Wizard can be used from batch script using the InvokeLineSetupWizard command. The input data<br />

should be set before invoking. This data is owned by a variety of different objects. The model wide data (e.g.<br />

calculation mode and convergence parameters) is owned by the General object. The line specific data is owned by<br />

each individual line. The follow script illustrates this:<br />

Select General<br />

LineSetupCalculationMode = "Calculate Line Lengths"<br />

LineSetupMaxDamping = 20<br />

Select Line1<br />

LineSetupTargetVariable = "End A Tension"<br />

LineSetupTargetValue = 830.0<br />

Select Line2<br />

LineSetupIncluded = No<br />

InvokeLineSetupWizard<br />

Polar Coordinates data on the All Objects form<br />

The All Objects data form allows end connection data to be specified as polar coordinates and this polar coordinates<br />

data is only accessible from this form.<br />

The data appears in a table containing all Line, Winch and Link connections. However, the data still belongs to each<br />

individual object and the appearance of a table of data is purely presentational. This means that to set the data you<br />

must first select the individual Line, Link or Winch and then set the data, as illustrated below:<br />

Select Line1<br />

PolarR[1] = 20.0<br />

PolarTheta[1] = 45.0<br />

PolarR[2] = 340.0


Automation, Batch Processing<br />

PolarTheta[2] = 45.0<br />

Select Line2<br />

PolarR[1] = 20.0<br />

PolarTheta[1] = 90.0<br />

PolarR[2] = 340.0<br />

PolarTheta[2] = 90.0<br />

Select Winch1<br />

PolarR[3] = 0.0<br />

PolarTheta[3] = 90.0<br />

PolarR[4] = 10.0<br />

PolarTheta[4] = 90.0<br />

96<br />

w<br />

For lines and links an index of 1 means End A and an index of 2 means End B. For winches the index identifies the<br />

winch connection point.<br />

Colour data<br />

Drawing colour data items can be set through batch script in a variety of ways. The simplest is to use the pre-defined<br />

colours as follows:<br />

Select "Line Type1"<br />

PenColour = Red<br />

Select "Line Type2"<br />

PenColour = Green<br />

The full list of pre-defined colours is: Black, Maroon, Green, Olive, Navy, Purple, Teal, Gray, Silver, Red, Lime, Yellow,<br />

Blue, Fuchsia, Aqua, MoneyGreen, SkyBlue, Cream, MedGray and White.<br />

If you want more control over the colour then you can specify an RGB value as an integer. The following example has<br />

the same effect as the previous one:<br />

Select "Line Type1"<br />

PenColour = 255<br />

Select "Line Type2"<br />

PenColour = 65280<br />

Using decimal values for RGB value is impractical. Instead a neat trick is to specify the colour as a hexadecimal value<br />

by prefixing it with a $ sign as follows:<br />

Select "Line Type1"<br />

PenColour = $0000FF<br />

Select "Line Type2"<br />

PenColour = $00FF00<br />

Select "Line Type3"<br />

PenColour = $FF0000<br />

This sets the colours to red, green and blue respectively. Each pair of hex digits controls the amount of red, green<br />

and blue. So white is $FFFFFF and black is $000000. A value of $C0C0C0 gives a light grey and $808080 produces a<br />

darker grey.<br />

Fatigue Analysis data<br />

Fatigue analysis data is quite simple in the script. The only complication is that you must to select S-N and T-N<br />

curves before assigning their data.<br />

NewFatigue<br />

DamageCalculation = "Homogeneous pipe stress"<br />

AnalysisType = Rainflow<br />

ArclengthIntervalsCount = 1<br />

FromArclength[1] = 0.0<br />

ToArclength[1] = 30.0<br />

SCF[0] = 1.5<br />

SNcurveCount = 2<br />

SNcurveName[2] = ProjectSteel<br />

Select SNcurve ProjectSteel<br />

SNDataEnduranceLimit = 0.0<br />

4.2.6 Handling Script Errors<br />

As with other computer programs, <strong>OrcaFlex</strong> batch script files can easily contain errors. It is therefore wise to check<br />

your script file for errors before running it as a batch job. To check for errors in your scripts, use the "Check Files"


w<br />

97<br />

Automation, Batch Processing<br />

button on the <strong>OrcaFlex</strong> batch form. This will read and obey all the commands in the script files except those that<br />

perform calculations or write files. It will then report any errors it finds, including the line number on which the<br />

error occurs. You can then correct the problem before running the script.<br />

Warning: If you misspell a variable name in an assignment statement then "Check Files" will report an error.<br />

But if you incorrectly specify a variable name which is nevertheless valid then <strong>OrcaFlex</strong> cannot<br />

detect the error. So you need to be very careful that you use the correct variable names for the data<br />

items that you want to change.<br />

4.2.7 Obtaining Variable Names<br />

Each <strong>OrcaFlex</strong> data item has its own name that is used to specify it in a script file. The names of the data items are<br />

based on the corresponding labels used on the data form. To find out the name of a data item, open the appropriate<br />

data form, select the data item, and then open (e.g. by right click) the pop-up menu and select the Batch Script<br />

Names command (or press F7). This displays the variable name of the selected data item which you can select and<br />

copy directly into your batch script.<br />

If the data item is in a table (or group) of data items then the Batch Script Names form displays the names of all the<br />

data items in the table. The different columns in the table each have their own names; you then need to add an index<br />

to specify which row you want. The exceptions to this are the 'Connections' data controls for Lines and Links, which<br />

consist of two rows, one for End A and one for End B. For these, the Batch Script Names form lists the names for End<br />

A only: those for End B may be obtained by simply replacing 'EndA' with 'EndB' in the name.<br />

Finally, note that Batch Script Names are not available for an empty table – e.g. if you want the names for the<br />

attachments table on the line data form, but there are currently no attachments. In this case you must add a row to<br />

the table before you can use the Batch Script Names form.<br />

4.2.8 Automating Script Generation<br />

The <strong>OrcaFlex</strong> Spreadsheet has facilities for automating the generation of a script file for a regular set of cases. To use<br />

this facility select the Pre-processing worksheet, then select the Script Table cell and then click the Create Batch<br />

Scripts command which can be found on the <strong>OrcaFlex</strong> menu in Excel.<br />

The batch script filename is specified in the cell next to the Script Table cell. It is relative to the directory containing<br />

this spreadsheet, so if you don't specify the folder name then it will be created in the folder containing this<br />

spreadsheet.<br />

Below the Script Table cell is a table defining the script, consisting of 3 sections:<br />

� First is one or more title rows (shown with a green background in the example below). Only the first table<br />

column is used in these rows, and the contents of those cells are simply copied to the script. The other columns<br />

are ignored. The title rows can therefore contain any comments or other script commands that you want to<br />

appear at the start of the script. The title rows end at the first row with a blank cell in the table's first column.<br />

� Next is a series of header rows for the cases (shown with a blue background in the example below). The last<br />

header row is deemed to be the next row with a comment command (i.e. starting with "//") in the first column.<br />

� Finally there are a series of rows, one row for each case. The cells in this section are processed from left to right<br />

on each row, and then down to the next row, and each cell generates script commands as follows. If the cell is<br />

empty then no script commands are generated. But if the cell is not empty then all the (non-empty) script<br />

commands in the header rows in that column are written to the script, with the cell's value appended to the last<br />

header row command. This allows different columns to set data values for the various cases, and a blank value<br />

leaves the data item as it was in the previous case. The cases (and the whole table) end at the next row that has<br />

a blank cell in the table's first column.<br />

� Note that you can add extra columns to the table or indeed remove columns from the table.<br />

� The table can be arranged with rows and columns transposed. To do this you must use the keyword Script<br />

Table Row. An example of this alternative approach can be found in the default <strong>OrcaFlex</strong> spreadsheet template.<br />

An example is shown below:


Automation, Batch Processing<br />

Figure: Example table for automatic batch script generation<br />

98<br />

w<br />

The script generated by this table loads a base case from a file called "Base Case.dat". Because no path is specified<br />

then this file is located in the same directory as the spreadsheet. Four cases are produced based on this data file with<br />

current values of 0.5 and 0.8 and line lengths of 100 and 120.<br />

Notes: The cell containing the base case data file name has the file name surrounded by quotes. This is<br />

because the file name contains a space. However, the quotes are not needed for the file names in<br />

the last column because they do not contain spaces.<br />

The generated script adheres to the formatting specified in the Excel cells. So, if a cell is formatted<br />

to have, say, 1 decimal place, the corresponding value in the script will also have 1 decimal place.<br />

The script is generated as follows. First select the cell containing the text Script Table. Then drop down the<br />

<strong>OrcaFlex</strong> menu contained in the main Excel menu and click Create Batch Scripts. When you do this you are<br />

presented with the following window:<br />

Figure: Automatically generated batch script


w<br />

99<br />

Automation, Text Data Files<br />

The script file has not been saved yet. You should check that the automatically generated script is as intended.<br />

Should you wish to, you can modify the script file name at this point.<br />

If there is a problem with the script you can click the Close button and correct the script table.<br />

Save button<br />

Saves the script file.<br />

Save and Run button<br />

Saves the script file and then processes it.<br />

If the script has any Run commands then <strong>OrcaFlex</strong> is loaded and the script is processed by the standard <strong>OrcaFlex</strong><br />

batch form. Otherwise the script is processed from within Excel – progress is reported on the Excel status bar.<br />

Save, Run and Submit button<br />

Saves the script file and then processes it within Excel. Each data file saved by the script is then submitted to<br />

Distributed <strong>OrcaFlex</strong> which runs and saves the simulation file.<br />

Note: The Save, Run and Submit button is only available if Distributed <strong>OrcaFlex</strong> is installed on your<br />

machine. In addition, it cannot be used if the script contains any Run commands.<br />

Multiple tables<br />

You can have multiple script tables within a workbook. To create all the batch scripts in one operation select all the<br />

script tables and then click Create Batch Scripts in the <strong>OrcaFlex</strong> menu.<br />

4.3 TEXT DATA FILES<br />

4.3.1 Examples of setting data<br />

This topic gives some examples of setting model data using the <strong>OrcaFlex</strong> Text Data file. The <strong>OrcaFlex</strong> Text Data file<br />

format is described in the Text Data Files topic and this should be read before tackling this topic.<br />

Building an entire <strong>OrcaFlex</strong> model through the Text Data file is possible but not to be recommended. The normal<br />

approach is to modify an existing model imported using the BaseFile identifier and apply incremental changes.<br />

This results in a much more compact Text Data file that can be easily generated using a scripting language or by the<br />

<strong>OrcaFlex</strong> spreadsheet. The <strong>OrcaFlex</strong> Text Data file format is not a scripting language so some Batch script command<br />

operations are not possible – for example the InvokeWizard command.<br />

The easiest way to see how data for a particular model item is represented is to create the item in <strong>OrcaFlex</strong> and then<br />

save the data file as a Text Data file. Existing objects normally need to be selected by name before modifying their<br />

data, although there are some exceptions that require specific selection identifiers and examples of these are given<br />

below.<br />

Setting simple data<br />

To set data on an object existing in the base file 'BaseCase.yml', the object must be first selected by name, here<br />

objects named 'Link1', '3D Buoy1' and 'Line1' are modified:<br />

BaseFile: BaseCase.yml<br />

Link1:<br />

UnstretchedLength: 25<br />

3D Buoy1:<br />

Mass: 4<br />

Volume: 8<br />

Height: 7.5<br />

Line1:<br />

IncludeTorsion: Yes<br />

Note: Object names and text data does not need to be enclosed in quotes, unless the text contains YAML<br />

reserved characters (eg ': ', '- ', '# ' and ', '). So the name 'Line - Upper' needs<br />

quoting but 'Line-Upper' does not.


Automation, Text Data Files<br />

Data in tables and indices<br />

100<br />

w<br />

Table data is set using an index in square brackets [i] after the data name, where i is the index of the table row<br />

starting at 1. The following example sets some data in the first two sections of Line1:<br />

BaseFile: BaseCase.yml<br />

Line1:<br />

NumberOfSections: 2<br />

LineType[1]: Riser<br />

Length[1]: 75<br />

TargetSegmentLength[1]: 4<br />

LineType[2]: Rope<br />

Length[2]: 200<br />

TargetSegmentLength[2]: 20<br />

The NumberOfSections identifier specifies the number of rows in the sections table, it is only required if we are<br />

changing the size of the table. Every table has an associated row count data item, increasing the count will add new<br />

rows to the end of the table containing default data, reducing the count will delete rows from the end of the table.<br />

We could replace the table entirely and use a YAML list to repopulate the data, for example setting a new current<br />

profile:<br />

Environment:<br />

# Single Current<br />

CurrentMethod: Interpolated<br />

RefCurrentSpeed: 1.2<br />

RefCurrentDirection: 36.0<br />

# Define the current profile table<br />

CurrentDepth, CurrentFactor, CurrentRotation:<br />

- [10, 1.0, 0]<br />

- [50, 0.8, 0]<br />

- [90, 0.5, 0]<br />

Type data: Line, Clump, Flex Joint, Stiffener, Drag Chain and Wing<br />

These objects also need to be referenced by name, they cannot be selected with index notation.<br />

Line Type1:<br />

OuterDiameter: 0.28<br />

InnerDiameter: 0.21<br />

Clump Type1:<br />

Mass: 0.1<br />

Volume: 0.2<br />

Height: 4<br />

DragAreaX: 0.7<br />

Drag Chain Type1:<br />

Length: 12<br />

Wing Type1:<br />

Angle[2]: -80<br />

Lift[2]: 0.2<br />

Drag[2]: 0.15<br />

Moment[2]: 0.5<br />

Creating new objects<br />

New objects can be added to the model using the type name as the identifier, the object will be created with default<br />

data that can be then modified. In the Text Data file the plural of the type name (eg LineTypes ) introduces a new<br />

list of the type, and clears any existing objects from the list. To add a new line type to the line types list:<br />

LineType:<br />

Name: Variant Line Type3<br />

OuterDiameter: 0.29<br />

InnerDiameter: 0.20


w<br />

Line1:<br />

LineType[2]: Variant Line Type3<br />

And some new attachment types:<br />

ClumpType:<br />

Name: Clump 5<br />

DragArea: [0.7, 07, 0.1]<br />

DragChainType:<br />

Name: Short Chain 2<br />

Length: 12<br />

101<br />

Automation, Text Data Files<br />

Note: Objects must created before they are referred to later in the file. So a new line type must be created<br />

in the data file before a line can be later modified to refer to it.<br />

Data found on the General And Environment Data forms<br />

Data on these forms can be set by referencing the General or Environment objects as follows (the following example<br />

assumes that the base file model has 2 simulation stages):<br />

General:<br />

ImplicitUseVariableTimeStep: Yes<br />

ImplicitVariableMaxTimeStep: 0.2<br />

# Add another simulation stage<br />

NumberOfStages: 3<br />

StageDuration[3]: 12.0<br />

Environment:<br />

SeaBedStiffness: 3000<br />

SeaBedDamping: 80<br />

RefCurrentSpeed: 1.2<br />

RefCurrentDirection: 36.0<br />

Wave train data requires that the target wave train is selected by name first. The example assumes a base file model<br />

with only one wave train and adds a new wave train and names it 'AiryWave' (after being added the wave train is<br />

automatically selected). Then the first wave train is modified after being selected with the SelectedWave<br />

identifier:<br />

Environment:<br />

# Add a wave train<br />

NumberOfWaveTrains: 2<br />

WaveName[2]: AiryWave<br />

# AiryWave is now the selected wave<br />

WaveType: Single Airy<br />

WaveDirection: 180<br />

WaveHeight: 3.2<br />

WavePeriod: 12.5<br />

# Change selected wave to Wave1<br />

SelectedWave: Wave1<br />

WaveDirection: 100<br />

WaveHeight: 4.3<br />

WavePeriod: 7.8<br />

Data for Multiple Current data sets<br />

The example below creates two Currents in a multiple current set, and selects one to be the active current using the<br />

ActiveCurrent identifier:<br />

Environment:<br />

# Multiple current set<br />

MultipleCurrentDataCanBeDefined: Yes<br />

NumberOfCurrentDataSets: 2<br />

CurrentName[1]: Ebb<br />

CurrentName[2]: Flow<br />

# To modify the Ebb current, we must select it first


Automation, Text Data Files<br />

SelectedCurrent: Ebb<br />

CurrentMethod: Power Law<br />

CurrentSpeedAtSurface: 1.2<br />

CurrentSpeedAtSeabed: 0.8<br />

RefCurrentDirection: 180.0<br />

# Now select the other current<br />

SelectedCurrent: Flow<br />

CurrentMethod: Power Law<br />

CurrentSpeedAtSurface: 1.2<br />

CurrentSpeedAtSeabed: 0.8<br />

RefCurrentDirection: 0.0<br />

# Set the active current<br />

ActiveCurrent: Ebb<br />

Vessel Type data<br />

102<br />

w<br />

Simple vessel type data is set as for other type data mentioned above, by referencing the vessel type by name first:<br />

Vessel Type1:<br />

Length: 120<br />

PenWidth: 3<br />

Symmetry: XZ plane<br />

Much vessel data applies to a draught which must also then be referenced by name:<br />

Vessel Type1:<br />

Draught1:<br />

Mass: 7600<br />

CentreOfGravity: [2.53, 0, -1.97]<br />

To set data for displacement RAOs, wave load RAOs and wave drift QTFs you must also specify which type of RAO<br />

the data applies to:<br />

Vessel Type1:<br />

Draught1:<br />

DisplacementRAOs:<br />

RAOOrigin: [2.53, 0, -1.97]<br />

LoadRAOs:<br />

RAOOriginY: -1.2<br />

The RAO data is per direction, so the direction also needs to be selected using the<br />

SelectedRAODirectionValue YAML identifier. This example sets the Yaw amplitude in the second row in the<br />

Period table for directions 22.5 and 45 degree of the Wave drift RAOs:<br />

BaseFile: BaseCase.yml<br />

Vessel Type1:<br />

Draught1:<br />

WaveDrift:<br />

SelectedRAODirectionValue: 22.5<br />

RAOYawAmp[2]: 0.13<br />

SelectedRAODirectionValue: 45<br />

RAOYawAmp[2]: 0.18<br />

To modify data in the frequency dependent added mass and damping matrices, the frequency or period needs to be<br />

selected first, using the SelectedAddedMassAndDampingPeriodOrFrequency identifier, to access the<br />

relevant tables. Data in the tables is accessed using index notation:<br />

Vessel Type1:<br />

Draught1:<br />

SelectedAddedMassAndDampingPeriodOrFrequency: 5.5<br />

AddedMassMatrixX[1]: 255<br />

AddedMassMatrixY[2]: 249<br />

AddedMassMatrixZ[1]: 136<br />

DampingY[2]: 0.4<br />

It is unlikely that you will want to change individual values in the RAO tables, however the Vessel, Draught and RAO<br />

sections of the Text Data File are ideal candidates for using the IncludeFile identifier:


w<br />

Vessel Type1:<br />

Draught1:<br />

DisplacementRAOs:<br />

IncludeFile: RAOs\UnladenRAOs.yml<br />

P-y Model Data<br />

With P-y Model data, each depth needs to be selected before the model data can be accessed:<br />

# Create a new P-y model<br />

P-yModel:<br />

Name: P-yModel1<br />

NumberOfDepths: 3<br />

DepthBelowSeabedFrom[1]: 0.0<br />

DepthBelowSeabedFrom[2]: 10.0<br />

DepthBelowSeabedFrom[3]: 20.0<br />

# Modify existing P-y model<br />

P-yModel1:<br />

SelectedDepthBelowSeabedFrom: 0<br />

ModelType: API RP 2A Soft Clay<br />

EffectiveUnitSoilDensity: 1.6<br />

UndrainedShearStrength: 6<br />

J: 0.5<br />

Epsilonc: 4<br />

SelectedDepthBelowSeabedFrom: 10<br />

ModelType: API RP 2A Sand<br />

EffectiveUnitSoilDensity: 0<br />

C1: 0<br />

C2: 2<br />

C3: 15<br />

k: 42<br />

SelectedDepthBelowSeabedFrom: 20<br />

ModelType: P-y Table<br />

Deflection, Resistance:<br />

- [0, 0]<br />

- [0.2, 11]<br />

103<br />

Automation, Text Data Files<br />

Note: The above example creates a new P-y Table with two rows. To modify rows in an existing table, use<br />

indexing, eg: Deflection[2]: 0.2.<br />

SHEAR7 Data<br />

SHEAR7 Data ownership is divided between Line objects and the General object. The SHEAR7 file version, output<br />

file options and S-N curve data is owned by the General object:<br />

General:<br />

SHEAR7FileVersion: 4.6<br />

SHEAR7OutputDmg: Yes<br />

To access the data in the S-N Curve table requires that the curve is first selected with the<br />

SelectedSHEAR7SNCurve identifier:<br />

General:<br />

SelectedSHEAR7SNCurve: Curve2<br />

SHEAR7SNCurveNumberOfPoints: 3<br />

SHEAR7SNCurveS[3]: 10E5<br />

SHEAR7SNCurveN[3]: 10E4<br />

SHEAR7SNCurveEnduranceLimit: 750.7<br />

SHEAR7 Whole Line Data and Stress Concentration Factors are accessed through a line object:<br />

Line1:<br />

SHEAR7CurrentProfileDiscretisation: Regular spacing<br />

SHEAR7CurrentProfileTargetSpacing: 10


Automation, Text Data Files<br />

SHEAR7LocalSCFArclength[1]: 32.0<br />

SHEAR7LocalSCF[1]: 1.15<br />

104<br />

w<br />

The SHEAR7 Hydrodynamic and Structural Section Data applies to a line section, so the index of the section is<br />

required:<br />

Line1:<br />

SHEAR7StrouhalType[1]: Rough Cylinder<br />

SHEAR7LiftFactor[1]: 0.9<br />

SHEAR7SectionSNCurve[2]: Curve1<br />

Line Contact Data<br />

To edit Penetrator data on the Line Contact data form the Penetrator locations set needs to be selected first using<br />

the SelectedPenetratorLocationsDataSet identifier:<br />

LineContactData:<br />

SelectedPenetratorLocationsDataSet: Locations1<br />

Penetratorx[2]: 13.6<br />

Penetratory[2]: -2.5<br />

PenetratorContactArea[2]: 0.85<br />

Variable Data sources<br />

New variable data sources can be created in two ways, the first example creates a new Fluid Temperature data item<br />

with 2 table rows:<br />

VariableData:<br />

FluidTemperature:<br />

- Name: fluidtempA<br />

IndependentValue, DependentValue:<br />

- [10, 17]<br />

- [100, 11]<br />

The above YAML also clears the Fluid Temperature data source list before adding 'fluidTempA'. If any existing<br />

variable data items are referenced by other model objects then an error will be raised. If you wish to add another<br />

variable data item and retain existing data items in the list then use the following YAML format:<br />

VariableData:<br />

FluidTemperature:<br />

Name: fluidTempB<br />

IndependentValue, DependentValue:<br />

- [10, 15]<br />

- [100, 9.5]<br />

Existing variable data sources can be referenced by name as with other model objects. The following example resets<br />

the table values for a Bending Stiffness variable data item:<br />

BaseFile: BaseCase.yml<br />

Stiffness1:<br />

IndependentValue, DependentValue:<br />

- [0, 0]<br />

- [0.2, 1000]<br />

- [0.4, 5000]<br />

Polar Coordinates data on the All Objects form<br />

End connection data can be expressed using polar coordinates as presented on the All objects data form. Although<br />

this data is displayed in table form, it is still accessed by referencing the relevant object:<br />

Line1:<br />

PolarR[1]: 20.0<br />

PolarTheta[1]: 45.0<br />

PolarR[2]: 20.0<br />

PolarTheta[2]: 345.0<br />

Line2:<br />

PolarR[1]: 20.0<br />

PolarTheta[1]: 90.0


w<br />

PolarR[2]: 3400.0<br />

PolarTheta[2]: 90.0<br />

Winch1:<br />

PolarR[3]: 0.0<br />

PolarTheta[3]: 90.0<br />

PolarR[4]: 10.0<br />

PolarTheta[4]: 90.0<br />

105<br />

Automation, Text Data Files<br />

For lines and links, End A has an index of 1 and End B an index of 2. For winches the index identifies the winch<br />

connection point.<br />

Colour data<br />

Colour data can be set using pre-defined colours or RGB values as described for Batch scripts:<br />

Line Type1:<br />

PenColour: Red<br />

Line Type1:<br />

PenColour: 255<br />

Line Type1:<br />

PenColour: $00FF00<br />

Importing Text Data File sections<br />

Sections of an <strong>OrcaFlex</strong> Text Data file can be imported using the IncludeFile directive. This specifies another<br />

YAML file containing a section of an <strong>OrcaFlex</strong> Text Data file that will be processed as if the data were part of the<br />

original file. The imported segment cannot refer to objects that do not yet exist in the main data file. Using<br />

IncludeFile is a useful way of adding or modifying complex data from a library of common object data, for<br />

example Vessel ROAs:<br />

Vessel Type1:<br />

Draught1:<br />

DisplacementRAOs:<br />

IncludeFile: MyVesselRAOs.yml<br />

The data in the included file must continue from where the original file left off but there is no need to repeat the<br />

YAML header, or start at the same indentation level, although relative indentation in the include file is still required:<br />

# File: C:\Desktop\MyVesselRAOs.yml<br />

RAOOrigin: [2.53, 0, -1.97]<br />

PhaseOrigin: [~, ~, ~]<br />

RAOs:<br />

- RAODirection: 0<br />

RAOPeriodOrFreq, RAOSurgeAmp, RAOSurgePhase, RAOSwayAmp, RAOSwayPhase,<br />

RAOHeaveAmp, RAOHeavePhase, RAORollAmp, RAORollPhase, RAOPitchAmp,<br />

RAOPitchPhase, RAOYawAmp, RAOYawPhase:<br />

- [0, 0, 360, 0, 0, 0, 360, 0, 0, 0, 0, 0, 0]<br />

# etc..<br />

The IncludeFile identifier can be used more than once in the same <strong>OrcaFlex</strong> Text Data file and the included files<br />

can also contain the IncludeFile identifier themselves. A very simple <strong>OrcaFlex</strong> Text Data file my comprise just<br />

the following:<br />

%YAML 1.1<br />

---<br />

# This File: C:\Desktop\Case x.yml<br />

BaseFile: BaseCase y.yml<br />

IncludeFile: Variation set z.yml<br />

...<br />

The above file is easy to create using a script, substituting file names for the BaseFile and IncludeFile files<br />

from a collection of initial cases and variation sets.


Automation, Text Data Files<br />

4.3.2 Automating Generation<br />

106<br />

w<br />

The <strong>OrcaFlex</strong> Spreadsheet has facilities for automating the generation of text data files for a regular set of cases. To<br />

use this facility select the Pre-processing worksheet, then select the Text Data Files cell and then click the Create<br />

Text Data Files command which can be found on the <strong>OrcaFlex</strong> menu in Excel.<br />

The basic idea is very similar to the facility for automating generation of batch script files. An example table is<br />

shown below:<br />

Figure: Example table for automatic text data file generation<br />

The cell containing "Text Data Files", highlighted in yellow, is known as the anchor cell. The text data files are<br />

generated based on the template file specified the in cell immediately to the right of the anchor cell. In this example<br />

the template file might look like this:<br />

BaseFile: Base Case.dat<br />

Environment:<br />

WaveDirection: %direction<br />

WaveHeight: %height<br />

Line1:<br />

Length[1]: %length<br />

The row immediately below the anchor cell, highlighted in blue, contains variable names. You are free to choose<br />

these names as you please. We have adopted a convention that the variable names begin with a percentage sign (%).<br />

Although you do not need to follow this convention, doing so will have the benefit of making the variable names<br />

stand out.<br />

The rows beneath the variable names row are known as the value rows. Each row defines a single text data file. The<br />

text data file is generated by starting from the template file and then replacing each variable name, in turn, by the<br />

value specified in the table. The %filename variable name is compulsory, that is it must be included as one of the<br />

variable names. It specifies the name of the generated text data file. Relative paths can be used for the template file<br />

name and the output file names.<br />

The extent of the table is determined by the presence of empty cells. So the variable names row ends at the first<br />

empty cell. Likewise the value rows end at the first empty cell in the column beneath the anchor cell.<br />

The example above produces 8 text data files as its output, named Case01.yml, Case02.yml, etc. This first of these<br />

looks like this:<br />

BaseFile: Base Case.dat<br />

Environment:<br />

WaveDirection: 0<br />

WaveHeight: 8<br />

Line1:<br />

Length[1]: 100<br />

Note: The generated text data files adhere to the formatting specified in the Excel cells. So, if a cell is<br />

formatted to have, say, 1 decimal place, the corresponding value in the text data file will also have<br />

1 decimal place.<br />

Choosing variable names<br />

It is clearly important that you choose unique variable names. However, there is a further subtlety which can arise<br />

when one variable name is a sub-string of another. For example, consider the variable names %x1 and %x10. When


w<br />

107<br />

Automation, Post-processing<br />

occurrences of %x1 in the template file are replaced by their actual values, the first 3 characters of any occurrences<br />

of %x10 will also be detected.<br />

Such ambiguities seldom arise, but if you are affected then you can extend the naming convention to include a<br />

trailing % sign. In the example given above, the variable names become %x1% and %x10% and clearly the problem<br />

does not arise.<br />

Multiple tables<br />

You can have multiple tables within a workbook. To process all the tables in one operation, select all the tables and<br />

then click the Create Text Data Files command.<br />

Benefits over script tables<br />

The text data file approach to load case file generation described above is very similar to the approach using batch<br />

script files. The choice of which to use is largely one of personal preference. If you are already familiar with batch<br />

script and not yet familiar with text data files then it may prove easier to continue using batch script.<br />

There is one significant advantage of using text data files which is that it avoids duplication of the <strong>OrcaFlex</strong> model<br />

data. Consider the following typical sequence of actions when using batch script where we assume that the basic<br />

model and scripts are already in place:<br />

1. Modify the single base model, represented by an <strong>OrcaFlex</strong> data file.<br />

2. Run the batch script (or scripts) that generate all the load case data files.<br />

3. Run the simulations for all load case data files.<br />

If text data files are used, as described above, then step 2 is not required. This is because the load case text data files<br />

contain a reference to the base model rather than containing a copy as is the case when using batch script.<br />

This is a relatively minor advantage but it does reduce the likelihood of mistakenly forgetting to carry out step 2<br />

when using batch script files. In addition, more complex analyses can lead to your load cases being defined by<br />

multiple script files which have to be executed in a particular order. Using the text data file approach means that this<br />

complexity is dealt with just once when setting up the text data files, as opposed to every time a modification to the<br />

base model is made.<br />

4.4 POST-PROCESSING<br />

4.4.1 Introduction<br />

<strong>OrcaFlex</strong> users often use spreadsheets to post-process their <strong>OrcaFlex</strong> results. This can be done manually by<br />

transferring the results from <strong>OrcaFlex</strong> into the spreadsheet using copy + paste. However, this is laborious and error<br />

prone if a lot of results need transferring, so we have developed special facilities to automate the process.<br />

This automation is done using an Excel spreadsheet that has facilities for automatic extraction of specified results<br />

from one or more <strong>OrcaFlex</strong> files into nominated cells in the spreadsheet. You can then use the normal spreadsheet<br />

facilities to calculate other post-processed results from those <strong>OrcaFlex</strong> results.<br />

Note: The <strong>OrcaFlex</strong> spreadsheet works with Excel 2000 or later and requires <strong>OrcaFlex</strong> to be installed on<br />

the machine.<br />

Creating <strong>OrcaFlex</strong> Spreadsheets<br />

You can create <strong>OrcaFlex</strong> spreadsheets from an Excel template that is supplied with <strong>OrcaFlex</strong>. You should base your<br />

own <strong>OrcaFlex</strong> spreadsheets on this template, which is installed in the <strong>OrcaFlex</strong> installation directory when you<br />

install <strong>OrcaFlex</strong> on your machine. To create your own <strong>OrcaFlex</strong> spreadsheet, open the Windows Start menu, select<br />

Programs | <strong>Orcina</strong> Software and then select New <strong>OrcaFlex</strong> Spreadsheet. This shortcut creates a new spreadsheet<br />

based on the template.<br />

Before you try to use the new spreadsheet you need to save it to a file; it can be given any valid file name. It is<br />

usually most convenient to save it to the directory containing the <strong>OrcaFlex</strong> files from which you want to extract<br />

results. You can then specify the names of those files in the spreadsheet using relative paths. Using relative paths<br />

makes it easier to rename the directory or move the spreadsheet and <strong>OrcaFlex</strong> files to some other directory.<br />

4.4.2 <strong>OrcaFlex</strong> Spreadsheet<br />

The <strong>OrcaFlex</strong> Spreadsheet enables you to automate the extraction of results and data from <strong>OrcaFlex</strong> files into Excel.<br />

<strong>OrcaFlex</strong> spreadsheets also provide facilities for automating the production of batch script files and text data files.


Automation, Post-processing<br />

108<br />

w<br />

For results post-processing, an <strong>OrcaFlex</strong> Spreadsheet contains one or more instructions worksheets, plus other<br />

worksheets to receive the <strong>OrcaFlex</strong> results and for any derived results. The spreadsheet also provides tools to help<br />

build the list of instructions. These tools are the Instructions Wizard and the Duplicate Instructions form.<br />

Instructions Table<br />

Figure: Empty instructions table<br />

Each row in the instructions table is a separate instruction. The instruction can be thought of as 3 separate sections:<br />

1. The entry in column A (titled Sheet Name) specifies the name of the Excel worksheet on which any output is<br />

produced.<br />

2. The entries in columns B and C (titled Label Cell and Label respectively) specify a label. This label is output on<br />

the worksheet specified in column A and in the cell specified in column B. The text of the label is specified in<br />

column C.<br />

3. The other columns (D to I) specify some results or data which are output on the sheet specified in column A and<br />

in the cell specified in column D. These columns can specify output of time histories, range graphs, data values<br />

etc.<br />

Either of sections 2 and 3 are optional. That is you can have an instruction that has a blank command cell and so<br />

only writes a label, or one that has a blank label cell and so only writes results.<br />

The end of the table is indicated by the first row that has blank label cell, label and command columns. Hence you<br />

cannot have an instruction row that has no label and no command. In particular, you cannot have a blank row in the<br />

middle of the instruction table. Also, the spreadsheet assumes that the first instruction is row 5 of the worksheet, so<br />

do not insert or delete rows above this.<br />

Any formatting is ignored and so you can use bold, italic, colour etc. to make the worksheets easy to read. Likewise,<br />

hidden rows in the instructions table are ignored allowing you to disable certain instructions which can useful when<br />

developing and building the table.<br />

Warning: Do not change rows 3 and 4 of an instructions table, since these are used to identify it as such.<br />

Processing the Instructions<br />

When you are working with the <strong>OrcaFlex</strong> Spreadsheet an <strong>OrcaFlex</strong> menu is added to the Excel menu bar. This menu<br />

contains various commands to process the results instructions.


w<br />

Figure: The <strong>OrcaFlex</strong> menu within Excel<br />

109<br />

Automation, Post-processing<br />

Excel 2007 and later replace the menus with Microsoft's ribbon interface. The <strong>OrcaFlex</strong> Spreadsheet integrates with<br />

the ribbon as shown below:<br />

Figure: The <strong>OrcaFlex</strong> ribbon within Excel 2007 and later<br />

Throughout the documentation we refer to menu items, but if you are using a ribbon based version of Excel then you<br />

should interpret this as referring to the corresponding ribbon button.<br />

The Process All Instructions menu item runs all the instructions in the table. If the currently selected sheet is not<br />

an instructions sheet and the workbook contains more than one instructions sheet, then you will be asked to select<br />

which instructions sheet you wish to process. The Process Selected Instructions menu item tells the spreadsheet<br />

to process only the instructions in the currently selected cell or block of cells.<br />

Spreadsheet Processing Options<br />

The Processing Options menu item allows you to change the way an instructions sheet is processed.<br />

If an instruction depends upon the result of a previous instruction, i.e. one of the cells in the row is a reference to the<br />

output of an earlier instruction, then the Contains Dependencies box must be checked to ensure that the whole<br />

sheet is processed line by line from top to bottom using a single thread. If this box is not checked, then the order in<br />

which instructions are processed is not defined and multiple lines may be processed simultaneously by multiple<br />

threads. If this box is checked, then you have the option to allow errors to be reported during the processing or<br />

Ignore Errors until the sheet is completed, which ensures an unattended spreadsheet will continue to process<br />

remaining instructions even if an error occurs. If Ignore Errors is checked then all error messages are collated and<br />

reported on completion.<br />

The Thread Count can be set to reduce the impact processing spreadsheets will have on the responsiveness of your<br />

computer. By default the spreadsheet will utilise all the available processing cores. It is only available if Contains<br />

Dependencies is not checked.


Automation, Post-processing<br />

110<br />

w<br />

Note: When a spreadsheet is processed in an <strong>OrcaFlex</strong> Batch all the option settings are ignored apart<br />

from "Contains Dependencies". Errors are always ignored until processing completes and the<br />

number of threads used is controlled by <strong>OrcaFlex</strong>.<br />

Automating post-processing from VBA<br />

Sometimes it is convenient to be able to invoke the post-processing actions from VBA. You can do so like this:<br />

Dim module as Object<br />

Set module = Application.COMAddIns.Item("PostProcessing.<strong>OrcaFlex</strong>SpreadSheet").Object<br />

module.ProcessAll<br />

This is equivalent to pressing the Process All button. To invoke the Process Selected button programmatically you<br />

use the ProcessSelected method:<br />

module.ProcessSelected<br />

Finally, the processing options are can also be controlled by means of the following properties:<br />

module.ContainsDependencies = True<br />

module.IgnoreErrors = False<br />

module.ThreadCount = 4<br />

Re-enabling the spreadsheet add-in<br />

The <strong>OrcaFlex</strong> spreadsheet is implemented as an Excel add-in. Sometimes, for example after an Excel crash, the addin<br />

can become disabled and needs to be re-enabled. The method for achieving this differs depending on the version<br />

of Excel.<br />

Excel 2003<br />

1. On the Excel Help menu, click About Microsoft Office Excel.<br />

2. Click Disabled Items which brings up the Disabled Items dialog.<br />

3. Select the <strong>OrcaFlex</strong> spreadsheet in the Disabled Items dialog and click Enable.<br />

4. Restart Excel.<br />

5. In some cases, a reboot is also required for the change to take effect.<br />

Excel 2007/2010<br />

1. Open the Excel Options dialog.<br />

2. Select the Add-ins page.<br />

3. Select Disabled Items in the Manage drop-down list.<br />

4. Click the Go button which brings up the Disabled Items dialog.<br />

5. Select the <strong>OrcaFlex</strong> spreadsheet and click Enable.<br />

6. Restart Excel.<br />

7. In some cases, a reboot is also required for the change to take effect.<br />

The above instructions refer to what Microsoft term hard disabling. If the above actions do not resolve the problem,<br />

then it is possible that the add-in has been soft disabled instead – the instructions for re-enabling are as follow:<br />

Excel 2007/2010<br />

1. Open the Excel Options dialog.<br />

2. Select the Add-ins page.<br />

3. Select COM Add-ins in the Manage drop-down list.<br />

4. Click the Go button which brings up the COM Add-ins dialog.<br />

5. Check the box next to the <strong>OrcaFlex</strong> spreadsheet and click OK.<br />

6. Restart Excel.


w<br />

4.4.3 Instruction Format<br />

111<br />

Automation, Post-processing<br />

The easiest way to learn about the instruction format is by using the Instructions Wizard which allows you to create<br />

instructions in an interactive manner.<br />

In the <strong>OrcaFlex</strong> Spreadsheet, each instruction consists of the following cells.<br />

Sheet Name<br />

Specifies the name of the worksheet in which cells are to be written. If a worksheet with this name already exists<br />

then the specified label and output cells will be overwritten, but other cells will be left unchanged. If no sheet of<br />

that name exists then one will be created.<br />

Label Cell<br />

Specifies the cell, in the specified worksheet, to which the label (if not empty) will be written.<br />

Label<br />

Specifies the label string to be written to the label cell. This cell can be left empty, in which case the label cell is<br />

ignored.<br />

Output Cell<br />

Specifies the cell, in the specified worksheet, to which results or data should be written. Some commands specify<br />

multiple-value output – for example a time history consists of a column of results. In this case the output cell<br />

specifies the top left cell of the block of cells to be written.<br />

Command<br />

Note: The output cell (or label cell) can be specified directly, e.g. B7, but can also be specified indirectly<br />

using standard Excel formulae.<br />

This should be one of the pre-defined commands or else empty. If the command cell is empty then the output cell is<br />

ignored and just the label is output.<br />

Object Name<br />

The name of the <strong>OrcaFlex</strong> object whose results or data are output.<br />

Note: This name is case sensitive. Different objects in <strong>OrcaFlex</strong> can have identical names except for case.<br />

For example "LINE" and "line" and "LiNe" are all regarded as different objects in <strong>OrcaFlex</strong>.<br />

Additional Data<br />

This column is used when outputting results for certain types of <strong>OrcaFlex</strong> object.<br />

For the Environment object you need to specify the global X,Y,Z coordinates of the point for which you want results<br />

– the coordinates must be separated by the ';' character. If no point is specified then (0,0,0) will be assumed.<br />

For Vessel objects some results require the local x,y,z coordinates of the point for which you want results – the<br />

coordinates must be separated by the ';' character or leave blank to use the vessel origin.<br />

For 6D Buoy objects you must specify the Wing Name if you are requesting a wing results variable or a point in local<br />

x,y,z buoy coordinates for some results variables – the coordinates must be separated by the ';' character or leave<br />

blank to use the buoy origin.<br />

For Winch objects you may need to specify the winch connection number.<br />

For Line objects you must specify the position on the line for which results are wanted. There are a variety of ways<br />

in which this can be specified:<br />

� The position can be specified by arc length, e.g. "Arclength 25.0".<br />

� The node number can be specified, e.g. "Node 4".<br />

� One of the line ends can be specified, e.g. "End A", "End B" or more concisely "A" or "B".<br />

� The touchdown position can be specified, e.g. "Touchdown".<br />

� For stress results you must also specify the position of the point within the cross section through the specified<br />

arc length. You do this by specifying R,Theta values, e.g. "Inner", "Outer", "Theta 270.0".


Automation, Post-processing<br />

112<br />

w<br />

Note: You must specify an arc length together with both R and Theta separated by the ';' character, e.g.<br />

"Arclength 20.0; Inner; Theta 270.0", "End A; Outer; Theta -45.0"; "Node 7; Outer; Theta 17.8" etc.<br />

� Clearance results can be reported either as clearances from this line to all other lines or from this line to a<br />

specified other line. You can specify this other line by adding its name after the position, e.g. "Arclength 35;<br />

Line2", "Node 4; Riser"; "End B; Hose" etc. If you do not specify another line (e.g. "Arclength 35") then<br />

clearances will be reported from this line to all other lines.<br />

The results are given for the nearest appropriate result point; see Line Results for details.<br />

For the Range Graph and Range Graph Summary commands you can specify a range of arc lengths, e.g. "20 to 50".<br />

You can also use ranges such as "60" to specify all arc lengths less than a point or all arc lengths greater<br />

than a point.<br />

For the Rayleigh Extremes instruction you can specify the parameters for the extreme value statistics analysis.<br />

For the Duplicate Sheet instruction, the source worksheet is specified in this column.<br />

For the Clear instruction, the range to be cleared is specified in this column. If the value in this column is left empty<br />

then the entire sheet is cleared.<br />

Simulation Period<br />

The period of simulation for which results are wanted. This can be Whole Simulation, Latest Wave, Static State,<br />

Build up or a stage number (0 for the build-up, 1 for stage 1 etc.).<br />

It can also be a specified period of simulation, given in the form "t1 to t2" where t1 and t2 are numeric time values<br />

that are in the simulation and Simulation Start Time ≤ t1 ≤ t2 ≤ Simulation End Time. For example "20 to 30" or "-<br />

12.5 to +35.7".<br />

Note: If you use the Static State period then a single value will be reported – the value of the variable at<br />

the very beginning of the simulation.<br />

This cell should be left empty for the data output commands Select and Get Data and when outputting static results<br />

using the Static Result, Range Graph and Range Graph Summary commands.<br />

Variable<br />

Note: This specified period format can be used to extract results at a single time point; for example the<br />

period "27.4 to 27.4" will give the results at the nearest log sample to time 27.4.<br />

The name of the output variable.<br />

If the command is a results command (e.g. Time History, Range Graph, Linked Statistics, Min etc.) this should be set<br />

to the same name as is used for the results variable in <strong>OrcaFlex</strong>. For example Effective Tension, Curvature, Surge,<br />

etc.<br />

If the command is Get Data then this is the batch script name of the data item.<br />

If the command is Select then this is the wave train, draught, RAO direction or QTF direction to be selected.<br />

4.4.4 Pre-defined commands<br />

In the <strong>OrcaFlex</strong> Spreadsheet, the Command Cell can contain one of the following commands:<br />

� Load.<br />

� OrcFxAPI version.<br />

� Working Directory.<br />

� Warnings.<br />

� Clear, Duplicate Sheet.<br />

� Sample Times.<br />

� Time History.<br />

� Min, Max, Mean, Standard Deviation.<br />

� Linked Statistics.<br />

� Rayleigh Extremes.


w<br />

� Spectral Density, Empirical Distribution, Rainflow Half Cycles, Rainflow Half Cycle Count.<br />

� Static Result.<br />

� Spectral Response Graph.<br />

� Range Graph, Range Graph Summary, Range Graph Min, Range Graph Max.<br />

� Get Data, Select.<br />

4.4.5 Basic commands<br />

Load <br />

113<br />

Automation, Post-processing<br />

This command tells the spreadsheet to open the specified file. Subsequent results extraction commands then apply<br />

to that file.<br />

You can either specify the full path of the file, for example:<br />

Load c:\Project100\Case1.sim<br />

or else use a relative path (relative to the directory containing the spreadsheet). The latter is often more convenient.<br />

For example if the file Case1.sim is in the same directory as the spreadsheet then you can use the command:<br />

Load Case1.sim<br />

and this has the advantage that there is no need to alter the spreadsheet if the directory is renamed or the files are<br />

moved to a different directory.<br />

If you specify a data file (.dat or .yml) then the file is loaded and the <strong>OrcaFlex</strong> statics calculation is performed.<br />

Subsequent results extraction gives results for the static configuration.<br />

Simulation files (.sim) containing either static state results or dynamic simulation results can be loaded.<br />

Note: The statics calculation may take a significant length of time. If the calculation time is excessively<br />

long then we recommend that you use the Use Calculated Positions command when building your<br />

model.<br />

OrcFxAPI version<br />

This outputs the version of the OrcFxAPI DLL which is being used by the spreadsheet. This is not necessarily the<br />

version of the program which performed the calculations (for example if you load a simulation file which was<br />

generated by a different version of <strong>OrcaFlex</strong>).<br />

Working Directory<br />

This outputs the directory where the spreadsheet is stored. If you are using relative paths then it can be useful to<br />

keep track of the base path for QA purposes.<br />

Warnings<br />

This outputs the text from any warnings reported during the <strong>OrcaFlex</strong> calculations (static or dynamic). Simulations<br />

run in batch mode or by Distributed <strong>OrcaFlex</strong> do not display such warnings since to do so would require user<br />

intervention. This command allows you to check whether any such warnings were generated.<br />

This command is the equivalent of the Calculation | View Warnings menu item.<br />

Clear<br />

This command clears the contents of cells in the specified output sheet. All cell formatting is preserved.<br />

This should generally be the first command in the instructions sheet or the first command following a Load<br />

command depending on whether the results are being output to a single or multiple sheets. Results extraction<br />

spreadsheets are typically run repeatedly. The purpose of this command is to ensure that previously extracted<br />

results are removed and so cannot get mixed up with the latest results.<br />

If the Additional Data column is empty then the entire sheet is cleared. Otherwise, if the Additional Data column is<br />

not empty, then its value is taken to mean a range of cells to be cleared. The range is specified using Excel's A1<br />

reference style. The following table illustrates some typical A1 style references:<br />

Reference Meaning<br />

A1 Cell A1


Automation, Post-processing<br />

Reference Meaning<br />

A1:B5 Cells A1 through B5<br />

C5:D9,G9:H16 A multiple-area selection<br />

A:A Column A<br />

1:1 Row 1<br />

A:C Columns A through C<br />

1:5 Rows 1 through 5<br />

1:1,3:3,8:8 Rows 1, 3, and 8<br />

A:A,C:C,F:F Columns A, C, and F<br />

Duplicate Sheet<br />

114<br />

w<br />

This command copies the entire contents of the worksheet named in the Additional Data column to the specified<br />

output sheet. All charts, formulae, formatting etc. that exist in the source worksheet are copied.<br />

4.4.6 Time History and related commands<br />

Sample Times<br />

Returns the time values that apply to the time history results. This command returns a column of N numbers, where<br />

N is the number of <strong>OrcaFlex</strong> log samples that are in the specified simulation period. So if the output cell is set to G5<br />

and there are 500 log samples in the simulation period, then the time values for those log samples will be written to<br />

cells G5…G504.<br />

Time History<br />

Returns the time history values of the specified variable. This command returns a column of N numbers, as with the<br />

Sample Times command.<br />

Min, Max, Mean, Standard Deviation<br />

Min return a single number, equalling the minimum value of the specified time history variable during the specified<br />

simulation period. Similarly for Max, Mean and Standard Deviation (which can be abbreviated to Std Dev).<br />

Linked Statistics<br />

Outputs the same information as the Linked Statistics command on the <strong>OrcaFlex</strong> results form. In the variable column<br />

of the instruction you should specify a number of results variable names, separated by commas. The command<br />

outputs a table of statistics for those variables.<br />

Rayleigh Extremes<br />

Outputs the results of a Rayleigh distribution Extreme Value Statistics analysis: MPM and Extreme Value with Risk<br />

Factor. Parameters for the analysis are specified in the Additional Data column, separated by semi-colons. For<br />

example:<br />

StormDuration=3; RiskFactor=1; ExtremesToAnalyse=Upper tail<br />

The storm duration is given in hours and the risk factor is a percentage.<br />

The StormDuration and ExtremesToAnalyse parameters can be omitted. If they are omitted then default values<br />

of 3 and Upper tail are used. If the RiskFactor parameter is omitted then the Extreme Value with Risk Factor<br />

result is not output.<br />

Spectral Density, Empirical Distribution, Rainflow Half Cycles, Rainflow Half Cycle Count<br />

These commands extract spectral density, empirical distribution and rainflow half cycles results of the specified<br />

variable.<br />

Static Result<br />

Returns the value of the specified variable. This command reports the value in the static configuration.<br />

Spectral Response Graph<br />

Returns the spectral response graph for the specified variable. The command returns two columns of numbers. The<br />

first column is frequency and the second is the RAO.


w<br />

4.4.7 Range Graph commands<br />

Range Graph, Range Graph Summary, Range Graph Min, Range Graph Max<br />

115<br />

Automation, Post-processing<br />

These commands output, for the specified variable of a line, tables containing range graph results. They are available<br />

for any line variable for which a range graph is available in <strong>OrcaFlex</strong>.<br />

The Range Graph command gives a table having 7 columns, containing arc length, minimum, maximum, mean,<br />

standard deviation, upper limit, and lower limit. For each point on the line a row is generated in the table containing<br />

the statistics of the values that occurred at that point during the specified simulation period.<br />

You can specify that only a subset of the columns are to be output. This is done by listing the columns to be output in<br />

the Additional Data column. This is most easily done using the Instructions Wizard.<br />

The Range Graph Summary command gives a table having two rows, one for the overall minimum and one for the<br />

overall maximum. Each row has 4 cells; two are label cells and the other two contain the overall minimum (or<br />

maximum) value that occurred at any point on the line during the specified simulation period, and the arc length at<br />

which it occurred.<br />

The Range Graph Min and Range Graph Max commands output just the overall minimum or maximum value<br />

respectively.<br />

If you have loaded a simulation file then you must specify, in the Simulation Period column of the instruction, the<br />

period of simulation for which you want results. Otherwise, if you have loaded a data file, you should leave this<br />

column blank and the results for the static configuration are reported.<br />

If the Additional Data column in the instruction is left blank then the results will apply to the whole line.<br />

You can restrict these commands to only cover part of the line, by specifying a range of arc lengths, e.g. "20 to 50", in<br />

the Additional Data column. The table will then only include results for points whose arc length is within the<br />

specified range. You can also use ranges such as "60" to specify all arc lengths less than a point or all arc<br />

lengths greater than a point. The length units used must be the same as those used in the <strong>OrcaFlex</strong> simulation file.<br />

Alternatively, you can specify a section number in the Additional Data column to restrict results to that section.<br />

4.4.8 Data commands<br />

Get Data, Select<br />

This command outputs the value of a data item. The object is specified in the Object Name column of the instruction<br />

sheet and the data item is specified in the variable column.<br />

The data item is specified using the batch script name of the data item. If the data item appears in a table in<br />

<strong>OrcaFlex</strong>, then its row number must be given. The row number follows the data item name and is given as an index<br />

enclosed by either square or round brackets (don't mix them on the same line). The index is always 1-based – i.e. [1]<br />

is the first row of the table. For example if you wanted to output the number of segments in the 3rd section of a line<br />

then the variable cell would be "NumberOfSegments[3]". For more details see batch script assignment.<br />

Certain objects require special select commands to output certain data items. For example if you want to output<br />

wave train data for the Environment and there is more than one wave train then you need to specify the particular<br />

wave train. Likewise certain vessel type data requires you to specify a draught and/or an RAO type and direction.<br />

Example commands to do this are given below:<br />

Command Object Name Additional<br />

Data<br />

Simulation<br />

Period<br />

Variable<br />

Select WaveTrain Environment Wave2<br />

Get Data Environment WaveTrainType<br />

Select WaveTrain Environment Wave3<br />

Get Data Environment WaveTrainType<br />

Select Draught VType1 Draught3<br />

Get Data VType1 CurrentCoeffSurgeArea<br />

Select RAOs VType1 Displacement<br />

Select Direction VType1 30<br />

Get Data VType1 RAOSwayAmplitude[3]


Automation, Post-processing<br />

Command Object Name Additional<br />

Data<br />

Simulation<br />

Period<br />

Select Direction VType1 60<br />

116<br />

Variable<br />

Get Data VType1 RAOSwayAmplitude[2]<br />

Select RAOs VType1 QTF<br />

Select Direction VType1 45<br />

Get Data VType1 RAOSurgeAmplitude[6]<br />

Notes: The Select commands must be issued before the Get Data commands.<br />

4.4.9 Instructions Wizard<br />

w<br />

The Select commands are only needed for certain data items. For example the sea density data item<br />

does not depend on wave train so it would not need a Select WaveTrain command.<br />

The Instructions Wizard allows you to create <strong>OrcaFlex</strong> spreadsheet instructions interactively. In many ways it is<br />

the equivalent of the Select Results form in <strong>OrcaFlex</strong>. The Instructions Wizard is found on the <strong>OrcaFlex</strong> menu in the<br />

spreadsheet.<br />

Instructions Wizard Tutorial<br />

For a quick introduction to the Instructions Wizard we recommend the following tutorial.<br />

Prepare a simple <strong>OrcaFlex</strong> simulation file and an empty <strong>OrcaFlex</strong> spreadsheet<br />

For the purpose of this example you need a simulation file containing at least a vessel and a line. You could use one<br />

of the standard <strong>OrcaFlex</strong> examples – see www.orcina.com/SoftwareProducts/<strong>OrcaFlex</strong>/Examples.<br />

Now create an <strong>OrcaFlex</strong> spreadsheet and save it in the same directory as the simulation file. The spreadsheet should<br />

now looks like this:<br />

Figure: Empty instructions table<br />

Add a Load instruction using the Wizard<br />

The instructions wizard creates and inserts instructions on the currently selected row. So the next step is to select<br />

the first instruction row by clicking on a cell in row 5. Then open the Instruction Wizard by clicking on the <strong>OrcaFlex</strong><br />

menu and selecting "Instructions Wizard".<br />

In the Instructions Wizard click the drop down button and change the command to "Load". A file name field and a<br />

browse button will now appear. Click the browse button and select the simulation file you saved in the first part of<br />

this tutorial. The top part of the Instructions Wizard should now look as follows:


w<br />

Figure: Load instruction in the Instructions Wizard<br />

117<br />

Automation, Post-processing<br />

To add the instruction to the spreadsheet click the "Accept and Close" button and the spreadsheet should now look<br />

as follows:<br />

Figure: Load instruction on the Instructions Sheet<br />

The Load instruction tells the spreadsheet to open the specified file.<br />

Add results instructions using the Wizard<br />

Now we need to add some more instructions which specify which results to extract from this simulation file. Open<br />

the Instructions Wizard again and change the command to "Time History". In the Object list select an <strong>OrcaFlex</strong> Line<br />

(if you are using the "A01 Catenary Riser.sim" example then select 10" Cat Constant EA) and then select Effective<br />

Tension from the Variable list.<br />

This time, to add the instruction click the "Accept and go to Next Row" button. You will see the instruction being<br />

added to the worksheet but the Instructions Wizard will remain open allowing you to add yet more instructions.<br />

More than one instruction can be added at once. Suppose that you want time histories of X, Y and Z for the line.<br />

Select these from the Variable list using CTRL+CLICK or SHIFT+CLICK. The Variable list now looks as follows:<br />

Figure: Multiple selection of results variables


Automation, Post-processing<br />

118<br />

w<br />

Now click the "Accept and go to Next Row" button and you will see 3 instructions being added, one for each variable.<br />

Now close the Wizard (by clicking the "Close" button) and process all the instructions. You should see 4 time<br />

histories output on a new worksheet called "Results".<br />

Setting Period and Additional Data for the instructions<br />

The instructions added so far all specify the default simulation period of "Whole Simulation" and the default line<br />

position of "Arclength 0".<br />

In the Wizard you can specify a different simulation period by changing the Period drop down list. The available<br />

options are: "Whole Simulation", "Latest Wave", "Specified Period", "Static State", "Build Up" and each stage of the<br />

simulation, e.g. "0" (same as "Build Up"), "1". Try selecting different simulation periods and adding instructions.<br />

Notice how the values in the Simulation Period column reflect your selections in the Wizard.<br />

For <strong>OrcaFlex</strong> Lines you also need to specify a point on the line, e.g. End A, End B, arc length 50, node 12 etc. All these<br />

options are available in the Wizard when you are specifying results for a line.<br />

In addition, certain results require extra information.<br />

� If you are extracting clearance results for Lines then you need to specify the clearance line.<br />

� If you are extracting stress component results for Lines then you need to specify the cross-sectional position.<br />

� If you are extracting Wing results for 6D Buoys then you need to specify the wing.<br />

� If you are extracting results for Winches then you may need to specify the winch connection point.<br />

� If you are extracting results for the Environment then you need to specify the position at which you want results<br />

reported.<br />

Other commands<br />

So far we have just looked at time history results but the Wizard allows you to build other instructions. For example,<br />

open the Wizard again and change the command to Range Graph. Notice how slightly different options are available<br />

reflecting the fact that range graphs are specified in a slightly different way from time histories.<br />

Try also experimenting with other commands like Linked Statistics, Sample Times, Spectral Density, Max, Standard<br />

Deviation and so on.<br />

There are even commands for reporting model data: Select and Get Data.<br />

Labels, sheet name, output cell<br />

The one part of the Instructions Wizard which we have not discussed is the section titled "Labels" as shown below:<br />

Figure: Labels section of the Instruction Wizard<br />

This section determines what gets written into the first 4 columns of the instructions table, namely Sheet Name,<br />

Label Cell, Label and Output Cell.<br />

If the Overwrite option is checked then the Wizard will output values in each of these 4 columns as specified in the<br />

relevant field. If not checked then the values in the sheet will remain unchanged.


w<br />

119<br />

Automation, Post-processing<br />

You can choose to use a default label, in which case the label will be assembled based on the particular instruction it<br />

is associated with. Alternatively you can choose to specify the label yourself.<br />

When instructions are added the Label Cell and Output Cell values on the Instructions Wizard will be incremented<br />

automatically. This automatic procedure will not always produce the values you require. However, it generally gives<br />

a good first effort which you can modify later.<br />

Exclude header text<br />

Some results, for example range graphs, linked statistics, spectral density etc., produce output that includes column<br />

headers. There are situations where these column headers are undesirable and if that is so the "Exclude header text"<br />

box can be checked to suppress their output.<br />

4.4.10 Duplicate Instructions<br />

The Duplicate Instructions form allows you to duplicate sets of <strong>OrcaFlex</strong> spreadsheet instructions for multiple load<br />

cases.<br />

Suppose you are analysing a number of different load cases for a variety of environmental conditions. Once you have<br />

built the spreadsheet instructions for a single load case you typically want to generate the same instructions for<br />

each other load case. The Duplicate Instructions form automates this procedure.<br />

The Duplicate Instructions form can be found on the <strong>OrcaFlex</strong> menu in the spreadsheet. Before using it you should<br />

create a set of instructions for the first load case – an example is shown below:<br />

Figure: Instructions table with instructions for a single load case<br />

You are now ready to use the Duplicate Instructions form. When it first opens it looks as follows:


Automation, Post-processing<br />

Figure: The Duplicate Instructions form<br />

Simulation file selection<br />

120<br />

w<br />

If your load case files (either <strong>OrcaFlex</strong> simulation files or <strong>OrcaFlex</strong> data files) are generated by an <strong>OrcaFlex</strong> batch<br />

script then you should set this option to From Script File and select the script file using the Browse button or by<br />

typing the file name into the "Script File Name" field. A duplicate set of instructions is generated for each file which<br />

is written by the script file. We strongly recommend that you use this option since script files make QA much more<br />

manageable.<br />

Alternatively, if your load case files are generated by some other means then you can choose the Specified option<br />

and you will then be able to specify each load case file directly.<br />

Duplication Method<br />

Usually you will want results for each load case to appear on separate sheets. To do this you set this option to<br />

Different Sheets. The results sheets will be assigned names based on the Sheet Names by option. If you select the<br />

Load Case option then results sheets will be named based on the load case file name. If you select the Index option<br />

then sheets will be named 1, 2, 3 etc. In addition, you may specify a prefix for the sheet name by filling in the Sheet<br />

Base Name field.<br />

Sometimes, however, it is desirable for all the results to appear on a single sheet – this is achieved with the Single<br />

Sheet option. The duplication process will generate new instructions with the same Sheet Name.<br />

When you select the Single Sheet option you must also specify row and column offsets. These offsets allow you to<br />

avoid the results from each load case overwriting other load case results. Suppose that the results from the first load<br />

case took up 20 rows worth of space. In this case you would probably specify a row offset of 22 (to allow 2 blank<br />

rows between load case results) and a column offset of 0.<br />

When the selected duplication method is Single Sheet, you also have the option whether to Duplicate Labels.<br />

When checked, the instruction’s labels are duplicated in the same way as the Different Sheets method, but also<br />

updated with the given row and column offsets. If not checked then no labels are duplicated allowing you to extract<br />

the results from multiple load cases to a single sheet that has only a single set of labels.<br />

Duplicating the instructions<br />

Once you have decided exactly how the instructions are to be duplicated you click the Duplicate button and the<br />

instructions table will be modified to look something like this:


w<br />

Figure: Instructions table with duplicated instructions for multiple load cases<br />

Adding / removing instructions<br />

121<br />

Automation, Post-processing<br />

Quite often you will find yourself wanting to add more instructions to the each load case. The easiest way to do this<br />

is to delete all the instructions apart from those of the first load case. In the screenshot above this would mean<br />

deleting all cells from row 9 and below. You can then add more instructions to the first load case. Finally you simply<br />

repeat the duplication process outlined above and you will have the extra instructions for each load case.


w<br />

5 THEORY<br />

5.1 COORDINATE SYSTEMS<br />

123<br />

Theory, Coordinate Systems<br />

<strong>OrcaFlex</strong> uses one global coordinate system GXYZ, where G is the global origin and GX, GY and GZ are the global axes<br />

directions. In addition, there are a number of local coordinate systems, generally one for each object in the model. In<br />

general we use Lxyz to denote a local coordinate system. Another coordinate system that we make widespread use<br />

of is the Line End orientation which we denote Exyz.<br />

All the coordinate systems are right handed, as shown in the following figure, which shows the global axes and a<br />

vessel with its own local vessel axes Vxyz. Positive rotations are clockwise when looking in the direction of the axis<br />

of rotation.<br />

G<br />

Z<br />

Sea Surface<br />

Y<br />

Figure: Coordinate Systems<br />

X<br />

z<br />

V<br />

Global Axes<br />

y<br />

Vessel Axes<br />

The global frame of reference must be a right-handed system and its Z-axis GZ must be positive upwards, but<br />

otherwise it is chosen by the user. You can therefore choose the position of the global origin G and the horizontal<br />

direction GX according to what suits the problem being analysed.<br />

The local coordinate systems for each type of object are described in the section about that object, but typically the<br />

origin is at a selected fixed point on the object and the axes are in special fixed directions, such as the surge, sway<br />

and heave directions for a vessel. The seabed also has its own seabed origin and local axes, with respect to which the<br />

seabed shape is defined.<br />

The local axes are distinguished from the global axes by using lower case; for example the local object directions are<br />

referred to as x, y and z . The global directions are referred to as the X, Y and Z. Whenever data or results are<br />

coordinate system dependent, they are referred to as being either global-relative (and are labelled in upper case) or<br />

object-relative (and are labelled in lower case).<br />

You can ask <strong>OrcaFlex</strong> to draw the local axes on the 3D view. This enables you to see the local axes and check that<br />

they are as wanted.<br />

Most of the data and results are given relative to the global axes, including:<br />

� Data defining the sea, such as the mean sea surface Z level and the current and wave direction.<br />

� The positions of objects; for example the position of the vessel is defined by giving the global coordinates of the<br />

vessel origin V.<br />

The most common object-relative items are:<br />

x


Theory, Direction Conventions<br />

124<br />

w<br />

� The coordinates of points that move with the object, such as the vertices of a vessel or the connection point<br />

when something is connected to a buoy.<br />

� The direction-dependent properties of objects, such as drag and added mass coefficients, moments of inertia,<br />

etc.<br />

5.2 DIRECTION CONVENTIONS<br />

Directions and Headings<br />

Directions and headings are specified in <strong>OrcaFlex</strong> by giving the azimuth angle of the direction, in degrees, measured<br />

positive from the x-axis towards the y-axis, as shown in the following figure.<br />

180<br />

150<br />

210<br />

90<br />

y<br />

270<br />

Figure: Directions and Headings<br />

30<br />

x 0<br />

330<br />

Directions relative<br />

to axes<br />

Directions for waves, current and wind are specified by giving the direction in which the wave (or current or wind)<br />

is progressing, relative to global axes. In other words for these directions the x and y-axes in the above figure are the<br />

global GX and GY axes.<br />

Vessel headings are specified as the direction in which the vessel Vx-axis is pointing, relative to global axes. So again,<br />

for vessel headings the x and y-axes in the above figure are the global GX and GY axes.<br />

Vessel responses to waves, and similarly for current and wind, depend on the wave direction relative to the vessel.<br />

For example, vessel type RAOs and QTFs are given for a specified wave direction relative to vessel axes<br />

(β = Wave Direction relative to global axes - Vessel Heading). In other words for these vessel-relative directions the<br />

x axis in the above figure is in the vessel heading direction. Hence a relative wave direction of β=0° means a wave<br />

coming from astern and a relative direction of β=90° means one coming from starboard.<br />

The slope direction for the seabed is specified as the direction that points up the steepest slope, relative to global<br />

axes.<br />

The slope direction of a plane shape that is Fixed or Anchored is specified relative to global axes.<br />

The slope direction of a plane shape that is connected to another object is specified relative to that object's axes.<br />

Azimuth and Declination<br />

Directions are defined in <strong>OrcaFlex</strong> by giving two angles, azimuth and declination, that are broadly similar to those<br />

used in navigation, gunnery, etc. As with positions, directions are sometimes defined relative to the global axes and<br />

sometimes relative to the local object axes.<br />

For directions defined relative to the object axes Oxyz, the azimuth and declination angles are defined as follows:<br />

� Azimuth is the angle from the x axis to the projection of the direction onto the xy plane. The positive x axis<br />

direction therefore has Azimuth = 0°, and the positive y axis direction has Azimuth = 90°.<br />

� Declination is the angle the direction makes with the z axis. Therefore Declination is 0° for the positive zdirection,<br />

90° for any direction in the xy plane, and 180° for the negative z-direction. When Declination is 0° or<br />

180°, Azimuth is undefined (<strong>OrcaFlex</strong> reports Azimuth = 0° in these cases).


w<br />

125<br />

Theory, Object Connections<br />

Directions relative to the global axes are defined in just the same way, simply replacing the local xyz directions<br />

above with the global XYZ directions. A global declination of 0° therefore means vertically upwards, 90° means<br />

horizontal and 180° means vertically downwards.<br />

When a direction is being defined, the "sign" of the direction must also be defined. For example "vertical" does not<br />

fully define a direction – it must be either "vertically up" or "vertically down" before the azimuth and declination<br />

angles can be derived. The "sign" conventions used in <strong>OrcaFlex</strong> for directions are:<br />

� For Lines, axial directions are always defined in the A to B sense, in other words from End A towards End B.<br />

Thus a vertical line with End A at the top has declination 180°.<br />

� For Winches and Links, axial directions are defined in the sense 'from first end towards second end'. Thus a link<br />

with end 1 directly above end 2 has declination 180°.<br />

5.3 OBJECT CONNECTIONS<br />

Lines, links, winches and shapes are special objects that can be connected to other objects. First consider connecting<br />

a line to another object. To enable connections to be made each line has two joints, one at each end, which are<br />

drawn as small blobs on the ends of the line, when the model is in Reset state. To distinguish the two ends, the joint<br />

at End A is drawn as a triangle and the joint at End B as a square.<br />

Each of these line end joints can either be Free or else be connected to a Vessel, 3D Buoy, 6D Buoy, the Global Axes<br />

or the seabed. Lines cannot be connected to themselves, to other lines, nor to a Link or Winch. When a line's joint is<br />

Free, that end of the line is free to move and this is indicated by the joint being drawn in the same colour as the line.<br />

When the joint is connected to another object, that end of the line becomes a slave and the object to which it is<br />

connected becomes its master. The connection is then indicated by the joint being drawn in the colour of its master.<br />

Links and Winches also have joints at each end (winches can also have extra intermediate joints) and these are<br />

connected to other objects in the same way as with lines, but with the following exceptions.<br />

� Link and winch joints cannot be Free – they must always be connected to some master.<br />

� Link and winch joints can be connected to nodes on a line, as well as to Vessels, 3D Buoys, 6D Buoys, the Global<br />

Axes or the seabed. This allows, for example, a winch to be attached to the end node of a line so that winching in<br />

or out can be modelled.<br />

Shapes have a single joint which can be connected to Vessels, 3D Buoys, 6D Buoys, the Global Axes or the seabed.<br />

When a joint is connected to a master, the connection is made at a specified master-relative position and the master<br />

object then determines the position of its slave – the slave is dragged around by its master as the master moves. In<br />

response the slave applies forces and moments to its master – for a line these are simply the end force and moment<br />

applied by the line.<br />

Because neither the Global Axes nor the seabed move, a joint connected to either of them is simply fixed in one<br />

position. The difference between them lies in how the connection point is specified. For a connection to the Global<br />

Axes, the X, Y and Z coordinates of the connection point are specified relative to those axes and the joint is called<br />

Fixed. For a connection to the seabed the X and Y coordinates are specified relative to the global axes, but the Z<br />

coordinate is specified relative to the seabed Z level at that X,Y position; the joint is then referred to as being<br />

Anchored. So for an Anchored joint, Z=0 means that the connection is exactly on the seabed and Z=1 means it is 1<br />

unit above the seabed. By using anchored joints you can therefore avoid the need to calculate the seabed Z level at<br />

the given X,Y position (not simple with sloping seabeds).<br />

5.4 INTERPOLATION METHODS<br />

<strong>OrcaFlex</strong> uses a number of different methods for interpolating data. These methods are described below:<br />

� Linear. The data is assumed to follow a straight line between each (X,Y) pair. Linear interpolation is said to be<br />

piecewise linear. Curves that are linearly interpolated are continuous but their first derivative is discontinuous<br />

at each X data point.<br />

� Cubic spline. Cubic spline interpolation fits a cubic polynomial over each interval in the data, so the fitted<br />

interpolation curve is piecewise cubic. These cubics are chosen so that both the first and second derivatives are<br />

continuous at each X data point. A consequence of this is that with cubic polynomial interpolation the (X,Y) data<br />

specified at any given data point affects the interpolated curve over the whole range of X values, not just over<br />

the intervals near that (X,Y) data point. In other words cubic spline gives a 'non-local' interpolation.


Theory, Interpolation Methods<br />

126<br />

w<br />

� Cubic Bessel (also known as Parabolic Blending). Cubic Bessel interpolation is similar to cubic spline in that it<br />

is also piecewise cubic. But for this method the cubics are chosen so that the only the first derivative is<br />

continuous at each X data point. The second derivative is not, in general, continuous at the data points, which<br />

can be a drawback for some purposes. However cubic Bessel interpolation has the advantage that it gives 'local'<br />

interpolation – i.e. the (X,Y) values at any given data point only affects the interpolated curve over the intervals<br />

near that point.<br />

Choosing interpolation method<br />

Sometimes <strong>OrcaFlex</strong> provides a choice of interpolation method. In general we would recommend that you use the<br />

default interpolation method, but in some cases it may be appropriate to use a different method. To decide you need<br />

to take into account what the interpolated data is used for and the different properties of the interpolation methods.<br />

If continuity of first derivative is not required then linear interpolation is often appropriate. It has the advantage<br />

that it is very simple. The other 2 methods are piecewise cubic and they both produce a smooth curve, i.e. one with<br />

continuous first derivative. Cubic spline interpolation gives a curve that also has a continuous second derivative,<br />

whereas cubic Bessel does not, but in many cases this is not important.<br />

Both cubic spline and cubic Bessel produce curves that often have overshoots. For example the following graphs<br />

show how each method interpolates a particular set of data. Although the greatest Y value specified in the data is 8,<br />

the interpolated curves for cubic spline and cubic Bessel both exceed this value. How serious this overshoot is<br />

depends on the data – it can be much more serious than illustrated here or sometimes there can be no problem at<br />

all. The amount of overshoot is generally less with cubic Bessel than with cubic spline. But if you are using either of<br />

the piecewise cubic interpolation methods then you should always check whether the interpolated curve gives an<br />

appropriate fit to the data. If it does not then you usually need to supply more data points.


w<br />

127<br />

Theory, Static Analysis<br />

Finally, cubic Bessel interpolation has the advantage that it gives a 'local' interpolation, in the sense that each<br />

specified (X,Y) data point only affects the interpolated curve over the intervals near that point, whereas with cubic<br />

spline the whole curve is affected to some extent by each of the (X,Y) data points.<br />

5.5 STATIC ANALYSIS<br />

There are two objectives for a static analysis:<br />

� To determine the equilibrium configuration of the system under weight, buoyancy, hydrodynamic drag, etc.<br />

� To provide a starting configuration for dynamic simulation.<br />

In most cases, the static equilibrium configuration is the best starting point for dynamic simulation and these two<br />

objectives become one. However there are occasions where this is not so and <strong>OrcaFlex</strong> provides facilities for<br />

handling these special cases. These facilities are discussed later.<br />

Static equilibrium is determined in a series of iterative stages:<br />

1. At the start of the calculation, the initial positions of the vessels and buoys are defined by the data: these in turn<br />

define the initial positions of the ends of any lines connected to them.<br />

2. The equilibrium configuration for each line is then calculated, assume the line ends are fixed.<br />

3. The out of balance load acting on each free body (node, buoy, etc.) is then calculated and a new position for the<br />

body is estimated. The process is repeated until the out of balance load on each free body is zero (up to the<br />

specified tolerance). For details see Statics of Buoys and Vessels.<br />

For the majority of systems, the static analysis process is very quick and reliable. Occasionally, usually for very<br />

complex systems with multiple free bodies and many inter-connections, convergence may be difficult to achieve. To<br />

help overcome this problem, <strong>OrcaFlex</strong> provides facilities for the user to suppress some of the degrees of freedom of<br />

the system and approach the true equilibrium by a series of easy stages. See Statics of Buoys and Vessels.<br />

Finally, the static analysis can also be turned into a steady state analysis by specifying non-zero starting velocity on<br />

the General Data form. This is useful when modelling towed systems or other systems that have a steady velocity.<br />

5.5.1 Line Statics<br />

When you do a static analysis <strong>OrcaFlex</strong> does static analyses for each line in the model.<br />

Note: The lines are analysed in the order they appear in the by types view of the model browser. So if you<br />

are having a problem with the static analysis of a particular line, and there are a lot of lines in the<br />

model, then you can make investigation of the problem easier by dragging the line up to the top of<br />

the list in the model browser.<br />

The static analysis of a given line has two steps:<br />

Line Statics Step 1<br />

The first step calculates a configuration of the line (i.e. positions for all the nodes on the line), using the method<br />

specified on the line data form (either Catenary, Spline, Quick, Prescribed, or User Specified).


Theory, Static Analysis<br />

Line Statics Step 2<br />

128<br />

w<br />

The second step, which is optional, is called Full Statics. If Full Statics is included, then it calculates the true<br />

equilibrium position of the line. The calculation is iterative and hence it needs a starting configuration – for this it<br />

uses the configuration found by step 1. If Full Statics is not included, then the line is simply left in the configuration<br />

found by step 1, which (depending on the method chosen) may not be an equilibrium position.<br />

Unstable equilibria<br />

Sometimes Line Statics Step 2 finds an equilibrium configuration that is unstable. Everyday examples of unstable<br />

equilibria include balancing a coin on its edge or balancing a pencil on its tip.<br />

Very occasionally <strong>OrcaFlex</strong> statics converges on an unstable equilibrium. An unstable equilibrium can usually be<br />

detected by the presence of large curvature spikes on a range graph. Typically a dynamic run will excite the line<br />

enough to kick it out of the unstable equilibrium. However, statics and dynamics results from such unstable<br />

equilibria are invalid.<br />

Catenary<br />

The Catenary method calculates the equilibrium position of the line, but it ignores the effects of bending and<br />

torsional stiffness of the line or its end terminations.<br />

The Catenary method also ignores contact forces between the line and any solid shapes in the model, but it does<br />

include all other effects, including weight, buoyancy, axial elasticity, current drag and seabed touchdown (see<br />

below) and friction.<br />

Because bend stiffness (and other) effects are not included in the Catenary method, the position found is not, in<br />

general, an equilibrium position. Therefore Full Statics should normally be included unless it is known that the<br />

omitted effects are unimportant. Nevertheless, the Catenary position is often quite close to the true equilibrium<br />

position, especially when bend stiffness is not a major influence.<br />

The Catenary algorithm is robust and efficient for most realistic cases but it cannot handle cases where the line is in<br />

compression. This is because, when bending stiffness is ignored, compression means the line is slack and there is no<br />

unique solution.<br />

The algorithm is an iterative process that converges on the solution. If necessary, you can control the maximum<br />

number of iterations that are attempted, as well as other aspects of the convergence process – see Catenary<br />

Convergence.<br />

The Catenary solution has facilities for including seabed touchdown, with the following limitations:<br />

� Seabed touchdown can only be included at End B of the line, not at End A. Therefore, if you want touchdown<br />

then you should arrange it to be at End B.<br />

� Touchdown is only included if End B is anchored exactly on, or else below, the seabed. If End B is above the<br />

seabed, even if only by a small amount, then no touchdown will be modelled and the line may hang below the<br />

seabed. This will be corrected when the simulation starts, since the nodes below the seabed will be pushed back<br />

up by the seabed reaction forces. Alternatively, you should use the Full statics option, which can handle this<br />

case.<br />

� If End B is below the seabed, then the Catenary algorithm models touchdown by assuming that the line 'levels<br />

out' at the level of End B. This will result in part of the line being below the seabed, but again this will be<br />

corrected when the simulation starts, since the nodes below the seabed will be pushed back up by the seabed<br />

reaction forces.<br />

Spline<br />

The Spline method gives the line an initial shape that is based on a user-defined smooth Bezier spline curve. It is<br />

therefore not, in general, an equilibrium position, and so when it is used Full Statics should be included if you want<br />

the equilibrium position to be found.<br />

The Bezier curve is specified by the user giving a series of control points – it is a curve that tries to follow those<br />

control points – and the Bezier curve and its control points (marked by +) can be seen on the 3D view when in Reset<br />

state. The smoothness of the spline can be controlled using the spline order.<br />

The Spline method puts the line into a position that, as far as possible, follows the Bezier curve. However the Bezier<br />

curve may have the wrong length (depending on how accurately you have set up the control points), so the Spline


w<br />

129<br />

Theory, Static Analysis<br />

method scales the Bezier spline curve up or down until the resulting line shape has the correct As Laid Tension, as<br />

specified on the line data form.<br />

Quick<br />

The Quick method simply leaves the line in the position that it was drawn when in Reset state. This is a crude<br />

catenary shape that (for speed reasons) ignores most effects, including buoyancy, drag, bending and torsional<br />

stiffness, and interaction with seabed and solids. In fact the position set by the Quick method only allows for the<br />

line's average weight per unit length and axial elasticity, so it is not usually an equilibrium position (though for<br />

simple cases it may be quite close). The Quick method should usually be used only as a preliminary to Full Statics.<br />

Prescribed<br />

The Prescribed method is intended primarily for pull-in analyses. It provides a convenient way of setting the line up<br />

in the as laid (i.e. pre pull-in) starting position, ready for a time simulation of the pull-in. The starting shape of the<br />

line is specified by defining a track on the seabed (see Prescribed Starting Shape). The track is defined as a sequence<br />

of track sections each of which is a circular arc of user-specified length and angle of turn and the line is laid along<br />

this track. See Laying out the Line.<br />

Start<br />

of track<br />

End A<br />

Azimuth = 10�<br />

Track Section 1<br />

Length = 150<br />

Turn = 0 Track section 2<br />

Length = 100<br />

Turn = -90<br />

10��<br />

Track section 3<br />

Length = 100<br />

Turn = 90<br />

Figure: Plan View of Example Track<br />

User Specified Starting Shape<br />

Track Section 4<br />

Length = 150<br />

Turn = 0<br />

Y<br />

X<br />

Continuation of<br />

last track section<br />

The User Specified Starting Shape statics method involves no calculation. Instead you specify a position for each<br />

node and the node is placed there. If torsion is modelled then node orientations can also be specified.<br />

This statics method allows you to restart calculations using line configurations that have been calculated by<br />

separate <strong>OrcaFlex</strong> calculations. For example you could perform an in-place analysis of a line using its configuration<br />

as calculated by an earlier pull-in analysis.<br />

To perform a restart this way you usually need to disable Full Statics and Whole System Statics. One way to do this is<br />

to set the statics convergence tolerances to large values, e.g. 1e6.<br />

Warning: We recommend that User Specified Statics is only used in this way to perform restarts. Full Statics<br />

or Whole System Statics used in conjunction with User Specified Statics commonly results in slow<br />

and troublesome statics convergence.<br />

Full Statics<br />

The Full Statics calculation is a line statics calculation that includes all forces modelled in <strong>OrcaFlex</strong>. In particular it<br />

includes the effects of bend stiffness and interaction with shapes. These effects are omitted from the Catenary<br />

calculation, and this sometimes results in significant shock loads at the start of the simulation, when the effects of<br />

bend stiffness and shapes are introduced. Because the Full Statics calculation includes these effects, no such shock<br />

loads should occur when it is used. We therefore recommend using Full Statics for most cases.


Theory, Static Analysis<br />

130<br />

w<br />

To use Full Statics set the Step 2 Statics Method to Full on the Line data form. Full statics needs a starting shape for<br />

the line, and it uses the specified Step 1 Statics Method to obtain this; it then finds the equilibrium position from<br />

there. You should therefore set the Step 1 Statics Method to give a reasonable starting shape, choosing either<br />

Catenary, Prescribed, Quick or Spline.<br />

Which Step 1 Statics Method you should choose depends on the model in question. In general you should choose the<br />

method that gives the best initial estimate of the line's static position. For lines with no buoyant sections and no<br />

interaction with shapes or the seabed, the Quick method may well suffice. If there is seabed interaction or a buoyant<br />

section then Catenary might be better. For lines that interact with a shape, the Spline method is perhaps best since it<br />

enables you to ensure that the line starts on the correct side of the shape.<br />

Which method to use<br />

The settings to use for the line data items Step 1 Statics Method and Step 2 Statics Method depend on the type of<br />

system being modelled and the type of static position wanted.<br />

The default settings (for a new line) are the Catenary method followed by Full Statics. This is often a good choice,<br />

since the Catenary method is fast and in many case gives a good initial estimate of the equilibrium position. It<br />

therefore often provides a good starting point for the Full Statics calculation, which then refines the position to take<br />

into account the effects that the Catenary omits, such as bending and torsional stiffness and interaction with solids.<br />

There are situations where you may need to use other settings. Some specific cases are described below, but first<br />

here are some general points to bear in mind.<br />

Full Statics should be included if you want the true equilibrium position to be found.<br />

When Full Statics is included, the first stage Statics Method is only used to give the initial starting shape for Full<br />

Statics. The choice of Statics Method is then, in principle, not important, since the final position found will be the<br />

equilibrium position, irrespective of the initial starting position. However it is normally best to choose the Statics<br />

Method that gives the best initial estimate of the desired equilibrium position, since this will give the best starting<br />

position for Full Statics to work from.<br />

There are some cases where the choice of Statics Method is important. Firstly, in cases where there may be more<br />

than one equilibrium position, the Full Statics calculation will tend to find the one that is closest to the initial starting<br />

position found by the Statics Method. Secondly, the Full Statics calculation is iterative and may have difficulty<br />

converging if the initial Statics Method position from which it starts is a long way from the true equilibrium position.<br />

In both these situations, it is generally best to choose the Statics Method that gives the best initial estimate of the<br />

desired equilibrium position.<br />

Catenary convergence failure<br />

The Catenary method is iterative and may fail to converge. It may be possible to solve this by adjusting the Catenary<br />

Convergence Parameters on the line data form. If this proves difficult, then an alternative is to use one of the other<br />

statics methods. The Quick method may suffice, or alternatively the Spline method may be needed. Providing Full<br />

Statics is included then the final static position found will be the same.<br />

Full Statics Convergence Failure<br />

Full Statics is also an iterative calculation and may sometimes fail to converge. The convergence process is<br />

controlled by the Full Statics Convergence Parameters on the line data form so it may be possible to obtain<br />

convergence by adjusting some of those parameters.<br />

However, the problem may be due to the initial starting position obtained by the specified statics method being a<br />

long way from the equilibrium position. In this case it may be necessary for the user to specify the Spline statics<br />

method and specify control points that give a good starting shape for the Full Statics.<br />

Note: When setting up the spline control points, it is often useful to first set Full Statics to "No". This<br />

allows you to examine and refine the spline shape, by running the static analysis and adjusting the<br />

control points until the spline shape is close to the desired shape. You can then set Full Statics back<br />

to "Yes" in order to find the true equilibrium position.<br />

Contact With Solids<br />

The Catenary and Quick methods both ignore contact with solids and so they may well give a poor initial position for<br />

the Full Statics to work on. As a result the Full Statics calculation may fail to converge, or else converge to the wrong<br />

equilibrium position (e.g. one in which the line is on the wrong side of the solid). In both these cases it may be better


w<br />

131<br />

Theory, Dynamic Analysis<br />

for the user to select the Spline method and then specify control points that give an initial shape that is close to the<br />

desired equilibrium position.<br />

Pipeline Pull-In<br />

For a pipe lying on the seabed there are usually many equilibrium positions, since seabed friction will often be able<br />

to hold the pipe in the shape it was originally laid. For pull-in analysis this originally-laid shape is generally known,<br />

and the Prescribed method can be used to define this shape.<br />

It is then optional whether Full Statics is included or not. Normally, it would not be included. If it is included then it<br />

will have no effect if the Prescribed position is already in equilibrium – i.e. if friction is sufficient to hold the pipe in<br />

that position. But if friction is not sufficient then Full Statics will tend to find a nearby position that is in equilibrium.<br />

5.5.2 Buoy and Vessel Statics<br />

Each buoy and vessel can be either included or excluded from the static analysis. This is controlled by the data item<br />

Included in Static Analysis on the object's data form.<br />

Notes: You can also use the Buoy Degrees of Freedom Included In Static Analysis data item, on the General<br />

data form, to include or exclude all buoys with a single setting.<br />

Also, for 6D Buoys, you can include just the translational degrees of freedom (X,Y,Z) and exclude the<br />

rotational degrees of freedom. This is sometimes useful as an aid to convergence.<br />

If a buoy is excluded from the static analysis, then when the static analysis is done <strong>OrcaFlex</strong> will simply place the<br />

buoy in the Initial Position specified on the buoy data form. This will not, in general, be the equilibrium position. The<br />

same applies to vessels.<br />

If any buoys or vessels are included in the static analysis, then the static analysis finds the equilibrium position of<br />

those buoys and vessels, using an iterative procedure.<br />

This iterative procedure usually converges successfully, but in some cases there can be difficulties. To give the best<br />

chance of convergence you should specify buoy and vessel initial positions that are good estimates of the true<br />

equilibrium position. Often you can obtain good estimates by running static analyses of a simplified model and then<br />

using the buoy positions found as the initial positions for the more complex model. There is a button on the general<br />

data form for this purpose – see Use Calculated Positions.<br />

Note: As an aid to static analysis, the out-of-balance forces on buoys and vessels can be drawn on the 3D<br />

view.<br />

If necessary, you can also control the buoy convergence process using the statics convergence parameters on the<br />

general data form.<br />

5.5.3 Vessel Multiple Statics<br />

You can use the Multiple Statics command on the Calculation menu to perform a series of static analyses for a grid of<br />

different positions of a vessel. This feature is mainly intended for use in mooring analyses.<br />

The user specifies a series of regularly spaced positions for one vessel in the model and <strong>OrcaFlex</strong> then carries out<br />

separate static analyses for each of these vessel positions. Key results, for example load-offset curves, are then made<br />

available in the form of tables and graphs as a function of the offset distance.<br />

The vessel positions are specified by a series of offsets about the vessel's initial position (see Vessel Multiple Statics<br />

Data).<br />

Note: If the offset vessel has "Included in Static Analysis" set to "Yes" then in Multiple Statics this setting<br />

will be ignored (for the offset vessel only) and the vessel will be placed as specified by the offsets.<br />

See Vessel Data.<br />

If the static calculation fails to converge for a particular offset then this is noted in the Statics Progress Window and<br />

the program continues to the next offset. No results are given for offsets with failed statics.<br />

When the calculation is completed the program enters Multiple Statics Complete state. Results can only be viewed<br />

in this state and are lost upon Reset. Results cannot be saved. A dynamic simulation cannot be carried out after<br />

multiple statics – you must Reset first.


Theory, Dynamic Analysis<br />

5.6 DYNAMIC ANALYSIS<br />

132<br />

w<br />

The dynamic analysis is a time simulation of the motions of the model over a specified period of time, starting from<br />

the position derived by the static analysis.<br />

The period of simulation is defined as a number of consecutive stages, whose durations are specified in the data.<br />

Various controlling aspects of the model can be set on a stage by stage basis, for example the way winches are<br />

controlled, the velocities and rates of turn of vessels and the releasing of lines, links and winches. This allows quite<br />

complex operational sequences to be modelled.<br />

Before the main simulation stage(s) there is a build-up stage, during which the wave and vessel motions are<br />

smoothly ramped up from zero to their full size. Ramping of current is optional (see Current Data). This gives a<br />

gentle start to the simulation and helps reduce the transients that are generated by the change from the static<br />

position to full dynamic motion. This build-up stage is numbered 0 and its length should normally be set to at least<br />

one wave period. The remaining stages, simply numbered 1, 2, 3, … are intended as the main stages of analysis.<br />

Time is measured in <strong>OrcaFlex</strong> in seconds. To allow you to time-shift one aspect of the model relative to the others,<br />

different parts of the <strong>OrcaFlex</strong> model have their own user-specified time origins. See the diagram below.<br />

For example, simulation time is measured relative to the simulation time origin, which is specified on the Wave page<br />

on the environment data form. The simulation time origin is at the end of the build-up stage, so negative simulation<br />

time is the build-up stage and the remaining stages are in positive simulation time. The figure below shows a<br />

simulation using a build-up of 10 seconds, followed by two stages of 15 seconds each.<br />

Each wave train also has its own time origin, and similarly for time-varying wind and any time history files that you<br />

use. All of these time origins are defined relative to the global time origin (which is not user-specified), so if<br />

necessary you can use the time origins to time-shift one aspect of the model relative to the others.<br />

By default all of the time origins are zero, so all of the time frames coincide with global time. For most cases this<br />

simple situation is all you need, but here is an example where you might want to adjust a time origin.<br />

� You might want to arrange that a wave crest, or a particularly large wave in a random sea, arrives at your vessel<br />

at a particular point in the simulation. If you use the View Profile facility and find that the wave arrives at the<br />

vessel at global time 2590s, then you can arrange that this occurs at simulation time 10s (i.e. 10 seconds into<br />

stage 1) by either setting the simulation time origin to 2580 or else setting the wave train time origin to -2580.<br />

The former shifts the simulation forwards to when the wave occurs, whereas the latter shifts the wave back to<br />

the period the simulation covers.


w<br />

Static Starting<br />

Position<br />

Simulation<br />

Time<br />

Origin<br />

Stage 1<br />

-10 0 15<br />

T=0<br />

Global<br />

Time<br />

Origin<br />

Build-up<br />

Figure: Time and Simulation Stages<br />

5.6.1 Calculation Method<br />

0<br />

Time-history<br />

Time<br />

Origin<br />

Stage 2<br />

133<br />

End of<br />

Simulation<br />

0<br />

30<br />

Wave Train<br />

Time<br />

Origin<br />

Simulation<br />

Time t<br />

Wave Train Time<br />

Time-history Time<br />

Global Time T<br />

Theory, Dynamic Analysis<br />

<strong>OrcaFlex</strong> implements two complementary dynamic integration schemes, Explicit and Implicit, as described below.<br />

Equation of motion<br />

The equation of motion which <strong>OrcaFlex</strong> solves is as follows:<br />

where<br />

M(p,a) + C(p,v) + K(p) = F(p,v,t)<br />

M(p,a) is the system inertia load.<br />

C(p,v) is the system damping load.<br />

K(p) is the system stiffness load.<br />

F(p,v,t) is the external load.<br />

p, v and a are the position, velocity and acceleration vectors respectively.<br />

t is the simulation time.<br />

Both schemes recompute the system geometry at every time step and so the simulation takes full account of all<br />

geometric non-linearities, including the spatial variation of both wave loads and contact loads.<br />

Explicit integration scheme<br />

The explicit scheme is forward Euler with a constant time step. At the start of the time simulation, the initial<br />

positions and orientations of all objects in the model, including all nodes in all lines, are known from the static<br />

analysis. The forces and moments acting on each free body and node are then calculated. Forces and moments<br />

considered include:<br />

� weight<br />

� buoyancy<br />

� hydrodynamic and aerodynamic drag


Theory, Dynamic Analysis<br />

134<br />

w<br />

� hydrodynamic added mass effects, calculated using the usual extended form of Morison's Equation with userdefined<br />

coefficients<br />

� tension and shear<br />

� bending and torque<br />

� seabed reaction and friction<br />

� contact forces with other objects<br />

� forces applied by links and winches<br />

The equation of motion (Newton's law) is then formed for each free body and each line node:<br />

M(p)a = F(p,v,t) - C(p,v) - K(p)<br />

This is not the system-wide equation of motion described above, but a local equation of motion for each free body<br />

and each line node. This means that solving these equations of motion merely requires the inversion of 3 by 3 or 6<br />

by 6 mass matrices.<br />

This equation is solved for the acceleration vector at the beginning of the time step, for each free body and each line<br />

node, and then integrated using forward Euler integration. Let us denote the position, velocity and acceleration at<br />

time step t by pt, vt and at respectively. Then the values at the end of the time step, at time t+1, are given by:<br />

vt+1 = vt + dt.at<br />

pt+1 = pt + dt.vt+1<br />

where dt is the time step.<br />

At the end of each time step, the positions and orientations of all nodes and free bodies are again known and the<br />

process is repeated.<br />

The time step required for stable integration is typically very short and <strong>OrcaFlex</strong> gives guidance on an appropriate<br />

time step. Hydrodynamic and aerodynamic forces typically change little over such a short time interval, and are<br />

time-consuming to compute. To save computing time, these loads are updated only over a longer outer time step.<br />

Both time steps are user-defined and may be set equal for critical cases.<br />

Of the various objects available in <strong>OrcaFlex</strong>, Lines are the most computationally demanding. For most models that<br />

include lines, the length of time required for dynamic analysis is approximately proportional to the total number of<br />

nodes used multiplied by the total number of inner time steps in the whole simulation. If the time step is maintained<br />

at the recommended value and nodes are distributed uniformly along the lines, then the run time is approximately<br />

proportional to the square of the number of nodes.<br />

Finite element models may contain spurious high frequency response, a feature inherent in the finite element<br />

method. The Line Target Damping data can be used to damp out this high frequency noise.<br />

Implicit integration scheme<br />

For implicit integration <strong>OrcaFlex</strong> uses the Generalised-α integration scheme as described by Chung and Hulbert.<br />

The forces, moments, damping, mass etc. are calculated in the same way as for the explicit scheme. Then the system<br />

equation of motion is solved at the end of the time step.<br />

Because p, v and a are unknown at the end of the time step an iterative solution method is required. Consequently<br />

each implicit time step consumes significantly more computation time than an explicit time step. However, the<br />

implicit scheme is typically stable for much longer time steps than the explicit scheme and often this means that the<br />

implicit scheme is faster.<br />

Numerical damping of the integration scheme<br />

Finite element models may contain spurious high frequency response, a feature inherent in the finite element<br />

method. The Generalised-α integration scheme has controllable numerical damping which is desirable since it<br />

removes this spurious, non-physical high frequency response. This numerical damping also leads to much more<br />

stable convergence and hence allows for longer time steps and much faster simulations.<br />

Any integration scheme which includes numerical damping of high frequency response must be careful to avoid<br />

damping response at lower frequencies. The Generalised-α integration scheme is designed to minimise the low<br />

frequency damping.


w<br />

135<br />

Theory, Friction Theory<br />

The numerical damping is determined by specifying the level of high frequency dissipation, ρ∞. <strong>OrcaFlex</strong> uses a<br />

built-in value of 0.4 which has been chosen to give fast simulation run times without compromising accuracy.<br />

5.6.2 Ramping<br />

Simulation time is reduced by the use of a build up time at the beginning of the simulation. During the build-up time<br />

the wave dynamics, vessel motions and optionally the current are built up smoothly from zero to their full level. This<br />

gives a gentle start to the simulation which reduces transient responses and avoids the need for long simulation<br />

runs. The build-up stage should normally be set to at least one wave period. Negative time is shown during the<br />

simulation to indicate the build-up time; so time before time zero is build up time, time after time zero is normal<br />

simulation with the full specified excitation.<br />

When using a time domain VIV model, ramping is also used to smooth the handover from the standard Morison drag<br />

force applied in statics to the force given by the VIV model.<br />

The ramping factor is calculated as follows:<br />

Ramping Factor = r 3 (6r 2 -15r + 10)<br />

where r is the proportion of the build-up stage completed, given by:<br />

Ramping Factor<br />

r = (Time + Length of Stage 0) / (Length of Stage 0)<br />

Note: Time is negative throughout the build-up stage.<br />

1<br />

0.9<br />

0.8<br />

0.7<br />

0.6<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

0<br />

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1<br />

Figure: The <strong>OrcaFlex</strong> ramping function<br />

r<br />

This particular ramping function has been chosen so that its first and second derivatives are zero at the beginning<br />

and end of the build-up stage.<br />

5.7 FRICTION THEORY<br />

<strong>OrcaFlex</strong> provides a simple friction model that can give an approximate representation of contact friction. This is<br />

commonly used to model seabed friction, friction on mid-water arches, guide tube friction etc.<br />

Seabed friction<br />

In reality seabed interaction is much more complicated than simple friction – it involves effects such as the soil<br />

being displaced by the line as it moves, accumulation of soil in front of the line, etc. To model seabed interaction<br />

accurately would require much more information about the soil structure and would involve modelling the soil itself<br />

which is beyond the scope of <strong>OrcaFlex</strong>.


Theory, Friction Theory<br />

Overview of the <strong>OrcaFlex</strong> friction model<br />

136<br />

w<br />

<strong>OrcaFlex</strong> models friction for contact with the seabed or elastic solids. Hereafter we use the term solid to refer to<br />

either the seabed or elastic solids. The objects which can contact with solids are Lines, 3D Buoys and 6D Buoys.<br />

Note: Friction for contact with elastic solids is only included during dynamics.<br />

Friction is modelled as Coulomb friction in the solid plane. Every object which is in contact with a solid keeps track<br />

of a friction target position (discussed below) and a friction force is applied at which acts towards this target<br />

position.<br />

The standard Coulomb friction model states that a friction force of μR is applied, where μ is the friction coefficient<br />

and R is the contact reaction force. However, this model results in a discontinuous Force / Deflection relationship<br />

which would be impossible for a program like <strong>OrcaFlex</strong> to solve. Instead we use a modified Coulomb model as<br />

illustrated below:<br />

Force<br />

�R<br />

��R<br />

Deflection<br />

-Dcrit<br />

Figure: Standard Coulomb and modified Coulomb friction models<br />

Force<br />

��R�<br />

��R<br />

+Dcrit<br />

Deflection<br />

In the modified Coulomb friction model the transition from a friction force of -μR to +μR takes place as a linear<br />

variation over the deflection range -Dcrit to +Dcrit. Here Dcrit is given by:<br />

where<br />

Dcrit = μR / (KsA)<br />

Ks is the shear stiffness data item.<br />

A is the contact area.<br />

The friction force can be thought of as being ramped from 0 to a maximum value of μR as the deflection increases.<br />

Higher values of Ks lead to the ramping taking place over a shorter distance, and vice versa.<br />

Calculation of friction coefficient<br />

The friction coefficient μ is defined as follows:<br />

� For contact between Lines and the seabed the friction coefficient is defined on the Line Type data.<br />

� For contact between 3D Buoys and the seabed the friction coefficient is defined on the 3D Buoy data.<br />

� For contact between 6D Buoys and the seabed the friction coefficient is defined on the 6D Buoy data.<br />

� For contact between Lines, 3D Buoys and 6D Buoys and elastic solids the friction coefficient is defined on the<br />

Solid Friction Coefficients data form.<br />

For line friction, both normal and axial coefficients can be defined. If these values are different, <strong>OrcaFlex</strong> uses a<br />

single value of μ defined as:


w<br />

where<br />

μ = magnitude of the vector μnDn + μaDa<br />

D = unit vector in the plane of the solid, from the node towards the target position.<br />

Dn, Da = the vector components of D in the node's normal and axial directions.<br />

Target positions in statics<br />

Friction is only applied in statics for contact between lines and the seabed.<br />

137<br />

Theory, Friction Theory<br />

If the Step 1 Statics Method is Prescribed then the target positions are laid out along the prescribed shape.<br />

For all other Step 1 Statics Methods the target positions are laid along the seabed in the direction specified by the<br />

Lay Azimuth direction.<br />

The distance between each target position is determined by the unstretched segment length and the As Laid<br />

Tension. If each node was to sit at its target position then the effective tension throughout the line would be the As<br />

Laid Tension.<br />

Target positions in dynamics<br />

During dynamics, at the end of each time step, each friction target position is updated using the following rules:<br />

� At the start of the dynamic simulation, for lines in contact with the seabed, the target position from statics is<br />

used. Otherwise the target position is set equal to the contact position.<br />

� If an object is not in contact then the target position is not defined since no friction is applied.<br />

� If an object has just come into contact then the target position is set equal to the contact position.<br />

� If the target position is a distance greater than Dcrit from the contact position then the target position is placed at<br />

a distance exactly Dcrit from the contact position on the vector D, as shown in the following figure. This can be<br />

thought of as 'dragging' the target position towards the contact position.<br />

� Otherwise the target position is not modified.<br />

New Target position<br />

Vector D<br />

Contact position<br />

position<br />

Old Target position<br />

Circle of<br />

radius Dcrit<br />

Figure: Updating friction target positions during dynamics<br />

Moments induced by friction (Lines)<br />

The friction force is applied at the point of contact with the solid.<br />

For lines this is at the line outer edge as defined by the contact diameter. Moments in <strong>OrcaFlex</strong> are reported at the<br />

centreline and so the moment arm effect of applying the friction force at the outer edge results in a moment being<br />

applied to the node. The applied moment is given by the vector cross-product p×F, where p is the point of contact<br />

relative to the node origin and F is the applied friction force.<br />

This frictional moment effect can most easily be visualised by considering a pipe being dragged laterally across a<br />

surface with friction. It is intuitively obvious that the friction force will result in the pipe being twisted.<br />

Note: This effect is only modelled if torsion is included in the model.


Theory, Spectral Response Analysis<br />

Moments induced by friction (3D and 6D Buoys)<br />

Since 3D Buoys do not have rotational degrees of freedom, no such moments are applied.<br />

138<br />

w<br />

For 6D Buoys the friction force is applied at each vertex in contact with the solid. If the vertex if offset from the buoy<br />

origin then the appropriate moment, about the buoy origin, will be generated.<br />

Shear damping<br />

Objects moving in the solid plane may also experience a damping force. Let d be the distance between the contact<br />

position and the target position. If 0 ≤ d ≤ Dcrit then a damping force in the solid plane is applied to the object with<br />

magnitude given by:<br />

where<br />

D = S.min(2λ(MKA) ½ Vs, μR)<br />

S is a scaling factor given by 1 - (d/Dcrit),<br />

λ is percentage of critical contact damping / 100,<br />

M is the mass of the object,<br />

K is the solid normal stiffness,<br />

A is the contact area,<br />

Vs is the component of velocity in the solid plane.<br />

5.8 SPECTRAL RESPONSE ANALYSIS<br />

The Spectral Response Analysis capability of <strong>OrcaFlex</strong> provides a facility for determining the response<br />

characteristics for any <strong>OrcaFlex</strong> results variable. This feature produces output similar to a frequency domain<br />

package but the calculation is based on a random wave time domain simulation. The results of this simulation are<br />

transformed into the frequency domain using a Fast Fourier Transform (FFT) and the spectral response is then<br />

derived. The final output of the analysis is an RAO for the results variable of interest.<br />

Time domain random wave for spectral response analysis<br />

In order to calculate spectral response you must first perform a random wave time domain simulation of the system<br />

of interest. To do this you must specify a single wave train with wave type of Response Calculation. The random<br />

wave used has a truncated white noise spectrum, which has the energy spread evenly over a user-specified range of<br />

frequencies.<br />

Spectral response calculation details<br />

The spectral response analysis starts from the time history of some results variable of interest. The time history<br />

covers the response calculation simulation period as specified on the General Data form. The duration of this period<br />

together with the logging interval, t, determine the total number of samples available for the FFT.<br />

<strong>OrcaFlex</strong> does not necessarily use all the available samples. This is because the FFT calculation is slow when<br />

presented with a time history whose size is a large prime, or is a product of large primes.<br />

Suppose that N is the total number of available samples. <strong>OrcaFlex</strong> will choose M with the properties that that M ≤ N<br />

and the FFT can be calculated quickly and efficiently for M samples. Having chosen M, <strong>OrcaFlex</strong> then selects the M<br />

samples from the original time history that are closest to the end of the simulation.<br />

<strong>OrcaFlex</strong> then calculates the power spectral density (PSD) of these M time history samples using the FFT. The PSD is<br />

denoted as the sequence (fi, Pi) for i = 1, 2, …, M/2 where Pi is understood to be the PSD for frequency fi. The values<br />

of fi are integer multiples of the FFT's fundamental frequency, Δf = 1/(tM), given by fi = iΔf. The maximum frequency<br />

equals (M/2)Δf = 1/(2t). This frequency is known as the Nyquist critical frequency.<br />

The RAO is calculated as<br />

Ri = (Pi/Si) ½ , for i = 1, 2, …, M/2<br />

where Ri is the RAO at frequency fi and Si is the spectral density at frequency fi for the response calculation random<br />

wave.<br />

Notes: Provided that a Response Calculation wave type has been selected the Waves page of the<br />

Environment data form reports the value of M. This takes the form of a text label which says "The<br />

response calculation will use M data points".


w<br />

139<br />

Theory, Extreme Value Statistics Theory<br />

Only the frequencies which lie in the target frequency range are used for wave components.<br />

Because of this there may be fewer than M/2 wave components.<br />

Spectral response random wave components<br />

It is important that the random wave components have frequencies which match those produced by the FFT. This is<br />

because of a phenomenon of the FFT known as frequency leakage which would occur if the random wave<br />

component frequencies did not match the FFT frequencies. The effect of leakage is to make the output of the FFT<br />

noisy.<br />

The response calculation wave components are selected with frequencies that are also integer multiples of Δf. In this<br />

way the frequency leakage effect is avoided.<br />

Not all these frequencies are used in the response calculation random wave. This is because there could potentially<br />

be so many frequencies (i.e. for large values of M/2) that the real-time required to simulate a wave with that many<br />

components would be prohibitive. The user controls the range of frequencies to be used with the Target Frequency<br />

Range data on the Environment data form.<br />

Comparison with traditional frequency domain methods<br />

For frequency domain approaches to calculating system responses each non-linearity in the system has to be<br />

handled in special ways. However, by calculating the RAOs using a fully non-linear time domain simulation and then<br />

transforming to the frequency domain using Fourier transform methods, the non-linearities are included in the<br />

calculation automatically.<br />

The advantage of the method used by <strong>OrcaFlex</strong> is that non-linearities can be handled implicitly without the need for<br />

special, bespoke linearisation techniques.<br />

5.9 EXTREME VALUE STATISTICS THEORY<br />

The theory for the calculation of the extreme value statistics results provided by <strong>OrcaFlex</strong> depends on which<br />

extreme value statistics distribution is chosen:<br />

� The Rayleigh distribution method uses a direct calculation, based on the spectral moments of all the data.<br />

� The Weibull and Generalised Pareto (GPD) distributions are fitted to selected extremes of the data, with the<br />

extremes being selected using the peaks-over-threshold method, with declustering to reduce dependence<br />

between the selected extremes. The Weibull or GPD distribution is then fitted to those extremes using the<br />

maximum likelihood method.<br />

Rayleigh Distribution<br />

The derivation and use of spectral moments to fit the Rayleigh distribution is described in detail by Ochi (he calls it<br />

the "exact method"). For the Rayleigh distribution to be appropriate for the peak responses, the response variable<br />

must be a stationary Gaussian process.<br />

Ochi shows that, under the Gaussian assumption, the most probable maximum value occurring in storm duration T is<br />

given by<br />

μ + σ[2ln(n)] ½<br />

where n = T/Tz is the number of peaks and μ, σ and Tz are the mean, standard deviation and mean up-crossing<br />

period, respectively, of the time history being analysed. <strong>OrcaFlex</strong> reports this most probable extreme value for the<br />

specified storm duration.<br />

Ochi goes on to show that, for low values of risk parameter α, the extreme value which will be exceeded only with<br />

probability α is<br />

μ + σ[2ln(n/α)] ½<br />

However this latter formula is approximate and is valid only for low values of α. So <strong>OrcaFlex</strong> instead calculates the<br />

extreme value which will be exceeded with probability α using the alternative formula<br />

μ + σ[2ln(-n/ln{1-α})] ½<br />

Ochi derives this formula using Cramér's approximation method in his paper On Prediction of Extreme Values, and it<br />

gives good results over the whole range of values of risk factor α.<br />

Note that all the above formulae are for maxima, i.e. analysing the upper tail extremes. Corresponding formulae for<br />

minima (lower tail) are trivially obtained by replacing the plus signs with minus signs in these formulae.


Theory, Extreme Value Statistics Theory<br />

Weibull and Generalised Pareto Distributions<br />

140<br />

w<br />

The Weibull and Generalised Pareto (GPD) distributions are both fitted using the maximum likelihood method. Both<br />

distributions are fitted to extremes of the data that are selected using the peaks-over-threshold method with<br />

(optional) declustering. They differ only in the actual statistical distribution that is fitted and then used to predict<br />

the extreme values.<br />

Maximum likelihood<br />

Maximum likelihood estimation is a standard general-purpose statistical technique for fitting a given parametric<br />

distribution to an arbitrary set of data. It fits the parameters of the distribution to the data by calculating the<br />

parameters that make the observed data most likely under the chosen distribution. The technique is widely<br />

described in statistical texts; in particular the book by Coles is particularly relevant, since he describes (Section<br />

4.3.2, Parameter Estimation) its application to the GPD. Coles also documents the motivation for, and<br />

implementation of, the peaks-over-threshold method (Chapter 4, Threshold Models) and declustering (5.3, Modelling<br />

Stationary Series).<br />

Threshold models<br />

When the object of primary interest is extrapolation into the tails of the data, it is safest to use a model that is fitted<br />

only to the tails of the data. This is because models that are fitted to the entire dataset tend to be driven by features<br />

in the body of the data, which may not be relevant to the tail behaviour. Mathematical theory (e.g. Coles, Theorem<br />

4.1) tells us that as the size of the dataset and the threshold for fitting increase, the peaks over the threshold<br />

converge in distribution to a Generalised Pareto distribution.<br />

Declustering<br />

An important assumption underpinning the maximum likelihood method is that the data are independent. However,<br />

this is often not the case. Consider daily temperature for example, where one cold day is likely to be followed by<br />

another: successive daily values are not independent, but values a week or a month apart might well be considered<br />

independent. For <strong>OrcaFlex</strong> time history results this is even more important, since unless the log interval is<br />

extremely long, then successive time history values will certainly not be independent.<br />

We can get much closer to independence by sub-sampling the data, ensuring that the points we choose are<br />

sufficiently far apart as to be approximately independent. The usual way to do this is declustering: <strong>OrcaFlex</strong> uses<br />

either runs declustering as illustrated by Coles (5.3.3, Wooster Temperature Series), or defines a cluster to be the set<br />

of values between successive up-crossings of the mean value.<br />

The complete model-fitting process is then summarised as:<br />

1. Use declustering to identify clusters of exceedences.<br />

2. Determine the maximum excess within each cluster.<br />

3. Assuming independence between these maxima, use maximum likelihood to fit the chosen distribution to them.<br />

Weibull distribution<br />

<strong>OrcaFlex</strong> fits the two-parameter Weibull distribution with distribution function<br />

FW2(y) = 1 - exp{(-y/σ) ξ }<br />

to the declustered excesses over threshold, y, where<br />

σ = Weibull distribution scale parameter<br />

ξ = Weibull distribution shape parameter.<br />

This is equivalent to applying the three-parameter Weibull distribution<br />

FW3(x) = 1 - exp[{-(x-μ)/σ} ξ ]<br />

to the original values x unadjusted for the threshold (i.e. x=μ+y), where the location parameter μ is the userspecified<br />

threshold value and is not fitted by the maximum likelihood calculation.<br />

Generalized Pareto distribution<br />

The Generalized Pareto distribution function, for the excesses y above threshold, is<br />

FGPD(y) = 1 - (1+ξy/σ)+ -1/ξ for ξ≠0, where (1+ξy/σ)+ = max(0, 1+ξy/σ)<br />

FGPD(y) = 1 - exp(-y/σ) for ξ=0


w<br />

where<br />

σ = GPD scale parameter<br />

ξ = GPD shape parameter.<br />

5.10 ENVIRONMENT THEORY<br />

5.10.1 Buoyancy Variation with Depth<br />

141<br />

Theory, Environment Theory<br />

The buoyancy of an object is normally assumed to be constant and not vary significantly with position. The<br />

buoyancy is equal to ρVg, where ρ is the water density, V is the volume and g is the acceleration due to gravity. In<br />

reality the buoyancy does vary due to the following effects:<br />

� If the object is compressible then its volume V will reduce with depth due to the increasing pressure.<br />

� The water density ρ can vary with position, either because of the compressibility of the water, or else because of<br />

temperature or salinity variations. Normally the density increases with depth, since otherwise the water column<br />

would be unstable (the lower density water below would rise up through the higher density water above).<br />

For buoys and lines these effects can be modelled in <strong>OrcaFlex</strong>.<br />

Note: The bulk modulus and density variation facilities in <strong>OrcaFlex</strong> only affect the buoyancy of objects.<br />

<strong>OrcaFlex</strong> does not allow for compressibility or density variation when calculating hydrodynamic<br />

effects such as drag, added mass, etc. The calculation of hydrodynamic effects use the<br />

uncompressed volume and a nominal sea density value, which is taken to be the density value at<br />

the sea density origin.<br />

Compressibility of Buoys and Lines<br />

All things are compressible to some extent. The effect is usually not significant, but in some cases it can have a<br />

significant effect on the object's buoyancy. To allow these effects to be modelled, you can specify the compressibility<br />

of a 3D Buoy, 6D Buoy or Line Type by giving the following data on the object's data form.<br />

Bulk Modulus<br />

The bulk modulus, B, specifies how the object's volume changes with pressure. If we denote by V the compressed<br />

volume of the object then V is given by:<br />

V = V0(1-P/B)<br />

where V0 is the uncompressed volume at atmospheric pressure, and P is the pressure excess over atmospheric<br />

pressure.<br />

The bulk modulus has the same units as pressure F/L 2 and the above formula can be thought of as saying that the<br />

volume reduces linearly with pressure, and at a rate that would see the object shrink to zero volume if the pressure<br />

ever reached B. For an incompressible object the bulk modulus is infinity, and this is the default value in <strong>OrcaFlex</strong>.<br />

The above formula breaks down when P>B. In this case <strong>OrcaFlex</strong> uses a compressed volume V of zero. However, the<br />

relationship between pressure and volume would become inaccurate well before the pressure exceeded the bulk<br />

modulus. In practise B is normally very large, so the object normally only experiences pressures that are small<br />

compared to B.<br />

5.10.2 Current Theory<br />

Extrapolation<br />

In the presence of waves, the current must be extrapolated above the still water level; in <strong>OrcaFlex</strong> we adopt the<br />

convention that the surface current applies to all levels above the still water level.<br />

If a sloping seabed is specified, the boundary is inconsistent with a horizontal current. This effect is not usually<br />

important and is uncorrected in <strong>OrcaFlex</strong>. The current at the greatest depth specified is applied to all greater depths.<br />

Interpolated Method<br />

Horizontal current is specified as a full 3D profile, variable in magnitude and direction with depth. The profile<br />

should be specified from the still water surface to the seabed. Linear interpolation is used for intermediate depths. If<br />

the specified profile does not cover the full depth then it is extrapolated (see Extrapolation above).


Theory, Environment Theory<br />

Power Law Method<br />

142<br />

w<br />

Current direction is specified and does not vary with depth. Speed (S) varies with position (X,Y,Z) according to the<br />

formula:<br />

where<br />

S = Sseabed + (Ssurface - Sseabed) x ((Z-Zseabed) / (Zsurface-Zseabed)) ^ (1/Exponent)<br />

Ssurface and Sseabed are the current speeds at the surface and seabed,<br />

Exponent is the power law exponent,<br />

Zsurface is the water surface Z level,<br />

Zseabed is the Z level of the seabed directly below (X,Y).<br />

Note: If Z is below the seabed (e.g. has penetrated the seabed) then the current speed is set to Sseabed<br />

and if Z is above the surface (e.g. in a wave crest) then current speed is set to Ssurface.<br />

5.10.3 Seabed Theory<br />

The seabed reaction force is the sum of a penetration resistance force in the seabed normal direction and a friction<br />

force in the direction tangential to the seabed plane and towards the friction target position. If explicit integration is<br />

used in the dynamic analysis then, in addition, seabed damping forces are applied in the normal and tangential<br />

directions.<br />

The penetration resistance force depends on the choice of seabed model used – for details see either Linear Seabed<br />

Model Theory or Non-linear Soil Model Theory. For details of the friction force see Friction Theory.<br />

Objects Affected<br />

3D buoys and 6D buoys, lines and drag chains interact with the seabed. Other objects are not affected by it.<br />

A line interacts when one of its nodes penetrates the seabed. The seabed reaction forces are calculated using the<br />

penetration of the lower outer surface of the line (based on the line type contact diameter) and the seabed forces are<br />

applied at that point. The seabed lateral friction force is calculated using the line type seabed friction coefficient.<br />

A 3D buoy interacts when the buoy origin penetrates the seabed. The seabed reaction forces are calculated using the<br />

penetration of the buoy origin, and are applied at the buoy origin. The seabed friction force is calculated using the<br />

buoy seabed friction coefficient.<br />

A 6D buoy interacts when any of its vertices penetrates the seabed. Each penetrating vertex experiences its own<br />

seabed normal reaction and lateral friction force, based on the penetration of that vertex and displacement of that<br />

vertex from its friction target position, and the forces are applied at that vertex. This gives a model where each<br />

vertex behaves rather like a pad (such as the landing pad on a lunar module).<br />

Drag chain interaction with the seabed is calculated differently – see drag chain seabed interaction.<br />

Linear Seabed Model Theory<br />

In the Linear seabed model the seabed behaves as a linear spring in the normal direction, with spring strength<br />

equal to the Normal seabed stiffness specified in the seabed data.<br />

Normal Seabed Stiffness Force<br />

The normal stiffness reaction force has magnitude = KnAd and is applied in the outwards normal direction, where:<br />

Kn = seabed normal stiffness<br />

A = penetrator contact area<br />

d = depth of penetration into the seabed.<br />

For details on how the penetrator contact area is calculated see 3D Buoy Theory, 6D Buoy Theory and Line<br />

Interaction with Seabed and Solids.<br />

Normal Seabed Damping Force<br />

If implicit integration is used in the dynamic analysis then no seabed damping forces are applied. If explicit<br />

integration is used in the dynamic analysis then, seabed damping forces are applied in the normal and tangential<br />

directions, as follows.


w<br />

143<br />

Theory, Environment Theory<br />

The normal seabed damping force is only applied when the penetrating object is travelling into the seabed, not when<br />

it is coming out of the seabed. It is applied in the seabed outward normal direction and has magnitude Dn given by:<br />

where<br />

Dn = λ.2(MKnA) ½ Vn if Vn > 0<br />

Dn = 0 if Vn ≤ 0<br />

λ = seabed percent critical damping / 100<br />

M = mass of the object (e.g. the mass of a node of a line)<br />

Kn = seabed normal stiffness<br />

A = penetrator contact area<br />

Vn = component of velocity normal to the seabed, positive when travelling into the seabed and negative when<br />

coming out.<br />

The tangential seabed damping force, Dt, is applied in the direction opposing the tangential component of the<br />

velocity of the penetrator. It is given by<br />

where<br />

Dt = -λ2(MKtA) ½ Vt<br />

Kt = seabed shear stiffness<br />

Vt = vector component of penetrator velocity tangential to the seabed.<br />

For details on how the penetrator contact area is calculated see 3D Buoy Theory, 6D Buoy Theory and Line<br />

Interaction with Seabed and Solids.<br />

5.10.4 Seabed Non-Linear Soil Model Theory<br />

The non-linear soil model has been developed in collaboration with Prof. Mark Randolph FRS (Centre for Offshore<br />

Foundation Systems, University of Western Australia). It is a development from earlier models that proposed and<br />

used a hyperbolic secant stiffness formulation, such as those proposed by Bridge et al and Aubeny et al.<br />

For details of the data used by the non-linear soil model and its suitability for different seabed types see Non-linear<br />

Soil Model.<br />

Note: The non-linear soil model is currently experimental and we are working on comparing the model<br />

against experimental results for pipe-seabed contact. Please contact <strong>Orcina</strong> if you have any<br />

feedback and comments on the model or ideas for improvement.<br />

Full details of the non-linear soil model are given in Randolph and Quiggin (2009). The main aspects of the model<br />

are:<br />

� It models the seabed normal resistance using four penetration modes, as shown in the diagram below.<br />

� In each penetration mode the seabed reaction force per unit length, P(z), is modelled using an analytic function<br />

of the non-dimensionalised penetration z/D, where z = penetration and D = penetrator contact diameter. See<br />

Penetration Resistance Formulae below.<br />

� In Not In Contact mode the resistance P(z) is zero. In the other 3 modes the formula for P(z) uses a term of<br />

hyperbolic form, which provides a high stiffness response for small reversals of motion, but ensures that as the<br />

penetration z increases or decreases from its value when this episode of penetration or uplift started, then the<br />

resistance P(z) asymptotically approaches the soil ultimate penetration resistance (for penetration) or ultimate<br />

suction resistance (for uplift) at that penetration depth.<br />

These features are now described in more detail in the sections below.


Theory, Environment Theory<br />

Penetration Modes<br />

First<br />

contact<br />

only Start of<br />

first uplift<br />

only<br />

Initial<br />

Penetration<br />

Figure: Soil Model Penetration Modes<br />

Not in Contact<br />

Uplift<br />

Break<br />

contact<br />

Start<br />

repenetrating<br />

when still in<br />

contact<br />

144<br />

Start of second<br />

or subsequent<br />

uplift<br />

Repenetration<br />

w<br />

Second or<br />

subsequent<br />

contact<br />

The penetration mode of a given penetrator (e.g. a node on a line, a vertex of a 6D buoy or the origin of a 3D buoy) is<br />

determined by its penetration, z, and in the dynamic analysis by whether the penetration has increased or<br />

decreased since the previous time step. The details are as follows.<br />

� In the static analysis the Uplift and Repenetration modes are not used and the penetration mode is set to<br />

Initial Penetration if the penetration is +ve or to Not In Contact otherwise. The effect of this is that the static<br />

position found is based on the assumption that any static penetration occurred as a single progressive<br />

penetration, and it does not allow for the effect any of uplift and repenetration that might have occurred during<br />

first installation. <strong>OrcaFlex</strong> cannot allow for such effects since it only has limited information about how the line<br />

was originally laid.<br />

� The dynamic simulation starts from the results of the static analysis, so the penetrator starts the simulation in<br />

either Not In Contact mode or Initial Penetration mode. If it starts in Not In Contact mode then it changes to<br />

Initial Penetration mode the first time the penetration becomes +ve.<br />

� Once initial penetration has occurred in the dynamic simulation, the penetrator then stays in Initial<br />

Penetration mode until it starts to lift up, and it then changes to Uplift mode.<br />

� The penetrator then stays in Uplift mode until either the penetration falls to zero, in which case it breaks<br />

contact and changes to Not In Contact mode, or else until the penetration starts to increase again, in which case<br />

it changes to Repenetration mode. Similarly, Repenetration mode persists until the penetrator starts to lift up<br />

again, when it changes to Uplift mode. So if the penetrator stays in contact with the seabed but oscillates up and<br />

down then it switches back and forth between Uplift and Repenetration modes.<br />

� If the penetrator breaks contact and then later makes contact again then it enters Repenetration mode, not<br />

Initial Penetration mode. This is because the model assumes that second and subsequent periods of contact<br />

are making contact with the same area of seabed as was previously disturbed by the initial penetration.<br />

Ultimate Resistance Limits<br />

The resistance formulae are arranged so that as penetration z increases (for penetration) or decreases (for uplift)<br />

then the resistance asymptotically approaches the ultimate penetration resistance Pu(z) (for penetration) or the<br />

ultimate suction resistance Pu-suc(z) (for uplift). These ultimate penetration and suction asymptotic limits are given<br />

by


w<br />

where<br />

Pu(z) = Nc(z/D)su(z)D<br />

Pu-suc(z) = -fsucPu(z)<br />

145<br />

Theory, Environment Theory<br />

� su(z) = undrained shear strength at penetration z. This is given by su(z) = su0 + ρz, where su0 is the undrained<br />

shear strength at the mudline and ρ is the undrained shear strength gradient, both of which are specified in the<br />

Seabed Soil Properties data.<br />

� D = penetrator contact diameter. For 3D Buoys and 6D Buoys the contact diameter is taken to be the square root<br />

of the contact area (see 3D Buoy contact area and 6D Buoy Theory). For Lines the contact diameter is as<br />

specified in the Line Type Contact Data.<br />

� Nc(z/D) = bearing factor. For z/D ≥ 0.1 this is modelled using the power law formula Nc(z/D) = a(z/D) b , where a<br />

and b are the non-dimensional Penetration Resistance Parameters of the model, as specified in the Soil Model<br />

Parameters. For z/D < 0.1 the formula Nc = Nc(0.1)(10z/D) ½ is used instead, which gives a good approximation<br />

to the theoretical bearing factor for shallow penetration.<br />

� fsuc = non-dimensional Suction Resistance Ratio parameter of the model, as specified in the Soil Model<br />

Parameters.<br />

Penetration Resistance Formulae<br />

In Not In Contact mode the penetration resistance P(z) is zero.<br />

In the other three modes the resistance P(z) is modelled using formulae that involve the following variables:<br />

� ζ = z / (D/Kmax). This is the penetration, but non-dimensionalised to be in units of D/Kmax, where Kmax is the<br />

Normalised Maximum Stiffness parameter of the model, as specified in the Soil Model Parameters.<br />

� z0 = penetration z at which the latest episode of this contact mode started, i.e. the value at the time the latest<br />

transition into this contact mode occurred.<br />

� ζ0 = z0 / (D/Kmax) = non-dimensionalised penetration at which the latest episode of this contact mode started.<br />

� P0 = resistance P(z) at which the latest episode of this contact mode started.<br />

Initial Penetration Mode<br />

For Initial Penetration mode the starting penetration and resistance values, z0 and P0, are both zero. The<br />

penetration resistance is then given by<br />

where<br />

P(z) = HIP(ζ).Pu(z) (1)<br />

HIP(ζ) = ζ / [1 + ζ]<br />

The term HIP(ζ) is a hyperbolic factor that equals 0 when ζ = 0 when initial penetration starts, equals ½ when ζ = 1,<br />

i.e. when z = D/Kmax, and asymptotically approaches 1 as penetration gets large compared to D/Kmax. The purpose of<br />

this factor is to provide a high initial stiffness while ensuring that the penetration resistance P(z) rises smoothly<br />

from zero when contact first starts (when ζ and z are both 0) and asymptotically approaches the ultimate<br />

penetration resistance, Pu(z), if ζ gets large (i.e. if z gets large compared to D/Kmax). This is illustrated by the blue<br />

curve in the model characteristics diagram below, which approaches the ultimate penetration resistance limit<br />

(upper grey curve) as penetration gets large compared to D/Kmax.<br />

Uplift Mode<br />

For Uplift mode the penetration resistance is given by<br />

P(z) = P0 - HUL(ζ0 - ζ)(P0 - Pu-suc(z)) (2a)<br />

but subject to a suction limit – see below. Here:<br />

� HUL(ζ0 - ζ) = ( ζ0 - ζ ) / [ AUL(z) + (ζ0 - ζ) ]<br />

� AUL(z) = [P0 - Pu-suc(z)] / Pu(z0)<br />

The term HUL(ζ0 - ζ) is a hyperbolic factor that equals 0 when ζ = ζ0 at the start of this uplift, and asymptotically<br />

approaches 1 if the non-dimensional uplift (ζ0 - ζ) gets large compared to AUL(z). So in uplift mode the resistance<br />

given by equation (2a) drops from its value P0 when this uplift started, and asymptotically approaches the


Theory, Environment Theory<br />

146<br />

w<br />

(negative) ultimate suction resistance Pu-suc(z) if the non-dimensional uplift (ζ0 - ζ) gets large compared to AUL(z).<br />

See the green curve in the model characteristics diagram below.<br />

Suction Limit<br />

Experiments (Bridge et al) have found that suction resistance can only be sustained for a limited displacement past<br />

the point where the net resistance becomes negative, and suction then decays as uplift continues. To model this the<br />

resistance given by equation (2a) is limited to be no less than (i.e. no more suction than) a negative lower bound<br />

Pmin(z), given by:<br />

where<br />

Pmin(z) = EUL(z)Pu-suc(z) (2b)<br />

� EUL(z) = exp[Min{0, (z - zP=0) / (λsuc zmax)}]<br />

� zmax = largest ever penetration z for this penetrator<br />

� zP=0 = largest penetration z at which suction has started during any uplift<br />

� λsuc = non-dimensional Normalised Suction Decay Distance parameter of the model, as specified in the Soil<br />

Model Parameters.<br />

The exponent in the expression for EUL(z) is zero or negative, so EUL(z) ≤ 1.EUL(z) equals 1 when z ≥ zP=0, but decays<br />

towards zero if the penetration z is less than the largest penetration, zP=0, at which suction has ever occurred during<br />

uplift. The effect of this is that the term Pmin(z) limits suction to be no more than Pu-suc(z) when the first uplift starts,<br />

but as the penetrator lifts up higher (relative to the maximum penetration at which suction has ever occurred<br />

during uplift) then the suction is limited more. This models the suction decay effect that experimental evidence has<br />

found.<br />

Repenetration Mode<br />

For Repenetration mode the penetration resistance is given by<br />

P(z) = P0 + HRP(ζ - ζ0)(Pu(z) - P0) (3a)<br />

but subject to a repenetration resistance upper bound – see below. Here<br />

� ζ0 and P0 = non-dimensional penetration and resistance at the start of this repenetration<br />

� HRP(ζ - ζ0) = (ζ - ζ0) / [ ARP(z) + (ζ - ζ0) ]<br />

� ARP(z) = ( Pu(z)-P0 ) / Pu*<br />

� Pu* = Pu(z) if P0 ≤ 0, i.e. if this repenetration started from a zero or negative resistance<br />

� Pu* = Pu(z*) if P0 > 0, where z* is the penetration when the preceding episode of uplift started<br />

The term HRP(ζ - ζ0) in equation (3a) is a hyperbolic factor that equals 0 when ζ = ζ0 at the start of this repenetration,<br />

and asymptotically approaches 1 if the non-dimensional repenetration (ζ - ζ0) gets large compared to ARP(z). So the<br />

repenetration mode resistance given by equation (3a) rises from its value P0 when this repenetration starts, and<br />

asymptotically approaches the ultimate penetration resistance Pu(z) if the non-dimensional repenetration (ζ - ζ0)<br />

gets large compared to ARP(z). See the purple curve in the model characteristics diagram below.<br />

Repenetration Resistance Reduction After Uplift<br />

Experiments (Bridge et al) have found that when repenetration occurs following large uplift movement the<br />

repenetration resistance is reduced until the previous maximum penetration is approached. To model this the<br />

repenetration resistance given by equation (3a) is limited to be no more than an upper limit Pmax(z) given by:<br />

where<br />

Pmax(z) = ERP(z)PIP(z) (3b)<br />

� PIP(z) = penetration resistance that initial penetration mode would give at this penetration, as given by equation<br />

(1)<br />

� ERP(z) = exp[min{0, - λrep + (z - zP=0) / (λsuc zmax)}]<br />

� zmax = largest ever penetration z for this penetrator<br />

� zP=0 = largest penetration z at which suction has started during any uplift


w<br />

147<br />

Theory, Environment Theory<br />

� λsuc = non-dimensional Normalised Suction Decay Distance parameter of the model, as specified in the Soil<br />

Model Parameters.<br />

� λrep = non-dimensional Repenetration Offset After Uplift parameter of the model, as specified in the Soil Model<br />

Parameters.<br />

The exponent in the expression for ERP(z) is zero or negative, so ERP(z) ≤ 1. The expression for ERP(z) gives a value <<br />

1, and so limits the repenetration resistance to be less than the ultimate penetration resistance Pu(z), until the<br />

penetration z exceeds zP=0 by a certain amount, quantified by λrep. This models the effect that repenetration<br />

following large uplift movement shows reduced resistance until the previous maximum penetration is approached.<br />

Model Characteristics<br />

The following diagram illustrates the effect of the above equations as penetration changes, for a catenary line<br />

moving up and down on the seabed.<br />

O<br />

Normal<br />

seabed<br />

reaction<br />

force<br />

Ultimate penetration<br />

resistance, Pu<br />

1 2 3 4 5<br />

10 15 20 25<br />

-ve reaction<br />

(ie suction)<br />

(1) Initial<br />

penetration<br />

Ultimate suction<br />

resistance, Pu-suc<br />

(6) Further<br />

repenetration<br />

(5) suction releases<br />

if repenetrates ..<br />

(4) .. or if uplift<br />

continues<br />

Figure: Soil Model Characteristics<br />

(2) Uplift<br />

(3) Further uplift is<br />

resisted by suction<br />

Non-dimensional<br />

Penetration, ζ<br />

The model starts in Initial Penetration mode and gives a resistance (blue curve, see note (1) in diagram) that<br />

increases as the pipe sinks into the seabed, and asymptotically approaches the ultimate penetration resistance Pu<br />

(upper dashed grey curve).<br />

Then, when the pipe starts to lift up again the model enters Uplift mode and the resistance falls (green curve, see<br />

note (2) in diagram) and asymptotically approaches the ultimate suction resistance Pu-suc (lower dashed grey curve).<br />

In this case the uplift is enough that the resistance becomes negative – i.e. suction (note (3) in diagram).<br />

If the uplift continues and the pipe lifts off the seabed then the model stays in Uplift mode and the model follows the<br />

green curve further (note (4) in diagram). The suction reduces as the uplift continues, and drops to zero when the<br />

penetration drops to zero.<br />

If, however, the uplift ends and repenetration starts, then the model enters Repenetration mode (purple curve, note<br />

(5) in diagram) and the suction rapidly falls and soon instead becomes +ve resistance. As repenetration continues<br />

increases the resistance rises (note (6) in diagram) and again asymptotically approaches the ultimate penetration<br />

resistance.


Theory, Environment Theory<br />

148<br />

w<br />

Further cycles of uplift and repenetration would give further episodes of Uplift and Repenetration modes and so<br />

give hysteresis loops of seabed resistance.<br />

Soil Extra Buoyancy Force<br />

The seabed resistance formulae given above model the resistance P(z) due to the soil shear strength. In addition to<br />

this there is an extra buoyancy force due to the fact that the penetrator displaces soil that has a higher saturated<br />

density than the water. To model this the following extra buoyancy force is applied, vertically upwards, in addition<br />

to the resistance P(z).<br />

where<br />

Extra Soil Buoyancy Force = fbVdisp(ρsoil - ρsea)g<br />

� fb is a non-dimensional soil buoyancy factor, as specified on in Soil Model Parameters data.<br />

� Vdisp = displacement volume = volume of the part of the penetrating object that is below the seabed tangent<br />

plane.<br />

� ρsoil = saturated soil density, as specified in the Soil Properties data.<br />

� ρsea = sea water density at the seabed origin, as specified in the sea density data.<br />

� g = acceleration due to gravity for the units being used<br />

The factor fb is normally greater than 1. This models the fact that when seabed soil is displaced it does not disperse<br />

thinly across the seabed plane, but instead tends to heave locally around the penetrating object. The effect of this is<br />

that the extra buoyancy is greater than the standard theoretical buoyancy force Vdisp(ρsoil - ρsea)g that would apply if<br />

the soil was fully fluid.<br />

Soil Model Parameters<br />

Several non-dimensional constants are used in the formulae given above for the seabed normal reaction force. These<br />

are parameters that control how the soil response is modelled by the non-linear soil model. Their values can be<br />

edited on the Seabed Soil Model page of the Environment data form, but we recommend that these parameters are<br />

normally left at their default values. The effects of the parameters are now described.<br />

Penetration Resistance Parameters<br />

The parameters a and b control how the bearing factor Nc(z), and hence the ultimate penetration and suction<br />

resistance limits Pu(z) and Pu-suc(z), vary with penetration z. See Ultimate Resistance Limits above.<br />

Soil Buoyancy Factor<br />

This is the factor fb that controls the modelling of the extra buoyancy effect that occurs when a penetrating object<br />

displaces soil. See Soil Extra Buoyancy Force above. The buoyancy factor, fb, should normally be greater than 1, to<br />

model the fact that the displaced soil tends to heave locally around the penetrating object.<br />

Normalised Maximum Stiffness<br />

This is the factor Kmax that determines the reference penetration, D/Kmax, that is used to calculate the nondimensional<br />

penetration values, ζ and ζ0, that are used in the hyperbolic factors in the Penetration Resistance<br />

Formulae above. It therefore controls the maximum stiffness during initial penetration or on reversal of motion, and<br />

also how fast the penetration resistance asymptotically approaches its limiting value. A higher value means the<br />

resistance more rapidly approaches the limit as penetration changes, and so gives a stiffer seabed model.<br />

Suction Resistance Ratio<br />

This is the factor fsuc that controls the ultimate suction resistance Pu-suc(z). See Ultimate Resistance Limits above. A<br />

lower value gives less suction, a higher value gives more.<br />

Normalised Suction Decay Distance<br />

This is the factor λsuc that controls the suction decay limit term Pmin(z) in equation (2b) in Uplift mode. A lower value<br />

gives less suction effect, by causing suction to decay after less uplift. A higher value causes suction to persist over<br />

greater uplift distances. This parameter also affects the repenetration limit term Pmax(z) in equation (3b) in<br />

Repenetration mode.


w<br />

Repenetration Offset After Uplift<br />

149<br />

Theory, Environment Theory<br />

This is the parameter λrep that controls the penetration at which the repenetration resistance limit Pmax(z) in<br />

equation (3b) in Repenetration mode merges with the bounding curve for initial penetration resistance, PIP(z). A<br />

smaller value results in less penetration past zP=0 before the repenetration resistance after uplift merges with the<br />

bounding curve of initial penetration resistance. A higher value leads to greater penetration before the bounding<br />

curve is reached.<br />

5.10.5 Morison's Equation<br />

<strong>OrcaFlex</strong> calculates hydrodynamic loads on lines, 3D buoys and 6D buoys using an extended form of Morison's<br />

Equation. See Morison, O'Brien, Johnson and Schaaf.<br />

Morison's equation was originally formulated for calculating the wave loads on fixed vertical cylinders. There are<br />

two force components, one related to water particle acceleration (the 'inertia' force) and one related to water<br />

particle velocity (the 'drag' force). For moving objects, the same principle is applied, but the force equation is<br />

modified to take account of the movement of the body.<br />

The extended form of Morison's equation used in <strong>OrcaFlex</strong> is:<br />

where<br />

Fw = (Δ.aw + Ca.Δ.ar) + ½.ρ.Cd.A.Vr|Vr|<br />

Fw is the fluid force<br />

Δ is the mass of fluid displaced by the body<br />

aw is the fluid acceleration relative to earth<br />

Ca is the added mass coefficient for the body<br />

ar is the fluid acceleration relative to the body<br />

ρ is the density of water<br />

Vr is the fluid velocity relative to the body<br />

Cd is the drag coefficient for the body<br />

A is the drag area<br />

The term in parentheses is the inertia force, the other term is the drag force. The drag force is familiar to most<br />

engineers, but the inertia force can cause confusion.<br />

The inertia force consists of two parts, one proportional to fluid acceleration relative to earth (the Froude-Krylov<br />

component), and one proportional to fluid acceleration relative to the body (the added mass component).<br />

To understand the Froude-Krylov component, imagine the body being removed and replaced with an equivalent<br />

volume of water. This water would have mass Δ and be undergoing an acceleration aw. It must therefore be<br />

experiencing a force Δ.aw.<br />

Now remove the water and put the body back: the same force must now act on the body. This is equivalent to saying<br />

that the Froude-Krylov force is the integral over the surface of the body of the pressure in the incident wave,<br />

undisturbed by the presence of the body. (Note the parallel with Archimedes' Principle: in still water, the integral of<br />

the fluid pressure over the wetted surface must exactly balance the weight of the water displaced by the body.)<br />

The added mass component is due to the distortion of the fluid flow by the presence of the body. A simple way to<br />

understand it is to consider a body accelerating through a stationary fluid. The force required to sustain the<br />

acceleration may be shown to be proportional to the body acceleration and can be written:<br />

where<br />

F = (m + Ca.Δ).a<br />

F is the total force on the body<br />

m is the mass of the body<br />

(Ca.Δ) is a constant related to the shape of the body and its displacement<br />

a is the acceleration of the body.


Theory, Environment Theory<br />

150<br />

w<br />

Another way of looking at the problem is in terms of energy. The total energy required to accelerate a body in a<br />

stationary fluid is the sum of the kinetic energy of the body itself, and the kinetic energy of the flow field about the<br />

body. These energies correspond to the terms (m.a) and Ca.Δ.a respectively.<br />

Trapped Water<br />

The term (Ca.Δ) has the dimensions of mass and has become known as the added mass. This is an unfortunate name<br />

which has caused much confusion over the years. It should not be viewed as a body of fluid trapped by and moving<br />

with the body. Some bodies are so shaped that this does occur, but this trapped water is a completely different<br />

matter. Trapped water occurs when the body contains a closed flooded space, or where a space is sufficiently closely<br />

surrounded to prevent free flow in and out. Trapped water should be treated as part of the body: the mass of the<br />

trapped water should be included in the body mass, and its volume should be included in the body volume.<br />

For a more complete description of Morison's equation and a detailed derivation of the added mass component see<br />

Barltrop and Adams, 1991 and Faltinsen, 1990.<br />

5.10.6 Waves<br />

Wave Theory<br />

Each wave train can be a regular wave, a random wave or specified by a time history file.<br />

Regular Waves<br />

<strong>OrcaFlex</strong> offers a choice of a long-crested, regular, linear Airy wave (including seabed influence on wave length) or<br />

non-linear waves using Dean, Stokes' 5th or Cnoidal wave theories (see Non-linear Wave Theories). Waves are<br />

specified in terms of height and period, and direction of propagation.<br />

Random Waves<br />

<strong>OrcaFlex</strong> offers five standard frequency spectra: JONSWAP, ISSC (also known as Bretschneider or modified Pierson-<br />

Moskowitz), Ochi-Hubble, Torsethaugen and Gaussian Swell.<br />

The program synthesises a wave time history from a user-determined number of linear wave components. The<br />

wave component frequencies are chosen using an equal energy approach – see below. The phases associated with<br />

each wave component are pseudo-random: a random number generator is used to assign phases, but the sequence<br />

is repeatable, so the same user data will always give the same train of waves. Different wave component phasing for<br />

the same spectrum can be obtained by shifting the simulation time origin relative to the wave time origin, or by<br />

specifying a different random number seed.<br />

<strong>OrcaFlex</strong> provides special facilities to assist in selecting an appropriate section of random sea. These are available on<br />

the Waves Preview page of the Environment data form. The facilities include:<br />

� A profile graph plotting the wave elevation for a selected period and<br />

� A table listing all the waves in a selected time interval whose height or steepness is large by comparison with<br />

the reference wave Hs, Tz.<br />

Wave components<br />

An irregular wave train is constructed by linear superposition of a number of linear wave components. <strong>OrcaFlex</strong><br />

creates the components using an equal area approach, over a user-specified range of the frequency spectrum.<br />

However this approach can result in some components (e.g. near the tails of the spectrum where the spectral energy<br />

is low) representing a wide range of frequencies. Such components can result in poor modelling of system<br />

responses, since a wide frequency range of spectral energy is then concentrated at a single frequency. To solve this<br />

the user can specify a maximum component frequency range, and any component that covers a wider frequency<br />

range is then subdivided into multiple components (which then have lower energy, so they are no longer have equal<br />

energy) until all the components satisfy the specified maximum frequency range.<br />

This method of allocating wave components is now described in more detail. We denote by rmin and rmax the<br />

minimum and maximum relative frequencies, and by δfmax the maximum component frequency range.<br />

The wave components are created as follows:<br />

1. We define fm- to be the frequency of the spectral peak with the lowest frequency. Likewise define fm+ to be the<br />

frequency of the spectral peak with the highest frequency. For single peaked spectra fm- = fm+ = fm. For the Ochi-<br />

Hubble spectrum, the spectral peak frequencies are data items named fm1 and fm2. For the Torsethaugen


w<br />

151<br />

Theory, Environment Theory<br />

spectrum, the spectral peak frequencies are calculated internally by the program as described in the<br />

Torsethaugen and Haver paper.<br />

2. The overall frequency range considered is [rminfm-, rmaxfm+]. The nature of wave spectra means that the energy<br />

outside the range is negligible, at least for the default values of rmin and rmax.<br />

3. This overall frequency range is then broken into n component frequency bands [fi-, fi+] (i = 1 to n), such that each<br />

band contains the same amount of spectral energy. Here f1- = rminfm-, fn+ = rmaxfm+ and fi+ = f(i+1)-, and n is the userspecified<br />

number of components. See the illustration below, which for clarity is for only n=10 components (the<br />

default value of n is much larger).<br />

4. Any frequency band [fi-, fi+] for which fi+ - fi- > δfmax is then recursively subdivided into multiple bands, until the<br />

frequency width of each band is less than the specified maximum δfmax. Any such subdivision will result in the<br />

number of components, n, increasing, and the components resulting from subdivision will no longer have the<br />

same energy as the non-subdivided components.<br />

5. A wave component is then created for each resulting frequency band. The wave component frequency, fi, is<br />

chosen so that there is equal spectral energy either side of it in the frequency band represented by that<br />

component. In other words there is equal spectral energy in the ranges [fi-, fi] and [fi, fi+].<br />

Note: When the spectrum discretisation method is set to Legacy or 9.3a, the values of fm- and fm+ are<br />

defined differently. Both fm- and fm+ are set to the nominal value of fm. For single peaked spectra this<br />

is identical to the behaviour described above. For the Ochi-Hubble spectrum the nominal fm is<br />

defined to be fm1. For the Torsethaugen spectrum the nominal fm is user input data.<br />

The wave spectrum plotted below illustrates the effect of the equal energy approach. The vertical lines represent the<br />

component frequency ranges. For simplicity we have only used 10 components but you would typically use a lot<br />

more than this in order to give a much better discretisation of the spectrum. In addition we have not applied the<br />

maximum component frequency range δfmax, and the effect of this can be seen in the wider component frequency<br />

ranges in the low and high frequency tails of the spectrum.<br />

Spectral Density (m^2/Hz)<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0<br />

0 0.05 0.1 0.15 0.2 0.25 0.3<br />

Frequency (Hz)<br />

Figure: Equal energy approach to choosing wave components<br />

The equal energy approach has two significant advantages over a discretisation using equal frequency spacing:<br />

1. The component frequencies produced by the equal energy approach are not related to each other in a<br />

multiplicative way. This means that the repeat period of the resulting wave train is effectively infinite.<br />

2. The equal energy approach results in a finer discretisation being used around the spectral peak. To achieve the<br />

same level of discretisation with an equal frequency spacing approach would result in a great deal many more<br />

components being used. Since simulation runtimes are increased when more components are used the equal<br />

energy approach gives an efficient use of wave components.


Theory, Environment Theory<br />

Directional spread spectrum<br />

The directional spreading spectrum used by <strong>OrcaFlex</strong> is:<br />

where<br />

Sd(θ) = K(s) cos 2s (θ-θp) for -π/2 ≤ θ-θp ≤ π/2<br />

K(s) = π -½ Γ(s+1) / Γ(s+½), a normalising constant,<br />

2s is the spreading exponent,<br />

θ is the wave direction and<br />

θp is the principal wave direction.<br />

152<br />

w<br />

The total spectrum used by <strong>OrcaFlex</strong> S(f,θ) is then given by S(f,θ) = Sf(f).Sd(θ) where Sf is the frequency spectrum.<br />

Discretisation of the directional spectrum<br />

The direction range -π/2 ≤ θ-θp ≤ π/2 is discretised into the user-specified number of wave directions. <strong>OrcaFlex</strong><br />

discretises the directional spectrum using the same equal energy strategy as described above for the frequency<br />

spectrum.<br />

Kinematic Stretching<br />

Kinematic stretching is the process of extending linear Airy wave theory to provide predictions of fluid velocity and<br />

acceleration (kinematics) at points above the mean water level. It only applies to Airy waves and to random waves<br />

(which are made up of a number of Airy waves).<br />

Linear wave theory in principle only applies to very small waves, so it does not predict kinematics for points above<br />

the mean water level since they are not in the fluid. The theory therefore needs to be 'stretched' to cover such<br />

points, and <strong>OrcaFlex</strong> offers a choice of three published methods: Vertical Stretching, Wheeler Stretching and<br />

Extrapolation Stretching (see below).<br />

Consider, for example, the horizontal particle velocity u. In Airy wave theory the formula for u at position (x,z) at<br />

time t is:<br />

u = E(z) a ω cos(ωt - φ - kx) (1)<br />

where a, ω, φ and k are the wave amplitude, angular frequency, phase lag and wave number, respectively, x is<br />

distance downstream from the wave origin and z is measured positive upwards from the mean water level.<br />

The term E(z) is a scaling factor given by E(z) = cosh(k(d+z))/sinh(kd), where d = mean water depth. It is an<br />

exponential decay term that models the fact that the fluid velocity reduces as the point goes deeper. However for<br />

z>0 (i.e. above the mean water level) E(z) is greater than 1 so it amplifies the velocity. This can give particle velocity<br />

predictions that are unrealistically large (the problem being worst for high frequency waves). The various stretching<br />

methods deal with this problem by replacing E(z) with a more realistic term.<br />

Note that all the stretching methods apply not only to the scaling factor E(z) in the horizontal velocity formula (1),<br />

but also to the scaling factors in the corresponding Airy wave theory formulae for the vertical velocity and the<br />

horizontal and vertical acceleration.<br />

Vertical Stretching<br />

This is the simplest of the 3 methods. E(z) is left unchanged for z≤0, but for z>0, E(z) is replaced by E(0). This has<br />

the effect of setting the kinematics above the mean water level to be equal to those at the mean water level.<br />

Wheeler Stretching<br />

This method stretches (or compresses) the water column linearly into a height equivalent to the mean water depth.<br />

This is done by replacing E(z) by E(z') where<br />

z' = d(d+z)/(d+ζ) - d<br />

and ζ is the z-value at the instantaneous water surface. This formula for z' essentially shifts z linearly to be in the<br />

range -d to 0.


w<br />

Extrapolation Stretching<br />

153<br />

Theory, Environment Theory<br />

This method extends E(z) to points above the mean water level by using linear extrapolation of the tangent to E(z)<br />

at the mean water level. In other words, for z≤0 equation (1) is left unchanged, but for z>0, E(z) is replaced by E(0) +<br />

z.E'(0), where E' is the rate of change of E with z.<br />

Wave Spectra<br />

ISSC spectrum<br />

The ISSC spectrum (also known as Bretschneider or modified Pierson-Moskowitz) is defined as:<br />

S(f) = 5/16 Hs 2 fm 4 f -5 exp(-5/4 [f/fm] -4 )<br />

where f is frequency. The other two parameters, the peak frequency fm and the significant wave height Hs are data<br />

items.<br />

For more details see Tucker 1991, page 107.<br />

JONSWAP spectrum<br />

The JONSWAP spectrum is defined as:<br />

S(f) = (αg 2 /16π 4 ) f -5 exp(-5/4 [f/fm] -4 ) γ b<br />

where g is the gravitational constant, b = exp(-½σ -2 [f/fm - 1] 2 ), σ = σ1 for f ≤ fm, σ = σ2 for f > fm and the other<br />

parameters γ, α, σ1 and σ2 are data items.<br />

For more details see:<br />

� Barltrop and Adams, page 277.<br />

� Tucker 1991, page 108.<br />

� Isherwood 1987.<br />

Ochi-Hubble spectrum<br />

See the Ochi-Hubble paper for details of the spectral formula.<br />

The Ochi-Hubble Spectrum allows two peaked spectra to be set up, enabling you to represent sea states that include<br />

both a remotely generated swell and a local wind generated sea.<br />

S(r) [m^2]<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

Example of Ochi-Hubble Spectrum<br />

0 1 2 3 4<br />

Relative Frequency r<br />

The Ochi-Hubble wave spectrum is the sum of two separate component spectra – the example graph shows the two<br />

components and their sum. The component spectrum with the lower frequency peak corresponds to the remotely<br />

generated swell and the one with the higher frequency peak corresponds to the local wind generated sea. This is<br />

why the Ochi-Hubble spectrum is often called a two-peaked spectrum; however in practice, the resulting total<br />

spectrum typically has only one peak (from the remotely generated swell) plus a shoulder of energy from the local<br />

wind generated sea.


Theory, Environment Theory<br />

154<br />

w<br />

The two component spectra are each specified by a set of three parameters – Hs1, fm1, λ1 for the lower frequency<br />

component and Hs2, fm2, λ2 for the higher frequency component. See Data for Ochi-Hubble Spectrum.<br />

In <strong>OrcaFlex</strong> you can either specify all these 6 parameters explicitly, or you can simply specify the overall significant<br />

wave height Hs and tell <strong>OrcaFlex</strong> to automatically select the most probable 6 parameters for that value of Hs. In the<br />

latter case, <strong>OrcaFlex</strong> uses 'most probable' parameters based on formulae given in the Ochi-Hubble paper (table 2b).<br />

Torsethaugen spectrum<br />

The Torsethaugen spectrum is another two-peaked spectrum, more suited to North Sea application than Ochi-<br />

Hubble. See the Torsethaugen and Haver paper for details of the spectral formula.<br />

Warning: The two-peaked Ochi-Hubble and Torsethaugen spectra make no allowance for the directionality<br />

of the swell and wind components of the sea state. In reality the separate components frequently<br />

come from different directions. However, an <strong>OrcaFlex</strong> wave train has a single principal direction.<br />

Because of this it is more appropriate to model a two-peaked sea state using two separate <strong>OrcaFlex</strong><br />

wave trains, one for the swell component and one for the local wind generated component.<br />

Gaussian Swell spectrum<br />

The Gaussian Swell spectrum is based on the normal (or Gaussian) probability density function and is defined as:<br />

S(f) = (Hs/4) 2 σ -1 (2π) -½ exp(-[f-fm] 2 /2σ 2 )<br />

where Hs, fm and σ are the input data.<br />

Non-linear Wave Theories<br />

<strong>OrcaFlex</strong> models two types of waves, periodic regular waves and random waves. A regular wave is a periodic wave<br />

with a single period. A random wave in <strong>OrcaFlex</strong> is a superposition of a number of regular linear waves of differing<br />

heights and periods. We shall not discuss random waves here.<br />

For very small waves in deep water, Airy wave theory (also know as linear wave theory) is valid. Many waves in<br />

practical engineering use do not fall into this category, hence the need for non-linear wave theories. These include<br />

Stokes' 5th order theory, Dean's stream function theory and Fenton's cnoidal theory which are all available in<br />

<strong>OrcaFlex</strong>. We shall give an outline of these theories here in the form of concise abbreviations of the relevant papers.<br />

For an overview of all the theories considered here see Sobey R J, Goodwin P, Thieke R J and Westberg R J, 1987.<br />

To fix notation we use the following conventions throughout. These conventions are different from those used in<br />

<strong>OrcaFlex</strong> but we use them here in order to agree with the literature. We assume that the wave is long-crested and<br />

travels in the x direction and we shall work only in the (x,z) plane. The seabed has z = 0 and the mean water level is<br />

given by z = d, where d is the water depth (at the seabed origin). The wave is specified by wave height (H) and wave<br />

period (T) and the wavelength (L) will be derived. The horizontal and vertical particle velocities are denoted by u<br />

and v respectively. We assume a moving frame of reference with respect to which the motion is steady and x = 0<br />

under a crest.<br />

See Stokes' 5th, Dean's stream function theory and Fenton's cnoidal theory for a brief overview of each of the nonlinear<br />

wave theories available in <strong>OrcaFlex</strong> and for guidance on how to decide on which wave theory to use in<br />

practice.<br />

Dean Stream Function theory<br />

A typical approach to wave theory makes use of the idea of a velocity potential. This is a vector field φ(x,z) whose<br />

partial derivatives are the particle velocities of the fluid. That is:<br />

δφ/δx = u and δφ/δz = v.<br />

Chappelear devised a wave theory based on finding the best fit velocity potential to the defining wave equations.<br />

This was quite complicated and Dean's idea was to apply the same idea to a stream function. A stream function is a<br />

vector field ψ(x,z) which satisfies<br />

δψ/δx = -v and δψ/δz = u.<br />

Dean's original paper Dean (1965) was intended to be used to fit stream functions to waves whose profile was<br />

already known, for example a wave recorded in a wave tank. For the purpose of <strong>OrcaFlex</strong> the user provides<br />

information on the wave train in the form of water depth, wave height and wave period and we wish to find a wave<br />

theory which fits this data. Thus Dean's theory in its original form does not apply and we choose to follow the


w<br />

155<br />

Theory, Environment Theory<br />

stream function theory of Rienecker and Fenton (1981). This method is also known as Fourier approximation wave<br />

theory.<br />

The problem is to find a stream function which:<br />

1. satisfies Laplace's equation δ 2 ψ/δx 2 + δ 2 ψ/δz 2 = 0, which means that the flow is irrotational,<br />

2. is zero at the seabed, that is ψ(x,0) = 0,<br />

3. is constant at the free surface z = η(x), say ψ(x,η) = -Q and<br />

4. satisfies Bernoulli's equation ½ [ (δψ/δx) 2 + (δψ/δz) 2 ] + η = R, where R is a constant.<br />

In these equations all variables have been non-dimensionalised with respect to water depth d and gravity g.<br />

By standard methods, equations (1) and (2) are satisfied by a stream function of the form<br />

ψ(x,z) = B0 z + ∑ Bj [sinh (jkz) / cosh (jk)] cos (jkx)<br />

where k is the wave number which is as yet undetermined, and the summation is from j = 1 to N. The constant N is<br />

said to be the order of the stream function. The problem now is to find coefficients Bj and k which satisfy equations<br />

(3) and (4).<br />

Implementing stream function theory requires numerical solution of complex non-linear equations. The number of<br />

these equations increases as N increases and there is a short pause in the program while these equations are solved.<br />

For most waves the default value will suffice. However, for nearly breaking waves the solution method sometimes<br />

has problems converging. If this is the case then it might be worth experimenting with different values.<br />

Accuracy of method<br />

Because the method is a numerical best fit method it does not suffer from the truncation problems of the Stokes' 5th<br />

and cnoidal theories. For these methods, power series expansions are obtained and then truncated at an arbitrary<br />

point. If the terms which are being ignored are not small then these methods will give inaccurate answers. In theory,<br />

Dean's method should cope well in similar circumstances as it is finding a best fit to the governing equations. This<br />

means that stream function wave theory is very robust. In very shallow water Fenton believes that his high order<br />

cnoidal wave theory is best, although we would recommend stream function theory here. It is possible that, by their<br />

very nature, Stokes' 5th and the cnoidal theories may give inaccurate results if applied to the wrong waves. In all<br />

circumstances the stream function method, if it converges, will give sensible results. Hence it can be used as a coarse<br />

check on the applicability of other theories. That is if your preferred wave theory gives significantly different results<br />

from Dean's, applied to the same wave, then it is probably wrong!<br />

Stokes' 5th<br />

The engineering industry's standard reference on 5th order Stokes' wave theory is Skjelbreia and Hendrickson<br />

(1961). This paper presents a 5th order Stokes' theory with expansion term ak where a is the amplitude of the<br />

fundamental harmonic and k = 2π / L is the wave number. The length a has no physical meaning and by choosing ak<br />

as expansion parameter, convergence for very steep waves cannot be achieved. Fenton (1985) gives a 5th order<br />

Stokes' theory based around an expansion term kH/2 and demonstrates that it is more accurate than Skjelbreia and<br />

Hendrickson's theory. Thus it is Fenton's theory which is implemented in <strong>OrcaFlex</strong>. It is worth noting that the linear<br />

theory of Airy is a 1 st order Stokes' theory.<br />

Assuming that the user supplies wave train information comprising water depth, wave height and wave period then<br />

the wave number k must be computed before the theory can be applied. In order to do this a non-linear implicit<br />

equation in terms of k is solved using Newton's method. This equation is known as the dispersion relationship. Once<br />

k is known, a number of coefficients are calculated and these are used for power series expansions in order to find<br />

the surface profile and wave kinematics.<br />

Accuracy of method<br />

Inherent in the method is a truncation of all terms of order greater than 5. Thus if the terms which are discarded are<br />

significant then this theory will give poor results. See Ranges of applicability for the waves for which Stokes' 5th<br />

theory is valid, but essentially this is a deep water, steep wave theory.<br />

Cnoidal theory<br />

This is a steady periodic water wave theory designed to be used for long waves in shallow water. The Stokes' 5th<br />

order theory is invalid in such water as the expansion term is large and the abandoned terms due to truncation are<br />

significant. The high-order cnoidal theory of Fenton (1979) has been regarded as the standard reference for many


Theory, Environment Theory<br />

156<br />

w<br />

years but it gives unsatisfactory predictions of water particle velocities. This work has been superseded by Fenton<br />

(1990 and 1995).<br />

Fenton's original paper gave formulae for fluid velocities based on a Fourier series expansion about the term<br />

ε = H / d. In his later works Fenton discovered that much better results could be obtained by expanding about a<br />

"shallowness" parameter δ. We follow this approach.<br />

A 5th order stream function representation is used but instead of terms involving cos the Jacobian elliptic function<br />

cn is used, hence the term cnoidal. The function takes two parameters, x as usual, and also m which determines how<br />

cusped the function is. In fact when m = 0, cn is just cos and the Jacobian elliptic functions can be regarded as the<br />

standard trigonometric functions. The solitary wave which has infinite length corresponds to m = 1 and long waves<br />

in shallow water have values of m close to 1. Fenton shows that the cnoidal theory should only be applied for long<br />

waves in shallow water and for such waves m is close to 1.<br />

The initial step of the solution is to determine m and an implicit equation with m buried deep within must be solved.<br />

As in the Stokes' theory this equation is the dispersion relationship. The solution is performed using the bisection<br />

method since the equation shows singular behaviour for m ≈ 1 and derivative methods fail.<br />

After m has been determined Fenton gives formulae to calculate surface elevation and other wave kinematics. In<br />

practice m is close to 1 and Fenton takes advantage of this to simplify the formulae. He simply sets m = 1 in all<br />

formulae except where m is the argument of an elliptic or Jacobian function. This technique is known as Iwagaki<br />

approximation and proves to be very accurate.<br />

Ranges of Applicability<br />

Regular wave trains are specified in <strong>OrcaFlex</strong> by water depth, wave height and wave period. Which wave theory<br />

should one use for any given wave train? For an infinitesimal wave in deep water then Airy wave theory is accurate.<br />

For finite waves a non-linear theory should be used. In order to decide which wave theory to use one must calculate<br />

the Ursell number given by<br />

U = HL 2 / d 3<br />

See Non-linear Wave Theories for notation conventions used.<br />

If U < 40 then the waves are said to be short and Stokes' 5th may be used. For U > 40 we have long waves and the<br />

cnoidal wave theory can be used. The stream function theory is applicable for any wave. The boundary number 40<br />

should not be considered a hard and fast rule. In fact for Ursell number close to 40 both the Stokes' 5th theory and<br />

the cnoidal theory have inaccuracies and the stream function method is recommended. In regions well away from<br />

Ursell number 40 then the relevant analytic theories (Stokes' 5th or cnoidal) perform very well.<br />

Our recommendations are:<br />

Ursell number Recommended wave theory<br />


w<br />

157<br />

Theory, Vessel Theory<br />

individual water particle (Lagrangian). For velocities there is no confusion as the two concepts coincide but there is<br />

an issue for accelerations.<br />

The accelerations are used by <strong>OrcaFlex</strong> in relation to Morison's Equation in order to compute pressure gradients<br />

which in turn result in forces being applied to objects. Tucker (1991) gives an example of a Venturi tube with zero<br />

apparent acceleration throughout the tube but a non zero pressure gradient! For the linear theory of Airy, which is<br />

based on the assumption that the wave is very small, then apparent and real accelerations are effectively equal and<br />

<strong>OrcaFlex</strong> computes apparent accelerations for Airy wave theory. For the non-linear theories, real accelerations are<br />

used in all cases.<br />

Handling of current<br />

Each of the theories implemented allows for a uniform Eulerian current but none is designed to deal with current<br />

profiles. Because we are dealing with non-linear waves it is not possible to analyse the wave assuming zero current<br />

and then add in the current afterwards, as we do for Airy waves. So we have to reach some compromise. The<br />

convention chosen is as follows:<br />

The current profile is defined as usual and the current used to analyse the wave is taken to be the component of<br />

current in the wave direction at the mean water level. Call this current component CW. To calculate the fluid velocity<br />

V at any given point in time we must take into account the fluid velocity VW containing uniform current CW together<br />

with the current C at the point in question, as specified by the current profile. The formula is:<br />

V = VW - CW + C.<br />

A similar formula is used during the build up. If the wave factor is λ then<br />

V = λ (VW - CW ) + C.<br />

Seabed Slope<br />

In the case of a sloping seabed in <strong>OrcaFlex</strong>, we adopt the following convention for wave theories. We assume that<br />

the water depth is that at the seabed origin for the purpose of deriving the wave information (wave number, stream<br />

function etc.) We define the fluid motion for a point (x,y,z) where z < 0 to be the fluid motion for the point (x,y,0).<br />

Physically implausible solutions<br />

The non-linear wave theories implemented in <strong>OrcaFlex</strong> each have their own ranges and limitations as previously<br />

discussed. However, it is sometimes possible to obtain a solution for a particular wave train which is physically<br />

implausible. For example if the stream function or Stokes' 5th theories are misapplied then they may predict wave<br />

profiles with multiple crests. Whilst these are valid solutions to the mathematical problem, they are not realistic.<br />

Also it is sometimes predicted by each theory that the horizontal fluid velocities under a crest increase with depth.<br />

This also is physically implausible. <strong>OrcaFlex</strong> warns if such unrealistic solutions occur. It is then up to the engineer to<br />

judge the validity of the results.<br />

It has not been possible to guard against all such anomalies, in particular the Stokes' 5th theory can predict wave<br />

profiles with points of inflection other than at crest and trough.<br />

5.11 VESSEL THEORY<br />

5.11.1 Vessel Rotations<br />

The orientation of a vessel is specified by 3 rotation angles that are called Euler angles. There are various different<br />

ways of defining Euler angles and the conventions used by <strong>OrcaFlex</strong> are documented below. In all cases positive<br />

rotation angle means rotating clockwise about the relevant axis direction.<br />

To provide flexibility, a vessel in <strong>OrcaFlex</strong> can be given two types of motion, primary and superimposed. In many<br />

cases only one of the two types is needed. The total motion of the vessel is the combination of the two. To<br />

distinguish between the primary, superimposed and total motion, different names are used for the 3 rotation angles,<br />

as follows:<br />

� For primary motion the rotation angles are called Primary Rotation 1, Primary Rotation 2 and Primary Rotation<br />

3. The initial orientation of the vessel specifies the initial values of the primary rotation angles, and these are<br />

called the initial Heel, Trim and Heading.<br />

� For displacement RAOs and harmonic motion they are called Roll, Pitch and Yaw.


Theory, Vessel Theory<br />

158<br />

w<br />

� The total motion results report the combination of the primary and superimposed motion. For this the angles<br />

are called Rotation 1, Rotation 2 and Rotation 3.<br />

Order of application of rotations<br />

For each of these sets of vessel rotation angles, the rotations are applied in the 'reverse' order. That is, the rotation<br />

about the z-axis is done first, followed by the rotation about the new y-axis, and then finally the rotation about the<br />

new x-axis.<br />

Here is more detail of how the vessel rotations are applied.<br />

The rotations start with the vessel axes Vx, Vy, Vz aligned with the global axes directions GX, GY, GZ.<br />

The primary motion rotation angles are applied first, in reverse order. That is, Primary Rotation 3 is applied about<br />

the initial Vz-direction (= global GZ direction), then Primary Rotation 2 is applied about the resulting new Vy<br />

direction, and finally Primary Rotation 1 is applied about the resulting new Vx direction.<br />

Note: The first of these 3 primary rotations is about the vertical, so it sets the heading of the vessel. The<br />

vessel axes directions after this first rotation are called the Primary Heading Axes, and it is in<br />

these directions that the RAO, QTF and harmonic motions are applied.<br />

The superimposed motion is then applied. The superimposed motion rotations are called roll, pitch and yaw. These<br />

rotations are applied starting from the vessel orientation resulting from the primary motion.<br />

For superimposed displacement RAOs and harmonic motion the rotations are applied about the primary heading<br />

directions (see above) and the 'reverse' order is used. So, first the yaw rotation is applied as a rotation about the<br />

primary heading z direction (= vertically upwards direction = global GZ direction), then the pitch rotation is applied<br />

as a rotation about the new primary heading y axis direction, and finally the roll is applied as a rotation about the<br />

new primary heading x axis direction.<br />

For superimposed time history motion the rotations are applied about the vessel axes. Once again, the 'reverse'<br />

order of application is used.<br />

Notes: The order of application of rotations is not significant when all the angles are small. However for<br />

vessels the heading angle rotation about z can be large, in which case the order of application of<br />

the rotations is more significant.<br />

5.11.2 RAOs and Phases<br />

Displacement RAOs<br />

The 'reverse' order of application of rotations described above is the most commonly used<br />

convention for vessel motions. It has the advantage that the z rotation, which is most likely to be<br />

large, is always applied about a vertical axis.<br />

<strong>OrcaFlex</strong> 8.5 (and earlier versions) applied the roll, pitch and yaw for superimposed motion in the<br />

'forward' order, i.e. roll about x direction, then pitch about new y direction, then yaw about final z<br />

direction. But this order had the disadvantage that when vessel yaw is large it was applied about<br />

an axis that could have already been rolled or pitched and so would no longer be horizontal. The<br />

change in order of application of rotations changes results for cases with non-zero roll or pitch. See<br />

What's New in 8.6 for details.<br />

Vessel motions in waves can be defined by displacement RAOs (Response Amplitude Operators) that are specified<br />

on the Displacements RAOs page of the vessel type data form. Each displacement RAO consists of a pair of numbers<br />

that define the vessel response, for one particular degree of freedom, to one particular wave direction and period.<br />

The two numbers are an amplitude, which relates the amplitude of the vessel motion to the amplitude of the wave,<br />

and a phase, which defines the timing of the vessel motion relative to the wave.<br />

Example: A surge RAO of 0.5 in a wave of height 4m (and hence wave amplitude 2m) means that the<br />

vessel surges to and fro -1m to +1m from its static position; a pitch RAO of 0.5° per metre in the<br />

same wave means that the vessel pitches from -1° to + 1°.<br />

The vessel has 6 degrees of freedom: 3 translations (surge, sway, heave) and 3 rotations (roll, pitch, yaw), so the<br />

RAO data consists of 6 amplitude and phase pairs for each wave period and direction. The RAO amplitude and phase<br />

vary for different types of vessel, and for a given vessel type they vary with draught, wave direction, forward speed<br />

and wave period (or frequency). It is important to obtain accurate values for the RAO amplitude and phase if the<br />

dynamics of the system are to be correctly modelled.


w<br />

159<br />

Theory, Vessel Theory<br />

RAOs can be obtained either from model tests or from specialist computer programs. The data may be presented in<br />

tabular or graphical form: tables of numbers are better for our purposes since they can be imported directly into<br />

<strong>OrcaFlex</strong> (see Import RAOs from Text Files).<br />

There are many different conventions for defining RAOs. There have been attempts at standardisation but these<br />

have not been successful so there remain differences between the main computer programs and model basins: some<br />

establishments even use different conventions for reporting model and computed data. The only safe course is to<br />

obtain a complete description of the system used for the data in each case.<br />

The <strong>Orcina</strong> convention is to use the amplitude of response (in length units for surge, sway, heave, in degrees for roll,<br />

pitch, yaw) per unit wave amplitude, and to use the phase lag from the time the wave crest passes the RAO origin<br />

until the maximum positive excursion is reached (in other words, the phase origin being at the RAO origin).<br />

Mathematically, this is given by:<br />

where<br />

x = R.a.cos (ωt - φ)<br />

x is the vessel displacement (in length units for surge, sway, heave, in degrees for roll, pitch, yaw)<br />

a, ω are wave amplitude (in length units) and frequency (in radians/second)<br />

t is time (in seconds)<br />

R, φ are the RAO amplitude and phase.<br />

However, <strong>OrcaFlex</strong> can accept RAO data using a wide range of different conventions so you can input your RAO data<br />

in its original form and simply tell <strong>OrcaFlex</strong> what conventions apply to that data.<br />

In addition to the actual RAO data you therefore also need to know:<br />

� The coordinates of the RAO origin and of the phase origin.<br />

� The system used to define wave direction. In <strong>OrcaFlex</strong> 0° means waves approaching the vessel from astern and<br />

90° means waves coming from the starboard side, but if a different convention applies to your data then you<br />

must allow for this when entering the data.<br />

� The coordinate system used to define vessel motions and, in particular, which direction is positive. That is<br />

whether surge is positive forward or aft, whether heave is positive up or down and whether pitch is positive<br />

bow up or bow down.<br />

� Whether the rotational RAO data are in degrees (or radians) of rotation per metre (or foot) of wave height, or in<br />

degrees (radians) per degree (radian) of wave slope or wave steepness.<br />

� The reference time for phase angles, and the reporting convention used (e.g. whether phases are reported as<br />

lags or leads). Again, <strong>OrcaFlex</strong> allows a range of options.<br />

Although <strong>OrcaFlex</strong> allows the RAO input data to use a wide range of systems, all <strong>OrcaFlex</strong> results use a right-handed<br />

system in which the positive movements are as follows:<br />

Surge positive Forward<br />

Sway positive to Port<br />

Heave positive Up<br />

Roll positive Starboard Down<br />

Pitch positive Bow Down<br />

Yaw positive Bow to Port<br />

Wave Load RAOs<br />

RAOs, as described above, can also be used to represent the load (force and moment) on a vessel due to waves,<br />

rather than to directly specify its motion. In this case, the amplitude represents the magnitude of the force (in the<br />

surge, sway or heave direction) or moment (in the roll, pitch or yaw direction); the meaning of the phase remains<br />

unchanged.<br />

Example: A surge force RAO of 300 kN/m in a wave of height 6m (and hence wave amplitude 3m) means<br />

that a vessel experiences a surge force varying harmonically between -900kN and +900kN over<br />

each wave cycle; a pitch moment RAO of 1E6 kN.m/m in the same wave means that the vessel<br />

experiences a moment about the y axis varying from -3E6 kN.m to +3E6 kN.m.


Theory, Vessel Theory<br />

160<br />

w<br />

Wave load RAOs do not completely define the vessel motion as do displacement RAOs: they merely define the force<br />

and moment which a wave exerts on the vessel. <strong>OrcaFlex</strong> uses these forces and moments, together with any other<br />

loads on the vessel and data on the vessel's mass and inertia, to determine the vessel motion from its equation of<br />

motion.<br />

The description of RAO conventions above, for displacement RAOs, carries over to wave load RAOs with just one<br />

minor difference: rotational wave load RAOs must be expressed per unit of wave height, and they will have<br />

dimensions of moment per unit length.<br />

5.11.3 RAO Quality Checks<br />

RAOs (particularly the phases) are difficult, abstract concepts which makes them difficult to check. It is extremely<br />

important to check them, since the same difficulty applies to the people who derived the data in the first place. RAOs<br />

and phases, even from the most respected sources, are notoriously error-prone!<br />

Fortunately, there are a few natural points of reference where we know what must be going on. The most obvious<br />

and useful ones are responses at very short and very long wave periods.<br />

Displacement RAOs<br />

In very short period waves, the vessel inertia suppresses response, so for all degrees of freedom the expected<br />

displacement RAO amplitude is zero (and phase is then irrelevant).<br />

In very long waves (typically wave periods over 20 seconds for ships or 30 seconds for semisubmersibles) the<br />

vessel will move like a raft on the wave surface. The tables below give the expected displacement RAO amplitudes<br />

and phases for a free-floating vessel in very long waves.<br />

Expected RAOs for a vessel in very long waves<br />

From ahead<br />

(180°)<br />

From astern<br />

(0°)<br />

From port<br />

(270°)<br />

From starboard<br />

(90°)<br />

Amp. Phase Amp. Phase Amp. Phase Amp. Phase<br />

Surge 1 -90° 1 +90° 0 ~ 0 ~<br />

Sway 0 ~ 0 ~ 1 -90° 1 +90°<br />

Heave 1 0° 1 0° 1 0° 1 0°<br />

Roll 0 ~ 0 ~ 1 -90° 1 +90°<br />

Pitch 1 +90° 1 -90° 0 ~ 0 ~<br />

Yaw 0 ~ 0 ~ 0 ~ 0 ~<br />

Towards direction β<br />

Amplitude Phase<br />

Surge | cos(β) | +90° if cos(β)>0<br />

-90° if cos(β)0<br />

-90° if sin(β)0<br />

-90° if sin(β)0<br />

+90 if cos(β)0<br />

0° if sin(2β)


w<br />

161<br />

Theory, Vessel Theory<br />

Notes: In these tables, the translational amplitudes are non-dimensionalised against wave amplitude and<br />

the rotational amplitudes are non-dimensionalised against maximum wave slope.<br />

The phases given are lags relative to the wave crest so that +90° means that the maximum positive<br />

motion occurs 90° after the wave crest passes the vessel. In these tables we use the conventions of<br />

positive surge is forward, positive sway is to port, positive heave is up, positive roll is starboard<br />

down, positive pitch is bow down and positive yaw is bow to port.<br />

When the amplitude is zero the phase value is irrelevant; this is indicated in the tables by '~' .<br />

You can check RAOs in two ways. First, <strong>OrcaFlex</strong> provides RAO graphs that help spot errors, see Checking RAOs.<br />

Second, you can run quick simulations with only the vessel in the model and then check that the motions you see are<br />

sensible.<br />

Consider a ship in waves coming from ahead. Set up a simple <strong>OrcaFlex</strong> model with the vessel only – nothing else –<br />

set the vessel's primary motion to None, secondary motion to RAOs + Harmonic, and run a short simulation (say 10<br />

seconds build up plus 2 wave periods). Use a large wave height (20m) and long time step – say 0.05 seconds for both<br />

inner and outer time steps. When the run is finished (a few seconds only for such a trivial case) replay the last wave<br />

period and watch to see whether the motion of the ship is realistic. The best view direction is horizontal, normal to<br />

the direction of travel of the waves. With the waves coming from the right on screen, then in the wave crest the ship<br />

should be at maximum heave up and moving to the left, and vice versa in the trough. At the point of maximum wave<br />

slope as the crest approaches, the ship should be at maximum surge forwards into the wave and maximum pitch<br />

angle with the bow up. If the phase convention has been misunderstood (e.g. leads have been read as lags) then the<br />

motion is obviously wrong and you should go back and re-examine the data, or confirm your interpretation with the<br />

data source.<br />

This is an excellent check for phases, which are usually the most troublesome to get right. It is not quite so good for<br />

amplitudes, but it is nevertheless worth pursuing. If the wave is very long compared to the ship, then the ship should<br />

move like a small particle in the water surface. Heave amplitude should be equal to wave amplitude and pitch<br />

motion should keep the deck of the ship parallel to the water surface. Surge amplitude should also be equal to wave<br />

amplitude in deep water, but will be greater in shallow water in which the wave particle orbits are elliptical.<br />

The check can be extended to other wave directions. Broadly speaking, we may expect the motion to be<br />

predominantly in the wave direction, with the phasing of surge and sway such that the components in the wave<br />

direction reinforce each other. Similarly, roll and pitch phasing should be such that the components of rotation<br />

about an axis normal to the wave direction reinforce each other. Yaw phasing for a ship in seas off the bow should<br />

be such that the ship yaws towards the broadside on position as the wave crest passes: this is easiest to see in a<br />

near-plan view. Generally speaking, if it looks right in long waves, it probably is right. If not, then think again!<br />

Wave Load RAOs<br />

Since we can relate wave load RAOs to displacement RAOs, we can similarly determine the long-wave limit for wave<br />

load RAOs. <strong>OrcaFlex</strong> does this for the RAO graphs to facilitate checking wave load RAOs.<br />

The simple model-building exercise described above also works well for wave load RAOS: just set primary motion to<br />

Calculated (6 DOF), superimposed motion to None.<br />

Note: You may need to run a longer simulation, with smaller time steps, for calculated vessel motion than<br />

for displacement RAOs, to allow the model to 'settle down'.<br />

5.11.4 Current and Wind Loads<br />

These loads are an important source of damping when modelling vessel slow drift. For a discussion of the various<br />

damping sources see Damping Effects on Vessel Slow Drift.<br />

The current and wind drag loads on a vessel are calculated using the data specified on the Current and Wind Load<br />

pages on the vessel type data form. The loads are split into those due to translational relative velocity and yaw rate.<br />

Drag Loads due to Translational Relative Velocity<br />

The drag loads due to translational velocity of the sea and air past the vessel are calculated using the standard<br />

OCIMF method, which is outlined below. For further details see Oil Companies International Marine Forum, 1994.<br />

The OCIMF method calculates the surge, sway and yaw drag loads on a stationary vessel. <strong>OrcaFlex</strong> extends this to a<br />

moving vessel by replacing the current (or wind) velocity used in the OCIMF method with the relative translational<br />

velocity of the current (or wind) past the vessel.


Theory, Vessel Theory<br />

162<br />

w<br />

More precisely, the relative velocity used is the current (or wind) velocity, relative to the low-frequency primary<br />

motion of the vessel, at the specified current (or wind) load origin. In other words the relative velocity includes the<br />

current but not the waves, and it includes the low-frequency primary motion of the vessel, but not the wavefrequency<br />

motion or the superimposed motion.<br />

Note that the OCIMF method does not include any drag due to yaw angular velocity of the vessel, since there is none<br />

for a stationary vessel. Nor does the <strong>OrcaFlex</strong> extension of OCIMF add these yaw rate drag terms, since the OCIMF<br />

method has no framework for them. They are therefore calculated separately in <strong>OrcaFlex</strong> – see Drag Loads due to<br />

Yaw Rate below.<br />

Notes: The OCIMF method is intended for tankers, but could be applied to other vessel types providing<br />

suitable data is obtained.<br />

The wind load is only included if the Include wind loads on Vessels option is enabled in the<br />

Environment data.<br />

Warning: The current and wind loads are based on theory for surface vessels and are not suitable for<br />

submerged vessels.<br />

The drag loads due to surge and sway relative velocity are calculated as given by the following OCIMF formulae.<br />

where<br />

Surge Force = ½CsurgeρV 2 Asurge<br />

Sway Force = ½CswayρV 2 Asway<br />

Yaw Moment = ½CyawρV 2 Ayaw<br />

Asurge, Asway and Ayaw are the surge and sway areas and the yaw area moment. For current these correspond to<br />

the exposed areas below the waterline, and for wind to the exposed areas above the waterline.<br />

Csurge, Csway and Cyaw are the surge, sway and yaw coefficients for the actual current or wind direction relative<br />

to the low-frequency vessel heading.<br />

ρ is the water density (for current drag) or air density (for wind drag).<br />

V is the magnitude of the relative velocity of the sea or air past the vessel. For wind loads, V is based on the<br />

wind velocity specified in the data (i.e. the wind velocity at 10m above mean water level). For hydrodynamic<br />

drag, V is based on the current velocity at the low-frequency instantaneous position of the load origin (if this<br />

is above the water surface, then the current velocity at the surface is used). In both cases V is taken relative<br />

to the vessel: it includes allowance for the translational velocity of the load origin due to any low-frequency<br />

primary motion of the vessel, but does not include any wave-frequency or superimposed motion.<br />

The surge force, sway force and yaw moment act at the current or wind load origin. The surge and sway forces act in<br />

the vessel Vx and Vy-directions, respectively, and the yaw moment acts about the vessel Vz-direction.<br />

Note: The OCIMF standard method uses L 2 D for the yaw area moment for current loads, and LAsway for<br />

the yaw area moment for wind loads, where L is the length between perpendiculars and D is the<br />

draught. For current loads (not wind loads) the OCIMF standard method uses LD for both the surge<br />

and sway areas.<br />

Drag Loads due to Yaw Rate<br />

A vessel rotating in yaw will generate a drag moment resisting the yaw rate, but the OCIMF method described above<br />

does not include this drag load (since the OCIMF method is designed for stationary vessels).<br />

For wind drag these yaw rate terms are insignificant and so are omitted by <strong>OrcaFlex</strong>. But for current drag they are<br />

important so <strong>OrcaFlex</strong> models them, using the formulae<br />

where<br />

Surge Force = (½ρ|ω|ω)Ksurge<br />

Sway Force = (½ρ|ω|ω)Ksway<br />

Yaw Moment = (½ρ|ω|ω)Kyaw (1)<br />

Ksurge, Ksway, Kyaw are the yaw rate drag factors (specified on the Current Load page on the vessel type data<br />

form).


w<br />

163<br />

Theory, Vessel Theory<br />

ω is the vessel yaw rate, in radians per second, due to any low-frequency primary motion of the vessel<br />

ρ is the water density.<br />

These yaw rate drag loads are then applied at the current load origin.<br />

Warning: Danger of double-counting: If manoeuvring load is also included then it may include potential<br />

theory surge and sway force contributions that are quadratic in ω. To avoid counting these<br />

contributions twice, if manoeuvring load and manoeuvring load are both included then you must<br />

ensure that the yaw rate drag factors only include the contributions due to viscous effects.<br />

Estimating the Yaw Rate Drag Factors<br />

The above formulae (1) are based on a simple strip theory estimate of the drag loads on a yawing vessel, as given by<br />

Wichers (1979). Consider the simplest situation where the vessel centre is stationary but the vessel is yawing at rate<br />

ω about that centre. Let us also assume that the area exposed to sway drag is a simple rectangle of height D (the<br />

draught) and length L (the length between perpendiculars), and that for simplicity we choose to put the load origin<br />

at the centre of that area.<br />

We now divide the drag area into vertical strips of width δx and consider the sway drag load on the strip at distance<br />

x forward of the centre. The strip's area is Dδx and its sway velocity due to the yaw rate is ωx, so we can estimate<br />

the sway drag load on it by ½ρCdDδx(ωx)|ωx| where Cd is the drag coefficient, which we assume to be the same for<br />

all the strips.<br />

These sway drag loads from each strip, and their moments about the centre, are then integrated to give the total<br />

sway force and a contribution to yaw moment. When we do this integral the sway forces from corresponding strips<br />

forward and aft of centre have the same magnitude but opposite direction, so they cancel and the total sway drag<br />

force is therefore zero. However the yaw moment terms from forward and aft of centre have the same magnitude<br />

and same direction, so they reinforce, giving a significant yaw drag moment. In fact the integral gives the following<br />

yaw moment.<br />

Yaw Moment = (½ρω 2 )(CdDL 4 /32) (2)<br />

The same argument can be applied to the drag forces in the surge direction, with length L being replaced by width<br />

W. But for a slender vessel W is much less than L, so the surge force contribution to yaw moment is generally<br />

negligible.<br />

Comparing equations (1) and (2) we see that the Kyaw corresponds to the bracketed term (CdDL 4 /32) in equation (2).<br />

This is in fact a combination of a drag coefficient and the 3rd moment of drag area about the centre.<br />

This strip theory argument therefore concludes that for a slender ship, with the hydrodynamic drag load origin at<br />

the centre, then we can estimate the yaw rate drag factors by:<br />

Ksurge = Ksway = 0<br />

Kyaw = (CdDL 4 /32)<br />

where Cd is some appropriate drag coefficient. However, there are a lot of questionable assumptions in the strip<br />

theory argument. Indeed Wichers (1979) found that the strip theory results significantly underestimated the actual<br />

yaw drag measured in model tests, unless the Cd value was increased to about 5, which is rather high for a drag<br />

coefficient. So if more specific data is available, e.g. from model test, then we recommend setting the yaw rate drag<br />

factors to values that best fit your data.<br />

Interaction with sway rate<br />

Further complications arise if the vessel is swaying as well as yawing. In this case the integral in the above strip<br />

theory argument turns out to give an extra term involving vω. This is an interaction between sway velocity and yaw<br />

rate and its effect is to significantly increase the yaw moment.<br />

<strong>OrcaFlex</strong> does not yet include this interaction effect. The reason for this is that it is difficult to model. Wichers<br />

(1979) included them in his strip theory model, but as described above the model's results did not match<br />

experimental results particularly well. He returned to the problem in his PhD thesis (Wichers, 1988) and developed<br />

a more accurate empirical approach based on model test data. However the method has some theoretical difficulties,<br />

since the formulae break down when ω is zero.<br />

<strong>Orcina</strong> is studying this, with a view to implementing a more accurate yaw rate drag model in a future release of<br />

<strong>OrcaFlex</strong>. In the meantime we recommend that you specify yaw rate drag factors that are appropriate to the<br />

conditions prevailing in the case being modelled. See the papers by Wichers for further information.


Theory, Vessel Theory<br />

5.11.5 Stiffness, Added Mass and Damping<br />

164<br />

w<br />

The stiffness load, and constant-frequency added mass and damping loads, are calculated using the formulae given<br />

below. The calculation of the frequency-dependent added mass and damping loads is rather more complicated: the<br />

theory is given in Vessel Theory: Impulse Response and Convolution, but the units given below apply in both cases.<br />

All these loads are applied at the reference origin.<br />

Stiffness Load<br />

The heave, roll and pitch components of the hydrostatic stiffness matrix, K, are specified on the Vessel Types form.<br />

(The hydrostatic stiffness components for the surge, sway and yaw directions are all zero.)<br />

The vessel equilibrium position, E, is specified by giving its Z, heel and trim, relative to global axes.<br />

The stiffness load is calculated from the vessel primary position, P, using the following matrix equation:<br />

where<br />

[Fheave,Mroll,Mpitch] T = - K.[Oheave,Oroll,Opitch] T<br />

Fheave, Mroll and Mpitch are the heave force, roll moment and pitch moment, respectively.<br />

O = P - E is the offset of the primary position from the equilibrium position, at the specified reference origin.<br />

Here the angular offsets Oroll and Opitch are in radians, so the units of the stiffness matrix are:<br />

heave roll/pitch<br />

heave F/L F/radian<br />

roll/pitch (F.L)/L (F.L)/radian<br />

where F and L denote the units of force and length, respectively.<br />

Damping Load<br />

The damping load is equal to -D.V, where D is the specified damping matrix and V is the (6 degree of freedom) vector<br />

of vessel velocity and angular velocity relative to the earth at the specified reference origin.<br />

The damping load is calculated using the following matrix equation:<br />

where<br />

[Fx,Fy,Fz,Mx,My,Mz] T = -D.[vx,vy,vz,ωx,ωy,ωz] T<br />

Fx, Fy, Fz, Mx, My and Mz are the components of the resulting damping force and moment.<br />

vx, vy, and vz are the components of the vessel velocity at the specified reference origin.<br />

ωx, ωy and ωz are the components of the vessel angular velocity.<br />

Note: All components referred to here are in the directions specified by the conventions data. For details<br />

see added mass, damping and stiffness data.<br />

The angular velocities here are in radians per unit time, so the units of the damping matrix elements are:<br />

surge/sway/heave roll/pitch/yaw<br />

surge/sway/heave F / (L/T) F / (rad/T)<br />

roll/pitch/yaw (F.L) / (L/T) (F.L) / (rad/T)<br />

where F, L and T denote the units of force, length and time, respectively. To see this, consider the surge-surge<br />

element as surge force per unit surge velocity, surge-sway as surge force per unit sway velocity, etc; surge-roll as<br />

surge force per unit roll rate; roll-surge as roll moment per unit surge velocity; and roll-roll as roll moment per unit<br />

roll rate. 'Unit roll rate' means a roll rate of 1 radian/sec.<br />

Added Mass Load<br />

The added mass load is calculated as described above for the damping load, but using the specified added mass<br />

matrix instead of the damping matrix, and using the vessel acceleration at the reference origin, instead of the vessel<br />

velocity.<br />

The angular accelerations are expressed in radians/T 2 , so the units of the added mass matrix elements are:<br />

surge/sway/heave roll/pitch/yaw


w<br />

surge/sway/heave M M.L<br />

roll/pitch/yaw M.L M.L 2<br />

where M, L and T denote the units of mass, length and time, respectively.<br />

165<br />

Theory, Vessel Theory<br />

Note: If the vessel's Primary Motion is set to Calculated (3 DOF) then reduced added mass and damping<br />

matrices are used, having only surge, sway and yaw components, and the damping and added mass<br />

loads are not calculated in the heave, roll and pitch directions. The stiffness matrix, having only<br />

heave, roll and pitch components, is not used at all in this case.<br />

5.11.6 Impulse Response and Convolution<br />

To implement frequency-dependent added mass and damping in the time domain, <strong>OrcaFlex</strong> uses a method proposed<br />

by Cummins (1962), and implemented by Wichers (1979). This method involves calculating the Impulse Response<br />

Function (IRF) for the vessel and then applying that IRF at each time step using a convolution integral to account for<br />

the past motion of the vessel. In addition, the infinite-frequency added mass matrix, A(∞), must be calculated and<br />

included in the vessel total inertia matrix.<br />

In more detail, at each calculation time t in the simulation the total added mass and damping load (force and<br />

moment) on the vessel is given by the following 6 degree of freedom equation:<br />

where<br />

F(t) = -A(∞) x''(t) + Integral(s=0 to Tc) IRF(s) x'(t-s) ds<br />

x'' and x' are the vessel acceleration and velocity, respectively, of the added mass and damping reference<br />

origin relative to the global origin, due to primary motion of the vessel<br />

Tc is the cutoff time specified by the user<br />

s is a time lag integration variable.<br />

This load is applied at the added mass and damping reference origin.<br />

Impulse Response Function (IRF)<br />

<strong>OrcaFlex</strong> calculates the IRF (a 6x6 matrix-valued function of time) from the user-specified frequency-dependent<br />

damping data {B(fi), i=1,2,3,…,m} from the equation<br />

IRF(t) = 4 Integral(f=0 to infinity) B(f) cos(2πft) df.<br />

This integral is calculated numerically with the following assumptions about the form of the damping:<br />

� It is assumed to vary linearly between the given frequencies {fi, i=1,2,3,…,m}.<br />

� It is assumed to decay to zero at zero frequency.<br />

� It is assumed to decay as f -3 beyond the highest frequency given in the data.<br />

Infinite-Frequency Added Mass A(∞)<br />

The infinite-frequency added mass matrix gives the vessel's instantaneous response to acceleration (as opposed to<br />

the IRF, which characterises the response to past motion). A(∞) can be estimated from the IRF and any one of the<br />

added mass matrices specified, using the following equation:<br />

Estimate of A(∞) from A(fi) = A(fi) + 1/(2πfi) Integral(s=0 to Tc) IRF(s) sin(2πfis) ds<br />

where {A(fi), i=1,2,3,…,m} are the user-specified added mass matrices for the m frequencies {fi, i=1,2,3,…,m}<br />

specified in the data.<br />

In theory, if the data could be specified for all frequencies and full integration used to calculate the IRF and these<br />

estimates, then all of these estimates would give the same value. But in practice the data is only specified for a finite<br />

set of frequencies and the integrations have to be done numerically, so interpolation approximation errors arise. To<br />

reduce these approximation effects <strong>OrcaFlex</strong> calculates each of the above m separate estimates of its value, and then<br />

takes A(∞) to be the mean of those estimates.<br />

Consistent Added Mass and Damping<br />

The added mass and damping data are not independent. In fact, added mass and damping are mathematically<br />

related through the Kramers-Kronig relations (see Kotik and Mangulis).


Theory, Vessel Theory<br />

166<br />

w<br />

<strong>OrcaFlex</strong> uses the damping data to determine the IRF, and then uses the IRF in conjunction with the added mass<br />

data to estimate the infinite-frequency limit of the added mass.<br />

If the data are consistent, i.e. obey the Kramers-Kronig relations, then the graphs of added mass against frequency<br />

should appear to be converging, with increasing frequency, to the estimated infinite frequency added mass A(∞). If<br />

they appear to be converging to a limit which differs significantly from the estimated value A(∞), then this may<br />

indicate that the data are not consistent. In these circumstances, the results of the calculation may not be reliable.<br />

5.11.7 Wave Drift and Sum Frequency Loads<br />

The wave drift load and sum frequency load are second order wave loads that act on objects subject to waves. They<br />

can be applied to a vessel and are calculated based on the dimensional Quadratic Transfer Function (QTF) data<br />

specified in the user's Wave Drift QTF and Sum Frequency QTF data. For a detailed description of the theory see<br />

Faltinsen's book. Here we give a summary and the details of the formulae used in <strong>OrcaFlex</strong>.<br />

The wave loads on a vessel can be expressed as a sum of first order, second order and even higher order terms. The<br />

linear first order terms are the largest. The second order terms are non-linear effects that are generally much<br />

smaller, but they can be significant in some cases. We neglect terms higher than second order.<br />

The first order load is the sum of a contribution from each individual wave component in the sea state; these loads<br />

excite the vessel's first order motion, which can be modelled in <strong>OrcaFlex</strong> using either displacement RAOs or load<br />

RAOs. The second order load is quadratic with wave amplitude and consists of contributions from each pair of wave<br />

components in the sea state. There are two types of second order contributions:<br />

� Difference frequency terms from each wave component pair; the total of all of these terms is called the wave<br />

drift load. The contribution from a given pair of wave components has frequency equal to the difference<br />

between the frequencies of the wave components in the pair. Wave component pairs of equal frequencies, such<br />

as each wave component paired with itself, give constant (zero frequency) contributions; the sum of all these<br />

contributions gives the mean wave drift load, which gives rise to a mean static offset of the vessel. Wave<br />

component pairs that are near each other in frequency give low frequency load contributions; these determine<br />

the slowly varying part of the wave drift load, which can excite slow drift motion of the vessel. Wave component<br />

pairs that differ more in frequency give higher frequency contributions; these are generally less important to<br />

model.<br />

� Sum frequency terms from each component pair, the total of which is called the sum frequency load. The<br />

contribution from a given pair of wave components has frequency equal to the sum of the frequencies of the two<br />

wave components, which can be significantly higher than the typical wave frequencies. These can be important<br />

to model for some systems, such as TLPs, where they can excite high frequency natural modes of the system,<br />

called 'ringing' modes.<br />

These second order loads can be included in, or excluded from, the analysis by specifying that 'Wave Drift Load (2nd<br />

order)' and 'Sum frequency load (2nd order)' are in the Included Effects on the vessel data form Calculation page. If<br />

the wave drift load is included then the mean wave drift load is included in both the static and dynamic analyses. All<br />

the other second order load contributions are time-varying loads, so they are included (if specified) only in the<br />

dynamic analysis.<br />

Second Order Load Theory<br />

Second order loads are calculated by applying the QTF data to all pairs of the wave components in the sea state,<br />

which is a superposition of a number, n, of the regular wave components present in all the wave trains specified. Let<br />

the properties of the i'th wave component be:<br />

βi = direction, relative to the low frequency heading of the vessel<br />

ai = amplitude<br />

φi = phase lag, relative to the simulation time origin, at the low frequency position of the vessel's QTF origin<br />

τi = period<br />

ωi = 2π/τi = angular frequency<br />

The wave component elevation above mean sea level at simulation time t, at the low frequency position of the<br />

vessel's QTF origin, is therefore aicos(ωit - φi).<br />

The QTFs are similar to Wave Load RAOs – they specify scaling and phasing that are applied to wave components to<br />

give the contributions to the wave load. But whereas RAOs are applied to each individual wave component to give


w<br />

167<br />

Theory, Vessel Theory<br />

that component's contribution to the first-order wave load, QTFs are applied to each pair of wave components to<br />

give that pair's contribution to the second-order wave load.<br />

There are separate sets of QTF data, one for the difference frequency load (wave drift) and one for the sum<br />

frequency load, and within each of these data sets there are separate columns for each of the 6 degrees of freedom<br />

(surge, sway, heave, roll, pitch, yaw).<br />

Consider a single degree of freedom. Then the QTF for that given degree of freedom is a complex-valued function of<br />

the directions β1 and β2 (relative to the vessel) and periods τ1 and τ2 of the wave components in the pair. Let the<br />

wave drift and sum frequency QTFs be distinguished by subscripts 'd' (for 'drift' or 'difference') and 's' for 'sum':<br />

Qd(β1, β2, τ1, τ2) = wave drift QTF, in complex-valued form<br />

Qs(β1, β2, τ1, τ2) = sum frequency QTF, in complex-valued form<br />

Then the wave drift and sum frequency second order wave loads are sums of load contributions from all paired<br />

combinations of wave components in the sea state, given by:<br />

where<br />

Wave drift load = Σ i=1..n Σ j=1..n Re{ Qd(βi, βj, τi, τj) . ai.aj.exp( i.[(ωi-ωj)t - (φi-φj)] }<br />

Sum frequency load = Σ i=1..n Σ j=1..n Re{ Qs(βi, βj, τi, τj) . ai.aj.exp( i.[(ωi+ωj)t - (φi+φj)] }<br />

Re{.} denotes taking the real part of a complex number.<br />

Qd(βi, βj, τi, τj) and Qs(βi, βj, τi, τj) are the wave drift and sum frequency QTFs for interaction of wave<br />

components i and j. These QTFs are derived from the user data; the derivation depends on how the QTF data<br />

is specified and is described below.<br />

QTFs specified as Full QTFs<br />

QTF values for user-specified directions and periods<br />

For sum frequency QTFs, and for wave drift QTFs when the QTF Specification Method is Full QTFs, the user data<br />

specify the QTF amplitude and phase. The complex-valued wave drift and sum frequency QTFs are then given by:<br />

where<br />

Qd(β1, β2, τ1, τ2) = ad(β1, β2, τ1, τ2) . exp[ -i.φd(β1, β2, τ1, τ2) ] = wave drift QTF, in complex-valued form<br />

Qs(β1, β2, τ1, τ2) = as(β1, β2, τ1, τ2) . exp[ -i.φs(β1, β2, τ1, τ2) ] = sum frequency QTF, in complex-valued form<br />

ad(β1, β2, τ1, τ2) = wave drift amplitude, as specified in the data<br />

φd(β1, β2, τ1, τ2) = wave drift phase lag, in radians, relative to the difference frequency crest<br />

as(β1, β2, τ1, τ2) = sum frequency amplitude, as specified in the data<br />

φs(β1, β2, τ1, τ2) = sum frequency phase lag, in radians, relative to the sum frequency crest.<br />

The QTF amplitudes here, ad and as, are as specified in the user QTF data. The phase lag values φd and φs are derived<br />

from the user's data allowing for the phase conventions specified on the Vessel Type Conventions page.<br />

QTF values for other directions and periods<br />

<strong>OrcaFlex</strong> uses linear interpolation and extrapolation to derive the diagonal QTF values for directions β and periods τ<br />

not specified in the user's data. For details see Interpolation and extrapolation of QTF data.<br />

Wave drift QTFs specified by Newman's approximation<br />

The above theory uses the full QTF matrix, but sometimes full QTF data are not available for all pairs of directions<br />

(β1, β2) and periods (τ1, τ2). Even if all the full QTF data are available, the calculations detailed above are very<br />

computationally intensive, since they involve double summations over all wave components in the sea state. The<br />

time taken to calculate the second order wave loads using the full QTF theory is therefore proportional to n 2 , the<br />

square of the number of wave components in the sea state.<br />

For the wave drift load, both of these issues can be addressed by using the Newman approximation (Newman 1974).<br />

This approximation only requires QTF data for equal pairs of directions (β1 = β2 = β) and equal periods (τ1 = τ2 = τ),<br />

which are the 'diagonal' values of the full wave drift QTF function (the mean wave drift load data). The Newman<br />

method then approximates the 'off-diagonal' QTF values for component pairs with different directions or different<br />

periods by using an average of the 'diagonal' QTF values for those directions and periods. The approximation


Theory, Vessel Theory<br />

168<br />

w<br />

method also enables the double summation to be simplified to calculating the square of a single summation, so it<br />

also reduces the calulation time to being only proportional to n, not to n 2 .<br />

For the wave drift load <strong>OrcaFlex</strong> therefore provides a choice of QTF Specification Method: Newman's<br />

approximation or Full QTFs. For the sum frequency wave load there is no equivalent to the Newman<br />

approximation, so the full QTF must be specified and the full double summation calculation performed.<br />

When the Newman approximation method is used, the user data specifies only the mean wave drift QTFs, which are<br />

the 'diagonal' entries in the full QTF matrix. These diagonal QTF values Qdiag(β,τ) = Qd(β, β, τ, τ) must be real, on<br />

theoretical grounds, so the user specifies these values directly as a signed real value, for each of a number of wave<br />

directions and periods. A +ve data value gives an in-phase QTF load contribution, a -ve value corresponds to an<br />

exactly out-of-phase contribution. No separate phase values are specified, and the phase conventions specified for<br />

the Vessel Type do not apply.<br />

Newman approximation for off-diagonal QTFs<br />

Newman QTF data only specifies the mean wave drift QTFs, which are the diagonal entries in the full QTF. The offdiagonal<br />

wave drift QTF values, Qd(β1, β2, τ1, τ2) where β1≠β2 or τ1≠τ2, are then approximated from the specified<br />

diagonal QTFs that are on the same 'row' and 'column'. Newman's original approximation method used the<br />

arithmetic mean of the two diagonal QTFs, but <strong>OrcaFlex</strong> uses the following variant formulation developed later by<br />

Standing, Brendling and Wilson, which uses the geometric mean instead of the arithmetic mean:<br />

Qd(β1,β2,τ1,τ2) = sgn(Qdiag(β1,τ1)) . √|Qdiag(β1,τ1).Qdiag(β2,τ2)|, if sgn(Qdiag(β1,τ1)) = sgn(Qdiag(β2,τ2)<br />

Qd(β1,β2,τ1,τ2) = 0, if sgn(Qdiag(β1,τ1)) ≠ sgn(Qdiag(β2,τ2))<br />

where |.| denotes absolute value (|x| = x if x≥0, -x if x0, -1 if x


w<br />

169<br />

Theory, Vessel Theory<br />

separate 1-dimensional interpolations, the first being according to period τ (or frequency ω=2π/τ if τ is larger<br />

than the longest period specified in the data), and then the second according to direction β.<br />

� For bi-directional full QTFs (wave drift or sum frequency), the interpolation is needed for a QTF Q(β1,β2,τ1,τ2)<br />

that is a function of 4 variables. This interpolation is done using a 4-dimensional linear interpolation in the<br />

space whose coordinates are β1, β2, τ1 and τ2.<br />

� For uni-directional full QTFs (wave drift or sum frequency), the interpolation is only needed for a QTF function<br />

Q(βmean,βmean,τ1,τ2) that is a function of only 3 variables, since the QTF is only needed for wave component pairs<br />

with equal directions, βmean. So in this case the interpolation is done using a 3-dimensional linear interpolation<br />

space whose coordinates are βmean, τ1 and τ2.<br />

Default Limiting Values<br />

The default limiting value at τ=Infinity is Q=0. The effect of this is that if the user does not specify the QTF limit for<br />

τ=Infinity then for periods greater than the longest period specified in the data the user data will be linearly<br />

extrapolated (on frequency) towards zero QTF at infinite period (zero frequency). This default long period QTF limit<br />

is theoretically correct for a freely floating body, since the body behaves like a cork and does not disturb the<br />

propagating wave, so the second order wave load tends to zero for long periods (low frequencies).<br />

The default limiting value at τ=0 is taken to be equal to the Q value for the lowest period specified in the data. The<br />

effect of this is that if the user does not specify the QTF limit for τ=0 then the QTF given for the shortest period<br />

specified in the data will be used for all periods less than that shortest specified period.<br />

Warning: QTF extrapolation could introduce significant errors if a significant amount of wave energy is<br />

outside the range of wave periods specified in the QTF data. In addition, the default zero QTF value<br />

for long period waves is only theoretically valid for a free-floating vessel. It could be poor for a fixed<br />

or moored vessel (especially if firmly moored). The limiting QTFs for zero and Infinity periods<br />

should therefore be specified in the data if the default limits are not suitable.<br />

Wave Drift Damping Theory<br />

<strong>OrcaFlex</strong> will calculate the wave drift damping effect on the wave drift load if both Wave Drift Load and Wave Drift<br />

Damping are in the included effects.<br />

The wave drift damping is calculated using an encounter effects approach developed by Molin from Aranha's<br />

original analysis in deep water, but extended according to the results of Malenica et al to be applicable to all water<br />

depths. The velocity used in this calculation is the vessel low frequency velocity relative to the current, so the wave<br />

drift damping includes both the current effect on wave drift load and the damping effect on vessel low frequency<br />

motion.<br />

Note: These encounter effects are only applied to the wave drift load, not to the sum frequency load.<br />

<strong>OrcaFlex</strong> also only applies wave drift damping in the surge and sway directions, since there is not<br />

normally significant slow drift motion in heave, roll or pitch, and there is not yet a widely accepted<br />

method of modelling yaw wave drift damping.<br />

Wave Drift Damping with Newman Approximation Method<br />

Molin uses the same form of Newman's approximation as <strong>OrcaFlex</strong>. The effect of wave drift damping is implemented<br />

by using modified wave drift QTF values, Qde(β,β,τ,τ), where the extra subscript 'e' has been added to denote that<br />

they allow for the encounter effects. The modified diagonal QTF values are given by:<br />

where<br />

Qde(β,β,τ,τ) = Ae . Qd(βe,βe,τe,τe)<br />

Ae = 1 + (ω ∂α/∂ω - 2)UL/Cg = Aranha scaling factor<br />

βe = β + UT/Cg = encounter heading<br />

τe = 2π/ωe = encounter period<br />

ωe = ω(1 - UL/Cp) = encounter frequency<br />

Cp = ω/k = wave phase velocity<br />

Cg = ∂ω/∂k = wave group velocity<br />

k = wave number


Theory, Vessel Theory<br />

α = Cg/Cp<br />

U = vessel low-frequency velocity - current velocity, at the wave drift QTF origin<br />

170<br />

w<br />

UL, UT = components of U in the wave component direction and transverse to that direction, respectively.<br />

For water of depth h we have:<br />

ω = √[g k tanh(kh)]<br />

g = acceleration due to gravity<br />

Cp = √[g tanh(kh)/k]<br />

α = ½[1 + 2kh/sinh(2kh)]<br />

∂α/∂ω = h [1 - 2kh/tanh(2kh)] / [Cg sinh(2kh)]<br />

In the case of deep water, the above equations reduce to:<br />

ω = √(g k)<br />

Cp = √(g/k)<br />

α = ½<br />

which gives:<br />

∂α/∂ω = 0<br />

Ae = 1 - (4 ω / g) UL = Aranha scaling factor<br />

βe = β + (2 ω / g) UT = encounter heading<br />

ωe = ω - (ω 2 / g) UL = encounter frequency<br />

When wave drift damping is included, <strong>OrcaFlex</strong> uses these modified QTF values, Qde(β,β,τ,τ), for surge and sway. The<br />

unmodified QTF values are always used for heave, roll, pitch and yaw, and of course for all degrees of freedom if<br />

wave drift damping is not included.<br />

By modifying the diagonal values of the QTFs in this way, before applying Newman's approximation, <strong>OrcaFlex</strong> is able<br />

to incorporate the time-varying effect of wave drift damping, not just the constant mean value.<br />

Wave Drift Damping with Full QTFs Method<br />

With full QTFs <strong>OrcaFlex</strong> uses the same approach as with the Newman approximation method described above, by<br />

using the QTF values for the encounter directions and encounter periods of the two wave components in the pair<br />

and then scaling by an Aranha factor.<br />

However, in the literature the Aranha factor is only defined for the mean drift QTFs, where the two components in<br />

the pair have the same frequencies, so for full QTFs this needs to be extended to wave component pairs with<br />

different frequencies. In <strong>OrcaFlex</strong> this is done by using the geometric mean of the mean drift Aranha factors for the<br />

two components, as follows:<br />

where<br />

Qde(β1,β2,τ1,τ2) = Ae Qd(β1e,β2e,τ1e,τ2e)<br />

Ae = √(A1eA2e) = geometric mean of the mean drift Aranha scaling factors for the two wave components<br />

Aie = 1 + (ωi ∂αi/∂ωi - 2)UL/Cg,i = mean drift Aranha factor for component i, for i = 1 and 2<br />

βie = β + UT/Cg,i = encounter direction for component i, for i = 1 and 2<br />

τie = 2π/ωie = encounter period for component i, for i = 1 and 2<br />

ωie = ωi (1 - UL/Cp,i) = encounter frequency for component i, for i = 1 and 2<br />

Warning: Limitation of Wave Drift Damping Effect<br />

The theory of wave drift damping assumes that the vessel velocity is small compared to the wave speed; if it is not<br />

then these formulae can result in unreasonable encounter effects. In particular, in the above formula for Qde in deep<br />

water, the Aranha scaling factor [1 - (4 ω / g) UL ] will be negative if UL exceeds a quarter of the wave crest speed,<br />

g/ω. And for an even higher vessel speed the encounter frequency, ωe, could become negative, which is clearly not<br />

meaningful.


w<br />

171<br />

Theory, Vessel Theory<br />

At this point the assumptions have broken down and the theory is no longer valid. To avoid this problem, for both<br />

Newman QTFs and full QTFs, <strong>OrcaFlex</strong> limits the Aranha factor to be non-negative. This effectively says that the<br />

wave drift damping effect for a given wave component can be no greater than (and opposite to) the wave drift load<br />

itself for that component. In other words, for a sufficiently fast-moving vessel and slow-moving wave component,<br />

the wave drift load contribution can be completely cancelled out, but not reversed, by the wave drift damping. This is<br />

only likely to arise for short-wave components, since they travel more slowly. <strong>OrcaFlex</strong> will issue a warning if this<br />

happens for a significant proportion of the wave energy in the sea state.<br />

5.11.8 Manoeuvring Load<br />

Manoeuvring loads are second-order forces and moments that are functions of the low frequency added mass of the<br />

vessel and the low frequency part of its translational and angular velocity. They can play an important role in the<br />

damping of slow drift motion.<br />

You can choose whether manoeuvring loads are included, on the Calculation page of the vessel data form. To<br />

include them select Manoeuvring Load in the Included Effects applied to the vessel. No further data is needed, since<br />

the manoeuvring load is based on the added mass data that is already specified for added mass purposes on the<br />

Stiffness, Added Mass, Damping page of the vessel types form.<br />

The manoeuvring force (F1,F2,F3) and moment (F4,F5,F6) arise from the classical theory of rigid body motion in an<br />

inviscid fluid (see, for example, Lamb §124). They are given by:<br />

where<br />

F1 = Σj=1…6 [ A2ju6uj - A3ju5uj ]<br />

F2 = Σj=1…6 [ A3ju4uj - A1ju6uj ]<br />

F3 = Σj=1…6 [ A1ju5uj - A2ju4uj ]<br />

F4 = Σj=1…6 [ A2ju3uj - A3ju2uj + A5ju6uj - A6ju5uj ]<br />

F5 = Σj=1…6 [ A3ju1uj - A1ju3uj + A6ju4uj - A4ju6uj ]<br />

F6 = Σj=1…6 [ A1ju2uj - A2ju1uj + A4ju5uj - A5ju4uj ] – but see double-counting below<br />

A ij = the added mass matrix coefficients specified by the vessel type data. If frequency-dependent added<br />

mass and damping is used then the added mass matrix for the longest period specified (lowest frequency) is<br />

used. If the vessel type length differs from the vessel length, then these data will be automatically Froudescaled<br />

to the vessel length.<br />

u j = low frequency velocity (j=1…3) and low frequency angular velocity (j=4…6) of the vessel, relative to<br />

current, at the added mass and damping reference origin.<br />

Manoeuvring loads are a low velocity effect (at higher velocities viscous effects dominate), and at wave-frequency<br />

some of these terms are already included in the 2 nd order wave load specified by the wave drift QTFs. So the<br />

manoeuvring load is calculated using the low-frequency components only of the velocity and angular velocity of the<br />

vessel relative to the current, and using the added mass coefficients (Aij) for the longest period specified in the data<br />

(if frequency-dependent added mass and damping is used), or the single added mass matrix specified (for constant<br />

added mass and damping).<br />

Dangers of double-counting<br />

The expression above for F6 contains the following Munk moment terms that are quadratic in the surge and sway<br />

velocity components, u1 and u2: + A11u2u1 + A12u2 2 - A21u1 2 - A22u1u2<br />

If Current Load is included then these Munk moment contributions are assumed to already be included in the load<br />

specified by the OCIMF current load data. So to avoid double-counting these terms, if manoeuvring load and current<br />

load are both included then these Munk moment terms are omitted from the manoeuvring load.<br />

Warning: There is also a danger of double-counting if the u6 2 terms in the above expressions for F1 and F2 are<br />

non-zero and were also included in the surge and sway yaw rate drag factors that are specified on<br />

the current load page. However these factors are assumed to only include viscous loads, and to not<br />

include any potential theory loads.<br />

5.11.9 Other Damping<br />

The other damping load on the vessel is the sum of linear and quadratic terms that are calculated using the other<br />

damping coefficients specified on the vessel type data form. It is only calculated if Other Damping is specified as<br />

included on the vessel data form.


Theory, Line Theory<br />

172<br />

w<br />

The velocity vectors used in the calculation are the translational velocity, V, and angular velocity, Ω, of the wavefrequency<br />

part of the vessel primary motion velocity relative to the earth, at the reference origin. The damping load<br />

is then applied at that reference origin.<br />

The damping model used depends on the vessel type symmetry, as follows.<br />

If the symmetry is not Circular then the damping model treats each degree of freedom independently, and the<br />

damping force, F, and moment, M, are given by:<br />

where<br />

Fx = - Lsurge Vx - Qsurge Vx |Vx|<br />

Fy = - Lsway Vy - Qsway Vy |Vy|<br />

Fz = - Lheave Vz - Qheave Vz |Vz|<br />

Mx = - Lroll Ωx - Qroll Ωx |Ωx|<br />

My = - Lpitch Ωy - Qpitch Ωy |Ωy|<br />

Mz = - Lyaw Ωz - Qyaw Ωz |Ωz|<br />

L and Q are the linear and quadratic other damping coefficients, respectively<br />

subscripts x, y, z denote the vessel primary heading directions (so x & y are horizontal and z vertical).<br />

If the vessel type symmetry is Circular, then the quadratic term instead uses a cross-flow drag model, with a<br />

vertical axis:<br />

where<br />

Fx = - Lsurge Vx - Qsurge Vx |Vh|<br />

Fy = - Lsway Vy - Qsway Vy |Vh|<br />

Fz = - Lheave Vz - Qheave Vz |Vz|<br />

Mx = - Lroll Ωx - Qroll Ωx |Ωh|<br />

My = - Lpitch Ωy - Qpitch Ωy |Ωh|<br />

Mz = - Lyaw Ωz - Qyaw Ωz |Ωz|<br />

Vh = (Vx, Vy, 0) = horizontal vector component of V<br />

Ωh = (Ωx, Ωy, 0) = horizontal vector component of Ω.<br />

5.12 LINE THEORY<br />

5.12.1 Overview<br />

<strong>OrcaFlex</strong> uses a finite element model for a line as shown in the figure below.


w<br />

Segment 1<br />

Segment 2<br />

Segment 3<br />

Actual Pipe Discretised Model<br />

End A<br />

Figure: <strong>OrcaFlex</strong> Line model<br />

End B<br />

173<br />

Node 2<br />

Node 1<br />

Segment 1<br />

Segment 2<br />

Node 3<br />

Segment 3<br />

Theory, Line Theory<br />

The line is divided into a series of line segments which are then modelled by straight massless model segments with<br />

a node at each end.<br />

The model segments only model the axial and torsional properties of the line. The other properties (mass, weight,<br />

buoyancy etc.) are all lumped to the nodes, as indicated by the arrows in the figure above.<br />

Nodes and segments are numbered 1, 2, 3, … sequentially from End A of the line to End B. So segment n joins nodes<br />

n and (n+1).<br />

Nodes<br />

Each node is effectively a short straight rod that represents the two half-segments either side of the node. The<br />

exception to this is end nodes, which have only one half-segment next to them, and so represent just one halfsegment.<br />

Each line segment is divided into two halves and the properties (mass, weight, buoyancy, drag etc.) of each halfsegment<br />

are lumped and assigned to the node at that end of the segment.<br />

Forces and moments are applied at the nodes – with the exception that weight can be applied at an offset. Where a<br />

segment pierces the sea surface, all the fluid related forces (e.g. buoyancy, added mass, drag) are calculated allowing<br />

for the varying wetted length up to the instantaneous water surface level.


Theory, Line Theory<br />

Segments<br />

174<br />

w<br />

Each model segment is a straight massless element that models just the axial and torsional properties of the line. A<br />

segment can be thought of as being made up of two co-axial telescoping rods that are connected by axial and<br />

torsional spring+dampers.<br />

The bending properties of the line are represented by rotational spring+dampers at each end of the segment,<br />

between the segment and the node. The line does not have to have axial symmetry, since different bend stiffness<br />

values can be specified for two orthogonal planes of bending.<br />

This section has given only an overview of the line model. See structural model for full details.<br />

5.12.2 Structural Model Details<br />

The following figure gives greater detail of the line model, showing a single mid-line node and the segments either<br />

side of it. The figure includes the various spring+dampers that model the structural properties of the line, and also<br />

shows the xyz-frames of reference and the angles that are used in the theory below.<br />

Axial spring<br />

+ damper<br />

End B<br />

Sy1<br />

Sx1<br />

Sz Sx1<br />

Sy2<br />

Bending springs<br />

+ dampers<br />

Sz<br />

�<br />

Sx2<br />

Torsion spring<br />

+ damper<br />

�2<br />

��<br />

Nx<br />

Ny<br />

Node<br />

Nz (axial direction)<br />

Figure: Detailed representation of <strong>OrcaFlex</strong> Line model<br />

As shown in the diagram, there are 3 types of spring+dampers in the model:<br />

� The axial stiffness and damping of the line are modelled by the axial spring+damper at the centre of each<br />

segment, which applies an equal and opposite effective tension force to the nodes at each end of the segment.<br />

� The bending properties are represented by rotational spring+dampers either side of the node, spanning<br />

between the node's axial direction Nz and the segment's axial direction Sz.


w<br />

175<br />

Theory, Line Theory<br />

� If torsion is included (this is optional) then the line's torsional stiffness and damping are modelled by the<br />

torsional spring+damper at the centre of each segment, which applies equal and opposite torque moments to<br />

the nodes at each end of the segment. If torsion is not included then this torsional spring+damper is missing and<br />

the two halves of the segment are then free to twist relative to each other.<br />

5.12.3 Calculation Stages<br />

<strong>OrcaFlex</strong> calculates the forces and moments on a mid-node in 5 stages:<br />

1. Tension Forces.<br />

2. Bend Moments.<br />

3. Shear Forces.<br />

4. Torsion Moments.<br />

5. Total Load.<br />

5.12.4 Calculation Stage 1 Tension Forces<br />

Firstly the tensions in the segments are calculated. To do this, <strong>OrcaFlex</strong> calculates the distance (and its rate of<br />

change) between the nodes at the ends of the segment, and also calculates the segment axial direction Sz, which is<br />

the unit vector in the direction joining the two nodes.<br />

Linear axial stiffness<br />

In the case of linear axial stiffness the tension in the axial spring+damper at the centre of each segment is calculated<br />

as follows. It is the vector in direction Sz whose magnitude is given by:<br />

where<br />

Te = Tw + (PoAo - PiAi)<br />

Te = effective tension<br />

Tw = wall tension = EA.ε - 2ν.(PoAo - PiAi) + EA.e(dL/dt)/L0<br />

In this equation for Tw, the first term is the contribution from axial stiffness, the second term is the contribution<br />

from external and internal pressure (via the Poisson ratio effect) and the third term is the axial damping<br />

contribution. And the variables are given by:<br />

EA = axial stiffness of line, as specified on the line types form (= effective Young's modulus x cross-section<br />

area)<br />

ε = total mean axial strain = (L - λL0) / (λL0)<br />

L = instantaneous length of segment<br />

λ = expansion factor of segment<br />

L0 = unstretched length of segment<br />

ν = Poisson ratio<br />

Pi, Po = internal pressure and external pressure, respectively (see Line Pressure Effects)<br />

Ai, Ao = internal and external cross sectional stress areas, respectively (see Line Pressure Effects)<br />

e = damping coefficient of the line, in seconds (this is defined below)<br />

dL/dt = rate of increase of length.<br />

Note: The effective tension, Te, can be negative, indicating effective compression. For the relationship<br />

between effective tension and wall tension see Line Pressure Effects.<br />

This effective tension force vector is then applied (with opposite signs) to the nodes at each end of the segment.<br />

Each mid-node therefore receives two tension forces, one each from the segments on each side of it.<br />

Non-linear axial stiffness<br />

When the axial stiffness is non-linear then the tension calculation is as follows. It is the vector in direction Sz whose<br />

magnitude is given by:<br />

Te = Var Tw(ε) + (1 - 2ν)(PoAo - PiAi) + EAnom.e(dL/dt)/L0


Theory, Line Theory<br />

where<br />

176<br />

w<br />

Var Tw is the function relating strain to wall tension, as specified by the variable data source defining axial<br />

stiffness.<br />

EAnom is the nominal axial stiffness which is defined to be the axial stiffness at zero strain.<br />

As in the linear case the effective tension force vector is then applied (with opposite signs) to the nodes at each end<br />

of the segment. Each mid-node therefore receives two effective tension forces, one each from the segments on each<br />

side of it.<br />

Damping coefficient e<br />

The damping coefficient e represents the numerical damping in the line. It is calculated automatically based on the<br />

Axial Target Damping value specified on the general data form.<br />

where<br />

e = e(critical) . (Target Axial Damping) / 100<br />

e(critical) = (2.SegmentMass.L0/EA) ½ is the critical damping value for a segment<br />

and SegmentMass includes the mass of any contents but not the mass of any attachments.<br />

Notes: This numerical damping term is only included when using the explicit integration scheme. For<br />

implicit integration Rayleigh damping can be used to model structural damping.<br />

If the axial stiffness is non-linear then we use the nominal axial stiffness EAnom in the formula for e.<br />

5.12.5 Calculation Stage 2 Bend Moments<br />

The bend moments are then calculated. There are bending spring+dampers at each side of the node, spanning<br />

between the node's axial direction Nz and the segment's axial direction Sz. Each of these spring+dampers applies to<br />

the node a bend moment that depends on the angle α between the segment axial direction Sz and the node's axial<br />

direction Nz.<br />

These axial directions are associated with the frames of reference of the node and segment. The node's frame of<br />

reference Nxyz is a Cartesian set of axes that is fixed to (and so rotates with) the node. Nz is in the axial direction<br />

and Nx and Ny are normal to the line axis and correspond to the end x- and y-directions that are specified by the<br />

Gamma angle on the line data form (see End Orientation).<br />

The segment has two frames of reference: Sx1, y1, z at the end nearest End A, and Sx2, y2, z at the other end. These<br />

two frames have the same Sz direction, which was calculated in step 1 above, so the bend angle α2 between Nz and<br />

Sz can now be calculated. The effective curvature vector C is then calculated: it is the vector whose direction is the<br />

binormal direction, which is the direction that is orthogonal to Sz and Nz, and whose magnitude is α2 / (½L0), where<br />

L0 is the unstretched length of segment.<br />

Linear, isotropic bending stiffness<br />

In the case of linear, isotropic bending stiffness the bend moment, M2, generated by the bending spring+damper is<br />

calculated. Isotropic bend stiffness means that the bend stiffnesses for the x and y-directions are equal. The bend<br />

moment M2 is the vector in the binormal direction whose magnitude is given by:<br />

where<br />

M2 = EI.|C| + D.d|C|/dt<br />

EI = bending stiffness, as specified on the line types form<br />

D = (λ/100).Dc<br />

Dc = the bending critical damping value for a segment = L0(SegmentMass.EI.L0) ½<br />

λ= target bending damping, as specified on the general data form.<br />

The bend angle (α1) and bend moment vector (M1) on the other side of the node are calculated similarly, so the node<br />

experiences two bend moments, one each from the segments on each side of it.<br />

Linear, non-isotropic bending stiffness<br />

If the bend stiffnesses for bending about the x and y-directions are different, then the above equation is separated<br />

into its components in the Sx2 and Sy2 directions, giving:


w<br />

where<br />

component of M2 in the Sx2 direction = EIx.Cx + Dx.dCx/dt<br />

component of M2 in the Sy2 direction = EIy.Cy + Dy.dCy/dt<br />

EIx, EIy = bending stiffnesses of segment, as specified on the line types form<br />

Cx, Cy = components of the curvature vector C in the Sx2 and Sy2 directions<br />

Dx = (λ/100)L0(SegmentMass.EIx.L0) ½<br />

Dy = (λ/100)L0(SegmentMass.EIy.L0) ½ .<br />

177<br />

Theory, Line Theory<br />

The curvature used in the calculation of bending moments is the value in the true plane of bending, taking full<br />

account of the 3D motions of the adjacent nodes. The bending damping term D represents the effect on bending of<br />

the structural damping in the line; its level is set by the Target Bending Damping data item on the general data form.<br />

The bend angle (α1) and bend moment vector (M1) on the other side of the node are calculated similarly.<br />

Non-linear, isotropic bending stiffness (Elastic or Hysteretic)<br />

In this case the bend moment M2 is given by:<br />

where<br />

M2 = Var BM(α2 / [½ L0]) + D'.d|C|/dt<br />

Var BM is the function relating curvature to bend moment.<br />

D' = (λ/100).D'c<br />

D'c = the bending critical damping value for a segment = L0(SegmentMass.EInom.L0) ½<br />

EInom is the nominal bending stiffness which is defined to be the bending stiffness at zero curvature.<br />

Var BM can be specified by either:<br />

� A tabular variable data source that defines the bending stiffness. The variable data source can be specified as<br />

either hysteretic or elastic as described below.<br />

� A non-linear stress-strain relationship for a homogeneous pipe. This approach results in a non-linear elastic<br />

bend stiffness model.<br />

The bend angle (α1) and bend moment vector (M1) on the other side of the node are calculated similarly.<br />

Elastic or Hysteretic Bending Model<br />

For non-linear bend stiffness you can choose whether the curvature-moment data is interpreted hysteretically or<br />

not.<br />

Non-hysteretic<br />

Non-hysteretic means that the data is applied using a simple elastic model. In this case the bend moment function<br />

Var BM in the above equation is simply the specified function of the current curvature magnitude, without any<br />

allowance for the history of curvature. So if the curvature increases and then decreases again then the bend moment<br />

goes up and down the same non-linear moment-curvature curve. This is illustrated in the following diagram which<br />

shows the bend moment M that results when the non-hysteretic model is used and a simple sinusoidally varying<br />

curvature C is applied.


Theory, Line Theory<br />

M<br />

Figure: Elastic Non-linear Bend Stiffness<br />

Hysteretic<br />

C<br />

178<br />

w<br />

The hysteretic model includes hysteresis effects, i.e. effects of the history of curvature applied. The data is taken to<br />

specify the bend moment that results when the line is bent with slowly increasing curvature. But that if the<br />

curvature reduces again then the bend moment does not come back down the same curve. Instead when the<br />

curvature reduces again the bend moment comes down the curve that is obtained by first undoing and reversing the<br />

first bit of curvature (i.e. the first increment of curvature that was applied), then the second bit of curvature, etc. In<br />

other words the hysteretic model treats curvature as being made up of a series of curvature increments and<br />

corresponding moment increments, and it undoes them on a first in first out basis, as opposed to the last in first out<br />

basis that non-hysteretic bend stiffness uses.<br />

The effect of this hysteretic model is that the bend moment follows a hysteresis curve, as shown in the following<br />

diagrams. The left hand diagram shows the bend moment that results from a sinusoidal curvature history; the<br />

arrows on the curve show the direction of change of the curvature and moment. The right hand diagram shows what<br />

happens if a small curvature cycle is followed by another curvature cycle of greater amplitude.<br />

M<br />

Figure: Hysteretic Non-linear Bend Stiffness<br />

C<br />

M<br />

C


w<br />

The hysteresis model is described in detail by Tan, Quiggin and Sheldrake (2007).<br />

179<br />

Theory, Line Theory<br />

Warning: You must check that the hysteretic model is suitable for the line type being modelled. It is not<br />

suitable for modelling rate-dependent effects. It is intended for modelling hysteresis due to<br />

persisting effects such as yield of material or slippage of one part of a composite line structure<br />

relative to another part.<br />

5.12.6 Calculation Stage 3 Shear Forces<br />

Having calculated the bend moments at each end of the segment, the shear force in the segment can be calculated.<br />

Each model segment is a straight stiff rod in which the bend moment vector varies from M1 at one end (the end<br />

nearest End A of the line) to M2 at the other end, where these bend moments are calculated as described above.<br />

Because the model segment is stiff in bending, the bend moment varies linearly along the segment and the shear<br />

force in the segment is the constant vector equal to the rate of change of bend moment along the length. The shear<br />

force is therefore given by:<br />

Shear Force Vector = (M2 - M1) / L<br />

where L is the instantaneous length of the segment. Note that M1 and M2 are vectors, so this is a vector formula that<br />

defines both the magnitude and direction of the shear force.<br />

This shear force vector is applied (with opposite signs) to the nodes at each end of the segment.<br />

5.12.7 Calculation Stage 4 Torsion Moments<br />

The torsion is then calculated (providing torsion has been included). To do this, the directions Sx1, Sy1, Sx2 and Sy2<br />

must first be calculated, since so far only the segment axial direction Sz has been found.<br />

The directions Sx2 and Sy2 at the end of the segment are determined from the orientation Nxyz of the adjacent node,<br />

by rotating Nxyz until its z-direction is aligned with Sz. This rotation is therefore through angle α2 and it is a rotation<br />

about the binormal direction (i.e. the direction that is orthogonal to both Nz and Sz). (Note that rotations about the<br />

binormal direction are bending rotations only – i.e. they involve no twisting.) The directions Sx1 and Sy1 at the other<br />

end of the segment are derived in the same way, but starting from the orientation of the node at that other end of<br />

the segment.<br />

The twist angle τ in the segment can then be calculated – it is the angle between the directions Sx1 and Sx2. Note that<br />

this twist angle is also the angle between Sy1 and Sy2. In other words the orientations Sx1, y1, z and Sx2, y2, z, at the<br />

two ends of the segment, differ by just a twist through angle τ.<br />

Linear torsional stiffness<br />

In the case of linear torsional stiffness the torque generated by the torsion spring+damper can then be calculated – it<br />

is a moment vector whose direction is the segment axial direction Sz and whose magnitude is given by:<br />

where<br />

Torque = K.τ / L0 + C.(dτ/dt)<br />

K = torsional stiffness, as specified on the line types form<br />

τ = segment twist angle (in radians), between directions Sx1 and Sx2<br />

L0 = unstretched length of segment<br />

dτ/dt = rate of twist (in radians per second)<br />

C = torsional damping coefficient of the line (this is defined below)<br />

Te = effective tension in the segment<br />

This torque moment vector is then applied (with opposite signs) to the nodes at each end of the segment.<br />

Non-linear torsional stiffness<br />

If the torsional stiffness is non-linear then the calculation of torque is as follows. It is a moment vector whose<br />

direction is the segment axial direction Sz and whose magnitude is given by:<br />

where<br />

Torque = Var Torque(τ/L0) + C.(dτ/dt)


Theory, Line Theory<br />

180<br />

w<br />

Var Torque is the function relating twist per unit length to torque as specified by the variable data source<br />

defining torsional stiffness.<br />

Damping coefficient C<br />

The damping coefficient C represents the torsional effect of structural damping in the line. It is calculated<br />

automatically based on the Target Torsional Damping value specified on the general data form using the formula<br />

C = C(critical).(Target Torsional Damping) / 100<br />

where C(critical) is the critical damping value for a segment, given by<br />

C(critical) = (2IzK/L0) ½ .<br />

Here, Iz is the rotational moment of inertia of the segment about its axis, allowing only for the structural mass of the<br />

line, not the mass of any contents (since the contents are assumed to not twist with the pipe).<br />

Note: If the torsional stiffness is non-linear then we use the nominal torsional stiffness Knom in the<br />

formula for C. In this case we define Knom to be the torsional stiffness at zero twist per unit length.<br />

5.12.8 Calculation Stage 5 Total Load<br />

As described above, each mid-node experiences two tension forces, two bend moments, two shear forces and two<br />

torque moments (one each from the segments either side of the node). These loads are then combined with the<br />

other non-structural loads (weight, drag, added mass etc.) to give the total force and moment on the node. <strong>OrcaFlex</strong><br />

then calculates the resulting translational and rotational acceleration of the node, and then integrates to obtain the<br />

node's velocity and position at the next time step. See Calculation Method.<br />

5.12.9 Line End Orientation<br />

At line ends, we usually need to define not only the axial direction of the end fitting but also the twist orientation<br />

about that axial direction. This is done by first specifying the azimuth and declination of the axial direction and then<br />

specifying the twist orientation by giving a third angle called gamma. See End Orientation.<br />

Together, the 3 angles azimuth, declination and gamma fully define the rotational orientation of the end fitting. To<br />

define how this is done we need to define a frame of reference Exyz for the end fitting, where:<br />

� E is at the connection point.<br />

� Ez is the axial direction of the fitting, using the "A to B" convention – i.e. Ez is into the line at End A, but out of<br />

the line at End B.<br />

� Ex and Ey are perpendicular to Ez.<br />

The 3 angles, Azimuth, Declination and Gamma, specify the orientation of Exyz relative to the local axes Lxyz of the<br />

object to which the end is connected, as follows. (If the line end is not connected to another object, then it is either<br />

Fixed, Anchored or Free. In these cases the angles define Exyz relative to the global axes GXYZ.)<br />

� Start with Exyz aligned with Lxyz.<br />

� Then rotate Exyz by Azimuth degrees about Ez (= Lz at this point).<br />

� Now rotate by Declination degrees about the resulting Ey direction.<br />

� Finally rotate by Gamma degrees about the resulting (and final) Ez direction.<br />

In all these rotations, a positive angle means rotation clockwise about the positive direction along the axis of<br />

rotation, and a negative angle means anti-clockwise.<br />

Three-dimensional rotations are notoriously difficult to describe and visualise. When setting the azimuth,<br />

declination and gamma, it is best to check that the resulting Exyz directions are correct by drawing the local axes on<br />

the 3D view.<br />

Here are some examples of the effect of various values of (Azimuth, Declination, Gamma) for a Fixed end. For ends<br />

connected to other objects, replace GXYZ by Lxyz in these examples.<br />

� (0,0,0) sets Exyz to be aligned with GXYZ.<br />

� (0,30,0) sets Ex at 30° below GX (in the GXZ plane), Ey along GY, Ez at 30° to GZ, towards GX.<br />

� (0,180,0) sets Ex along -GX, Ey along GY, Ez along -GZ.<br />

� (90,90,0) sets Ex along -GZ, Ey along -GX, Ez along GY.


w<br />

� (90,90,90) sets Ex along -GX, Ey along GZ, Ez along GY.<br />

End Direction Results<br />

181<br />

Theory, Line Theory<br />

If the end orientation Exyz is defined, then <strong>OrcaFlex</strong> offers various results relative to those axes. For a given vector V<br />

(such as the end force) these include the components of V relative to Exyz and the angles that V makes with the<br />

various axes of Exyz (see Line Results: Angles). The angles offered are as follows:<br />

� The "Ez-Angle" is the angle between V and the Ez-direction (i.e. axial direction). This measures how far V is<br />

away from the end fitting axial direction.<br />

� The "Ezx-Angle" is the angle from Ez to the projection of V onto the Ezx plane (measured positive from Ez<br />

towards Ex). This is the angle V makes with Ez when viewing the zx-plane.<br />

� The "Ezy-Angle" is the angle from Ez to the projection of V onto the Ezy plane (measured positive from Ez<br />

towards Ey). This is the angle V makes with Ez when viewing the zy-plane.<br />

� The "Exy-Angle" is the angle between the Ex-direction and the projection of V onto the Exy plane (measured<br />

positive from Ex towards Ey). This is the angle V makes with Ex when viewing the xy-plane.<br />

5.12.10 Line Local Orientation<br />

At any point P, the line orientation is defined by its local axes Pxyz. Pz is in the axial direction, towards End B, and is<br />

reported by the azimuth and declination angles. Px and Py are normal to the line axis.<br />

At the ends of the line, these local axes are referred to as the end axes Exyz, and their directions are specified by the<br />

end orientation angles on the line data form.<br />

At other points on the line the calculation of the local orientation depends on whether torsion is included:<br />

� If torsion is included then the local Pxyz directions are calculated using the specified torsional properties of the<br />

line.<br />

� If torsion is not included then the local directions at P are calculated by assuming that no twisting occurs<br />

anywhere along the line between End A and P. In more detail, <strong>OrcaFlex</strong> calculates the local orientation at P by<br />

starting with the orientation at End A (as specified by its end orientation angles) and then stepping along the<br />

line from node to node, using the no-twist assumption at each step to calculate the next node's local orientation.<br />

Note: If End A is free or if it is released then the local orientations are calculated as if End A was<br />

connected to an object aligned with the global axes. Accordingly you should exercise caution when<br />

interpreting results which depend on the local orientations of the line.<br />

5.12.11 Treatment of Compression<br />

A segment is said to experience compression if the effective tension is negative. <strong>OrcaFlex</strong> has two modes for handling<br />

this, depending on the setting of the Limit Compression data item on the line types form.<br />

Limit Compression: No<br />

The segment is treated as a strut which can support unlimited elastic compression. This is the preferred model<br />

except where the bend stiffness is insignificant.<br />

Limit Compression: Yes<br />

The segment is treated as an elastic Euler strut; the compression is limited to the segment Euler load value for the<br />

segment π 2 EI/L0 2 , where EI is the bending stiffness of the pipe and L0 is segment unstretched length. This correctly<br />

models a chain or very flexible rope, which can support little or no compression. In the case of a chain, the bending<br />

stiffness is set to zero, and the segment Euler load limit is also zero.<br />

The segment Euler load provides a check on the ability of the model to represent compressive loads and the<br />

deformations which result. Compression causes the line to deform laterally, the deformation being controlled by<br />

bending. Given adequate segmentation, <strong>OrcaFlex</strong> will correctly represent this deformation. If compression exceeds<br />

the segment Euler load of an individual segment, this indicates that the wavelength of deformation is shorter than<br />

can be represented by the chosen segmentation and the results may be unreliable. The model should be re-run with<br />

shorter segments in the affected area. The segment Euler load is shown on effective tension range graphs and<br />

infringement warnings are given on the results form and in the statistics tables.<br />

For more details see Modelling Compression in Flexibles and "Limit Compression" Switch.


Theory, Line Theory<br />

5.12.12 Contents Flow Effects<br />

Introduction<br />

182<br />

w<br />

Contents flow effects are normally neglected when modelling pipes in <strong>OrcaFlex</strong>. However for pipes carrying high<br />

contents density at rapid flow rates the flow effects can be significant. The published literature show that there are<br />

three extra forces introduced by contents flow – a centrifugal force, a Coriolis force and a flow friction force.<br />

<strong>OrcaFlex</strong> includes the facility to specify contents flow. If contents flow is included then the resulting centrifugal and<br />

Coriolis effects are modelled. Note that the flow friction effects are not included in <strong>OrcaFlex</strong>.<br />

Theory<br />

This section documents the theory behind the modelling of the centrifugal and Coriolis forces in <strong>OrcaFlex</strong>. This<br />

theory is technical and specific to the way pipes are modelled in <strong>OrcaFlex</strong>.<br />

Notation<br />

ρ = contents density<br />

a = internal cross-sectional area<br />

s = contents flow velocity<br />

r = mass flow rate = ρas<br />

l = segment length<br />

p = position of node relative to fixed axes<br />

v = velocity of node relative to fixed axes<br />

u = unit vector in downstream direction of line<br />

ω = angular velocity of moving frame relative to fixed frame<br />

dx/dt = rate of change of any variable x relative to fixed axes<br />

x' = rate of change of any variable x relative to moving axes<br />

Centrifugal force on a node due to flow through a node<br />

First consider a node with flow arriving from one direction, ui say, and leaving in another direction, uo. For a midnode<br />

ui and uo are simply the unit vectors in the directions of the segments before and after the node. For the first<br />

node ui is the end direction – this is taken to be the same as uo if the end is free and otherwise is taken to be the nomoment<br />

direction. Similar treatment is applied to uo at the last node.<br />

Similarly let ai and ao denote the internal cross sectional areas on the input side and output side, respectively. We<br />

define ai for the first node, and ao for the last node, to be the same as the internal cross section area of the end<br />

segment – i.e. we assume no change in internal cross sectional area at the line ends.<br />

Contents flow into the node at velocity siui so the rate of input of momentum is ρaisi 2 ui. Likewise the rate of output of<br />

momentum is ρaoso 2 uo. The force on the contents that is required to achieve this change in flow direction must<br />

therefore be the rate of output of momentum minus the rate of input of momentum, i.e.<br />

ρaoso 2 uo - ρaisi 2 ui<br />

The resulting centrifugal force on the node must be equal and opposite to this, so<br />

Centrifugal Force on Node = ρ(aisi 2 ui - aoso 2 uo)<br />

The theory above caters for the fully general situation where the internal cross-section may vary along the line. For<br />

the common case of a uniform internal cross-section the equation simplifies to<br />

Centrifugal Force on Node = ρas 2 (ui - uo)<br />

This result agrees with the centrifugal term included in equation 10 of Gregory & Paidoussis, 1996.<br />

Coriolis force due to movement of a segment<br />

Now consider a segment between two nodes n1 and n2 and consider the following two frames of reference: a fixed<br />

global frame and a moving local frame whose origin moves with node n1 and whose z-axis always points in direction<br />

u = unit vector from n1 towards n2.<br />

Consider the contents of a segment. Its velocity relative to the moving axes is<br />

p' = (r/aρ)u<br />

So its velocity relative to the fixed axes is<br />

v1 + dp/dt


w<br />

= v1 + p' + ω×p<br />

Therefore its acceleration relative to fixed axes is<br />

d( v1 + p' + ω×p) )/dt<br />

= (v1 + p' + ω×p)' + ω × (v1 + p' + ω×p)<br />

= 0 + 0 + ω'×p + ω×p' + ω×v1 + ω×p' + ω×(ω×p)<br />

= ω'×p + 2ω×p' + ω×v1 + ω×(ω×p)<br />

183<br />

Theory, Line Theory<br />

and of these terms the only new one, i.e. that is dependent on the rate of flow p' rather than p, is the term 2ω×p' =<br />

2ω×(r/aρ)u. When multiplied by the mass of contents in the segment, laρ, this gives the Coriolis force on the<br />

segment, i.e. 2lr (ω×u).<br />

But ω is given by<br />

ω = u×(v2 - v1) / l<br />

so the Coriolis force is given by<br />

2r (u × (v2 - v1)) × u<br />

= 2r ( (u.u)(v2 - v1) - (u.(v2 - v1))u )<br />

= 2r ( (v2 - v1) - (u-direction component of (v2 - v1)) )<br />

= 2r . (component of (v2 - v1)) normal to u).<br />

We then apportion this total Coriolis force on the segment into two equal parts – i.e. a force of<br />

r . (component of (v2 - v1)) normal to u)<br />

on each of the two nodes at the ends of the segment.<br />

Note: A mid node therefore receives two Coriolis force contributions – one each from the segments either<br />

side – but an end node only receives one such contribution.<br />

The above result agrees with the Coriolis term included in equation 10 of Gregory & Paidoussis, 1996.<br />

Other relevant references include:<br />

Paidoussis M P, 1970.<br />

Paidoussis M P & Deksnis E B, 1970.<br />

Paidoussis M P & Lathier B E, 1976.<br />

5.12.13 Line Pressure Effects<br />

<strong>OrcaFlex</strong> reports two different types of tension – the effective tension (Te) and the wall tension (Tw). These two<br />

tensions are related by the formula<br />

where<br />

Tw = Te + (PiAi - PoAo)<br />

� Pi = internal pressure. Pi is calculated from the contents pressure, allowing for the static pressure head due to<br />

the instantaneous height difference between the point and the specified reference Z level.<br />

� Po = external (i.e. surrounding fluid) pressure. Po is assumed to be zero at and above the mean water level.<br />

Below there it is calculated allowing for the static pressure head due to the instantaneous height difference<br />

between the point and the mean water level.<br />

� Ai, Ao = internal and external cross section areas of the stress annulus, respectively, given by Ai = π.StressID 2 /4<br />

and Ao = π.StressOD 2 /4, where StressID and StressOD are the stress diameters of the line type.<br />

Note: Where the stress ID or OD differ from the corresponding line type diameter, <strong>OrcaFlex</strong> (except<br />

release 8.6a – see What's New) uses the stress diameters, not the line type diameters, to calculate Ai<br />

and Ao. This is equivalent to assuming that the annulus between the stress OD and line type OD<br />

carries an axial load which matches the ambient external pressure, and the annulus between the<br />

stress ID and the line type ID carries an axial load which matches the ambient internal pressure.


Theory, Line Theory<br />

184<br />

w<br />

Warning: Before using the wall tension and stress results you should confirm that this model is suitable for<br />

the case you are modelling. We believe it is suitable for many cases of attached buoyancy and for<br />

non-structural linings, but it may not be suitable for bonded buoyancy or structural linings. If it is<br />

not suitable you should do your own separate calculation of wall tension and stresses.<br />

Explanation of Wall Tension Formula<br />

To understand this formula and the difference between effective tension and wall tension, consider the forces acting<br />

axially at the mid-point of a segment. The nodes either side represent a length of pipe plus its contents. More<br />

importantly, the forces on them are calculated as if the length of pipe represented had end caps which hold in the<br />

contents and which are exposed to the internal and external pressure. The diagram below illustrates this and shows<br />

the tension and pressure forces present; the equation above is simply the force balance equation for this diagram.<br />

Tw<br />

node n<br />

PiAi<br />

Te<br />

PoAo<br />

PoAo<br />

Te<br />

segment mid-point<br />

Figure: Tension and Pressure forces<br />

PiAi<br />

node n+1<br />

Notes: Both effective tension and wall tension are relevant to the question of pipe buckling. For buckling<br />

of the pipe as an Euler strut, effective tension is the governing parameter – when it is negative the<br />

strut is in effective compression. On the other hand, local buckling of the pipe wall is determined by<br />

wall tension. (Note that <strong>OrcaFlex</strong> does not model local buckling, which depends critically on details<br />

of the pipe construction and is therefore beyond the scope of the program.)<br />

For cables, umbilicals and ropes, the internal pressure term PiAi does not apply. However, the<br />

external pressure term PoAo is still applicable, and the actual tension in the cable is the wall tension<br />

as defined above.<br />

For chains, which are inherently discontinuous, the pressure terms do not apply and the effective<br />

tension is the true tension in the chain.<br />

5.12.14 Pipe Stress Calculation<br />

<strong>OrcaFlex</strong> provides stress results that apply only to simple pipes. More precisely, the stress calculation assumes that<br />

the loads on the line are taken by a simple cylinder whose inside and outside diameters are given by the stress<br />

diameters specified on the line-types form. It also assumes that the cylinder is made of a uniform material. The pipe<br />

stress results are therefore only valid for things like steel or titanium pipes – they do not apply to composite<br />

structure flexible pipes.<br />

Consider a cross-section through a mid-segment point, as shown in the following diagram. The diagram shows the<br />

frame of reference used for the cross-section, which has origin O is at the pipe centreline, Oz along the pipe axis<br />

(positive towards End B) and Ox and Oy normal to the pipe axis (and so in the plane of the cross-section).<br />

Tw


w<br />

y<br />

End A Stress ID<br />

z Stress OD<br />

O<br />

Side View<br />

Figure: Frame of Reference for Stress Calculation<br />

O<br />

The program calculates, at the cross-section, the following values:<br />

� Internal and external pressures, Pi and Po respectively.<br />

185<br />

C<br />

R<br />

P<br />

r<br />

y (Theta=90)<br />

Theta<br />

Cross-Section<br />

Theory, Line Theory<br />

x (Theta=0)<br />

� Effective tension and resulting wall tension. These are both vectors in the z-direction, with magnitudes Te and<br />

Tw respectively.<br />

� Curvature, which is a vector in the xy-plane, with components Cx and Cy in the Ox and Oy directions, respectively.<br />

� Bend Moment, which is a vector in the xy-plane, with magnitude M and components Mx and My in the Ox and Oy<br />

directions, respectively.<br />

� Shear force, which is also a vector in the xy-plane, with magnitude S and components Sx and Sy in the Ox and Oy<br />

directions, respectively.<br />

� Torque, which is a vector in the z-direction with magnitude τ.<br />

In addition we define the following terminology:<br />

� ODstress and IDstress = stress diameters, as specified on the line types form.<br />

� A = cross-sectional stress area = (π/4).(ODstress 2 - IDstress 2 )<br />

� Ixy = 2 nd moment of stress area about Ox (or Oy) = (π/64).(ODstress 4 -IDstress 4 )<br />

� Iz = 2 nd moment of stress area about Oz = 2Ixy<br />

� C1, C2, C3, C4 = stress loading factors (C1 = tensile, C2 = bending, C3 = shear, C4 = torsional), as specified on the line<br />

types form.<br />

The stress generated by the above loads varies across the cross-section. Consider the point P in the cross-section<br />

shown as a black dot in the diagram, which can be identified by its polar coordinates (r, θ). At P, we define a local set<br />

of axes (R,C,Z) where R is radially outwards, C is in the circumferential direction (positive in the direction of Theta<br />

increasing) and Z is parallel to Oz.<br />

With respect to these axes, the stress at P is a symmetric 3x3 matrix of stress components (see Pipe Stress Matrix).<br />

<strong>OrcaFlex</strong> calculates this matrix and then derives stress results from it.<br />

5.12.15 Pipe Stress Matrix<br />

The pipe stress matrix at point P (see Pipe Stress Calculation) can be written as:<br />

σRR σRC σRZ<br />

σRC σCC σCZ<br />

σRZ σCZ σZZ<br />

These stress components are calculated as follows. For terminology see Pipe Stress Calculation.


Theory, Line Theory<br />

Diagonal Terms<br />

186<br />

w<br />

The 3 diagonal entries of the stress matrix, σRR, σCC and σZZ, are the radial, circumferential (or hoop) and axial (or<br />

longitudinal) stresses, respectively.<br />

Radial and Hoop Stresses<br />

σRR and σCC are due to the internal and external pressure. They are calculated using Lamé's equation for a thickwalled<br />

cylinder whose internal and external diameters are IDstress and ODstress, as specified on the line types form.<br />

This gives:<br />

σRR = Radial Stress = a - b/r 2<br />

σCC = Hoop Stress = a + b/r 2<br />

where a and b are the values that satisfy<br />

Axial Stress<br />

a - b/(IDstress/2) 2 = -Pi and<br />

a - b/(ODstress/2) 2 = -Po.<br />

Notes: IDstress and ODstress are by default equal to the ID and OD specified on the line type form. However,<br />

they can be set to be different to ID and OD. In this case the above calculation is equivalent to<br />

assuming that the material in between ID and IDstress, and between ODstress and OD, is transparent<br />

to pressure. The internal pressure therefore applies right through to the IDstress and the external<br />

pressure applies right through to ODstress.<br />

σZZ is the axial stress and is given by:<br />

If IDstress is zero, then <strong>OrcaFlex</strong> assumes that external pressure applies throughout the structure –<br />

i.e. that σRR = σCC = -Po.<br />

σZZ = Direct Tensile Stress + Bending Stress<br />

where the Direct Tensile Stress is the contribution due to wall tension and Bending Stress is the contribution due to<br />

bend moment. The wall tension is assumed to be uniformly distributed across the stress area, so its contribution is<br />

given by:<br />

Direct Tensile Stress = Tw/A<br />

The contribution due to bend moment varies across the cross-section and is given by:<br />

Bending Stress = C2r(Mxsinθ - Mycosθ)/Ixy<br />

Axial Stress (non-linear stress-strain)<br />

For a homogeneous pipe with non-linear stress-strain σZZ cannot be split into tensile and bending components<br />

because of non-linearity. Instead it is calculated directly from σ(·), the specified stress-strain relationship:<br />

where<br />

σZZ = σ(εZZ)<br />

εt is the direct tensile strain<br />

εZZ is the axial strain, εZZ = εt + r(Cxsinθ - Cycosθ)<br />

Off-Diagonal Terms<br />

The 6 off-diagonal terms are the shear stresses, but there are in fact only 3 independent terms, since the matrix is<br />

symmetric. They are given by:<br />

σRC = 0<br />

σRZ = C3(Sxcosθ + Sysinθ)/A<br />

σCZ = C4τr/Iz + C3(Sycosθ - Sxsinθ)/A<br />

The contribution C4τr/Iz in the above equation is the shear stress contribution due to torque. If torsion is not<br />

included in the model, then it is zero. The other contributions are both due to the shear force, which is assumed to<br />

be uniformly distributed across the stress area.<br />

Finally, for two useful references on this subject, see Sparks (1980) and Sparks (1984).


w<br />

5.12.16 Hydrodynamic and Aerodynamic Loads<br />

Drag<br />

187<br />

Theory, Line Theory<br />

Both hydrodynamic and aerodynamic drag forces, using Morison's Equation are applied to the line. The same drag<br />

formulation is used for hydrodynamic and aerodynamic drag forces.<br />

Note: Aerodynamic drag is only included if the Include wind loads on Lines option is enabled in the<br />

Environment data.<br />

The drag forces applied to a line are calculated using the cross flow principle. That is, the fluid velocity relative to<br />

the line Vr is split into its components Vn normal to the line axis, and Vz parallel to the line axis. The components of<br />

drag force normal to the line axis are then based on Vn, and its x and y-components Vx, Vy. The component of drag<br />

force parallel to the line axis is based on Vz.<br />

The drag force formulae use drag coefficients, Cdx, Cdy and Cdz, and the drag areas appropriate to each direction. The<br />

drag coefficients are specified on the line type data form, but can also be modified to model wake interference from<br />

other lines upstream.<br />

For the directions normal to the line axis (x and y) the drag area is taken to be the projected area DnL where Dn is the<br />

normal Drag / Lift diameter and L is the length of line represented by the node. For the axial direction the drag area<br />

is taken to be the skin surface area πDaL where Da is the axial Drag / Lift diameter.<br />

There is a choice of the following three possible drag formulations for the drag force components (Fx, Fy, Fz) in the<br />

local line directions. The formulations differ in how the drag force components vary with the incidence angle φ<br />

between the flow and the line axial direction. The formulations are reviewed in Casarella and Parsons.<br />

In the formulae below<br />

ρ = fluid density<br />

P = proportion wet or proportion dry, as appropriate.<br />

Standard Formulation<br />

Fx = P( ½ρ(DnL)CdxVx|Vn| )<br />

Fy = P( ½ρ(DnL)CdyVy|Vn| )<br />

Fz = P( ½ρ(πDaL)CdzVz|Vz| )<br />

This formulation is the most commonly-used and was the formulation used by versions of <strong>OrcaFlex</strong> before a choice<br />

of formulation was introduced. It has been proposed or used by various authors, including Richtmyer, Reber and<br />

Wilson. It is appropriate for general flow conditions.<br />

Pode Formulation<br />

Fx = same as standard formula for Fx, above<br />

Fy = same as standard formula for Fy, above<br />

Fz = +/- P( ½ρ(πDaL)Cdz|V| 2 )<br />

where the sign of Fz, i.e. whether it is towards End A of the line or towards End B, is the same as the axial component<br />

of the relative flow vector.<br />

This formulation is preferred by some analysts for systems with near-tangential flow.<br />

Warning: The Pode formula for Fz is discontinuous at φ = 90, since then the axial component of the flow<br />

vector is zero and so the direction of Fz is undefined. In this case <strong>OrcaFlex</strong> sets Fz to zero.<br />

Eames Formulation for bare cables<br />

Fx = P( ½ρ(DnL)CdxVx|Vn| + ½ρ(πDaL)CdzVx(|V| - |Vn|) )<br />

Fy = P( ½ρ(DnL)CdyVy|Vn| + ½ρ(πDaL)CdzVy(|V| - |Vn|) )<br />

Fz = P( ½ρ(πDaL)CdzVz|V| )<br />

Drag Force Variation with Incidence Angle<br />

The above formulae for the drag force components can be re-written in a form that highlights how the drag force<br />

varies with incidence angle.


Theory, Line Theory<br />

188<br />

w<br />

Consider the case where the line is axially symmetric, i.e. Cdx = Cdy = Cdn say, and let φ be the incidence angle<br />

between the flow vector V and the line axis. Then Vz = Vcos φ and Vn = Vsin φ. Also, let:<br />

R = P( ½ρ(DL)Cdn|V| 2 )<br />

μ = πCdz/Cdn = (drag force in axial flow) / (drag force in normal flow of same velocity)<br />

Fn = the normal component of the drag force.<br />

Then the formulations can be expressed as follows.<br />

Standard: |Fn| = Rsin 2 φ |Fz| = Rμ.cos 2 φ<br />

Pode: |Fn| = Rsin 2 φ |Fz| = Rμ<br />

Eames: |Fn| = R{(1-μ)sin 2 φ + μsin φ} |Fz| = Rμcos φ<br />

Drag coefficient variation with Reynolds number and Height above seabed<br />

The normal drag coefficients Cdx and Cdy can be specified to vary with Reynolds number. The variable data table<br />

specifies the drag coefficient as a function of Reynolds number, Cd(Re).<br />

Reynolds number can be calculated in a number of different ways, as specified by the Reynolds number calculation<br />

data. You should set the Reynolds number calculation data to match the data source used for your variable drag<br />

coefficient data.<br />

Alternatively the normal drag coefficients can be specified to vary with Height above Seabed, h. We define h to be<br />

the vertical height above the seabed of the underside of the node, allowing for contact diameter. The actual drag<br />

coefficient used by the <strong>OrcaFlex</strong> calculation is given by:<br />

where<br />

Cd = λCd2 + (1-λ)Cd1<br />

Cd1 is the Drag Coefficient on the Seabed,<br />

Cd2 is the Drag Coefficient away from the Seabed,<br />

λ is the Drag Variation Factor.<br />

These data are all defined on the variable data form.<br />

The drag variation factor λ is a function of the normalised height above the seabed, h/Dn. For nodes lying on the<br />

seabed Cd should equal Cd1. In this case h/d=0 and so λ(0) should equal 0. Similarly, for nodes well away from the<br />

seabed we expect Cd to be equal to Cd2 and so λ should equal 1 for large values of h/Dn.<br />

The drag coefficients Cd1 and Cd2 can be specified as varying with Reynolds number which allows specification of a<br />

drag force which varies with both Reynolds number and Height above seabed.<br />

Lift<br />

The hydrodynamic lift force is defined to be:<br />

where<br />

FLIFT = P|un × uz|(½ρ(DnL)Cl|Vt| 2 )ul<br />

un is the unit vector in the seabed outward normal direction.<br />

uz is the unit vector in the node z-direction.<br />

ut is the flow direction for lift purposes = (un × uz)/|un × uz|. This is the transverse direction that is normal to<br />

the line axis and in the seabed plane.<br />

ul is the unit vector in the lift force direction = uz × ut. This is the direction normal to the line axis and in the<br />

plane of that axis and the seabed normal.<br />

Cl is the lift coefficient.<br />

Vt is component of Vr in the transverse direction ut.<br />

The lift force magnitude has been scaled by |un × uz|. This scaling factor is equal to cos θ where θ is the angle of the<br />

line axis to the seabed plane. The purpose is to scale down the lift force as the line axis becomes more inclined to the<br />

seabed plane. If the line axis is parallel to the seabed plane this factor is 1 and so it has no effect. But as the line axis<br />

inclines to the seabed plane the factor reduces, until when θ = 90 the factor is zero and so no lift force is applied.


w<br />

189<br />

Theory, Line Theory<br />

Another way of thinking about this factor is that it generalizes the standard lift force formula FLIFT = (½ρDnLCl|Vt| 2 )ul<br />

to cases where the line axis is inclined to the seabed. The effect of factor is equivalent to assuming that the standard<br />

lift force formula gives the lift force per unit projected length, instead of per unit arc length. By projected length we<br />

mean the length of the projection of the node onto the seabed plane.<br />

Lift coefficient variation with Reynolds number and Height above seabed<br />

The lift coefficient can be specified to vary with Reynolds number in an identical manner to drag coefficients.<br />

Reynolds number can be calculated in a number of different ways, as specified by the Reynolds number calculation<br />

data. You should set the Reynolds number calculation data to match the data source used for your variable lift<br />

coefficient data.<br />

Alternatively the lift coefficient can be specified to vary with Height above Seabed. In this case the actual lift<br />

coefficient used by the <strong>OrcaFlex</strong> calculation is given by:<br />

where<br />

Cl = αCl1<br />

Cl1 is the Seabed Lift Coefficient,<br />

α is the Lift Coefficient Decay Factor.<br />

These data are all defined on the variable data form.<br />

The lift coefficient decay factor α is a function of the normalised height above the seabed, h/D n. For nodes lying on<br />

the seabed Cl should equal Cl1. In this case h/d=0 and so α(0) should equal 1. For nodes well away from the seabed<br />

the lift effect dies away and we expect Cl to be equal to 0. So α should equal 0 for large values of h/D.<br />

The lift coefficient Cl1 can be specified as varying with Reynolds number which allows specification of a lift force<br />

which varies with both Reynolds number and Height above seabed.<br />

Added Mass<br />

The added mass effects on a line are calculated separately for the local x, y and z-directions. For each of these<br />

directions, the line is subject to two added mass effects:<br />

� Its effective mass is increased by CaMF where MF is the mass of the fluid displaced (taking into account the<br />

proportion wet) and Ca is the added mass coefficient specified for that direction. As a result, if the line<br />

accelerates then it experiences an extra inertial force (due to added mass) given by -CaMFAL where AL is the<br />

component (in that direction) of the acceleration of the line (relative to the earth).<br />

� If the fluid is accelerating then the line experiences a fluid acceleration force given by CmMFAF, where AF is the<br />

component (in that direction) of the acceleration of the fluid (relative to the earth) and Cm is the inertia<br />

coefficient for that direction. Typically Cm = 1 + Ca and in this case the fluid acceleration force can be written as<br />

MFAF + CaMFAF where the first term is called the Froude-Krylov force and the second term is called the added<br />

mass force.<br />

Fluid Flow<br />

If the mass flow rate of the Line is non-zero then the centrifugal and Coriolis effects due to this flow are included.<br />

Note that pressure effects of flow rate are not included.<br />

5.12.17 Drag Chains<br />

A drag chain is an attachment to a line that applies a force to the node to which it is attached. The force consists of<br />

the tension in the drag chain and so is in the direction in which the chain is hanging. This direction is determined by<br />

the relative velocity of the water past the chain – the faster the flow then the greater the angle of the drag chain to<br />

the vertical. This is now described in more detail.


Theory, Line Theory<br />

A<br />

Connection<br />

to Line<br />

� Vn<br />

Wn<br />

Figure: Drag Chain<br />

W<br />

Va<br />

Wa<br />

V<br />

180-�<br />

����-90<br />

Consider the drag chain shown in the above diagram.<br />

Let<br />

D = drag chain effective diameter<br />

L = drag chain length<br />

θ = drag chain declination from vertical<br />

Drag Chain<br />

V = horizontal relative velocity = (horizontal fluid velocity at A) – (horizontal node velocity at A).<br />

190<br />

w<br />

Then the incidence angle α between the horizontal relative velocity vector V and the drag chain is α = θ - 90 and the<br />

normal and axial drag forces are given by:<br />

where<br />

Fn = normal drag force = 0.5.ρ.L.D.Cdn(α).Vn.|Vn|<br />

Fa = axial drag force = 0.5.ρ.π.L.D.Cda(α).Va.|Va|<br />

Vn = normal component of relative velocity = |V|sin α<br />

Va = axial component of relative velocity = |V|cos α<br />

ρ = water density<br />

Cdn(α), Cda(α) = normal and axial drag coefficients for this incidence angle.<br />

The inertia of the drag chain is assumed to be small enough to be neglected, so we assume that the drag chain is<br />

always in equilibrium under the action of 3 forces:<br />

� The chain's wet weight, W.<br />

� The fluid drag on the chain.<br />

� The tension being applied by the line at the top of the chain.<br />

Because the tensile force being applied by the line is axial to the chain, the components of wet weight and drag<br />

normal to the chain must balance. In other words, the direction in which the drag chain hangs is that in which the<br />

chain is in force balance in the direction normal to the chain. The remaining net force on the chain in the axial<br />

direction, Fa, is then applied to the line.<br />

<strong>OrcaFlex</strong> therefore hangs the chain in the same vertical plane as the relative velocity vector V and at angle θ to the<br />

vertical. <strong>OrcaFlex</strong> calculates the angle θ by iterating until the sum of the normal components of drag force and wet<br />

weight is zero.


w<br />

Drag Chain Seabed Interaction<br />

191<br />

Theory, Line Theory<br />

Drag chains, in <strong>OrcaFlex</strong>, interact with the seabed in a fairly simplistic way that is designed to achieve the following<br />

two primary effects of seabed interaction:<br />

� Firstly, that as the chain is lowered down onto the seabed, the wet weight of the chain is steadily reduced as the<br />

chain becomes supported by the seabed.<br />

� Secondly, that if the chain is dragged across the seabed then an opposing friction force μR is generated, where μ<br />

is the friction coefficient and R is the seabed reaction.<br />

The seabed interaction model used is as follows:<br />

� At any given time, <strong>OrcaFlex</strong> first calculates how much of the drag chain would be supported by the seabed. It<br />

assumes that the chain hangs vertically straight down from the line. The drag chain is then considered as being<br />

made up of two parts – the supported part and the remaining hanging part.<br />

� The hanging part of the chain is then analysed as described above.<br />

� The supported part of the chain is modelled as if it is lying on the seabed directly beneath the node to which the<br />

chain is attached. As the node moves laterally, the supported chain also moves laterally (but below the node)<br />

and so generates a friction force that is then applied to the node.<br />

Note that the division of the drag chain into a hanging length and a supported length is done before the hanging<br />

length is analysed, and so is done with the chain vertical. This means that if current drag causes the chain to hang at<br />

an angle to the vertical then the supported length will generally have been overestimated and the hanging length<br />

correspondingly underestimated. This is an inaccuracy that cannot easily be avoided at the moment.<br />

5.12.18 Line End Conditions<br />

Except for Free Ends, the connection at the line end is modelled as an isotropic 'ball-joint' with a rotational stiffness<br />

and a preferred 'no-moment' direction. A rotational stiffness of zero simulates a freely rotating end, and a value of<br />

Infinity simulates a clamped end.<br />

The inclusion of end stiffness allows the program to calculate the curvature and bending moment at the termination.<br />

If the curvature is large, the calculated value is accurate only if sufficiently short segments have been used to model<br />

the line near its end.<br />

<strong>OrcaFlex</strong> reports a value for End Force and End Ez-Angle. These are the magnitude of the end force, and the<br />

magnitude of the angle between the end force vector and the no-moment direction. Vessel motion is automatically<br />

accounted for. The end force and angle values provide the basis for the design of end fittings such as bend stiffeners.<br />

See Modelling Line Ends.<br />

5.12.19 Interaction with the Sea Surface<br />

<strong>OrcaFlex</strong> Lines are subdivided into segments, and the various forces are attributed to nodes at each end. For a<br />

partially submerged segment, the hydrostatic and hydrodynamic forces are proportioned depending on how much<br />

of the segment is submerged – the Proportion Wet (PW). Proportion Wet is available as a line result variable. We<br />

also define Proportion Dry (PD) as PD = 1 - PW.<br />

For a segment whose axis is normal to the surface, the Proportion Wet could be calculated from the intersection of<br />

the segment centreline axis with the free surface. However, this simple approach breaks down when the segment is<br />

tangent to the surface.<br />

For this reason, <strong>OrcaFlex</strong> uses a simple but effective modification of this concept. Instead of using the centreline axis,<br />

we use the diagonal line joining the highest point on the segment circumference, at the 'dry' end, with the lowest<br />

point at the 'wet' end; see the diagonal line in the figure below. As the segment passes through the tangent position,<br />

the diagonal line switches corners but the proportion wet varies continuously. The intersection of the diagonal line<br />

with the surface continues to give the appropriate Proportion Wet result, and the hydrostatic and dynamic forces<br />

are attributed to the appropriate node.


Theory, Line Theory<br />

A<br />

Proportion Wet = B / (A+B)<br />

Figure: Proportion Wet for a surface-piercing segment<br />

B<br />

192<br />

w<br />

This surface-piercing model enables <strong>OrcaFlex</strong> to model systems such as floating hoses, containment booms and<br />

wave suppression systems. However please note the following points when modelling such systems:<br />

� A consequence of this model is that a hose floats in still water as a wall-sided body; in other words <strong>OrcaFlex</strong><br />

does not take account of the variation in water plane area with draft that arises from the circular cross-section.<br />

For cases of practical dynamics, this simplification is of minor importance, but it does mean that if you check the<br />

immersion depth of a hose in still water you may find the answer slightly wrong if the hose is very buoyant, or<br />

just awash.<br />

� When modelling floating hoses, it is important to have enough segments to model the local curvature. If your<br />

hose is flexible, and the waves are short, then you will need at least ten and preferably twenty segments per<br />

wave to model the curvature properly. However a stiff hose tends to bridge the wave troughs, and fewer<br />

segments are required.<br />

� The program uses constant drag and added mass coefficients for the floating hose, and the user has to select<br />

appropriate values based on the average immersion depth. Unfortunately the literature is of limited help – if you<br />

know of any good data source, we would be very pleased to hear of it.<br />

5.12.20 Interaction with Seabed and Shapes<br />

Nodes are also subjected to reaction forces from the seabed and any Shapes with which they come into contact. The<br />

contact occurs at the outer edge of the line, as specified by the contact diameter. The reaction force is given by:<br />

where<br />

Reaction = KAd<br />

K = stiffness of the seabed or shape,<br />

d = depth of penetration, allowing for the contact diameter,<br />

A = contact area, which is taken to be contact diameter multiplied by the length of line represented by the<br />

node.<br />

In addition, nodes experience a damping force. For details see Seabed Theory and Shapes Theory.<br />

Finally, friction forces can also be included.<br />

5.12.21 Clashing<br />

<strong>OrcaFlex</strong> provides two different ways of modelling contact between lines: the Line Contact model and the Line<br />

Clashing model. The clashing model is described below. For a summary of the differences, advantages and<br />

disadvantages of the two models see Line Contact versus Line Clashing.<br />

Line Clashing Data<br />

To include clash modelling between two lines, you must set Clash Check to "Yes" and set the Contact Stiffness to a<br />

non-zero value, for both lines. You can also specify the Contact Damping value.<br />

The facility to suppress clash modelling (by setting Clash Check to "No") has been included because the clashing<br />

algorithm is time consuming. It is therefore best to suppress clash modelling on all sections that will never clash<br />

with other lines, or if you are not interested in the effects of clashing.


w<br />

193<br />

Theory, Line Theory<br />

<strong>OrcaFlex</strong> assumes constant spring stiffness and damping values, and neglects friction. The force algorithm is<br />

described below. It pushes lines apart again if they try to pass through another, and it permits lines to separate<br />

again after contact. Multiple contact points along the line length are allowed for.<br />

Clashing behaviour can be difficult to understand and it is not always obvious what the results mean and how they<br />

should be used in practice. This is a developing area and we would appreciate feedback from users. The following<br />

notes expand on the way the calculations are carried out by the software and give our suggestions on interpretation.<br />

Note: Line clashing is not modelled during statics.<br />

Calculating the Clash Force<br />

<strong>OrcaFlex</strong> checks for clashing between any two line segments for which clash checking is enabled and the contact<br />

stiffness is non-zero (for both segments involved). The two segments do not need to be in different lines - a line can<br />

clash with itself.<br />

The clash check between segment S1 (on line L1) and segment S2 (on a different line L2) is done as follows. Let the<br />

radii of the two segments be r1 and r2 (as defined by the line type contact diameter). First <strong>OrcaFlex</strong> calculates the<br />

shortest separation distance, d, between the centrelines of the two segments. If d ≥ (r1 + r2) then the lines are not in<br />

contact and no contact force is applied.<br />

If d < (r1 + r2) then the lines are in contact. In this case <strong>OrcaFlex</strong> applies equal and opposite clash contact forces to<br />

the 2 segments to push them apart, as follows. Let p1 and p2 be the two points of closest proximity – i.e. p1 is on the<br />

centreline of segment S1 and p2 is on the centreline of segment S2, and these are the two points that are minimum<br />

distance d apart. Also, let u be the unit vector in the direction from p1 towards p2. Then the magnitude of the clash<br />

contact force applied is given by:<br />

F = (Stiffness Term) + (Damping Term)<br />

where the two terms on the right are documented below. A force of this magnitude F is applied to segment S1, at p1,<br />

in direction -u. And the equal and opposite force is applied to segment S2, at p2, in direction +u.<br />

The stiffness term is given by:<br />

Stiffness Term = k.(d - [r1 + r2])<br />

where k = 1 / (1/k1 + 1/k2) is the combined contact stiffness of the segments. Here k1 and k2 are the contact<br />

stiffnesses of the two segments, as specified in the Line Types data.<br />

The damping term is based on the rate of penetration, v, which is the u-direction component of p1's velocity relative<br />

to p2. If v≤0 then the two segments are moving apart and then no damping force is applied. If v>0 then the<br />

penetration is increasing and the damping term is then given by:<br />

Damping Term = cv<br />

where c is the combined contact damping value of the two segments, which is given by:<br />

c = 0 if c1=0 or c2=0<br />

c = 1 / (1/c1 + 1/c2) otherwise.<br />

Here c1 and c2 are the contact damping values of the two segments, as specified in the Line Types data.<br />

How the Clash Force is Applied and Reported<br />

In general, clashing will take place between one segment of one line and one segment of another (the probability of a<br />

clash occurring exactly at a node is very small unless you take special measures to make it happen). <strong>OrcaFlex</strong><br />

determines the force as just described, and reports the force as a segment variable – i.e. when you ask for the clash<br />

force at a particular arc length along the line, the force reported is the clash force for the segment which contains the<br />

specified point.<br />

If multiple clashes occur simultaneously on the same segment then the Line Clash Force reported is the magnitude<br />

of the vector sum of the clash forces involved.<br />

In the <strong>OrcaFlex</strong> model, all forces act at the nodes, so the clash force has to be divided between the two nodes at the<br />

ends of the segment in which the force acts. The force is divided in such a way that the moments of the two forces<br />

about the contact point are equal and opposite.


Theory, Line Theory<br />

Interpreting the Results<br />

194<br />

w<br />

Contact between lines can be a violent impact at high relative velocity, or a gentle drift of one line against another, or<br />

anything in between. We need to view the results in different ways for different sorts of contact. The following notes<br />

give some general guidance based on our experience, but in difficult cases it is essential that users develop their own<br />

understanding of the underlying physics, and confirm it by sensitivity analysis.<br />

<strong>OrcaFlex</strong> provides three measures of the severity of a clash event:<br />

� Clash force.<br />

� Clash impulse (integral of contact force times time – a measure of momentum transfer).<br />

� Clash energy (calculated by integrating the magnitude of clash force with respect to depth of penetration).<br />

There are 3 types of <strong>OrcaFlex</strong> results which can be used for analysing clashing:<br />

1. Time Histories of Clash force and Clash impulse.<br />

2. Range Graphs of Clash force.<br />

3. The Line Clashing Report contains Clash force, Clash impulse and Clash energy, together with a host of other<br />

details about clash events.<br />

Low Speed Contact<br />

Where one line drifts quite slowly against another as a result of weight or drag forces, then the contact is essentially<br />

quasi-static. The clash force at the point of contact is the best measure of what is happening, and will be insensitive<br />

to segmentation and contact stiffness.<br />

High Speed Impact<br />

The case of violent impact at high speed is much more complicated. Contact forces arrest the relative movement of<br />

the lines over a very short time interval. Momentum is transferred from the faster moving to the slower moving line.<br />

Kinetic energy at the moment of impact is converted partly to local strain energy at the point of contact, and partly<br />

to axial and bending strain energy elsewhere in the lines.<br />

If the discretisation of the lines is sufficiently fine, the contact stiffness value is correct, and contact damping is small,<br />

then <strong>OrcaFlex</strong> models the impact correctly, and all the reported results (force, impulse, energy) are correct. In<br />

practice, however, contact stiffness is rarely known with any precision, and it may not be practicable to discretise<br />

the line sufficiently to represent the deformation of the line axially, or particularly in bending, following a violent<br />

impact. (Deformation of the colliding cross sections is represented by the contact stiffness.) Under these<br />

circumstances, we need a measure of clash severity which is both meaningful for engineering purposes, and<br />

insensitive to discretisation and contact stiffness. Of the three measures available:<br />

� Maximum clash force reduces with reducing contact stiffness and is usually the least reliable measure.<br />

� Impulse is generally insensitive to changes in contact stiffness, though this may be masked where the change in<br />

stiffness causes a change in the character of the impact. (For example, a high contact stiffness may give rise to a<br />

single impact followed by a large rebound. Reducing stiffness can reduce the rebound to such an extent that the<br />

single impact is replaced by a double impact.) Impulse is also fairly insensitive to changes in segmentation.<br />

Unfortunately, however, impulse is not a convenient measure for engineering purposes.<br />

� Energy is the most convenient practical measure of potential damage. This may be sensitive to contact stiffness,<br />

where there is a fairly equal distribution of strain energy between contact and other elastic deformations of the<br />

system, but if contact strain energy is the dominant component, then sensitivity is reduced. Contact strain<br />

energy is also sensitive to discretisation: longer segments give higher values of contact strain energy. This<br />

means that the reported strain energy for a coarsely segmented model is generally conservative. In practical<br />

cases, it may be possible to reduce segment length sufficiently to show that contact strain energy is below<br />

damaging levels, without needing to go to the very fine discretisation which might be required for an accurate<br />

value.<br />

Sensitivity to time step<br />

Clash events are often intermittent and short lived. Consequently, simulations of clash events can be sensitive to the<br />

choice of time step.<br />

For explicit integration this is usually not an issue because use of the explicit solver typically necessitates the use of<br />

short time steps. However, when implicit integration is used, you should take extra caution when interpreting


w<br />

195<br />

Theory, 6D Buoy Theory<br />

clashing results because of the longer time steps allowed by the implicit solver. We recommend that you carry out<br />

sensitivity studies to show that the time step in use is sufficiently short.<br />

Damping<br />

Linear damping is included in the <strong>OrcaFlex</strong> contact model, and contributes to the reported clash force, impulse and<br />

energy results.<br />

5.13 6D BUOY THEORY<br />

5.13.1 Overview<br />

This and subsequent topics give the formulae used for the forces and moments applied to a 6D buoy. Note that for a<br />

spar buoy there is also some more detailed documentation available on our website:<br />

www.orcina.com/Resources/TechNotes/SparBuoyEquationOfMotion.pdf.<br />

The buoy is treated as a rigid body with 6 degrees of freedom, 3 translational and 3 rotational. The equation of<br />

motion has the following contributions.<br />

Weight<br />

The weight force of Mass . g is applied at the centre of mass.<br />

Buoyancy<br />

Lumped buoys<br />

The buoyancy force on a lumped buoy is given by:<br />

Buoyancy Force = ρ . g . WettedVolume<br />

and this buoyancy force is applied vertically upwards at the centre of wetted volume, which is taken to be<br />

Height.(1-PW) / 2<br />

below the specified centre of volume.<br />

In these formulae:<br />

� ρ = sea density<br />

� g = acceleration due to gravity<br />

� WettedVolume = PW.Volume, where Volume is as specified on the buoy data form<br />

� PW = 'proportion wet' = WettedHeight / Height, where Height is as specified on the buoy data form<br />

� WettedHeight = (Height / 2 + depth of the specified centre of volume below the surface), where 'depth' here is<br />

negative if the centre of volume is above the surface, and the WettedHeight formula is truncated into the range 0<br />

to Height.<br />

These formulae make the proportion wet PW, the buoyancy force and the point of application of that force, all vary<br />

linearly with vertical position of the centre of volume relative to the surface, as follows:<br />

� When the centre of volume is Height / 2 or more above the surface, PW = WettedHeight = WettedVolume = 0,<br />

and the buoyancy force is zero.<br />

� When the centre of volume is on the surface, PW = 1 / 2 and the buoyancy force is half the fully-submerged<br />

Archimedean buoyancy, and it is applied Height / 4 below the surface, i.e. half way along the assumed<br />

WettedHeight.<br />

� When the centre of volume is Height / 2 or more below the surface, then PW = 1 and the buoyancy force is the<br />

fully-submerged Archimedean buoyancy, and it is applied at the centre of volume.<br />

This model behaves as if the specified Buoy Volume is in the shape of a cylinder, of length equal to the specified<br />

Buoy Height and with its centre attached to the buoy at the specified centre of volume, but such that the cylinder<br />

pivots about that centre of volume in order to always keep its axis normal to the instantaneous water surface<br />

tangent plane.


Theory, 6D Buoy Theory<br />

196<br />

w<br />

Warning: This lumped buoy surface-piercing model is not realistic or accurate – <strong>OrcaFlex</strong> does not have<br />

enough geometry information for lumped buoys to model the surface-piercing accurately. It is just<br />

a simple way to give a buoyancy force, wetted volume and centre of wetted volume that vary in the<br />

right sort of way as the buoy passes through the surface. The model gives no contribution to roll<br />

and pitch stiffness from free surface effects when the buoy pierces the surface, so static stability of a<br />

floating Lumped Buoy is therefore not correctly represented. To model surface-piercing accurately<br />

you will need to use a Spar Buoy or Towed Fish, or multiple such buoys connected together to<br />

represent the actual buoy geometry.<br />

Spar buoys and Towed Fish<br />

For spar buoys and towed fish, separate buoyancy forces are calculated and applied to each cylinder. The buoyancy<br />

force on an individual cylinder is given by:<br />

Buoyancy Force = ρ . g . WettedVolume<br />

where WettedVolume is the volume of that part of the cylinder that is below the water surface. This force is applied<br />

vertically upwards at the centroid of that wetted volume.<br />

Note: If added mass and damping of a stacked buoy is specified by Values for Each Cylinder then the<br />

instantaneous water surface is used for this buoyancy calculation. But if the added mass and<br />

damping is specified by RAOs and Matrices for Buoy then the (horizontal) mean water surface is<br />

used; this excludes wave buoyancy effects, which are assumed to be included in the RAOs.<br />

Hydrodynamic Loads<br />

In general, the hydrodynamic loads are calculated using Morison's equation with additional components as<br />

discussed below. The exception to this is if the added mass and damping effects on a spar buoy are specified by<br />

giving wave load RAOs and added mass and damping matrices.<br />

For a lumped buoy the hydrodynamic loads on the buoy are calculated using the fluid kinematics at the buoy centre<br />

of wetted volume. These loads are scaled by the buoy Proportion Wet and applied at the centre of wetted volume.<br />

For details of the hydrodynamic loads see Lumped Buoy Theory: Added Mass, Damping and Drag.<br />

For a spar buoy or towed fish the calculation of hydrodynamic loads depends on the form of added mass and<br />

damping chosen.<br />

� If the added mass and damping are specified by Values for each cylinder, then all the hydrodynamic loads are<br />

calculated and applied separately on each cylinder. The hydrodynamic load on a cylinder is applied at the<br />

centroid of wetted volume of the cylinder and is scaled by the Proportion Wet of the cylinder. The water surface<br />

is assumed to be the tangent plane to the instantaneous wave surface directly above the centre of the cylinder;<br />

this therefore allows for the buoyancy variation due to the wave.<br />

� If the added mass and damping are specified by RAOs and matrices, then the wave loads, added mass and<br />

damping are calculated for the whole buoy, using the specified RAOs and matrices, and they are applied at the<br />

specified RAO, Added Mass and Damping Origin. The buoyancy and drag loads are calculated and applied for<br />

each cylinder, as described above, except that in this case the buoyancy load is calculated using the (horizontal)<br />

mean water surface instead of the instantaneous wave surface. The effect of this is to exclude the wave<br />

contribution to buoyancy load, which is assumed to be included in the specified wave load RAOs.<br />

For details see Spar Buoy and Towed Fish Theory: Added Mass and Damping and Spar Buoy and Towed Fish Theory:<br />

Drag.<br />

Hydrodynamic Damping (linear)<br />

You can apply additional damping forces and moments that are directly proportional to the fluid velocity and<br />

angular velocity relative to the buoy. See Lumped Buoy Damping and Spar Buoy and Towed Fish: Added Mass and<br />

Damping.<br />

The main use of these terms is to represent wave radiation damping for surface buoys. Values may be obtained<br />

theoretically from a 3D diffraction model of the body or, more commonly, from empirical results such as a roll decay<br />

test.<br />

Hydrodynamic Moments<br />

Rotation of the body relative to the fluid generates hydrodynamic moments which are analogous to the<br />

hydrodynamic forces given by Morison's equation. <strong>OrcaFlex</strong> includes facilities for calculating these moments.


w<br />

197<br />

Theory, 6D Buoy Theory<br />

For Lumped Buoys, rotational hydrodynamic properties are included for damping, drag and added inertia<br />

components. For Spar Buoys, drag moment data only are included.<br />

In all cases, the fluid moments are calculated by reference to the local angular velocity and acceleration of the fluid,<br />

defined as the angular velocity and acceleration of the local water isobar. The resulting moments are correct for<br />

rotational motions of the body itself, and give a good representation of moments due to waves where the moments<br />

derive from vertical-facing areas, e.g. discus buoys. However, the formulation gives a poor representation of waveinduced<br />

moments which derive from horizontally-facing areas. The difficulty arises because there is no unique<br />

definition of fluid angular velocity and angular acceleration at a point.<br />

If you are in any doubt as to the correctness of the model, then we recommend setting the moment terms to zero.<br />

Hydrodynamic moments will then be omitted completely for a Lumped Buoy. For a Spar Buoy represented by<br />

several cylindrical sections, moments will be generated automatically as a result of the distribution of hydrodynamic<br />

forces along the buoy axis.<br />

Estimation of Hydrodynamic Properties<br />

See technical note Buoy Hydrodynamics.<br />

5.13.2 Lumped Buoy Added Mass, Damping and Drag<br />

Added Mass and Inertia<br />

Specified by diagonal values<br />

The buoy inertia for translational motion is increased, for each local axis direction, by:<br />

Added Mass = PW . Ca . HydroMass<br />

where HydroMass and Ca are the reference hydrodynamic mass and added mass coefficient for translations in that<br />

direction.<br />

The buoy inertia for rotational motion is increased, for each local axis direction, by:<br />

Added Inertia = PW . Ca . HydroInertia<br />

where HydroInertia and Ca are the reference hydrodynamic inertia and added mass coefficient for rotations about<br />

that direction.<br />

Specified by full matrices<br />

The buoy inertia, considered with respect to local axes, is increased by:<br />

Added Mass = PW . AM<br />

where AM is the full 6x6 added mass matrix.<br />

Fluid Inertia Loads<br />

Specified by diagonal values<br />

The fluid inertia force applied in each local axis direction is given by:<br />

Force = PW . Cm . HydroMass . A<br />

where HydroMass and Cm are the reference hydrodynamic mass and Cm coefficient for that direction, and A is the<br />

component, in that direction, of the local water particle acceleration relative to the earth.<br />

The fluid inertia moment applied about each local axis direction is given by:<br />

Moment = PW . Cm . HydroInertia . B<br />

where HydroInertia and Cm are the reference inertia and Cm coefficient for rotation about that direction, and B is<br />

the component, in that direction, of the rotational acceleration of the local water isobar relative to the earth.<br />

Specified by full matrices<br />

The fluid inertia load applied, considered with respect to local axes, is given by the matrix equation:<br />

where<br />

Load = PW . IM . af<br />

Load is the vector [fx, fy, fz, mx, my, mz] T where fx, fy, fz, mx, my and mz are the components of force and<br />

moment with respect to local axes,


Theory, 6D Buoy Theory<br />

Damping<br />

IM is the full 6x6 fluid inertia matrix,<br />

af is the vector of fluid acceleration components [Ax, Ay, Az, Bx, By, Bz] T ,<br />

198<br />

w<br />

Ax, Ay and Az are the components of the local water particle acceleration relative to the earth with respect to<br />

local axes,<br />

Bx, By and Bz are the components of the rotational acceleration of the local water isobar relative to the earth<br />

with respect to local axes.<br />

The damping force applied in each local axis direction is given by:<br />

Force = PW . UnitDampingForce . Vr<br />

where UnitDampingForce is the Unit Force for that direction and Vr is the component, in that direction, of the water<br />

velocity relative to the buoy.<br />

Similarly, the damping moment applied about each local axis direction is given by:<br />

Moment = PW . UnitDampingMoment . Wr<br />

where UnitDampingMoment is the Unit Moment for rotation about that direction and Wr is the component in that<br />

direction, of the angular velocity of the local water isobar relative to the buoy.<br />

Drag<br />

The drag force applied in each local axis direction is given by:<br />

Force = PW.½.ρ.Cd.A.Vr.|Vr|<br />

where A and Cd are the Drag Area and Drag Coefficient for that direction and Vr is the component, in that direction,<br />

of the water velocity relative to the buoy.<br />

The drag moment applied about each local axis direction is given by:<br />

Moment = PW.½.ρ.Cd.AM.Wr.|Wr|<br />

where AM and Cd are the Moment of Area and drag coefficient for rotation about that axis and Wr is the component,<br />

in that direction, of the angular velocity of the local water isobar relative to the buoy.<br />

5.13.3 Spar Buoy and Towed Fish Added Mass and Damping<br />

The first order hydrodynamic loads on a spar buoy or towed fish can be modelled in a choice of two ways: either by<br />

values for each cylinder or by wave load RAOs and matrices for the whole buoy.<br />

Loads specified by Values for Each Cylinder<br />

When you choose Values for each Cylinder, the added mass and damping effects are calculated separately for each<br />

cylinder. And the resulting force, moment, increased mass and rotational inertia for each cylinder are applied at the<br />

wetted centroid of the water displaced by that cylinder.<br />

Added Mass<br />

For each of the buoy local axes directions, each cylinder is subject to the following added mass effects:<br />

� Its effective translational mass is increased by CaMf where Ca is the added mass coefficient specified for that<br />

direction of motion (normal or parallel to the cylinder axis), and Mf is the instantaneous reference fluid mass for<br />

that direction (see Reference Fluid Mass and Inertia below). So if the cylinder accelerates in the normal or axial<br />

directions then it experiences an extra inertial force, due to added mass, equal to -CaMfAcwhere Ac is the<br />

component in that direction of the cylinder acceleration (relative to the earth).<br />

� If the fluid is accelerating then the cylinder experiences a fluid acceleration force equal to CmMfAf where Af is the<br />

component (in that direction) of the acceleration of the fluid (relative to the earth) and Cm is the inertia force<br />

coefficient specified for that direction. Typically Cm = 1 + Ca and in this case the fluid acceleration force can be<br />

written as MfAf + CaMfAf where the first term is called the Froude-Krylov force and the second term is called the<br />

added mass force.<br />

� Its effective moment of inertia is increased by PW Ia, where PW is the instantaneous proportion wet of the<br />

cylinder, and Ia is the added moment of inertia specified for rotation about that direction (normal or axial to the<br />

cylinder axis). So if the cylinder's angular acceleration is non-zero then it experiences an extra inertial moment


w<br />

199<br />

Theory, 6D Buoy Theory<br />

(due to added inertia) equal to -PW IaΩc where Ωc is the component in that direction of the cylinder angular<br />

velocity vector (relative to the earth).<br />

� If the angular acceleration of the local water isobar Ωf (relative to the earth) is non-zero then the cylinder<br />

experiences a fluid acceleration moment equal to (If + PW Ia)Ωf. This can be written as IfΩf + PW IaΩf, where the<br />

first term is a moment analagous to the Froude-Krylov force, and the second term is a moment analagous to the<br />

added mass force.<br />

Note: If the added inertia Ia specified is zero for a given direction (normal or axial), then the Froude-<br />

Krylov moment term is omitted for that direction, so that no moment due to added inertia is<br />

applied about that direction. This does not apply to the Froude-Krylov force terms – to suppress the<br />

Froude-Krylov force you need to specify Cm = Ca (and set both to zero if you want no force at all due<br />

to added mass.<br />

For a spar buoy the cylinder axis direction is the buoy z-direction, so the components in the buoy axes directions of<br />

the total force and moment due to added mass are therefore as follows.<br />

where<br />

Fx = CmnMfnAfx - CanMfnAcx<br />

Fy = CmnMfnAfy - CanMfnAcy<br />

Fz = CmaMfaAfz - CaaMfaAcz<br />

Mx = (Ifn + PW Ian)Ωfx - PW IanΩcx or Mx = 0 if Ian = 0<br />

My = (Ifn + PW Ian)Ωfy - PW IanΩcy or My = 0 if Ian = 0<br />

Mz = (Ifa + PW Iaa)Ωfz - PW IaaΩcz or Mz = 0 if Iaa = 0<br />

PW = proportion wet for this cylinder<br />

Can, Caa = specified added mass coefficients specified for the normal and axial directions, respectively.<br />

Cmn, Cma = specified inertia force coefficients specified for the normal and axial directions, respectively.<br />

Mfn, Mfa, Ifn, Ifa = instantaneous values of reference fluid mass (Mf) and moments of inertia (If), for the normal<br />

and axial directions respectively, as described below.<br />

Acx, Acy, Acz = components in buoy axes directions, of the cylinder translational acceleration relative to earth.<br />

Afx, Afy, Afz = components in buoy axes directions, of the fluid translational acceleration relative to earth.<br />

Ωcx, Ωcy, Ωcz = components in buoy axes directions, of the cylinder angular acceleration relative to earth.<br />

Ωfx, Ωfy, Ωfz = components in buoy axes directions, of the angular acceleration of the fluid local isobar relative<br />

to earth.<br />

For a Towed Fish the cylinder axis direction is instead the buoy x-direction. So for a Towed Fish the subscripts x and<br />

z in the above equations are interchanged, so that the axial values of the coefficients and reference masses and<br />

inertias are used in the equations for Fx and Mx, and the normal direction values are used in the equtions for Fz and<br />

Mz.<br />

Reference Fluid Mass and Inertia used for Added Mass<br />

For motion normal to the cylinder axis the values used for the reference fluid mass Mf and inertia If are the mass<br />

and moments of inertia of the fluid displaced by the submerged part of the whole of the cylinder cross-section. So if<br />

the cylinder is hollow (i.e. inner diameter is non-zero) then for motion normal to the cylinder axis the reference<br />

fluid mass and inertia used includes the fluid trapped inside the part of the cylinder that is below the surface.<br />

For motion parallel to the cylinder axis, the reference fluid mass Mf and inertia If that are used depend on whether<br />

the cylinder is hollow. If it is not hollow then they are the same as the values used for motion normal to the cylinder<br />

axis, i.e. equal to the mass and moments of inertia of the fluid displaced by the submerged part of the cylinder. But if<br />

the cylinder is hollow then the reference fluid mass Mf and inertia If used for motion parallel to the cylinder axis are<br />

the mass and moments of inertia of the fluid displaced by the submerged part of just the cylinder annulus,<br />

excluding the fluid trapped inside the part of the cylinder that is below the surface.<br />

These values for the reference fluid mass and inertia are based on the assumption that for a hollow cylinder the<br />

trapped fluid contents are free to translate and rotate axially relative to the cylinder, but not free to move normal to<br />

the cylinder axis.


Theory, 6D Buoy Theory<br />

Damping Forces and Moments<br />

200<br />

w<br />

For each of the buoy local axes directions, each cylinder is subject to a damping force and damping moment given<br />

by:<br />

where<br />

Damping Force = -PW.UDF.V<br />

Damping Moment = -PW.UDM.Ω<br />

PW = proportion wet of this cylinder<br />

UDF, UDM = specified Unit Damping Force and Unit Damping Moment for this direction of motion (normal or<br />

parallel to the cylinder axis)<br />

V = component, in this direction, of the translational velocity of the buoy at the instantaneous position of the<br />

centroid of the submerged part of this cylinder, either relative to the earth or relative to the fluid velocity (as<br />

specified in the buoy data).<br />

Ω = component, in this direction, of the angular velocity of the buoy, either relative to the earth or relative to<br />

the fluid angular velocity (as specified in the buoy data).<br />

Note: If damping relative to fluid is specified in the buoy data, then the velocity V used in the damping<br />

force formula is the buoy velocity minus the fluid velocity (including current and waves) at the<br />

instantaneous position of the centroid of the submerged part of the cylinder. And the angular<br />

velocity Ω used in the damping moment formula is the buoy angular velocity minus the angular<br />

velocity of the fluid isobar, again at the instantaneous position of the centroid of the submerged<br />

part of the cylinder.<br />

Loads specified by RAOs and Matrices<br />

Note: This option is only available for Spar Buoys.<br />

When you choose RAOs and Matrices for Buoy, the added mass and damping effects are calculated from the<br />

specified wave force and moment RAOs and added mass and damping matrices. In addition, the buoyancy force is<br />

calculated using the mean water level, rather than the instantaneous water surface. This excludes the wave-related<br />

buoyancy effects, since these are assumed to be accounted for in the loads specified by the RAOs.<br />

Warning: The drag force is also calculated using the mean water level, although (non-linear) drag can't be<br />

completely accounted for in (linear) RAOs.<br />

The RAOs are used to calculate force and moment vectors that are proportional to the amplitude of the wave<br />

component. They are applied at the instantaneous position of the RAO, Added Mass and Damping Origin, but are<br />

specified relative to a frame of reference that has x horizontal in the wave direction, y horizontal and normal to the<br />

wave direction, and z vertically upwards. The surge RAO therefore specifies a force that acts at the RAO, Added Mass<br />

and Damping Origin in the wave direction, the heave RAO specifies a vertical force, and the pitch RAO specifies a<br />

moment acting about the horizontal line normal to the wave direction.<br />

The added mass and damping matrices are also applied at the RAO, Added Mass and Damping Origin, and they are<br />

applied in the buoy axes directions, i.e. the surge added mass is applied in the buoy local x-direction, etc.<br />

The added mass matrix is simply added into the buoy's inertia (also known as the virtual mass matrix).<br />

The damping load is calculated using the following matrix equation:<br />

where<br />

[Fx,Fy,Fz,Mx,My,Mz] T = -D [Vx,Vy,Vz,Ωx,Ωy,Ωz] T<br />

Fx, Fy, Fz, Mx, My, Mz = components in the buoy local axes directions, of the resulting damping force and<br />

moment.<br />

D = damping matrix specified in the data.<br />

Vx, Vy, Vz = components, in buoy axes directions, of the buoy velocity at the RAO, Added Mass and Damping<br />

Origin, relative to the earth or relative to the fluid velocity (as specified in the buoy data).<br />

Ωx, Ωy, Ωz = components, in buoy axes directions, of the buoy angular velocity.


w<br />

201<br />

Theory, 6D Buoy Theory<br />

Note: If damping relative to fluid is specified in the buoy data, then the velocity V used here excldues the<br />

fluid velocity due to waves, because the damping effects due to waves are assumed to be included in<br />

the RAOs. V is therefore taken to equal the buoy velocity minus the current velocity at the<br />

instantaneous position of the centroid of the submerged part of the cylinder. And Ω is simply equal<br />

to the buoy angular velocity relative to the earth, since the current has no angular velocity.<br />

5.13.4 Spar Buoy and Towed Fish Drag<br />

The second order hydrodynamic loads on Spar Buoys and Towed Fish are calculated and applied separately for each<br />

cylinder. The loads on each cylinder are calculated as follows. The proportion wet PW, referred to below, is<br />

calculated for each cylinder according to its level of immersion.<br />

Drag Forces<br />

The drag forces are calculated using the "cross-flow" assumption. In the local x and y directions, i.e. normal to the<br />

cylinder axis, the drag forces are given by:<br />

where<br />

x Drag Force = PW . ½ . ρ . Cdn . An . Vrx . |Vrxy|<br />

y Drag Force = PW . ½ . ρ . Cdn . An . Vry . |Vrxy|<br />

An is the drag area for the normal direction<br />

Cdn is the drag coefficient for the normal direction<br />

Vrx and Vry are the x and y-direction components of the water velocity relative to the buoy<br />

|Vrxy| is the absolute magnitude of the relative velocity in the x-y plane.<br />

And in the z direction, i.e. parallel to the cylinder axis, the drag force is given by:<br />

where<br />

z Drag Force = PW . ½ . ρ . Cda . Aa . Vrz . |Vrz|<br />

Aa is the drag area for the axial direction<br />

Cda is the drag coefficient for the axial direction<br />

Vrz is the z direction component of the water velocity relative to the buoy<br />

|Vrz| is its absolute magnitude.<br />

Drag Moments<br />

Drag moments are also calculated using the cross-flow assumption.<br />

About the local x and y directions the drag moments are given by:<br />

where<br />

x Moment = PW . ½ . ρ . Cdn . An . Wrx . |Wrxy|<br />

y Moment = PW . ½ . ρ . Cdn . An . Wry . |Wrxy|<br />

An is the drag area moment for the normal direction.<br />

Cdn is the drag moment coefficient for the normal direction<br />

Wrx and Wry are the x and y components of the angular velocity of the local water isobar relative to the buoy<br />

|Wrxy| is the absolute magnitude of the component in the xy plane of the angular velocity of the local water<br />

isobar relative to the buoy.<br />

And about the local z direction the drag moment is given by:<br />

where<br />

z Moment = PW . ½ . ρ . Cda . Aa . Wrz . |Wrz|<br />

Aa is the drag area moment for the axial direction.<br />

Cda is the drag moment coefficient specified for the axial direction<br />

Wrz is the z component of the angular velocity of the local water isobar relative to the buoy


Theory, 6D Buoy Theory<br />

|Wrz| is its absolute magnitude.<br />

Drag Area Moments<br />

202<br />

w<br />

The drag area moments in the above equations are the rectified 3rd moments of drag area about the axis of rotation.<br />

So drag area moment = Sum(A.|r| 3 ) where A is an element of drag area at an (absolute) distance |r| from the axis of<br />

rotation. The modulus |r| arises from the drag term in Morison's equation. The area moment should have<br />

dimensions L 5 . Note that the axial Area Moment is about the cylinder axis, and the normal Area Moment is about the<br />

normal to that axis through the cylinder centre.<br />

We have derived the following results for simple bodies:<br />

� For a rectangle of length L and width W, the 3rd moment of area about the line in the plane of the rectangle and<br />

through its centre in the length direction is (L.W 4 ) / 32. And the 3rd moment of area about the line in the plane<br />

of the rectangle and through its centre in the width direction is (W.L 4 ) / 32.<br />

� For a circular disc of diameter D, the 3rd moment of area about a line in the plane of the disc and through its<br />

centre = (D 5 ) / 60.<br />

� We can use the two results above to calculate reasonable Drag Area Moment values to use for a cylinder in a<br />

spar buoy. Let L be the length of the cylinder and D be the diameter, and first consider the Area Moment for the<br />

Normal direction, i.e. about a line through the cylinder centre and normal to the cylinder axis. If the curved<br />

surface of the cylinder is exposed to drag then we can account for its contribution to the Area Moment by using<br />

its projection onto the plane made by the line and the cylinder axis. This projected area is a rectangle of length L<br />

and width D and the line crosses it in the width direction, so the contribution to the Area Moment is (D.L 4 ) / 32.<br />

If either of the end discs of the cylinder are also exposed to drag then we also need to account for their<br />

contribution to the Area Moment.<br />

Calculation of Sea Angular Velocity<br />

In order to calculate the relative angular velocity, <strong>OrcaFlex</strong> has to determine a local angular velocity for the water.<br />

This is not defined by standard wave theory, so <strong>OrcaFlex</strong> uses the angular velocity of the local isobar (at the surface<br />

this is the angular velocity of the water surface). The resulting drag moments due to waves are approximately<br />

correct for a buoy with large horizontal extension, e.g. a discus shape.<br />

For a long vertical SPAR buoy, the calculated pitch/roll drag area moment is actually in the wrong direction. Instead<br />

the buoy should be divided into several cylinders and the required moments are generated by distributing the<br />

hydrodynamic loading between them. The drag area moments for the individual cylinders should be set to zero.<br />

For an object which has significant dimensions both vertically and horizontally, the drag area moments are a mix of<br />

roughly correct and incorrect parts. The problem relates only to drag moments due to waves – moments resulting<br />

from body angular velocity in still water are correctly calculated.<br />

Munk Moment<br />

Slender bodies in near-axial flow experience a destabilising moment called the Munk moment. This emerges from<br />

potential flow and is distinct from (and additional to) any moments associated with viscous drag. It is only well<br />

defined for a fully submerged body.<br />

Newman (1977, page 341) derives the term and points out that it "acts on a non-lifting body in steady translation".<br />

Thwaites (1960, pages 399-401) gives an alternative derivation and provides numerical values for spheroids.<br />

Note that for bluff bodies the flow tends to separate over the afterbody. This has the effect of reducing the Munk<br />

moment to a value less than the potential flow theory would suggest. See Mueller (1968).<br />

The Munk moment effect can be modelled in <strong>OrcaFlex</strong> by specifying a non-zero Munk moment coefficient for a Spar<br />

Buoy or Towed Fish. <strong>OrcaFlex</strong> then applies a Munk moment given by:<br />

where<br />

Munk Moment = Cmm . M . ½ . sin(2α) . V 2<br />

Cmm is the Munk moment coefficient<br />

M is the mass of water currently displaced. If the buoy is surface-piercing then this allows for the proportion<br />

of the buoy that is in the fluid. However, note that the value of Cmm is ill-defined for a partially submerged<br />

body.<br />

V is the flow velocity relative to the buoy, at the point on the stack axis that is half way between the ends of<br />

the stack.


w<br />

α is the angle between the relative flow velocity V and the buoy axis.<br />

203<br />

Theory, 6D Buoy Theory<br />

The moment is applied about the line that is normal to the plane of the buoy axis and the relative flow vector, in the<br />

direction that tries to increase the angle α.<br />

5.13.5 Slam Force<br />

Slam forces in <strong>OrcaFlex</strong> can be applied to 6D buoys by setting non-zero slam data. Slam force can be applied for both<br />

water entry and water exit, and different slam coefficients can be specified for water entry and exit, in order to<br />

separately control the slam forces that arise from these two situations.<br />

For a lumped buoy the slam load data can be found on the Properties page of the buoy data form. The data consists<br />

of the slam area (Aw) and the slam coefficients for water entry (Cs) and exit (Ce).<br />

For a spar buoy or towed fish the slam load data can be found on the Drag & Slam page of the buoy data form. The<br />

data consists of the slam coefficients for water entry (Cs) and exit (Ce), for each cylinder of the buoy. The slam area,<br />

Aw, is not specified by the user, since <strong>OrcaFlex</strong> uses the instantaneous water plane area for each cylinder.<br />

Slamming is typically a short-duration phenomenon which is very sensitive to precise local conditions at the time<br />

the object enters the water. For example, slam force will depend on the exact angle between the object and the sea<br />

surface at the time of entry. For this reason, we caution that the slamming time history and the peak slam force are<br />

not expected to be accurate. However, with an emphasis on prediction of global behaviour, the total impulse from<br />

the slam force is intended to be accurate, so that its overall effect on the motion of the object is correctly taken into<br />

account. The slam impulse corresponds to the transfer of momentum between the body and the water.<br />

Slam Force Model<br />

The slam force applied upon water entry or exit is given by:<br />

where<br />

Entry Slam Force = +½ ρ Cs Aw |Vn| 2 n<br />

Exit Slam Force = -½ ρ Ce Aw |Vn| 2 n<br />

Cs, Ce = slam coefficients for entry and exit respectively, which are specified by the user.<br />

Vn = component of buoy velocity normal to the water surface, measured relative to the fluid velocity.<br />

n = unit vector in water surface outward normal direction. This ensures that the slam force opposes the<br />

buoy’s penetration of the water surface.<br />

Aw = slam area. For spar buoys and towed fish this is the instantaneous waterplane area. For lumped buoys<br />

the slam area is user-specified, and the same value is used throughout the buoy’s penetration of the water<br />

surface.<br />

Using simple slam coefficients for control of slamming in <strong>OrcaFlex</strong> leaves detailed considerations of the physics<br />

behind slamming outside the program. References such as DNV RP-H103 (sections 3.2.9 and 3.2.11) or Faltinsen<br />

(chapter 9) provide more detail on the theoretical arguments, and give information on suitable values for the slam<br />

coefficients.<br />

Point of Application<br />

For lumped buoys the slam force is applied at the buoy centre of wetted volume, as with other hydrodynamic loads.<br />

For spar buoys and towed fish, the slam force is calculated separately for each cylinder of the buoy, and that cylinder<br />

slam force is then applied at the centroid of waterplane area of that cylinder. This approach correctly distributes the<br />

slam force along the length of a spar buoy or towed fish if it penetrates the surface with its axis along the surface, so<br />

that multiple cylinders pierce the surface at the same time.<br />

Differences from DNV-RP-H103<br />

This slam force model used in <strong>OrcaFlex</strong> closely matches that given in DNV-RP-H103, in which the slam force is given<br />

by a formula of the same form as the standard Morison’s drag force equation.<br />

The <strong>OrcaFlex</strong> slam force model differs from that in DNV-RP-H103 in some ways:<br />

� In <strong>OrcaFlex</strong> the model includes surface movement due to waves. Therefore the velocity used, Vn, is the normal<br />

component of buoy velocity relative to the water surface, allowing for the velocity of the surface due to waves.<br />

And the slam force is applied in the surface normal direction, allowing for waves. In DNV-RP-H103, a still<br />

horizontal sea surface is assumed, so the slam force is always in the vertical direction.


Theory, 6D Buoy Theory<br />

204<br />

w<br />

� For spar buoys and towed fish, the instantaneous waterplane area is used for the slam area, Aw. In DNV-RP-<br />

H103 the projected area is used.<br />

Note: This inclusion of surface velocity and slope due to waves might give bad results if the buoy<br />

diameter is large enough to be a significant fraction of wavelength for a significant part of the<br />

wave spectral energy. This is because the slam load will be calculated using the surface slope and<br />

velocity at the buoy centre (for a lumped buoy) or cylinder centre (for a spar buoy or towed fish),<br />

and no allowance will be made for the variation in surface velocity and slope across the diameter<br />

of the buoy. We therefore recommend that short waves should be suppressed when modelling<br />

slamming on a large buoy in a random sea. This can be done by using the Maximum Relative<br />

Frequency Range data on the waves data form.<br />

Slam Force Ramping for Lumped Buoys<br />

In the idealised theory of slamming, the full slam force is immediately applied at the instant that the buoy makes<br />

contact with the surface. For a lumped buoy this would give a discontinuous step change in load applied to the buoy,<br />

and this cannot be allowed in time domain simulation, since the program must solve for dynamic equilibrium and<br />

there might be no such solution because of the discontinuity.<br />

To avoid this, the slam force on a lumped buoy is ramped up to its full value over the first 10% of the buoy's passage<br />

through the surface, and ramped down again to zero over the last 10% of the passage through the surface. This<br />

reduces the slam force at the start and end of penetration, so to compensate the slam force is slightly increased<br />

during the majority of the motion through the water surface. The ramping function that is applied to do this is<br />

shown in the following figure. It is a smooth ramping function that has been calculated so that it has the correct<br />

integral (one), so that the total slam impulse over a complete submergence or emergence is correct.<br />

Slam force ramping<br />

1.2<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

-0.2 0 0.2 0.4 0.6 0.8 1 1.2<br />

Figure: Lumped Buoy slam force ramping<br />

Idealised<br />

Ramped<br />

Proportion Wet<br />

For spar buoys & towed fish, this discontinuity problem does not arise in practice, since the water plane area<br />

naturally rises from and returns to zero continuously as the buoy's passage through the surface starts and ends. So<br />

no ramping is applied to the slam force applied to spar buoys and towed fish. (The waterplane area could in theory<br />

change discontinuously if the buoy end cylinder face hit the water exactly parallel to the surface, but in practice this<br />

situation is so unlikely to occur that we have not found it to be a problem.)


w<br />

5.13.6 Contact Forces<br />

Contact Forces from Interaction with Seabed and Shapes<br />

205<br />

Theory, 3D Buoy Theory<br />

Interactions with shapes and the seabed are calculated as if the buoy consists of a series of lumps, one at each<br />

vertex.<br />

Notes: For a lumped buoy you can specify the number and location of the vertices. If you specify no<br />

vertices then the 6D Buoy will not react to contact with the seabed or with any solids.<br />

For a spar buoy or towed fish, the vertices used are the vertices which are automatically created<br />

for the Draw square cylinders drawing option. These vertices are used even if the Draw circular<br />

cylinders option is selected.<br />

If any buoy vertex penetrates the seabed or an elastic solid then it experiences a reaction force at that vertex. See<br />

Seabed Theory and Shapes Theory for details.<br />

Contact friction forces can also be included, by setting a non-zero seabed friction coefficient or solid friction<br />

coefficient.<br />

Because the vertices are (in general) offset from the buoy origin, these seabed or shape reaction forces give reaction<br />

moments about the buoy origin.<br />

Contact area<br />

The reaction force at a vertex depends on the contact area of the vertex, Av. This vertex contact area is taken to equal<br />

the specified total contact area of the buoy, At, divided equally amongst all the buoy vertices:<br />

Av = At / (number of vertices)<br />

If At is set to zero then the buoy experiences no contact forces.<br />

Default total contact area<br />

If At is set to '~' then <strong>OrcaFlex</strong> calculates and uses a default value of At that is based on the buoy geometry as follows.<br />

For a Lumped Buoy the default total contact area is given by:<br />

At = Volume / Height<br />

where Volume and Height are as specified on the buoy data form.<br />

For Spar Buoys and Towed Fish the default total contact area is given by:<br />

where<br />

At = max(Aaxial, Alateral)<br />

Aaxial = maximum cylinder cross-sectional area<br />

Alateral = sum, over all cylinders, of the projected lateral area = cylinder diameter × cylinder length.<br />

5.14 3D BUOY THEORY<br />

The effects included for a 3D Buoy are weight, buoyancy, drag, added mass and reactions from shapes. All of the<br />

fluid related effects are calculated allowing for what proportion of the buoy is currently immersed in the sea. This is<br />

done by calculating a proportion wet, PW, and then scaling all of the fluid related forces by this proportion. In the<br />

following equations, the water density is denoted by ρ.<br />

The forces applied are as follows.<br />

Weight and Buoyancy<br />

Drag<br />

Weight = Mass . g vertically downwards<br />

Buoyancy = ρ. g . PW . Volume vertically upwards.<br />

Drag forces are calculated separately for each of the global X, Y and Z directions. For the X direction (and similarly<br />

for the Y and Z directions) the drag force applied is<br />

Drag Force = PW . ½ . ρ . CdX . AX . VrX . |Vr|


Theory, Winch Theory<br />

where<br />

CdX and AX are the Drag Coefficient and Drag Area, respectively, for the X direction<br />

Vr is the velocity vector of the fluid relative to the buoy and |Vr| is its absolute magnitude<br />

VrX is the component of Vr in the X direction.<br />

Fluid Inertia Effects<br />

Fluid acceleration force = (1+Ca) . ρ . PW . Volume . A<br />

in each of the global axes directions, where<br />

Ca is the Added Mass Coefficient for that direction<br />

A is the acceleration of the fluid in that direction.<br />

This force is often considered as being made up of two parts:<br />

1. The Froude-Krylov force = ρ . PW . Volume . A<br />

2. The added inertia force = Ca . ρ . PW . Volume . A.<br />

In addition, the inertia of the buoy in each of the global axes directions is increased by:<br />

where<br />

Added mass = ρ . Ca . PW . Volume<br />

Ca is the Added Mass Coefficient for that direction.<br />

Contact Forces<br />

206<br />

w<br />

Finally, 3D Buoys are also subjected to a reaction force from the seabed and any elastic solid with which they come<br />

into contact, given by:<br />

where<br />

Reaction = KAd<br />

K is the Stiffness of the seabed or elastic solid<br />

A is the contact area<br />

d is the depth of penetration of the buoy origin B.<br />

In addition to this reaction force, 3D Buoys receive a contact damping force. For details see Seabed Theory and<br />

Solids Theory.<br />

Finally, friction forces can also be included.<br />

5.15 WINCH THEORY<br />

Static Analysis<br />

If the Statics winch control mode is set to Specified Length then for the static analysis the unstretched length of<br />

wire paid out, L0, is set to the Value specified, and the wire tension t and winch drive force f are both set to equal:<br />

where:<br />

t = f = K . ε (1)<br />

ε = Wire Strain = [ L - L0 ] / L0<br />

K = Wire Stiffness data value, specified on the winch data form<br />

L = total length of the winch wire path<br />

L0 = unstretched length of winch wire paid out<br />

Alternatively, if the Statics winch control mode is set to Specified Tension, then for the static analysis the winch<br />

drive force f and the wire tension t are both set to the Value specified, and the unstretched length paid out, L0, is<br />

then set to match this wire tension according to equation (1) above.


w<br />

Dynamic Analysis<br />

207<br />

Theory, Winch Theory<br />

If Specified Payout is specified (length control mode) for a stage of the simulation, then the unstretched length of<br />

winch wire paid out, L0, is steadily increased or decreased during that stage so that the total change during the stage<br />

is the Value specified. Positive Value means pay out, negative Value means haul in.<br />

The winch wire tension t (which is applied to each point on the wire) is then given by<br />

where<br />

t = K . ε + C . K . dε/dt (2)<br />

K and C are the Wire Stiffness and Wire Damping data values specified on the winch data form<br />

ε = Wire Strain = [ L - L0 ] / L0<br />

dε/dt = Wire Strain Rate = [ dL/dt - dL0/dt ] / L0<br />

L = total length of the winch wire path<br />

Note: The winch wire is not allowed to go into compression, so if the value for t given by equation (2) is<br />

negative then the winch wire is considered to have gone slack and t is set to zero.<br />

If Specified Tension mode is specified for a stage of the simulation, the Value specified in the data is used as a<br />

target nominal constant tension that the winch drive attempts to achieve.<br />

For Simple winches the winch drive is always assumed to achieve the target tension, so the Value specified is used<br />

for the actual winch wire tension.<br />

For Detailed winches the winch drive tries to achieve the target tension by applying a drive force to one side of the<br />

winch Inertia, opposing the wire tension being applied to the other side. The drive force f applied is then given by:<br />

where<br />

if dL0/dt < 0: f(V) = f(0) - Deadband + A.V - C.V 2<br />

if dL0/dt = 0: f(V) = f(0)<br />

if dL0/dt > 0: f(V) = f(0) + Deadband + B.V + D.V 2 (3)<br />

V = rate of payout = dL0/dt<br />

Deadband = the winch drive deadband data item<br />

A, B = the winch drive damping term data items<br />

C, D = the winch drive drag term data items.<br />

f(0) = Value + Stiffness.(L0 - L00)<br />

Value = the nominal constant tension Value given<br />

Stiffness = the winch drive stiffness data item<br />

L00 = original value of L0 at the start of the simulation (set by the static analysis)


Theory, Shape Theory<br />

Deadband<br />

Deadband<br />

Drive Force f<br />

f(V) = f(0) - Deadband<br />

+ A.V - C.V 2<br />

0<br />

f(V) = f(0) + Deadband<br />

+ B.V + D.V 2<br />

Figure: Force Control Mode for Detailed Winches<br />

f(0) = Nominal Tension<br />

+ Stiffness ��(Payout since<br />

simulation started)<br />

208<br />

Payout Speed V<br />

(-ve = hauling in)<br />

w<br />

If the winch Inertia M is non-zero, then the winch wire tension is set as in equation (2) above and the winch inertia<br />

reacts by paying out or hauling in wire according to Newton's law:<br />

Md 2 L0/dt 2 = t - f<br />

so the wire tension therefore tends towards the winch drive force and is hence controlled by the given Value.<br />

If the winch inertia is set to zero, then the winch is assumed to be instantly responsive so that<br />

f = t at all times (4)<br />

Given the current value of L0, the common value of f and t is then found by solving the simultaneous equations (2),<br />

(3) and (4) for the payout rate dL0/dt. The unstretched length of winch wire out, L0, is then altered at the calculated<br />

rate dL0/dt as the stage progresses.<br />

Note: If the winch inertia is set to zero then at least one of the damping and drag terms A, B, C, D should<br />

be non-zero, since otherwise the simultaneous equations (2), (3) and (4) may have no solution. A<br />

warning is given if this is attempted.<br />

5.16 SHAPE THEORY<br />

Elastic Solids<br />

Consider an object which penetrates the surface of an elastic solid. Denote by po the position of the penetrating<br />

object and by ps the closest point on the surface of the solid to po. Note that if the penetrating object has non-zero<br />

contact diameter (e.g. a line node) then this closest point may be on an edge or corner of the shape.<br />

The outwards reaction force on the penetrating object acts outwards, in the direction of the vector po-ps, and with<br />

magnitude of KAd, where:<br />

K = stiffness of the material<br />

A = contact area<br />

d = depth of penetration.<br />

For details of the way the contact area is calculated, see Line Interaction with Seabed and Solids, 3D Buoy Theory<br />

and 6D Buoy Theory.<br />

In addition, if a non-zero friction coefficient is specified, then a lateral friction force is applied. For details of the<br />

friction model see Friction Theory.


w<br />

209<br />

Theory, Shape Theory<br />

Finally, if explicit integration is used then a reaction damping force D is also applied when the object is travelling<br />

into the solid. This damping force is in the same outwards direction, and is given by:<br />

where<br />

D = 2λ(MKA) ½ Vn<br />

λ = percentage of critical damping / 100<br />

M = mass of the penetrating object<br />

Vn = component of object velocity in direction into the solid.<br />

The damping force is only applied when the object is travelling into the shape (i.e. when Vn is positive).<br />

Trapped Water<br />

Inside a trapped water shape the fluid motion is modified as follows:<br />

� The fluid translational velocity and acceleration are calculated on the assumption that the trapped water moves<br />

and rotates with the shape. So if the trapped water shape is Fixed or Anchored then no fluid motion occurs<br />

inside the shape. But if the shape is connected to a moving vessel, for example, then the trapped water is<br />

assumed to move and rotate with the vessel.<br />

� The fluid angular velocity and acceleration of the local water isobar are both taken to be zero. (These angular<br />

motions are only used for calculating moments on 6D buoys.)<br />

Notes: If the shape intersects the water surface then the surface is assumed to pass through the shape<br />

unaltered. Thus a wave in the open sea also appears inside the shape. We make this assumption<br />

because of the difficulty in predicting, for realistic cases, how the surface will behave inside the<br />

trapped water volume.<br />

For example, a moonpool with an open connection at the bottom will suppress most of the wave<br />

and current action. However there will be some flow in and out of the moonpool, depending on the<br />

size of the opening to the sea, pressure difference effects and the local geometry. The surface<br />

elevation in the moonpool therefore does respond to the wave outside, but it is attenuated to some<br />

extent and lags behind the surface outside.


w<br />

6 SYSTEM MODELLING: DATA AND RESULTS<br />

6.1 MODELLING INTRODUCTION<br />

System Modelling: Data and Results, Modelling Introduction<br />

To analyse a marine system using <strong>OrcaFlex</strong>, you must first build a mathematical model of the real-world system,<br />

using the various modelling facilities provided by <strong>OrcaFlex</strong>. The model consists of the marine environment to which<br />

the system is subjected, plus a variable number of objects chosen by the user, placed in the environment and<br />

connected together as required. The objects represent the structures being analysed and the environment<br />

determines the current, wave excitation, etc. to which the objects are subjected.<br />

The following types of objects are available in <strong>OrcaFlex</strong>. (Detailed descriptions of each type of object are given later.)<br />

Vessels<br />

3D Buoys<br />

6D Buoys<br />

Lines<br />

Links<br />

Winches<br />

Shapes<br />

are used to model ships, floating platforms, barges etc. They are rigid bodies whose motions are prescribed<br />

by the user. The motion can be specified in a number of ways: directly by a time history motion data file or<br />

specifying Response Amplitude Operators (RAOs) for each of 6 degrees of freedom (surge, sway, heave, roll,<br />

pitch and yaw), or indirectly by giving first order wave load RAOs or second order wave drift QTFs; or a<br />

combination of the two. They can also be driven around the sea surface, at user specified velocities and<br />

headings, during the course of the simulation.<br />

are simple point bodies with just 3 degrees of freedom – the translational degrees of freedom (X,Y and Z).<br />

Unlike a vessel, whose response to waves is defined by the data, the motion of a buoy is calculated by<br />

<strong>OrcaFlex</strong>. 3D buoys are not allowed to rotate and are intended only for modelling objects that are small<br />

enough for rotations to be unimportant.<br />

are much more sophisticated than 3D buoys – they are rigid bodies with the full 6 degrees of freedom. That<br />

is, <strong>OrcaFlex</strong> calculates both their translational and rotational motion. Several different types of 6D Buoy are<br />

available, for modelling different sorts of marine object.<br />

Note: Although called buoys, 3D and 6D buoys do not need to be buoyant and so can readily be used to<br />

model any rigid body whose motion you want <strong>OrcaFlex</strong> to calculate.<br />

are catenary elements used to represent pipes, flexible hoses, cables, mooring lines, etc. Line properties may<br />

vary along the length, for example to allow a buoyant section to be represented. Line ends may be fixed or<br />

free, or attached to other objects such as Vessels or Buoys, and ends can be disconnected in the course of a<br />

simulation.<br />

Each line can also have a number of attachments. These are elements attached to lines at user-specified<br />

locations, and provide a convenient way of modelling items such as floats, clump weights, or drag chains.<br />

are mass-less connections linking two other objects in the model. Two types are available: Tethers are<br />

simple elastic ties, Spring / Dampers are combined (linear or non-linear) spring + damper units.<br />

are also mass-less connections linking two (or more) objects in the model. The connection is by a winch<br />

wire, which is fed from and controlled by a winch drive mounted on the first object. The winch drive can be<br />

operated in either constant speed mode, in which it pays out or hauls in the winch wire at a user-specified<br />

rate, or else in constant tension mode, in which it applies a user-specified tension to the winch wire.<br />

are geometric shapes and two types are available – Solids or Trapped Water. Trapped Water Shapes can be<br />

used to model parts of the sea, such as moonpools, that are shielded from the waves. Solids can be used to<br />

act as physical barriers to restrict the movement of the other objects in the system; they are made of an<br />

elastic material and so apply a reaction force to any object that penetrates them. However, by specifying zero<br />

stiffness, you can also use a solid purely for drawing purposes, for example to see on the 3D view the<br />

position of a piece of equipment.<br />

211


System Modelling: Data and Results, Data in Time History Files<br />

212<br />

w<br />

Several different elementary shapes (cuboids, planes and cylinders) are available and a number of shapes<br />

may be placed together to build up more complex compound shapes. They may be fixed or attached to other<br />

objects such as Vessels or Buoys.<br />

Of these various object types, the lines, links and winches have the special property that they can be used to connect<br />

together other objects. Assembling the model therefore consists of creating objects and then using the lines, links<br />

and winches to connect the other objects together, as required. See Object Connections for details.<br />

The number of objects in the model is only limited by the memory and other resources available on the computer<br />

being used. Similarly, there are no built-in limits to the number of lines, links or winches that are attached to an<br />

object. As a result very complex systems can be modelled, though of course the more complex the model the longer<br />

the analysis takes. Example files are provided with <strong>OrcaFlex</strong>.<br />

Computer programs cannot exactly represent every aspect of a real-world system – the data and computation<br />

required would be too great. So when building the model you must decide which are the important features of the<br />

system being analysed, and then set up a model that includes those features. The first model of a system might be<br />

quite simple, only including the most important aspects, so that early results and understanding can be gained<br />

quickly. Later, the model can be extended to include more features of the system, thereby giving more accurate<br />

predictions of its behaviour, though at the cost of increased analysis time.<br />

Once the model has been built, <strong>OrcaFlex</strong> offers a variety of analyses:<br />

� Modal Analysis, in which <strong>OrcaFlex</strong> calculates and reports the undamped natural modes of the model, or of an<br />

individual line in the model.<br />

� Static analysis, in which <strong>OrcaFlex</strong> calculates the static equilibrium position of the model; current and wind loads<br />

are included, but not wave loads.<br />

� Dynamic analysis, in which <strong>OrcaFlex</strong> carries out a time simulation of the response of the system to waves,<br />

current and a range of user-defined inputs. A choice of implicit and explicit integration scheme is offered.<br />

6.2 DATA IN TIME HISTORY FILES<br />

For certain data you can use time history files to specify time-varying values. This is available for wave elevation,<br />

wind speed and vessel motion, and allows you full control over how the variable changes with time.<br />

If you want to specify time-varying data for more than one object (e.g. for both the wave and wind, or for the wave<br />

and a vessel) then you can either put all the data in one file (using multiple columns in a single table) or you can use<br />

separate time history files for the different objects.<br />

Time history file data is specified on a page control:<br />

Figure: Time history data


w<br />

Source page<br />

System Modelling: Data and Results, Data in Time History Files<br />

The Input File is the name of the time history input file that contains the data. You can either specify the full path or<br />

a relative path.<br />

For vessel time history files you must specify an Interpolation Method. For most purposes we recommend using<br />

Cubic Spline interpolation, since it gives continuity of vessel velocity and acceleration. Cubic Bessel interpolation<br />

typically gives step changes in acceleration at the specified time samples, and Linear interpolation gives zero<br />

acceleration between the times specified and then an infinite acceleration when the velocity changes at a specified<br />

time sample. Such acceleration effects can manifest themselves as steps or spikes in the inertial forces on any<br />

objects attached to the vessel.<br />

The Time Origin gives you control of how the times given in the time history file relate to the times in <strong>OrcaFlex</strong>. The<br />

time origin is specified relative to the <strong>OrcaFlex</strong> global time origin, so it specifies the global time that corresponds to<br />

zero time in the time history file. The simulation time origin is also specified relative to global time, so you can<br />

simulate different periods of the time history by adjusting either the time history origin or the simulation time<br />

origin.<br />

So, for example, if the time history file's time origin is set to 100s and the simulation time origin is set to 400s, then a<br />

simulation consisting of 40s of build-up (i.e. simulation time -40 to 0) followed by 200s of simulation (simulation<br />

time 0 to 200) will cover time history time from 260s to 500s. Note that the time history file must contain data to<br />

cover the whole of the simulation.<br />

Note: If you are using more than one time history file (e.g. one for a wave train and one for motion of a<br />

vessel) then they each have their own time origins, which you can use to time shift each time<br />

history independently of the others.<br />

For vessel time history files the origin specifies, with respect to vessel local axes, the point on the vessel at which<br />

the motion time history applies.<br />

The Minimum time sample interval can be useful to smooth time history data in some situations:<br />

� if the time history values have been truncated to a small number of significant figures, or<br />

� if the sample interval in the file is very small.<br />

If either of these conditions hold (or worse, if both do) then you may find that the interpolated time history values<br />

cause the simulation to contain unrealistic noise.<br />

Using a non-zero minimum time sample interval results in the time history data being sub-sampled at the specified<br />

period. For example if the time history file contained data sampled at 0.01s intervals and the minimum time sample<br />

interval was 0.2s then <strong>OrcaFlex</strong> would use every 20 th row of time history data.<br />

This sub-sampling technique has proved to be very effective at smoothing interpolated time histories and so<br />

improving the quality and stability of simulations.<br />

Data page<br />

Note: If you do not wish to sub-sample the time history input file then you should use a value of 0.<br />

You must tell <strong>OrcaFlex</strong> which columns in the time history file correspond to Time, X, Y, Z etc. This is done on the<br />

Data page using a series of drop down lists.<br />

You can also specify that vessel degrees of freedom (X, Y, Z etc.) are fixed by specifying None in the drop down list.<br />

For a primary motion time history the degree of freedom will be fixed as the value at the end of the static<br />

calculation. For a superimposed motion time history the degree of freedom will be fixed as zero.<br />

Preview page<br />

The preview page presents graphs of the data contained in the time history file. This can provide a quick check that<br />

the column data has been correctly specified.<br />

Each graph contains two vertical lines to represent the beginning and end of the simulation. The time axis of the<br />

graphs use the raw data contained in the input file. As described above the time history origin and the simulation<br />

time origin can be used to control of how the times given in the time history file relate to the times in <strong>OrcaFlex</strong>.<br />

These graphs can therefore be used to check that the time origin data items are set correctly.<br />

213


System Modelling: Data and Results, Variable Data<br />

214<br />

w<br />

Note: The values plotted on the graphs are the raw data contained in the time history input file. No<br />

interpolation is applied before plotting the curves, but if you have a large number of data points<br />

(>1000) the data (on the preview graph only) may be subsampled.<br />

Time History File Format<br />

Time History files must conform to the following formatting rules:<br />

� The file must be a tab-delimited text file; in other words it must be a text file in which the time history data<br />

columns are separated by single tab characters. Files of this format can easily be produced with commercial<br />

spreadsheet programs by using "Save As" and selecting tab-delimited text format.<br />

� The data values must be in standard decimal or scientific form.<br />

� One column must contain the time values and these must be given in ascending order.<br />

� The data must be given in the same units as used in the <strong>OrcaFlex</strong> model.<br />

� For a wave time history the time values must be equally spaced since a fast Fourier transform is used which<br />

requires equal spacing. But for wind velocity or vessel motion time history files variable time intervals can be<br />

used since the interpolation methods used do not require equal spacing.<br />

The data is assumed to start at the first numeric entry in the time column and blank rows are not allowed once the<br />

data has started. This means that textual information about the file (titles etc.) can precede the data but once the<br />

data begins it cannot be interrupted with any more text.<br />

Note: If you generate your time history text file from a spreadsheet program such as Excel, please note<br />

that the number of significant figures in the text file will depend on the number format of the cells<br />

in the spreadsheet. Before saving the text file, it is therefore important to set the number format to<br />

one that displays all the significant figures, since otherwise the time history text file will lose some<br />

significant figures. In Excel you can get all significant figures by selecting all the cells and then<br />

using the Format Cells command (on the Format menu) to set the number format to scientific with<br />

15 decimal places.<br />

6.3 VARIABLE DATA<br />

Most <strong>OrcaFlex</strong> data is constant – i.e. its value, y say, is a fixed specified value. But for some numerical data items you<br />

can choose to instead specify variable data. Typically the data item's value y is then specified as being a function of<br />

some other value x, and the actual value y(x) used by <strong>OrcaFlex</strong> then depends on the value of x at the time. If x varies<br />

during the simulation then y varies accordingly.<br />

As an example consider the drag coefficient of a line. In the real world this isn't a fixed constant value – it depends<br />

on the Reynolds number. For many applications this variation is not significant so a fixed constant drag coefficient is<br />

sufficient. But sometimes the Reynolds number variation is important, so you can then specify the drag coefficient to<br />

be a function of Reynolds number. Then, each time the drag coefficient is needed <strong>OrcaFlex</strong> will first calculate the<br />

Reynolds number (the x in the above description) and then derive and use the corresponding drag coefficient y(x).<br />

Note that some data items use variable data in a slightly different way. For example the axial stiffness of a line type<br />

is the slope of the tension-strain curve, so in this case constant data specifies dy/dx, rather than y, where y is<br />

tension and x is axial strain. In this context constant means constant slope, i.e. linear, and the constant value you<br />

specify is dy/dx, whereas variable means non-linear and you specify y as a function of x. Cases like this are<br />

documented in the description of each data item.<br />

Using Variable Data<br />

Variable data can only be used for certain data items. These are the numerical data items that have a small downarrow<br />

button to the right of the data item value. For these you can either specify a fixed constant numerical value in<br />

the usual way. Or you can specify the name of a variable data source, either by typing the name in or by selecting it<br />

using the down-arrow button. The named data source must already have been defined – see the next section.<br />

Different data items can use the same variable data source much in the same way that different sections of a Line<br />

can use the same Line Type.<br />

Setting up Variable Data Sources<br />

All the variable data sources are specified on the Variable Data form. This form can be opened using the model<br />

browser or using the pop-up menu on any data form.


w<br />

215<br />

System Modelling: Data and Results, Variable Data<br />

Each table on the Variable Data form is given a name and the tables are grouped according to the type of data they<br />

contain. For example data for drag coefficients is kept separate from data for axial stiffness.<br />

This structure is indicated by the layout of the form, which is designed to be used from left to right. So first select the<br />

type of data you want, using the tree view in the left hand section of the form.<br />

The centre section of the form then shows how many data sources have already been defined for that selected type<br />

of data, and their names. To add a new table, increment the Number of Data Sources. To edit the name of a data<br />

source double click the name or select the name and then press F2. To delete a data source select it and press the<br />

DELETE key.<br />

The right hand section of the form is where the data for the data source is entered. What form these data take varies.<br />

The different possibilities are described below.<br />

Tabular Data Sources<br />

These data sources are specified by giving a table of corresponding values (x1,y1), (x2,y2), .., (xn,yn), where the table's<br />

left hand column is the independent variable x and its right hand column is the dependent variable y. The data will<br />

be automatically sorted into order of increasing x when the data is used or when you use the Profile button.<br />

This table defines a function y(x). For intermediate values of x <strong>OrcaFlex</strong> interpolates. For values of x outside the<br />

range specified <strong>OrcaFlex</strong> either extrapolates or else truncates. Truncation means that <strong>OrcaFlex</strong> uses y1 for all x ≤ x1<br />

and yn for all x ≥ xn (the table already having been sorted so that x1 is the lowest x-value specified and xn is the<br />

highest). The variable data form reports the method of interpolation and whether extrapolation or truncation is<br />

used.<br />

The Profile button displays a graph of the currently selected data. This is useful for data checking purposes. Where<br />

appropriate, log scales are used.<br />

Horizontal Variation Factor Data Sources<br />

These data sources specify a variation along a user-prescribed axis. This axis is defined by the X,Y coordinates of an<br />

origin and an azimuth direction. Together with the axis you also specify a table of values defining the horizontal<br />

variation factor as a function of distance along the axis. This table is specified in the same way as for tabular data<br />

sources.<br />

6.3.1 External Functions<br />

External Function Data Sources are yet another variety of variable data source. These data sources allow data to<br />

be specified by a user-defined function provided in an external DLL, or a Python script. We refer to these two types<br />

of external functions as native code external functions and Python external functions, respectively. This function is<br />

called repeatedly during the <strong>OrcaFlex</strong> simulation and is passed the current value of the variable data item. The<br />

function must then recalculate and update the value of the variable data item.<br />

The following data items are required to specify an external function data source:<br />

File Name<br />

The file name containing the external function. This can be the name of a DLL for a native code external function, or<br />

the name of a Python script in the case of a Python external function.<br />

If the file name uses a relative path, it is relative to the directory containing the latest <strong>OrcaFlex</strong> file that you have<br />

opened or saved. If there is no such file (because it is a new model which has not yet been saved) then the file name<br />

is relative to the value of the working directory when the program started.<br />

For native code DLLs, the system DLL search order is used if the DLL is not found relative to the directory containing<br />

the latest <strong>OrcaFlex</strong> file.<br />

Function Name<br />

The name of the external function. For a native code external function this is the name of a function exported by the<br />

external DLL. For a Python external function this is the name of a class defined in the Python script.<br />

For details on how to implement external functions please refer to the <strong>OrcaFlex</strong> programming interface<br />

documentation.<br />

Python Version<br />

For Python external functions only, this determines which version of Python is used.


System Modelling: Data and Results, General Data<br />

216<br />

w<br />

� If Python 2 is selected then either version 2.6 or 2.7 will be used. If both of these versions are present on your<br />

system, then the most recent, i.e. 2.7 will be used.<br />

� If Python 3 is selected then one of version 3.0, 3.1 or 3.2 will be used. Again, if more than one of these versions is<br />

present on your system, then the most recent will be used.<br />

Initial Value<br />

When <strong>OrcaFlex</strong> calls the external function for the first time it passes this value to the function. The function can use<br />

this value as its starting value if it so chooses. Alternatively it can ignore this value and substitute a different value.<br />

Time Step<br />

Note: This value is used by <strong>OrcaFlex</strong> when drawing the model in Reset state.<br />

This specifies how frequently the external function is called to update the value of the variable data item. You can<br />

use either the inner time step, the outer time step or a user-specified time step. If you choose a user-specified time<br />

step then you input a target time step and the program uses the nearest whole multiple of the inner time step.<br />

Note: When using implicit integration, this data is ignored and the external function is called on each<br />

iteration of each time step.<br />

External Function Parameters<br />

The external function facility provides a general purpose method of passing parameters to external functions.<br />

For an example of why this is desirable consider an external function which implements a PID controller used to<br />

model the active control system for a heave compensating winch. A PID controller has a number of parameters and<br />

these could be hard coded into the external function. However, in <strong>OrcaFlex</strong> you may want to experiment by varying<br />

these parameters to see how they affect a simulation. If the parameters are hard coded then the external function<br />

DLL will have to be recompiled each time you experiment by changing the parameters.<br />

Instead <strong>OrcaFlex</strong> allows you to specify parameters for the external function as part of the <strong>OrcaFlex</strong> data. These<br />

parameters are passed to the external function. The parameters are specified as a free form multi-line text field. This<br />

means that the external function has to do some work to decode and interpret the text before it can access the<br />

parameters. However, this also means that there is a great deal of flexibility in the parameter passing mechanism.<br />

Whenever an <strong>OrcaFlex</strong> object (e.g. a Winch, a 6D Buoy, a Vessel, the Environment etc.) uses an external function then<br />

a page titled External Functions is available on that object's data form. The parameters are specified in the text<br />

field contained in this page.<br />

For native code external functions, the parameters are passed to the external function in the lpObjectParameters<br />

member of the TExternalFunctionInfo data structure. For Python external functions, the parameters are passed<br />

in the ObjectParameters attribute of the info object.<br />

For more details please refer to the <strong>OrcaFlex</strong> programming interface documentation. Also, the External Function<br />

Examples illustrate the procedure involved in passing parameters to external functions and are a useful source.<br />

Data which can be controlled by External Functions<br />

The following data items can be controlled by External Functions:<br />

� Vessel and 6D Buoy applied loads.<br />

� Wing orientation angles.<br />

� Winch tension and winch payout rate.<br />

� Current reference speed and reference direction.<br />

� Bend stiffness for Line Types.<br />

� Vessel primary motion.<br />

External Function Examples<br />

A selection of example external functions are supplied on the <strong>OrcaFlex</strong> installation disc. Alternatively these example<br />

functions can be downloaded from www.orcina.com/Support.


w<br />

6.4 GENERAL DATA<br />

The General Data form gives data that applies to the whole model.<br />

Comments<br />

217<br />

System Modelling: Data and Results, General Data<br />

A free form multi-line text field that can be used to store notes about the model. <strong>OrcaFlex</strong> does not use this text.<br />

Units Data<br />

This may be SI, US or User Defined (multiple choice). Units are defined for length, mass, force, time and<br />

temperature.<br />

Selecting SI gives length in metres, mass in tonnes, force in kN, time in seconds and temperature in Celsius. Selecting<br />

US gives length in feet, mass in kips, force in kips, time in seconds and temperature in Fahrenheit.<br />

If neither of these systems meets your requirements then select User Defined. You may then select individually<br />

from the length, mass, force, time and temperature units on offer and in addition you can specify the value of g<br />

(gravitational acceleration).<br />

If the units are changed, then <strong>OrcaFlex</strong> converts all the data in the model into the new units.<br />

Note: For any given length, force and time units there is a corresponding inertial mass unit, which is the<br />

mass that would be accelerated at 1 unit of acceleration when one unit of force was applied. For<br />

example in the US units system the unit of acceleration is 1 ft/s 2 and the unit of force is 1 kip force,<br />

so the inertial mass unit is 1 kiloslug (= 1000 slugs = approximately 32000 pounds mass), since a 1<br />

kip force applied to a 1000 slug mass would give an acceleration of 1 ft/s 2 .<br />

6.4.1 Statics<br />

Statics Method<br />

US units, and many of the possible User Defined units systems, use mass units that are not the<br />

inertial mass unit corresponding to the length, force and time units. When using such a system you<br />

should note that the equations in this manual, as in most text books, are written in a form which<br />

assumes that any terms involving mass units (e.g. mass, moment of inertia, mass per unit length,<br />

density etc.) are expressed in the inertial mass unit, not the 'non-inertial' mass unit used by the unit<br />

system. <strong>OrcaFlex</strong> automatically allows for this when you use US units or any User Defined system<br />

where the mass unit is not the inertial mass unit.<br />

<strong>OrcaFlex</strong> includes two system statics methods: Whole System statics and Separate Buoy and Line statics. They<br />

are functionally equivalent but you will likely find cases which converge with either one of the methods but not the<br />

other.<br />

We recommend that you use the default method of Whole System statics because it is, in general, much faster and<br />

more robust than Separate Buoy and Line statics.<br />

Whole System statics solves the entire system in a single integrated iterative method. The program calculates the<br />

system Jacobian matrix analytically. Conceptually this method is identical to the Full Statics method for Lines, except<br />

that it operates on all objects in the model.<br />

Separate Buoy and Line statics is a hybrid statics method comprising an outer and an inner loop. The inner statics<br />

loop solves statics for all Lines in the model, and the outer statics loop solves statics for Buoys and Vessels. While<br />

this method works reasonably well in many cases, it can perform poorly for cases containing large numbers of<br />

Buoys and/or Vessels. This hybrid method uses a perturbation technique to calculate the system Jacobian matrix<br />

which is both slower and less accurate than calculating it analytically.<br />

Note: Whole system statics cannot yet be used with models that use externally calculated bend moments.<br />

This limitation will be removed in a future release of <strong>OrcaFlex</strong>.<br />

Buoy Degrees of Freedom Included in Static Analysis<br />

Buoys can either be included or excluded from the static analysis. When a buoy is included <strong>OrcaFlex</strong> calculates the<br />

static equilibrium position of the buoy; when it is excluded <strong>OrcaFlex</strong> simply places the buoy at the position specified<br />

by the user.


System Modelling: Data and Results, General Data<br />

218<br />

w<br />

Which buoys are included in the static analysis is determined by the data item "Buoy Degrees of Freedom Included<br />

in Static Analysis" on the General Data form, together with individual settings on each buoy's data form, as described<br />

below:<br />

� A value of None means that <strong>OrcaFlex</strong> does not find the true static equilibrium position of the buoys in the<br />

model, but instead simply places the buoys at the initial starting position specified in the data.<br />

� A value of X, Y, Z includes all buoys in the static calculation, but excludes rotational degrees of freedom for 6D<br />

Buoys.<br />

� A value of Individually Specified allows you to specify individually on each buoy data form, whether that buoy<br />

should be included in the static equilibrium calculation. For 6D Buoys you can also choose whether the<br />

rotational degrees of freedom are included or excluded.<br />

� This data item should normally be set to All, in which case the static analysis will attempt to find the static<br />

equilibrium position of all the buoys in the model, as well as finding the static equilibrium position of the other<br />

objects.<br />

There are several cases where this data item should be set to None. The first is if you are not using Catenary Statics<br />

or Full Statics for any lines in the model (see Static Analysis). In this case, the line is not in true static equilibrium<br />

and so <strong>OrcaFlex</strong> cannot find the static equilibrium position of any buoy to which such lines are attached. If any such<br />

lines exist then all the buoys must be excluded from the static analysis by setting this data item to None.<br />

The second case where this item may need to be set to None is if the model is statically indeterminate, for example a<br />

free floating buoy, or if the static analysis fails to converge. The static analysis is an iterative calculation and for<br />

some complex systems this calculation may fail to converge, especially if the initial estimated position given in the<br />

data is far from being an equilibrium position. If this happens you can exclude some or all buoys (or, for 6D buoys,<br />

just the rotational degrees of freedom) from the static analysis; this simplifies the static analysis and should enable<br />

convergence. Although the simulation then starts from a non-equilibrium position, it does allow the simulation to<br />

proceed and the initial non-equilibrium errors will normally be dissipated during the build-up stage of the<br />

simulation, provided a reasonable length build-up stage is specified. In fact the simulation can then often be used to<br />

find the true static equilibrium position, by running a simulation with no waves; once it is found, the true static<br />

equilibrium positions of the buoys can then be input as their starting positions for subsequent runs.<br />

Finally, you may specifically want the simulation to start from a non-equilibrium position. One example of this is to<br />

use the simulation to determine the damping properties of the system, by running a simulation with no waves and<br />

starting from a non-equilibrium position.<br />

Starting Velocity<br />

Specifies the velocity of the whole model for the static analysis and for the start of the simulation. It is defined by<br />

giving the speed (i.e. magnitude) and direction.<br />

Normally the starting speed is zero. If a non-zero speed is specified (e.g. for modelling a towed system) then the<br />

static analysis becomes a steady state analysis that finds the steady state equilibrium position in which the whole<br />

model is moving with the specified velocity. The static position is therefore then referred to as a steady state<br />

position, and the calculation of this position allows for any drag loads due to differences between the starting<br />

velocity and the current velocity.<br />

Note: The model will start the simulation from the calculated steady state; i.e. with the specified starting<br />

velocity. So you should normally ensure that each vessel in the model has its prescribed motion for<br />

stage 0 (the build up stage) set to match the specified starting velocity. Otherwise the simulation<br />

will start with a sudden change in vessel velocity, which will cause a "kick" which may take some<br />

time to settle down.<br />

Statics Convergence Parameters<br />

When buoys or vessels are included in the static analysis, their equilibrium positions are calculated using an<br />

iterative algorithm that is controlled by the convergence parameters on the General data form. They do not normally<br />

need to be altered. However if the static calculation fails to converge it is sometimes possible to improve the<br />

behaviour by adjusting the convergence parameters.<br />

Max Iterations<br />

The calculation is abandoned if convergence has not been achieved after this number of steps. For some difficult<br />

cases simply increasing this limit may be enough.


w<br />

Tolerance<br />

219<br />

System Modelling: Data and Results, General Data<br />

This controls the accuracy of the solution. See 3D Buoy statics accuracies, 6D Buoy statics accuracies and Vessel<br />

statics accuracies.<br />

Min Damping, Max Damping<br />

For some cases it is necessary to control the convergence process by damping down (i.e. reducing) the step taken at<br />

each stage. The program includes an automatic damping system that chooses a suitable damping factor for each<br />

iteration, but the user can set the minimum damping and maximum damping factors that are used.<br />

Normally the default values will suffice but for difficult cases the default values can be altered. For cases that appear<br />

to make the convergence unstable (e.g. giving very bad line positions on the screen) try increasing the Min<br />

Damping factor to a value greater than 1, say values in the range 1 to 10. You can also try increasing the Max<br />

Damping factor, say to values in the range 10 to 100.<br />

Note: Convergence will be slower with larger damping values so you should use the smallest values that<br />

result in statics converging.<br />

Mag. of Std. Error, Mag. of Std. Change<br />

For some cases it may be necessary to reduce one or both of these values from their defaults. Doing so is likely to<br />

slow down the convergence, but it may be necessary in order to achieve convergence!<br />

6.4.2 Dynamics<br />

Simulation Stages<br />

The simulation proceeds in a Number of Stages each of a given Duration. See Figure: Time and Simulation Stages<br />

in Dynamic Analysis.<br />

Before the first stage is a Build-Up Period during which the sea conditions are slowly ramped up from zero in order<br />

to avoid sudden transients when starting a simulation. Time during the build up stage is reported by the program as<br />

negative, so that the first stage proper starts at time t=0.<br />

When using regular waves, it is usual to define the whole simulation as a single stage and results are presented on a<br />

cycle-by-cycle basis. In random waves there is no meaningful "wave cycle". By dividing the simulation time into<br />

stages you are free to collect results for specific time periods of interest.<br />

Logging<br />

<strong>OrcaFlex</strong> stores the results of a simulation by sampling at regular intervals and storing the samples in a temporary<br />

log file. When you save the simulation <strong>OrcaFlex</strong> writes the data to the simulation file, followed by a copy of the log<br />

file, so that the sampled values can be read back in again at a later date.<br />

You can control the time interval between log samples by setting the Target Sample Interval on the general data<br />

form. The Actual Sample Interval will be the nearest whole multiple of the inner time step. You can obtain more<br />

information about the logging by using the Properties command on the popup menu on the general data form. This<br />

reports the number of log samples that will be taken and the size of the resulting simulation file.<br />

Logging Precision<br />

You can also control the Precision with which samples are logged.<br />

Single precision uses 4 bytes to represent each value and gives about 7 significant figures, which is quite accurate<br />

enough for almost all applications. Double precision uses 8 bytes per value, giving about 16 significant figures but<br />

uses twice as much disk space.<br />

Double precision logging is usually only needed in very particular cases. We therefore recommend that you use<br />

single precision logging unless you see signs of precision problems in the results. The typical signs of precision<br />

problems are that the curvature or bend moment time histories for a line look more like a step function than a<br />

smooth curve. If you see such results then try using double-precision logging to see if precision is the cause.<br />

The typical case where precision problems can occur is where the model contains a pipe or riser that has an<br />

extremely high bend stiffness and which experiences large displacements during the simulation. The reason is that<br />

<strong>OrcaFlex</strong> logs the positions of each node but in order to save space in the simulation file it does not log the<br />

curvature, bend moment etc. Instead <strong>OrcaFlex</strong> recalculates results like curvature and bend moment from the node<br />

positions whenever you request these results. When both the bend stiffness and the node displacements are very


System Modelling: Data and Results, General Data<br />

220<br />

w<br />

large then this calculation can greatly amplify the small steps in node position (8th significant figure) that are<br />

present in a single precision log, giving a bend moment graph that has steps rather than being smooth.<br />

6.4.3 Integration & Time Steps<br />

Integration Method<br />

<strong>OrcaFlex</strong> implements two complementary integration schemes: Explicit and Implicit. Theoretical details are given<br />

in Dynamic Analysis: Calculation Method.<br />

Explicit Integration<br />

The explicit scheme used by <strong>OrcaFlex</strong> is forward Euler. Like all explicit schemes this is conditionally stable. In<br />

practice this means that in order to achieve stability the time step must be small compared to the shortest natural<br />

nodal period. By default <strong>OrcaFlex</strong> will automatically set the time step.<br />

Implicit Integration<br />

For implicit integration <strong>OrcaFlex</strong> uses the Generalised-α integration scheme which is unconditionally stable for<br />

linear systems. Constant and variable time step options are available. <strong>OrcaFlex</strong> provides two results variables<br />

(Implicit solver iteration count and Implicit solver time step) which can be used to track the performance of the<br />

implicit integration scheme.<br />

Limitations of Implicit Integration<br />

Some of <strong>OrcaFlex</strong>'s features have not yet been adapted for the implicit scheme. Because of this implicit integration<br />

cannot yet be used with models that use any of the following features:<br />

� Vessels using Calculated (3 DOF) primary motion, or using Calculated (6 DOF) primary motion when some<br />

superimposed motion is also applied. Note that implicit integration can be used with vessels using Calculated (6<br />

DOF) primary motion when no superimposed motion is applied.<br />

� Tension-controlled detailed winches with non-zero inertia.<br />

� Time domain VIV models.<br />

Also, note that implicit integration does not include seabed damping, solid damping or line clash damping. For cases<br />

where the level of such damping might matter you should check implicit integration results against those from<br />

explicit integration to ensure the effect is not significant.<br />

We plan to remove these limitations, where possible, in future releases of <strong>OrcaFlex</strong>.<br />

Advantages and disadvantages of the two integration schemes<br />

The explicit scheme is extremely robust and flexible. Its main drawback is that the stability requirements can result<br />

in very short time steps and correspondingly long computation times. This tends to be most significant for stiff<br />

systems, or for systems with fine segmentation. For such systems the implicit scheme can be faster, sometimes by<br />

orders of magnitude.<br />

It is essential to consider accuracy as well as computation time. For the explicit scheme, if the simulation is stable<br />

then, in our experience, it is rare for the results to be inaccurate. We recommend that you conduct time step<br />

sensitivity studies to confirm this.<br />

Implicit schemes, on the other hand, can quite easily achieve stability and yet produce inaccurate results. For rapidly<br />

varying physical phenomena (e.g. snatch loads, impact, sudden line on line clashing etc.) results accuracy is more<br />

likely to be an issue. We recommend that time step sensitivity studies are carried out to ensure accuracy of results.<br />

Comparisons with the explicit scheme are particularly useful for this purpose.<br />

6.4.4 Explicit Integration<br />

InnerTime Step, Outer Time Step<br />

For efficiency of computation, <strong>OrcaFlex</strong> uses 2 integration time steps when explicit integration is used in the<br />

dynamic simulation: an inner time step and a larger outer time step. Most calculations during the simulation are<br />

done every inner time step, but some parameters (the more slowly-varying values such as wave particle motion and<br />

most hydrodynamic and aerodynamic forces) are only recalculated every outer time step. This reduces the<br />

calculations needed and so increases the speed of simulation.<br />

The usual effect of setting one of the time steps too large is that the simulation becomes unstable, in the sense that<br />

very large and rapidly increasing oscillations develop, usually very near the start of the simulation. <strong>OrcaFlex</strong> detects


w<br />

221<br />

System Modelling: Data and Results, General Data<br />

and reports most such instabilities; the time steps can then be reduced and the simulation retried. However, it is<br />

generally worth repeating important simulations with smaller step sizes to ensure that no significant loss of<br />

accuracy has occurred.<br />

Note: High values of Seabed stiffness may shorten the natural period of parts of the system lying on it.<br />

This in turn leads to shorter inner time steps being required. Beware that the effects of seabed<br />

stiffness will not be accounted for if touchdown does not occur until dynamics are run.<br />

Recommendations for setting time steps<br />

Both time steps must be short enough to give stable and accurate simulation. Experience indicates that the inner<br />

step should not exceed 1/10th to 1/20th of the shortest natural nodal period of motion for any degree of freedom in<br />

the model. The shortest natural nodal period is reported in the Full Results for statics.<br />

The outer step can usually be set to 10 times the inner time step; this gives a good saving in computing time without<br />

risking instability. In addition, the outer time step should generally not be more than 1/40th of the wave period (or<br />

1/40th of the zero crossing period for a wave spectrum). If you are using a Wake Oscillator VIV model then we<br />

recommend that the outer time step is no more than 1/200th of the minimum Wake Oscillator Strouhal Period.<br />

Always use recommended time steps<br />

<strong>OrcaFlex</strong> helps you set the simulation time steps using the above criteria. There are 2 modes of operation:<br />

If Always use recommended time steps is checked (the default setting) then <strong>OrcaFlex</strong> will calculate recommended<br />

time steps and use these values directly. This means that any values that you specify will be overwritten.<br />

The main advantage of using this option comes during the design phase. If you make changes to the model's<br />

properties which alter the shortest natural nodal period then <strong>OrcaFlex</strong> automatically modifies the time steps<br />

accordingly. This is particularly useful when you make a change that allows the use of longer time steps. When not<br />

using this option it is all too easy to forget to lengthen the time steps and suffer unnecessarily long simulation run<br />

times.<br />

The other significant benefit of this mode of operation comes when preparing a large number of similar simulations<br />

using batch script methods. Suppose that the different models involved have differing shortest natural nodal<br />

periods. The Always use recommended time steps option allows you to use appropriate time steps for each<br />

individual model without having to set them manually.<br />

Alternatively, if Always use recommended time steps is not checked then <strong>OrcaFlex</strong> first of all calculates the<br />

recommended time steps. If these are shorter than the values specified on the General Data form then <strong>OrcaFlex</strong><br />

issues a warning and gives you the option of using the recommended values. You are free to disregard the warnings<br />

if desired, but if either time step (though especially the inner step size) is set too large there is danger of instability<br />

or inaccuracy in the simulation.<br />

The main situation where this mode of operation is to be preferred is when <strong>OrcaFlex</strong> recommended time steps are<br />

too long and lead to an unstable simulation. Sometimes the only solution is to set the time steps manually and this<br />

option gives you that flexibility.<br />

Recommended time step settings<br />

Inner time step (fraction of shortest natural period)<br />

Our experience is that for most cases the inner time step can safely be set to 1/10th of the shortest natural nodal<br />

period. However, for some models you may find you need to use a shorter time step to achieve a stable simulation.<br />

By changing this data item you can control what fraction of the shortest natural nodal period <strong>OrcaFlex</strong> uses to<br />

calculate the recommended inner time step. The default value is 10, which equates to a recommended inner time<br />

step of 1/10th of the shortest natural nodal period. A value of 20 would give a recommended inner time step of<br />

1/20th of the shortest natural nodal period, and so on.<br />

Outer time step (multiple of inner time step)<br />

The recommended outer time step will be no greater than this value times the inner time step.<br />

Outer time step (fraction of wave period or Tz)<br />

The recommended outer time step will be no greater than T divided by this value, where T is either the wave period<br />

(for regular waves) or Tz (for random waves).


System Modelling: Data and Results, General Data<br />

Outer time step (fraction of Wake Oscillator Strouhal period)<br />

222<br />

w<br />

This data item is only available if you are using a Wake Oscillator VIV model. The recommended outer time step will<br />

be no greater than the minimum Wake Oscillator Strouhal Period divided by this value.<br />

6.4.5 Implicit Integration<br />

Implicit Integration Parameters<br />

Use variable time step<br />

For the implicit solver <strong>OrcaFlex</strong> offers both constant and variable time step algorithms.<br />

The default is to use a constant time step and in general this is to be preferred. Variable time step schemes can<br />

introduce high frequency noise into a system which in turn can lead to inaccurate results, for example noisy time<br />

histories, non-physical spikes in results etc. Note that this is a feature of all variable time step algorithms. For the<br />

majority of systems no problems arise when using a variable time step. However, if you are using variable time steps<br />

then we do recommend that you check the quality of your results.<br />

The variable time step algorithm chooses the time step based on the number of iterations used for previous time<br />

steps. If a large number of iterations were required for previous time steps then the time step is reduced.<br />

Conversely, if a small number of iterations were required then the time step is increased. The results variables<br />

Implicit solver iteration count and Implicit solver time step can be used to track the performance of the variable<br />

time step algorithm.<br />

Time step / Maximum time step<br />

If you are using a constant time step then this data item determines that time step. <strong>OrcaFlex</strong> has a default value of<br />

0.1s. However, different systems will require shorter time steps and indeed some systems can give perfectly<br />

accurate answers with longer time steps. If you wish to optimise run times then you may need to experiment with<br />

different time step values.<br />

If you are using a variable time step then this data item limits the time step used by <strong>OrcaFlex</strong> and it will never<br />

exceed this value.<br />

Warning: Implicit solvers can produce inaccurate results, even for stable simulations, if the time step is<br />

chosen to be too large. Because of this we strongly recommend that you carry out sensitivity<br />

studies on your time step to ensure accuracy. A very useful additional technique is to compare<br />

results from the implicit solver and the explicit solver.<br />

Maximum number of iterations<br />

The implicit integration scheme uses an iterative method to solve the dynamic equilibrium equations. The<br />

calculation is abandoned if convergence has not been achieved after this number of iterations.<br />

If you are using a variable time step then this results in the time step being reduced rather than the simulation being<br />

aborted. Accordingly we recommend that a relatively small value is used, we recommend using the default value of<br />

20. This allows <strong>OrcaFlex</strong> to abandon the current iteration quite early and try again with a shorter time step.<br />

Conversely if you are using a constant time step then the simulation is aborted if convergence cannot be achieved<br />

inside this number of iterations. Because of this we recommend using a larger value than for variable time steps.<br />

The default value of 100 is usually a good choice.<br />

Tolerance<br />

A non-dimensional value which controls the accuracy of the solution. Increasing this value can result in reduced<br />

computation time since fewer iterations are needed to solve the dynamic equilibrium equations. However, doing so<br />

may also result in inaccurate results.<br />

Notes: We recommend that you use the default tolerance value. Should you choose to increase it then we<br />

strongly recommend that you perform sensitivity studies to confirm the accuracy of your results.<br />

For systems where the only responses are extremely slowly varying (e.g. drift motions, Spar VIM)<br />

you might need to use a smaller tolerance than the default value to obtain accurate results.


w<br />

6.4.6 Numerical Damping<br />

Line Target Damping<br />

223<br />

System Modelling: Data and Results, General Data<br />

Finite element models may contain spurious high frequency response, a feature inherent in the finite element<br />

method. Line Target Damping specifies damping whose effect is usually only to damp down this high frequency<br />

noise. The data specifies the % critical damping level that will be achieved for oscillations at the shortest natural<br />

period of each node. These oscillation periods are typically very short and depend on the segment length and<br />

stiffness values of the line section involved.<br />

The % critical damping generated for longer oscillation periods is inversely proportional to the period, and for<br />

typical response periods (usually much longer) the damping level is usually insignificant. To achieve a significant<br />

level of damping at wave period usually requires that a very high Line Target Damping data value to be calculated<br />

and specified, and this often also requires shorter time steps and so longer simulations. Because of this we<br />

recommend that you use Rayleigh Damping to model the effects of structural damping.<br />

The target damping can be specified independently for tension, bending and torsion. Within broad limits, this<br />

damping has little influence on the results of a simulation unless the system is subject to very rapid variations in<br />

tension or bending, for example when snatch loads occur. A value between 5% and 50% of target damping is usually<br />

assumed. For details on the use of this data, see the theory documentation for tension, bending and torsion.<br />

Note: This data is only available when using the explicit integration scheme. The implicit integration<br />

scheme has built-in numerical damping.<br />

6.4.7 Response Calculation<br />

Simulation Period used for Response Calculations<br />

These data items determine the period of the simulation to be used for the Spectral Response Analysis.<br />

This period is specified by giving From and To simulation times. A value of '~' for the From time is interpreted as<br />

simulation time 0. A value of '~' for the To time is taken to mean the simulation time at the end of the simulation.<br />

These are the default values and in most cases are the values which you should use.<br />

Note: These data items are only available when you have selected the Response Calculation wave type.<br />

6.4.8 Results<br />

Spectral Density Fundamental Frequency<br />

Determines the fundamental (minimum) frequency for Spectral Density graphs. The default value is usually quite<br />

reasonable. However, smaller values are sometimes required to achieve good resolution of the spectral form.<br />

Wall Clock Time, CPU Time<br />

These two output values, found on the properties report, can also be obtained from one of the <strong>OrcaFlex</strong> automation<br />

interfaces. Both variables report the time taken to perform the dynamic simulation.<br />

� Wall Clock Time measures the real time, in seconds, that elapsed between the start and finish of the simulation.<br />

� CPU Time measures the total CPU time, in seconds, summed over all processors in the system.<br />

The results can be extracted using the <strong>OrcaFlex</strong> post-processing spreadsheet. Use the Get Data command with<br />

object name General and variable name WallClockTime or CPUTime.<br />

From the Python or MATLAB interfaces use the following code:<br />

WallClockTime = model.general.WallClockTime<br />

CPUTime = model.general.CPUTime<br />

From C or C++ you should call C_GetDataDouble passing the handle the General data object and a data name of<br />

"WallClockTime" or "CPUTime".<br />

Log file location(s)<br />

This value, also found on the properties report, can be obtained with the automation techniques described above<br />

using the name LogFileLocation. This value is the location of any log files used by an <strong>OrcaFlex</strong> simulation.<br />

Results variables<br />

For details on how to select results variables see Selecting Variables.


System Modelling: Data and Results, General Data<br />

The available variables are:<br />

Time<br />

The simulation time.<br />

Implicit solver iteration count<br />

224<br />

w<br />

The number of iterations used by the implicit integration scheme to solve the dynamic equilibrium equations.<br />

Implicit solver time step<br />

The time step used by the implicit integration scheme. This is most useful when you are using a variable time step.<br />

6.4.9 Drawing<br />

Pen<br />

The pen used to draw the global axes, the view axes, the scale bar and the compass in 3D Views.<br />

North direction<br />

If this direction is defined then a compass is drawn on the 3D View. The compass is only drawn for plan views.<br />

The direction is an azimuth direction. So a value of 0° is the positive X direction, a value of 90° is the positive Y<br />

direction etc.<br />

Default View Parameters<br />

These data determine the default view for this model. When a new 3D view window is opened it will start with these<br />

view parameters.<br />

If the Calculated based on the model extent option is selected then the default view is a wire frame view, in<br />

elevation, and sized so that the entire model will be displayed.<br />

If the Specified option is selected then the default view parameters (graphics mode, size, azimuth, elevation and<br />

centre) can be specified directly. Usually this would be specified by first setting up the desired view parameters in a<br />

3D View window and then using the Set as Default View menu item.<br />

6.4.10 Properties Report<br />

The General Data properties report is available from the popup-menu on the data form. It reports the following:<br />

Simulation duration including build-up<br />

The sum of the stage durations.<br />

Target log sample interval, Actual log sample interval, Total number of log samples<br />

Target log sample interval is the data item specified on the data form. Actual Sample Interval is the nearest whole<br />

multiple of the inner time step. Total number of log samples equals Simulation duration including build-up / Actual<br />

log sample interval<br />

Log sample frequency<br />

This equals 1 / Actual log sample interval.<br />

Log samples per wave cycle<br />

This is only available when the Wave Data specifies a single regular wave train. It equals Wave Period / Actual log<br />

sample interval.<br />

Estimated simulation file size<br />

An estimate of the simulation file size. For certain models the estimate may be inaccurate. In particular the size of<br />

simulation files for models using vortex tracking and which log vortices are difficult to estimate. This is because the<br />

number of vortices is variable and depends on the simulation.<br />

Log file location(s)<br />

This reports the location of any log files used by an <strong>OrcaFlex</strong> simulation. Small log files are stored in memory to<br />

improve performance and larger files are stored in your machine's temporary directory.


w<br />

Simulation CPU time, Simulation wall clock time<br />

225<br />

System Modelling: Data and Results, Environment<br />

The time taken to perform the simulation. The CPU time is the sum of CPU times over all CPUs used and the wall<br />

clock time is the real time that elapsed whilst simulating.<br />

6.5 ENVIRONMENT<br />

The environment defines the conditions to which the objects in the model are subjected; it consists of the sea,<br />

current, waves and seabed.<br />

Still water<br />

surface<br />

Surface<br />

Z-level<br />

G<br />

Z<br />

Figure: Environment<br />

Y<br />

Global Axes<br />

Seabed Origin<br />

X<br />

Datum Current<br />

Direction<br />

Seabed Direction<br />

of Slope<br />

Wave Direction<br />

Water<br />

Depth<br />

As shown above, the environment is defined relative to the global axes. So for example the seabed and the current<br />

and wave directions are specified relative to the global axes.<br />

6.5.1 Sea Data<br />

Sea Surface Z<br />

Specifies the global Z coordinate of the mean (or still) water level.<br />

Kinematic Viscosity<br />

This data is used to calculate Reynolds number. The viscosity can either be a constant or vary with temperature. In<br />

the latter case the user can either input their own table of viscosity variation against temperature, or else use one of<br />

the tables supplied in the <strong>OrcaFlex</strong> default data.<br />

The tables supplied in the <strong>OrcaFlex</strong> default data are for 0% (freshwater) and 3.5% salinity, as given on page 337 of<br />

the book Principles of Naval Architecture (PNA). For other salinity values that book recommends using interpolation<br />

between the freshwater and 3.5% salinity tables.<br />

Temperature<br />

The temperature of the water can either be constant or vary with depth below the mean water level.<br />

The temperature can affect the kinematic viscosity (if that is specified as varying with temperature), which in turn<br />

affects the Reynolds number. This, in turn, can affect the drag and lift coefficients used for a line.<br />

Reynolds number calculation<br />

Reynolds number, Re, is a measure of the flow regime defined as<br />

Re = VL/ν<br />

where V and L are velocity and length parameters chosen to characterise the flow, and ν is the kinematic viscosity of<br />

the fluid. Different values of Re result from different selections of characteristic velocity and length.


System Modelling: Data and Results, Environment<br />

226<br />

w<br />

<strong>OrcaFlex</strong> calculates Reynolds number in order to calculate drag and lift coefficients for lines that are specified as<br />

varying with Reynolds number. Accordingly the characteristic velocity is based on the relative flow velocity at a<br />

node, Vr = Vfluid - Vnode and the characteristic length is always related to the normal drag / lift diameter of the node, D.<br />

<strong>OrcaFlex</strong> offers the following options for characteristic velocity and length:<br />

� Nominal Re, Renom, is defined by setting V = |Vr| and L = D. That is Renom = |Vr|D/ν.<br />

� Cross Flow Re, Recross, is defined by setting V = |Vn| and L = D where Vn is the component of Vr normal to the<br />

line. If we define α to be the angle between the relative flow direction and the normal to the line then we can<br />

write Recross = |Vr|Dcos(α)/ν since |Vn| = |Vr|cos(α).<br />

� Flow Direction Re, Reflow, is defined by setting V = |Vr| and L = D/cos(α), the length of the line cross section in<br />

the relative flow direction. This gives Reflow = |Vr|D/νcos(α). Note that the division by cos(α) means that Reflow<br />

can be arbitrarily large when the relative flow is very near axial, but this does not matter since the normal<br />

component of relative velocity is then very small, so the drag and lift forces are also very small.<br />

These can all be related by the equation Recross/cos(α) = Renom = Reflowcos(α), from which it follows that Recross ≤<br />

Renom ≤ Reflow.<br />

Reynolds number is available as a line results variable.<br />

Notes: Which method you select for calculating Reynolds number is in many ways arbitrary. The key<br />

factor is that the method chosen matches the data source used for the variable drag and lift<br />

coefficient data. For example, ESDU 80025 provides curves relating drag and lift coefficients to<br />

Reflow. Different data sources may make different choices.<br />

6.5.2 Sea Density Data<br />

Sea Density<br />

Older versions of <strong>OrcaFlex</strong> did not allow the user to specify the Reynolds number calculation<br />

method and implicitly used Cross Flow Re.<br />

The sea density can be constant at all positions in the sea or it can vary with depth and/or horizontal position.<br />

By default the sea density is constant. This is the most common value to use, since in most models the effects of<br />

density variation are not significant. For some systems, however, density variation is important because it causes<br />

buoyancy variation.<br />

Note: Density variation only affects the buoyancy of objects. <strong>OrcaFlex</strong> does not allow for density<br />

variation when calculating hydrodynamic effects such as drag, added mass, etc. For these effects a<br />

nominal sea density value is used, which is taken to be the density value at the sea density origin.<br />

Vertical Density Variation<br />

Vertical Density Variation specifies whether, and how, the water density varies with depth. The vertical density<br />

variation can be set to Constant, Interpolated or Bulk Modulus.<br />

Constant allows you to specify a single density value that applies at all depths.<br />

Interpolated allows you to specify a density profile as a table giving the density at a series of depth levels. Linear<br />

interpolation is used to obtain the density at intermediate levels, and at levels beyond the ends of the table the<br />

density value at the end of the table is used.<br />

Bulk Modulus specifies that the density varies with depth purely because of the compressibility of the water. You<br />

must specify the water's Surface Density and Bulk Modulus. The water's bulk modulus specifies how a given mass of<br />

water shrinks under pressure, using the same volume formula as for buoys and line types – see Bulk Modulus.<br />

<strong>OrcaFlex</strong> then derives the density variation with depth on the assumption that the water column has the given bulk<br />

modulus and is at uniform temperature and salinity.<br />

A dry land system can be modelled by using Constant density and setting the density to zero.<br />

Horizontal Density Variation<br />

Density variation with horizontal position can also be modelled. This is specified as a dimensionless multiplicative<br />

factor. Where a variation of density with depth has been defined the factor will be applied at all depths.<br />

To neglect density variation with horizontal position this data item should be set to '~'. Using a numeric value (e.g.<br />

0.5) allows you to apply a scaling factor to the vertical density profile.


w<br />

227<br />

System Modelling: Data and Results, Environment<br />

To model density variation with horizontal position you must define a Horizontal Variation Factor variable data<br />

source. The horizontal variation factor is assumed to be constant in the direction normal to the axis.<br />

Sea Density Origin<br />

As explained above, for all hydrodynamic calculations other than buoyancy <strong>OrcaFlex</strong> uses a single sea density value.<br />

This is the sea density value at the sea density origin which is defined as follows:<br />

If there is no horizontal density variation then the sea density origin is defined to be (0, 0, Sea Surface Z). Since there<br />

is no variation of density with horizontal position the choice of X and Y coordinates here is arbitrary. Thus, the sea<br />

density value used is the sea density at the still water level.<br />

If there is horizontal density variation then the sea density origin is defined to be (X, Y, Sea Surface Z). Here X and Y<br />

are the origin coordinates for the horizontal variation axis.<br />

6.5.3 Seabed Data<br />

The seabed data divides into two groups:<br />

� Data specifying the shape of the seabed surface.<br />

� Data specifying the seabed resistance model that <strong>OrcaFlex</strong> uses to calculate the forces acting on objects that<br />

contact the seabed.<br />

Seabed Shape Data<br />

Shape Type<br />

Three types of seabed shape are available:<br />

� A Flat seabed is a simple plane, which can be horizontal or sloping.<br />

� A Profiled seabed is one where the shape is specified by a 2D profile in a particular direction. Normal to that<br />

profile direction the seabed is horizontal.<br />

� A 3D seabed allows you to specify a fully general 3D surface for the seabed, by specifying the depth at a series of<br />

X,Y positions, with a choice of linear or cubic polynomial interpolation in between.<br />

Seabed Origin, Depth<br />

The seabed origin is a point on the seabed and it is the origin relative to which the seabed data is specified. It can be<br />

chosen by the user and is specified by giving its coordinates with respect to global axes. For a Flat seabed you can<br />

type in either the seabed origin Z coordinate or the water depth at the seabed origin, and the other of those two<br />

values is updated to match, based on the specified Sea Surface Z. For Profile and 3D seabeds the Z coordinate and<br />

water depth at the seabed origin are displayed but they are not specified directly, since they are determined from<br />

the Z values specified in the profile or 3D geometry data and the specified Sea Surface Z.<br />

Direction<br />

The Seabed Direction is measured positive anti-clockwise from the global X axis when viewed from above (see<br />

Directions). The meaning of this data depends on the type of seabed in use:<br />

� For a flat seabed the direction specified is the direction of maximum upwards slope. For example, 0° means<br />

sloping upwards in the global X direction and 90° means sloping up in the in the global Y direction.<br />

� For a profile seabed the direction specified is the direction in which the 2D profile is defined.<br />

� For a 3D seabed the direction and the seabed origin together define a frame of reference, relative to which the<br />

seabed data points are specified.<br />

Warning: The depth at the seabed origin is used for all the wave theory calculations, so if the water is shallow<br />

and the depth varies then the seabed origin should normally be chosen to be near the main wavesensitive<br />

parts of the model.<br />

Flat seabed data<br />

Slope<br />

This is the maximum slope upwards, in degrees above the horizontal. A flat seabed is modelled as a plane passing<br />

through the seabed origin and inclined upwards at this angle in the seabed direction. The model is only applicable to


System Modelling: Data and Results, Environment<br />

228<br />

w<br />

small slopes. The program will accept slopes of up to 45° but the model becomes increasingly unrealistic as the<br />

slope increases because the bottom current remains horizontal.<br />

Profile seabed data<br />

Profile<br />

The profile table defines the seabed shape in the vertical plane through the seabed origin in the seabed direction.<br />

The shape is specified by giving the either the seabed Z coordinate relative to global axes, or else the Depth, at a<br />

series of points specified by their Distance From Seabed Origin. If a Z coordinate is entered then the Depth is<br />

updated to match, and vice versa. The Distance From Seabed Origin is measured from the seabed origin in the<br />

seabed direction (negative values can be given to indicate points in the opposite direction).<br />

Seabed Z values in between profile points are obtained by interpolation, with a choice of Interpolation Method.<br />

Beyond the ends of the table the seabed is assumed to be horizontal. The seabed is assumed to be horizontal in the<br />

direction normal to the seabed profile direction.<br />

View Profile<br />

Warning: Linear interpolation can cause difficulties for static and dynamic calculations. If you are having<br />

problems with static convergence or unstable simulations then you should try one of the other<br />

interpolation methods.<br />

Note: You cannot model a true vertical cliff by entering 2 points with identical Distance from Seabed<br />

Origin but different Z coordinate – the second point will be ignored. However you can specify a<br />

near-vertical cliff. If you do this, note that to avoid interpolation overshoot you may need to specify<br />

several extra points just either side of the cliff, or else use linear interpolation. See Choosing<br />

Interpolation Method.<br />

The View Profile button provides a graph of the seabed profile. The specified profile points are shown, together with<br />

the interpolated shape in between profile points. The seabed is horizontal beyond the ends of the graph.<br />

You should check that the interpolated shape is satisfactory, in particular that the interpolation has not introduced<br />

overshoot – i.e. where the interpolated seabed is significantly higher or lower than desired. Overshoot can be solved<br />

by adding more profile points in the area concerned and carefully adjusting their coordinates until suitable<br />

interpolation is obtained.<br />

3D seabed data<br />

The 3D seabed is defined by specifying a set of x, y and Z coordinates of the seabed. The x and y coordinates are<br />

given with respect to a right-handed frame of reference with origin at the seabed origin, Z vertically upwards, x-axis<br />

horizontal in the specified seabed direction and y-axis horizontal and normal to that x-direction. The Z coordinate is<br />

specified relative to the global model origin. Note that the Z coordinate can, for convenience, alternatively be<br />

specified as a Depth. (If a depth is entered then the Z coordinate is updated to match, and vice versa.)<br />

The program forms a triangulation of the input data and then uses either Linear or Cubic Polynomial interpolation<br />

methods. We would normally recommend using the cubic polynomial interpolation method. This provides a smooth<br />

interpolation which makes both static and dynamic calculations more stable and robust.<br />

The linear method has been provided for the special case of an analysis where your seabed data consists only of<br />

depth and slope at each line anchor point. The linear interpolation method allows you to build a seabed which is<br />

effectively a number of different flat sloping seabeds for each line.<br />

The minimum edge triangulation angle, α, provides a degree of control over the triangulation. Some data sets (for<br />

example concave data sets) can result in strange artifacts around the edges of the data. In this case you may find that<br />

specifying α>0 helps. When α>0 the program removes any triangles at the edge of the triangulation that have<br />

internal angles less than α. On the other hand you may find that specifying α>0 results in significant portions of your<br />

seabed being removed. If this is the case then you should set α to 0 which results in no edge triangles being<br />

removed.<br />

Note: The seabed generated by <strong>OrcaFlex</strong> only extends as far as the data specified, and at any horizontal<br />

position outside the area specified the sea is considered to be infinitely deep. So you must specify<br />

seabed data that covers the whole area of seabed that any object in the model might contact.<br />

Seabed Model Data<br />

Two types of seabed model are available, a Linear model and a Non-linear Soil model:


w<br />

229<br />

System Modelling: Data and Results, Environment<br />

� The Linear model gives a seabed that behaves as a simple linear spring in both the seabed normal direction and<br />

the directions tangential to the seabed plane. The stiffness for the seabed normal direction can be specified<br />

independently of the stiffness for the tangential directions.<br />

� The non-linear soil model gives a more sophisticated model of the seabed resistance in the normal direction,<br />

since it models the non-linear and hysteretic behaviour of seabed soil in the normal direction, including<br />

modelling of suction effects when a penetrating object rises up sufficiently. For the directions tangential to the<br />

seabed plane the non-linear model behaves as a linear spring with user-specified stiffness, as with the linear<br />

model.<br />

The linear model can be tuned to give specified uniform stiffness responses in the normal and tangential directions,<br />

but it is unlikely to give any useful information on embedment.<br />

For information on the suitability of the non-linear soil model see Non-linear Soil Model below.<br />

Linear Model<br />

The Linear model treats the seabed as a simple linear spring in both the seabed normal direction and the seabed<br />

shear directions (i.e. the axial and lateral directions in the seabed tangent plane). This gives a seabed normal<br />

resistance that is proportional to the penetration, and a seabed lateral resistance that is proportional to the lateral<br />

displacement of the contact point (e.g. a node on a line) from its undisturbed position. The linear spring stiffnesses<br />

in the normal and lateral directions can be different.<br />

When explicit integration is used, the Linear model also includes linear dampers in the normal and lateral<br />

directions, which give an extra damping resistance that is proportional to the rate of penetration (for the normal<br />

direction) or the rate of lateral movement (for the lateral directions). The linear damper in the normal direction<br />

only acts when penetration is increasing, not when penetration is reducing, so the model does not model any suction<br />

effect. Also, note that there is no seabed damping contribution when implicit integration is used.<br />

Linear Model Data<br />

The Normal Seabed Stiffness is the constant of proportionality of the spring force in the seabed outward normal<br />

direction. The stiffness equals the spring reaction force, per unit area of contact, per unit depth of penetration. A<br />

high value models a surface such as rock; a low value models a soft surface such as mud.<br />

The Shear Seabed Stiffness is used by the friction calculation. A value of '~' results in the Normal Seabed Stiffness<br />

being used.<br />

The Seabed Damping is the constant of proportionality of the damping force, and is a percentage of critical<br />

damping. Seabed damping is always zero when using the implicit integration scheme.<br />

Warning: If you use the explicit integration scheme then note that a high seabed stiffness will shorten the<br />

natural periods of parts of the system lying on it, and this may require the use of a smaller<br />

simulation time step. Beware that the shorter natural periods will not be reported in the statics<br />

results table if touchdown only occurs during the simulation.<br />

See Linear Seabed Model Theory for details of how this data is used to model the seabed reaction force.<br />

Non-linear Soil Model<br />

The non-linear soil model has been developed in collaboration with Prof. Mark Randolph FRS (Centre for Offshore<br />

Foundation Systems, University of Western Australia). It is a development from earlier models that proposed and<br />

used a hyperbolic secant stiffness formulation, such as those proposed by Bridge et al and Aubeny et al, and is<br />

documented in Randolph and Quiggin (2009).<br />

The non-linear soil model is more sophisticated than the Linear model. It models the non-linear and hysteretic<br />

behaviour of seabed soil in the normal direction, including modelling of suction effects when a penetrating object<br />

rises up sufficiently. The non-linear modelling only applies to the seabed normal direction. In the seabed lateral<br />

directions the seabed is modelled in the same way as described above for the Linear model.<br />

Note: The non-linear soil model is currently experimental and we are working on comparing the model<br />

against experimental results for seabed contact. Please contact <strong>Orcina</strong> if you have any feedback<br />

and comments on the model or ideas for improvement.<br />

The non-linear soil model is suited to modelling soft clays and silty clays, and it is particularly relevant for cases<br />

(such as typical deep water seabeds) where the mudline undrained shear strength is only a few kPa or less and the<br />

seabed stiffness response to catenary line contact is dominated by plastic penetration rather than elastic response.


System Modelling: Data and Results, Environment<br />

230<br />

w<br />

Note that the non-linear model is not suitable for caprock conditions, and is not suitable for modelling sand without<br />

very careful choice of soil data and model parameters to reflect sand response.<br />

For further details see Non-linear Soil Model Data, Seabed Theory and Non-linear Soil Model Theory.<br />

Note: For dynamic analysis using implicit integration you might find that you need to use a shorter time<br />

step with the non-linear soil model than with the Linear model.<br />

Non-linear Soil Model Data<br />

The data for the non-linear soil model divides into three groups:<br />

Soil Properties<br />

These specify the undrained shear strength and saturated density of the seabed soil. They should be obtained from<br />

geotechnical survey of the site.<br />

The shear strength is specified by giving the undrained Shear Strength at Mudline, su0, and the undrained Shear<br />

Strength Gradient, ρ. The undrained shear strength at any given penetration distance z is then taken to be<br />

su(z) = su0 + ρ.z.<br />

The Saturated Soil Density specifies the density of the seabed soil when fully saturated with sea water. It is used by<br />

the non-linear seabed model to model the extra buoyancy effect that arises when a penetrating object displaces<br />

seabed soil. See Soil Extra Buoyancy Force for details.<br />

Site-specific data should be used. Typical saturated soil densities are in the range 1.4 to 1.6 te/m 3 . Typical deep<br />

water sediments have essentially negligible undrained shear strength at mudline (0 to 5 kPa) and an undrained<br />

shear strength gradient of 1.3 to 2 kPa/m. For shallow water the seabed soils are typically stronger than in deep<br />

water.<br />

Shear Stiffness and Damping<br />

These specify the strength of the lateral linear spring+damper that is used to model the lateral resistance. This data<br />

is the same as described above for the linear model. The lateral damper is only used for explicit integration; for<br />

implicit integration the lateral damper strength is zero.<br />

The shear stiffness can be specified as '~', in which case a default shear stiffness value is used, and this is based on<br />

the specified soil shear strength properties. This default shear stiffnes used is equal to 20/D times the soil undrained<br />

shear strength at a penetration depth of z = ½D, where D is the contact diameter of the penetrating object, so it is<br />

given by:<br />

Default Shear Stiffness = (20/D).[ su0 + ρ.(½D) ]<br />

Seabed Soil Model Parameters<br />

These appear on a separate page on the Environment data form. They are non-dimensional parameters that control<br />

how the seabed soil is modelled. See Soil Model Parameters.<br />

See Non-linear Soil Model Theory for details of how this data is used to model the seabed reaction force.<br />

6.5.4 Wave Data<br />

Number of Wave Trains<br />

You can define a number of different wave trains and the overall sea conditions are the superposition of the wave<br />

trains. In most cases a single wave train is sufficient, but multiple wave trains can be used for more complex cases,<br />

such as a crossing sea (i.e. a superposition of locally generated waves in one direction and distant storm-generated<br />

swell in a different direction).<br />

Each wave train can be given a name and a specified direction. And each wave train can be either a regular wave<br />

(with a choice of wave theory) or a random wave (with a choice of spectrum), or else be specified by a time history<br />

file.<br />

Simulation Time Origin<br />

The simulation time origin allows you to control the period of time that the dynamic simulation covers. It defines the<br />

global time that corresponds to simulation time t = 0, so changing the simulation time origin allows you to shift the<br />

period of global time that is simulated. Altering the simulation time origin shifts the simulation time relative to all of<br />

the wave trains; alternatively, you can also time shift an individual wave train by altering its wave time origin. See<br />

Dynamic Analysis for details of the time frames used in <strong>OrcaFlex</strong>.


w<br />

Data for a Wave Train<br />

Each wave train is specified by the following data.<br />

Wave Direction<br />

231<br />

System Modelling: Data and Results, Environment<br />

For both regular and random waves, this is the direction that the wave is progressing, measured positive anticlockwise<br />

from the global X-axis when viewed from above. So, for example, 0 degrees means a wave travelling in the<br />

positive X-direction, and 90° means a wave travelling in the positive Y-direction.<br />

If you are using a directional spreading spectrum then the wave direction is taken to be the principal direction.<br />

With multiple wave trains the direction of the first wave train is taken to be the primary direction and this is<br />

reflected in both the way the sea is drawn and the Sea Axes.<br />

Wave Type<br />

Each wave train can be any of the following types:<br />

� Airy, Dean, Stokes' 5th or Cnoidal. These are various different wave theories for regular waves. See Data for<br />

Regular Waves.<br />

� JONSWAP, ISSC (also known as Bretschneider or modified Pierson-Moskowitz), Ochi-Hubble, Torsethaugen,<br />

Gaussian Swell or User Defined Spectrum. These are various different spectra for random waves.<br />

� Time History allows you to specify the wave in the form of a time history input file. See Data for Time History<br />

Waves.<br />

� User Specified Components allows you to specify the wave train as the sum of a number of sinusoidal<br />

components. This wave type gives you complete control over the wave train and would typically be used to<br />

compare <strong>OrcaFlex</strong> results with results produced by a different program. See Data for User Specified<br />

Components.<br />

� Response Calculation is a special type of random wave with a truncated white noise spectrum which is used<br />

for Spectral Response Analysis. A truncated white noise spectrum has energy spread evenly over a userspecified<br />

range of frequencies. See Data for Response Calculation.<br />

For regular waves we recommend the Dean wave – this is a non-linear wave theory using a Fourier approximation<br />

method and it is suitable for all regular waves. The Airy wave theory is a simple linear wave theory that is only<br />

suitable for small waves. The Cnoidal wave theory is only suitable for long waves in shallow water. The Stokes' 5th<br />

wave theory is only suitable for short waves in deep water.<br />

If the specified wave is not suitable for the selected wave theory, <strong>OrcaFlex</strong> will give a warning or may report that the<br />

wave calculation has failed. If this happens please check that the wave theory selected is suitable. For further details<br />

see Ranges of Applicability.<br />

Kinematic Stretching Method<br />

Kinematic stretching is the process of extending linear Airy wave theory to provide predictions of fluid velocity and<br />

acceleration (kinematics) at points above the mean water level. <strong>OrcaFlex</strong> offers a choice of three methods: Vertical<br />

Stretching, Wheeler Stretching and Extrapolation Stretching. For details see Kinematic Stretching Theory.<br />

Note: Random waves are modelled by combining a number of linear Airy waves, so kinematic stretching<br />

also applies to random waves.<br />

The Horizontal Velocity preview graph can be used to see the effect of the different kinematic stretching methods.<br />

Wave Origin and Wave Time Origin<br />

Each wave train has its own spatial origin and time origin. The spatial origin is specified relative to the global origin<br />

and the time origin is specified relative to the global time origin.<br />

The wave train's data specify the wave train relative to its own origins, so you can shift a given wave train in space<br />

or time, independently of the other wave trains, by adjusting its origins.<br />

For a regular wave train the wave time origin is the time at which a wave crest passes the wave origin. You can<br />

therefore use the origins to arrange that a wave crest passes a particular point at a particular time during the<br />

simulation.


System Modelling: Data and Results, Environment<br />

232<br />

w<br />

For a random wave train, the phases of the wave components that make up the wave train are randomly distributed,<br />

but they are fixed relative to the wave time origin. You can therefore arrange that the simulation covers a different<br />

piece of the random wave train by changing the wave time origin. This can be useful for two purposes:<br />

� You may want to select a particularly significant event in the wave train, such as a large wave. <strong>OrcaFlex</strong> has<br />

special facilities to make this easy – see Wave Preview.<br />

� Secondly, you may want to do a series of runs with the same wave train data but different random phases for<br />

the wave components. This can be done by specifying randomly chosen wave time origins for the different runs,<br />

since randomly selecting different periods of the wave train is statistically equivalent to choosing different<br />

random phases for the wave components.<br />

6.5.5 Data for Regular Waves<br />

A regular wave is a single wave component defined by wave Direction, Height and Period. Wave height is<br />

measured from trough to crest.<br />

Stream Function Order<br />

For the Dean wave theory only, you can set the order of stream function to be used. For most waves the default<br />

value will suffice. However, for nearly breaking waves the method sometimes has problems converging. If this is the<br />

case then it might be worth experimenting with different values.<br />

6.5.6 Data for Random Waves<br />

Random waves are specified by giving the energy spectrum of the random sea. The Wave Type specifies the type of<br />

spectrum and the spectral data then defines the actual spectrum within that type. See:<br />

� JONSWAP and ISSC Spectra,<br />

� Ochi-Hubble Spectrum,<br />

� Torsethaugen Spectrum,<br />

� Gaussian Swell,<br />

� User-Defined Spectrum.<br />

For a given spectrum, sea state and simulation time origin, different wave conditions can be obtained by shifting the<br />

wave time origin. For more information, see Setting up a Random Sea.<br />

Number of wave directions and Spreading exponent<br />

This data allows you to model a directional spread spectrum. You specify the number of discrete wave directions to<br />

be used together with an exponent for the spreading function. If the number of wave directions is set to 1 then no<br />

spreading is applied.<br />

<strong>OrcaFlex</strong> uses a cos n spreading function where n is the specified spreading exponent. Full details are given in the<br />

wave theory topic.<br />

Number of Components and Seed<br />

Random wave trains are represented by a user-defined number of component waves whose amplitudes and periods<br />

are selected by the program to give a sea state having the specified spectrum. If a maximum component frequency<br />

range is specified then the actual number of components can be greater than the number of components specified<br />

here.<br />

If you are using a directional spreading spectrum then you specify the number of wave components per direction.<br />

Otherwise you specify the total number of wave components for the wave train.<br />

The phases associated with each wave component are pseudo-random. <strong>OrcaFlex</strong> uses a random number generator<br />

and the user-defined seed to assign phases. The sequence is repeatable, so the same seed will always give the same<br />

phases and consequently the same train of waves.<br />

If User specified seeds is checked then the user must specify a seed for each wave train. Otherwise the program<br />

chooses a seed automatically.<br />

Spectrum discretisation method<br />

Allows control over the spectral discretisation algorithm. This data item is provided purely for reasons of backwards<br />

compatibility. It allows you to reproduce sea-state realisations generated by earlier versions of the program.


w<br />

We recommend that all new analyses use the 9.5d option.<br />

233<br />

System Modelling: Data and Results, Environment<br />

� If the Legacy option is selected then the program reverts to the algorithm used in versions 9.2 and earlier. The<br />

minimum and maximum relative frequency are hard-coded to 0.5 and 10.0, respectively and no maximum<br />

component frequency range is applied.<br />

� The 9.3a option allows minimum and maximum relative frequencies, and the maximum component frequency<br />

range, to be specified by the user.<br />

� The 9.5d option differs from the 9.3a option in its handling of double peaked spectra. The 9.5d option<br />

discretises the spectrum taking into account both spectral peaks. The minimum relative frequency is relative to<br />

the spectral peak with lower frequency. The maximum relative frequency is relative to the spectral peak with<br />

larger frequency.<br />

Minimum and maximum relative frequency (rmin, rmax)<br />

These data determine the range of frequencies considered by the spectral discretisation algorithm. The default<br />

values of rmin = 0.5 and rmax = 10.0 are usually sufficient to produce a good representation of the spectrum.<br />

Maximum component frequency range (δfmax)<br />

This maximum component frequency range places an upper limit on the width of the frequency range represented<br />

by each wave component. Each wave component is constrained to cover a frequency range no greater than δfmax.<br />

This data is provided because the equal energy discretisation algorithm used by <strong>OrcaFlex</strong> can result in some wave<br />

components (e.g. those in the low and high frequency tails of the spectrum where the spectral density is low)<br />

covering a wide frequency range. Such wave components can result in poor modelling of system responses, since<br />

the spectral energy represented by the component is concentrated at a single frequency. This might over-excite a<br />

system response, if the component's frequency very closely matches a system response frequency, or fail to excite<br />

an important system response, if the component's frequency is well away from the system response frequency even<br />

though that frequency is within the frequency band modelled by the component.<br />

This data item can be used to avoid such problems, and we recommend that you do limit the frequency range. If any<br />

of the wave components generated by the equal energy discretisation algorithm covers a frequency range wider<br />

than the specified maximum component frequency range, then that component is subdivided into multiple<br />

components (which now have lower energy each) until all the components satisfy the specified maximum frequency<br />

range. A value of '~' means that the component frequency ranges are not limited in this way.<br />

Spectrum graphs and tables<br />

The View Frequency Spectrum button produces a graph of energy spectrum. If you are using a directional<br />

spreading function then you can plot it using the View Direction Spectrum button.<br />

The View Wave Components button outputs a spreadsheet giving details of the wave components that <strong>OrcaFlex</strong><br />

has used to represent a random or time history wave train.<br />

For a random wave train the spreadsheet also reports the following properties of the spectrum:<br />

� Spectral moments m0, m1, …, m4.<br />

� Spectral bandwidth parameter ε = {1 - m2 2 /(m0m4)} ½ .<br />

� Mean period T1 = m0/m1. Note that T1 is sometimes denoted by Tm.<br />

� Peak period and frequency Tp and fm. These are the period and frequency at which the spectrum has the greatest<br />

spectral density.<br />

6.5.7 Data for JONSWAP and ISSC Spectra<br />

For the ISSC spectrum you specify Hs and Tz (or alternatively the linked parameters Tp or fm) and the program<br />

calculates the other spectral parameters.<br />

For the JONSWAP spectrum you have the following options for setting the spectral parameters:<br />

� Automatic: You specify Hs and Tz and the program calculates the other parameters.<br />

� Partially Specified: You specify Hs, Tz (or alternatively the linked parameters Tp or fm) and γ and the program<br />

calculates the other parameters.


System Modelling: Data and Results, Environment<br />

234<br />

w<br />

� Fully Specified: You specify all the spectral parameters (γ, α, σ1, σ2 and Tp or fm) and the program calculates and<br />

reports Hs and Tz.<br />

The various spectral parameters are documented below:<br />

Hs, Tz, fm, Tp<br />

Hs is the significant wave height. Tz is the zero crossing period. Tp and fm (=1/Tp) are the spectral peak period and<br />

peak frequency, i.e. those with largest spectral energy.<br />

For the ISSC spectrum Tz, Tp and fm are tied together, so setting any one of them sets the other two to match.<br />

For the JONSWAP spectrum how these data are used depends on the selected parameter option:<br />

� For Automatic parameters you set Hs and Tz and the program calculates and reports Tp and fm.<br />

� For Partially Specified parameters Tz, Tp and fm are tied together, so setting any one of them sets the other two<br />

to match. You must also set Hs.<br />

� For Fully Specified parameters Tp and fm are tied together, so setting one of them sets the other to match. The<br />

program calculates and reports Hs and Tz.<br />

Peak enhancement factor (γ)<br />

For the ISSC spectrum γ is always 1.<br />

For the JONSWAP spectrum γ is automatically calculated by the program using formulae given by Isherwood, 1987 if<br />

the parameters are calculated using the Automatic option. Otherwise you can specify the value.<br />

For Partially Specified parameters you must be careful about the order in which you set parameters. The<br />

relationship between Tz, Tp and fm depends on γ. We treat Tz as the master data item which means that you must set<br />

γ before setting Tp or fm.<br />

Spectral width parameters (σ1, σ2)<br />

These only apply to the JONSWAP spectrum. If the parameters are calculated using the Fully Specified option you<br />

can specify these values. Otherwise they are fixed at the standard values of 0.07 and 0.09 respectively.<br />

Spectral energy parameter (α)<br />

For the ISSC spectrum α is calculated by the program to give a sea state with the specified Hs and Tz.<br />

For the JONSWAP spectrum if the parameters are calculated using the Fully Specified option you can specify α and<br />

the program reports the corresponding Hs. Otherwise α is calculated by the program to give a sea state with the<br />

specified Hs and Tz.<br />

6.5.8 Data for Ochi-Hubble Spectrum<br />

The Ochi-Hubble formulation allows 2-peaked spectra to be set up, enabling you to represent sea states that include<br />

both a remotely generated swell and local wind-generated waves.<br />

Hs and Tz<br />

Hs is the significant wave height and Tz is the zero crossing period. Their values depend on whether you specify Auto<br />

or User.<br />

Auto: In this case Hs is specified by the user and the program selects the most probable spectral parameters for that<br />

value of Hs. The resulting Tz is then derived and displayed, but cannot be edited.<br />

User: In this case the user specifies the spectral parameters explicitly. The resulting Hs and Tz values are displayed,<br />

but neither can be edited.<br />

Hs1, fm1, λ1, Hs2, fm2 and λ2<br />

The Ochi-Hubble spectrum is the sum of 2 component spectra, each of which is specified by a set of three<br />

parameters: Hs1, fm1, λ1 for the lower frequency component and Hs2, fm2, λ2 for the higher frequency component.<br />

Parameters Hs1 and Hs2 are the significant wave heights of the component spectra; the overall significant wave<br />

height Hs = (Hs1 2 + Hs2 2 ) ½ . Parameters fm1 and fm2 are the modal frequencies of the two components. Finally, λ1 and λ2<br />

are shape parameters that control the extent to which the spectral energy is concentrated around the modal<br />

frequency – larger values give more concentrated component spectra.<br />

You can specify these spectra parameters in two alternative ways:


w<br />

235<br />

System Modelling: Data and Results, Environment<br />

If you select Automatic the program calculates the parameters of the most probable spectrum, based on the overall<br />

significant wave height Hs that you have specified. The parameters used are as given in the Ochi-Hubble paper, table<br />

2b.<br />

If you select Specified you must specify all 6 parameters. The program then derives and displays the corresponding<br />

overall Hs and Tz values.<br />

Notes: The modal frequency of the first component, fm1, must be less than that of the second, fm2. It is also<br />

recommended that fm2 is greater than 0.096.<br />

The significant wave height of the first component, Hs1, should normally be greater than that of the<br />

second, Hs2, since most of the wave energy tends to be associated with the lower frequency<br />

component.<br />

Warning: The Ochi-Hubble spectrum makes no allowance for the directionality of the swell and wind<br />

components of the sea state. In reality the separate components frequently come from different<br />

directions. However, an <strong>OrcaFlex</strong> wave train has a single principal direction. Because of this it is<br />

more appropriate to model a two-peaked sea state using two separate <strong>OrcaFlex</strong> wave trains, one<br />

for the swell component and one for the local wind generated component.<br />

6.5.9 Data for Torsethaugen Spectrum<br />

The Torsethaugen spectrum is a double peaked spectrum best suited to North Sea conditions. It enables you to<br />

represent sea states that include both a remotely generated swell and local wind-generated waves.<br />

Full details of the formulation used are found in the Torsethaugen and Haver paper.<br />

Hs, fm and Tp<br />

The Torsethaugen spectrum is specified by Hs and Tp. The fm and Tp data items are linked by the relationship fm =<br />

1/Tp. If you enter one the other will be updated according to this equality.<br />

fm1 and fm2<br />

The frequencies for the primary and secondary spectral peaks. For wind dominated sea states, fm1 = fm and fm1 > fm2.<br />

For swell dominated sea states, fm2 = fm and fm1 < fm2.<br />

Warning: The Torsethaugen spectrum makes no allowance for the directionality of the swell and wind<br />

components of the sea state. In reality the separate components frequently come from different<br />

directions. However, an <strong>OrcaFlex</strong> wave train has a single principal direction. Because of this it is<br />

often more appropriate to model a two-peaked sea state using two separate <strong>OrcaFlex</strong> wave trains,<br />

one for the swell component and one for the local wind generated component.<br />

6.5.10 Data for Gaussian Swell Spectrum<br />

The Gaussian Swell spectrum is typically used to model long period swell seas.<br />

Hs, fm, Tp and σ<br />

The Gaussian Swell spectrum is specified by Hs, fm and σ. The fm and Tp data items are linked by the relationship fm =<br />

1/Tp. If you enter one the other will be updated according to this equality.<br />

6.5.11 Data for User Defined Spectrum<br />

A user defined spectrum is specified by giving a table of values of S(f), where S(f) is the spectral energy as a function<br />

of frequency f.<br />

The values of f specified do not need to be equally spaced. For intermediate values of f (i.e. between those specified<br />

in the table) <strong>OrcaFlex</strong> uses linear interpolation to obtain the spectral ordinate S(f). And for values of f outside the<br />

range specified in the table <strong>OrcaFlex</strong> assumes that S(f) is zero. Your table should therefore include enough points to<br />

adequately define the shape you want (important where S(f) is large or has high curvature) and should cover the full<br />

range over which the spectrum has significant energy.<br />

<strong>OrcaFlex</strong> reports on the data form Hs and Tz that correspond to the spectrum specified. These are calculated using<br />

the standard formulae:<br />

Hs = 4m0 ½ .<br />

Tz = (m0/m2) ½ .


System Modelling: Data and Results, Environment<br />

where m0 and m2 are the zeroth and second spectral moments.<br />

6.5.12 Data for Time History Waves<br />

236<br />

w<br />

A time history wave train is defined by a separate text file that contains the wave elevation as a function of time. To<br />

use this you need to do the following:<br />

� Create a suitable time history text file defining the wave elevation as a function of time. The time values in the<br />

file must be equally spaced and in seconds. The elevation values must be the elevation at the specified Wave<br />

Origin, measured positive upwards from the still water level specified in the <strong>OrcaFlex</strong> model, and using the<br />

same units as those in the <strong>OrcaFlex</strong> model.<br />

� Setup the time history data as described in Data in Time History Files.<br />

� Set the Wave Time Origin to position the required section of wave time history within the simulation period.<br />

You can use the View Profile button (on the Waves Preview page on the environment data form) to see the wave<br />

elevation as a function of simulation time.<br />

� Set the Minimum Number of Components. This affects the number of Fourier components that will be used to<br />

model the time history wave. It should be set high enough to give desired accuracy, but note that using a very<br />

large number of components may significantly slow the simulation. More details are given below.<br />

How Wave Time History Data is Used<br />

Briefly, <strong>OrcaFlex</strong> uses a Fast Fourier Transform (FFT) to transform the data into a number of frequency components.<br />

Each component is then used to define a single Airy wave and these Airy waves are then combined to give the wave<br />

elevation and kinematics at all points. The View Wave Components and View Spectrum buttons on the data form<br />

show (in tabular and power spectral density graph form respectively) the Airy wave components that <strong>OrcaFlex</strong> will<br />

use to model the waves.<br />

Note that the FFT requires the number of samples it uses from the time history file, N say, to be a power of 2, and it<br />

produces N/2 components. Because of this, the time history file must contain a sequence of N samples that covers<br />

the period of the simulation, where N is a power of 2 that is at least twice the specified minimum number of<br />

components.<br />

Warning: If the time history file does not contain enough samples to achieve this, then zero-padding will be<br />

used to extend the time history until it does. This is likely to introduce spurious high frequencies<br />

into the waves, so we recommend that this is avoided by providing more actual samples.<br />

Here are more details.<br />

1. <strong>OrcaFlex</strong> first selects the elevation values that cover the simulation period<br />

To do this <strong>OrcaFlex</strong> searches the time history file and selects the time samples that cover the simulation period.<br />

These will be the time samples from time<br />

(T0 - BuildUpDuration) to (T0 + SimulationDuration)<br />

where BuildUpDuration is the length of the build-up stage of the simulation, SimulationDuration is the length of the<br />

remaining stages and T0 = SimulationTimeOrigin - WaveTimeOrigin. These time origin settings allow you, if you<br />

want, to shift the simulation relative to the time history.<br />

2. <strong>OrcaFlex</strong> then includes more samples, if necessary<br />

Let n be the number of samples selected in step 1. In order to achieve the specified minimum number of<br />

components, m say, <strong>OrcaFlex</strong> needs at least 2m samples. So if n is less than 2m then <strong>OrcaFlex</strong> selects more samples<br />

from the file (taken equally from earlier and later in the file, if possible) until it has 2m samples. If <strong>OrcaFlex</strong> runs out<br />

of samples in the file while doing this then an error message is given; you must then either provide more samples in<br />

the time history file or else reduce the minimum number of components requested.<br />

However <strong>OrcaFlex</strong> also needs the number of samples to be a power of 2, since that is needed in order to use a fast<br />

Fourier transform. So if 2m is not a power of 2 then <strong>OrcaFlex</strong> again selects more samples from the file (taken equally<br />

from earlier and later in the file, if possible) until the number of selected samples is a power of 2. If <strong>OrcaFlex</strong> runs<br />

out of samples in the file while doing this then it zero-pads (i.e. it adds extra samples of value zero); you will be<br />

warned if this happens.


w<br />

3. <strong>OrcaFlex</strong> uses a fast Fourier transform to obtain Fourier components<br />

237<br />

System Modelling: Data and Results, Environment<br />

The selected time history samples, N of them say, are converted into frequency domain form using a Fast<br />

FourierTransform (FFT). This gives N/2 sinusoidal Fourier components. The View Wave Components button<br />

reports their numerical values and the View Spectrum shows their spectrum.<br />

4. <strong>OrcaFlex</strong> models the time history wave as the superposition of Airy waves<br />

N/2 Airy waves are created, with periods, amplitudes and phases that match the Fourier components. The time<br />

history wave is then modelled as the superposition of these Airy waves.<br />

Warning: This last step effectively uses Airy wave theory to extrapolate from the Wave Origin, where the<br />

surface elevation has been defined, to derive surface elevation at other points and to derive fluid<br />

kinematics from the surface elevation readings. This extrapolation introduces errors, which<br />

become worse the further you go from the Wave Origin. It is therefore recommended that the Wave<br />

Origin (= the point the time history file data applies to) is placed close to the main wave-sensitive<br />

parts of the model.<br />

6.5.13 Data for User Specified Components<br />

The User Specified Components wave type allows you to specify the wave train as the sum of a number of<br />

sinusoidal components. For each component you specify:<br />

Frequency or Period<br />

You may specify either of these and the other is automatically updated using the relationship Period = 1 /<br />

Frequency.<br />

Amplitude<br />

The single amplitude of the component – that is half the peak to trough height.<br />

Phase lag<br />

The phase lag relative to the wave train time origin.<br />

6.5.14 Data for Response Calculation<br />

Hs<br />

The significant wave height of the truncated white noise spectrum used for the Spectral Response Analysis. A<br />

truncated white noise spectrum has energy spread evenly over the a specified range of frequencies.<br />

The total energy of the spectrum is determined by Hs using the standard formula m0 = (Hs/4) 2 where m0 is the<br />

zeroth spectral moment, that is the total spectral energy. <strong>OrcaFlex</strong> also reports Tz = (m0/m2) ½ .<br />

A more detailed discussion of the issues involved in choosing Hs is given in Load Cases Data for Spectral Analysis.<br />

Target Frequency Range<br />

These data items determine the frequency range of the truncated white noise spectrum used for the Spectral<br />

Response Analysis.<br />

The wave components that <strong>OrcaFlex</strong> uses to represent this spectrum are carefully chosen. They are selected to<br />

match the frequencies produced by the Fast Fourier Transform(FFT) used to calculate the spectral response. This<br />

process is described in more detail in the Spectral Response Analysis theory section.<br />

It is possible for the range of FFT frequencies not to cover the Target Frequency Range. If this happens then as much<br />

of the target range is used as is possible. You will be warned if the actual frequency range cannot achieve the Target<br />

Frequency Range.<br />

6.5.15 Waves Preview<br />

When using a random wave or a time history wave, <strong>OrcaFlex</strong> provides two preview facilities to aid selection of the<br />

wave, namely List Events and View Profile. These are provided on the Waves Preview page on the environment data<br />

form and are documented below.<br />

Notes: These commands work in terms of global time, rather than simulation time. This enables you to<br />

search through a period of global time looking for an interesting wave event and then set the time<br />

origins so that the simulation covers that event.


System Modelling: Data and Results, Environment<br />

See also Setting up a Random Sea.<br />

Position<br />

238<br />

w<br />

If you are using multiple wave trains then these commands report the combined sea state from all<br />

of the wave trains.<br />

This is the point to which the List Events, View Profile and Horizontal Velocity commands apply. Since wave trains<br />

vary in space as well as time you should normally set this point to be close to a system point of interest, such as a<br />

riser top end position.<br />

View Profile<br />

This plots a time history of wave elevation at the specified Position over the specified interval of global time.<br />

An example of the use of these commands is to use List Events to scan over a long period of global time (e.g. 10000<br />

seconds or more), look for large waves and then use View Profile to look in more detail at short sections of interest.<br />

Having decided which part of the wave train to use, the simulation time origin can then be set to just before the<br />

period of interest, so that the simulation covers that period.<br />

List Events<br />

This command searches for individual waves within a random sea which satisfy specified criteria. All wave events in<br />

the specified interval of global time and at the specified Position which match the specified criteria are reported.<br />

The criteria are be specified in one of two ways, determined by the Wave Search Method:<br />

� If the Height or Steepness option is selected then program searches for rises or falls that exceed the specified<br />

height H, or (providing there is only a single wave train) that the wave steepness exceeds the specified<br />

steepness S. The steepness criterion S is not used if there is more than one wave train specified. This is because<br />

steepness is measured in the wave direction and when multiple wave trains are present there is not necessarily<br />

a unique wave direction.<br />

� If the Height or Period option is selected then the program searches for wave events matching (up to specified<br />

tolerance levels) both the specified wave height H and the specified wave period T.<br />

For each event, the height (total rise or fall) is given and an equivalent period is derived from the time interval<br />

between the peak and trough. These are then used to calculate, for this water depth, an Airy wave of the same height<br />

and period, and the length and steepness of this equivalent Airy wave are given.<br />

If there is only one wave train then, for comparison purposes, a reference wave is reported at the top of the table.<br />

This reports the Airy wave whose height and period match the Hs and Tz of that single wave train.<br />

Finally, various wave elevation statistics are reported for the position and period of time specified. These include<br />

the largest rise and fall, the highest crest and lowest trough, the number of up and down zero-crossings and the<br />

sample's estimated Hs and Tz values. These statistics enable you to measure how "typical" this wave elevation<br />

sample is, compared with the overall parent spectrum.<br />

Horizontal Velocity<br />

This plots how the water horizontal velocity (due to current and waves) varies with depth, at the specified (X,Y)<br />

Position and specified global time.<br />

6.5.16 Modelling Design Waves<br />

Design wave heights and periods are commonly provided as a design input, but this is not always so, and the data<br />

are sometimes incomplete or in a different form from that required for <strong>OrcaFlex</strong>. For a comprehensive discussion,<br />

see Tucker (1991) on which the following notes are based.<br />

Maximum Storm<br />

In the absence of measured wave data, the maximum storm can be estimated from wind statistics on the assumption<br />

that the waves are generated by the local winds. The governing parameters are fetch (i.e. the length of open water<br />

over which the wind blows), wind speed and duration. Significant waveheight, Hs, and average zero up-crossing<br />

period, Tz, can then be estimated from equations given by Carter (1982):<br />

Fetch-limited<br />

Hs = 0.0163U√X<br />

Tz = 0.439U 0.4 X 0.3


w<br />

Duration-limited<br />

Hs = 0.0146(D 5 /7)(U 9 /7)<br />

Tz = 0.419(D 3 /7)(U 4 /7)<br />

239<br />

System Modelling: Data and Results, Environment<br />

where X is fetch in km, U is wind speed in m/s at 10m above mean sea level, and D is duration in hours.<br />

Maximum Individual Wave Height<br />

Expected maximum waveheight Hmax, occurring in time T in a storm of significant wave height Hs, average zero<br />

crossing period Tz is<br />

Hmax = kHs[½ln(N)] ½ , where N = T/Tz<br />

Most wave statistics are based on measurements taken at 3 hour intervals so T should generally not be greater than<br />

10800s. The factor k provides for the fact that the highest wave crest and deepest trough in any given storm do not<br />

in general occur together. The maximum crest-to-trough waveheight is generally less than the sum of the maximum<br />

crest elevation plus maximum trough depth. Tucker recommends k = 0.9 for the maximum wave; k = 1.0 for more<br />

frequent waves (fatigue waves).<br />

Period of the Maximum Wave<br />

The period associated with the maximum wave Tass, can take a range of values. Tucker recommends<br />

1.05Tz < Tass < 1.40Tz.<br />

The spectral peak period Tp is sometimes specified rather than Tz.<br />

For the ISSC spectrum<br />

Tp = 1.41Tz.<br />

For the JONSWAP spectrum, the factor varies with the peak enhancement factor γ. The <strong>OrcaFlex</strong> random wave data<br />

form reports Tp and the spectral peak frequency fm = 1/Tp.<br />

For the mean JONSWAP spectrum, γ = 3.3 and<br />

Tp = 1.29Tz<br />

Wave Conditions for Short Term Operations<br />

For operations lasting from a few hours to a few days, different criteria apply. A typical requirement is to determine<br />

the maximum seastate in which a given operation can safely take place. Whilst the complete operation may take<br />

many hours or even days, critical parts such as landing an item of equipment on the seabed may only take a few<br />

minutes. It would be too conservative to apply 3 hour maximum conditions in such a case.<br />

The question comes down to a balance of cost against risk. The overall risk of failure must be small enough to be<br />

acceptable (how small – 1%, 0.01%?), but the cost rises disproportionately as the level of acceptable risk is reduced.<br />

The risk of encountering a large wave is only one of many elements to be considered in assessing overall risk. This is<br />

a big subject which is rarely addressed rigorously.<br />

There is a need here for some feedback from practical experience to determine what is in practice acceptable and<br />

what is not. Hindcasting of operations which took place successfully in what were judged to be marginal conditions,<br />

and of operations which were not successful because of weather conditions could provide a calibrated basis for<br />

analysis of future operations. We don't know anyone who has done this – until they do, we are left with subjective<br />

judgement, i.e. we guess.<br />

A common guess is to combine the significant wave (a regular wave of height Hs, period Tz or Tp according to<br />

preference) for the assumed seastate with a maximum tidal current, applying both waves and current from the<br />

worst direction. This has no objective basis, but is plausible.<br />

Recommendations<br />

1. Use regular waves for preliminary work. Regular waves are easier to set up, quicker to run, and easier to<br />

understand. For regular wave analysis we recommend that you use the Dean stream function theory.<br />

2. If random sea analysis is required, determine the heights and period ranges for the maximum design waves as<br />

above, then generate suitable wave trains incorporating these waves following the procedures detailed in<br />

Setting up a Random Sea.


System Modelling: Data and Results, Environment<br />

240<br />

w<br />

3. For analysis of permanent systems (e.g. flexible risers) use expected maximum wave height with the<br />

appropriate return period (commonly 50 or 100 years return period for 5 to 20 year field life) and a range of<br />

associated wave periods. If field specific data are not available, use the period range recommended by Tucker.<br />

6.5.17 Setting up a Random Sea<br />

This section gives information on how to set up a random sea using <strong>OrcaFlex</strong>'s modelling facilities. For a detailed<br />

description of these, see Wave Data.<br />

The most common requirement is to produce a realistic wave train which includes a "design wave" of specified<br />

height Hmax and period Tmax. However alternative requirements are possible and it is sometimes useful to impose<br />

additional conditions for convenience in results presentation, etc.<br />

The height and period of the maximum design wave may be specified by the client, but on occasion we have to<br />

derive the appropriate values ourselves, either from other wave statistics (for example a wave scatter table, giving<br />

significant wave heights Hs and average periods Tz) or from a more general description of weather (such as wind<br />

speed).<br />

Having decided what values of Hmax and Tmax are required, we select an appropriate wave train as follows, using the<br />

facilities available in <strong>OrcaFlex</strong>.<br />

� Set the significant wave height (Hs) and average period (Tz) for the design storm, and the wave spectrum – ISSC,<br />

JONSWAP, Ochi-Hubble, Torsethaugen and Gaussian Swell options are available.<br />

� Set the number of wave components (typically 100).<br />

� Search through the time history of wave height and looking for a particular wave rise (trough to crest) or fall<br />

(crest to trough) which has the required total height and period. If no wave of the required characteristics can<br />

be found, then adjust Hs and Tz slightly and repeat.<br />

� When the required design wave has been located, you can set the simulation time origin and duration so that<br />

the design wave occurs within the simulation time, with sufficient time before and after to avoid starting<br />

transients and collect all important responses of the system to the design wave. A typical random sea simulation<br />

may represent 5 or 6 average wave periods (say 60-70 seconds for a design storm in the North Sea) plus a build<br />

up period of 10 seconds. If the system is widely dispersed in the wave direction, then the simulation may have<br />

to be longer to allow time for the principal wave group to pass through the whole system. Since short waves<br />

travel more slowly than long ones, this affects simulations of mild sea states more than severe seas.<br />

Setting the Sea State Data<br />

The ISSC spectrum (also known as Bretschneider or modified Pierson-Moskowitz) is appropriate for fully-developed<br />

seas in the open ocean. The JONSWAP spectrum is a variant of the ISSC spectrum in which a "peak enhancement<br />

factor", γ, is applied to give a greater concentration of energy in the mid-band of frequencies. The Ochi-Hubbleand<br />

Torsethaugen spectra enable you to represent sea states that include both a remotely generated swell and a local<br />

wind generated sea.<br />

JONSWAP is commonly specified for the North Sea. Two parameters are sufficient to define an ISSC spectrum – we<br />

use Hs and Tz for convenience. For the JONSWAP spectrum, five parameters are required, Hs, Tz, γ, and two<br />

additional parameters σa and σb (denoted σ1 and σ2 in <strong>OrcaFlex</strong>), which define the bandwidth over which the peak<br />

enhancement is applied. If you choose JONSWAP then you can either specify γ or let the program calculate it (see<br />

formulae given by Isherwood). The bandwidth parameters are set automatically to standard values). For the North<br />

Sea it is common to set γ = 3.3. If you have to do a systematic series of analyses in a range of wave heights, there are<br />

advantages in keeping γ constant. Note that a JONSWAP spectrum with γ = 1.0 is identical to the ISSC spectrum with<br />

the same Hs and Tz.<br />

Choice of wave spectrum can cause unnecessary pain and suffering to the beginner. For present purposes, the<br />

important point is to get the "design wave" we want embedded in a realistic random train of smaller waves. The<br />

spectrum is a means to this end, and in practice it matters little what formulation is used. The one exception to this<br />

sweeping statement may be 2-peaked spectra (e.g. Ochi-Hubble or Torsethaugen).<br />

Setting the Number of Components<br />

<strong>OrcaFlex</strong> generates a time history of wave height by dividing the spectrum into a number of component sine waves<br />

of constant amplitude and (pseudo-random) phase. The phases associated with each wave component are pseudorandom.<br />

<strong>OrcaFlex</strong> uses a random number generator and the seed to assign phases. The sequence is repeatable, so<br />

the same seed will always give the same phases and consequently the same train of waves. The wave components<br />

are added assuming linear superposition to create the wave train. Ship responses and wave kinematics are also


w<br />

241<br />

System Modelling: Data and Results, Environment<br />

generated for each wave component and added assuming linear superposition. <strong>OrcaFlex</strong> currently allows you to<br />

specify the number of wave components to use; more components give greater realism but a greater computing<br />

overhead.<br />

The time history generated is just one of an infinite number of possible wave trains which correspond to the chosen<br />

spectrum – in fact there are an infinite number of wave trains which could be generated from 100 components, a<br />

further infinite set from 101 components and so on.<br />

Strictly speaking, we should use a full Fourier series representation of the wave system which would typically have<br />

several thousand components (the number depends on the required duration of the simulation and the integration<br />

time step). This is prohibitively expensive in computing time so we use a much reduced number of components, as<br />

noted above. However, this does involve some loss of randomness in the time history generated. For a discussion of<br />

the consequences of this approach, see Tucker et al (1984).<br />

Finding a Suitable Design Wave<br />

A frequent requirement is to find a section of random sea which includes a wave corresponding in height and period<br />

to a specified design wave. <strong>OrcaFlex</strong> provides preview facilities for this purpose. If you are looking for a large wave<br />

in a random sea, say Hmax = 1.9Hs, then use the List Events command (on the Waves Preview page of the<br />

environment data form) to ask for a listing of waves with height > H=1.7Hs, say. It is worth looking over a reasonably<br />

long period of time at first – say t = 0s to 50,000s or even 100,000s. <strong>OrcaFlex</strong> will then search that time period and<br />

list wave rises and falls which meet the criterion you have specified.<br />

Suppose that the list shows a wave fall at t = 647s which is close to your requirement. Then you can use the View<br />

Profile command to inspect this part of the wave train, by asking <strong>OrcaFlex</strong> to draw the sea surface elevation for the<br />

period from t = 600s to t = 700s, say. You will then see the large wave with the smaller waves which precede and<br />

follow it.<br />

Note that when you use the preview facility you have to specify both the time and the location (X,Y coordinates). A<br />

random wave train varies in both time and space, so for waves going in the positive X direction (wave direction =<br />

0°), the wave train at X = 0 differs from that at X = 300m.<br />

You can use the preview facility to examine the wave at different critical points for your system. For example, you<br />

may be analysing a system in which lines are connected between Ship A at X = 0 and Ship B at X = 300m. It is worth<br />

checking that a wave train which gives a design wave at Ship A does not simultaneously include an even higher wave<br />

at Ship B. If you want to investigate system response to a specified design wave at both Ship A and Ship B, then you<br />

will usually have to do the analysis twice, once with the design wave at Ship A and once at Ship B.<br />

If no wave of the required characteristics can be found, then adjust Hs and Tz slightly and repeat. As we noted above,<br />

the important point is to get the design wave we want embedded in a realistic random train of smaller waves. This is<br />

often conveniently done by small adjustments to Hs and Tz. We need make no apology for this. In the real world,<br />

even in a stationary sea state, the instantaneous wave spectrum varies considerably and Hs and Tz with it. For<br />

further discussion see Tucker et al (1984).<br />

If you are using an ISSC spectrum, or a JONSWAP spectrum with constant γ, then you can make use of some useful<br />

scaling rules at this point. In these 2 cases, provided the number of wave components and the seed are held<br />

constant, then:<br />

� For constant Tz, wave elevation at any time and any location is directly proportional to Hs. For example, if you<br />

have found a wave at time t which has the period you require but is 5% low in height, increasing Hs by 5% will<br />

give you the wave you want, also at time t.<br />

� For constant Hs, the time between successive wave crests at the origin (X = 0, Y = 0) is proportional to Tz. For<br />

example, if you have found a wave at the origin at time t which has the height you require but the period<br />

between crests is 5% less than you want, increasing Tz by 5% will give you the wave you want, but at time 1.05t.<br />

Note: This rule does not apply in general except at the origin of global coordinates.<br />

These scaling rules can be helpful when conducting a study of system behaviour in a range of wave heights. We can<br />

select a suitable wave train for one wave height and scale to each of the other wave heights. This gives a systematic<br />

variation in wave excitation for which we may expect a systematic variation in response. If the wave trains were<br />

independently derived, then there would be additional scatter.<br />

Wave Statistics<br />

The following is based on Tucker (1991).


System Modelling: Data and Results, Environment<br />

Deriving Hmax from Hs<br />

Hmax/Hs = K.√[(loge N)/2]<br />

242<br />

w<br />

where N is the number of waves in the period under consideration and K is an empirical constant. Since wave<br />

statistics are usually based on measurements made every 3 hours, N is usually taken as the number of waves in 3<br />

hours:<br />

N = 10800/Tz.<br />

For extreme storms, K may be taken as 0.9, but for moderate wave conditions as used for fatigue analysis, K = 1 is<br />

usually assumed.<br />

In extreme storm conditions, it is common to assume a "significant wave steepness" of 1/18, i.e.<br />

hence<br />

for<br />

S = (2πHs)/(gTz 2 ) = 1/18<br />

Tz = √[(2πHs)/(gSs)] = 3.39√Hs<br />

Ss = 1/18 (Hs in metres, Tz in seconds.)<br />

Deriving Tmax from Tz<br />

Generally, it can be assumed that<br />

1.05Tz < Tmax < 1.4Tz.<br />

A common assumption is<br />

Tmax = 1.28Tz.<br />

6.5.18 Current Data<br />

Multiple Current Data Sets<br />

Multiple sets of current data can be defined. However, only one set of current data is active at any one time. This<br />

capability is intended to help when you are analysing a series of load cases with differing current data. You can<br />

define the different current data sets in the base data file. Then, in the batch script which generates the load case<br />

simulations, you simply set the active current to be one of the pre-defined current data sets.<br />

Multiple sets of current data can be defined<br />

This data item must be checked if you wish to define multiple sets of current data. If it is not checked then you define<br />

just a single current data set.<br />

Active current<br />

Specifies which of the multiple current data sets is active in the model. This data item is only available if you have<br />

enabled multiple current data sets.<br />

To define the current data sets click on the Edit Current Data Sets button. This opens a separate data form where<br />

the current data sets can be defined and named.<br />

Data for a single Current Data Set<br />

Ramp During Build-Up<br />

If selected then the static position will be calculated without the effects of current. Then, during the build-up stage of<br />

dynamics the current is ramped up to its full value. If not selected (the default) then the current is used in<br />

calculating the static position and full current is applied throughout.<br />

This facility to omit current effects from the static calculation and introduce them during the build up is useful<br />

where the current may cause lines to come into contact. For example, consider a case where a flexible line is to the<br />

left of a stiff pipe but current pushes the flexible up against the pipe. Since the <strong>OrcaFlex</strong> static analysis does not<br />

include the effects of contact between lines, if current was included in the static analysis then it would find a static<br />

position where the flexible line was to the right of the pipe. The simulation would then start with the flexible on the<br />

wrong side of the pipe.


w<br />

243<br />

System Modelling: Data and Results, Environment<br />

This problem can be overcome by setting the current to ramp during build up and setting clash checking for the two<br />

lines. The static position will exclude the effect of current and so will leave the flexible to the left of the pipe. The<br />

build-up stage will then introduce the current effects but will also include the effect of contact between the two<br />

lines.<br />

Vertical Current Variation<br />

Current Method<br />

Can be Interpolated or Power Law. The Interpolated method uses a full 3D profile with variable speed and direction.<br />

The Power Law method uses an exponential decay formula.<br />

Data for Interpolated Method<br />

Speed and Direction<br />

The magnitude and direction of a reference current, generally taken as a surface current. The actual current at a<br />

given Z level is then defined relative to this reference current by a current profile.<br />

The direction specified is the direction the current is progressing – for example, 0° and 90° mean currents flowing in<br />

the X and Y directions, respectively.<br />

The speed and direction can either be fixed, vary with simulation time or be given by an external function.<br />

Profile<br />

A current profile may be defined by specifying factors and rotations at various depths, relative to reference. At each<br />

Depth in the table the current speed is the reference current speed multiplied by the Factor for that depth; the<br />

Direction is the reference direction plus the rotation specified. Current speed and direction are interpolated<br />

linearly between the specified levels. The current at the greatest depth specified is applied to any depth below this,<br />

for example when a sloping seabed is specified. Similarly, the current at the least depth specified is applied to any<br />

depth above this.<br />

Negative factors can be used which allow you to model reversing currents.<br />

Note: <strong>OrcaFlex</strong> interpolates rotations over the shortest route. For example if consecutive rows in the<br />

table specify rotations of 350° and 10° then the program interpolates passing through 355°, 0° and<br />

5°.<br />

If you prefer to enter current speeds and directions directly, rather than using a reference current and referencerelative<br />

profile, simply set the reference current speed to 1 and the reference direction to 0.<br />

Data for Power Law Method<br />

Speed at Surface and at Seabed<br />

The current speed at the still water level and at the seabed level.<br />

Direction<br />

Note: Speed at Seabed cannot be greater than Speed at Surface.<br />

When using the power law current method, the current direction is the same at all levels. The direction specified is<br />

the direction the current is progressing, measured positive from the global X-axis towards the global Y-axis. For<br />

example, 0 and 90 mean currents flowing in the X and Y directions, respectively.<br />

Exponent<br />

This determines how the current decays. With a smaller value, the decay is spread more evenly across the water<br />

depth. With a higher value, the decay mostly occurs close to the seabed.<br />

View Vertical Profile Graph, View Vertical Profile 3D View<br />

The Vertical Profile Graph plots Z against current speed which can be useful to help visualise and check your vertical<br />

current speed variation.<br />

The Vertical Profile 3D View shows a 3D View with a number of arrows showing the current velocity vectors at a<br />

range of depths. The vectors are non-dimensionalised. This means that you cannot use them to tell absolute current<br />

speeds but the speed of the current at a particular depth can be compared relative to the speed at other depths. This<br />

view is most useful for visualising and checking your current profile rotation data.


System Modelling: Data and Results, Environment<br />

Horizontal Current Variation<br />

244<br />

w<br />

Current speed variation with horizontal position can also be modelled. This is specified as a dimensionless<br />

multiplicative factor. Where a variation of current speed with depth has been defined the factor will be applied at all<br />

depths.<br />

To neglect current speed variation with horizontal position this data item should be set to '~'. Using a numeric value<br />

(e.g. 0.5) allows you to apply a scaling factor to the vertical current speed profile.<br />

To model current speed variation with horizontal position you must define a Horizontal Variation Factor variable<br />

data source. The horizontal variation factor is assumed to be constant in the direction normal to the axis.<br />

Negative factors can be used which allow you to model reversing currents.<br />

6.5.19 Wind Data<br />

The Wind page on the Environment data form contains data for modelling wind. The wind data is used to calculate<br />

wind loads on:<br />

� Vessels – see Vessel Theory: Current and Wind Loads.<br />

� Lines – see Line Theory: Hydrodynamic and Aerodynamic Loads.<br />

� 6D Buoy Wings – see 6D Buoys: Wing Type Data.<br />

Include wind loads on Vessels, Lines and 6D Buoy Wings<br />

Specifies whether wind loads are included for Vessels, Lines and 6D Buoy Wings.<br />

When new models are created in <strong>OrcaFlex</strong> wind loads are included on Vessels, Lines and 6D Buoy Wings – that is all<br />

3 options are ticked.<br />

These options are primarily intended to maintain compatibility with some older versions of <strong>OrcaFlex</strong>. Version 8.3<br />

and earlier did not include wind loads on Lines or 6D Buoy Wings. When files produced with such versions are<br />

loaded the options for Lines and 6D Buoy Wings are not ticked.<br />

Air Density<br />

The air density is assumed to be constant and the same everywhere.<br />

Air Kinematic Viscosity<br />

This is used to calculate Reynolds number. This value is fixed and cannot be edited.<br />

Wind Direction<br />

The direction specified is the direction in which the wind is progressing – see Direction and Headings. In all cases<br />

the wind is unidirectional.<br />

Wind Speed<br />

Wind speed is assumed to be the same everywhere. The speed specified should be the value at an elevation of 10m<br />

(32.8 ft) above the mean sea surface, since that is the height used by the OCIMF vessel wind load model. If you have<br />

the wind speed V(h) at some other height h (in metres), then the wind speed V(10) at 10m can be estimated using<br />

the formula: V(10) = V(h) (10/h)^(1/7).<br />

You can choose to specify wind speed in various ways, by setting the Wind Type to one of the following.<br />

Constant<br />

The wind speed is then constant in time.<br />

Random<br />

The wind speed varies randomly in time, using a choice of either the API RP 2A (1993) spectrum or the NPD<br />

spectrum.<br />

In both cases:<br />

� The spectrum is determined by specifying the Mean Speed and the spectrum then determines the statistical<br />

variation about that mean. The View Spectrum button shows a graph of the spectrum.


w<br />

245<br />

System Modelling: Data and Results, Environment<br />

� The wind speed is modelled by a sum of a number of components. The components are sinusoidal functions of<br />

time whose amplitudes and frequencies are chosen by <strong>OrcaFlex</strong> to match the spectral shape. <strong>OrcaFlex</strong> uses a<br />

'equal energy' algorithm to choose the amplitudes and frequencies. This gives all the components the same<br />

energy, and therefore the same amplitude, but their frequencies are chosen so that the components are more<br />

closely spaced where the spectral energy density is high, and more widely spaced where the spectral energy is<br />

low.<br />

� You can specify the Number of Components to use. You should specify enough to give a reasonable<br />

representation of the spectrum.<br />

� The phases of the components are chosen using a pseudo-random number generator that generates phases<br />

which are uniformly distributed. The phases generated are repeatable – i.e. if you re-run a case with the same<br />

data then the same phases will be used – but you can choose to use different random phases by altering the<br />

Seed used in the random number generator. This can be any integer in the range -2 32 to +2 32 -1.<br />

� The View Components button gives a report of the components that <strong>OrcaFlex</strong> has chosen.<br />

Time History (Speed)<br />

The wind speed variation with time is specified explicitly in a file. For details see Data in Time History Files. Linear<br />

interpolation is used to obtain the wind speed at intermediate times.<br />

Time History (Speed & Direction)<br />

The wind speed and direction variation with time is specified explicitly in a file. For details see Data in Time History<br />

Files. Linear interpolation is used to obtain the wind speed and direction at intermediate times.<br />

Vertical Wind Variation<br />

Wind speed variation with height above the mean water level (MWL) can also be modelled. This is specified as a<br />

dimensionless multiplicative factor. This allows a vertical wind profile to be modelled.<br />

To model vertical wind speed variation you must define a Vertical Variation Factor variable data source.<br />

To neglect vertical wind speed variation this data item should be set to '~'. Negative factors can be used which allow<br />

you to model reversing wind profiles.<br />

6.5.20 Drawing Data<br />

This data allows you to control the drawing of the various components which make up the <strong>OrcaFlex</strong> Environment.<br />

For a more general discussion of drawing in <strong>OrcaFlex</strong> see How Objects Are Drawn.<br />

Sea Surface Pen<br />

Determines how the sea surface, current direction arrow and wave direction arrows are drawn. The current<br />

direction arrow is an arrow next to the view axes which points in the direction of the current. This arrow is only<br />

drawn if the current speed is not zero and if the Draw Environment Axes preference is ticked. The wave direction<br />

arrows are explained below.<br />

Secondary Wave Direction Pen<br />

When the Draw Environment Axes preference is ticked a wave direction arrow is drawn in the direction of the wave.<br />

If there are multiple wave trains whose directions are not equal then a wave direction arrow is drawn in the<br />

direction of each wave train. The first wave train uses the sea surface pen since it is regarded as the dominant one<br />

for drawing purposes. All subsequent wave trains' direction arrows are drawn in the Secondary Wave Direction Pen.<br />

Wind Direction Pen<br />

Determines how the wind direction arrow is drawn. This is an arrow next to the view axes which points in the<br />

direction of the wind. This arrow is only drawn if the wind speed is not zero and if the Draw Environment Axes<br />

preference is ticked.<br />

Seabed Pen<br />

The seabed grid is drawn in this pen.<br />

Seabed Profile Pen<br />

If you are using a profile seabed then an extra grid line is drawn along each data point used to specify the profile.<br />

This can be used to emphasise the seabed profile data.


System Modelling: Data and Results, Environment<br />

Sea Surface and Seabed Grid Density<br />

246<br />

w<br />

The density of the grid is specified in terms of the length of the scale bar on the 3D view; a density of d means that<br />

there are d lines per scale bar length, so higher density values give a finer grid (but takes longer to draw).<br />

Draw 3D seabed data points<br />

This options allows you to omit 3D seabed data points from the wire frame drawing. This can sometimes be useful<br />

for models with extremely large numbers of 3D seabed data points. Such models can take a very long time to draw<br />

and drawing performance can be improved by omitting the drawing of the data points.<br />

Shaded Drawing Sea Surface and Seabed Translucency<br />

Controls how translucent the sea surface and seabed appear in the Shaded Graphics mode. A value of 0% gives a<br />

solid surface and all objects behind the surface will not be visible. A value of 100% specifies transparency and leads<br />

to a completely see-through surface.<br />

6.5.21 External Functions<br />

Parameters<br />

This data item specifies the External Function Parameters, a free form multi-line text field which is passed to any<br />

external function used by the Environment.<br />

6.5.22 Results<br />

Summary and Full Results<br />

Results tables are available for the Environment reporting Wave length, Wave number, Ursell number and<br />

theoretical Breaking wave height.<br />

Time History, Statistics and Linked Statistics<br />

For details on how to select results variables see Selecting Variables.<br />

For Environment results you must specify the global X,Y,Z coordinates of the point for which you want results. A<br />

value of '~' for the Z coordinate is interpreted as meaning the instantaneous sea surface elevation.<br />

Results are for the sea conditions that apply during the simulation and therefore include the build-up of wave<br />

motion during the build-up stage.<br />

Elevation<br />

The global Z-coordinate of the sea surface at the specified global X,Y position.<br />

Velocity, X, Y, Z-Velocity,<br />

Acceleration, X, Y, Z-Acceleration<br />

The magnitude and global X,Y and Z components of the water particle velocity (due to current and waves) and<br />

acceleration (due to waves) at the specified global X,Y,Z position. If the specified Z position is above the water<br />

surface then zero is reported. If the specified Z is below the seabed then the value applicable at the seabed is given.<br />

Current Speed and Current Direction<br />

The speed and direction of the current at the specified global X,Y,Z position.<br />

Wind Speed and Wind Direction<br />

The wind speed and direction. Note that this does not depend on the specified global X,Y,Z position.<br />

Static Pressure<br />

The pressure due to the static head of water at the specified global X,Y,Z position.<br />

Density<br />

The density of the water at the specified global X,Y,Z position.


w<br />

6.5.23 Wave Scatter Conversion<br />

Introduction<br />

247<br />

System Modelling: Data and Results, Environment<br />

The wave scatter conversion tool converts a scatter table of sea states to a scatter table of regular (i.e. individual)<br />

waves. The conversion method uses the formula of Longuet-Higgins, 1983. This gives the joint probability density of<br />

individual waves in a random sea. This probability density is determined by the first 3 spectral moments m0, m1<br />

and m2 using the formula of Longuet-Higgins, 1983. Full details of the calculations involved are given in the theory<br />

section.<br />

One of the most useful features of the tool is the ability to create batch script and fatigue analysis files corresponding<br />

to the calculated regular wave scatter table.<br />

As an alternative you can input directly the regular wave scatter table. This allows you to take advantage of the<br />

automatic export of batch script and fatigue analysis files.<br />

The wave scatter conversion tool is run by selecting the Wave Scatter Conversion command from the <strong>OrcaFlex</strong><br />

Calculation menu. It is essentially a self-contained sub-program within <strong>OrcaFlex</strong>, with its own menus, data and<br />

output. Any <strong>OrcaFlex</strong> process active in the main window is paused until the wave scatter form is closed and the<br />

wave scatter conversion tool has no effect on existing <strong>OrcaFlex</strong> data.<br />

File Menu commands<br />

The commands on the file menu allow you to save, and then reload, the data relating to the wave scatter conversion.<br />

New<br />

Clears previously entered Wave Scatter data and resets data to default values.<br />

Open<br />

Open a Wave Scatter file (.sct).<br />

Save<br />

Save the data to the currently selected file name (shown in title bar of the window).<br />

Save As<br />

This is the same as Save, but allows you to specify the file name to save to.<br />

Most Recent Files List<br />

List of the most recently used files. Selecting an item on the list causes the file to be loaded. The size of the list can be<br />

adjusted from the Preferences form.<br />

Exit<br />

Closes the wave scatter form.<br />

Data<br />

The wave scatter conversion tool requires the following data. This data can be saved to a file.<br />

Regular Wave Scatter<br />

If Calculated from irregular wave scatter is selected then the regular wave scatter table is derived from a random<br />

sea state scatter table using the formula of Longuet-Higgins, 1983. Full details of the calculations involved are given<br />

in the theory section.<br />

If User specified is selected then the regular wave scatter table is input directly. This option is useful where the<br />

regular wave scatter table is pre-determined but you still want to take advantage of the automatic export of batch<br />

script and fatigue analysis files.<br />

Units<br />

You can select the units of length to be used for the wave scatter data.


System Modelling: Data and Results, Environment<br />

Sea State Table<br />

248<br />

w<br />

These data specify the random sea state scatter table. If the Regular Wave Scatter option is User specified then<br />

these data are not required.<br />

Spectral Form<br />

All the sea states are assumed to be of the same spectral form which can be either JONSWAP or ISSC.<br />

Note: The Longuet-Higgins, 1983 method is valid only for narrow-banded spectra. Thus the Ochi-Hubble<br />

and Torsethaugen spectra are not available for this type of conversion.<br />

Spectral Parameters<br />

If you select the JONSWAP spectral form you have 3 options for specifying the spectral parameters: Automatic,<br />

Partially Specified or Fully Specified. This setting applies to all sea states.<br />

Sea States<br />

You must specify the spectrum for each sea state in your scatter table.<br />

If you have selected the ISSC spectral form then you enter Hs and one of Tz, Tp or fm.<br />

If you have selected the JONSWAP spectrum the required parameters depend on the selected parameter option:<br />

� For Automatic parameters you set Hs and Tz and the program calculates and reports Tp and fm.<br />

� For Partially Specified parameters Tz, Tp and fm are tied together, so setting any one of them sets the other two<br />

to match. You must also set Hs.<br />

� For Fully Specified parameters Tp and fm are tied together, so setting one of them sets the other to match. The<br />

program calculates and reports Hs and Tz. You must also set Gamma, Alpha, Sigma1 and Sigma2.<br />

Number of Occurrences<br />

For each sea state in your scatter table you must also specify the number of occurrences of that sea state. This data<br />

is required to determine the relative likelihood of occurrence of each sea state.<br />

Normally this data comes from a sea state scatter table where it is usually presented in parts per thousand.<br />

Regular Waves (scatter table calculated from irregular wave scatter table)<br />

These data specify how the regular wave scatter table is discretised into bins.<br />

Wave Heights, Wave Periods<br />

These are the regular wave heights and wave periods that you wish to analyse. <strong>OrcaFlex</strong> automatically constructs<br />

bins around these values. The output from the wave scatter conversion tool includes a table listing these bins.<br />

Total Duration<br />

This is the total duration to be covered by the regular wave scatter table.<br />

Occurrence threshold<br />

Some of the bins in the regular wave scatter table can have very small occurrence values. In order to reduce the<br />

amount of computation time required to analyse all the load cases it is customary to ignore such bins. Any bin which<br />

has an occurrence value lower than this threshold will be ignored. If you do not wish to ignore any bins then you<br />

should set the threshold to 0.<br />

Regular Waves (user specified regular wave scatter table)<br />

These data specify a complete regular wave scatter table.<br />

Number of bins<br />

The number of bins in the regular wave scatter table.<br />

Wave Height, Wave Period, Number of Occurrences<br />

These are specified for each bin in the regular wave scatter table.


w<br />

Output<br />

249<br />

System Modelling: Data and Results, Environment<br />

To perform the wave scatter conversion you simply click the Show Regular Wave Scatter Table button which is<br />

found on the Regular Waves page. This command is also available from the Action menu. Note that this button is not<br />

available if you have a user specified regular wave scatter table.<br />

The output is presented in a spreadsheet window which, like all such windows in <strong>OrcaFlex</strong>, can be saved as an Excel<br />

file. The spreadsheet is made up of the following sheets:<br />

Sea State Table<br />

This sheet contains the input data which specified the sea state scatter table.<br />

Regular Wave Bins<br />

The regular wave height and wave period bins are listed here.<br />

Regular Wave Scatter Table<br />

This sheet contains the main output from the wave scatter conversion – a table listing the number of occurrences of<br />

waves in each regular wave bin. Any bins which have occurrences below the occurrence threshold are omitted.<br />

This sheet also displays the total number of bins and the total probability covered by the table. This latter value<br />

provides an important check that your bins extend far enough along the wave height and period axes. If the value is<br />

significantly less than 1 then your bins need to be extended.<br />

Batch Script<br />

Once you have obtained the regular wave scatter table you will usually want to generate a regular wave simulation<br />

file for each regular wave bin. The Export Batch Script button can be used to write an <strong>OrcaFlex</strong> batch script file to<br />

automate the generation of these simulation files. Alternatively the Create Script Table Spreadsheet button can be<br />

used to create a script table spreadsheet which can be pasted into an <strong>OrcaFlex</strong> Excel spreadsheet.<br />

To use these options you need to specify the following things.<br />

Base Case File Name<br />

The name of an <strong>OrcaFlex</strong> data file on which all the load cases are to be based. This data file should specify a regular<br />

wave. The batch script file sets the wave height and period together with the simulation duration.<br />

If you have already saved the wave scatter data then relative paths can be used when locating this file.<br />

Simulation File Name Template<br />

Each load case simulation file (corresponding to a single regular wave bin) is given a name in the batch script file.<br />

These names are based on this template. Special format strings can be used to customise the simulation file names<br />

as follows:<br />

� %N will be replaced with the load case number. Each load case is assigned a unique number.<br />

� %H will be replaced with the wave height for that load case.<br />

� %T will be replaced with the wave period for that load case.<br />

The default value of the template is "Case #%N, H=%H, T=%T" and this will lead to simulation files named, for<br />

example: "Case #01, H=0.5, T=3.sim", "Case #02, H=0.5, T=5.sim" and so on for all load cases.<br />

Note: You do not need to use all 3 format strings in your template. However, you must use enough of<br />

them to make the simulation file names unique. <strong>OrcaFlex</strong> will display an error message if the<br />

simulation file names are not unique.<br />

Batch script load case action<br />

� If Run and save simulation is selected then the batch script will be written using the Run command. This<br />

option should be checked if you plan to generate all the load cases on a single machine.<br />

� If Save Data file is selected then the batch script will be written using the SaveData command. This option is<br />

intended for use with Distributed <strong>OrcaFlex</strong>. When run, the script produces an <strong>OrcaFlex</strong> data file for each regular<br />

wave load case and these load cases can then be submitted to Distributed <strong>OrcaFlex</strong>.


System Modelling: Data and Results, Environment<br />

Simulation Duration<br />

250<br />

w<br />

Specifies the duration of the Build-up Stage and Stage 1 for each load case simulation file in the batch script. Because<br />

different load cases have different wave periods these data are specified as multiples of that wave period.<br />

Override base case log interval and Target number of log samples per wave period<br />

These data allow you to set the simulation log interval for each load case simulation file by specifying the number of<br />

log samples in each wave period. This allows load cases with longer wave periods to use a coarser logging interval<br />

than for those with shorter wave periods and hence reduce the sizes of the simulation files.<br />

Fatigue<br />

Having generated a regular wave simulation file for each regular wave bin you will commonly want to perform a<br />

fatigue analysis. Clicking the Export Fatigue Analysis File button produces an <strong>OrcaFlex</strong> fatigue analysis file.<br />

This file lists each load case together with the corresponding number of occurrences for that load case. The file<br />

produced is not complete and other data, such as the S-N curve data, will need to be input. However, it provides a<br />

good starting point for performing the fatigue analysis.<br />

The Fatigue Line Name data item can be used to specify the corresponding fatigue analysis data item.<br />

Theory<br />

Notation<br />

Let the list of sea state spectra and associated durations be denoted Zl and Dl respectively, for l = 1, …, k where k is<br />

the number of sea states.<br />

Note that the sea state duration is only used to specify the distribution of sea states. The probability of occurrence of<br />

sea state q is given by P(Zq) = Dq / ∑l Dl. From this formula it can be seen that the absolute values of Dl are not<br />

important; rather it is their relative values which are significant.<br />

Regular wave bins<br />

The specified regular wave heights and periods are denoted Hi for i = 1, …, m and Tj for j = 1, …, n, respectively. These<br />

wave heights and periods are ordered to be strictly increasing.<br />

The wave height bins are denoted by [Hi lower , Hi upper ] for i = 1, …, m. The first bin is taken to be<br />

[H1 lower , H1 upper ] = [0, (H1+H2)/2].<br />

It is clearly important that 0 is contained in the bin. However this also means that H1 may not fall in the middle of<br />

the bin. This should not matter provided that the bin is small enough. The last bin is taken to be<br />

[Hm lower , Hm upper ] = [(Hm-1+Hm)/2, Hm + (Hm-Hm-1)/2]<br />

so that Hm falls in the middle of the last bin.<br />

Finally the other bins are chosen to be<br />

[Hi lower , Hi upper ] = [(Hi-1+Hi)/2, (Hi+Hi+1)/2]<br />

for i = 2, …, m-1.<br />

The wave period bins [Tj lower , Tj upper ] for j = 1, …, n are chosen in an analagous fashion.<br />

We now have mn individual wave height and period bins which we denote by Bij for i = 1, …, m and j = 1, …, n. Each<br />

bin Bij represents individual waves whose heights and periods fall in the ranges [Hi lower , Hi upper ] and [Tj lower , Tj upper ]<br />

respectively.<br />

Joint probability for individual waves<br />

This section is based on Barltrop and Adams section 6.6.3. Following their lead we use the formula of Longuet-<br />

Higgins, 1983. This gives the joint probability density p(R, S, Z) of individual waves in a given random sea state as<br />

follows:<br />

where<br />

p(R, S, Z) = L(ν)exp(-R 2 {1 + [1 - 1/S] 2 /ν 2 }).2R 2 /(S 2 ν√π)<br />

Z = spectrum of given random sea state,<br />

mi = i th spectral moment of Z,


w<br />

Tm = m0/m1,<br />

Tz = (m0/m2) ½ ,<br />

S = T/Tm,<br />

Hrms = Hs/√2,<br />

R = H/Hrms,<br />

ν = (Tm 2 /Tz 2 - 1) ½ and<br />

L(ν) = 2 / (1 + {1+ν 2 } -½ ).<br />

Individual wave scatter<br />

System Modelling: Data and Results, Solid Friction Coefficients Data<br />

For each sea state Zl we can calculate the probability of occurrence of each individual wave height and period bin,<br />

denoted by P(Bij, Zl) as follows:<br />

where<br />

P(Bij, Zl) = ∫∫ p(R, S, Zl) dS dR<br />

the integral is evaluated over the region Ri lower ≤ R ≤ Ri upper , Sj lower ≤ S ≤ Sj upper ,<br />

Ri lower = Hi lower / Hrms,<br />

Ri upper = Hi upper / Hrms,<br />

Sj lower = Tj lower / Tm and<br />

Sj upper = Tj upper / Tm.<br />

Thus, the probability of occurrence P(Bij ) of each individual wave height and period bin is calculated as follows:<br />

P(Bij) = ∑l P(Zl) P(Bij, Zl)<br />

<strong>OrcaFlex</strong> does not report these probabilities; instead it reports the total number of occurrences Oij for each bin Bij .<br />

This is given by Oij = P(Bij) Dtotal / Tj where Dtotal is the total duration as specified on the Regular Waves page.<br />

6.6 SOLID FRICTION COEFFICIENTS DATA<br />

This data is used to specify friction coefficients for contact between Elastic Solids and Lines, 3D Buoys and 6D Buoys.<br />

Because each Elastic Solid can come into contact with any number of Lines and Buoys, and vice versa, the<br />

specification of this data is necessarily more complex than that for the seabed friction coefficients.<br />

Note: Friction for contact with elastic solids is only included during dynamics.<br />

The data comprises three tables as follows:<br />

� The Line Types table defines friction coefficients for contact between Lines and Elastic Solids.<br />

� The 6D Buoys table defines friction coefficients for contact between 6D Buoys and Elastic Solids.<br />

� The 3D Buoys table defines friction coefficients for contact between 3D Buoys and Elastic Solids.<br />

Line Types table<br />

The table contains a user-defined number of rows specifying friction coefficients and each row has the following<br />

data:<br />

Line Type and Shape<br />

The specified friction coefficients will be used for contact between the specified shape and any node which uses the<br />

specified line type.<br />

The Line Type can be specified as "all line types". Any node in the model, irrespective of the line type it is based on,<br />

will use the specified friction coefficients when in contact with the specified shape. Similarly the Shape can be<br />

specified as "all shapes".<br />

Friction Coefficients<br />

Normal and axial friction coefficients. If the axial coefficient is set to '~' then the normal friction coefficient is used<br />

for all directions of motion.<br />

For full details of the friction calculation see Friction Theory.<br />

251


System Modelling: Data and Results, Vessels<br />

6D Buoys table and 3D Buoys table<br />

252<br />

w<br />

These tables are entirely analogous to the Line Types table. Instead of Line Type you specify 3D Buoys or 6D Buoys<br />

and there is only a single friction coefficient because Buoy friction in <strong>OrcaFlex</strong> is isotropic.<br />

How the data are interpreted<br />

For the most part it should be clear how the data are interpreted. The exception to this statement is when multiple<br />

rows specify friction coefficients for the same elastic solid and contacting object. For example consider the table<br />

below:<br />

Figure: Solid Friction Coefficients Line Types data table<br />

If a node which uses "Line Type1" comes into contact with "Shape1" then <strong>OrcaFlex</strong> has two choices for friction<br />

coefficient since this particular contact satisfies both rows of the table. <strong>OrcaFlex</strong> deals with this ambiguity by<br />

choosing the more specific combination, that is the second row which specifies "Line Type1".<br />

A row with named line type and named shape is the most specific combination and the friction coefficients from<br />

such an entry will always be chosen over any other entries.<br />

A row with "all line types" and "all shapes" is the least specific combination and other entries will always be chosen<br />

over this.<br />

The other possibilities are:<br />

1. Rows with "all line types" and a named shape.<br />

2. Rows with a named line type and "all shapes".<br />

<strong>OrcaFlex</strong> regards such rows as equally specific. Accordingly the program does not allow you to have rows of both<br />

type 1 and 2 in the same table.<br />

Similarly if there are multiple rows with identical Line Type and Shape entries then the program will issue a error<br />

message. This is because <strong>OrcaFlex</strong> has no way of choosing one set of friction coefficients over another.<br />

If no friction coefficients are specified for a particular combination of Line Type and Shape then no friction will be<br />

modelled. For example, with the data specified in the figure above, any contact between nodes and any shape other<br />

than "Shape1" will not include friction effects.<br />

The data in the 6D Buoys table and the 3D Buoys table are interpreted in exactly the same way.<br />

6.7 VESSELS<br />

Vessels can be used model ships, floating platforms, barges, TLPs, semi-subs or any similar floating rigid body. They<br />

are principally suitable for modelling floating bodies that are large enough for wave diffraction to be significant,<br />

since they allow the vessel motion to be based on RAOs, QTFs and other diffraction analysis results that may be<br />

obtained from some other separate program.<br />

Vessel Data and Vessel Type Data<br />

A vessel requires a lot of data to define its properties. The case-specific data, such as its position and how its motion<br />

should be calculated, are specified on the Vessel data form. But most of the data (e.g. its RAOs, QTFs, added mass<br />

etc.) are not specific to the way the vessel is being used, so these data are instead specified for a Vessel Type, and for<br />

a given draught of that vessel type. The vessel itself is then set to use that vessel type and draught.<br />

In addition, the vessel and the vessel type both have lengths specified, and if these differ then all the vessel type data<br />

are automatically scaled to the length of the vessel. This system allows a given vessel type to be used for similar, but<br />

not identical, vessels, or for more than one vessel. For example a pipe being towed by two similar tugs can be<br />

modelled by creating a vessel type called 'Tug' and then creating two vessels, each of type 'Tug' but possibly of<br />

different lengths. The RAOs, QTFs, drawing data (defining the tug outline) and many other properties are data of the<br />

vessel type, since they apply to both tugs. On the other hand the two tugs differ in their positions and the way they<br />

are driven, so these are properties of the individual vessel objects.


w<br />

Vessel Frame of Reference<br />

253<br />

System Modelling: Data and Results, Vessels<br />

The vessel is defined relative to a right-handed system of local vessel axes Vxyz illustrated below, where:<br />

� V is the vessel origin for this vessel type. This is effectively chosen by the user when the vessel type is set up.<br />

The origin is never specified explicitly, so there is no corresponding data item for you to enter its value: it is<br />

simply the point on the vessel to which all the vesel type data (or their reference origins) refer. It is entirely<br />

arbitrary and may, for instance, be at the bow on the keel, at the centre of gravity, etc. However note that if you<br />

specify that the vessel type has symmetry then the vessel origin must be placed on the plane(s) of symmetry or<br />

at the centre of circular symmetry; see Vessel Types: Conventions for details.<br />

� Vx, Vy and Vz must be the directions of surge, sway and heave, respectively, for this vessel type. Note that these<br />

directions must therefore be the directions to which the RAOs apply.<br />

vertex 3<br />

Figure: Vessel Model<br />

yaw<br />

edge joining<br />

3 to 5<br />

z (heave)<br />

V<br />

y (sway)<br />

pitch<br />

roll<br />

x (surge)<br />

vertex 5<br />

Points on the vessel, for example where cables or risers are connected, are then defined relative to these vessel axes.<br />

These points then move with those axes as the vessel moves and rotates relative to the global axes, and <strong>OrcaFlex</strong><br />

calculates these motions automatically.<br />

Vessel Drawing<br />

The vessel is drawn in 3D views of the model, as either a "wire frame" of user-specified vertices and edges or using a<br />

shaded view drawing file. The drawing allows a simple visual check that amplitudes, phases etc. are consistent with<br />

the applied wave, and can also be used to do a visual check for interference between lines and vessel structure.<br />

Drawing data can be specified for both the vessel and for its vessel type, for both wire frame and shaded views. As<br />

with all points on the vessel, the drawing coordinates are defined relative to the vessel axes Vxyz shown above.<br />

It is usually convenient to specify drawing data for the vessel type, since it can then be shared if that vessel type is<br />

used for another vessel, and it will also be automatically scaled if the vessel is a different length. However the vessel<br />

can also have its own extra drawing data, which will also be drawn, and this allows you to set up vessel-specific<br />

drawing. For example the lead tug in the above example might have a special tow-point fitting that you want to<br />

draw. When the vessel is drawn, <strong>OrcaFlex</strong> first draws the vessel type (scaled to the vessel length) and then draws<br />

the vessel. The two parts of the drawing can have different colours, so you can highlight application-specific<br />

drawing.<br />

Vessel Motion<br />

Many options are available for how the vessel position and motion is calculated. For an overview see Vessel<br />

Modelling Overview and for details of the options see Vessel Calculation Data.


System Modelling: Data and Results, Vessels<br />

6.7.1 Vessel Modelling Overview<br />

Motion Options<br />

254<br />

w<br />

Vessels can undergo various different types of motion, that broadly fall into two categories – low frequency (LF)<br />

motions such as slow drift motion due to waves or driven motion due to vessel thrusters, and wave frequency (WF)<br />

motions such as response to wave loads.<br />

For some cases both types of motion are present, and it is then often useful to be able to model them separately,<br />

with the wave frequency motion superimposed on the low frequency motion. To enable this, <strong>OrcaFlex</strong> provides two<br />

vessel motions, Primary Motion and Superimposed Motion, each of which are optional but when both are present<br />

they are applied concurrently, with the latter being superimposed on the former.<br />

As an example, consider a ship being driven under power along a specified course. In the absence of waves it moves<br />

steadily along its course and this would be modelled using Primary motion (probably set to Prescribed or Time<br />

History). But when waves are present the primary motion is augmented by wave-generated motion that would<br />

often be modelled in <strong>OrcaFlex</strong> as Superimposed motion specified by displacement RAOs. <strong>OrcaFlex</strong> superimposes this<br />

latter motion on the primary motion to give the total combined motion of the vessel.<br />

The Primary and Superimposed motions each have a choice of different types of motion. And each of them (or<br />

both, for a fixed vessel) can be set to None, so for simple cases only one of the two motions need be used.<br />

Primary Motion Treatment for Included Effects<br />

You can choose which of many different types of vessel load are included in the analysis. Most of these loads are<br />

affected by the motion of the vessel; in <strong>OrcaFlex</strong> they only depend on the Primary motion, not any superimposed<br />

motion.<br />

Some of the loads depend on only the low frequency primary motion, some depend only on the wave frequency<br />

primary motion, and some depend on all the primary motion, as follows:<br />

� Interpolation of displacement RAOs, wave load RAOs, wave drift QTFs and sum frequency QTFs, and the wave<br />

phases for applying these, are calculated using the low frequency primary motion.<br />

� Wave drift damping is calculated using the low frequency primary motion, since it is a low frequency effect.<br />

� Added mass and radiation damping effects are calculated using all the primary motion.<br />

� Manoeuvring load is calculated using the low frequency primary motion, since it is a low frequency effect.<br />

� Other Damping is calculated using the wave frequency primary motion.<br />

� Current and Wind loads are calculated using the low frequency primary motion, since the current and wind load<br />

data are generally obtained from steady state measurements or analysis.<br />

Because the different loads depend on different parts of the primary motion, <strong>OrcaFlex</strong> needs to know how much of<br />

the primary motion is low frequency and how much is wave frequency. So when primary motion is used you also<br />

need to specify whether the primary motion is treated as all low frequency, all wave frequency or both. Both<br />

means a mixture of frequencies, so in this case you also need to specify a dividing period that is used to filter the<br />

primary motion into its low frequency and wave frequency parts.<br />

The range of excitation frequencies that are being modelled should be used to determine the appropriate setting for<br />

this data item.<br />

� If the vessel is subject only to wave frequency excitation, then primary motion is treated as should be set to<br />

wave frequency.<br />

� If the vessel is subject only to low frequency excitation, then primary motion is treated as should be set to low<br />

frequency.<br />

� If the vessel is subject to a range of excitation frequencies, covering both wave frequency and low frequency,<br />

then primary motion is treated as should be set to both.<br />

Typical Examples of Vessel Modelling<br />

Here are some typical examples of how primary and superimposed motion can be combined to achieve various<br />

things.<br />

� Primary motion set to None and superimposed motion set to RAOs + Harmonic can be used to model a simple<br />

steady (e.g. moored) vessel whose motion is due to the 1 st order wave effects only.


w<br />

255<br />

System Modelling: Data and Results, Vessels<br />

� Prescribed or Time History primary motion can be used to model a vessel being driven over a predetermined<br />

course, and the superimposed motion set to RAOs + Harmonic to model the 1 st order wave-induced motion.<br />

� Time History primary motion (or Time History superimposed motion but not usually both) can be used to<br />

completely specify the motion of a vessel.<br />

� Calculated (6 DOF) primary motion can be used to model the whole motion of a vessel, optionally including 1 st<br />

and 2 nd order wave loads, current and wind drag loads, applied loads, and always including loads from any<br />

attached lines or other objects. In this case the superimposed motion would normally be None, since all motion<br />

has already been accounted for in the primary motion, and the displacement RAO data would therefore not be<br />

used.<br />

6.7.2 Vessel Data<br />

Name<br />

Used to refer to the Vessel.<br />

Type<br />

Specifies the Vessel Type. The Vessel Types button allows you to view and edit the Vessel Type Data.<br />

Draught<br />

Specifies which Draught of the specified vessel type to use. Each Vessel Type can have data for a number of different<br />

draughts. The draught used cannot be changed during a simulation.<br />

Length<br />

Specifies the length of this vessel. The default value '~' means that this vessel is the same length as the vessel type. If<br />

you specify a length that differs from the vessel type length, then <strong>OrcaFlex</strong> will scale all the vessel type's data to<br />

allow for the scaling factor VesselLength/VesselTypeLength. This is useful if you have data for a 70m ship, for<br />

example, but want to use a 50m ship that is otherwise very similar.<br />

The scaling is done using Froude scaling (see Rawson and Tupper). Froude scaling scales all items of data by a factor<br />

that depends on the units of that data. If R = ratio of vessel length to vessel type length, then the scaling factor<br />

applied is as follows:<br />

� All lengths are scaled by R.<br />

� All masses (and added masses) are scaled by R 3 .<br />

� All times are scaled by R 0.5 .<br />

Data items with other units are scaled by writing the units in terms of the fundamental units of mass, length and<br />

time, and then applying the above factors. For example force data has units equivalent to Mass*Length/Time 2 , so<br />

force data is scaled by (R 3 ).(R) / ((R 0.5 ) 2 ) = R 3 . Dimensionless items such as translational RAOs (surge, sway, heave)<br />

and phase angles are unchanged by the scaling process, but note that Froude scaling does apply to the periods (or<br />

frequencies) specified for RAO and QTF data. Note also that rotational RAOs (roll, pitch, yaw) are often given in<br />

dimensional terms (degrees per metre) and these also scale.<br />

These scaling rules are the same as those used in deriving full scale ship performance from physical model tests, and<br />

are correct if the vessel is a perfect scaled replica of the vessel type in all respects.<br />

Warnings: If the vessel does not scale uniformly in all dimensions, then this type of scaling introduces errors<br />

and should not normally be used. Instead, accurate data specific to this vessel should be obtained.<br />

Initial Position and Orientation<br />

However, for ships in head and stern seas the RAO scaling errors may be acceptable, since the RAOs<br />

for these wave directions depend mainly on vessel length. For other cases the RAO scaling is likely<br />

to be poor, so <strong>OrcaFlex</strong> issues a warning if scaling is used and the wave direction is not close to a<br />

head or stern sea.<br />

These specify the vessel's static position relative to the global axes. The Initial Position defines the position of the<br />

vessel origin V. The Initial Orientation defines the orientation of the vessel axes Vxyz as three rotations, Heading,<br />

Trim and Heel. The static orientation of Vxyz is that which results from starting with Vxyz aligned with the global<br />

axes and applying the Heading rotation about Vz, then the Trim rotation about Vy and finally the Heel rotation about<br />

Vx.


System Modelling: Data and Results, Vessels<br />

256<br />

w<br />

If the vessel is not included in the static analysis then this Initial Position is taken to be the static position of the<br />

vessel. If the vessel is included in the static analysis, then this Initial Position is used as an initial estimate of the<br />

vessel position and the statics calculation will move the vessel from this position iteratively until an equilibrium<br />

position is found.<br />

Note: The vessel Z coordinate can only be changed by editing on the vessel data form. Dragging in the Z<br />

direction with the mouse is prevented.<br />

Warning: If you have included any harmonic motion on the vessel (see Harmonic Motion) then the phases of<br />

the harmonic motions will normally depend on the vessel Initial Position, so if you change the<br />

Initial Position you may need to change the harmonic motion phases accordingly.<br />

Further Vessel Data<br />

The remaining vessel data is specified on the following separate pages of the data form:<br />

� Calculation page specifies how the vessel motion is modelled.<br />

� Primary Motion page specifies any further data for any Primary Motion. This is only used if Prescribed, Time<br />

History or Externally Calculated primary motion are used.<br />

� Superimposed Motion page specifies any further data for any Superimposed Motion. This is only used if<br />

Harmonic Motion or Time History superimposed motion are used.<br />

� Multiple Statics page allows you to specify a grid of different positions of the vessel, for a series of static<br />

analyses.<br />

� Drawing and Shaded Drawing pages specify how the vessel will be drawn in the 3D view.<br />

Calculation Data<br />

The following settings (on the Calculation page on the vessel data form) control how the vessel's static position and<br />

dynamic motion are determined. For an overview see Vessel Modelling Overview<br />

Included in Static Analysis<br />

You can control whether the <strong>OrcaFlex</strong> static analysis calculates the static equilibrium position of the vessel, or<br />

simply places the vessel in the user-specified initial position.<br />

<strong>OrcaFlex</strong> first places the vessel at the initial position and orientation specified by the user. If Included in Static<br />

Analysis is set to None then <strong>OrcaFlex</strong> leaves the vessel in this user-specified position. This is not necessarily an<br />

equilibrium position.<br />

If Included in Static Analysis is set to 3 DOF then <strong>OrcaFlex</strong> starts from the user-specified position and adjusts the<br />

vessel's X, Y and Heading until an equilibrium position is reached. Note that only these 3 free degrees of freedom of<br />

the vessel (X, Y and Heading) are included in the calculation. The other three degrees of freedom (Z, Heel and Trim)<br />

are assumed to be constrained and so are left at the values specified by the user. This means that the Z component of<br />

resultant force may be non-zero in the equilibrium position. Likewise the resultant Heel and Trim moments may be<br />

non-zero in the equilibrium position.<br />

If Included in Static Analysis is set to 6 DOF then <strong>OrcaFlex</strong> starts from the user-specified position and adjusts all<br />

six degrees of freedom until an equilibrium position is reached. In this case, all of the X, Y, Z forces and Heel, Trim,<br />

Heading moments will be zero at the equilibrium position.<br />

The loads on the vessel to be taken into account in calculating the equilibrium position are specified by the Included<br />

Effects. In the static analysis many of these (first order wave load, sum frequency load, added mass & damping load,<br />

manoeuvring load and other damping load) will be zero; and any included wave drift load will only include the mean<br />

drift load (allowing for wave drift damping, if included), not any slowly varying contribution to wave drift load.<br />

Note: If multiple statics are being performed on the vessel then no equilibrium calculation is performed<br />

on the vessel and its placement is determined by the multiple statics data. Other vessels in the<br />

model are included in the static analysis as specified by their own data.<br />

Dynamic Analysis<br />

<strong>OrcaFlex</strong> provides two vessel motions, Primary and Superimposed, each of which is optional. When both are<br />

present they are applied concurrently, with the latter being superimposed on the former. See Vessel Modelling<br />

Overview for an introduction and examples of how these options can be used.


w<br />

Primary Motion<br />

257<br />

System Modelling: Data and Results, Vessels<br />

The Primary motion determines what <strong>OrcaFlex</strong> refers to as the primary position of the vessel. It can be one of the<br />

following options:<br />

� None. In this option there is no primary motion and the primary position of the vessel remains fixed at the<br />

position determined by the static analysis.<br />

� Prescribed. This option allows you to drive the vessel around the sea surface, for example to model the vessel<br />

moving station during the simulation. The vessel's speed and course are specified by the data on the Primary<br />

Motion page.<br />

� Calculated (3 DOF). In this option <strong>OrcaFlex</strong> calculates the vessel primary motion in only 3 degrees of freedom<br />

(surge, sway, yaw) based on the included loads plus loads from any lines or other objects that are attached to<br />

the vessel. There is no primary motion in the other 3 degrees of freedom (heave, roll, pitch). The data for all the<br />

included loads must be specified.<br />

� Calculated (6 DOF). Here <strong>OrcaFlex</strong> calculates the vessel motion in all 6 degrees of freedom, based on the<br />

included loads, plus loads from any lines or other objects that are attached to the vessel. The added mass,<br />

damping, stiffness and equilibrium position of the vessel type must be specified, plus the data for all the<br />

included loads.<br />

� Time History. For this option the user specifies the primary motion in a time history file that defines, as a<br />

function of time, the vessel Primary X, Primary Y, Primary Z, Primary Rotation 1, Primary Rotation 2 and<br />

Primary Rotation 3. See the Time History data on the Primary Motion page.<br />

� Externally Calculated. The primary motion is defined by an external function that is specified on the Primary<br />

Motion page.<br />

Superimposed Motion<br />

The Superimposed motion is applied as an offset from the position given by the primary motion. It can be one of the<br />

following options:<br />

� None. There is no offset and the vessel position is equal to the primary position at all times.<br />

� Displacement RAOs + Harmonic. The vessel's position oscillates harmonically about the primary position. The<br />

harmonically varying offset comes from two sources. Firstly, if waves are present and you specify non-zero<br />

displacement RAOs for the vessel type, then the offset will include the wave-generated harmonic motions<br />

specified by those RAOs. Secondly, the vessel's superimposed offset also includes any harmonic motions that<br />

you specify on the Superimposed Motion page on the vessel data form.<br />

� Time History. The user specifies the offset in a time history file that defines the vessel Surge, Sway, Heave, Roll,<br />

Pitch and Yaw as a function of time. See the Time History data on the Superimposed Motion page.<br />

Included Effects<br />

For each of the following vessel load effects, you can choose whether they are included in the analysis by ticking the<br />

corresponding checkboxes on the calculation page of the vessel data form:<br />

� Applied Loads: Data for these are on the vessel form Applied Loads page.<br />

� Wave Load (1 st order): Data are on the vessel type form Load RAOs page.<br />

� Wave Drift Load (2 nd order): Data are on the vessel type form Wave Drift QTFs page. See also Theory.<br />

� Wave Drift Damping: Has no separate data. For theory see Wave Drift Damping. Requires that Wave Load (2 nd<br />

order) is also included.<br />

� Sum Frequency Load (2 nd order): Data are on the vessel type form Sum Frequency QTFs page. See also<br />

Theory.<br />

� Added Mass and Damping: Data are on the vessel type form Stiffness, Added Mass, Damping page. See also<br />

Theory.<br />

� Manoeuvring Load: Has no separate data. See Manoeuvring Load Theory.<br />

� Other Damping: Data are on the vessel type form Other Damping page. See also Theory.<br />

� Current Load: Data are on the vessel type form Current Load page. See also Theory.


System Modelling: Data and Results, Vessels<br />

� Wind Load: Data are on the vessel type form Wind Load page. See also Theory.<br />

258<br />

w<br />

Note: Loads which are included will only affect the vessel static equilibrium position if Included in Static<br />

Analysis is set to other than None. And they will only affect the vessel motion if the primary motion<br />

is set to one of the Calculated options.<br />

Primary Motion is treated as, Dividing Period<br />

Some of the included effects depend on only the low frequency primary motion, some depend on only the wave<br />

frequency primary motion, and some depend on all the primary motion. For details see Vessel Modelling Overview.<br />

Because of this, if primary motion is used, then you need need to specify whether the Primary Motion is treated as<br />

all low frequency, all wave frequency, or a mixture of both low and wave frequency.<br />

The last of these means that you also need to specify a Dividing period that is used to filter the primary motion into<br />

its low frequency and wave frequency components; so that the calculation can use the appropriate part for each<br />

load. A digital filter (a second-order Butterworth filter; see Bellanger) is then used to separate the vessel primary<br />

motion into low-frequency and wave-frequency parts, based on this dividing period.<br />

Broadly speaking, components of the vessel motion with periods longer than this value will contribute to the lowfrequency<br />

motion, and those components with shorter periods will contribute to the wave-frequency motion. Timedomain<br />

digital filters are not perfect (see the filter cutoff graphs), so the Dividing period should ideally be well<br />

above the highest period of the significant wave frequency response of your vessel, but well below the lowest period<br />

of significant slow drift response.<br />

Prescribed Motion<br />

The prescribed motion data only apply if the vessel's Primary Motion is set to Prescribed. It enables you to drive the<br />

vessel around the sea surface along a predetermined path, by specifying how the vessel's primary position and<br />

heading change during the simulation.<br />

The vessel is driven by specifying, for each stage of the simulation, the velocity (speed and direction) of the primary<br />

position and the rate of change of the heading.<br />

Warning: The Prescribed Motion facility can cause discontinuities of velocity at stage boundaries and these<br />

may cause transients in the system. <strong>OrcaFlex</strong> issues warnings at the start of the simulation if the<br />

data specifies a discontinuous velocity.<br />

Speed of Motion<br />

For each simulation stage the speed of the motion can be specified as either a Constant Speed or a Speed Change.<br />

If Constant Speed is selected then that speed applies throughout the stage.<br />

If Speed Change is selected then the speed is incremented linearly by the specified amount during the stage. For<br />

example, an increment of 1m/s during a stage of length 10 seconds causes an acceleration of 0.1m/s 2 to be applied<br />

throughout the stage, so that if the vessel starts at rest then at the start of the next stage the vessel is travelling at<br />

1m/s.<br />

Note: Negative speeds can be specified.<br />

Direction of Motion<br />

For each simulation stage the direction of the motion can be specified as either relative to the Global X direction or<br />

relative to the Vessel heading.<br />

The direction value is interpreted as an azimuth. So, a value of 90° relative to the Global X direction would result in<br />

the motion being in the global Y direction. Likewise, if the vessel's heading was 130° and the direction of motion was<br />

50° relative to the Vessel heading then the motion would be an azimuth of 130° + 50° = 180° relative to global, that<br />

is in the global -X direction.<br />

Rate of Turn<br />

Note: The direction of motion is not restricted to be in the same direction as the vessel heading.<br />

In addition to varying the velocity of the mean position, you can specify a Rate of Turn for each stage. This is the<br />

angle change per second to be applied to the vessel's heading throughout the stage.


w<br />

259<br />

System Modelling: Data and Results, Vessels<br />

If the Direction of Motion is specified relative to the Vessel heading and the Rate of Turn is non-zero, then the vessel<br />

velocity direction varies during the stage. In addition, if the direction is 0° relative to Vessel heading then the vessel<br />

velocity, whilst varying, is always in the Vessel heading direction.<br />

If the direction is specified relative to the Global X direction then the vessel velocity direction is not affected by the<br />

Rate of Turn.<br />

Harmonic Motion<br />

The Harmonic Motion data only apply if the vessel's superimposed motion is set to RAOs + Harmonic. It allows you<br />

to specify a number of harmonic motions of the vessel.<br />

The harmonic motions are in addition to any wave-generated motion specified by the RAO data, so if you only want<br />

the wave-generated motion then you should set the number of harmonic motions to zero.<br />

Each harmonic motion is a single-period sinusoidal motion of the vessel, specified by giving:<br />

� the Period of the harmonic motion; this applies to all 6 degrees of freedom,<br />

� the Amplitude and Phase of the motion for each of the 6 degrees of freedom of the vessel. If you are modelling<br />

slow drift, then note that slow drift normally only applies to surge, sway and yaw, in which case the amplitudes<br />

for heave, roll and pitch should be set to zero.<br />

The harmonic motion amplitudes (unlike the RAO responses of the vessel) are not specified relative to a wave<br />

amplitude – they are specified directly in length units (for surge, sway and heave) or degrees (for roll, pitch and<br />

yaw). Similarly, the phases are not specified relative to the phase of a wave – they are the phase lags from the global<br />

time origin T=0 until the maximum harmonic motion occurs. More precisely, the phase that should be specified for<br />

the harmonic motion is given by<br />

360 × ((Tmax / P) mod 1)<br />

where P is the period of the harmonic motion and Tmax is the global time at which you want the maximum of the<br />

motion to occur.<br />

The whole of the harmonic motion is applied at the displacement RAO origin, subject to any Froude scaling on vessel<br />

length.<br />

Warning: Harmonic motions can be used to model pre-calculated vessel slow drift. If you do this then if you<br />

move the vessel's Initial Position in the wave direction, or if you change the data for the waves<br />

(other than changing the simulation time origin), then you will normally also have to adjust the<br />

phases of the slow drift. This is because such changes affect the global time at which a particular<br />

part of the wave train will reach the vessel and hence will also affect the global time at which<br />

maximum slow drift motion is achieved.<br />

Time History<br />

The Time History data only apply if the vessel's primary or superimposed motion, or both, are set to Time History.<br />

Doing so allows you to specify the motion by giving a time history file. To do this:<br />

� On the Calculation page set the primary motion or superimposed motion data item (or both) to Time History.<br />

� Create a tab-delimited text file containing the time history motion you want, as described below.<br />

� On the appropriate Time History page, setup the time history data as described in Data in Time History Files.<br />

Contents of Time History File<br />

The time history file must contain a time column and columns for all 6 degrees of freedom of the vessel. For primary<br />

time history motion these are Primary X, Primary Y, Primary Z, Primary Rotation 1, Primary Rotation 2 and Primary<br />

Rotation 3, measured relative to the global axes.<br />

For superimposed time history motion the degrees of freedom that must be specified are Surge, Sway, Heave, Roll,<br />

Pitch and Yaw. They are measured relative to the primary position of the vessel, as specified by the vessel's primary<br />

motion.<br />

For details of how rotations are applied, see order of application of rotations.<br />

The time values in a vessel time history file need not be equally spaced. The units used for all the columns must be<br />

the same as those used in the <strong>OrcaFlex</strong> model, so the time values must be in seconds and angles in degrees.


System Modelling: Data and Results, Vessels<br />

For further details of the file format see Time History Files.<br />

260<br />

w<br />

Notes: If there is any wave-generated motion present in a vessel's time history motion then the <strong>OrcaFlex</strong><br />

wave data needs to match the wave that generated that motion. If you have suitable data for the<br />

wave elevation then you can use that to specify the wave by time history. This can be done either in<br />

a separate time history file for the wave or else in an extra column in the vessel's time history file.<br />

The position and velocity specified by a time history file for the start of the simulation (i.e. for<br />

SimulationTime = -BuildUpDuration) will not, in general, match the static state from which<br />

<strong>OrcaFlex</strong> starts the simulation. To handle this <strong>OrcaFlex</strong> uses ramping during the build-up stage to<br />

smooth the transition from the static state to the position and motion specified in the time history<br />

file.<br />

Externally Calculated Primary Motion<br />

The externally calculated primary motion data only apply if the vessel's Primary Motion is set to Externally<br />

Calculated. It enables you to impose a motion on the vessel that is calculated programmatically in your own<br />

external function. Typically the calculation will be based on values of variables as the simulation proceeds –<br />

otherwise it is preferable to use a time history to impose a pre-calculated motion.<br />

To use externally-calculated primary motion:<br />

� On the Calculation page of the vessel data form, set the Primary Motion to be Externally Calculated.<br />

� In the External functions section of the Variable Data form, set up an variable data source that specifies the<br />

details of your external function.<br />

� On the Primary Motion page of the vessel data form, set the Externally calculated primary motion to the<br />

external function variable data source that you have set up. Also set the Origin to the vessel axes coordinates of<br />

the point on the vessel whose motion your external function specifies.<br />

Unlike most standard external functions, the externally calculated primary motion external function returns<br />

multiple values per call: position, orientation, velocity, angular velocity, acceleration and angular acceleration. These<br />

values are returned in a TExternallyCalculatedPrimaryMotionStructValue struct – full details are given in<br />

the OrcFxAPI help file.<br />

Applied Loads<br />

You can optionally include applied loads on a vessel.<br />

You can apply to the vessel external Global Loads that do not rotate if the vessel rotates. These are specified by<br />

giving the components of Applied Force and Applied Moment relative to global axes. These components can be<br />

constant, vary with simulation time or be given by an external function. If the vessel rotates then the loads do not<br />

rotate with it.<br />

In addition, you can specify external Local Loads that do rotate with the vessel. These are specified by giving the<br />

components of Applied Force and Applied Moment relative to vessel axes. Again these components can be constant,<br />

vary with simulation time or be given by an external function. If the vessel rotates then the loads do rotate with it.<br />

These are suitable for modelling thrusters, for example.<br />

In both cases the Point of Application of the load is specified by giving its x,y,z coordinates relative to vessel axes.<br />

Note: Applied loads will only affect vessel static position if the corresponding degree of freedom is<br />

included in the static analysis, and will only affect the motion if the Primary Motion is set to one of<br />

the calculated options which includes the degree of freedom.<br />

Multiple Statics<br />

The offsets for multiple statics calculations are specified here. Offsets are from the vessel's initial position and are<br />

specified by giving a range of azimuth and offset values. For example:


w<br />

261<br />

System Modelling: Data and Results, Vessels<br />

The Azimuths table determines which directions are to be analysed. The Offsets table specifies how far in the given<br />

direction the vessel is to be placed. With the above data, the offsets analysed by the multiple statics calculation are<br />

as illustrated by the dots in the diagram below:<br />

180 deg<br />

135 deg<br />

Figure: Example Offsets<br />

90 deg<br />

45 deg<br />

0 deg<br />

0m 20m 40m 60m 80m 100m<br />

Vessel Initial<br />

Position<br />

A diagram showing the selected offsets is drawn on the Vessel Offsets data form, to help visualise which offsets will<br />

be analysed.<br />

Drawing<br />

Vessels are drawn as wire frames defined in the data as a set of Vertices and Edges. The Vertices are defined by<br />

giving their coordinates relative to the vessel axes Vxyz. The Edges are lines drawn between two vertices.<br />

For shaded graphics views, by default, the vessel is drawn using a solid, filled-in shape based on the vertices and<br />

edges. As an alternative you can use the vertices and edges to define a frame like structure. If the edge diameter is<br />

'~' then that edge will be used to build a filled in shape, otherwise that edge is drawn as a cylinder with the specified<br />

diameter. Note that you can use a mixture of edge diameters (some defined, some set to '~') to combine both filled<br />

in and framework shapes.<br />

You can define wire frame drawing data in two places – for the vessel and also for its vessel type. The vessel is<br />

drawn by first drawing a wire frame based on the vertices, edges and pen specified for its vessel type (see the vessel<br />

types data form). Then a further vessel-specific wire frame may be drawn, using any vertices, edges and pen that<br />

you specify on the vessel's data form.<br />

This allows you to specify a wire frame drawing of the basic vessel type, and then optionally add to it (possibly in a<br />

different colour) a wire frame drawing of some equipment that is specific to that vessel. If the vessel length differs<br />

Y<br />

X


System Modelling: Data and Results, Vessels<br />

262<br />

w<br />

from the vessel type length, then the vessel type wire frame is scaled accordingly. Note that either, or both, of these<br />

wire frames can be empty (i.e. no edges) if desired.<br />

The drawing data do not affect the mathematical model in any way – they are purely for drawing 3D views. The<br />

vertices and edges follow the motions of the vessel, and thus may be used to improve understanding of the motion<br />

of the model. They can also be used to represent a spar or other equipment attached to the vessel, so that you can<br />

then look for clashing with other parts of the system. For example during a simulation replay you can adjust the<br />

viewpoint to look exactly along the edge of interest, and check visually if other parts of the model pass through it.<br />

Shaded Drawing<br />

By default, for shaded 3D Views, vessels are drawn using the wire frame data.<br />

The wire frame drawing data comprises vertices and edges, but <strong>OrcaFlex</strong> needs a solid surface for the shaded<br />

graphics representation. <strong>OrcaFlex</strong> uses the following procedure to generate this surface from the wire frame<br />

vertices and edges.<br />

First any edges with specified diameters (i.e. diameters not equal to '~') are drawn as cylinders. This allows you to<br />

use such edges to visualise parts of the structure that are not solid, e.g. crane boom latticework. These edges are<br />

now handled and are excluded from the remainder of the procedure.<br />

The remaining edges are used to partition the vertices into sets of connected vertices. Two vertices are deemed to<br />

be connected if there exists a path of edges between the two vertices.<br />

Finally, for each set of connected vertices, the smallest convex hull enclosing the set is drawn.<br />

This algorithm does not always generate the shaded drawings that you might expect. Consider the following two<br />

wire frame vessels. When drawn in wire frame mode they look the same, but in shaded mode they differ.


w<br />

Figure: Wire Frame and Shaded Drawing<br />

263<br />

System Modelling: Data and Results, Vessels<br />

For the green vessel the superstructure and the hull share vertices and so all vertices are connected. This results in a<br />

single convex hull for all vertices being drawn. In the red vessel, the superstructure and hull do not share vertices<br />

and so there are two distinct sets of connected vertices. This results in two separate convex hulls and a better<br />

representation.<br />

Alternatively the object can be represented by an imported 3D model by specifying the Shaded Drawing File. This<br />

must be a Direct X format file, usually with the .x file extension. If you use a relative path then the path will be taken<br />

as relative to the folder containing the <strong>OrcaFlex</strong> file.<br />

The Browse button allows you to specify the Shaded Drawing File quickly and also provides quick access to the<br />

<strong>Orcina</strong> sample drawings via the Navigate to <strong>Orcina</strong> sample drawings button.<br />

The Use Culling option is normally selected since it can provide a useful performance benefit. However, in order to<br />

work it requires that the triangles defined in the .x file have their outward facing directions defined correctly. In the


System Modelling: Data and Results, Vessels<br />

264<br />

w<br />

unusual situation where the outward facing directions are not defined correctly then the .x file will not display<br />

correctly. If this happens then typically sections of the model will be missing when drawn by <strong>OrcaFlex</strong>. Disabling the<br />

Use Culling option resolves this problem.<br />

Draw Size is provided to allow you to scale the drawing. All directions are scaled equally to arrange that the longest<br />

side in the drawing is drawn to the specified Draw Size. This longest side is calculated by first fitting the smallest<br />

possible cuboid around the vertices of the shaded drawing (these are defined in the .x file). This cuboid is aligned<br />

with the shaded drawing's local axes. Then the length of the longest side of this cuboid is found.<br />

Specify a value of '~' to display the drawing using the absolute coordinates as specified in the .x file.<br />

Note: If you use a value of '~' for Draw Size then <strong>OrcaFlex</strong> uses the coordinates in the .x file directly. If<br />

these coordinates use a different length units system from your <strong>OrcaFlex</strong> model then you should<br />

specify the units used in the .x file by including an auxiliary file called AdditionalInformation.txt.<br />

Examples of this can be found in the sample shaded drawings provided by <strong>Orcina</strong>.<br />

Shaded Drawing Origin is provided because the shaded drawing and the vessel may have different origins. The<br />

Shaded Drawing Origin defines the origin of the shaded drawing with respect to the vessel's local axis system.<br />

Similarly Shaded Drawing Orientation allows you to reorient the shaded drawing to match the vessel's axis<br />

system.<br />

External Functions<br />

Parameters<br />

This data item specifies the External Function Parameters, a free form multi-line text field which is passed to any<br />

external function used by the Vessel object.<br />

Properties Report<br />

The Vessel properties report is available from the popup-menu on the data form. It reports the following:<br />

Length<br />

The length of the vessel.<br />

Wave direction relative to vessel<br />

The relative wave direction. If there is more than one wave train then the direction of the first wave train is used.<br />

Statics force accuracy, Statics moment accuracy<br />

These are only reported if the vessel is included in statics.<br />

The static analysis searches for an equilibrium position for the vessel – that is a position for which the resultant<br />

force and moment on the vessel is zero. We refer to the resultant force and moment as the out of balance load.<br />

Because computers have limited numerical precision the static analysis cannot always find a configuration where<br />

the out of balance load is exactly zero. <strong>OrcaFlex</strong> accepts a position as a static equilibrium position if the largest out of<br />

balance load component is less than the statics accuracy.<br />

The Statics force accuracy equals Tolerance * vessel typical force and the Statics moment accuracy equals Tolerance<br />

* vessel typical moment. The vessel typical force and moment are based on the forces and moments applied by<br />

connected objects.<br />

Reducing the Tolerance value will give a more accurate static equilibrium position, but will take more iterations.<br />

<strong>OrcaFlex</strong> may not be able to achieve the Tolerance specified if it is too small, since the computer has limited<br />

numerical precision.<br />

Note: The statics accuracies change during the static analysis because the forces and moments applied<br />

by connected objects vary with the position of the vessel. The statics accuracies reported in Reset<br />

state may be quite different from those used for the final equilibrium position and should be<br />

treated as rough approximations to the true statics accuracies.<br />

6.7.3 Vessel Types<br />

Each vessel has a vessel type that determines a lot of its data and which is defined on the vessel types form. You can<br />

define a number of different vessel types and each type is given a name, which is then used on the vessel data form<br />

to specify the type of that particular vessel.


w<br />

265<br />

System Modelling: Data and Results, Vessels<br />

Two different vessels can have the same type. To illustrate this, consider a model of a pipe being towed by two<br />

identical tugs. This is modelled by creating a vessel type called 'Tug' and then creating two vessels, each of type<br />

'Tug'. The RAOs, for example, are data of the 'Tug' vessel type, since they apply to both tugs. On the other hand the<br />

two tugs differ in their positions and any prescribed motion, so these are properties of the individual vessel objects.<br />

You don't have to use all, or even any, of the vessel types you define. For example you can set up a data file that<br />

defines a number of vessel types but has no vessels. Such a file can then act as a library of vessel types that can be<br />

imported into other <strong>OrcaFlex</strong> data files.<br />

Vessel Type Data<br />

Draughts<br />

For each Vessel Type you can enter data for several different Draughts, each draught having a user-specified Name.<br />

Each vessel in the model must specify (on the vessel data form) which draught to use. It is not possible to use<br />

different draughts at different times during the same simulation.<br />

Some of the vessel type data apply to all draughts, but a lot of the data is draught-dependent and so separate data is<br />

defined for each defined draught.<br />

Properties Data<br />

The vessel type data is then specified on the following separate pages of the data form:<br />

� Structure data defines the length of the vessel type (same for all draughts) and its mass, inertia and centre of<br />

gravity (draught-specific).<br />

� Conventions define the meaning of the RAO and wave drift QTF data. The conventions apply to all draughts.<br />

� Displacement and Load RAO data. Separate RAOs for each different draught.<br />

� Wave Drift QTF data. Separate QTFs for each different draught.<br />

� Stiffness, Added Mass and Damping data. Separate values for each different draught. Wave radiation damping is<br />

specified here.<br />

� Other Damping data. For modelling other sources of damping, e.g. viscous roll damping. Separate values for each<br />

different draught.<br />

� Current and Wind Load data. Separate values for each different draught.<br />

� Drawing data. A single set of drawing data applies to all draughts.<br />

Default Vessel Type Data<br />

When you create a new vessel type, it is given initial default data that corresponds to a tanker. You should replace<br />

this with accurate data for the vessel you are modelling.<br />

If your vessel is similar to the default data tanker then you might find the default data useful if you have no better<br />

data available. However note that the default vessel tanker has a significant heave resonance in beam seas at 7s<br />

period.<br />

The default data was obtained as follows.<br />

� The default structure data, displacement RAOs, wave load RAOs, wave drift QTFs, stiffness, added mass and<br />

damping data all come from an NMIWave diffraction analysis of a 103m long tanker in 400m water depth. The<br />

tanker used in this analysis had the following properties: Length Between Perpendiculars 103 m, Breadth 15.95<br />

m, Draught 6.66 m, Transverse GM 1.84 m, Longitudinal GM = 114 m, Block Coefficient 0.804. The diffraction<br />

analysis used 8% extra damping in roll about CG.<br />

� The default hydrodynamic and wind drag coefficients are based on graphs given in the standard OCIMF book.<br />

Note that the OCIMF book gives different coefficients for different vessel types and draughts. The default vessel<br />

type data are approximate averaged deep water coefficients, and they have been rounded to only 1 or 2<br />

significant figures.<br />

� The hydrodynamic and wind drag areas and area moments are set for the above 103m tanker. The wind drag<br />

areas are based on an assumed average upperworks height of 12m for surge and 9m for sway.<br />

� The origin for these default data is on the centreline at midships and at the mean water level.


System Modelling: Data and Results, Vessels<br />

266<br />

w<br />

<strong>OrcaFlex</strong> automatically Froude scales vessel type data to the vessel length you specify. So this default data might<br />

sometimes still be useful if your vessel is a different length to the tanker described above, but is otherwise similar.<br />

Structure<br />

Vessel Type Length<br />

The length between perpendiculars of the vessel type. If the vessel length differs from this, then the length data is<br />

used to scale all the vessel type data to the length of the vessel, using Froude scaling.<br />

Note: Some old <strong>OrcaFlex</strong> data files may contain vessels with the default value '~' for the vessel type<br />

length. This value is no longer permitted and will now cause an error if you attempt to run a<br />

simulation. In this case, you should replace the '~' with an appropriate value for the length of the<br />

vessel type. This value is only used if Froude scaling is required for any vessels of this type.<br />

The remaining data on the Structure page on the vessel type form are described below and are draught-specific, i.e.<br />

there are separate values for each draught. These data only affect the vessel motion if the vessel Primary Motion is<br />

set to Calculated (3 DOF), Calculated (6 DOF) or Externally Calculated.<br />

Mass and Moments of Inertia<br />

The vessel type's mass and its moments of inertia about axes through the CG in the vessel x, y and z directions. This<br />

should include the structural and contents mass and inertia, but not the added mass, which is specified on the<br />

Stiffness, Added Mass and Damping page.<br />

Centre of gravity (CG)<br />

The coordinates of the vessel type's centre of mass, relative to vessel axes.<br />

Conventions<br />

The conventions page (on the vessel types data form) contains settings that define the meaning of the RAO, QTF, and<br />

(in the case of the direction conventions) stiffness, added mass and damping data. This enables you to enter these<br />

data directly from many other programs without having to convert the values between different sets of conventions.<br />

Instead you can tell <strong>OrcaFlex</strong> the conventions that apply to those data and <strong>OrcaFlex</strong> will then automatically allow for<br />

those conventions when it uses the data.<br />

Warning: In general, the conventions apply to all RAO and QTF data. You cannot mix data with differing<br />

conventions in the same model (but see rotational RAOs below).<br />

Although RAOs are simple enough in principle, a number of complications make them notoriously error-prone and<br />

difficult to check in practice. The main issues are:<br />

� Different coordinate systems.<br />

� Different definitions of phase angle and rotational RAOs.<br />

� Use of vessel symmetry, e.g. to obtain motions in seas from the port side given data for seas from the starboard<br />

side.<br />

<strong>OrcaFlex</strong> provides easy ways of handling these problem areas.<br />

The use of differing coordinate systems and conventions by different suppliers of data is the main source of<br />

confusion. It is vital that you know the conventions that apply to the RAO tables that you are using. Unfortunately,<br />

not all RAO tables fully document the conventions used: see RAO data checklist for help finding out what<br />

conventions apply to your data and see Checking RAOs to check that the conventions are set correctly.<br />

Translational RAO Conventions<br />

Translational displacement RAOs are always non-dimensional (e.g. metres/metre or feet/foot).<br />

Translational load RAOs are always given as force per unit wave amplitude (e.g. kN/m).<br />

Rotational RAO Conventions<br />

Roll, pitch and yaw displacement RAOs may be specified using one of the following three possible conventions:<br />

� As rotation angles per unit wave amplitude. The values are dimensional, e.g. in degrees/metre, radians/foot<br />

etc.


w<br />

267<br />

System Modelling: Data and Results, Vessels<br />

� As rotation angles per unit maximum wave slope. Maximum wave slope is the true maximum slope of the<br />

wave surface, which is πH/L radians (= 180H/L degrees) for wave height H and wave length L. The values are<br />

non-dimensional, which can be thought of as either degrees/degree or radians/radian which, of course, are<br />

equivalent.<br />

� As rotation angles per unit wave steepness. Wave steepness is a commonly used angular measure of a wave,<br />

defined by steepness = H/L radians (= (180/π)H/L degrees). The values are again non-dimensional, i.e. either<br />

degrees/degree or (equivalently) radians/radian, but of course the RAOs are numerically larger (by a factor of<br />

π) than those using the maximum wave slope convention.<br />

In each case, the angles of rotation may be given in either degrees or radians; the convention on the data form<br />

should be specified accordingly. For the two non-dimensional cases, the units (degrees or radians) of the max wave<br />

slope or wave steepness must be the same as those for the angles of rotation. Note that, so long as the units are<br />

consistent in this way, the actual numerical values for these non-dimensional RAOs are the same regardless of<br />

whether the unit selected is degrees or radians.<br />

Rotational load RAOs must be given as moment per unit length (e.g. kN.m/m), and rotational QTFs as moment per<br />

unit length squared (e.g. kN.m/m 2 ). Therefore, the degrees/radians switch and the unit amplitude / steepness /<br />

maximum slope switch do not apply to load RAOs. This is the exception to the above rule that the conventions apply<br />

to all RAOs and QTFs.<br />

Warning: If rotational displacement RAOs are given relative to wave slope or steepness, then <strong>OrcaFlex</strong><br />

(internally) converts them to be relative to wave amplitude using the deep water wavelength, not<br />

the wavelength for the water depth specified in the model.<br />

Waves are referred to by<br />

The RAO and QTF data can be specified by period in seconds, by angular frequency in radians/second or by<br />

frequency in Hertz.<br />

RAO & QTF Phases<br />

The RAO & QTF phase convention is specified by 3 data items:<br />

1. Phases are either leads or lags.<br />

2. Phases are specified either in degrees or radians.<br />

3. The phase defines the time at which the maximum positive value of the motion occurs. This is relative to the<br />

time at which the wave crest, trough, zero up-crossing or zero down-crossing passes the phase origin. Wave<br />

Drift QTFs are not affected by this convention, since they are entered without any phase information.<br />

Directions<br />

You must specify the directions that correspond to positive motion or load in the RAO and QTF data, and in the<br />

stiffness, damping and added mass matrices. The most common convention is as given by the default <strong>OrcaFlex</strong><br />

vessel type: a right-handed system with Z upwards and clockwise rotations being positive.<br />

Symmetry<br />

You can specify symmetry of the vessel type. <strong>OrcaFlex</strong> will then use the user-specified RAO/QTF tables for wave<br />

directions on one side of the symmetry plane to derive tables for the reflected directions on the other side of the<br />

plane, or in the case of circular symmetry to derive the RAOs/QTFs for any arbitrary direction from the single<br />

direction given. Other damping is also treated in two different ways, depending on whether circular or non-circular<br />

symmetry is selected.<br />

The Symmetry can be set to:<br />

� None: The vessel type has no symmetry. The directions specified must cover all the wave directions used in the<br />

simulation.<br />

� XZ plane (or YZ plane): This specifies that the XZ (or YZ) plane through the RAO origin is a plane of symmetry.<br />

For each direction given <strong>OrcaFlex</strong> uses symmetry to derive tables for the reflected direction on the other side of<br />

the plane.<br />

� XZ & YZ planes: This specifies that both the XZ and YZ planes through the RAO origin are planes of symmetry.<br />

For each direction given <strong>OrcaFlex</strong> uses symmetry to derive tables for the reflected directions in the other 3<br />

quadrants.


System Modelling: Data and Results, Vessels<br />

268<br />

w<br />

� Circular: This specifies that the vessel has circular symmetry about the RAO origin. RAO/QTF tables can only be<br />

given for one wave direction, and <strong>OrcaFlex</strong> uses symmetry to derive tables for all other directions.<br />

RAOs<br />

Warning: If you specify some planes of symmetry then all the RAO origins, QTF origins and phase origins<br />

must be on all the planes of symmetry. Or if you specify circular symmetry then all the RAO origins,<br />

QTF origins and phase origins must be on the vertical axis of symmetry.<br />

<strong>OrcaFlex</strong> uses two different types of RAO (response amplitude operator): Displacement RAOs and Wave Load<br />

RAOs.<br />

Displacement RAOs are specified on the Displacement RAOs page on the vessel type data form. They define the 1 st<br />

order motion of the vessel in response to waves of given period and amplitude. They are only used if the vessel<br />

superimposed motion is set to RAOs+Harmonic. In the dynamic analysis the vessel moves harmonically, in all 6<br />

degrees of freedom, about its primary position. These harmonic motions are specified by giving the RAO amplitudes<br />

and phases, for all six degrees of freedom, usually for a range of wave periods and directions. For further<br />

information see RAOs and Phases.<br />

Wave load RAOs are specified on the Load RAOs page on the vessel type data form. They define the 1 st order wave<br />

force and moment on the vessel due to waves of given period and amplitude. They are only used if the 1 st order<br />

wave loads are included for the vessel and they only affect the motion if the vessel primary motion is set to one of<br />

the calculated options. For further information see Vessel Theory: Wave Load RAOs.<br />

The 2 types of RAOs are specified in very similar ways, using the following data. And for both there is a Check RAOs<br />

button that provides RAO graphs that help detect errors.<br />

RAO Origin<br />

The RAO origin is the point on the vessel whose motion is defined by the RAOs. The RAO origin is specified by giving<br />

its coordinates with respect to the <strong>OrcaFlex</strong> vessel axes (not the directions specified on the Conventions page). It is<br />

commonly, but does not need to be, at the centre of gravity. Different draughts can use different RAO origins.<br />

RAO Phase Origin<br />

The RAO phase origin is the point on the vessel to which the RAO phase values are relative. It is specified by giving<br />

its coordinates with respect to the <strong>OrcaFlex</strong> vessel axes (not the directions specified on the Conventions page). The<br />

phase values given in the RAOs must be relative to the time that a particular point on the wave (crest / trough / zero<br />

up- or down-crossing, depending on the RAO phase conventions) passes the specified RAO phase origin.<br />

Often the phase origin is the same as the RAO origin, i.e. the phases are relative to the time the crest or trough passes<br />

the point whose motion the RAOs define. In this case the phase origin can be set to '~', meaning 'same as RAO<br />

origin'. But note that some programs (one example being Moses) generate RAOs where the phase origin is not<br />

necessarily the same as the RAO origin.<br />

RAO Data<br />

RAO data can be specified for a number of different wave directions relative to the vessel, using the <strong>OrcaFlex</strong><br />

direction convention. This relative wave direction is the direction in which the wave is progressing, measured<br />

positive from the vessel x-direction towards the vessel y-direction, and on the RAOs page of the vessel type data<br />

form each RAO table is labelled with its associated direction.<br />

To change the value of the wave direction for one of the RAO tables, select the tab for that table and edit the Selected<br />

Direction. To insert a new wave direction after an existing direction, select the existing direction's page and click the<br />

Insert Direction button. Similarly, the Delete Direction button deletes the currently selected direction.<br />

For each direction, the RAO table covers a range of wave periods or frequencies, as specified in the conventions data.<br />

The periods/frequencies need not be entered in order – they will be sorted before use.<br />

In the case of a circular symmetric vessel, RAOs are specified for only one wave direction – <strong>OrcaFlex</strong> will derive<br />

RAOs for all other directions.


w<br />

RAO Interpolation/Extrapolation<br />

On direction<br />

269<br />

System Modelling: Data and Results, Vessels<br />

You must provide RAO tables that include or span the wave direction(s) involved in the simulation. If RAOs are<br />

required for a wave direction (relative to the low frequency heading of the vessel) for which an RAO table has not<br />

been supplied, then <strong>OrcaFlex</strong> will use linear interpolation to obtain an RAO table for that direction.<br />

On period<br />

Warning: Interpolation is likely to be poor if the interval involved is large. We therefore recommend that the<br />

RAO directions defined cover all the wave directions that will be used and in steps of 30° or less.<br />

For regular wave analysis, RAO data are only needed for the appropriate wave period, or for wave periods either<br />

side of that period. For random sea simulations, RAO data should be specified for a wide enough range of wave<br />

periods to cover the spectrum. The View Wave Components button (on the Waves page of the environment data<br />

form) reports the wave frequencies that <strong>OrcaFlex</strong> will use to represent the spectrum.<br />

Note: If the vessel length differs from the vessel type length then the RAO periods specified on the vessel<br />

type form are Froude scaled, and it is these Froude scaled periods that must cover the actual wave<br />

period(s).<br />

Linear interpolation is used if RAOs are required for a period that is between the periods given in the table. We<br />

strongly recommend that your RAO tables provide data for periods that include or span all the wave periods that<br />

will be involved in the simulation.<br />

For periods shorter than the smallest value in the table, <strong>OrcaFlex</strong> will assume a zero amplitude response at zero<br />

period and apply linear interpolation between that and the shortest period value. If you specify an RAO for zero<br />

period which has non-zero response, <strong>OrcaFlex</strong> will override this with a zero response, since a non-zero response at<br />

zero period is physically implausible. In both of these cases, <strong>OrcaFlex</strong> will issue a warning. To avoid this warning,<br />

simply specify a zero-amplitude response at zero period in your RAO tables.<br />

For periods longer than the longest period specified in the table, <strong>OrcaFlex</strong> will use the RAOs specified for that<br />

longest period specified. <strong>OrcaFlex</strong> will warn if there are wave components in the sea state that will be affected by<br />

this. To avoid this warning, you may specify the RAO for period=Infinity, which for a free-floating vessel can be<br />

derived from the knowledge that the vessel must follow the surface in a sufficiently long wave. See RAO Quality<br />

Checks for details.<br />

Complex-valued Interpolation<br />

Note that RAO interpolation is done using the complex value representation of the RAOs, in which the RAO with<br />

amplitude a and phase lag φ is represented by the complex number:<br />

C(a,φ) = a.exp(-iφ)<br />

For example, given RAOs (a1,φ1) for direction β1 and (a2,φ2) for direction β2 (where these are directions relative to<br />

the vessel), then the interpolated RAO for the intermediate direction β=(β1+β2)/2 is (a,φ), where:<br />

C(a,φ) = [C(a1,φ1) + C(a2,φ2)] / 2<br />

This gives better results than interpolating the amplitude and phase separately.<br />

<strong>OrcaFlex</strong> first interpolates on period, to obtain RAO tables whose entries correspond to the wave component<br />

periods. It then interpolates these tables on direction relative to the vessel (which will be changing during the<br />

simulation if the vessel heading changes) to obtain the RAOs for the appropriate wave periods and directions. Both<br />

of these stages are done using complex valued interpolation.<br />

Obtaining the data<br />

All of the above data can generally be obtained from the results of a diffraction program. <strong>OrcaFlex</strong> can import these<br />

data from the output files of some specific programs (AQWA and WAMIT) and from generic text files with <strong>OrcaFlex</strong>specific<br />

markers added. There are two different ways to do this import.<br />

The easiest and most reliable way is to import all the hydrodynamic data using the Import Hydrodynamic Data<br />

button on the Vessel Types data form. Alternatively, you may use the Import RAOs button to import only the RAO<br />

data.


System Modelling: Data and Results, Vessels<br />

Wave Drift and Sum Frequency QTFs<br />

270<br />

w<br />

The Wave Drift QTFs and Sum Frequency QTFs pages on the vessel type data form contain the Quadratic Transfer<br />

Functions (QTF) data that <strong>OrcaFlex</strong> uses to calculate a wave drift load (sometimes called the slow drift load) and<br />

sum frequency QTF load, respectively. Different draughts of the vessel type have their own separate QTF data and<br />

QTF origins.<br />

Wave drift loads can be important for moored vessels, since they include low frequency components that might<br />

excite slow drift motion of the vessel on its moorings. Sum frequency loads include high frequency components that<br />

can be important in systems with high frequency natural modes, such as ringing with TLPs.<br />

Note: The wave drift load is only calculated for a vessel if the Wave Drift Load (2 nd Order) option is<br />

checked in the list of vessel Included Effects. And the sum frequency QTF load is only calculated if<br />

the Sum Frequency Load (2 nd order) option is checked in the list of vessel Included Effects.<br />

Also, these loads will only affect the vessel motion if the vessel primary motion is set to one of the<br />

Calculated options.<br />

QTFs, like wave load RAOs, are specified in dimensional form and with respect to waves of unit amplitude.<br />

Translational QTFs have units of force per unit length squared (F/L 2 ), and rotational QTFs are moments per unit<br />

length squared (F.L/L 2 ).<br />

See Vessel Theory: Wave Drift and Sum Frequency Loads for details of how <strong>OrcaFlex</strong> calculates second order loads.<br />

More details of how to model vessel slow drift can be found here.<br />

QTF Specification Method (wave drift only)<br />

For the wave drift load (but not for the sum frequency load) <strong>OrcaFlex</strong> supports two calculation methods: Newman's<br />

approximation and Full QTFs.<br />

The Newman method requires much less QTF data, since it only requires the 'diagonal' QTF data, which specify the<br />

mean wave drift load. The Newman approximation then extrapolates the mean wave drift QTFs to approximate the<br />

off-diagonal QTFs, in order to calculate the slowly varying part of the wave drift load. The Newman method is also<br />

much less computationally intensive. For details see Newman's approximation.<br />

The Newman method cannot be applied for the sum frequency load, so the full QTF data and calculation must always<br />

be used.<br />

QTF Origin<br />

The QTF origin is the point on the vessel to which the QTFs apply. The second order wave load is calculated based<br />

on the wave conditions at the instantaneous low frequency primary motion position of this point, and wave drift<br />

damping (if included) is calculated using the low frequency primary motion velocity of this point. The second order<br />

wave load is then applied at this point.<br />

The QTF origin is specified relative to the <strong>OrcaFlex</strong> vessel axes (not the directions specified on the Conventions<br />

page).<br />

QTF Phase Origin<br />

This phase origin does not apply to wave drift QTFs specified using Newman's approximation. Full QTF phases are<br />

specified relative to the time the wave passes this QTF phase origin. For details see QTF data for Full QTF Method<br />

below.<br />

The phase origin is specified by giving its coordinates with respect to the <strong>OrcaFlex</strong> vessel axes (not the +ve<br />

directions specified on the Conventions page). It might often be at the same point as the QTF Origin, in which case<br />

the phase origin coordinates can be set to '~', meaning 'same as QTF origin'.<br />

QTF data for Newman's Approximation Method<br />

When the Newman's approximation method is used, the user only specifies the diagonal terms of the full QTF<br />

matrix. These are the mean wave drift QTFs, and on theoretical grounds they are real-valued. <strong>OrcaFlex</strong> then uses<br />

Newman's approximation, the effect of which is that the off-diagonal QTFs are approximated by the geometric<br />

means of the diagonal QTFs for the two directions and periods involved. For details see Vessel Theory: Wave Drift<br />

Loads and Sum Frequency QTFs.<br />

The QTF data for Newman's approximation are entered in a similar way to RAO data, as follows:


w<br />

271<br />

System Modelling: Data and Results, Vessels<br />

� For each draught, QTF tables are specified for each of a number of wave directions, specified using the <strong>Orcina</strong><br />

direction convention. To insert a new table use the Insert Direction button and to delete a table select that<br />

table's page and then click the Delete Direction button. To change the direction associated with a table, select<br />

that table's page and then edit the Selected Direction value.<br />

� The direction conventions apply to the QTFs.<br />

� If the vessel type has some symmetry (see the conventions page) then <strong>OrcaFlex</strong> automatically generates QTF<br />

tables for all the reflected directions implied by that symmetry. You must provide QTF tables for enough<br />

directions for <strong>OrcaFlex</strong> to have data (either user-specified or generated based on symmetry) for directions that<br />

cover the wave directions the vessel will experience.<br />

� Each QTF table consists of data for a range of wave periods or frequencies (depending on the convention<br />

specified). You should provide data for periods that (after allowing for Froude scaling if the vessel length differs<br />

from the vessel type length) cover the wave periods the vessel will experience.<br />

� The QTF data will be interpolated on direction and period as required, in the same way as RAO data.<br />

QTF data for Full QTF Method<br />

When the Full QTF method is used, the QTF data are entered in a single table. The rows in the table can be specified<br />

in any order, and the data specified in each row is:<br />

� The first 2 columns specify the vessel-relative directions β1 and β2 of a pair of wave components. Directions can<br />

be specified as either +ve or -ve values, so for example direction 270° can alternatively be specified as -90°.<br />

� The next 2 columns specify either the periods τ1 and τ2, or the corresponding frequencies (in rad/s or Hz), of the<br />

pair of wave components, as specified by the 'Waves referred to' convention specified on the Conventions page<br />

of the form.<br />

� The remaining columns specify, for each of the 6 degrees of freedom, the amplitudes and phases of the QTF,<br />

Q(β1, β2, τ1, τ2), that apply to a pair of wave components with those vessel-relative directions and periods,<br />

(β1,τ1) and (β2,τ2). The phases must be as specified according to the conventions for phase and positive<br />

directions that are specified on the Conventions page of the vessel type data.<br />

The QTF amplitudes are the force or moment per unit wave component amplitude squared, so they have units of<br />

F/L 2 (for surge, sway, heave) or F.L/L 2 (for roll, pitch, yaw).<br />

The QTF phase values specify the phase timing of the peak +ve QTF load contribution in the +ve direction specified<br />

by the direction conventions, relative to the time that the wave crest, trough or zero down- or up-crossing occurs<br />

at the low frequency primary motion position of the QTF Phase Origin. The +ve directions are specified by the<br />

direction conventions on the Conventions page. Whether the phases are leads or lags; in degrees or radians; relative<br />

to trough, crest, zero down-crossing or zero up-crossing; are all specified by the phase conventions specified on that<br />

Conventions Page. The resulting total QTF load is then applied at the QTF Origin (which can be different from the<br />

QTF Phase Origin, if needed).<br />

You should provide data for directions and periods that (after allowing for Froude scaling if the vessel length differs<br />

from the vessel type length) cover the wave periods the vessel will experience. The QTFs for wave component pairs<br />

with other directions and periods are obtained using linear interpolation on period and direction; for details see<br />

Vessel Theory: Wave Drift Loads and Sum Frequency QTFs.<br />

The number of rows in the table can be altered by changing the Number of QTFs. Specific rows can be removed by<br />

highlighting cells in the appropriate rows and pressing delete. The full QTF table will normally have a very large<br />

number of rows. Let:<br />

nβ = number of different directions specified<br />

βi = the directions specified, where i=1..nβ<br />

nτ = number of different periods specified<br />

τi = the periods specified, where i=1..nτ<br />

Then the complete full QTF data table for these directions and periods would have nβ 2 .nτ 2 rows. So for example, if<br />

nβ=12 (30° intervals covering the full 360°) and nτ = 26 (1s intervals covering periods from 5s to 30s), then the<br />

complete full QTF table would have 12 2 .26 2 = 97344 rows. This amount of data clearly cannot be typed in. It can<br />

either be imported (see Import QTFs) or else pasted into the table from a separate source, such as Excel.<br />

However, the number of data rows may often be less, for one of the following 3 reasons.


System Modelling: Data and Results, Vessels<br />

1: Uni-directional or Bi-directional Full QTF data<br />

272<br />

w<br />

Some diffraction programs only output QTFs for pairs of wave components with the same direction, whereas the<br />

output from other diffraction programs also includes QTFs for pairs of wave components with different directions.<br />

We call these two types of QTF data uni-directional and bi-directional, respectively.<br />

<strong>OrcaFlex</strong> allows you to enter QTF data of either type, and automatically detects whether you specify uni-directional<br />

or bi-directional data, as follows:<br />

� <strong>OrcaFlex</strong> will treat the QTF data as bi-directional if there are any rows in the full QTFs table with β1 ≠ β2. In this<br />

case you must specify data rows for all nβ 2 combinations of directions.<br />

� <strong>OrcaFlex</strong> will treat the QTF data as uni-directional if there are no data rows with β1 ≠ β2. In this case the QTFs<br />

are being specified only for the nβ direction pairs (βi, βi), i=1..nβ, so the number of rows in the full QTF table is<br />

reduced by a factor of 1/nβ. But for any pair of wave components that have different directions, β1 ≠ β2, <strong>OrcaFlex</strong><br />

will now have to approximate, by using QTF = Q(βmean, βmean, τ1, τ2) for that pair, where βmean is the direction that<br />

is half way (modulo 360°) between β1 and β2. It is therefore preferable to provide bi-directional, rather than<br />

uni-directional, full QTF data when the sea state includes multiple wave directions.<br />

In both cases, <strong>OrcaFlex</strong> will use linear interpolation to obtain the QTFs for wave component directions not specified<br />

in the table. This interpolation includes wrapping through 360°, so for example if the directions specified are (-90°, -<br />

60°, -30°, 0°, 30°, 60°, 90°) then for direction 180° <strong>OrcaFlex</strong> will linearly interpolate between the QTFs specified for<br />

directions 90° and -90°, since in the full circle of directions 180° lines half way between those directions. The range<br />

of directions specified should therefore cover the range of wave component directions present in the sea state, and<br />

with a sufficiently small direction interval for the accuracy wanted.<br />

2: Vessel Type Symmetry specified in Conventions<br />

<strong>OrcaFlex</strong> will use any Symmetry specified on the vessel type Conventions.<br />

For uni-directional QTF data only, this reduces the number of directions nβ that need to be specified, as follows:<br />

� Symmetry = XZ plane: In this case the directions specified must all be on the same side of the XZ plane. That is,<br />

either 0° ≤ (β mod 360) ≤ 180° for all directions β, or else 180° ≤ (β mod 360) ≤ 360° for all β. The QTFs for the<br />

other half plane will be derived using the symmetry condition.<br />

� Symmetry = YZ plane: In this case the directions specified must all be on the same side of the YZ plane. That is,<br />

either -90° ≤ (β mod 360) ≤ 90° for all β, or else 90° ≤ (β mod 360) ≤ 270° for all β. The QTFs for the other half<br />

plane will be derived using the symmetry condition.<br />

� Symmetry = XZ and YZ planes: In this case the directions specified must all be in the same quadrant. That is, 0°<br />

≤ (β mod 360) ≤ 90° for all β, or 90° ≤ (β mod 360) ≤ 180° for all β, or 180° ≤ (β mod 360) ≤ 270° for all β, or<br />

270° ≤ (β mod 360) ≤ 360° for all β. The QTFs for the other quadrants will be derived using the symmetry<br />

condition.<br />

� Symmetry = Circular: In this case only one wave direction must be specified. The QTFs for all other directions<br />

will be derived using the symmetry condition.<br />

For bi-directional full QTFs, vessel symmetry gives more complicated relationships in the QTF data, which do not<br />

lead to simple reductions in the QTF directions that need to be specified. Because of this, with bi-directional QTFs<br />

the user data must specify the QTFs for all combinations of the directions specified, and the directions specified<br />

must cover the full 360° range of directions.<br />

Warning: If the vessel type symmetry specified in the Conventions includes a plane of symmetry, then when<br />

specifying bi-directional full QTFs it is not sufficient to only specify directions on one side of the<br />

symmetry plane. The full 360° range of directions must be specified. And of course the QTF data<br />

should obey the symmetry specified.<br />

3: Entering Upper or Lower Triangle or Both<br />

QTF theory shows that the complete complex-value sum-frequency QTF matrix must be symmetric and the<br />

complete complex value wave drift (difference-frequency) QTF matrix must be conjugate-symmetric. That is, for any<br />

i,j we have the following symmetry equations for the complex-valued QTFs:<br />

Qd(βi,βj, τi,τj) = Qd(βj,βi, τj,τi) *<br />

Qs(βi,βj, τi,τj) = Qs(βj,βi, τj,τi)


w<br />

273<br />

System Modelling: Data and Results, Vessels<br />

where Qd is the wave drift QTF (subscript 'd' for drift or difference frequency), Qs is the sum frequency QTF<br />

(subscript 's' for sum frequency) and superscript * denotes the complex conjugate. For details of the definition of<br />

these complex value QTFs see Theory for Full QTFs.<br />

<strong>OrcaFlex</strong> allows you to take advantage of this symmetry, if you want, by entering any of the following combinations:<br />

� Upper triangle only: Enter QTF rows for all period combinations with τ2 ≥ τ1, but no rows with τ2 < τ1.<br />

� Lower triangle only: Enter QTF rows for all period combinations with τ2 ≤ τ1, but no rows with τ2 > τ1.<br />

� Both upper and lower triangles: Enter QTF data for the whole matrix; that is, enter rows for all combinations<br />

of periods.<br />

If only the upper or lower triangle is specified, not both, then <strong>OrcaFlex</strong> will use the symmetry equations above for<br />

wave component pairs i,j that require QTFs from the unspecified triangle. This will reduce the number of rows by<br />

almost a factor of 2. If the whole matrix is specified then <strong>OrcaFlex</strong> will enforce the symmetry conditions by using:<br />

Qs(βi,βj, τi,τj) = ½ [ Qs(βi,βj, τi,τj) + Qs(βj,βi, τj,τi) ]<br />

Qd(βi,βj, τi,τj) = ½ [ Qd(βi,βj, τi,τj) + Qd(βj,βi, τj,τi) * ]<br />

QTF Cutoff Period<br />

The Full QTF method involves a double summation over all pairs of wave components in the sea state. This can be<br />

very time-consuming, and many of the resulting QTF load contributions might have frequencies that are not<br />

significant for the calculation wanted. If this applies to your model then you can reduce the amount of computation<br />

by specifying a Cutoff Period. <strong>OrcaFlex</strong> will then omit QTF load contributions that are beyond that cutoff period, as<br />

follows:<br />

� For the wave drift QTF load, it is generally only the low frequency contributions that are significant, so <strong>OrcaFlex</strong><br />

will suppress QTF load contributions whose periods are less than the specified cutoff period. To include all the<br />

QTF load contributions set the cutoff period to zero.<br />

� For the sum-frequency QTF load, it is generally only the high frequency contributions that are significant, so<br />

<strong>OrcaFlex</strong> will suppress QTF load contributions whose periods are greater than the specified cutoff period. To<br />

include all the QTF load contributions set the cutoff period to Infinity.<br />

Note that <strong>OrcaFlex</strong> tapers the cut off, by scaling down (instead of suppressing completely) contributions whose<br />

periods are only up to 10% beyond the specified cutoff period. This is necessary since otherwise the QTF load would<br />

be a discontinuous function of the wave component frequencies, and this could give step changes in the QTF load<br />

when wave drift damping is included.<br />

Obtaining QTF data<br />

All of the above data can generally be obtained from the results of a diffraction program. <strong>OrcaFlex</strong> can import these<br />

data directly from the output files of AQWA and WAMIT, and for Newman QTFs many other diffraction program<br />

output file formats can be imported if <strong>OrcaFlex</strong>-specific markers are first added to the file.<br />

There are two different ways to import data into an <strong>OrcaFlex</strong> model. The easiest and most reliable way is to import<br />

all the hydrodynamic data using the Import Hydrodynamic Data button on the Vessel Types data form.<br />

Alternatively, you may use the Import QTFs button to import only the QTF data.<br />

Warning: The settings on the conventions page apply to all draughts and they apply to both the vessel type's<br />

RAOs and to its wave drift and sum frequency QTFs. If your RAO and QTF data use different<br />

conventions you will therefore need to take account of this, for example by specifying the different<br />

convention systems for each in the files from which they are imported.<br />

Stiffness, Added Mass and Damping<br />

Reference Origin<br />

The origin to which the stiffness, added mass and damping matrices all refer, specified as coordinates with respect<br />

to the <strong>OrcaFlex</strong> vessel axes.<br />

Equilibrium Position<br />

The Z above mean water level and the heel and trim (relative to global axes) of the reference origin when the vessel<br />

is in hydrostatic equilibrium for this draught. Note that Z above mean water level (rather than Z relative to global


System Modelling: Data and Results, Vessels<br />

274<br />

w<br />

axes) is specified, so that the vessel type data is independent of mean water level or choice of position of global<br />

origin.<br />

Added Mass, Damping and Hydrostatic Stiffness<br />

All these matrices must be specified with respect to axes through the given Reference Origin in the conventions<br />

directions, i.e. with respect to the directions specified on the conventions page of the vessel types form.<br />

For details of the units, and the theory used, see Vessel Theory: Stiffness, Added Mass and Damping.<br />

Hydrostatic Stiffness<br />

The hydrostatic stiffness matrix is only specified for heave, roll and pitch directions. It is applied in Statics only if the<br />

vessel's Static Analysis includes 6 DOF, and in dynamics only if the vessel's Primary Motion is set to "Calculated (6<br />

DOF)".<br />

Added Mass and Damping<br />

The added mass and damping matrices are specified in all 6 degrees of freedom. They will only influence the motion<br />

of the vessel if the Primary Motion is set to one of the calculated modes, and Added Mass and Damping and/or<br />

Manoeuvring Load are specified as included effects on the vessel data form.<br />

If manoeuvring load is specified as included on the vessel data form, then the constant added mass matrix, or the<br />

longest-period added mass matrix if frequency-dependent data is specified, will be used in order to calculate the<br />

manoeuvring load.<br />

Added Mass and Damping Method<br />

If you choose Constant for the Added Mass and Damping method, then single-valued added mass and damping<br />

matrices will be used.<br />

If you choose Frequency Dependent, then you may specify a number of added mass and damping matrices, each<br />

pair corresponding to a particular given frequency or period. Whether you specify period or frequency values is<br />

determined by the Waves are referred to by setting on the Vessel Type Conventions page.<br />

If you use the Constant (i.e. frequency independent) method, then you should specify values that are appropriate to<br />

the frequency of vessel motion you expect. To calculate slow drift motion of the vessel it is normally appropriate to<br />

enter low frequency values. Otherwise values corresponding to the dominant wave frequency are perhaps more<br />

appropriate. Clearly, if the vessel experiences a wide range of frequencies, the frequency-dependent method is more<br />

appropriate and would be expected to give better results.<br />

If you use the Frequency Dependent method then you need to specify both the added mass and damping matrices,<br />

and for a range of frequencies. Also, the added mass and damping data should be consistent in the sense that they<br />

obey the Kramers-Kronig relations – see Consistent Added Mass and Damping for details.<br />

Cutoff Time<br />

When you use frequency-dependent added mass and damping, <strong>OrcaFlex</strong> applies the frequency-dependent data in<br />

the time domain by calculating and applying the vessel's Impulse Response Functions (IRF).<br />

Realistic IRFs decay to zero with increasing time lag. So to improve the calculation speed <strong>OrcaFlex</strong> truncates the<br />

Impulse Response Function at the time lag specified by the Cutoff Time. The IRF is assumed to be zero for time lags<br />

greater than the Cutoff Time.<br />

Larger Cutoff Time values might give more accurate results but require more calculation. In order to choose the<br />

Cutoff Time, you may find it useful to use the Report Vessel Response window to view the graphs of the components<br />

of the IRF. From the graphs you could decide the time lag at which the function has decayed sufficiently close to zero<br />

as to have little or no effect on the calculation.<br />

Note 1: Frequency-dependent added mass and damping can be quite time-consuming to compute. For this<br />

reason, it is not calculated for vessels which do not have calculated primary motion: in this case,<br />

the added mass and damping load is simply set uniformly to zero.<br />

Note 2: The damping matrix given by a diffraction program models wave radiation damping. However<br />

there is another, often more important, source of damping, namely wave drift damping. See<br />

Damping Effects on Vessel Slow Drift. Wave drift damping can be modelled in <strong>OrcaFlex</strong>, see the<br />

wave drift theory for details.


w<br />

Obtaining the data<br />

275<br />

System Modelling: Data and Results, Vessels<br />

All of the above data can generally be obtained from the results of a diffraction program. <strong>OrcaFlex</strong> can import these<br />

data from the output files of some specific programs (AQWA and WAMIT) and from generic text files with <strong>OrcaFlex</strong>specific<br />

markers added. There are two different ways to do this import.<br />

The easiest and most reliable way is to import all the hydrodynamic data using the Import Hydrodynamic Data<br />

button on the Vessel Types data form. Alternatively, you may use the Import Matrices button to import the<br />

frequency-dependent added mass and damping matrices.<br />

Other Damping<br />

There are various sources of drag or damping (the terms are often used interchangeably) on vessel motion. <strong>OrcaFlex</strong><br />

models most of these explicitly using data on the vessel type data form for each form of damping: current and wind<br />

loads, wave radiation damping, wave drift damping. In addition to these, <strong>OrcaFlex</strong> also offers wave frequency Other<br />

Damping, as a way to incorporate other sources of damping which do not fall into any of these categories. Viscous<br />

roll damping, for example, is a wave-frequency effect which is not covered by any of these specific damping forms<br />

and so would be modelled using Other Damping.<br />

Other Damping is specified using the following data on the vessel type data form, all of which are automatically<br />

Froude scaled to the vessel length if it differs from that of the vessel type. It will only be calculated if Other Damping<br />

is specified as included on the vessel data form.<br />

Reference Origin<br />

The point on the vessel to which the Damping Coefficients refer. The relative velocity used to calculate the Other<br />

Damping load is the value at this reference origin, and the Other Damping load is applied at this point. It is specified<br />

by giving its coordinates relative to vessel axes.<br />

Note: The Other Damping data only accepts coefficients for the diagonal terms of the damping matrix, so<br />

no coupling effects (surge-pitch, sway-roll, etc.) are applied at the Reference Origin, and coupling<br />

effects will only be included due to the offset of the reference origin from the vessel origin. The<br />

Reference Origin should therefore be close to the overall centre of damping load, where such<br />

coupling effects are small.<br />

Damping Coefficients<br />

Damping coefficients are specified for all six vessel degrees of freedom and are given relative to the vessel axes. Two<br />

sets of coefficents are available, one for linear damping and one for quadratic. The details of how they are applied<br />

are given in Other Damping Theory.<br />

Note: The vessel type Symmetry convention affects how the quadratic coefficients are used. If the<br />

symmetry is set to Circular, then the coefficients are used with a cross-flow drag model, with a<br />

vertical axis. For other symmetry settings, the quadratic coefficients are used with a drag model<br />

that treats each direction of motion independently.<br />

For details of the damping force model see Other Damping Theory.<br />

Current and Wind Loads<br />

Current and wind drag loads on a vessel are loads due to the relative velocity of the fluid past the vessel. They can be<br />

modelled using the data on the Current Load and Wind Load pages on the vessel type data form. If the length of the<br />

vessel differs from that of the vessel type then the vessel type data will be scaled accordingly.<br />

These loads are an important source of damping when modelling vessel slow drift. For a discussion of the various<br />

damping sources see Damping Effects on Vessel Slow Drift.<br />

The velocity used to calculate the drag loads is the relative low-frequency velocity of the fluid past the vessel. This<br />

includes any current or wind velocity and the vessel velocity due to any low-frequency primary motion. The drag<br />

forces and moments due to translational motion are modelled using the standard OCIMF method. The drag forces<br />

and moments due to any vessel rate of yaw are modelled using yaw rate drag load factors. For details of how the<br />

loads are calculated, see Vessel Theory: Current and Wind Loads.<br />

Warning: The current and wind loads are based on theory for surface vessels and are not suitable for<br />

submerged vessels.


System Modelling: Data and Results, Vessels<br />

Load Origin<br />

276<br />

w<br />

The coordinates (relative to vessel axes) of the point on the vessel at which the current or wind drag loads are<br />

calculated and at which they will be applied. This need not be at the vessel origin.<br />

The velocity used in the current drag load calculation is the current velocity at the load origin, minus any velocity of<br />

the load origin due to low-frequency primary motion of the vessel. Note that if the load origin is above the water<br />

surface then the current velocity used is that at the water surface.<br />

The velocity used in the wind load calculation is the wind velocity (as specified by the speed and direction on the<br />

Wind page on the environment data form), minus any velocity of the wind load origin due to low-frequency primary<br />

motion of the vessel. Note that the wind velocity specified should be that at 10m above mean water level, since that<br />

is the height used by the OCIMF vessel wind load model (see Wind Speed for more details).<br />

Load Symmetry<br />

Specifies what symmetry the vessel type has below (for current load) or above (wind load) the water line, about the<br />

load origin. For XZ and YZ symmetry, <strong>OrcaFlex</strong> will use the symmetry to derive load coefficients for extra directions<br />

generated by reflection in the specified vessel axes planes. For circular symmetry, you must specify coefficients for<br />

one direction only and <strong>OrcaFlex</strong> will use symmetry to derive coefficients for all other directions.<br />

Note: The symmetry for current drag, wind drag and RAOs (see RAO Symmetry) need not be the same,<br />

though of course the symmetry for current drag would normally be the same as that for RAOs.<br />

Areas and Area Moment<br />

The surge and sway areas and yaw area moment that will be used to calculate the current or wind loads. For details<br />

see Vessel Theory: Current and Wind Loads.<br />

Coefficients<br />

Load coefficients are specified for the vessel surge, sway and yaw directions. They depend on the direction of the<br />

current or wind, and are given relative to the low-frequency vessel heading using the <strong>OrcaFlex</strong> direction convention.<br />

<strong>OrcaFlex</strong> uses any symmetry specified to derive coefficients for other directions and then uses linear interpolation<br />

to derive coefficients for intermediate directions.<br />

Note: When the symmetry is XZ and YZ the yaw moments must be zero, so <strong>OrcaFlex</strong> forces zero yaw<br />

coefficients in this case.<br />

The View Coefficients button allows you to view the coefficients that will be used – the blobs on the graph show the<br />

coefficients you have specified plus any that <strong>OrcaFlex</strong> has derived using reflection, and the curve shows the<br />

interpolated coefficients that will be used for intermediate directions. You should specify sufficient directions to<br />

define the shape of the curve and to cover the range of directions that the vessel will experience.<br />

Yaw Rate Drag Factors<br />

The yaw rate drag factors only apply to the current load, not to the wind load. They model the yaw drag moment,<br />

and any surge and sway drag forces, due to low-frequency vessel yaw rate.<br />

For a slender ship, and if the load origin has been placed at the centre of the vessel, then the surge and sway drag<br />

factors can usually be taken to be zero, and then yaw drag factor can be estimated based on the vessel length and<br />

draught. See Drag Loads due to Yaw Rate for details.<br />

Drawing<br />

Drawing Data<br />

Each vessel of this type is drawn as a wire frame, based on vertices and representing the vessel type, plus a wire<br />

frame representing vessel-specific features. See Drawing.<br />

Edge diameter (used only for shaded drawing)<br />

For shaded graphics views, by default, the vessel is drawn using a solid, filled-in shape based on the vertices and<br />

edges.<br />

As an alternative you can use the vertices and edges to define a frame like structure. If the edge diameter is '~' then<br />

that edge will be used to build a filled in shape, otherwise that edge is drawn as a cylinder with the specified


w<br />

277<br />

System Modelling: Data and Results, Vessels<br />

diameter. Note that you can use a mixture of edge diameters (some defined, some set to '~') to combine both filled<br />

in and framework shapes.<br />

Figure: Wire frames with different edge diameter. A value of '~' is used for the wire frame on the left<br />

and a value of 1m is used for the wire frame on the right.<br />

Shaded Drawing<br />

By default, for shaded 3D Views, vessels are drawn using the wire frame data.<br />

The wire frame drawing data comprises vertices and edges, but <strong>OrcaFlex</strong> needs a solid surface for the shaded<br />

graphics representation. <strong>OrcaFlex</strong> uses the following procedure to generate this surface from the wire frame<br />

vertices and edges.<br />

First any edges with specified diameters (i.e. diameters not equal to '~') are drawn as cylinders. This allows you to<br />

use such edges to visualise parts of the structure that are not solid, e.g. crane boom latticework. These edges are<br />

now handled and are excluded from the remainder of the procedure.<br />

The remaining edges are used to partition the vertices into sets of connected vertices. Two vertices are deemed to<br />

be connected if there exists a path of edges between the two vertices.<br />

Finally, for each set of connected vertices, the smallest convex hull enclosing the set is drawn.<br />

This algorithm does not always generate the shaded drawings that you might expect. Consider the following two<br />

wire frame vessels. When drawn in wire frame mode they look the same, but in shaded mode they differ.


System Modelling: Data and Results, Vessels<br />

Figure: Wire Frame and Shaded Drawing<br />

278<br />

w<br />

For the green vessel the superstructure and the hull share vertices and so all vertices are connected. This results in a<br />

single convex hull for all vertices being drawn. In the red vessel, the superstructure and hull do not share vertices<br />

and so there are two distinct sets of connected vertices. This results in two separate convex hulls and a better<br />

representation.<br />

Alternatively the object can be represented by an imported 3D model by specifying the Shaded Drawing File. This<br />

must be a Direct X format file, usually with the .x file extension. If you use a relative path then the path will be taken<br />

as relative to the folder containing the <strong>OrcaFlex</strong> file.<br />

The Browse button allows you to specify the Shaded Drawing File quickly and also provides quick access to the<br />

<strong>Orcina</strong> sample drawings via the Navigate to <strong>Orcina</strong> sample drawings button.<br />

The Use Culling option is normally selected since it can provide a useful performance benefit. However, in order to<br />

work it requires that the triangles defined in the .x file have their outward facing directions defined correctly. In the


w<br />

279<br />

System Modelling: Data and Results, Vessels<br />

unusual situation where the outward facing directions are not defined correctly then the .x file will not display<br />

correctly. If this happens then typically sections of the model will be missing when drawn by <strong>OrcaFlex</strong>. Disabling the<br />

Use Culling option resolves this problem.<br />

Draw Size is provided to allow you to scale the drawing. All directions are scaled equally to arrange that the longest<br />

side in the drawing is drawn to the specified Draw Size. This longest side is calculated by first fitting the smallest<br />

possible cuboid around the vertices of the shaded drawing (these are defined in the .x file). This cuboid is aligned<br />

with the shaded drawing's local axes. Then the length of the longest side of this cuboid is found.<br />

Specify a value of '~' to display the drawing using the absolute coordinates as specified in the .x file.<br />

Note: If you use a value of '~' for Draw Size then <strong>OrcaFlex</strong> uses the coordinates in the .x file directly. If<br />

these coordinates use a different length units system from your <strong>OrcaFlex</strong> model then you should<br />

specify the units used in the .x file by including an auxiliary file called AdditionalInformation.txt.<br />

Examples of this can be found in the sample shaded drawings provided by <strong>Orcina</strong>.<br />

Shaded Drawing Origin is provided because the shaded drawing and the vessel type may have different origins.<br />

The Shaded Drawing Origin defines the origin of the shaded drawing with respect to the vessel type's local axis<br />

system. Similarly Shaded Drawing Orientation allows you to reorient the shaded drawing to match the vessel<br />

type's axis system.<br />

Vessel length scaling<br />

If the vessel length and the vessel type length are different then the shaded drawing is scaled accordingly. This<br />

scaling is applied in addition to the scaling of the shaded drawing specified by the Draw Size.<br />

Importing Hydrodynamic Data<br />

The Import Hydrodynamic Data button on the vessel types form enables the import of data, in the form of results<br />

from common ship response calculation packages, into <strong>OrcaFlex</strong>. Presently, <strong>OrcaFlex</strong> can import data which has<br />

been output by AQWA and WAMIT. <strong>OrcaFlex</strong> can also import data from Moses, Hydrostar/ARIANE and Wadam<br />

output files, after the addition of some markup text. The form of this markup also allows for import from any generic<br />

text file.<br />

Importing data from AQWA and WAMIT<br />

<strong>OrcaFlex</strong> attempts to import as much data as possible from the file to the appropriate data items of the vessel type.<br />

These data are: displacement RAOs, load RAOs, QTFs, added mass and damping, and hydrostatic stiffness. The<br />

imported data is converted to match the vessel type conventions and scaled to match the units of the <strong>OrcaFlex</strong><br />

model.<br />

Mass, inertia and hydrostatic equilibrium position are not always output by these packages, but will be imported by<br />

<strong>OrcaFlex</strong> if they are available. The remaining vessel type data are not typically calculated by such programs, so will<br />

need to be obtained from another source. Any <strong>OrcaFlex</strong> data for which there are not any corresponding data in the<br />

imported file will not be changed.<br />

If the import fails for any reason, <strong>OrcaFlex</strong> will report an error and reinstate the vessel type data to that which was<br />

present before the import began. If the data in the file are ambiguous, <strong>OrcaFlex</strong> will prompt you for clarification. At<br />

the end of the import process, <strong>OrcaFlex</strong> will warn you of anything noteworthy – for example, if no QTFs were<br />

present in the file, or if a damping matrix was non-symmetric.<br />

Importing data from AQWA<br />

AQWA results are output in a text file with a .lis extension. The data are in dimensional form. <strong>OrcaFlex</strong> reads data<br />

into the presently selected draught.<br />

Units<br />

<strong>OrcaFlex</strong> first attempts to determine the units in use in the file, from the values of g (acceleration due to gravity) and<br />

ρ (water density), and the knowledge that the unit of time is the second. If this is successful, then <strong>OrcaFlex</strong> will scale<br />

the data (if necessary) from the units in use in the file to the units of the <strong>OrcaFlex</strong> model. If the units cannot be<br />

determined, or if they are a mixture of SI and US, <strong>OrcaFlex</strong> will be unable to convert the data in this way: in this case,<br />

the raw data will be imported from the file unscaled and a warning will be issued.<br />

Reference origins<br />

All of the AQWA data have their reference origin at the vessel centre of gravity. So <strong>OrcaFlex</strong> sets the RAO origins,<br />

QTF origin, and reference origin for stiffness, added mass & damping to the value of the centre of gravity given on


System Modelling: Data and Results, Vessels<br />

280<br />

w<br />

the vessel types Structure page. You will need to ensure that this value is appropriate before importing the AQWA<br />

data. RAO phase origins, likewise, are at the vessel centre of gravity, so are set appropriately by <strong>OrcaFlex</strong>.<br />

Added mass and damping<br />

AQWA outputs the whole 6x6 matrices for added mass and damping, but <strong>OrcaFlex</strong> uses only the upper right triangle<br />

of each. You will receive a warning if any of these matrices, in the imported file, are significantly non-symmetric,<br />

since <strong>OrcaFlex</strong> is unable to handle this.<br />

RAOs<br />

Note: Frequency-independent added mass and damping are not imported. If you have such data, you<br />

may wish to pre-process your AQWA file to add them to each frequency-dependent item before<br />

importing into <strong>OrcaFlex</strong>.<br />

Displacement RAOs are imported in a straightforward way. Load RAOs are imported including the Froude-Krylov<br />

contribution. Since AQWA and <strong>OrcaFlex</strong> use the same conventions for vessel headings, RAO directions are read in<br />

directly and require no adjustment.<br />

QTFs<br />

Wave drift QTFs are imported and, as with RAOs, no adjustment is necessary for directions. AQWA writes full QTFs<br />

to a separate text file with the same name as the .lis file but a .qtf extension: if this .qtf file is present in the same<br />

folder as the .lis file, <strong>OrcaFlex</strong> will automatically import the QTF data it contains. Newman QTFs are imported<br />

directly from the .lis file.<br />

Stiffness and equilibrium position<br />

The heave, roll and pitch components of the hydrostatic stiffness matrix are imported. Again, only the upper right<br />

triangle is used, and a warning is issued if the AQWA data are non-symmetric. The Z-component of the equilibrium<br />

position is imported. Since AQWA does not give the heel and trim values at the equilibrium position, these values are<br />

set to zero: if necessary, you should edit these values yourself.<br />

Note: AQWA may output the stiffness matrix twice, under the hydrostatic and hydrodynamic headings. If<br />

so, and if the two matrices are not the same, a warning will be given and the 'hydrostatic' form will<br />

be imported.<br />

Mass and inertia<br />

Mass and moments of inertia are imported, the latter from the diagonal elements of the inertia matrix output by<br />

AQWA.<br />

Importing data from WAMIT<br />

WAMIT results are output in a text file with an .out extension. The data are almost all non-dimensional, the main<br />

exceptions to this being g, acceleration due to gravity, and L, WAMIT's length scale which is used to nondimensionalise<br />

the data. <strong>OrcaFlex</strong> reads data into the presently selected draught.<br />

Please note that <strong>OrcaFlex</strong> is unable to import WAMIT data representing multi-body problems.<br />

Units<br />

The length unit in use in the file will be determined, if possible, from the value of g and the knowledge that the unit<br />

of time is the second. If this is successful, then <strong>OrcaFlex</strong> will convert the data from non-dimensional to the units of<br />

the <strong>OrcaFlex</strong> model, using WAMIT's length scale (converted to the length unit of the <strong>OrcaFlex</strong> model) and the<br />

current <strong>OrcaFlex</strong> values of g (acceleration due to gravity) and ρ (nominal water density), using the scaling factors<br />

defined in the WAMIT user manual. If the length unit cannot be determined then the raw data will be imported from<br />

the file unscaled and a warning will be issued.<br />

Reference origins<br />

All of the WAMIT data have their reference origin at WAMIT's vessel origin. <strong>OrcaFlex</strong> determines the position of this<br />

origin, with respect to <strong>OrcaFlex</strong>'s vessel origin, from the difference in the centre of gravity as given in the two<br />

coordinate systems, and sets the RAO origins, QTF origin, and added mass & damping origin to have this value. (If<br />

you choose the <strong>OrcaFlex</strong> vessel origin to be the same as the WAMIT vessel origin, then the coordinates of the centre<br />

of gravity will coincide and the reference origins will all be zero).<br />

In WAMIT, the phase origin is at the global origin, so the <strong>OrcaFlex</strong> RAO phase origins are represented by the<br />

coordinates of the WAMIT global origin relative to the <strong>OrcaFlex</strong> vessel origin. We determine this by (i) expressing


w<br />

281<br />

System Modelling: Data and Results, Vessels<br />

the WAMIT global origin relative to the WAMIT vessel origin (i.e. in "body-fixed axes"), using the values of XBODY,<br />

YBODY, ZBODY and PHIBODY in the WAMIT output file, and (ii) translating this value to be relative to the <strong>OrcaFlex</strong><br />

vessel origin, using the difference between the centres of gravity in the two systems.<br />

You will therefore need to ensure that the centre of gravity is set appropriately in <strong>OrcaFlex</strong> before importing the<br />

WAMIT data.<br />

Note: In some cases, WAMIT does not output the horizontal position of the centre of gravity. If so, then<br />

<strong>OrcaFlex</strong> will warn you of this, and you will need to set these reference origins yourself.<br />

Added mass and damping<br />

WAMIT outputs added mass and damping as a list of (i,j) components. <strong>OrcaFlex</strong> imports these values, but uses only<br />

the upper right triangle of each matrix. You will receive a warning if any of these matrices, in the imported file, are<br />

significantly non-symmetric, since <strong>OrcaFlex</strong> is unable to handle this. Components for which an (i,j) value is not given<br />

are assumed to be zero. The non-dimensional WAMIT values for added mass (a) and damping (b) are scaled to<br />

dimensional (A,B respectively) values according to the formulae<br />

where<br />

RAOs<br />

Aij = ρL k aij<br />

Bij = ρL k ωbij<br />

k = 3 for i,j=1,2,3;<br />

k = 4 for i=1,2,3, j=4,5,6 or i=4,5,6, j=1,2,3;<br />

k = 5 for i,j=4,5,6 and<br />

ω is the frequency in rad/s.<br />

Displacement RAOs are imported in a straightforward way. They are re-dimensionalised by multiplying by the<br />

factor L k , k = 0 for i = 1,2,3; k = 1 for i = 4,5,6. WAMIT may calculate load RAOs in one of two ways, and either or both<br />

methods (labelled "Haskind" and "Diffraction") may be present in the file. If both are given, <strong>OrcaFlex</strong> will prompt<br />

you to choose one method and will import the data for that method only. The re-dimensionalising factor for load<br />

RAOs is ρ g L k , k = 2 for i=1,2,3; k = 3 for i=4,5,6. The RAO directions in <strong>OrcaFlex</strong> are relative to the vessel, and are<br />

determined by subtracting the value of PHIBODY in the WAMIT input file (the vessel heading at rest) from each of<br />

the values of wave heading, which are given in WAMIT with respect to global axes.<br />

QTFs<br />

Wave drift QTFs are re-dimensionalised with the factor ρ g L k , k = 1 for i=1,2,3; k = 2 for i=4,5,6. Directions are<br />

adjusted in the same way as for RAOs.<br />

WAMIT may calculate Newman QTFs in a number of different ways: Momentum Conservation, Pressure Integration,<br />

and Control Surface. <strong>OrcaFlex</strong> is presently unable to import data resulting from the Momentum Conservation<br />

calculation, so this method is disregarded. As with load RAOs, if data from more than one of the remaining methods<br />

are present, then you will be prompted to choose just one of them.<br />

Similarly, full QTFs (if included) are calculated by WAMIT in two different ways: a Direct and an Indirect method. If<br />

data from both of these methods are present in the .out file, then you will be prompted to choose one of them; if both<br />

difference and sum frequency QTFs are present, you will have to make this choice for each.<br />

Notes: WAMIT outputs Newman QTFs for pairs of wave headings. <strong>OrcaFlex</strong> allows only unidirectional<br />

Newman QTFs, so imports only the data for which the two headings coincide. This restriction does<br />

not apply to full QTFs.<br />

Stiffness and equilibrium position<br />

The heave, roll and pitch components of the hydrostatic stiffness matrix are imported. The equilibrium position is<br />

not specified by WAMIT, so you should edit this value yourself.<br />

Mass and inertia<br />

Mass and moments of inertia are not imported from WAMIT files. You should enter these data yourself.


System Modelling: Data and Results, Vessels<br />

Importing data from generic text files<br />

282<br />

w<br />

The Import Hydrodynamic Data button can also be to import data from a generic text file containing special<br />

markup to identify and describe the data. The following data are imported:<br />

� Displacement RAOs.<br />

� Load RAOs.<br />

� Newman QTFs.<br />

� Frequency dependent added mass and damping matrices.<br />

This mode of import is equivalent to importing each of the above categories of data individually by using the import<br />

buttons as follows:<br />

� Import RAOs on the Displacement RAOs page.<br />

� Import RAOs on the Load RAOs page.<br />

� Import QTFs on the Wave Drift QTFs page (with Newman's Approximation selected as the Specification<br />

Method).<br />

� Import Matrices on the Stiffness, Added Mass, Damping page.<br />

If the import fails for any reason, <strong>OrcaFlex</strong> will report an error and reinstate the vessel type data to that which was<br />

present before the import began. At the end of the import process, <strong>OrcaFlex</strong> will warn you of anything noteworthy –<br />

for example, if no QTFs were present in the file, or if a damping matrix was non-symmetric.<br />

Importing RAOs<br />

RAOs may be imported using the Import RAOs button on the vessel types form. Data may be imported from AQWA<br />

or WAMIT output files and, with the addition of some markup text, from Moses, Hydrostar/ARIANE and Wadam<br />

output files. The form of this markup also allows for import from other text files.<br />

Import RAOs from specific program output<br />

<strong>OrcaFlex</strong> can import RAOs directly from AQWA and WAMIT output files, as described under Importing<br />

Hydrodynamic Data. All existing RAO data for the selected draught will be overwritten.<br />

Import RAOs from marked-up text files<br />

You can use generic text files to import RAO data from, for example, a ship response calculation program or model<br />

test results.<br />

When you import RAOs from a text file, any RAO data previously present in <strong>OrcaFlex</strong> for the draughts given in the<br />

text file will be deleted. Other data for these draughts, e.g. wind and current load data, will not be affected. So for<br />

each draught you import, all the RAOs for that draught must be in a single file. You can therefore either put all the<br />

RAOs in a single file, or else have separate files for separate draughts.<br />

RAO data in a text file can be imported providing that the data appears in tabular form and markers are first<br />

inserted into the file to identify the data to <strong>OrcaFlex</strong>.<br />

A text RAO file must contain the RAO data in the following form. It is usually easy to create a suitable file by adding a<br />

few lines to your original response data file – see the examples below for specific program output.<br />

� The RAO data must appear in the file in one or more tables, each table being for one draught and direction. To<br />

enable <strong>OrcaFlex</strong> to find the tables, each table must be preceded by a line containing the string <strong>OrcaFlex</strong><br />

Displacement RAO Start. The table must be immediately followed by a line containing the string <strong>OrcaFlex</strong><br />

Displacement RAO End. There must not be any blank lines between these two marker lines. For load RAOs these<br />

strings should be <strong>OrcaFlex</strong> Load RAO Start and <strong>OrcaFlex</strong> Load RAO End.<br />

� Immediately following the line containing the RAO Start string there must be two lines (in either order)<br />

specifying the draught and direction that applies to that table. The line specifying the draught must be of the<br />

form Draught DraughtName, where DraughtName is the name of the draught. If the name contains spaces, then<br />

DraughtName must be enclosed in quotes. The line specifying the direction must be of the form Direction n,<br />

where n is a number specifying the direction the wave is progressing, in degrees, measured positive from<br />

forward towards the port side. So direction 0 means waves coming from astern and direction 90 means waves<br />

coming from the starboard side.


w<br />

283<br />

System Modelling: Data and Results, Vessels<br />

� Following these two lines, the first line of the table must be a set of headers defining the subsequent columns.<br />

This headers line consists of a number of character strings, separated by spaces. The strings indicate the<br />

contents of the columns – see Header Strings for Text RAO Tables. Columns with unrecognised header strings<br />

are ignored.<br />

� If you want <strong>OrcaFlex</strong> to ignore a column, for example because it contains irrelevant or superfluous data, then<br />

insert an unrecognised header string, (e.g. "N/A" or "~"). In particular, if the table contains both wave period<br />

and frequency you must indicate that one of these is to be ignored, since <strong>OrcaFlex</strong> will not accept two columns<br />

specifying the same information.<br />

� The remaining lines in the table must contain numbers, one for each header in the headers line, separated by<br />

tabs and/or spaces. Please note that it is the order of the columns that matters, not their actual position across<br />

the page. Hence, although it is natural to align the headers above the columns of numbers, this is not in fact<br />

necessary.<br />

� The conventions and units used in the text file can be specified – see below. If they are, the imported data will be<br />

converted to match the vessel type conventions and scaled to match the units of the <strong>OrcaFlex</strong> model. If no<br />

conventions or units are specified in the text file, then the data will be assumed to match the conventions and<br />

units prevailing in <strong>OrcaFlex</strong> and will be imported without any conversion."<br />

� The RAO and phase origins are not read in and should be set on the Vessel Type form.<br />

Specifying conventions and units<br />

You can add markup to the file to specify the conventions and units of the data contained in the file. For example, a<br />

typical markup block for conventions is as follows:<br />

*** <strong>OrcaFlex</strong> Conventions Start ***<br />

RAOResponseUnits = degrees<br />

RAOWaveUnit = amplitude<br />

RAOPhaseConvention = lags<br />

RAOPhaseUnitsConvention = degrees<br />

RAOPhaseRelativeToConvention = crest<br />

SurgePositive = forward<br />

SwayPositive = port<br />

HeavePositive = up<br />

RollPositiveStarboard = down<br />

PitchPositiveBow = down<br />

YawPositiveBow = port<br />

*** <strong>OrcaFlex</strong> Conventions End ***<br />

The block begins with a line containing the string <strong>OrcaFlex</strong> Conventions Start and ends with a line containing<br />

<strong>OrcaFlex</strong> Conventions End. The lines in between specify the conventions using the standard <strong>OrcaFlex</strong> batch script<br />

names and values.<br />

The above list contains all possible conventions settings that can be included in the block. Note that the waves are<br />

referred to by convention is not allowed because the WP, WFH or WFR header string identifies the period/frequency<br />

convention. In addition the symmetry convention should not be specified in this block – instead you should simply<br />

set it to the appropiate value in the <strong>OrcaFlex</strong> model.<br />

If some conventions are omitted then <strong>OrcaFlex</strong> uses the corresponding value from the <strong>OrcaFlex</strong> model conventions.<br />

If the block is omitted altogether then a warning is issued and no conventions conversion is performed.<br />

The units of the data contained in the file are specified in a similar way:<br />

*** <strong>OrcaFlex</strong> Units Start ***<br />

LengthUnits = m<br />

ForceUnits = kN<br />

*** <strong>OrcaFlex</strong> Units End ***<br />

The above list contains all possible units settings that can be included in the block. For displacement RAOs the<br />

length unit is the only one which is used and consequently the force units can be omitted. For load RAOs both length<br />

and force units should be specified.<br />

If some units settings are omitted then <strong>OrcaFlex</strong> uses the corresponding value from the <strong>OrcaFlex</strong> model. If the block<br />

is omitted altogether then a warning is issued and no units scaling is performed.


System Modelling: Data and Results, Vessels<br />

Moses output<br />

284<br />

w<br />

See this example for Moses displacement RAOs, and this one for Moses wave load RAOs. Remember that RAO and<br />

phase origins are not imported from text files – you should take particular care with Moses output to set these<br />

correctly, since RAO origin may differ from phase origin in this case.<br />

Note: Moses reports encounter period or frequency, to account for the effect of the speed of the vessel on<br />

the apparent wave period or frequency. <strong>OrcaFlex</strong> requires the data at actual wave period or<br />

frequency, so if possible your vessel in your Moses model should not have any forward speed.<br />

Hydrostar/ARIANE output<br />

Hydrostar has an option to output results in a format suitable for import directly into ARIANE, and this format is<br />

also suitable for import, with the mark-up described above, into <strong>OrcaFlex</strong>. This format is usually indicated by the<br />

phrase 'pour ARIANE' at the head of the file. This example demonstrates the necessary mark-up and the setting of<br />

conventions and units for displacement RAOs. Hydrostar requires that the 'horizontal' components of the RAOs are<br />

listed first, then the 'vertical' components: you must take particular care here to order the column headers correctly.<br />

You must also take care in setting the directions: as can be seen in the example, the direction conventions differ<br />

between Hydrostar and <strong>OrcaFlex</strong>.<br />

Note: As with Moses, Hydrostar takes account of the effect of the speed of the vessel in determining the<br />

added mass and damping, and reports results at encounter period or frequency. Your vessel in your<br />

Hydrostar model should not have any forward speed.<br />

WADAM output<br />

Unfortunately, <strong>OrcaFlex</strong> is unable to import WADAM RAO data directly. WADAM displacement and load RAO tables<br />

have the 6 degrees of freedom arranged as rows rather than columns, and it is not possible to mark up this format in<br />

a way which is compatible with the <strong>OrcaFlex</strong> headers above. The simplest way to import from WADAM is to write<br />

WAMIT-format results from WADAM: <strong>OrcaFlex</strong> can import WAMIT results without any mark-up at all.<br />

If you do not have access to WADAM, but simply have a WADAM output file, then we suggest that you read the file<br />

into Excel (or similar), transpose each of the RAO tables and add the required mark-up text, and save the file as text.<br />

This file can then be imported in the usual way.<br />

Other output<br />

<strong>OrcaFlex</strong> can import data produced by other programs (or, more generally, text data obtained by any other means)<br />

so long as it is in the format illustrated by the examples above, ie a series of tables of data, one for each direction,<br />

arranged with rows representing wave period or frequency and columns for surge/sway/heave/roll/pitch/yaw<br />

dimensional RAO values.<br />

Header Strings for Text RAO Tables<br />

When importing RAOs from a text file, the following strings can be used in the header line.<br />

Header string Column contains<br />

WP Wave period in seconds<br />

WFH Wave frequency in Hertz<br />

WFR Angular wave frequency in radians/second<br />

XA Surge amplitude<br />

XP Surge phase<br />

YA Sway amplitude<br />

YP Sway phase<br />

ZA Heave amplitude<br />

ZP Heave phase<br />

RXA Roll amplitude<br />

RXP Roll phase<br />

RYA Pitch amplitude<br />

RYP Pitch phase


w<br />

Header string Column contains<br />

RZA Yaw amplitude<br />

RZP Yaw phase<br />

285<br />

System Modelling: Data and Results, Vessels<br />

In these header strings X, Y and Z represent the vessel axes, A denotes amplitude, P denotes phase and R rotation<br />

about the given axis.<br />

RAO Data Checklist<br />

To derive vessel point motions, you need to obtain data giving both RAOs and phases for the vessel for the relevant<br />

wave period. You also need to know what conventions apply to your data; these may be documented with the data,<br />

but sometimes you may have to deduce what they are. You should have answers to all the following questions:<br />

To what point on the vessel do the data apply?<br />

This is the RAO origin and is often the vessel centre of gravity, but you need to be sure. If it is not specified check<br />

with your data supplier.<br />

To what point on the vessel are the phases relative?<br />

This is the RAO phase origin and is usually, but not always, the same as the RAO origin.<br />

Are the responses in dimensional or RAO form?<br />

RAO form (i.e. for unit wave amplitude) is the most common; data giving dimensional form would have to also give<br />

the associated wave amplitudes/heights. <strong>OrcaFlex</strong> will only accept RAO form.<br />

In what form are the rotational roll, pitch and yaw RAOs?<br />

Units such as degrees/metre or radians/metre (displacement RAOs), or kN.m/m (wave load RAOs), almost always<br />

mean the rotational motions are relative to waves of unit amplitude.<br />

Very rarely, rotational RAO amplitudes are given per unit wave height (i.e. double amplitude) – check your data<br />

source. In this case you will have to multiply the RAOs by 2 manually, before entry to <strong>OrcaFlex</strong>.<br />

Units such as degrees/degree, radians/radian, or no units (displacement RAOs), or kN.m/radian (wave load RAOs),<br />

imply rotational RAOs relative to waves of unit steepness or maximum slope.<br />

For long wave periods in deep water, the rotational displacement RAOs in the wave plane (e.g. pitch in head or stern<br />

seas) should tend to 1 for RAOs relative to unit maximum slope, or to pi for RAOs relative to unit steepness.<br />

Are the phases in degrees or radians?<br />

Unless you only have a small amount of data, this should be obvious from the range of phase values.<br />

What directions are positive for surge, sway, heave, roll, pitch and yaw?<br />

Often they are surge positive forward, sway positive to port, heave positive up, but some authors use heave positive<br />

downwards. Roll, pitch and yaw are usually positive when clockwise about the positive surge, sway and heave<br />

directions.<br />

Most data sources use right-handed axes, but not all. <strong>OrcaFlex</strong> allows complete generality in its data input, but you<br />

must find out how your data are defined.<br />

To what phase time origin are the phases relative?<br />

<strong>OrcaFlex</strong> allows you to specify that the phases to be relative to the time the wave crest, trough, zero up-crossing or<br />

zero down-crossing passes the phase origin. The passage of the crest past the RAO origin is the most common phase<br />

time origin, but you need to check and tell <strong>OrcaFlex</strong> – see note on phase leads/lags below.<br />

Are the phases leads or lags?<br />

Phase conventions are sometimes documented by giving the formula used to represent the harmonic motion.<br />

Commonly used ones are:<br />

� A.cos(ωt - P) or A.cos(P - ωt) imply that phase P is a lag.<br />

� cos(ωt + P') implies that phase P' is a lead.<br />

Using sin rather than cos in the above formulae has no effect on whether the phases are leads or lags.


System Modelling: Data and Results, Vessels<br />

Checking RAOs<br />

286<br />

w<br />

The Check RAOs button on the vessel types form allows a visual check on the RAO data for either displacement<br />

RAOs or wave load RAOs. For a given draught and wave direction, it displays graphs (one for each vessel degree of<br />

freedom) showing how the RAO and phase vary with wave period.<br />

There are 3 types of graph available:<br />

� Complex Values<br />

� Amplitude<br />

� Phase<br />

Amplitude and Phase Graphs<br />

These graphs provide a straightforward graphical representation of the RAO data as input on the Vessel Types data<br />

form. The amplitude or phase is plotted on the Y axis of the graph. For the X axis you have the choice of plotting<br />

period, frequency in rad/s or frequency in Hz.<br />

Complex Value Graphs<br />

The graphs initially show the RAOs for the currently selected draught and direction. You can switch to other<br />

draughts and directions, either by using the navigation buttons at the bottom of the form to step through the data,<br />

else or by selecting from the drop-down lists. You can change the scale of the graphs (double click on the graph and<br />

change the ranges of the axes). This is useful if the curve does not initially fit on the graph.<br />

0<br />

R<br />

0<br />

�<br />

Figure: Complex Value RAO Graph for Amplitude (R) and phase (φ)<br />

The graph depicts the RAO data specified by the user for the specified RAO origin. The graph has two parts:<br />

� A curve showing the RAO data specified by the user as a series of points joined in order of increasing period.<br />

The curve starts from the 'short' wave response, which should have zero or very small amplitude, so the curve<br />

should start from near the origin. Moving along the curve away from the origin corresponds to the wave period<br />

increasing from zero. For surge, sway and heave, the other end of the curve is the 'long' wave RAO data specified<br />

for period 'Infinity'. For roll, pitch and yaw, the RAO data for period 'Infinity' cannot (for technical reasons) be<br />

included in the curve, so instead the other end of the curve is the RAO data for the largest finite period specified.<br />

� A solid circle representing the expected long wave response limit for a freely floating vessel. See RAO Quality<br />

Checks for details of the expected long wave RAOs.<br />

Warning: The expected long wave response limits calculated by <strong>OrcaFlex</strong> only apply to free-floating vessels.<br />

Also, the yaw response limit only applies to slender vessels (i.e. vessels that are long in the xdirection<br />

and narrow in the y-direction).<br />

The purpose of the graph is help you check your RAO data – the curve should normally be reasonably smooth and<br />

tend towards the expected limit shown by the solid circle. See How to Check RAO Data for details.<br />

The graph represents RAOs as points in polar coordinates (R,φ), where:


w<br />

287<br />

System Modelling: Data and Results, Vessels<br />

� R is the non-dimensional amplitude. For surge, sway and heave R is the vessel motion amplitude divided by the<br />

wave amplitude. And for roll, pitch and yaw, R is the rotational response normalised with respect to maximum<br />

wave slope – i.e. it is vessel rotation amplitude divided by the maximum wave slope.<br />

� φ is the phase lag, from the time the wave crest passes the user-specified phase origin until the maximum<br />

positive motion occurs.<br />

Note: Positive here means as in the <strong>OrcaFlex</strong> conventions (not necessarily the same as the vessel type RAO<br />

conventions). So positive surge is forward, positive sway is to port, positive heave is up, positive roll<br />

is starboard down, positive pitch is bow down and positive yaw is bow to port.<br />

This polar coordinates way of representing RAOs is better than drawing separate graphs of amplitude and phase,<br />

since it presents all the information on a single graph and also the resulting curves are smooth, whereas phase<br />

graphs frequently show phase jumps.<br />

How to Check RAOs<br />

For each draught and wave direction, you should check that the curves on the Complex Value RAO graphs are<br />

reasonably smooth and approach the circle, which is the expected long-wave limit for a free-floating vessel. Note<br />

that:<br />

� The curve may not approach the expected long wave limit if the RAO data does not include values for any long<br />

waves. Wave periods over 20 seconds for ships, or 30 seconds for semisubmersibles, are considered to be<br />

sufficiently long for this purpose.<br />

� The curve might also not approach the circle if the vessel is not free-floating. For example the heave<br />

displacement RAO amplitude of a tension leg platform will not approach the usual long wave limit of 1.<br />

� The circle on the yaw graph only applies to slender vessels (i.e. long in the x-direction and narrow in the ydirection).<br />

� Smooth graphs can only be expected if the data includes RAOs for reasonably closely spaced periods.<br />

As examples, consider the following three example graphs:


System Modelling: Data and Results, Vessels<br />

1.5<br />

1<br />

0.5<br />

0<br />

-0.5<br />

-1<br />

-1.5<br />

-1.5<br />

1.5<br />

1<br />

0.5<br />

0<br />

-0.5<br />

-1<br />

-1.5<br />

-1.5<br />

-1<br />

-1<br />

-0.5<br />

-0.5<br />

0<br />

0<br />

0.5<br />

0.5<br />

1<br />

1<br />

288<br />

1.5<br />

1.5<br />

w


w<br />

1.5<br />

1<br />

0.5<br />

0<br />

-0.5<br />

-1<br />

-1.5<br />

-1.5<br />

-1<br />

-0.5<br />

0<br />

0.5<br />

1<br />

289<br />

1.5<br />

System Modelling: Data and Results, Vessels<br />

The first graph shows a typical, well-behaved set of displacement RAO data – the curve is smooth and the long-wave<br />

limit agrees with the expected value marked by the circle.<br />

For a freely floating vessel, the second graph is clearly in error, since the curve does not lead to the expected long<br />

wave limit. The RAO data for long waves (represented by the end of the curve) has the correct amplitude, but its<br />

phase differs by 180° from the expected long-wave value (represented by the circle). There are two likely causes – it<br />

may be that the phase lead/lag convention data has been set wrongly (this would give a phase angle sign error) or<br />

else that the convention data for the direction of positive motion has been set wrongly (this would give a phase<br />

error of 180°).<br />

The curve on the third graph approaches the expected long wave limit, but then suddenly goes to zero. This suggests<br />

that the RAO data for period 'Infinity' has not been set correctly and is zero.<br />

Common Problems<br />

It is not unusual to be given RAO data for a vessel but not be given all the conventions that apply to the data. Below<br />

are some common problems and their symptoms. But beware that several common problems have very similar<br />

symptoms, so it is not possible to be sure what the problem is unless you are sure about most of the data's<br />

conventions and only unsure about one. It is therefore important to get as much information as possible from the<br />

original RAO data supplier.<br />

� The quoted wave direction might be measured clockwise (viewed from above) from the x-direction, rather than<br />

anticlockwise (which is the <strong>OrcaFlex</strong> convention). The effect would be a 180° shift in the sway, roll and yaw<br />

phases.<br />

� The quoted wave direction may be the direction the wave is coming from, rather than the direction it is<br />

progressing towards (which is the <strong>OrcaFlex</strong> convention). The effect would be to negate all the phase values.<br />

� The phases may be leads instead of lags (<strong>OrcaFlex</strong> will accept either – see RAO Phase Conventions). The effect of<br />

an error here would be to negate all the phase values.<br />

Importing QTFs<br />

Wave drift QTF data may be imported using the Import QTFs button on the vessel types form. Newman QTF data<br />

may be imported directly from AQWA or WAMIT output files, from NMIWAVE output files, and, with the addition of<br />

some markup text, from Moses and Hydrostar/ARIANE output files. The form of this markup also allows for import<br />

from other text files. Full QTF data may only at present be imported from AQWA or WAMIT files.<br />

Import QTFs from specific program output<br />

<strong>OrcaFlex</strong> can import QTFs directly from AQWA and WAMIT output files, as described under Importing<br />

Hydrodynamic Data. All existing QTF data for the selected draught will be overwritten.


System Modelling: Data and Results, Vessels<br />

NMIWAVE files<br />

290<br />

w<br />

NMIWAVE text output files may be imported with the addition of a single line containing the string NMIWAVE Wave<br />

Drift at the start of the file, as in this example<br />

NMIWAVE uses the ITTC conventions, which are surge +ve forward, sway +ve to starboard, heave +ve down, roll<br />

+ve starboard down, pitch +ve bow up, yaw +ve bow to starboard. As with AQWA and WAMIT, <strong>OrcaFlex</strong> recognizes<br />

the type of file and 'knows' what these conventions are, so you do not need to specify them explicitly in the file<br />

before import. The imported data is converted from these conventions to match the vessel type conventions.<br />

The wave heading convention used by NMIWAVE is that wave heading is measured +ve clockwise when viewed<br />

from above, and zero wave heading means a stern wave. This is the opposite sense to <strong>OrcaFlex</strong>, and is handled<br />

automatically on import by changing the sign of the wave headings when an NMIWAVE file is imported.<br />

Also, note that NMIWAVE QTFs are non-dimensional: <strong>OrcaFlex</strong> will re-dimensionalise them on import, in the same<br />

way as for WAMIT.<br />

Import QTFs from marked-up text files<br />

QTF data can be imported from generic text files using a similar format to that for RAOs. Only the direction<br />

conventions are required in this case:<br />

*** <strong>OrcaFlex</strong> Conventions Start ***<br />

SurgePositive = forward<br />

SwayPositive = port<br />

HeavePositive = up<br />

RollPositiveStarboard = down<br />

PitchPositiveBow = down<br />

YawPositiveBow = port<br />

*** <strong>OrcaFlex</strong> Conventions End ***<br />

Since QTFs contain no phase information, the conventions relating to phase have no relevance; and all QTFs are<br />

assumed to be given relative to waves of unit amplitude, so the RAOWaveUnit convention is implicitly set to be<br />

"amplitude".<br />

The units of the data contained in the file are specified in the same way:<br />

*** <strong>OrcaFlex</strong> Units Start ***<br />

LengthUnits = m<br />

ForceUnits = kN<br />

*** <strong>OrcaFlex</strong> Units End ***<br />

The QTF format differs from that for RAOs as follows:<br />

� The identifier line is <strong>OrcaFlex</strong> QTF Start rather than <strong>OrcaFlex</strong> Displacement RAO Start or <strong>OrcaFlex</strong> Load RAO<br />

Start.<br />

� The column headers are surge, sway, heave, roll, pitch and yaw instead of X, Y, Z, RX, RY and RZ respectively.<br />

� Phase data are not specified.<br />

Otherwise, the format follows that for importing RAOs. The QTF origin is not read in and should be set on the Vessel<br />

Type form.<br />

Moses output<br />

QTFs in all six degrees of freedom are included in this example of Moses output.<br />

Note: Moses reports encounter period or frequency, to account for the effect of the speed of the vessel on<br />

the apparent wave period or frequency. <strong>OrcaFlex</strong> requires the data at actual wave period or<br />

frequency, so if possible your vessel in your Moses model should not have any forward speed.<br />

Hydrostar/ARIANE output<br />

As is the case with RAOs, Hydrostar's output format 'pour ARIANE' is suitable, with the mark-up described above, for<br />

import into <strong>OrcaFlex</strong>. This example demonstrates the necessary mark-up and the setting of conventions and units<br />

for horizontal-plane QTFs (surge, sway and yaw). <strong>OrcaFlex</strong> will set the data for the degrees of freedom which are not<br />

imported (so heave, roll and pitch in this case) to zero. Data in this form are common for vessels with large water<br />

plane areas, such as barges, tankers, etc.


w<br />

Other output<br />

291<br />

System Modelling: Data and Results, Vessels<br />

Note: As with Moses, Hydrostar takes account of the effect of the speed of the vessel in determining the<br />

added mass and damping, and reports results at encounter period or frequency. Your vessel in your<br />

Hydrostar model should not have any forward speed.<br />

<strong>OrcaFlex</strong> can import data produced by other programs (or, more generally, text data obtained by any other means)<br />

so long as it is in the format illustrated by the examples above, ie a series of tables of data, one for each direction,<br />

arranged with rows representing wave period or frequency and columns for surge/sway/heave/roll/pitch/yaw<br />

dimensional QTF amplitudes. As in the Hydrostar/ARIANE example above, any missing columns will have their data<br />

set to zero.<br />

Importing Added Mass and Damping Data<br />

Added mass and damping matrices may be imported using the Import Matrices button on the vessel types form.<br />

Data may be imported directly from AQWA or WAMIT output files, and with the addition of some markup text from<br />

Moses, Hydrostar/ARIANE and Wadam output files. The form of this markup also allows for import of reasonablyformatted<br />

6x6 added mass and damping matrices from any generic text file.<br />

Direct import from specific program output<br />

<strong>OrcaFlex</strong> can import data directly from AQWA and WAMIT output files, as described under Importing<br />

Hydrodynamic Data. Note, however, that in this case the reference origin is not imported. All existing added mass<br />

and damping data for the selected draught will be overwritten.<br />

Import from marked-up text files<br />

With the addition of some tags indicating the start and end of the data, and others defining which vessel properties<br />

should receive the imported data, data may be imported from the plain ASCII text files which are written by a<br />

number of analysis programs in addition to AQWA and WAMIT. The form of these tags is given below for each such<br />

program. Common to each is a line of the form "Draught [DraughtName]" specifying the vessel type draught into<br />

which the data are to be imported. If DraughtName already exists, the existing added mass and damping data will be<br />

overwritten; if not, then it will be created and all the other data will be set to those of the <strong>OrcaFlex</strong> default vessel<br />

type.<br />

The conventions used in the text file can be specified in exactly the same way as for RAO and QTF import. Doing so<br />

allows the imported data to be converted to match the vessel type conventions. Note that, as for QTFs, only the<br />

direction conventions apply to the added mass and damping data and so only these conventions need to be<br />

specified. So a typical conventions block might look like this:<br />

*** <strong>OrcaFlex</strong> Conventions Start ***<br />

SurgePositive = forward<br />

SwayPositive = port<br />

HeavePositive = up<br />

RollPositiveStarboard = down<br />

PitchPositiveBow = down<br />

YawPositiveBow = port<br />

*** <strong>OrcaFlex</strong> Conventions End ***<br />

You can also specify scaling factors to allow for the different ways in which various programs scale their output.<br />

<strong>OrcaFlex</strong> requires unscaled, fully-dimensional values for added mass and damping matrices, so some data may need<br />

to be un-scaled or re-dimensionalised. You may also use these scaling factors to allow for differences in units<br />

systems – unlike RAOs, <strong>OrcaFlex</strong> does not read units definitions and convert them automatically for added mass and<br />

damping matrices. These scaling factors are described in the sections below.<br />

Moses output<br />

Added mass and damping may be output in two forms by Moses:<br />

(i) Full matrices<br />

Moses will optionally output the full 6x6 matrices to a PPO file. This is the preferred format for import into <strong>OrcaFlex</strong>.<br />

The required tags are "<strong>OrcaFlex</strong> Added Mass Matrix Start" (again, analogously for Damping), followed by a draught<br />

specifier and one of "WP x", "WFR x" or "WFH x", where x is the value of the period or frequency, at the beginning of<br />

each matrix, and the corresponding End tag immediately after each matrix. This sample demonstrates the use of<br />

these tags.


System Modelling: Data and Results, Vessels<br />

292<br />

w<br />

Moses presents added mass and damping values which are scaled by mass. Since <strong>OrcaFlex</strong> requires non-normalized<br />

data, the import process must account for this scaling factor. To do so, note that towards the beginning of the<br />

example linked above is a section of the form<br />

<strong>OrcaFlex</strong> Scaling Factor Start 1381.8 <strong>OrcaFlex</strong> Scaling Factor End<br />

The number 1381.8 here is the mass of the vessel, as specified in the standard output file. <strong>OrcaFlex</strong> will scale all the<br />

imported data by this value.<br />

(ii) Diagonal elements only<br />

The standard Moses output file may also contain tables of the diagonal elements (surge-surge, sway-sway, yaw-yaw<br />

etc terms only) of the added mass and damping matrices. <strong>OrcaFlex</strong> cannot however import these data directly, since<br />

the rotational components are presented as radii of gyration. If you wish to import these data, you will need first to<br />

convert the rotational values from radii of gyration to added inertia and rotational damping, according to the<br />

formulation used by Moses.<br />

Note: Moses reports encounter period or frequency, to account for the effect of the speed of the vessel on<br />

the apparent wave period or frequency. <strong>OrcaFlex</strong> requires the data at actual wave period or<br />

frequency, so if possible your vessel in your Moses model should not have any forward speed.<br />

Hydrostar/ARIANE output<br />

Full 6x6 added mass and damping matrices are output, without any normalising or scaling factors. Other than the<br />

lack of scaling factors, the tags required by <strong>OrcaFlex</strong> are the same as those for Moses 6x6 matrices: you will need<br />

Start and End tags surrounding each matrix and a "Draught" line, and a "WP x", "WFR x" or "WFH x" line, where x is<br />

the value of the period or frequency, at the beginning of each matrix. Note that <strong>OrcaFlex</strong> will allow, as necessary, for<br />

the row and column headings 1,2,…,6 if they are present. A short example of marked-up Hydrostar output is given.<br />

You should be aware that Hydrostar results may be given in either Hydrostar's own axis conventions or those of<br />

ARIANE, and that the two differ. The latter is usually indicated by the phrase 'pour ARIANE' in the file: the<br />

conventions in the example here are those for ARIANE.<br />

Note: As with Moses, Hydrostar takes account of the effect of the speed of the vessel in determining the<br />

added mass and damping, and reports results at encounter period or frequency. Your vessel in your<br />

Hydrostar model should not have any forward speed.<br />

WADAM output<br />

WADAM also outputs full 6x6 added mass and damping matrices, but these are non-dimensional. The tags required<br />

for each matrix are as for Hydrostar/ARIANE as above; in addition, the non-dimensionalising factors must be<br />

specified in the file. Since the data are fully non-dimensional, the scaling is rather more complex than Moses' scaling<br />

by mass alone: the factors differ between the added mass and damping matrices, and each matrix requires a<br />

different factor for each constituent 3x3 sub-matrix (since their units differ). Full details of the calculation of these<br />

factors are given in the WADAM output file itself (search for the string 'non-dimensional'); see this edited example,<br />

which shows the relevant text and the corresponding markup text required by <strong>OrcaFlex</strong>.<br />

Output from other programs<br />

<strong>OrcaFlex</strong> should be able to import added mass and damping data from other programs, not listed above, so long as<br />

they are presented in text files as 6x6 matrices. As in the above examples, you will need to: add the appropriate text<br />

strings in the file to delimit the data, nominate the draught into which the data are to be imported, and indicate the<br />

wave period or frequency for each matrix. If the matrices are non-dimensional, either partially or fully, you will need<br />

to enter the scaling factors into the file. Note that these factors may be entered multiple times and will be updated<br />

each time – this may be useful if, say, they depend on frequency.<br />

6.7.4 Modelling Vessel Slow Drift<br />

When a vessel is exposed to waves it experiences wave loads that can be split into first order and second order<br />

terms. The first order terms generate motion at wave frequency and this is modelled in <strong>OrcaFlex</strong> using RAOs to<br />

specify either the displacement or the load. The second order terms are much smaller but they include loads with a<br />

much lower frequency (see the Wave Drift theory section for more details). These low frequency terms are called<br />

the wave drift loads and they can cause significant slow drift motions of the vessel if their frequencies are close to a<br />

natural frequency of the vessel.


w<br />

293<br />

System Modelling: Data and Results, Vessels<br />

One common situation where the wave drift loads can matter is with a moored vessel. The vessel's natural<br />

frequencies in surge, sway and yaw are typically quite low and so the low frequency wave drift loads can generate<br />

large slow drift excursions in these directions.<br />

Options for Modelling Slow Drift<br />

In <strong>OrcaFlex</strong> you can model slow drift motion in broadly 2 ways. First, you can calculate the vessel slow drift motion<br />

outside <strong>OrcaFlex</strong> and then impose that motion on the vessel. This can either be done using time history or<br />

externally-calculated options for primary motion, or done using the time history or harmonic motion options for<br />

superimposed motion. Wave frequency motion can also then be superimposed on top of that slow drift motion, by<br />

using displacement RAOs or a time history superimposed motion.<br />

Alternatively <strong>OrcaFlex</strong> can calculate and apply the slow drift motion for you. To do this you need to do the following:<br />

� On the vessel form, select 6 DOF for the static analysis. The <strong>OrcaFlex</strong> static analysis will then calculate the<br />

equilibrium position allowing for the mean wave drift load. And set the primary motion to Calculated (6 DOF).<br />

The <strong>OrcaFlex</strong> simulation will then calculate the vessel's resulting dynamic motion.<br />

� On the Structure page on the vessel type form, specify the vessel centre of gravity, mass and moments of inertia<br />

data for the appropriate draught. And on the Stiffness, Added Mass and Damping page, specify the stiffness and<br />

hydrostatic equilibrium position, added mass and damping matrices and the reference origin to which they<br />

apply. And include Added Mass and Damping in the vessel's Included Effects. (The hydrostatic stiffness is<br />

always included.)<br />

� Specify QTF data on the wave drift page of the vessel type form (the wave drift loads are calculated based on<br />

this data), and include Wave Drift Load (2 nd Order) in the vessel's Included Effects. This tells <strong>OrcaFlex</strong> to apply<br />

the mean wave drift load to the vessel during the static analysis, and then in the dynamic analysis to apply the<br />

mean and time varying wave drift load.<br />

� Optionally, include wave drift damping in the vessel's Included Effects. <strong>OrcaFlex</strong> will then include the damping<br />

effect due to the way the wave drift load varies with vessel low frequency velocity and with current.<br />

� Optionally, include Manoeuvring Load in the vessel's Included Effects. <strong>OrcaFlex</strong> will then include the low<br />

frequency 2 nd order potential theory manoeuvring load in the analysis.<br />

� Optionally (usually needed), include Current Load in the vessel's Included Effects and specify appropriate data<br />

for current load and yaw rate drag.<br />

� Optionally, include wind load on vessels (on Wind page of the environment data form) and include Wind Load<br />

in this vessel's Included Effects. And then specify the wind data on the environment data form, and wind load<br />

data on the vessel type data form.<br />

� Optionally (e.g. to model thruster loads), include Applied Load in the vessel's Included Effects and specify<br />

appropriate applied load data.<br />

� <strong>OrcaFlex</strong> will automatically include loads from any lines or other objects that are connected to the vessel.<br />

� If you have wave load RAO data available, then we recommend that you specify that data in the vessel type's<br />

Load RAOs and include Wave Load (1 st order) in the vessel's Included Effects. Then set the vessel<br />

superimposed motion to None, so that the first order vessel motion is fully calculated and takes into account<br />

coupling effects between the wave frequency and low frequency response.<br />

� If you do not have the wave load RAO data, then you should not include Wave Load (1 st order) in the vessel's<br />

Included Effects, and you can instead instead model the wave frequency response using displacement RAOs, by<br />

setting the vessel's superimposed motion to Displacement RAOs + Harmonic Motion but with no harmonic<br />

motion specified (on the Superimposed Motion page of the vessel data form). This will superimpose the wavefrequency<br />

motion, defined by the displacement RAOs, on top of the calculated low-frequency primary motion.<br />

This method will not include coupling effects between the two parts of the motion. Note also that this<br />

combination of calculated and superimposed motion is not compatible with implicit integration: in this case you<br />

will have to use explicit integration.<br />

Finally, you should set Primary Motion is Treated As to either Low frequency or to Both low and wave frequency.<br />

The former is appropriate if you are using superimposed displacement RAOs to model the wave frequency motion.<br />

But if all the motion is being modelled as primary motion, e.g. using wave load RAOs as the excitation for this<br />

motion, then you should treat the primary motion as Both low and wave frequency and specify a suitable Dividing<br />

Period for <strong>OrcaFlex</strong> to use to filter the primary motion into its low and wave frequency parts. See Vessel Modelling<br />

Overview for further information.


System Modelling: Data and Results, Vessels<br />

Damping Effects on Vessel Slow Drift<br />

294<br />

w<br />

Drag and damping loads have an important effect on vessel slow drift motions. The following discussion documents<br />

the various damping effects and how they are modelled in <strong>OrcaFlex</strong>. See CMPT (1998) section 3.12.<br />

� Hydrodynamic drag and skin friction on the vessel hull. This is modelled in <strong>OrcaFlex</strong> using a combination of<br />

the OCIMF approach and a yaw drag moment proportional to (low-frequency yaw velocity) 2 . See the Current<br />

Load data on the vessel type data form. For details of the theory see Vessel Theory: Current and Wind Loads.<br />

Note that <strong>OrcaFlex</strong> does not yet have the dependency of yaw drag on sway velocity proposed by Wichers, 1979.<br />

If wanted, wave frequency roll damping (both linear and quadratic) can be included in the Other damping data.<br />

� Wind drag on the vessel hull. This is the aerodynamic drag due to wind and any vessel velocity. It is modelled<br />

in <strong>OrcaFlex</strong> based on the OCIMF approach. See the Wind Load data on the vessel type data form. For details of<br />

the theory see Vessel Theory: Current and Wind Loads.<br />

� Hydrodynamic drag on the risers/moorings. This is modelled in <strong>OrcaFlex</strong> by the drag force part of the<br />

Morison force on the lines that model the risers/moorings.<br />

� Wave radiation damping. This is not usually very significant at low frequencies, because the asymptotic limit<br />

of the wave frequency damping is zero. It can be modelled in <strong>OrcaFlex</strong> using either constant or frequencydependent<br />

damping on the vessel type form.<br />

� Wave drift damping. This arises because the wave drift loads vary with vessel velocity. It can be modelled in<br />

<strong>OrcaFlex</strong> by simply including it in the vessel's Included Effects. There are no further data required. See Wave<br />

Drift Damping Theory for further details.<br />

� Manoeuvring load. In addition to the usual contribution of the product of added mass and acceleration, the<br />

vessel velocity gives rise to an additional 2 nd order low frequency manoeuvring load. <strong>OrcaFlex</strong> gives you the<br />

option to include this additional load, which can be significant.<br />

� Material damping in the risers/moorings. This is the structural damping in the material of the risers and<br />

mooring lines. <strong>OrcaFlex</strong> provides Rayleigh Damping to model material damping in lines when the implicit<br />

integration scheme is in use. Should you be using the explicit integration scheme, material damping may be<br />

modelled using the line target damping values. However Triantafyllou et al (1994) concluded that material<br />

damping effects are negligible.<br />

� Seabed soil friction on the risers/moorings. This arises from the frictional force acting on the part of a<br />

mooring/riser that is lifting off and touching down on the seabed. It is modelled in <strong>OrcaFlex</strong> by the friction<br />

between the seabed and the line used to model the mooring/riser. However Triantafyllou et al (1994)<br />

concluded that its effect is negligible.<br />

6.7.5 Vessel Response Reports<br />

The vessel response window can be opened using the Results Menu or using the Report Vessel Response button on<br />

the vessel data form. It offers two pages: Displacement Response, and Impulse Response, Added Mass and Damping.<br />

Generation of vessel response reports can be automated through the batch script, or from the <strong>OrcaFlex</strong><br />

programming interface.<br />

Note: The reported RAOs are first order RAOs calculated using small-angle theory to transform the RAOs<br />

from the vessel RAO origin to the points specified on the Vessel Response form. Theses results are<br />

accurate for small-angle rotational motion, but if the vessel undergoes large-angle rotational<br />

motion it will exhibit a non-linear higher-order response that can only be approximated by RAOs.<br />

More accurate results can be obtained in this case by running a simulation, which uses large angle<br />

theory, and this can often be done very quickly by removing from the model all other objects that<br />

do not affect the motion of the vessel.<br />

Displacement Response<br />

The Displacement Response page gives access to two spreadsheet reports, one giving displacement RAOs and one<br />

giving spectral values, of the vessel's response to waves, based on its vessel type's displacement RAOs. It can be<br />

accessed from the Results menu or from the Vessel data form.<br />

Directions and Output Points<br />

You specify one or more vessel-relative wave directions, and one or more points on the vessel, for which the RAOs<br />

and spectral response will be reported.


w<br />

295<br />

System Modelling: Data and Results, Vessels<br />

If you specify a direction of '~' then the direction of the wave relative to the vessel is used. If there is more than one<br />

wave train then the direction of the first wave train is used.<br />

The output points are specified by giving their coordinates relative to vessel axes.<br />

Report RAOs<br />

The RAO report gives a separate worksheet for each specified direction, containing the RAOs for each of the<br />

specified output points, derived from the displacement RAOs of its vessel type.<br />

The reported RAOs allow for the following effects:<br />

� They allow for the position of the output point relative to the RAO origin to which the vessel type RAOs apply.<br />

� They give the RAOs for the specified wave direction, relative to the vessel. If this is not one of the directions for<br />

which RAOs are specified, then the RAOs are derived by interpolation on direction.<br />

� They allow for Froude scaling if there is a difference between the vessel type length and the vessel length. This<br />

affects the periods at which the RAOs are reported.<br />

RAOs are given for the position, velocity and acceleration of the output points, for all 6 degrees of freedom and for Z<br />

Above Wave.<br />

The RAO report covers the wave periods specified on the vessel type data form, plus (if appropriate) the regular<br />

wave period specified on the environment data form.<br />

Phase Origin<br />

You can choose the Phase Origin to use for reporting phases, the options being:<br />

� RAO Phase Origin. The phases will then be reported relative to the time that the given point on the wave (crest<br />

/ trough / zero up- or down-crossing, as specified in the vessel type RAO conventions) passes the RAO phase<br />

origin specified on the vessel type form.<br />

� Each Point. The phases will then be reported relative to the time the given point on the wave (crest / trough /<br />

zero up- or down-crossing, as specified in the vessel type RAO conventions) passes that particular output point.<br />

In this case the necessary phase shift will be calculated using deep water wavelengths.<br />

The translational RAOs depend on the position of the output point. The rotational RAO amplitudes do not depend on<br />

the position of the output point, since the roll, pitch and yaw of a vessel are the same everywhere on it. The<br />

rotational RAO phases depend on the position of the output point only if you specify the Phase Origin to be Each<br />

Point.<br />

Conventions<br />

You can choose for the RAOs to be reported either using the same RAO conventions as specified for this vessel's type<br />

or using <strong>Orcina</strong> standard conventions.<br />

Z Above Wave<br />

Z Above Wave reports the amplitude of the heave motion of the vessel relative to the water surface. This can be<br />

useful when evaluating whether an object at some point on the vessel will contact the water surface and if so with<br />

what relative velocity.<br />

Warning: Z Above Wave does not take account of wave surface disturbance due to the presence of the vessel.<br />

Report Spectral Response<br />

The spectral response report contains a separate worksheet for each specified direction and each random wave<br />

train specified on the Environment data form. The worksheet contains tables of spectral values for position, velocity<br />

and acceleration, for all 6 degrees of freedom and for Z Above Wave. Separate tables are given for each of the<br />

specified output points.<br />

Notes: The spectral response report is not available if no random wave trains are specified.<br />

It is also not available if (for any of the specified directions and for any degree of freedom) the<br />

vessel has a non-zero RAO amplitude for the zero wave period limit. This is because some of the<br />

spectral integrals do not converge in such cases. Such RAO data is not realistic, since no vessel can<br />

respond to infinitely high frequency waves.<br />

The following spectral values are reported.


System Modelling: Data and Results, Vessels<br />

� The significant amplitude.<br />

� The most probable maximum amplitude for a period of the specified Storm Duration.<br />

� The average period of the response. This is the mean period between zero up-crossings.<br />

296<br />

w<br />

Note: The significant and maximum values are reported as single amplitudes, i.e. the motion is +/- the<br />

value reported.<br />

Warnings: Wave directional spreading spectra are not taken into account. The calculation assumes that all<br />

the spectral energy is in the specified direction for each wavetrain.<br />

The standard formulae used to calculate the spectral values (see below) are based on the further<br />

assumptions that the spectrum is narrow-banded and Gaussian, and that the extremes are<br />

Rayleigh distributed. They are also based purely on small amplitude linear theory.<br />

The storm duration should be short-term, ie of the order of hours rather than days or years, since<br />

the sea-state, as represented by (Hs,Tz), is assumed to remain constant over this duration.<br />

These spectral values are calculated as follows:<br />

The spectrum of the wave train is combined with the vessel response specified by its RAOs, to obtain the response<br />

spectrum for each degree of freedom. The zeroth and second spectral moments, m0 and m2, of the response<br />

spectrum are then calculated. The spectral values are then given by:<br />

Significant Amplitude = As = 2m0 ½<br />

Average Period = Tave = (m0/m2) ½<br />

Max Amplitude = As(½ln(D*60*60/Tave)) ½<br />

where As is the significant amplitude, D is the specified Duration (in hours) and Tave is the average period (in<br />

seconds). See, for example, Faltinsen, pages 24-27, or Ochi, pages 151-152.<br />

Notes: For Z Above Wave, no spectral values can be reported for acceleration and only the significant<br />

amplitude can be reported for velocity. This is because the RAO of Z Above Wave does not decay to<br />

zero as wave period goes to zero, so some of the integrals for the spectral moments do not<br />

converge. For velocity of Z Above Wave you could perhaps estimate the expected maximum<br />

amplitude by assuming that the ratio of maximum amplitude to significant amplitude is roughly<br />

the same for velocity as for position.<br />

All these reports are based on the vessel type displacement RAOs. Any wave load RAO data are<br />

ignored.<br />

Impulse Response, Added Mass and Damping<br />

The Impulse Response, Added Mass and Damping page has only one button: Show Graphs. This button is enabled<br />

only if the Vessel Type and Draught used by the vessel have Added Mass and Damping Method set to Frequency-<br />

Dependent. Clicking the button will open a form showing:<br />

� A graph of the Impulse Response Function (IRF) for the vessel.<br />

� Graphs of the original frequency-dependent added mass or damping data.<br />

The scale of the time lag axis for the IRF is determined by the cutoff time chosen. This graph may be useful in judging<br />

what value should be selected for this cutoff time: a shorter cutoff time will allow for faster calculation, but too short<br />

may mean significant IRF values are discarded and accuracy lost as a result.<br />

The graph of Added Mass against frequency has superimposed on it a horizontal intercept representing the<br />

calculated value of the "infinite-frequency" added mass. So long as the data are given to sufficiently high frequency,<br />

this is an indicator of the consistency of the added mass and damping data.<br />

Note that the values of added mass and damping shown may have been Froude scaled according to Vessel length.<br />

6.7.6 Vessel Results<br />

For details on how to select results variables see Selecting Variables.<br />

Note that in the names of the vessel results we use the convention that lower case letters x,y,z indicate components<br />

in the vessel axes directions, whereas upper case letters X,Y,Z indicate components in the global axes directions.


w<br />

Position and Motion Results<br />

297<br />

System Modelling: Data and Results, Vessels<br />

All the position and motion results (see the headings below) report the motion at a user-specified point P on the<br />

vessel whose Position is specified on the results form. The position of P is specified by giving its vessel local axes<br />

coordinates relative to the vessel origin V, so if Position = (0,0,0) then the results reported are for the vessel origin.<br />

Vessel motion can include both primary and superimposed motions. The position and orientation results are<br />

available for each of these contributions separately, as well as for the total combined vessel motion.<br />

� Primary X, Y, Z and Primary Rotation 1, 2, 3 report the primary motion of the point P, relative to global axes.<br />

� Surge, Sway, Heave, Roll, Pitch, Yaw report the superimposed motion of the point P, relative to the vessel<br />

primary motion position and orientation. These results report the components in the directions of the vessel<br />

axes after only the primary motion has been applied.<br />

� X, Y, Z, Rotation 1, Rotation 2, Rotation 3 report the total combined motion of the point P, due to both primary<br />

and superimposed motion, relative to global axes.<br />

Additionally, if the vessel primary motion is treated as being both low frequency and wave frequency then<br />

Orcaflex also makes available the separate low frequency (LF) and wave frequency (WF) parts of the primary<br />

motion:<br />

� Primary LF X, Y, Z and Primary LF Rotation 1, 2, 3 report the low frequency part of the primary motion of the<br />

point P, relative to global axes.<br />

� Primary WF Surge, Sway, Heave, Roll, Pitch, Yaw report the wave frequency part of the primary motion of the<br />

point P, relative to its low frequency position and orientation. These results report the components in the<br />

directions of the vessel axes after only the low frequency part of the primary motion has been applied.<br />

The velocity, acceleration and other results are only available for the total combined motion of the point P. The<br />

velocity and acceleration results are obtained from logged values of the velocity and acceleration of the vessel. So,<br />

unlike line velocity results, the vessel velocity and acceleration results do not have possible inaccuracy due to<br />

numerical differentiation of logged position values.<br />

Total Position and Motion Results<br />

X, Y, Z, Rotation 1, Rotation 2, Rotation 3<br />

X, Y, Z are the global axes coordinates of the position of the user-specified point P on the vessel, due to the total<br />

combined primary and superimposed motion.<br />

Rotation 1, 2 and 3 define the orientation of the vessel, due to both primary and superimposed motion, relative to<br />

global axes. The 3 rotations (called Euler angles) are 3 successive rotations that take the global axes directions to the<br />

vessel axes directions. For details see Vessel Rotations.<br />

Rotation 2 is in the range -90° to +90°. Range jump suppression is applied to the Rotation 1 and Rotation 3 angles, so<br />

values outside the range -360° to +360° might be reported.<br />

Sea Surface Clearance<br />

The vertical clearance of the user-specified vessel point P above the instantaneous sea surface, due to the total<br />

combined primary and superimposed motion. A positive value indicates the point P is above the sea surface.<br />

Velocity, GX-Velocity, GY-Velocity, GZ-Velocity<br />

The magnitude and components, in the global axes directions, of the velocity of the vessel at the user-specified point<br />

P, due to the total combined primary and superimposed motion.<br />

Angular Velocity, x-Angular Velocity, y-Angular Velocity, z-Angular Velocity<br />

The magnitude and components, in vessel axes directions, of the angular velocity of the vessel, due to the total<br />

combined primary and superimposed motion.<br />

Acceleration, GX-Acceleration, GY-Acceleration, GZ-Acceleration<br />

The magnitude and components, in the global axes directions, of the acceleration of the user-specified point P on the<br />

vessel, relative to earth. The acceleration vector reported, a, is the acceleration of the point P, relative to earth, due<br />

to the total combined primary and superimposed motion of the vessel.


System Modelling: Data and Results, Vessels<br />

Acceleration rel. g, x-Acceleration rel. g, y-Acceleration rel. g, z-Acceleration rel. g<br />

298<br />

w<br />

The magnitude and components, in vessel axes directions, of the acceleration vector, a, of the user-specified point P<br />

on the vessel, relative to the vertically downwards acceleration due to gravity, g.<br />

The acceleration vector, a, is the acceleration of the point P due to the combination of both primary and<br />

superimposed motion of the vessel. These results report the acceleration relative to the (downwards) acceleration<br />

due to gravity, i.e. a - g.<br />

This relative acceleration can be thought of as the acceleration of the point P relative to the free-falling state. This is<br />

the acceleration that would be reported by an accelerometer attached at the point P (since an accelerometer reading<br />

of zero corresponds to free-falling), with its measurement directions aligned with the vessel local axes directions.<br />

Angular Acceleration, x-Angular Acceleration, y-Angular Acceleration, z-Angular Acceleration<br />

The magnitude and components, in vessel axes directions, of the angular acceleration of the vessel, due to the total<br />

combined primary and superimposed motion.<br />

Primary Motion Results<br />

Primary X, Primary Y, Primary Z, Primary Rotation 1, Primary Rotation 2 and Primary Rotation 3<br />

Primary X, Primary Y and Primary Z are the global axes coordinates of the user-specified point P on the vessel, due<br />

to the vessel primary motion only.<br />

Primary Rotation 1, Primary Rotation 2 and Primary Rotation 3 are the rotation angles of the orientation of the<br />

vessel relative to global axes, due to the vessel primary motion only. For details see Vessel Rotations.<br />

Primary Rotation 2 is in the range -90° to +90°. Range jump suppression is applied to Primary Rotation 1 and<br />

Primary Rotation 3, so values outside the range -360° to +360° might be reported.<br />

Primary LF X, Primary LF Y, Primary LF Z, Primary LF Rotation 1, Primary LF Rotation 2 and Primary LF Rotation 3<br />

These results are analogous to the Primary X, Y, Z and Primary Rotation 1, 2, 3 results described above, but for only<br />

the low frequency part of the vessel primary motion. They report the components in the global axes directions of<br />

the position of point P due to only the low frequency primary motion.<br />

Primary WF Surge, Primary WF Sway, Primary WF Heave, Primary WF Roll, Primary WF Pitch and Primary WF Yaw<br />

These results are the wave frequency part of the primary motion of the user-specified point P on the vessel. They<br />

therefore report the total primary motion position and orientation of the point P, relative to its position and<br />

orientation after only the low frequency part of the primary motion has been applied. And the values reported are<br />

the components in the directions of the vessel axes after only the low frequency part of the primary motion has been<br />

applied.<br />

Primary WF Pitch is in the range -90° to +90°. Range jump suppression is applied to Primary WF Roll and Primary<br />

WF Yaw, so values outside the range -360° to +360° might be reported.<br />

Sea Surface Z<br />

The global Z coordinate of the sea surface directly above or below the instantaneous Primary X, Y, Z position of the<br />

user-specified point P on the vessel. Note that the position at which this surface Z is reported only allows for the<br />

primary motion of the vessel, not the superimposed motion.<br />

Superimposed Motion Results<br />

Surge, Sway, Heave, Roll, Pitch and Yaw<br />

The position and orientation of the vessel due to superimposed motion, relative to the primary position of the<br />

vessel. These are typically the wave-generated part of the motion.<br />

Surge, Sway and Heave are the superimposed translational displacement components, in the primary vessel axes<br />

directions, of the user-specified point P on the vessel, relative to its primary motion position.<br />

Roll, Pitch and Yaw are the superimposed angles of rotation, relative to the primary vessel axes directions, due to<br />

the superimposed motion. For details see Vessel Rotations.<br />

Pitch is in the range -90° to +90°. Range jump suppression is applied to the Roll and Yaw angles, so values outside<br />

the range -360° to +360° might be reported.


w<br />

Force and Moment Results<br />

299<br />

System Modelling: Data and Results, Vessels<br />

Force and moment results are available for the Total Load on the vessel, and also separately for the various<br />

individual loads on the vessel that are in the vessel's Included Effects. If a load is not included then it will not be<br />

calculated and will not appear in the list of available results, and will not be included in the Total Load results.<br />

For each of these loads the results available are the magnitudes of the force and moment vectors, and the<br />

components (Lx,Ly,Lz) of those vectors in the vessel axes directions.<br />

In addition, if there are other objects connected to the vessel then the sum of the loads from all attached objects is<br />

also available. And the force and moment components of this Connections Load are available in both vessel axes<br />

directions (Lx,Ly,Lz) and global axes directions (GX,GY,GZ).<br />

In all cases the moments given are moments about the vessel origin.<br />

Total Load<br />

The magnitude and components (in vessel axes directions) of the sum of the constituent loads on the vessel which<br />

are included in the calculation.<br />

Connections Load<br />

The sum of the loads from all attached lines, links, winches, shapes, etc. These are available only for vessels with at<br />

least one such object attached.<br />

Note that the connections loads reported include the structural inertia loads and added inertia loads on the objects<br />

connected to the vessel, due to the translational and rotational acceleration of their points of connection.<br />

For convenience, the components of Connection Force and Moment are also available in Global axes directions<br />

(GX,GY,GZ). Details of the loads exerted by each individual object are available as results tables, and can also be<br />

found under the results for each object itself.<br />

Hydrostatic Stiffness Load<br />

The Hydrostatic stiffness force and moment on the vessel.<br />

Applied Load<br />

The sum of all the local and global applied loads. Available only if Applied Loads is in the vessel's Included Effects.<br />

Wave Load (1 st order)<br />

The force and moment on the vessel due to the wave load RAOs. Available only if Wave Load (1 st Order) is in the<br />

vessel's Included Effects.<br />

Wave Drift Load (2 nd order)<br />

The wave drift force and moment exerted on the vessel. These results are available only if Wave Drift Load (2 nd<br />

order) is in the vessel's Included Effects. If Wave Drift Damping is also included, then its effect will be included in<br />

this Wave Drift Load (2 nd order) result.<br />

Sum Frequency Load (2 nd order)<br />

The sum frequency wave force and moment exerted on the vessel. These results are available only if Sum<br />

Frequency Load (2 nd order) is in the vessel's Included Effects.<br />

Note: The first order wave RAO load, second order wave drift load and sum frequency load are calculated<br />

and applied with respect to primary heading axes, but these load results are reported with respect<br />

to vessel axes. In most cases there will be little difference between the two frames of reference, but<br />

large values of Primary Rotations 1&2 may have a significant effect on these results.<br />

Added Mass and Damping Load<br />

The sum of the forces and moments on the vessel due to Added Mass and Damping. Available only if Added Mass<br />

and Damping is in the vessel's Included Effects.<br />

Manoeuvring Load<br />

The Manoeuvring Load on the vessel. Available only if Manoeuvring Load is in the vessel's Included Effects.


System Modelling: Data and Results, Lines<br />

Other Damping Load<br />

300<br />

w<br />

The force and moment due to the specified Other Damping on the vessel. Available only if Other Damping is in the<br />

vessel's Included Effects.<br />

Current Load<br />

The current drag force and moment on the vessel, plus any load from low frequency yaw rate drag. Available only if<br />

Current Load is in the vessel's Included Effects.<br />

Wind Load<br />

The wind drag force and moment on the vessel. Available only if Wind Load is in the vessel's Included Effects and<br />

Include Wind Loads on Vessels is checked on the Wind data page of the Environment data form.<br />

Multiple Static Results<br />

For multiple statics calculations the results variables available are as follows. The loads reported are the total loads,<br />

including those from current, wind, applied loads and attached lines and other objects.<br />

Restoring Force<br />

The magnitude of the horizontal component of the total force applied to the vessel. Note that this force is not<br />

necessarily in the offset direction.<br />

Vertical Force<br />

The vertically downwards component of the total force applied to the vessel.<br />

GZ-Moment<br />

The total moment, about the vertical, applied to the vessel.<br />

Worst Tension<br />

The largest tension in any segment of any Line connected to the Vessel.<br />

6.8 LINES<br />

Lines are flexible linear elements used to model cables, hoses, chains or other similar items. Lines are represented in<br />

<strong>OrcaFlex</strong> using a lumped mass model. That is, the line is modelled as a series of lumps of mass joined together by<br />

massless springs, rather like beads on a necklace. The lumps of mass are called nodes and the springs joining them<br />

are called segments. Each segment represents a short piece of the line, whose properties (mass, buoyancy, drag<br />

etc.) have been lumped, for modelling purposes, at the nodes at its ends. See the figure below, which shows an<br />

example line spanning from a Vessel to a Buoy.


w<br />

V<br />

z<br />

y<br />

End positions and no-moment directions are defined<br />

relative to the objects to which the ends are connected<br />

and move with those objects.<br />

x<br />

End A<br />

section 1<br />

(3 segments)<br />

section 2<br />

(7 segments)<br />

Figure: Line Model<br />

Clump<br />

301<br />

End B<br />

System Modelling: Data and Results, Lines<br />

z<br />

B<br />

y<br />

x<br />

section 3<br />

(9 segments)<br />

The properties of a Line are specified by dividing it up into a number of consecutive sections that are chosen by the<br />

user. For each section you must define its length, the Line Type of which it is made and the number of segments into<br />

which it should be divided for modelling purposes. A Line Type is simply a set of properties (for example the<br />

diameter, mass per unit length and bend stiffness) given a name so that they can be called by that name. The Line<br />

Types are defined separately, on the Line Types data form. This allows the same set of line properties to be used for<br />

a number of different sections of the line, or for different lines. There is also a Line Type Wizard tool that helps you<br />

set up Line Types representing common structures like chains, ropes, etc.<br />

In addition, a number of attachments may be specified, to represent items that are connected to the Line. For<br />

example, attachments may be used to model clump weights, drag chains or buoyancy bags attached to the line. Two<br />

types of attachment are available – clumps (buoyancy or heavy) and drag chains.


System Modelling: Data and Results, Lines<br />

302<br />

w<br />

Each attachment attached to the Line is specified by giving the Attachment Type and the arc length, measured from<br />

End A, at which it should be attached. The attachment is then attached to the nearest node to that arc length.<br />

Attachment Types are similar to Line Types – they are simply named sets of attachment properties. The properties<br />

themselves are then given separately, on the Attachment Types data form. This allows the same set of attachment<br />

properties to be used for a number of different attachments.<br />

The two ends of a Line are referred to as End A and End B and each end can be Free, Fixed, Anchored or else<br />

connected to a Vessel or Buoy. The two ends of a line are treated in essentially the same way, but some aspects of<br />

the line are dependent on which end is which. In particular the numbering of parts of a Line is always done starting<br />

at End A.<br />

6.8.1 Line Data<br />

For every line in the system there is a data form defining its structure and interconnection. It is on these data forms<br />

that the system is built up by connecting lines between the objects that have been defined.<br />

Name<br />

Used to refer to the Line.<br />

Include Torsion<br />

Torsional effects can be included or ignored, for each line in the model. If torsion is included then the line type<br />

torsional properties must be specified. See Torsional Stiffness.<br />

To see the line orientation visually on the 3D views, select Draw Node Axes on the View menu. <strong>OrcaFlex</strong> then draws<br />

the node axes Nxyz at each node, and these axes allow you to see how the line is behaving torsionally.<br />

Top End<br />

Notes: The node axes are drawn using the node pen, specified on the line data form.<br />

If torsion is included for a line, you must specify the torsional orientation at each end of the line.<br />

This is done by setting the Gamma angle of the end connections on the line data form. The Gamma<br />

angle determines the torsional position of the line end – for details see Line End Orientation. To<br />

check visually that you have the orientation you expect, select Draw Node Axes on the View menu.<br />

If torsion is included for a line, the static analysis should also include the effects of torsion –<br />

otherwise the simulation will start from a position that is not in torsional equilibrium and an<br />

unstable simulation may result. We recommend that the Full Statics option is selected because this<br />

is the only statics option in <strong>OrcaFlex</strong> that includes the effects of torsion.<br />

This data item is used to give <strong>OrcaFlex</strong> information about the sense of the Line. Various calculations performed by<br />

the program need to know which end of the line (End A or End B) is at the top, and which end is at the bottom. You<br />

specify which end is at the top, and the program assumes that the other end is at the bottom.<br />

Suppose you have a line with the top end connected to a vessel, and the bottom end anchored to the seabed. If you<br />

wish to measure arc length from the vessel then you should connect End A to the vessel, make End B anchored and<br />

set Top End to End A. On the other hand, if you wish to measure arc length from the seabed then you should connect<br />

End B to the vessel, make End A anchored and set Top End to End B.<br />

The setting of the Top and Bottom Ends is used by the program as follows:<br />

� The Lay Azimuth data defines a lay direction starting from the Bottom End and moving towards the Top End.<br />

� The Touchdown results point is determined by starting at the Top End and then moving towards the Bottom<br />

End until the first node in contact with the seabed is found.<br />

� The Contents Pressure Reference Z level can be set to '~' (indeed this is the default value) which <strong>OrcaFlex</strong><br />

interprets as the Z level of the Top End in the reset state.<br />

� The Line Setup Wizard uses the bottom end when calculating anchor positions and also for the layback<br />

calculation.<br />

If the Line is not in contact with the seabed then this data is somewhat arbitrary. You are free to make whatever<br />

choice suits your model, but remember that the contents pressure will be referenced from the Top End. If the entire<br />

Line is in contact with the seabed then again you are free to make whatever choice of Top and Bottom Ends suits<br />

your model.


w<br />

P-y Model<br />

303<br />

System Modelling: Data and Results, Lines<br />

Optionally specifies the P-y model used to define horizontal soil loads for a vertical line that extends beneath the<br />

seabed.<br />

Connections<br />

The line end connection data specifies whether the line ends are connected to other objects, the position, angle and<br />

stiffness of the connection, and whether the end is released during the simulation.<br />

You can view and edit an individual line's connection data on the line's data form. Or you can view and edit the<br />

connection data for all the lines together on the All Objects Data Form.<br />

Connect to Object<br />

The line spans from End A to End B and each end may be connected to another object in the model, such as a buoy or<br />

vessel, or else Fixed, Anchored or left Free.<br />

Object Relative Position<br />

Defines the position of the centre of the node at the line end.<br />

� If the end is connected to another object this defines the coordinates of the connection point relative to that<br />

other object's local axes.<br />

� If the end is Fixed this defines the coordinates of that point relative to global axes.<br />

� If the end is Anchored this defines the X and Y coordinates of the anchor relative to global axes, plus the Zcoordinate<br />

relative to the seabed level at that (X,Y) position.<br />

� If the end is Free then this defines the coordinates of the estimated equilibrium position of the line end, relative<br />

to global axes.<br />

Height above seabed<br />

This data item is only available for Anchored connections and specifies the vertical height above the seabed of the<br />

pipe underside. This value is coupled to the Object Relative z coordinate – changing either one results in the other<br />

being changed to match.<br />

To understand how this data item should be used consider, for simplicity, a line end anchored to a flat horizontal<br />

seabed. The Object Relative z coordinate specifies the position of the centreline. If it is set to 0 then the end node will<br />

penetrate the seabed by a distance of ½D, where D is the contact diameter.<br />

The net result of this is that the end node is 'buried' in the seabed and receives a large seabed reaction force.<br />

Because it is anchored this force cannot displace the end node, but the adjacent node is free to move and it will try to<br />

take up a position sitting on top of the seabed. This in turn will lead to unrealistic values of curvature, bend moment<br />

etc. at the end.<br />

If, however, you set Height above seabed to 0 then the end node centreline will have a z coordinate of ½D, relative to<br />

the seabed. The node sits just in contact with the seabed and the above problems are removed.<br />

If the seabed is not horizontal then the mathematics is slightly more complicated as it has to take into account the<br />

slope of the seabed. However, the recommendation of setting Height above seabed to 0 remains valid.<br />

End Orientation<br />

When a line is connected to an object, it is connected into an end fitting that is rigidly attached to that object and you<br />

specify the orientation of this connection by giving its Azimuth, Declination and Gamma angles.<br />

These angles define the end fitting orientation relative to the object, so for objects that rotate (e.g. vessels and 6D<br />

buoys) the fitting rotates with the object. For Fixed or Anchored ends the end orientation is defined relative to<br />

global axes. For Free ends the end orientation is not used.<br />

Azimuth, Declination and Gamma define the end fitting orientation by specifying the directions of the axes (Ex, Ey,<br />

Ez) of its frame of reference, where E is the end fitting origin – the point to which the line end is connected. See Line<br />

End Orientation.<br />

The direction of Ez is defined by specifying its Azimuth and Declination angles. Ez is the end fitting axial direction;<br />

when the end segment is aligned with Ez then no bending moment is applied by the joint, so Ez is sometimes called<br />

the no-moment direction. Note that Ez must be specified using the End A to End B convention, i.e. Ez is into the line<br />

at End A, but out of the line at End B.


System Modelling: Data and Results, Lines<br />

304<br />

w<br />

Ex and Ey are perpendicular to Ez and they are defined by specifying the Gamma angle, which is a rotation about Ez.<br />

The Ex and Ey directions are used for reporting results (e.g. the 2 components of shear force). And if the line has<br />

torsion included and the joint twisting stiffness is non-zero, then Ex and Ey also define the line end orientation at<br />

which no torsional moment is applied by the joint.<br />

The connection at a line end is modelled as a ball-joint with this orientation being the preferred "no-moment"<br />

orientation, i.e. the orientation of the line end that gives rise to no moment from any rotational stiffness of the<br />

connection.<br />

If all of the end connection stiffness values are zero, e.g. to model a ball joint that is completely free to rotate, then<br />

the end orientation angles have no effect on the line behaviour. The angles then only serve to define the local x, y<br />

and z-directions that are used to define results (e.g. shear and bend moment components, stress components, etc.)<br />

that depend on the local axes directions.<br />

Bending and Twisting Stiffness<br />

The connection at a line end is modelled as a joint with the specified rotational stiffness. The restoring moments<br />

applied by the joint depend on the deflection angle, which is the difference between the end fitting orientation and<br />

the orientation of the line. The end orientation is therefore the orientation of the line that corresponds to zero<br />

moment being applied by the joint.<br />

The connection stiffness is the slope of the curve of restoring moment against deflection angle.<br />

The bending and twisting connection stiffnesses can be set to:<br />

� Zero: free to rotate with no resistance.<br />

� Non-zero, finite: can rotate but with resistance.<br />

� Infinity: a rigid connection.<br />

� Variable: non-linear (for bending connection stiffness only).<br />

The x bending and y bending values specify the connection bending behaviour for rotation about the end Ex and Ey<br />

directions, respectively. For an isotropic ball joint the two values must be equal; this can conveniently be specified<br />

by setting the y-bending value to '~', meaning 'same as x-value'. A non-isotropic ball joint can be modelled by giving<br />

different x and y bending values; in this case the line must include torsion.<br />

The x bending and y bending behaviour can either be linear or non-linear, as follows:<br />

� For a simple linear behaviour, specify the bending stiffness to be the constant slope of the curve of restoring<br />

moment against deflection angle.<br />

� For a non-linear behaviour, use variable data to specify a table of restoring moment against deflection angle.<br />

<strong>OrcaFlex</strong> uses linear interpolation for angles between those specified in the table, and linear extrapolation for<br />

angles beyond those specified in the table. The restoring bend moment must be zero at zero angle.<br />

The Twisting Stiffness value is only relevant if torsion is included for the line. It specifies the rotational stiffness<br />

about the end Ez direction. For the twisting stiffness this variation is always modelled as linear so the twisting<br />

stiffness you specify should be the slope of the linear angle-moment curve.<br />

A flex joint can be modelled by setting the stiffness values to be non-zero and finite.<br />

Warning: Avoid specifying large connection stiffness values (except the special value Infinity) since they<br />

require very short simulation time steps.<br />

Release at Start of Stage<br />

If desired each line end can be disconnected at the start of a given stage of the simulation. If no release is wanted<br />

then set this item to "~", meaning "not applicable".<br />

Structure<br />

Each line can be made up of up a number of sections with different properties, the sections being defined in<br />

sequence from End A to End B.<br />

Line Type<br />

This determines the properties of the section.


w<br />

Section Length<br />

305<br />

System Modelling: Data and Results, Lines<br />

The unstretched length of the section. This is the unstressed length (i.e. zero wall tension) at atmospheric pressure<br />

inside and out. Length changes due to external and internal pressure, and allowing for the Poisson ratio effect, are<br />

calculated and allowed for by <strong>OrcaFlex</strong>.<br />

If the line type is profiled then the section length is determined by the profile data and so cannot be edited here.<br />

Expansion Factor<br />

The expansion factor allows you to model time-varying changes in unstretched length, for example due to thermal<br />

expansion or contraction.<br />

A value of '~' means that no expansion factor is applied – this is equivalent to a value of 1. Other positive values can<br />

be used, in which case the unstretched length remains constant throughout the simulation.<br />

Alternatively the expansion factor can be a variable data source which specifies a table of expansion factor against<br />

simulation time. It specifies a multiplicative factor which is applied to the unstretched length when calculating axial<br />

strain which in turn is used to calculate effective tension (see Line Theory: Calculation Stages).<br />

Note: Expansion factor is only used in the calculation of strain. It has no effect on mass, buoyancy, drag,<br />

added mass etc.<br />

Target Segment Length, Number of Segments<br />

These data items determine the segmentation of the section.<br />

If Target Segment Length is set to ~ then the number of segments in the section is set by Number of Segments.<br />

Otherwise, the segmentation is chosen based on Target Segment Length. The Number of Segments is not editable<br />

and reports the actual number of segments used which is given by the formula:<br />

Number of Segments = Round(Section Length / Target Segment Length)<br />

where Round is the function that rounds a floating point value to the nearest integer.<br />

Clash Check<br />

Note: It is usually preferable to determine segmentation by specifying Target Segment Length. This<br />

allows you to alter section lengths without altering segment length.<br />

Clash modelling is included when this data item is set to Yes. If it is set to No then the section will be ignored for<br />

clashing purposes.<br />

Notes: Line clashing is not modelled during statics.<br />

Clash checking is quite time-consuming, so you should only set this item to Yes for those sections<br />

for which you need clash modelling to be included. See Line Clashing.<br />

Cumulative Length, Cumulative Segments<br />

These columns report the cumulative length and cumulative number of segments counted from the first section. The<br />

values are for reporting purposes only and cannot be edited.<br />

Profile Graph<br />

The profile graph plots the inner and outer radii of the line as they vary with arc length. This is especially useful to<br />

check that stress joint and bend stiffener data has been correctly input.<br />

Pre-bend<br />

Pre-bend is only available when torsion is modelled. Pre-bend is provided for modelling lines which are not straight<br />

when unstressed, e.g. spool pieces.<br />

The pre-bend is defined for each section by specifying the pre-bent curvature (in radians per unit length) of the<br />

section. The pre-bent curvature is the curvature of the pipe in its unstressed state. For lines which are straight when<br />

unstressed then pre-bend should be specified to be zero – which is the default setting.<br />

Pre-bend can be specified in both the line local x and y directions. However, to simplify data preparation and<br />

interpretation of results we recommend that you arrange the line's local axes such that the pre-bend is entirely in<br />

either the local x or local y direction.


System Modelling: Data and Results, Lines<br />

306<br />

w<br />

Note: When pre-bend is modelled curvature and bend radius results are reported relative to the pre-bent<br />

curvature.<br />

Warning: Pre-bend breaks the assumptions of the stress results and fatigue analysis.<br />

Attachments<br />

A number of attachments may be added to each line. Each attachment can either be of a specified Attachment Type<br />

or else be a clone of a specified 6D buoy.<br />

Attachment Type<br />

Can be a Clump Type, a Drag Chain Type, a Flex Joint Type, a Stiffener Type or an existing 6D Buoy.<br />

If you specify a 6D buoy as the attachment type then the attachment is a clone of that 6D buoy and changing the<br />

properties of the 6D buoy also changes the properties of the attachment. The 6D buoy from which the attachment is<br />

cloned cannot be deleted, without first deleting all the attachments that are clones of it.<br />

6D buoy attachments are useful when you want a number of identical 6D buoys attached to a line. To attach 20<br />

identical buoys to a line, for example, first create the first buoy separately from the line and then connect it to the<br />

line by setting its connection data item on the buoy data form. This first buoy acts as the master from which all the<br />

other attachment buoys are cloned. Then, on the line data form, specify 19 attachments and set their attachment<br />

type to be the first 6D buoy.<br />

Position<br />

Note: 6D Buoy attachments can only be used when the Line includes torsion.<br />

The x, y and z coordinates specify the position of the attachment relative to the line.<br />

The z coordinate specifies the arc length at which the attachment is connected and this arc length may be measured<br />

relative to either End A or End B as specified by the user.<br />

� For Clumps, Drag Chains, Flex Joints and Stiffeners the x and y coordinates must be zero and the z coordinate is<br />

the arc length. These attachments are connected at the node nearest to this arc length.<br />

� For Stiffeners the z coordinate specifies the arc length of the stiffener connection point.<br />

Note: If the attachment is a clump then it is also offset vertically from the node by the offset distance<br />

specified in the clump type data. Beware that the sign convention for this offset varies depending<br />

on whether the clump is net buoyant (positive offset is upwards) or heavy (positive offset is<br />

downwards).<br />

� For 6D Buoy attachments the z coordinate specifies the arc length at which the buoy should be connected to the<br />

line. The buoy will be connected to the nearest node to that arc length. The buoy will be connected with an offset<br />

(relative to that node's axes) that is given by (x, y, 0). See 6D Buoy Initial Position for more details.<br />

Orientation<br />

For 6D Buoy attachments only. Rotation 1, Rotation 2 and Rotation 3 determine the Initial Attitude of the attached<br />

buoy.<br />

Name<br />

For 6D Buoy and Drag Chain attachments only. This is the name of the attached object and is used to select results<br />

for that object.<br />

Contents<br />

Contents Method<br />

Three methods of modelling contents are available, as outlined below:<br />

� If uniform is selected then the entire line is assumed to be filled with contents of a uniform density.<br />

� The free-flooding option results in the line being filled with sea water, up to the instantaneous water surface.<br />

� The slug flow method allows for spatial and temporal variation of contents. The contents flow velocity can also<br />

vary with time.


w<br />

Include axial contents inertia<br />

307<br />

System Modelling: Data and Results, Lines<br />

This data item allows the component of inertia due to contents in the line's axial direction to be omitted from the<br />

analysis. Typically the axial contents inertia would be excluded from an analysis of a line with free-flooding<br />

contents, for example a drilling riser in emergency disconnect mode.<br />

Contents Pressure and Reference Z level<br />

The contents pressure specifies the internal pressure in the line at a specified fixed reference Z level (specified<br />

relative to global axes). The internal pressure at this Z level is assumed to remain constant throughout the<br />

simulation. The internal pressure at other levels is calculated allowing for the static pressure head due to differences<br />

in Z level. For slug flow, the static pressure head is calculated using the mean contents density in the line.<br />

The reference Z level can be set to '~' and this is taken to mean the Z level of the Top End of the line in the reset<br />

state.<br />

See Line Pressure Effects for details of contents pressure modelling.<br />

Uniform contents data<br />

Contents Density<br />

Each section of the line is assumed to be full of contents of this density and the mass of the section is increased<br />

accordingly.<br />

All pressures in <strong>OrcaFlex</strong> are gauge pressures, not absolute pressures. That is, they are relative to atmospheric<br />

pressure and so can be as low as -1 atmosphere (-101.3 kPa).<br />

Flow Rate<br />

The rate of flow of mass through the line. If it is non-zero then it is used to calculate the centrifugal and Coriolis<br />

forces due to flow of fluid in the line. Positive values mean flow from End A towards End B and vice versa. To<br />

convert between mass flow rate, volume flow rate and flow velocity use the following simple formulae:<br />

Volume flow rate = Mass flow rate / ρ<br />

Flow velocity = Volume flow rate / A<br />

where ρ is the contents density and A is the internal cross-sectional area.<br />

Slug flow data<br />

The slug flow data allows you to specify variation of contents density along the arc length of the line. This pattern of<br />

contents can also progress along the line over time. The program accounts for the resulting variations of mass,<br />

weight and centrifugal and Coriolis forces.<br />

Flow velocity<br />

The velocity at which the contents pattern flows along the line. This value can be constant, or can vary as simulation<br />

time varies. Positive values mean flow from End A towards End B and vice versa.<br />

A value of zero can be used to specify spatial contents variation with no temporal variation. A variable flow velocity<br />

can be used to model, for example, the flow of contents out of a drilling riser in emergency disconnect mode.<br />

Note: There is no need to ramp flow velocity at the beginning of dynamics – in fact it is better to include<br />

the fluid flow in the static calculation because this removes undesirable transients during the<br />

dynamic analysis. Therefore, if you wish to model a constant flow rate, you should set the flow<br />

velocity to be this constant value.<br />

Density between slugs<br />

The contents density for sections of the line that fall in between slugs.<br />

Slug flow contents pattern<br />

The spatial variation of contents density, i.e. the contents pattern, is specified in a table. Each row of the table allows<br />

you to define a number or group of identical slugs specified by their density and length together with the distance<br />

between slugs.<br />

In addition you specify a reference point, an arc length which can be relative to either end of the line, and the<br />

simulation time at which the first slug in the group reaches that reference point. If the flow velocity is zero then the<br />

previous definition is meaningless. In this case we adopt the convention that the group of slugs covers arc lengths


System Modelling: Data and Results, Lines<br />

308<br />

w<br />

(measured from End A) greater than the reference point. For example, if the flow velocity is zero and you have a<br />

single slug with length L and reference point at End A then the slug will stretch between arc lengths 0 and L.<br />

Simple repeating patterns of slugs can easily be modelled using a single row in the table. For irregular patterns of<br />

slug you can model each slug as a single row in the table. Range graphs of contents density can be used to confirm<br />

that your data corresponds to your desired pattern of slugs.<br />

Statics<br />

The line static calculation is performed in 2 steps as described in Statics of Lines.<br />

Included in Statics<br />

This switch allows you to exclude certain lines from the statics calculation. This is mainly useful when building a<br />

model and a particular line is not converging. In this situation you could exclude all other lines from statics (this is<br />

easiest from the All Objects Data Form). This would allow you to experiment with different statics convergence<br />

parameters for the problematic line without having to wait for all the other lines to converge each time you tried a<br />

new set of convergence parameters.<br />

Note: Results are not available for such lines and dynamics is disabled if you have any lines which are<br />

excluded from statics. Lines which are excluded from statics have no influence on other objects in<br />

the model.<br />

Step 1 Statics Method<br />

This can be either Catenary, Spline, Quick, Prescribed or User Specified.<br />

The normal setting is Catenary, in which case the static analysis finds the equilibrium catenary position of the line,<br />

allowing for weight, buoyancy, drag, but not allowing for bend stiffness or interaction with shapes. See Catenary<br />

Statics.<br />

The Catenary solution has some limitations and some systems, such as those with slack or neutrally buoyant lines,<br />

can be troublesome. For such lines you can instead specify Spline, in which case the line is instead set to a 3D spline<br />

curve based on spline control points specified by the user. See Spline Data and Spline Statics.<br />

The Quick method leaves the line in the rough catenary shape used in the Reset state. See Quick Statics.<br />

For pull-in analysis the Prescribed option has been provided. Here the user specifies the starting position of the line<br />

as a sequence of straight line or curved sections on the seabed. See Prescribed Starting Shape.<br />

The User Specified option allows you to specify the position for each node on the line. No calculation is performed,<br />

the nodes are merely placed at the specified positions. See User Specified Starting Shape and User Specified Statics.<br />

Step 2 Statics Method (Full Statics)<br />

This can be either None or Full Statics.<br />

If None is selected then the position obtained by the Step 1 Statics Method is used.<br />

The Full Statics calculation finds a full equilibrium position for the model. Unlike the Step 1 Catenary method, bend<br />

stiffness and interaction with shapes are included. Full statics needs a starting shape for the line, and it uses the Step<br />

1 Statics Method to obtain this; it then finds the equilibrium position from there. You should therefore set the Step 1<br />

Statics Method to give a reasonable starting shape. See Full Statics.<br />

For more details of the Statics Calculation see Statics Analysis.<br />

Warning: If you do not use Full Statics, then the starting position will not (in general) be an equilibrium<br />

position.<br />

Note: It is only possible to include buoys in the static analysis (see Buoy Degrees of Freedom Included in<br />

Static Analysis) if either the Catenary method or Full Statics is used for all lines in the model.<br />

Include Friction<br />

Friction can be included in the static analysis only if the Step 1 Statics Method is Catenary or if Full Statics is used for<br />

the Step 2 Statics Method.<br />

With seabed friction present there is not, in general, a unique static position for the line, since the position it adopts<br />

depends on how it was originally laid and its history since then. In order to define a unique solution, we therefore


w<br />

309<br />

System Modelling: Data and Results, Lines<br />

need to make some assumptions about how the line was originally laid and friction is then assumed to act towards<br />

this position.<br />

If the Step 1 Statics Method is Prescribed, then this 'originally laid' position is assumed to be the position defined by<br />

the Prescribed track. Otherwise, the 'originally laid' position is defined by specifying the Lay Azimuth and As Laid<br />

Tension values.<br />

Lay Azimuth<br />

This data is only used when seabed friction is included in the static analysis and the Step 1 Statics Method is not<br />

Prescribed. It then defines the position in which the line is assumed to have been originally laid, and friction is then<br />

assumed to act towards this position. When Statics Method is not Prescribed, it is assumed that:<br />

1. The line was originally laid, with the specified As Laid Tension, starting with the Bottom End at its specified<br />

position (or at the point on the seabed directly below, if the Bottom End is not on the seabed).<br />

2. The line was then laid in the Lay Azimuth direction, leading away from the Bottom End position and with the<br />

specified As Laid Tension.<br />

3. The line was laid following the profile of the seabed.<br />

4. The Top End was then moved slowly from that original position to its specified position.<br />

To help set this data item, there is a button on the form marked Set Lay Azimuth. This button sets the Lay Azimuth<br />

value to be the direction from the Bottom End towards the Top End, based on their current positions.<br />

Notes: Whilst the program will accept any Lay Azimuth, we would expect the statics convergence routine<br />

to have increasing difficulty in finding a solution as the angle between the Lay Azimuth direction<br />

and the vertical plane through the line ends increases. For example, if we have a line top at X=0,<br />

Y=0, and anchor at X=100, Y=0, we would expect trouble for a Lay Direction of 90°.<br />

As Laid Tension<br />

The Line Setup Wizard also uses the Lay Azimuth direction.<br />

This data specifies the effective tension with which the line was originally laid. <strong>OrcaFlex</strong> uses this to determine the<br />

as-laid node positions, which are used as the friction target positions towards which friction acts in the static<br />

analysis. This data is therefore only used if friction is included in statics.<br />

If the Step 1 Statics Method is set to Prescribed starting shape, then the statics friction target positions are laid out<br />

along the prescribed shape with a strain determined by the axial stiffness and this As Laid Effective Tension value.<br />

If the Step 1 Statics Method is not Prescribed, then this data is used as described in the Lay Azimuth section above.<br />

Catenary Convergence<br />

If the Catenary statics method is chosen, then an iterative catenary calculation is used to determine the static<br />

position of the line. This calculation is controlled by a number of convergence parameters which can normally be left<br />

at their default values. However sometimes the calculation can fail to converge. If this happens, first check your data<br />

for errors and check for the following common causes of convergence failure:<br />

� Does the solution have a slack segment? This can happen in lines that touch down on the seabed almost at right<br />

angles or in lines that hang in a very narrow U shape. The catenary calculation cannot handle lines with slack<br />

segments – try increasing the number of segments in the relevant section of the line.<br />

� For lines that touch down on the seabed, is the Lay Azimuth value specified correctly? It is the azimuth direction<br />

leading away from End B and it is easy to get it wrong by 180°.<br />

� Is the line buoyant, either deliberately or by mistake. The catenary calculation has problems with floating lines –<br />

you may need to use the Spline statics method instead.<br />

� Does the line have a surface-piercing buoyant clump attached? If the clump is short then the catenary<br />

calculation is more difficult.<br />

If the calculation still fails to converge, then it is sometimes possible to obtain convergence by changing one or more<br />

of the convergence parameters, as outlined below.


System Modelling: Data and Results, Lines<br />

Max Iterations<br />

310<br />

w<br />

The maximum number of iterations that <strong>OrcaFlex</strong> will make before treating the calculation as having failed to<br />

converge. Increasing this value can sometimes help.<br />

Tolerance<br />

The non-dimensional accuracy to which the calculation is done, before the calculation is treated as having<br />

converged. Increasing the tolerance increases the chances of convergence but reduces the accuracy.<br />

Min Damping<br />

The minimum damping factor to be used in the calculation. Convergence can sometimes be achieved by increasing<br />

this parameter to a value greater than 1 – try values in the range 1.1 to 2.0. The minimum damping should not be set<br />

to less than 1.<br />

Mag. of Std. Error, Mag. of Std. Change<br />

These parameters control the maximum size of the change, in the estimated solution, this is allowed in a single step.<br />

Reducing these values can sometimes help, but the calculation will then usually require more iterations.<br />

The remaining parameters should not normally be changed. For further information contact <strong>Orcina</strong>.<br />

Full Statics Convergence<br />

The numerical method used to solve for the static position is an iterative process in which the program tries to<br />

converge on the solution in a series of steps. This process is controlled by a number of convergence parameters,<br />

found on the Line data form.<br />

Convergence Control Method<br />

Either Line Search or Mag. of Std. Error / Change. We recommend using the default value, Line Search, but if this<br />

fails then the alternative Mag. of Std. Error / Change may succeed.<br />

Max Iterations<br />

The calculation is abandoned if convergence has not been achieved after this number of steps. For some difficult<br />

cases simply increasing this limit may be enough.<br />

Tolerance<br />

This controls the accuracy of the solution. The program accepts the line position as a static equilibrium position if<br />

the largest out of balance force component on any node is less than Tolerance * total weight in air.<br />

When torsion is included the static equilibrium position must also satisfy the condition that the largest out of<br />

balance moment component on any node is less than Tolerance * total weight in air * ODmax where ODmax is the<br />

maximum diameter, contact diameter, stress diameter or normal drag diameter over the entire line.<br />

Reducing the Tolerance value will give a more accurate static equilibrium position, but will take more iterations.<br />

<strong>OrcaFlex</strong> may not be able to achieve the Tolerance specified if it is too small, since the computer has limited<br />

numerical precision.<br />

Delta<br />

This is a perturbation size, used to calculate the Jacobian matrix for the problem. Delta should always be less than<br />

the tolerance specified.<br />

Note: This parameter is only used when torsion is included.<br />

Min Damping, Max Damping<br />

For some cases it is necessary to control the convergence process by damping down (i.e. reducing) the step taken at<br />

each stage. The program includes an automatic damping system that chooses a suitable damping factor for each<br />

iteration, but the user can set the minimum damping and maximum damping factors that are used.<br />

Normally the default values will suffice but for difficult cases the default values can be altered. For cases that appear<br />

to make the convergence unstable (e.g. giving very bad line positions on the screen) try increasing the Min<br />

Damping factor to a value greater than 1, say values in the range 1 to 10. You can also try increasing the Max<br />

Damping factor, say to values in the range 10 to 100.


w<br />

311<br />

System Modelling: Data and Results, Lines<br />

Note: Convergence will be slower with larger damping values so you should use the smallest values that<br />

result in statics converging.<br />

Mag. of Std. Error, Mag. of Std. Change<br />

These parameters are only available when the Mag of Std. Error / Change convergence control method is selected.<br />

For some cases it may be necessary to reduce one or both of these values from their defaults. Doing so is likely to<br />

slow down the convergence, but it may be necessary in order to achieve convergence!<br />

Spline Starting Shape<br />

The following data is only used if the Spline statics method is specified.<br />

Order<br />

This sets the smoothness of the spline shape; generally order 3 is reasonable. If a higher order is chosen, a smoother<br />

curve results. The order cannot exceed the number of spline points.<br />

Control Points<br />

The line shape is specified by a number of Control Points. The first and last control points are automatically placed<br />

at the line ends A and B respectively and <strong>OrcaFlex</strong> generates a smooth curve between the first and last control<br />

points and passing near to the intermediate control points. These intermediate control points may be adjusted to<br />

'pull' the curve into the desired shape.<br />

The first and last control points correspond to line ends A and B respectively. The line is stretched to the specified<br />

As Laid Tension and laid out following the spline curve starting at End A and working towards End B.<br />

For a line with a Free end the line is laid out along the curve until End B is reached. If the length around the curve is<br />

not equal to the stretched line length then the end will either fall short of the end Estimated Position or lie beyond it<br />

(along the continuation of the curve along its 'final' direction).<br />

For a line with a Fixed end, Anchor or attached to some object the curve is automatically expanded or contracted to<br />

allow the end to lie at the specified end position. An error is reported if this process fails.<br />

Prescribed Starting Shape<br />

This data is only used if the Prescribed method is used for Step 1 statics. It can be found in the Prescribed Starting<br />

Shape page on the line data form and can be edited in several ways:<br />

� By editing the Length and Turn values of a track section on the line data form. <strong>OrcaFlex</strong> then creates an arc of<br />

the specified Length and Turn, and the X and Y coordinates of the end of this section, and all subsequent<br />

sections, are automatically adjusted to match.<br />

� By editing the X and Y coordinates of the ends of a track section on the line data form. <strong>OrcaFlex</strong> then creates the<br />

(unique) circular arc (or straight line) that is a smooth continuation of the previous section and passes through<br />

the new (X,Y) point. The Length and Turn values for this section, and the X and Y coordinates for subsequent<br />

sections, are then automatically adjusted to match.<br />

� By dragging the end points of the track sections on a 3D view using the mouse. The track and the track section<br />

end points are drawn on the 3D views. Dragging a track section end point is equivalent to editing its X and Y<br />

values, as described above.<br />

The individual data items (see Figure: Plan View of Example Track) are as follows:<br />

End A Azimuth<br />

The initial direction of the track.<br />

Track Sections<br />

The number of sections used to define the track.<br />

Section Length<br />

The length of the circular arc (or straight line if Section Turn = 0).


System Modelling: Data and Results, Lines<br />

Section Turn<br />

312<br />

w<br />

The amount by which the track azimuth increases over this section. A positive value denotes a turn to the left, when<br />

viewed from above, and a negative value denotes a turn to the right. A value of zero can be entered to specify a<br />

straight track section.<br />

Section Radius<br />

The radius of curvature of the circular arc. The radius equals (180L)/(πT), where L is the section length and T is the<br />

absolute value of section turn, in degrees. For straight sections (i.e. if Section Turn = 0) the radius is reported as<br />

Infinity.<br />

Notes: This is a reported value, not an editable data item, and is hence always shown in grey.<br />

Section X and Y<br />

With a profiled or sloping seabed the actual track on the seabed will have a slightly different radius<br />

of curvature – see Laying out the Line.<br />

The global X and Y coordinates of the end of this track section. You can either edit these X and Y coordinates<br />

explicitly, on the line data form, or else by dragging the end point on a 3D view. If you edit X or Y then <strong>OrcaFlex</strong> fits a<br />

circular arc (starting at the previous section's end point) through the new end point and the Section Length and<br />

Section Turn are automatically updated to match this new arc.<br />

Section Z<br />

The global Z coordinate of the section end point on the seabed. This is a reported value, not an editable data item,<br />

and is hence always shown in grey.<br />

Section Arc Length<br />

The total arc length to the end of the section. This is a reported value, not an editable data item, and is hence always<br />

shown in grey.<br />

Section Azimuth<br />

The azimuth direction at the end of the section. This is a reported value, not an editable data item, and is hence<br />

always shown in grey.<br />

Track Pen<br />

This controls how the track is drawn. You can switch between the options of drawing the track in the chosen pen<br />

and not drawing it at all.<br />

Laying out the Line<br />

The track data defines a sequence of straight lines and circular arcs in the horizontal plane, which are then projected<br />

vertically onto the seabed to define the track itself. The program then lays the line out along the track, allowing for<br />

any As Laid Tension specified by the user on the line data form.<br />

Because the line is modelled as a series of straight segments, when the line is laid out along a curved track it will<br />

repeatedly 'cut corners' and so the length of line laid along a given curved track section will be slightly shorter than<br />

the length of that section. The size of this discrepancy reduces as more segments are used.<br />

If End A is above the seabed then the height above the seabed varies linearly between End A and the first track<br />

section point, reaching the seabed at the end of the first track section. If the end of the last track section is reached<br />

before all the line has been laid out, then the rest of the line is laid out in a straight line in the direction of the end of<br />

the track.<br />

Sloping and profiled seabeds<br />

The track on the seabed is obtained by projecting the specified circular arcs or straight sections vertically down onto<br />

the seabed. With a horizontal seabed this vertical projection has no effect on the shape of the track. But with a<br />

sloping seabed the vertical projection does not preserve distances and this causes some effects that users should<br />

note:<br />

� The section lengths and arc lengths that appear in the prescribed starting shape data table are lengths in the<br />

horizontal plane, i.e. before projection down onto the seabed. With a sloping seabed the true section and arc<br />

lengths on the seabed will differ, the difference depending on the slope of the seabed. The actual arc lengths can<br />

be obtained by running the static analysis and looking at the Full Results table for the line.


w<br />

313<br />

System Modelling: Data and Results, Lines<br />

� The section radius reported in the prescribed starting shape data table is that of the circular arc in the<br />

horizontal plane, i.e. before projection down onto the seabed. When the circular arc is projected down onto a<br />

sloping seabed the resulting track section is slightly elliptical rather than circular, so again the actual radius of<br />

curvature will differ. The actual radii of curvature can be obtained by running the static analysis and looking at<br />

the Full Results table for the line.<br />

User Specified Starting Shape<br />

Starting Shape<br />

The User Specified Starting Shape statics method places each node at the position specified in this table. If torsion is<br />

modelled then node orientations can also be specified.<br />

Drag and Wake<br />

Drag Formulation<br />

A number of authors have proposed formulae to model how the drag force on a line varies with the incidence angle.<br />

<strong>OrcaFlex</strong> offers the choice of the Standard, Pode or Eames formulations. All of these use drag coefficients that are<br />

specified on the Line Types data form.<br />

For details of the formulations see the Line Theory section.<br />

Line Wake Interference<br />

To include wake interference modelling you must first define one or more wake interference models. See the Wake<br />

Models button on the Line data form.<br />

You must then specify which line sections to include in wake modelling, by either being included as a wake<br />

generator (an 'upstream' section) or as a section that reacts to wake (a 'downstream' section), or both (a<br />

downstream section that reacts to wake generated further upstream, but also generates its own wake that further<br />

downstream sections might react to). For details see the Line Wake Interference Data on the Drag & Wake page of<br />

the Line Data Form.<br />

Notes: Wake modelling does not include the wake effect of one part of a line on another part of the same<br />

line – it only includes wake effects on other lines. To model the wake effect of one part of a catenary<br />

on another part beyond the sag bend, you need to model the catenary as two lines, joined with a<br />

dummy 6D buoy at the sag bend.<br />

How Wake Effects Are Modelled<br />

Also, wake modelling is only included in the static analysis if the Statics Method is set to Whole<br />

System Statics. It is not included if the Separate Buoy and Line Statics method is specified. This<br />

is because wake effects require that the static positions of the lines involved are calculated<br />

together, not separately.<br />

The wake models are steady state models of wake effects. Also <strong>OrcaFlex</strong> does not model the effect that wake takes<br />

time to convect downstream. <strong>OrcaFlex</strong> therefore only attempts to model the steady wake effects.<br />

Wake is generated when there is fluid velocity relative to the upstream cylinder, so both fluid motion and upstream<br />

cylinder motion can contribute to the wake. Therefore the velocity <strong>OrcaFlex</strong> uses as the input to the wake model is<br />

the steady relative velocity Vs given by<br />

Vs = [undisturbed current velocity vector at upstream cylinder centre] - [any steady starting velocity<br />

specified for the model]<br />

The wake effects therefore do not include any effects of wave motion, or of any changes in upstream cylinder<br />

velocity during a simulation.<br />

Note: <strong>OrcaFlex</strong> does not model combined wake effects. If a given 'downstream' node is in the modelled<br />

wake of more than one 'upstream' node, then <strong>OrcaFlex</strong> chooses to apply the wake effects of the<br />

upstream node that gives the strongest wake effect at that downstream position when the wake<br />

effects from other upstream nodes (which give weaker wake effects at that point) are ignored. So if<br />

you are modelling riser arrays, for example, then the wake effects at any given point are modelled<br />

as if they came from the upstream wake-generating node that gives largest wake effect in<br />

isolation, i.e. as if the other upstream nodes were absent.


System Modelling: Data and Results, Lines<br />

314<br />

w<br />

The strength of a given node's wake decays with distance downstream and also with distance in the transverse<br />

direction, as specified by the wake model. But in addition <strong>OrcaFlex</strong> also makes the wake strength decay in the axial<br />

direction of the upstream line, so that the strongest wake selected comes from the upstream node that is axially<br />

closest to the downstream node. More details are given in the paper by Wu et al.<br />

Line Wake Interference Data<br />

Wake modelling requires significant computation, so to avoid slowing simulations unnecessarily <strong>OrcaFlex</strong> enables<br />

you to only include wake modelling for sections of line where you think wake effects might be significant. This is<br />

done on the Drag & Wake page of the line data form, by specifying which line sections generate modelled wake (the<br />

'upstream' sections) and which line sections react to modelled wake (the 'downstream' sections).<br />

The fluid forces applied to sections that react to modelled wake will include the strongest wake effect from the<br />

sections that generate modelled wake. The following two data items specify which sections generate and/or react<br />

to wake:<br />

Wake Generated<br />

This can be set to one of the defined wake models, in which case <strong>OrcaFlex</strong> will model wake generated by that line<br />

section acting as an 'upstream' line. Or it can be set to None, in which case <strong>OrcaFlex</strong> will not model wake generated<br />

by that line section.<br />

Three types of wake model are available.<br />

� The Huse model is an analytic wake model that models the velocity reduction and hence drag reduction on the<br />

downstream object, but does not model the wake lift effect.<br />

� The Blevins model is an analytic model that models the both the drag reduction and the wake lift force that<br />

tends to draw the downstream object into the centre of the wake.<br />

� The User Specified model allows you to model both the drag reduction and wake lift effect using your own data,<br />

by specifying the drag and wake lift coefficients as a function of the position of the downstream object relative<br />

to the wake of the upstream object.<br />

See the Wake Models section for details.<br />

Reacts to Wake<br />

If Reacts to Wake is turned on then each node in the section will act as a 'downstream' cylinder in the wake<br />

modelling. Those nodes will then be subject to the strongest wake effects (i.e. strongest at that downstream<br />

position) from any upstream nodes (on other lines) that generate modelled wake. Sections with Reacts to Wake<br />

turned off will ignore any modelled wake generated by upstream sections.<br />

So to summarise, the wake modelling will include the strongest wake effects on downstream sections that have<br />

Reacts to Wake turned on, due to modelled wake from upstream nodes in sections of other lines that have Wake<br />

Generated set to a wake model.<br />

Note: A line section is allowed to be both a 'downstream' section, i.e. Reacts to Wake is turned on, and at<br />

the same time also act as an 'upstream' section, i.e. generate modelled wake that further<br />

downstream line sections can react to. However the wake effects of such a section will only affect<br />

other lines in the model, not the line generating the wake. And the wake effect will be based on the<br />

undisturbed steady relative flow velocity, so the wake effects of this wake-generating section will<br />

not take into account any velocity reduction due to it in turn being in the wake of another wakegenerating<br />

section further upstream.<br />

Wake Models<br />

The Wake Model Data form enables you to define one or more models of wake interference. The wake interference<br />

model specified determines how the flow velocity, wake drag reduction and wake lift force on a downstream<br />

cylinder varies as a function of the (x,y) position of the downstream cylinder centre relative to the wake frame of<br />

reference of the upstream cylinder.<br />

You can define more than one wake model, for example if you want to use different wake models to model the wake<br />

generation by different lines. A wake model that isn't used by any line in the model will be ignored, so you can define<br />

wake models and then decide later which (if any) to use to model wake generation.


w<br />

Wake frame of reference<br />

315<br />

System Modelling: Data and Results, Lines<br />

The wake modelling is done relative to a wake frame of reference that is based on the steady relative fluid velocity<br />

vector Vs at the upstream cylinder, and is given by:<br />

� The wake frame origin is at the upstream cylinder centre.<br />

� The wake frame x-axis is in the direction of the steady relative fluid velocity vector Vs.<br />

� The wake frame z-direction is the direction obtained by projecting the upstream cylinder axial direction normal<br />

to Vs. It is therefore the direction normal to Vs and in the plane formed by the Vs and the cylinder axial direction.<br />

The +ve wake z-direction is towards end B of the upstream line.<br />

� The wake frame y-axis is the direction that completes the orthogonal right-hand triad of wake axes x,y,z. It is<br />

therefore normal to the plane formed by Vs and the cylinder axial direction.<br />

The wake model theory below uses the following key variables. Upper case subscript 'D' denotes 'drag', lower case<br />

subscripts 'u' and 'd' denote 'upstream' and 'downstream', and subscript '0' denotes 'undisturbed', i.e. ignoring any<br />

wake effects.<br />

Vd(x,y) is the disturbed fluid velocity vector at downstream position (x,y) relative to the upstream cylinder<br />

wake, allowing for wake effects.<br />

Vd0(x,y) is the undisturbed fluid velocity vector at position (x,y).<br />

Vu0 is the undisturbed fluid velocity at the upstream cylinder centre.<br />

Du, Dd and CDu0, CDd0 are the normal drag diameter and undisturbed drag coefficient of the upstream and<br />

downstream cylinders, respectively, as specified on the line type data form. Note that the wake modelling<br />

does not allow for any non-isotropic aspects of the drag coefficients. If different drag coefficients have been<br />

specified for the line x- and y-directions then the wake modelling uses the mean of the two values.<br />

Wake Model Data<br />

Each wake model is given a user-specified Name. And each model can be one of three types: Huse model, Blevins<br />

model or User-Specified model, as described below.<br />

Huse Model<br />

This is an analytic model proposed by Huse (1993). It models the wake velocity reduction, and hence drag<br />

reduction, but does not give any wake lift force.<br />

In the Huse model the wake fluid flow velocity Vd(x,y) at a given position (x,y) in the wake is given by:<br />

where<br />

Vd(x,y) = Vd0(x,y) - k2Vu0[CduDu/xs] ½ exp[-k3(y/b) 2 ]<br />

xs = x + 4Du/Cdu<br />

b = k1[CduDuxs] ½<br />

and the other terms are defined above.<br />

k1, k2 and k3 are user-editable non-dimensional model parameters. They should normally be left as the default<br />

values, since these give the original Huse model. (Note that the parameter k3 is mis-printed in Huse, 1993 as 0.639<br />

and was corrected in a later paper to 0.693.) Changing these model parameters from their default values will give a<br />

variant of the Huse model.<br />

Blevins model<br />

The Blevins model is an analytic model that models velocity and drag reduction, and also models the wake lift force<br />

that tends to draw the downstream object into the centre of the wake. See the Appendix of Blevins OMAE 2005<br />

paper for the theory of the model.<br />

The model has 3 non-dimensional model parameters a1, a2, a3 that are user-editable. They should normally be left as<br />

the default values, since these are the values given by Blevins. Changing these model parameters from their default<br />

values will give a variant of the Blevins model.


System Modelling: Data and Results, Lines<br />

User Specified model<br />

316<br />

w<br />

This option allows you to define a model (of both wake drag reduction and wake lift effect) by specifying drag and<br />

lift coefficient factors as a function of the position of the downstream object relative to the wake of the upstream<br />

object.<br />

The wake effects are specified by giving a table of wake drag and lift coefficient factors for the downstream<br />

cylinder, as a function of the downstream cylinder position relative to the upstream cylinder wake, as follows. See<br />

above for notation.<br />

� The Position columns of the table define, in non-dimensional form, a number of downstream cylinder centre<br />

positions relative to the upstream cylinder wake frame of reference. This is done by specifying nondimensionalised<br />

distances L/Du (downstream) and T/Du (transverse) from the upstream cylinder centre to the<br />

downstream cylinder centre, where Du is the normal drag diameter of the upstream cylinder.<br />

� The Coefficient Factor columns of the table define the wake effects at the given (L/Du, T/Du) positions, by<br />

specifying drag and lift coefficient factors. Note that these data are scaling factors, not the drag and lift<br />

coefficients themselves. The drag factors are scaling factors that are applied to the reference drag coefficient<br />

CDd0 of the downstream cylinder, as specified on the line type data form. The lift coefficient factors are signed<br />

scaling factors that are applied to the Reference Wake Lift Coefficient CLd0, which is specified on the wake<br />

models data form. A +ve lift coefficient factor means a lift force in the +ve wake frame y-direction, so the lift<br />

coefficient factor at a given T/Du position will normally have the opposite sign to the T/Du value, since wake lift<br />

effects are normally towards the centre line of the wake.<br />

<strong>OrcaFlex</strong> uses linear triangular interpolation to obtain the drag and lift coefficient factors to use for wake frame<br />

positions between those specified in the table.<br />

Note: The drag coefficient factors can be negative, in which case they represent flow reversal at that<br />

position in the wake. This can happen, and indeed the Blevins model can give flow reversal just<br />

behind the upstream cylinder. However the drag factors must not be greater than 1, so flow<br />

enhancement cannot be modelled.<br />

Wake drag effects are normally symmetric, and wake lift effects anti-symmetric, either side of the wake centre line.<br />

So to avoid the need to specify in the table both +ve and -ve values of T/Du you can tell <strong>OrcaFlex</strong> to Reflect Data. In<br />

this case you must only specify table rows for one half of the wake plane, i.e. either for T/Du ≥ 0 only, or for T/Du ≤ 0<br />

only. <strong>OrcaFlex</strong> will then automatically reflect all your data points that are not on the wake centre line, by internally<br />

duplicating them and negating T/Du and the lift coefficient, and will then interpolate over that new<br />

specified+reflected data set, which now covers both sides of the wake centre line.<br />

Results<br />

Log Results<br />

Note: Data reflection will not in general give perfectly symmetric response characteristics. This is<br />

because the interpolation involves triangulation of the data, and that triangulation might not be<br />

symmetric either side of the wake centre line. However any lack of symmetry will be proportional<br />

to the spacing of the points you specify in the data - more closely spaced data points will give closer<br />

to perfect symmetry.<br />

This option is checked by default and this means that simulation results at all points on the Line are available. If this<br />

option is unchecked then no simulation results are available for this Line.<br />

<strong>OrcaFlex</strong> stores simulation results in an efficient way, only logging a minimal set of variables to the simulation file.<br />

Other results variables which have not been logged are then derived when the results are requested. Usually this<br />

means that simulation files are a reasonable size and we recommend that this value is checked.<br />

Should you need to reduce the size of simulation files then this option can be unchecked for those lines for which<br />

you do not need results.<br />

Arc length axis, Arc length axis inverted, Value axis inverted<br />

These data items allow you customise the way range graphs are displayed. The Arc length axis setting allows you to<br />

control whether the arc length axis is horizontal or vertical. The latter option would typically be used for vertical<br />

risers.<br />

Normally the axes on an <strong>OrcaFlex</strong> graph display increasing values to the right (for a horizontal axis) or upwards (for<br />

a vertical axis). The axis inverted options allow you to reverse the axes. Again this would typically be used for


w<br />

317<br />

System Modelling: Data and Results, Lines<br />

vertical risers to arrange that up and down on the arc length axis of the graph matched up and down in the physical<br />

system being modelled.<br />

Since changes to these settings are usually motivated by the physical layout of the line in question, each line in an<br />

<strong>OrcaFlex</strong> model has its own copies of these settings.<br />

These data items can also be set on the results form.<br />

Drawing<br />

Nodes<br />

You can define the colour, line style and thickness of the pens used for drawing the nodes and sections of the line.<br />

See How Objects Are Drawn. You can also choose to draw nodes as circular discs with diameter equal to the contact<br />

diameter.<br />

Segments<br />

There is a choice for which pen is used to draw the segments. You may either specify the pen explicitly on the Line<br />

Data form, in which case it will be used for all segments of that line. This allows you to use different pens to<br />

distinguish between different lines. Alternatively, you can choose to have the segments drawn using the appropriate<br />

Line Type Pen defined on the Line Types form. This allows you to use different pens to distinguish sections of<br />

different line types.<br />

Node axes<br />

Node axis directions (x, y, z) can be given individual colours. This helps distinguish between x and y directions thus<br />

making component results easier to interpret. The node axes directions are drawn optionally and can be controlled<br />

by the Draw Node Axes preference or by pressing CTRL+ALT+Y.<br />

Contact<br />

You can define a contact pen which is used when drawing nodes and segments which are in contact with the seabed,<br />

elastic solids and other lines. Should you wish you can choose to disable the contact drawing.<br />

End Node Shaded Drawing<br />

Determines how the two line ends are drawn for shaded graphics, either as a hemisphere or not at all.<br />

Prescribed Statics Method (Track)<br />

For Lines with Prescribed Statics Method you can control how the track is drawn. You can switch between the<br />

options of drawing the track in the chosen pen and not drawing it at all.<br />

Spline Starting Shape<br />

For the Spline Starting Shape you can switch between the options of drawing the unscaled spline in the chosen pen<br />

and not drawing it at all.<br />

VIV Drawing<br />

The VIV Drawing page is visible when a time domain VIV model is used. For details see the VIV Drawing topic.<br />

Properties Report<br />

The Line properties report is available from the popup-menu on the data form.<br />

Summary page<br />

Total length<br />

The sum of all the section lengths.<br />

Total weight in air (excluding contents), Total weight in air (including contents)<br />

The force due to gravity of the entire line. The weight of any attachments is excluded.<br />

Total displacement<br />

The weight of water displaced by the entire line's volume. The displacement of any attachments is excluded. The<br />

reported value uses the water density at the sea surface.


System Modelling: Data and Results, Lines<br />

Total wet weight (including contents)<br />

Equals Total weight in air (including contents) - Total line displacement.<br />

Full Statics force accuracy, Full Statics moment accuracy<br />

318<br />

w<br />

Full Statics force accuracy is only reported if the line uses the Full Statics method. Full Statics moment accuracy is<br />

only reported if the line uses the Full Statics method and torsion is included.<br />

The Full Statics method finds an equilibrium configuration – that is a set of node positions for which the resultant<br />

force and moment on each node is zero. We refer to the resultant force and moment as the out of balance load.<br />

Because computers have limited numerical precision the static analysis cannot always find a configuration where<br />

the out of balance load is exactly zero. <strong>OrcaFlex</strong> accepts a position as a static equilibrium position if the largest out of<br />

balance load component is less than the statics accuracy.<br />

The Full Statics force accuracy equals Tolerance * [line typical force] and the Full Statics moment accuracy equals<br />

Tolerance * [line typical moment]. The line typical force is defined to be the total weight in air. The line typical<br />

moment is defined to be [total weight in air] * [total length].<br />

Reducing the Tolerance value will give a more accurate static equilibrium position, but will take more iterations.<br />

<strong>OrcaFlex</strong> may not be able to achieve the Tolerance specified if it is too small, since the computer has limited<br />

numerical precision.<br />

Details page<br />

This contains a spreadsheet with the following information:<br />

� The values reported on the Summary page, as described above.<br />

� Properties for each line type used by the line: weight in air, weight in water, displacement etc.<br />

� Properties for each section of the line. This table includes details of segmentation, structure, hydrodynamics,<br />

contact and friction. When the section's line type uses a profiled diameter the properties are reported for each<br />

segment in that section.<br />

If the line uses a P-y model then a page of detailed output is included which describes how the P-y model data has<br />

been interpreted.<br />

6.8.2 Line Types<br />

Data<br />

The Line Types form defines the properties of a number of named line types, which can then be used to specify the<br />

structure of the Lines used in the model.<br />

The line types form must include all the line types referred to on all of the Lines forms, but it can also include other<br />

line types that are not currently in use in the model. This allows you to build up a library of standard line types<br />

which can then be easily used when building Lines.<br />

There is not enough room on the screen to show all the properties of all the line types, so <strong>OrcaFlex</strong> offers different<br />

view modes:<br />

� Individual mode shows one line type at a time, but shows you all its properties.<br />

� All mode shows all the line types, but different types of properties are shown in different tables.<br />

� Code Checks mode shows data used for post-processing code checks.<br />

� External Function Parameters mode shows the data used by any external functions referenced by the Line<br />

Type.<br />

The Line Type Wizard is available to help set up line type data to represent commonly used structures such as<br />

chains, ropes etc.<br />

Line Type Name<br />

Used to refer to the Line Type.<br />

Category<br />

Can be one of the following options.


w<br />

Homogeneous Pipe<br />

319<br />

System Modelling: Data and Results, Lines<br />

The Homogeneous Pipe category is appropriate for a pipe constructed from a single homogeneous material, for<br />

example a metal riser, or when modelling stress joints and bend stiffeners. The pipe's structural properties are<br />

defined by specifying Young's modulus, material density and pipe diameters. When modelling stress joints and bend<br />

stiffeners the outer diameter can be specified as varying with arc length.<br />

Equivalent Line<br />

The Equivalent Line category is intended for simple modelling of pipe-in-pipe and pipe-on-pipe lines. The program<br />

calculates combined line type properties (geometry, mass, stiffness etc.) of a number of different line types. Note<br />

that the data for equivalent line types can only be modified when using the Individual view mode.<br />

General<br />

The General category is used in all other situations. The axial, bending and torsional stiffnesses are directly input<br />

instead of being calculated from E. Similarly the mass is specified as mass per unit length as opposed to being<br />

calculated from a material density. This approach allows analysis of flexible risers, umbilicals, hoses, mooring<br />

chains, ropes, wires, bundles, seismic arrays, power cables, nets etc.<br />

Geometry & Mass Data<br />

Outer and Inner Diameter<br />

Used to define buoyancy and mass of contents per unit length respectively.<br />

These data can also be used for other purposes as follows:<br />

� If the Stress Diameters are set to '~' then these diameters are used for wall tension and stress results<br />

calculations.<br />

� If the Contact Diameter is set to '~' then the outer diameter is used for contact calculations.<br />

� If the Drag / Lift Diameters are set to '~' then the outer diameter is used.<br />

Profiled line types (homogeneous pipe only)<br />

For homogeneous pipes the outer diameter can vary with arc length. To do this you first specify the profile in a Line<br />

Type Outer Diameter variable data source which is then referenced by the outer diameter data of the line type.<br />

This feature is used when modelling stress joints and bend stiffeners. Arc length is defined relative to the start of the<br />

line section which uses this line type and increases from End A towards End B.<br />

CG Offset<br />

The x and y coordinates of the centre of gravity (CG) relative to the centreline. These data items are only used when<br />

torsion is being modelled. Note that if the line has contents then the contents CG is assumed to be at the centreline<br />

and is not affected by this CG Offset.<br />

Bulk Modulus<br />

Specifies the compressibility of the line type. If the line type is not significantly compressible, then the Bulk Modulus<br />

can be set to Infinity, which means incompressible. See Buoyancy Variation.<br />

Material Density (homogeneous pipe only)<br />

The density of the material.<br />

Mass per Unit Length<br />

The mass of the line or pipe structure, excluding contents, per unit length. For homogeneous pipes the material<br />

density is used to calculate the structural mass and therefore the mass per unit length data item cannot be edited.<br />

Coatings & Linings Data<br />

Coatings and Linings are available for homogeneous pipe only.<br />

They are typically used with steel pipes to model the additional mass and displacement of concrete coatings, plastic<br />

linings etc. They contribute mass, weight and displacement and also modify the pipe's inner and outer diameters.<br />

However, they contribute no additional structural strength and are assumed not to be load bearing. Stress results<br />

are calculated based on stress diameters equal to the underlying pipe diameters.


System Modelling: Data and Results, Lines<br />

Thickness and Material Density<br />

320<br />

w<br />

The thickness specifies the physical dimension of the coating or lining. For a coating the buoyancy diameter, contact<br />

diameter and drag diameters are all increased by twice the coating thickness. Similarly the pipe's inner diameter is<br />

reduced by twice the lining thickness which has the effect of reducing the contents mass and weight.<br />

The material density is used, together with the thickness, to calculate the additional mass and weight of the coating<br />

or lining.<br />

Multiple layers<br />

The data on the Line Type data form only allow single coating or lining layers to be specified. It is, however, also<br />

possible to specify multiple layers of coatings or linings. To do this you define Coatings or Linings variable data<br />

sources which are then referenced by the thickness data on the Line Type data form.<br />

These data sources specify a list of layers defined by thickness and material density. The layers are listed in the<br />

order of application. In other words the first layer is immediately adjacent to the pipe, the second layer is next to the<br />

first layer, and so on.<br />

Limits Data<br />

Limit Compression<br />

The program has two modes for handling slack segments, i.e. when the distance between two adjacent nodes<br />

becomes less than the original unstretched segment length:<br />

� No means that the segment is treated as a strut which can support unlimited compression. This is the preferred<br />

model except where bend stiffness is insignificant.<br />

� Yes means that the segment is treated as an elastic Euler strut – the compression is limited to the segment Euler<br />

load. This is a better model for cases where the bend stiffness is insignificant, such as for chains and soft ropes.<br />

The segment Euler load is given by π 2 EI/L0 2 where EI is the bending stiffness of the pipe and L0 is the unstretched<br />

length of the segment. In all cases, whenever a segment has been compressed to or beyond the segment Euler load,<br />

then a warning of this is given on the results form and in the statistics table.<br />

For items such as mooring chain, the bending stiffness is zero, and the segment Euler load is also zero. In this case<br />

"Limit Compression" should be set to "Yes" – this correctly models a chain or very flexible rope, which cannot<br />

support any compression. The segment Euler load warning is then simply a warning that the line has gone slack.<br />

For a line with non-zero bend stiffness the Euler load warning is effectively a warning that the segments at that<br />

point are too long to accurately model the bending that is occurring. Effectively, bending is occurring at a scale that<br />

is less than the segment length, so shorter segments are needed to model it accurately. Using shorter segments in<br />

that area will give a larger segment Euler load, and to obtain an accurate solution you should, ideally, use sufficiently<br />

short segments that the resulting segment Euler load is not reached. See Line Compression and Modelling<br />

Compression in Flexibles for details.<br />

Allowable Tension<br />

The maximum permitted tension for this type of line. This value is used to draw a limit curve on Tension Range<br />

Graphs and to calculate the Normalised Tension. It does not limit the tension achieved in the line. If no limit curve is<br />

wanted then you may input "~".<br />

Minimum Bend Radii (MBR)<br />

You can specify the minimum permitted radii of curvature for bending about the x and y-directions. These values<br />

are optional – they are only used to draw "allowable" curves on range graphs and in the calculation of Normalised<br />

Curvature results. They do not limit the bend radius of the line. If you do not want these curves then set the x-radius<br />

to "~" (meaning "not applicable") and the y-value to "~" (meaning "same as x-value").<br />

Often the radii for the x and y-directions are equal and this can be specified by setting the y-radius to "~" which<br />

means "same as x-radius".<br />

The specified values are used to draw "allowable curvature" curves on the x and y-Curvature range graphs, and also<br />

(if the x and y-minimum radii are equal) on the Curvature range graph. In addition, they are used (together with the<br />

specified bend stiffness) to derive "allowable bend moment" curves which are drawn on the x and y-Bend Moment<br />

range graphs, and also (if the x and y-values are equal) on the Bend Moment range graph. The MBR is also used to<br />

calculate Normalised Curvature.


w<br />

321<br />

System Modelling: Data and Results, Lines<br />

Notes: MBR can be specified as a variable data item defined as a table relating MBR to tension – either<br />

wall tension or effective tension can be used. A typical example of this would be a steel core<br />

umbilical. A variable MBR is used solely in the calculation of Normalised Curvature.<br />

Structure Data<br />

The "allowable" curve may not be visible on the range graph, since it may be outside the range<br />

covered by the graph. To see the "allowable" curve in this case you will need to modify the graph to<br />

increase the range of values covered.<br />

Young's Modulus (homogeneous pipe only)<br />

The Young's modulus of the material which can be constant or variable.<br />

� A constant value results in linear material properties.<br />

� A variable data item specifies a non-linear stress-strain relationship which results in a bending stiffness with<br />

non-linear elastic behaviour. Note however that the axial and torsional stiffnesses are still assumed to be linear.<br />

For homogeneous pipes the Young's modulus determines the axial, bending and torsional stiffnesses. These stiffness<br />

data items are reported on the data form, although they cannot be edited.<br />

Bend Stiffness<br />

The bend stiffness is the slope of the bend moment-curvature curve. You can specify separate values for bending<br />

about the x and y-directions, but often these are equal. This can be achieved by setting the y-bend stiffness to '~'<br />

which means 'same as x-bend stiffness'.<br />

The bend stiffness specified may be zero, for example for chains. It can also be very large values, for example for<br />

steel pipes, but this will often result in short natural periods in the model and hence require short simulation time<br />

steps. See Inner and Outer Time Steps.<br />

You can specify the bend stiffness to be linear, elastic non-linear, hysteretic non-linear or externally calculated,<br />

as follows. See Calculating Bend Moments for further details of the bending model used.<br />

Linear Bend Stiffness<br />

For normal simple linear behaviour, specify the bend stiffness to be the constant slope of the bend momentcurvature<br />

relationship. This slope is the equivalent EI value for the line, where E is Young's modulus and I is the<br />

moment of area of the cross-section. The bend stiffness equals the bend moment required to bend the line to a<br />

curvature of 1 radian per unit length.<br />

Non-Linear Bend Stiffness<br />

For non-linear behaviour, use variable data to specify a table of bend moment magnitude against curvature<br />

magnitude. <strong>OrcaFlex</strong> uses linear interpolation for curvatures between those specified in the table, and linear<br />

extrapolation for curvatures beyond those specified in the table. The bend moment must be zero at zero curvature.<br />

For homogeneous pipes the Plasticity Wizard may be useful to help set up the table.<br />

With non-linear bend stiffness you must also specify whether the hysteretic bending model should be used.<br />

� Non-hysteretic means that the non-linear stiffness is elastic. No hysteresis effects are included and the bend<br />

moment magnitude is simply the specified function of the current curvature magnitude.<br />

� Hysteretic means the bend moment includes hysteresis effects, so that the bend moment depends on the history<br />

of curvature applied as well as on the current curvature. Also note that if the hysteretic model is used then the<br />

line must include torsion effects.<br />

Warning: You must check that the hysteretic model is suitable for the line type being modelled. It is not<br />

suitable for modelling rate-dependent effects. It is intended for modelling hysteresis due to<br />

persisting effects such as yield of material or slippage of one part of a composite line structure<br />

relative to another part.<br />

If you use the hysteretic bending model then the simulation speed may be significantly slowed if there are a large<br />

number of points specified in the table of bend moment against curvature. You might be able to speed up the<br />

simulation, without significantly affecting accuracy, by removing superfluous points in areas where the curve is very<br />

close to linear. In addition hysteretic bend stiffness usually requires shorter time steps than non-hysteretic<br />

modelling, when using implicit integration.


System Modelling: Data and Results, Lines<br />

322<br />

w<br />

Note: If you are using non-linear bend stiffness, then the mid-segment curvature results reported depend<br />

on whether the bend stiffness is specified to be hysteretic or not. If the bend stiffness is not<br />

hysteretic then the mid-segment curvature reported is the curvature that corresponds to the midsegment<br />

bend moment (which is the mean of the bend moments at either end of the segment). If the<br />

bend stiffness is hysteretic then the mid-segment curvature cannot be derived in this way (because<br />

of possible hysteresis effects) so the mid-segment curvature reported is the mean of the curvatures<br />

at the ends of the segment. This difference may be significant if the bend stiffness is significantly<br />

non-linear over the range of curvatures involved.<br />

The Statics Model option controls how the non-linear bend stiffness table is interpreted during the statics<br />

calculation. There are two options:<br />

� Pressurised: The bend moment is calculated from the curvature by simple interpolation of the bend stiffness<br />

table. This option therefore behaves identically to the non-linear elastic model during statics.<br />

� Depressurised: The bend stiffness is linear with stiffness determined by the slope of the final two rows of the<br />

bend stiffness table. Once the dynamic simulation starts, the line is assumed to be pressurised and the hysteric<br />

model is applied. The program enforces continuity in the transition from linear stiffness in statics to hysteretic,<br />

non-linear stiffness in dynamics.<br />

To understand better the rationale behind this option consider the example of a flexible riser. A flexible riser is<br />

constructed using layers. When the riser is not pressurised, these layers are free to slide over each other. When the<br />

riser is pressurised, this leads to friction between the layers. As the riser is bent, this friction has the effect of<br />

increasing the apparent bend stiffness of the riser. Eventually, under bending, the friction reaches a limit and the<br />

layers are then able to slip over each other. This inter-layer friction is what gives rise to the hysteretic behaviour of a<br />

flexible riser.<br />

For the depressurised option the program is assuming that the post-slip stiffness is the same as the depressurised<br />

stiffness, and is given by the final two rows of the data table. So the depressurised option is to be used for scenarios<br />

where the static analysis models the riser before it has been pressurised. Typically the riser will be installed without<br />

internal pressure and so its geometry will be determined by the much lower, post-slip stiffness. However, once the<br />

riser is pressurised, the dynamic bending stiffness is higher due to the inter-layer friction.<br />

For further details see non-linear bend stiffness theory.<br />

The External results option allows you to specify an external function that can be used to track the bend stiffness<br />

calculation and provide user-defined results variables.<br />

Externally Calculated Bend Moment<br />

This option allows the bend moment to be calculated by an external function. If this option is used then the line must<br />

include torsion effects. The external function can be written by the user or other software writers. For details see<br />

the <strong>OrcaFlex</strong> programming interface (OrcFxAPI) and the OrcFxAPI documentation.<br />

Warning: Non-linear behaviour breaks the assumptions of the stress results and fatigue analysis in <strong>OrcaFlex</strong>.<br />

You should therefore not use these facilities when there are significant non-linear effects.<br />

Axial Stiffness<br />

The axial stiffness is the slope of the curve relating wall tension to strain. The data specifies the behaviour in the<br />

unpressured state, i.e. atmospheric pressure inside and out. Pressure effects, including the Poisson ratio effect, are<br />

then allowed for by <strong>OrcaFlex</strong>.<br />

You can either specify linear or non-linear behaviour, as follows:<br />

� For a simple linear behaviour, specify the axial stiffness to be the constant slope of the line relating wall tension<br />

to strain. This slope is the equivalent EA value for the line, where E is Young's modulus and A is the cross section<br />

area. It equals the force required to double the length of any given piece of line, assuming perfectly linear elastic<br />

behaviour. (In practice, of course, lines would yield before such a tension was reached.)<br />

� For a non-linear behaviour, use variable data to specify a table of wall tension against axial strain. <strong>OrcaFlex</strong> uses<br />

linear interpolation for strains between those specified in the table, and linear extrapolation for strains beyond<br />

those specified in the table. The wall tension is allowed to be non-zero at zero strain.


w<br />

323<br />

System Modelling: Data and Results, Lines<br />

Note: Axial strain is defined to equal (L - L0) / L0, where L and L0 are the stretched and unstretched<br />

length of a given piece of pipe. Here 'unstretched' means the length when unpressured and<br />

unstressed. When a pipe is pressured its tension at this 'unstretched' length is often not zero<br />

because of strains due to pressure effects. For a homogeneous pipe this can be modelled by<br />

specifying the Poisson ratio. For a non-homogeneous pipe (e.g. a flexible) the Poisson ratio may not<br />

be able to capture the pressure effects.<br />

Warning: Non-linear behaviour breaks the assumptions of the stress results and fatigue analysis.<br />

See Calculating Tension Forces for details of the tension model used.<br />

Note: If you use explicit integration for dynamic simulation then the axial stiffness specified here will<br />

have a major effect on how long the dynamic simulation will take. This is because very large axial<br />

stiffness values lead to very small natural periods for the nodes, and this in turn requires very small<br />

simulation time steps when using explicit integration. See Inner and Outer Time Steps.<br />

Poisson Ratio<br />

Fortunately, the value of axial stiffness used is often not very important, providing it is large<br />

enough that the axial strains produced are small. The exception to this is where snatch loads occur,<br />

since the axial stiffness directly affects the peak tension that results. It is therefore normally quite<br />

acceptable to specify a much smaller axial stiffness value than applies to the real line, so enabling<br />

much faster simulations. We recommend that artificially low axial stiffness values are specified,<br />

particularly for early investigative simulations. The effect of this can easily be investigated later by<br />

re-running a selection of important simulations with the actual axial stiffness value.<br />

This specifies the Poisson ratio of the material that makes up the wall of the line type. It is used to model any length<br />

changes due to the radial and circumferential stresses caused by contents pressure and external pressure.<br />

A Poisson ratio of zero means no such length changes. For metals such as steel or titanium the Poisson ratio is about<br />

0.3 and for polyethylene about 0.4. Most materials have Poisson ratio between 0.0 and 0.5.<br />

Note: The Poisson ratio effect is calculated assuming that the line type is a pipe made from a<br />

homogeneous material. It is not really applicable to complex structures such as flexibles, whose<br />

length changes due to pressure are more complex. However for such cases an effective Poisson<br />

ratio could be specified as an approximation.<br />

Torsional Stiffness<br />

The torsional stiffness is used only if torsion is included on the line data form.<br />

The torsional stiffness specifies the relationship between twist and torsional moment (torque). You can specify<br />

linear or non-linear behaviour, as follows:<br />

� For a simple linear behaviour, specify the torsional stiffness to be the constant slope of the torsional momenttwist<br />

per unit length relationship. This slope is the equivalent GJ value for the line, where G is the shear modulus<br />

and J is the polar moment of inertia. It equals the torque which arises if the line is given a twist of 1 radian per<br />

unit length.<br />

� For a non-linear behaviour, use variable data to specify a table of torque against twist per unit length. <strong>OrcaFlex</strong><br />

uses linear interpolation for curvatures between those specified in the table, and linear extrapolation for values<br />

outside those specified in the table. The torque must be zero at zero twist.<br />

See Calculating Torsion Moments for details on how this data is used.<br />

Note: When defining non-linear torsional stiffness you should specify values for both positive and<br />

negative twist per unit length. This allows you, for example, to have different stiffnesses for positive<br />

and negative twisting. If the behaviour is mirrored for positive and negative twist then you must<br />

specify the full relationship – <strong>OrcaFlex</strong> does not automatically reflect the data for you.<br />

Warning: Non-linear behaviour breaks the assumptions of the stress results and fatigue analysis.


System Modelling: Data and Results, Lines<br />

Drag, Lift & Added Mass Data<br />

Drag Coefficients<br />

324<br />

w<br />

The drag coefficients for the normal (x and y) directions and axial (z) direction are specified on the line type data<br />

form. For the x and y directions the drag coefficients can be one of the following options:<br />

� A fixed constant value.<br />

� A value that varies with Reynolds number.<br />

� A value that varies with Height above Seabed.<br />

� A value that varies with both Reynolds number and Height above Seabed.<br />

Often the coefficients for the x and y-directions are equal and this can be specified by setting the y-coefficient to "~",<br />

which means "same as x-coefficient". <strong>OrcaFlex</strong> also offers a choice (on the line data form) of different formulations<br />

for how the drag force components vary with the incidence angle.<br />

If wake interference effects are being modelled for a given line, then these normal drag coefficients on the line type<br />

data form specify the undisturbed drag coefficient. And the drag force will be calculated using a drag coefficient<br />

that is modified from this value according to the wake model used.<br />

For further details see the Line Theory section.<br />

Typical drag coefficient values<br />

For circular cylinders, the drag coefficient for normal flow depends on Reynolds number Re and surface finish. For<br />

values of Re between 2E4 and 3E5 the drag coefficient takes the value 1.2 and is independent of surface roughness.<br />

Values below this range are unlikely to occur in practice. For Reynolds numbers greater than 3E5, the drag<br />

coefficient is strongly dependent on both Re and surface roughness.<br />

For very smooth cylinders the drag coefficient falls rapidly to 0.28 at a Re of about 6E5 before recovering to a value<br />

of 0.5 for Re values above 2E6. For rough cylinders the effect is less marked, but remains significant.<br />

In view of this behaviour, the use of variable data for normal drag coefficients is strongly recommended. <strong>OrcaFlex</strong><br />

will then use the value of drag appropriate to the instantaneous local value of Reynolds number throughout the<br />

simulation.<br />

The functional form of the dependence is well documented in the open literature and also in proprietary data<br />

sources, such as ESDU 80025.<br />

Note that some of these sources take account of the effect of the amount of turbulence in the incoming flow by<br />

defining an effective Reynolds number. Consequently, care is needed to ensure that the data are presented in a form<br />

that is consistent with the definition of Reynolds number used by <strong>OrcaFlex</strong>.<br />

Results for Reynolds number and drag coefficient are available as time history results.<br />

The above values apply where vortex-induced vibration (VIV) is expected to be negligible. If significant VIV is<br />

anticipated, then drag coefficients may be increased significantly. If this is the case, a more detailed VIV analysis<br />

should be carried out.<br />

Axial drag results from skin friction only. In subcritical flow (Re < 3.8E5), the drag coefficient for axial flow, Ct, is<br />

0.008 for a smooth cylinder and 0.011 for a rough cylinder, based on ESDU data. At higher Re, ESDU suggest that<br />

skin friction may be neglected, i.e. Ct = 0. In practice, axial drag is often negligible and Ct = 0 is often acceptable.<br />

Lift Coefficient<br />

The lift coefficient is used to specify a lift force which acts in the direction normal to the line axis and in the plane of<br />

that axis and the seabed normal. It can be one of the following options:<br />

� A fixed constant value.<br />

� A value that varies with Reynolds number.<br />

� A value that varies with Height above seabed.<br />

� A value that varies with both Reynolds number and Height above seabed.<br />

For further details see the Line Theory section.


w<br />

Drag / Lift Diameters<br />

325<br />

System Modelling: Data and Results, Lines<br />

These are used when calculating drag area and lift area. They are also used for any wake interference modelling, and<br />

for VIV modelling if the VIV diameter is set to '~'. A drag diameter of '~' results in the outer diameter being used.<br />

Note: <strong>OrcaFlex</strong> calculates the normal drag / lift area to be DnL and the axial drag area to be πDaL where<br />

Dn is the normal drag / lift diameter, Da is the axial drag diameter and L is the element length. Note<br />

that different programs handle these calculations in different ways. For example it is common for<br />

programs to use a single drag / lift area for both normal and axial flow and in addition some<br />

programs do not include the factor of π in the axial drag area. Because of these differences you<br />

must be careful when comparing or transferring data between different programs.<br />

Added Mass Coefficients (Ca)<br />

The added mass coefficients Ca for normal (x and y-directions) and axial (z-direction) flow. A value of "~" for the ycoefficient<br />

is equivalent to setting it equal to the x-coefficient. See Added Mass for details.<br />

Inertia Coefficients (Cm)<br />

The inertia coefficients Cm for normal (x and y-directions) and axial (z-direction) flow. A value of "~" is equivalent to<br />

setting the coefficient to 1+Ca. See Added Mass for details.<br />

Note: Inertia coefficients are not specified for homogeneous pipe and are internally set to 1+Ca.<br />

Contact Data<br />

Contact Diameter<br />

Contact between lines and the seabed, elastic solids or other lines accounts for the diameter of the line. This value<br />

specifies the diameter to be used. If a value of '~' is specified then the line outer diameter is used.<br />

This value is also used in the calculation of Line Contact Clearance results and as the drawing diameter for shaded<br />

graphics views.<br />

Note: For contact between lines and the seabed or elastic solids contact is modelled between a node and<br />

the contact surface. For a node at a line section boundary, the contact diameter is chosen to be the<br />

larger of the contact diameters of the line types either side of the node. For line clashing, contact is<br />

modelled between two segments and so the line type contact diameter is used directly.<br />

Clash Stiffness and Clash Damping<br />

The stiffness and damping values used by the clashing algorithm. See Line Clashing.<br />

Damping is always zero when using the implicit integration scheme.<br />

Stress Data<br />

Stress Outer and Inner Diameter<br />

The stress diameters are the inside and outside diameters of the load-bearing cylinder. They are used in the wall<br />

tension and stress results calculations, which are based on the assumption that the loads in the line are taken by a<br />

simple homogeneous cylinder. For simple cases, the stress diameters can be set to '~', in which case they will be<br />

taken to be the same as the pipe diameters. For more complex cases, for example where the pipe outside diameter<br />

allows for added buoyancy modules that are not load bearing, the stress diameters can be set separately. See Line<br />

Results – Forces.<br />

Allowable Stress<br />

The maximum allowable stress for this type of line. This value is only used to draw a limit curve on Stress Range<br />

Graphs; it does not limit the stress achieved in the line. If no limit curve is wanted then you may input the tilde<br />

character "~" (meaning not applicable) instead of a number.<br />

Stress Loading Factors<br />

These are used to specify what proportion of the loads (tension, bend moment, shear and torque) are to be used<br />

when calculating wall tension and stress results. The effective tension, bend moment, shear force and torque are<br />

multiplied by the appropriate stress loading factor when they are used to calculate the wall tension and stress<br />

results.


System Modelling: Data and Results, Lines<br />

326<br />

w<br />

For many cases, e.g. when modelling a simple homogeneous pipe that carries all the loads, these load factors should<br />

be set to 1, the default value.<br />

In some cases, values less than 1 may be suitable. For example, consider a case where the line models a composite<br />

structure that consists of a main carrier pipe and an external piggyback pipe. You might estimate that the main pipe<br />

takes all of the tensile and torsional loads, but only carries 70% of the bending loads, the other 30% being taken by<br />

the piggyback pipe. Then to obtain stress estimates for the main pipe you could set the Stress Outer and Inner<br />

Diameters to '~' and set the bending and shear stress loading factors to 0.7.<br />

Note: The Stress Loading Factors only affect the wall tension results, stress results and fatigue analyses.<br />

These results are derived after the simulation has run, and because of this <strong>OrcaFlex</strong> allows these<br />

data items to be modified after a simulation has been run.<br />

Friction Data<br />

Seabed Friction Coefficients<br />

<strong>OrcaFlex</strong> applies Coulomb friction between the line and the seabed. The friction force applied never exceeds μR<br />

where R is the seabed reaction force and μ is the friction coefficient.<br />

Lines lying on the seabed often move axially more readily than they move laterally. To enable this effect to be<br />

modelled, you can specify different friction coefficients μ for motion normal (i.e. lateral) and axial to the line. For<br />

intermediate directions of motion <strong>OrcaFlex</strong> interpolates between these two values to obtain the friction coefficient μ<br />

to use. If the axial friction coefficient is set to '~' then the normal friction coefficient is used for μ for all directions of<br />

motion. This provides a convenient way of using the same friction coefficient for all directions of motion.<br />

See Friction Theory for further details of the friction model used.<br />

Note: The friction coefficient for contact with elastic solids is specified on the Solid Friction Coefficients<br />

data form.<br />

Typical values<br />

Published data are sparse. Some information is given in Puech (1984) and Taylor and Valent(1984). Both references<br />

distinguish between sliding friction and starting friction: starting friction is greater to represent the "breakout"<br />

force. <strong>OrcaFlex</strong> does not draw this distinction. In most cases, the sliding friction coefficient should be used; this will<br />

usually be conservative. Both references are written in the context of the contribution of chains and cables to anchor<br />

holding power, so we assume the friction values given are axial. Transverse values will be greater, perhaps by 50%<br />

to 100%.<br />

The values given below are recommendations from Taylor and Valent.<br />

Line type Seabed Type Starting Friction<br />

Coefficient<br />

Chain Sand 0.98 0.74<br />

Mud with sand 0.92 0.69<br />

Mud/clay 0.90 0.56<br />

Wire rope Sand 0.98 0.25<br />

Mud with sand 0.69 0.23<br />

Mud/clay 0.45 0.18<br />

Structural Damping Data<br />

Rayleigh Damping Coefficients<br />

Sliding Friction<br />

Coefficient<br />

A named Rayleigh Damping Coefficient data set. This data item can be set to "(no damping)", in which case no<br />

Rayleigh damping will be applied for this Line Type.<br />

This data is only available when using the implicit integration scheme.<br />

Equivalent Line Data<br />

The properties of an equivalent line type are calculated from properties of other line types. For example, consider a<br />

pipe-in-pipe system. These are often modelled by combining the properties of both external and internal lines into a


w<br />

327<br />

System Modelling: Data and Results, Lines<br />

single representative line type. Single representative values for mass, diameters, stiffnesses, etc. must be calculated<br />

and the equivalent line type category is designed to perform those calculations.<br />

The input data for an equivalent line type comprises the following:<br />

1. A carrier line type. This is a reference to an existing line type defined in the model.<br />

2. One or more secondary lines. These secondary lines are also defined by referencing existing line types.<br />

Secondary lines can be either internal or external.<br />

3. Other data. Not all equivalent line data can be derived by the program, e.g. drag, lift, added mass, fluid inertia,<br />

etc. Such data is provided by the user.<br />

Carrier Line<br />

The equivalent line properties are made by combining properties from a number of other line types. One of these<br />

line types is decreed to be the carrier line and is treated differently from the other secondary lines in the following<br />

ways:<br />

� Any internal secondary lines are deemed to be inside the bore of the carrier line.<br />

� The carrier line, together with the internal secondary lines, determines the cross-sectional area associated with<br />

the line contents data specified on the Line data form.<br />

� Stress results are reported for the carrier line.<br />

Secondary Lines<br />

Secondary lines are used to specify lines either internal or external to the carrier line. Multiple secondary lines can<br />

be defined. For each secondary line, the contents density must also be specified. This contents density is associated<br />

with the bore of the secondary line. The axial, bending and torsional stiffnesses of each secondary line can be<br />

specified as contributing or not contributing to the equivalent line's stiffness.<br />

Other Data<br />

Drag/lift coefficients, drag/lift diameters, added mass/inertia coefficients, CG Offset and Allowable Tension are all<br />

specified explicitly for an equivalent line.<br />

Modelling Details<br />

The program derives equivalent values for the line type as described in the subsequent sections. The values can be<br />

viewed using the All view mode, or alternatively from the Line Type properties report.<br />

In order to express the equivalent line property derivations we need to establish notation that distinguishes<br />

between the various different line types involved. We will use subscript notation as follows:<br />

Geometry<br />

e indicates properties of the equivalent line, e.g. ODe<br />

c indicates properties of the carrier line, e.g. ODc<br />

int[i] indicates properties of the ith internal secondary line, e.g. ODint[i]<br />

ext[i] indicates properties of the ith external secondary line, e.g. ODext[i]<br />

ODe is calculated to give a displacement equal to the displacement of the carrier line together with all the external<br />

lines:<br />

ODe = √(ODc 2 + Σ ODext[i] 2 )<br />

IDe is calculated to give an internal cross-sectional area equal to that of the carrier line minus the external crosssectional<br />

area of all the internal lines:<br />

Mass<br />

IDe = √(IDc 2 - Σ ODint[i] 2 )<br />

Mass per unit length, Me, is the sum of the mass per unit length for the carrier line and all secondary lines:<br />

Structure<br />

Me = Mc + Σ Mint[i] + Σ Mext[i]<br />

Axial stiffness, EAe, is the sum of the EA for the carrier line and all secondary lines that contribute to axial stiffness:


System Modelling: Data and Results, Lines<br />

EAe = EAc + Σcontributes EAint[i] + Σcontributes EAext[i]<br />

328<br />

w<br />

Here the notation Σcontributes means that the summation is performed only for those secondary lines that contribute to<br />

axial stiffness.<br />

Analagous formulae are used for bending stiffness and torsional stiffness.<br />

Stress<br />

The stress data is set so that stress results are reported for the carrier line. To achieve this the stress diameters and<br />

the allowable stress for the equivalent line are set to be the corresponding values for the carrier line. The tensile<br />

stress loading factor, C1e, is defined as follows:<br />

C1e = C1c(EAc/EAe)<br />

Likewise, the torsional stress loading factor C4e is defined to be:<br />

C4e = C4c(GJc/GJe)<br />

The bending stress loading factor, C2e, is defined similarly but with the minor complication that there is only a single<br />

value despite there being separate stiffness values for x and y, EIx and EIy. This is not a practical limitation since the<br />

stress results derivation is predicated on the material being isotropic. However, for sake of completeness the<br />

program handles this issue as follows:<br />

C2e = C2c.max(EIxc/EIxe, EIyc/EIye)<br />

Finally, the shear stress loading factor, C3e, is simply set equal to C2e.<br />

Other data<br />

The remaining line type data falls into two categories:<br />

� Data which must be set explicitly, as described above.<br />

� Data which are automatically set to the value of the carrier line: bulk modulus, compression is limited, minimum<br />

bend radius, Poisson ratio, contact diameter, clashing stiffness/damping, friction coefficients and Rayleigh<br />

damping coefficients.<br />

Code Checks Data<br />

The code check data can be found by setting the Line Type view mode to Code Check.<br />

API RP 2RD<br />

Data used for the API RP 2RD stress calculation.<br />

Design case factor Cf<br />

See API RP 2RD, section 4.4, table 2 and section 5.2.3.1.<br />

This value is a property of the entire model. To modify it using batch script you must first select the General object.<br />

Corrosion thickness<br />

The corrosion thickness, tcorrosion, is used to determine the minimum wall thickness (denoted by tmin in API RP 2RD,<br />

section 5.2.4.4) using the following equation:<br />

tmin = t - tcorrosion<br />

where t is the nominal wall thickness, i.e. (ODstress - IDstress)/2.<br />

SMYS<br />

The material minimum yield strength (SMYS), denoted σy in API RP 2RD, section 5.2.3.1.<br />

Drawing Data<br />

Pen<br />

Defines the colour, line style and thickness of the pen used for drawing this line type. See How Objects Are Drawn.<br />

For each line there is a choice, on the Line Data form, of whether to draw the sections of the line using these Line<br />

Types pens, or whether to define a specific pen to use for all the sections of the line.


w<br />

External Functions<br />

Parameters<br />

329<br />

System Modelling: Data and Results, Lines<br />

This data item specifies the External Function Parameters, a free form multi-line text field which is passed to any<br />

external function used by the Line Type.<br />

Plasticity Wizard<br />

<strong>OrcaFlex</strong> allows you to specify non-linear bend stiffness for Line Types. The data is given as a table of bend moment<br />

against curvature. If you are modelling a uniform, homogeneous pipe you can use the Plasticity Wizard to create<br />

this table.<br />

Once you have entered the appropriate data as described below, click the Calculate button and the curvature / bend<br />

moment relationship is generated. The Bend Stiffness variable data source that is created is initialised to be<br />

hysteretic.<br />

The Plasticity Wizard is opened by clicking the "Plasticity Wizard" button on the Variable Data form.<br />

Note: Before you can open the Plasticity Wizard you must have created and selected a Bend Stiffness<br />

variable data source.<br />

Plasticity Wizard Data<br />

The Plasticity Wizard requires the following data:<br />

Stress Diameters<br />

The inside and outside diameters of the load-bearing cylinder.<br />

Direct Tensile Strain<br />

The Plasticity Wizard calculates bend moment curvature relationship by integrating the stress profile across the<br />

pipe cross-section. This calculation requires a direct tensile strain to be specified – this data item serves that<br />

purpose.<br />

Stress-Strain relationship<br />

The relationship between stress and strain can be specified by either Ramberg-Osgood curve or Stress-Strain<br />

table.<br />

Material E, Reference Stress (σy), K, n (Ramberg-Osgood curve only)<br />

These data define the relationship between stress (σ) and strain (ε) in terms of a Ramberg-Osgood curve as follows:<br />

ε(σ) = σ/E + K(σ/σy) n for σ ≥ 0.<br />

ε(σ) = -ε(-σ) for σ < 0.<br />

The reference stress parameter is usually taken to be the yield stress, which is why it is denoted σy here.<br />

Note that there is an alternative parameterisation of the Ramberg-Osgood equation. It is straightforward to convert<br />

between the two forms of the equation but please take care to ensure that the data you input correspond to the<br />

parameterisation used by <strong>OrcaFlex</strong>.<br />

Stress, Strain (Stress-Strain table only)<br />

This table directly specifies the relationship between stress and strain. Values for positive strain must be entered<br />

and the relationship for negative strain is then determined by reflection so that σ(ε) = -σ(-ε). The table is<br />

interpolated linearly and for values of strain outside the table linear extrapolation will be used.<br />

Maximum curvature for derived data source<br />

The Bend Stiffness variable data source is defined for curvature values between 0 and Cmax = εmax/Ro where Ro is the<br />

radius to the outer fibre. The outer fibre strain corresponding to Cmax is denoted εmax and is defined as follows:<br />

� For a Ramberg-Osgood curve εmax = max{0.05, 5ε(σy)}. So the value used for εmax will be 5 times the strain<br />

corresponding to the reference stress or 5%, whichever is larger.<br />

� For a Stress-Strain table εmax is simply the largest value of strain specified in the table.


System Modelling: Data and Results, Lines<br />

Properties Report<br />

The Line Type properties report is available from the popup-menu on the data form.<br />

Individual page<br />

The Individual page reports the following derived values for a selected line type:<br />

Diameter profile, Profile length (only reported for profiled line types)<br />

The name of the variable data item that defines the profile, and its length.<br />

Weight in air<br />

The force due to gravity acting on the line type's mass.<br />

Displacement<br />

330<br />

w<br />

The weight of water displaced by the line type's volume. The reported value uses the water density at the sea<br />

surface.<br />

Weight in water<br />

Equals Weight in air - Displacement.<br />

Diam/Wt Ratio<br />

Equals Outer Diameter / Weight in water.<br />

Note: For Line Types that have a non-zero bore you must specify the contents density to be used in the<br />

calculation of the above properties, since this will affect the properties that involve weight.<br />

Used in, Contents Density<br />

The names and contents densities of each line that uses that line type.<br />

All page<br />

The All page contains a spreadsheet with two worksheets:<br />

� The Data sheet echoes the input data for each line type.<br />

� The Properties sheet presents a table containing, for each line type, the derived values from the Individual page,<br />

as described above.<br />

6.8.3 Attachments<br />

Attachment Types<br />

The Attachment Types form defines the properties of a number of named attachment types. Attachments with these<br />

properties can then be connected to lines. Attachment Types can be either Clump Types, Drag Chain Types, Flex<br />

Joint Types or Stiffener Types.<br />

The attachment types form must include all the attachment types referred to on all of the Lines data forms, but it can<br />

also include other attachment types that are not currently in use in the model. This allows you to build up a library<br />

of standard attachment types that can then be easily used when building Lines.<br />

Clumps<br />

A clump is a concentrated attachment that is connected to a node on a Line. It can be buoyant or heavy and is a small<br />

body that experiences forces (weight, buoyancy, drag etc.) exactly as for a 3D Buoy. But instead of being free to<br />

move it is constrained to move with the node and the forces acting on it are transferred to that node. A clump<br />

therefore adds to the mass, buoyancy and hydrodynamic force of the node to which it is attached.<br />

Clumps only have 3 degrees of freedom – X,Y and Z – which are determined by the position of the node to which they<br />

are attached. Clumps can be aligned with the global axes directions or alternatively they can be aligned with the<br />

node to which they are attached.<br />

Each clump is assigned a height and an offset from the node which are used to determine the Z coordinate of the<br />

clump for the purposes of evaluating buoyancy and hydrodynamic forces: no moment is applied to the node by the<br />

clump. Where the clump pierces the water surface, buoyancy and hydrodynamic forces are applied in proportion to<br />

the immersed length of the clump.


w<br />

331<br />

System Modelling: Data and Results, Lines<br />

Each clump is of a named clump type, from which it inherits all its properties. The clump types are specified on the<br />

Attachment Types form and have the following data.<br />

Clump Type Name<br />

Used to refer to the Clump Type.<br />

Mass<br />

Mass or weight in air.<br />

Volume<br />

Used to calculate buoyancy and added mass for each clump of this type on a line. Clumps may be either net buoyant<br />

or heavy as desired.<br />

Height<br />

Used for drawing the clump and also to determine how much of the clump is below the water surface.<br />

If the clump is aligned with global axes then it is centred at the Offset position above the node, and extends for half<br />

its Height above and below this point.<br />

If the clump is aligned with Line axes then it is centred at the node, and extends for half its Height either side of this<br />

point in the node's axial direction.<br />

Offset<br />

A clump may be offset vertically from the line, for example to represent a line supported below the surface by floats.<br />

The connection is not modelled fully: the clump is always treated as being at the specified offset vertically above<br />

(offset positive) or below (offset negative) the node to which it is attached.<br />

If the clump is aligned with Line axes then the clump offset is forced to be zero.<br />

Align with<br />

Determines whether the clump is aligned with Global Axes or Line Axes.<br />

This setting determines the clump's local directions. If it is aligned with global axes then the clump's local directions<br />

are the same as the global axis system. If it is aligned with Line axes then its local directions are the same as the node<br />

to which it is connected.<br />

Drag<br />

Drag forces are calculated in clump local directions for each clump on a line.<br />

where<br />

drag force = PW . ½ . Water Density . (velocity) 2 . Cd . Drag Area<br />

Cd is Drag Coefficient as specified here,<br />

Drag Area is specified here,<br />

velocity is the velocity of the fluid relative to the clump in the appropriate direction.<br />

Added Mass Coefficients<br />

Added mass in clump local directions is given by<br />

where<br />

Pen<br />

Added mass = PW . Ca . Water Density . Volume<br />

Ca is the Added Mass Coefficient as specified here.<br />

Defines the colour, line style and thickness of the pen used for drawing this clump type. See How Objects Are Drawn.<br />

Clump Type Properties Report<br />

The Clump Types properties report is available from the popup-menu on the data form. It reports the following:


System Modelling: Data and Results, Lines<br />

Weight in air<br />

The force due to gravity acting on the clump's mass.<br />

Displacement<br />

332<br />

w<br />

The weight of water displaced by the clump's volume. The reported value uses the water density at the sea surface.<br />

Weight in water<br />

Equals Weight in air - Displacement.<br />

Drag Chains<br />

Drag chains are attachments to a line that model straight chains that hang down from the line. They apply weight,<br />

buoyancy and drag forces to the node to which they are attached, but not any added mass effects. For details see<br />

Drag Chain Theory.<br />

Drag chains include two facilities that can be important in modelling towed systems. Firstly, the chain's drag<br />

coefficients can vary with the incidence angle of the relative flow; this enables modelling the effect that as the<br />

relative flow increases the chain hangs at a greater angle to the vertical and so fluid drag generates more lift, which<br />

is applied to the line. Secondly, drag chains interact with the seabed (in a simple manner); if the node comes closer<br />

to the seabed than the chain length, then the seabed provides a supporting reaction force and a friction force, both of<br />

which are applied to the node.<br />

Each drag chain is of a named drag chain type, from which it inherits all its properties. The drag chain types are<br />

specified on the Attachment Types form and have the following data.<br />

Name<br />

Used to refer to the Drag Chain Type.<br />

Length<br />

Length of the drag chain.<br />

Effective Diameter<br />

Effective diameter of the drag chain. This is the diameter of the cylinder that has the same displaced mass per unit<br />

length.<br />

Mass<br />

Mass per unit length. Mass is assumed to be uniformly distributed along the length of the drag chain.<br />

Friction Coefficient<br />

Coefficient of friction for contact with the seabed. This coefficient is used for all directions of friction. The value can<br />

be set to '~', in which case the drag chain will instead use the axial friction coefficient of the node to which the drag<br />

chain is attached.<br />

Drawing<br />

Defines the colour, line style and thickness of the pen used for drawing drag chains of this type. See How Objects Are<br />

Drawn.<br />

Drag Coefficients<br />

The fluid drag forces on the chain are specified by giving a table of the normal and axial drag coefficients, as a<br />

function of the incidence angle α between the relative velocity vector and the drag chain. So α = 0° means flow<br />

axially along the drag chain and α = 90° means flow normal to the drag chain.<br />

Coefficients are specified for a range of incidence angles between 0° and 90° and linear interpolation is used to<br />

obtain coefficients for intermediate angles. The Graph button shows the resulting coefficient variation. Symmetry is<br />

used to obtain coefficients for angles outside the range 0° to 90°.<br />

Note: To be realistic, the normal drag force should increase monotonically as the incidence angle α<br />

increases from 0 to 90. This turns out to require that the gradient of the normal drag coefficient<br />

curve Cdn(α) should be greater than -2.Cdn(α) / tan(α) for all α. <strong>OrcaFlex</strong> warns if the drag<br />

coefficient data does not satisfy this.<br />

See Drag Chain Theory for further details.


w<br />

Drag Chain Type Properties Report<br />

333<br />

System Modelling: Data and Results, Lines<br />

The Drag Chain Types properties report is available from the popup-menu on the data form. It reports the following:<br />

Length, Diameter<br />

The data as specified on the data form.<br />

Total Mass<br />

The total mass of the drag chain given by Length × Mass per unit Length.<br />

Total weight in air<br />

Equals Total Mass × g.<br />

Total displacement<br />

The weight of the volume of fluid displaced by the drag chain. The volume is given by Length × πD 2 /4 where D is the<br />

effective diameter as specified on the data form.<br />

Total wet weight<br />

Equals Total weight in air - Total displacement.<br />

Flex Joints<br />

Flex joints are attachments to a line that add additional bending stiffness to a particular node (specified by the<br />

attachment's z-position). This additional local stiffness acts in series with the stiffness of the underlying line type<br />

bend stiffness. If, for example, you set the stiffness for the flex joint to zero, then you effectively make that node pinjointed.<br />

Each flex joint has properties determined by a named Flex Joint Type. The Flex Joint Types are specified on the<br />

Attachment Types form and have the following data:<br />

Name<br />

Used to refer to the Flex Joint Type.<br />

Bend Stiffness<br />

Specifies the bend stiffness of the Flex Joint Type. You can specify separate values for bending about the x and ydirections.<br />

A y-bend stiffness value of '~' is interpreted as 'same as x-bend stiffness'.<br />

Similarly to line end connection stiffness the bend stiffness is specified in terms of moment per degree of deflection.<br />

Drawing<br />

Defines the colour, line style and thickness of the pen used for drawing flex joints of this type. See How Objects Are<br />

Drawn.<br />

Stiffeners<br />

Stiffeners are attachments to a line intended for use modelling bend stiffeners. Each stiffener has properties<br />

determined by a named Stiffener Type. The Stiffener Types are specified on the Attachment Types form and have<br />

the following data:<br />

Name<br />

Used to refer to the Stiffener Type.<br />

Line Type<br />

Determines the physical properties of the stiffener. Usually this will be a profiled homogeneous pipe.<br />

Because the stiffener properties are included in addition to the protected line properties this line type should just<br />

specify the properties of the stiffener.<br />

Length<br />

Defines the length of the stiffener. If the line type is profiled then the length is determined by the profile data and so<br />

cannot be edited here.


System Modelling: Data and Results, Lines<br />

Connection Arc Length, Relative to<br />

334<br />

w<br />

Defines the point on the stiffener which corresponds to the protected line attachment position. This correspondence<br />

is illustrated in the following table which assumes a stiffener length of 10:<br />

Protected line<br />

attachment<br />

arc length<br />

Stiffener<br />

connection<br />

arc length<br />

0 0 0-10<br />

5 0 5-15<br />

10 5 5-15<br />

50 10 40-50<br />

Protected line<br />

protected arc length<br />

range<br />

For a bend stiffener at End A of a line the connection arc length would set to 0 relative to End A. Similarly for a bend<br />

stiffener at End B of a line the connection arc length would set to 0 relative to End B.<br />

Axial load/inertia transfer<br />

Specifies how the axial loads and axial inertia are transferred from the stiffener to the protected line.<br />

If at connection point is specified then the axial loads and axial inertia for the entire stiffener line are transferred to<br />

the protected line at the connection point. This option is suitable when you wish to neglect the axial effects of<br />

friction due to contact between protected line and stiffener.<br />

If over full length is specified then the axial loads and axial inertia are transferred and shared across the full length<br />

of the stiffener. If the contact friction means that the protected line effectively carries the axial loads and inertia of<br />

the stiffener then this option should be used.<br />

For a stiffener which is connected to the protected line by means of a full length friction grip, e.g. a Cumberland Grip,<br />

then you should use the over the full length option for axial load/inertia transfer.<br />

More technical details of how this data item is used are given in Modelling Bend Stiffeners.<br />

6.8.4 Line Contact<br />

Modelling<br />

The Line Contact facility enables you to model contact between pairs of lines, and it is capable of modelling all sorts<br />

of contact situations. The model works by placing penetrators at the nodes or other points of one of the two lines,<br />

which then contact the inside or outside surface of a curved cylinder, whose axis follows a smooth spline fitted along<br />

the axis of the other line. For example, the line contact model permits <strong>OrcaFlex</strong> to model systems where:<br />

� One line is contained within another, such as pipe-in-pipe systems, pull-in operations.<br />

� One line is constrained to follow another at certain arc lengths, such as drilling riser choke and kill lines,<br />

installation guide wires, piggy-back risers.<br />

� One line strikes the outer surface of another, as seen in riser interference cases.<br />

Line Contact versus Line Clashing<br />

<strong>OrcaFlex</strong> also includes another way of modelling contact between lines, called Line Clashing. This is a different way<br />

of modelling contact between lines, and the Line Contact and Line Clashing models have different features. To help<br />

you judge which might be most suitable for your application, here are the main differences, advantages and<br />

disadvantages:<br />

� The line clashing model is essentially a segment-segment contact model. It models contact by treating each<br />

segment of the clash-checked line sections as being a straight cylinder, with an elastic outside surface, and then<br />

calculating any penetration between pairs of those cylinders and applying contact loads proportional to and<br />

opposing that penetration. The line contact model is a point-surface contact model, in which localised<br />

penetrators are attached at the nodes, or at other points, on one of the two lines (referred to as the penetrating<br />

line), and these contact the inner or outer surface of a curved cylindrical solid whose axis follows a smooth<br />

spline fitted through the nodes of the other line (referred to as the splined line).<br />

� The line contact model is a more sophisticated model that can be used for many different purposes. It can model<br />

internal contact, such as pipe-in-pipe or J-tube pull-in, as well as external contact. Friction can be included<br />

during dynamics in both the axial and circumferential directions. Line contact can model sliding contact,


w<br />

335<br />

System Modelling: Data and Results, Lines<br />

including cases where the lines move a lot relative to each other while in contact. The line clashing model, on<br />

the other hand, only models contact between the outer surfaces of the lines. Line clashing is not really suitable<br />

for cases where the contact persists while the contact location slides significantly along either line, since<br />

clashing does not include friction and the interaction is between straight segments. This means that if the<br />

contact location reaches a node then the clashing lines are likely to get locked together at that node (rather like<br />

a pair of multi-segment jointed rods would behave if they wrapped around each other).<br />

� If the line contact model is used for outside contact then there is a danger that the lines may pass through each<br />

other without contact occurring. This occurs if the nodes or penetrators on the penetrating line are more widely<br />

spaced than the outside diameter of the splined line. This is because the curved solid cylinder along the splined<br />

line could pass between the penetrators on the penetrating line, without making any contact. Because of this<br />

issue you would need to use short segments or place extra penetrators on the penetrating line; to ensure that<br />

line contact is captured. This problem does not arise with the line clashing model, since the whole of each clashchecked<br />

segment, rather than a set of points along its length, is checked for contact with all other clash-checked<br />

segments. So with the line clashing model, lines can only pass through one another without contact if the<br />

segments move a whole diameter or farther in a single time step.<br />

� Line contact is included in the static analysis, whereas line clashing is not – it is only active in the dynamic<br />

analysis.<br />

� Line clashing can model contact of one part of a line with another part of the same line. This is not possible in<br />

line contact – you would need to model the real continuous line with two separate lines, typically joined with a<br />

negligible 6d buoy, in order to model contact between the two parts.<br />

Interaction model<br />

Line contact is specified as a relationship between two distinct lines in an <strong>OrcaFlex</strong> model. One of those lines is the<br />

splined line, which has a smooth spline curve fitted between the line nodes. These splines allow <strong>OrcaFlex</strong> to<br />

represent the line as a smooth, deformable cylinder for contact. The other line in the relationship is the penetrating<br />

line. Penetrators attached to the nodes of the penetrating line interact with the splined line by contact with a flexible<br />

cylindrical elastic solid whose axis follows the spline.<br />

Note: The splines used for line contact modelling are distinct from the splines that may be used for a<br />

line's step 1 statics method.<br />

Contact is modelled by <strong>OrcaFlex</strong> attaching penetrators to some or all of the nodes of the penetrating line. By default,<br />

these are placed coincident with the line nodes, but their distribution along the line and offset from the line nodes<br />

may alternatively be set with user-specified data. When contact occurs between one of these penetrators and the<br />

contact surface presented by the splined line, force and moment are applied to the penetrator, which transfers those<br />

loads to the line node to which it is attached. Equal and opposite load is also applied to the contact surface, and that<br />

load is transferred to the nodes at either end of the splined line segment.<br />

The contact between penetrating line nodes and splined line segment elastic solids is the same as the contact<br />

between <strong>OrcaFlex</strong> lines and elastic solid shapes. Friction can therefore be applied to the contact during dynamics.<br />

Relative motion of the two lines will lead to rolling or sliding contact. The lines cannot be 'locked' together by this<br />

model.<br />

In order for the three interactions listed earlier to be implemented using the existing shape contact model, some<br />

further data about your intentions for the penetration must be provided to the line contact relationship. There are<br />

three types of behaviour illustrated below.<br />

Note: In the figures, the deviation of the spline from the line segments has been greatly exaggerated. It is<br />

expected that during practical use the segmentation will be sufficiently fine that the splines will<br />

remain close to the line segments.<br />

Penetrating Line is Inside<br />

The contained line is represented by the penetrating line. When the penetrating line nodes are within the length of<br />

the containing line, their penetrators will contact the inner bore of the containing line. The bore of the containing<br />

line is the only contact surface, so the contained line nodes cannot escape other than by running off the end of the<br />

containing line. The containing line is represented by the splined line.


System Modelling: Data and Results, Lines<br />

Contact Surface<br />

y<br />

x<br />

Line End Axes<br />

Splined Line Segment<br />

z<br />

y<br />

Penetrating Line Nodes<br />

z<br />

x<br />

336<br />

Spline<br />

Figure: Line Contact with penetrating line inside splined line<br />

Penetrating Line is Around<br />

w<br />

Some or all of the penetrating line nodes have penetrators which apply a constraint to the splined line. At other<br />

points the lines do not interact.<br />

The splined line runs within the constraints applied by the penetrating line. The splined line can move relative to the<br />

penetrators, and so the smooth splined shape is used to present a contact surface. The splined line is considered as a<br />

solid cylinder for this type of contact. This means that the only contact surface is the outer surface of the cylinder<br />

whose axis is defined by the segment splines.<br />

Penetrating Nodes<br />

Contact Surface From Spline<br />

Splined Line Node<br />

Figure: Line Contact with penetrating line around splined line<br />

Penetrating Line is Outside<br />

Spline<br />

The two lines are expected to be outside one another, and the nodes of the penetrating line make contact with the<br />

outer surface of the cylinder whose axis is defined by the splined line. In this case it is not usually important which<br />

of the two lines is chosen to have penetrators at its nodes, and which presents the contact surface.


w<br />

Line End Axes<br />

y<br />

x<br />

Splined Line Segment<br />

z<br />

y<br />

z<br />

x<br />

Contact Surface<br />

Penetrating Line Nodes<br />

337<br />

Spline<br />

Figure: Line Contact with penetrating line outside splined line<br />

Splined line cylindrical solid diameter<br />

System Modelling: Data and Results, Lines<br />

The flexible, cylindrical elastic solid whose axis follows the spline of the splined line takes its diameter from the line<br />

types used on the segments of the splined line. The line type contact diameter is used for outside or around contact,<br />

and the line type bore diameter (including modification due to linings) will be used for inside contact. At a change in<br />

the line types along the splined line, the diameter may change. This presents a discontinuity in the model, which<br />

may cause simulations to become unstable.<br />

To avoid such a discontinuity, <strong>OrcaFlex</strong> interpolates linearly at a change in diameter, over 10% of segment length on<br />

both sides of the node at the change in line type. This is illustrated below.<br />

Smaller diameter line type<br />

10% of segment length 10% of segment length<br />

Splined line node between line sections<br />

Larger diameter line type<br />

Contact diameter<br />

Figure: A change in diameter is interpolated across the change in line sections.<br />

Containment Scaling<br />

When a penetrating line is inside or around a splined line, one of the lines may protrude from the end of the other.<br />

Scaling is applied to the line contact force. Scaling may also be applied to the contained line's interaction with the<br />

seabed and elastic solids and the contained line's fluid kinematics when this occurs. The Containment Enabled<br />

choice determines if such scaling is applied to the contained line.<br />

Scaling for line contact depends on what proportion of the contact length represented by each penetrator overlaps<br />

with the length of the splined line. Scaling for the contained line's seabed contact, solid contact and fluid kinematics


System Modelling: Data and Results, Lines<br />

338<br />

w<br />

depends on how much of the line length represented by each of the contained line's nodes overlaps with the length<br />

of the containing line.<br />

When <strong>OrcaFlex</strong> determines how much length from a line node or penetrator overlaps the length of another line, any<br />

angle between the two lines is ignored. The figure below shows penetrators in two cases where the assumptions<br />

made result in the same scaling factor of approximately 0.4 being used.<br />

Node Length<br />

Penetrating Nodes<br />

Segment Midpoint<br />

Splined Line Node<br />

Overlap Length<br />

Assumed segment position<br />

Figure: Scaling assumes that penetrator length is aligned with the splined line axis.<br />

Scaled Fluid Loads<br />

When a line contact relationship specifies that its penetrating line is Inside or Around the splined line, then some<br />

length of the inner line (the penetrating line if it is Inside, or the splined line if the penetrating line is Around)<br />

might be contained inside the outer line, for part or all of the simulation. When this occurs, <strong>OrcaFlex</strong> can<br />

automatically shield the contained length of inner line from the environmental fluid forces, in the same way that the<br />

inner line's contact with elastic solids and the seabed is shielded. For a shielded length of line, <strong>OrcaFlex</strong> will instead<br />

apply fluid forces from the contents fluid and contents motion in the containing outer line. This shielding behaviour<br />

is enabled or disabled using the Containment Enabled check-box for a line contact relationship.<br />

The containment behaviour depends on the Contents Method used by the outer line, as follows:<br />

� The outer line cannot have its Contents Method set to Slug Flow – it must be either Uniform or Free-Flooding.<br />

� If the outer line Contents Method is Uniform, then the inner line is treated as being fully contained within the<br />

outer line at all times. In this case the external pressure and buoyancy force experienced by the inner line nodes<br />

will be calculated using the internal contents pressure and density of the outer line. And the fluid dynamic<br />

forces applied to a given inner line node will be calculated based on external fluid velocity and acceleration<br />

vectors that are taken to equal the velocity and acceleration of that part of the outer line that contains the inner<br />

node at that time.<br />

� If the outer line Contents Method is free-flooding, then the external pressure and density are as for a normal<br />

(i.e. non-contained) line. For the fluid dynamic loads on the inner line, <strong>OrcaFlex</strong> will calculate what proportion<br />

of each inner line node is contained within the outer line at each instant. If the inner node is fully contained (i.e.<br />

all of the length of inner line that it represents is inside the outer line at that time), then the external fluid<br />

velocity and acceleration used to calculate the fluid dynamic forces on the inner line node will be the velocity<br />

and acceleration of the part of the outer line that contains that inner node at that time. If the inner node is not<br />

within the outer line at all, then the external fluid velocity and acceleration used will be those of the sea, due to<br />

any current and waves. If the inner node is part-contained, e.g. with proportion λ of its node length inside the<br />

outer line and proportion 1-λ protruding beyond the end of the outer line, then the external fluid velocity and<br />

acceleration used to calculate the fluid dynamic forces will be λ times the motion of the outer line end, plus 1-λ<br />

times the motion of the sea. See above for details of how the containment scaling factor λ is calculated.


w<br />

339<br />

System Modelling: Data and Results, Lines<br />

Note: A line can be an inner line in more than one contact relationship, but only if either (a) the outer<br />

line involved is the same in all those relationships, or (b) the outer lines involved all have their<br />

Contents Method set to be free-flooding, and each inner line node is inside at most one of those<br />

outer lines at any one time. This option (b) allows contact relationships to be set up to model pullin<br />

of a single inner line through multiple free-flooding outer lines, providing each inner line node<br />

leaves one outer line before entering the next outer line.<br />

Warnings: The containment modelling does not apply to any attachments to the inner line. So any attached<br />

clumps, drag chains, stiffeners or 6d buoys will experience external fluid conditions that ignore any<br />

containment of the inner node to which they are attached. Attachments to any contained inner<br />

node will therefore – probably wrongly – be subject to fluid loading based on the fluid density,<br />

pressure and kinematics of the sea, not those of the fluid contents of the containing line.<br />

The line results Relative Velocity, Normal Relative Velocity, Axial Relative Velocity, Strouhal<br />

Frequency, Reynolds Number, Seabed Normal Resistance and Seabed Normal Resistance/D (when<br />

the default linear seabed resistance model is used) do not take into account line containment. They<br />

therefore report the fluid conditions or seabed interaction that the node would have experienced if<br />

it had been fully exposed to the environment. The relative velocity and seabed resistance results<br />

reported are scaled by each node's containment scaling factor in order to arrive at the conditions<br />

actually applied during the simulation. Often, the node is completely contained, and therefore the<br />

environmental velocity and seabed resistance values are scaled down to zero. These effects<br />

therefore do not affect fully contained nodes at all during the simulation.<br />

Note that you should take care if any VIV modelling, wake interference or lift forces due to seabed proximity are<br />

specified for an inner line section for which containment might occur. Specifically:<br />

� Any VIV modelling and lift forces specified in the data will be disabled on an inner line node whenever any<br />

amount of the length of line modelled by the node is contained, and so shielded, by the outer line. An inner line<br />

node that enters into, or emerges from, an outer line end during the simulation will therefore experience a<br />

discontinuity when the force from these effects is suddenly disabled (when entering containment) or re-enabled<br />

(when emerging from containment).<br />

� Any Wake interference effects specified in the data are not affected by inner line containment – they will<br />

continue to be included even if the inner line node is contained within the outer line. The inner line nodes will<br />

therefore still generate wake, if that is specified in the data, and will still react to any wake from upstream lines<br />

that generate wake. This is not appropropriate for any inner line nodes that are contained, since they will be<br />

shielded by the outer line. So it is therefore recommended that you do not specify wake generation or wake<br />

reaction for any inner line section that will be contained at any time during the simulation.<br />

Data<br />

Line contact data for all lines in the model are specified on a single data form with two pages: Relationships and<br />

Penetrator Locations.<br />

Relationships<br />

Penetrating Line, Penetrating Line Is, Splined Line<br />

These three choices select two lines from those present in the model, and specify the contact and containment<br />

relationship between them.<br />

The splined line will present a curved cylindrical contact surface to the penetrators attached to the penetrating line,<br />

and the curved cylinder axis will follow a smooth spline curve that follows and passes through the nodes of the<br />

splined line.<br />

Penetrators on the penetrating line, as specified by the Penetrator Locations data, will then come into contact with<br />

this surface if they meet it, and experience reaction and friction forces that are calculated using the Normal<br />

Stiffness and Shear Stiffness. The splined line contact surface will be either the external or internal surface of its<br />

curved cylinder, depending on whether the penetrating line is specified to be Inside, Outside or Around the splined<br />

line. For more detail on how this interaction is modelled, see the modelling page.<br />

Penetrator Locations<br />

Penetrators are attached to some or all of the nodes of the penetrating line. The default behaviour is to attach a<br />

penetrator at every node on the penetrating line, at the node centre. Alternatively, the distribution and position of


System Modelling: Data and Results, Lines<br />

340<br />

w<br />

penetrators on the penetrating line can be specified in detail, by defining a named data set of penetrator locations on<br />

the Penetrator Locations page of the data form, and then selecting that name set on the Relationships page.<br />

Containment Enabled<br />

This choice instructs <strong>OrcaFlex</strong> whether fluid loads and elastic solid contact on the inner line in this relationship<br />

should take account of its containment within the outer line. For details of how containment is handled see Line<br />

Contact Modelling.<br />

Normal and Shear Stiffness<br />

Normal Stiffness is the reaction force that the contact generates per unit depth of penetration per unit area of<br />

contact. Shear stiffness is used by the friction calculation. A value of '~' results in the Normal Stiffness being used.<br />

Stiffness may be set to zero, in which case no contact forces will be applied, but fluid loads will still be affected by<br />

any containment that the relationship gives.<br />

Friction Coefficients<br />

Normal and axial friction coefficients. If the axial coefficient is set to '~' then the normal friction coefficient is used<br />

for all directions of motion.<br />

For full details of the friction calculation see Friction Theory.<br />

Penetrator Locations<br />

Number of data sets, Name<br />

A set of penetrator locations represents a specific distribution of line contact penetrators along the penetrating line.<br />

Each data set is named, rather than being associated with a particular relationship. These locations can therefore be<br />

used by more than one relationship if desired.<br />

Position, z relative to<br />

The penetrator locations are specified by giving their x, y and z position relative to the penetrating line. The z value<br />

specifies the arc length along the penetrating line, starting from zero at end A, and the x and y values specify the<br />

offset from the penetrating line axis, in line axes directions. <strong>OrcaFlex</strong> will attach a penetrator to the line node<br />

nearest to the arc length required. A radial offset of the penetrator from the line node can be specified using the x-y<br />

position data.<br />

Contact Diameter, Contact Area<br />

The contact properties of these penetrators are specified here. The contact length considered for scaling is the area<br />

divided by diameter.<br />

6.8.5 Rayleigh Damping<br />

Rayleigh damping is used to model structural damping for Lines and is only available when using the implicit<br />

integration scheme.<br />

Classical Rayleigh damping<br />

Classical Rayleigh damping uses a system damping matrix C defined as:<br />

where<br />

C = μM + λK<br />

μ is the mass proportional Rayleigh damping coefficient.<br />

λ is the stiffness proportional Rayleigh damping coefficient.<br />

M is the system structural mass matrix.<br />

K is the system structural stiffness matrix.<br />

With this formulation the damping ratio is the same for axial, bending and torsional response.<br />

Classical Rayleigh damping results in different damping ratios for different response frequencies according to the<br />

following equation:<br />

where<br />

ξ = 0.5(μ/ω + λω)


w<br />

ξ is the damping ratio (a value of 1 corresponds to critical damping).<br />

ω is the response frequency in rad/s.<br />

341<br />

System Modelling: Data and Results, Lines<br />

It can be seen from this that the mass proportional term gives damping ratio inversely proportional to response<br />

frequency and the stiffness proportional term gives damping ratio linearly proportional to response frequency.<br />

Separated Rayleigh damping<br />

In addition to classical Rayleigh damping <strong>OrcaFlex</strong> offers a separated Rayleigh damping model where C is defined as:<br />

where<br />

C = μM + λaKa + λbKb + λtKt<br />

λa is the stiffness proportional Rayleigh damping coefficient for axial deformation.<br />

λb is the stiffness proportional Rayleigh damping coefficient for bending deformation.<br />

λt is the stiffness proportional Rayleigh damping coefficient for torsional deformation.<br />

Ka is the system structural stiffness matrix corresponding to axial deformation.<br />

Kb is the system structural stiffness matrix corresponding to bending deformation.<br />

Kt is the system structural stiffness matrix corresponding to torsional deformation.<br />

Note that K = Ka + Kb + Kt.<br />

The separated model allows for different damping ratio in axial, bending and torsional response.<br />

Data<br />

Each Line Type has structural damping properties determined by a named Rayleigh Damping Coefficient data set.<br />

Multiple Rayleigh Damping Coefficient data sets can be defined, each with the following data.<br />

Rayleigh damping mode<br />

<strong>OrcaFlex</strong> offers four distinct methods for specifying the Rayleigh damping coefficients:<br />

� Stiffness proportional.<br />

� Mass and stiffness proportional.<br />

� Coefficients (classical).<br />

� Coefficients (separated).<br />

Stiffness proportional and Mass and stiffness proportional methods<br />

These methods allow you to specify structural damping in terms of % critical damping ratio. In addition you need<br />

to specify response periods at which the damping ratio will be achieved. For Stiffness proportional damping only<br />

one response period can be specified.<br />

If Response Period 1 is set to '~' then <strong>OrcaFlex</strong> will choose response periods automatically based on the wave<br />

period, or peak period Tp for a random wave. This method is generally recommended and is particularly useful if<br />

you are running a batch of cases with varying wave conditions.<br />

<strong>OrcaFlex</strong> uses the classical Rayleigh damping model and reports the mass and stiffness proportional coefficients μ<br />

and λ.<br />

Coefficients (classical) and Coefficients (separated) methods<br />

For these methods you specify the damping coefficients directly.<br />

Damping ratio graph<br />

The damping ratio graph plots the damping ratio that will be achieved for a range of response frequencies. The<br />

graph's x-axis can be either period of frequency.


System Modelling: Data and Results, Lines<br />

Guidance<br />

Variation of damping ratio<br />

342<br />

w<br />

Rayleigh damping is viscous damping that is proportional to a linear combination of mass and stiffness. The<br />

damping matrix C is given by C = μM + λK where M, K are the mass and stiffness matrices respectively and μ, λ are<br />

constants of proportionality.<br />

Rayleigh damping does afford certain mathematical conveniences and is widely used to model internal structural<br />

damping. One of the less attractive features of Rayleigh damping is that the achieved damping ratio varies as<br />

response frequency varies. The stiffness proportional term contributes damping that is linearly proportional to<br />

response frequency and the mass proportional term contributes damping that is inversely proportional to response<br />

frequency. Mathematically, these frequency dependencies can be seen in the formula for damping ratio ξ = π(μ/f +<br />

λf) where f is the response frequency.<br />

The plot below illustrates how the separate mass and stiffness damping terms contribute to the overall damping<br />

ratio:<br />

Damping ratio<br />

6%<br />

5%<br />

4%<br />

3%<br />

2%<br />

1%<br />

Mass and Stiffness Mass term Stiffness term<br />

0%<br />

0 1 2 3 4 5<br />

Response angular frequency (rad/s)<br />

(μ=0.025, λ=0.023)<br />

Figure: Variation Of Damping Ratio With Frequency<br />

Artificial over-damping of system response<br />

Consider a system which has two primary responses: one at the wave frequency and the other at a much lower<br />

frequency, for example due to vessel drift. Clearly Rayleigh damping constants must be chosen carefully to avoid the<br />

mass proportional term resulting in over-damping of the low frequency response.<br />

It is common practice to do this by using the stiffness proportional term only. For example the DNV dynamic riser<br />

code DNV-OS-F201 (Appendix A, K103) makes the following recommendation: "It should also be observed that the<br />

mass proportional damping would give damping due to rigid body motions. The mass proportional damping is<br />

therefore normally neglected for compliant structures undergoing large rigid body motions." In other words the<br />

recommendation for such systems is to use stiffness proportional damping (the red curve above).<br />

This is a good argument. However, an analogous argument can also be made about any high frequency response. If<br />

only stiffness proportional damping is used then any high frequency response will be over-damped. It is quite<br />

common for systems to have responses at frequencies higher than the wave frequency. Since high frequency<br />

responses are often damaging to a system it is important to model them accurately. Stiffness proportional damping<br />

is very effective at artificially removing high frequency responses from an analysis and this is a danger that must be<br />

avoided.<br />

Avoiding over-damping of system response<br />

We recommend the following procedure for applying Rayleigh damping:


w<br />

1. Identify a number of critical load cases.<br />

2. Run these cases without Rayleigh damping.<br />

343<br />

System Modelling: Data and Results, Lines<br />

3. Identify the minimum and maximum frequencies present in the system response, fmin and fmax.<br />

4. Apply mass and stiffness proportional Rayleigh damping with response periods set to 1/fmin and 1/fmax.<br />

This technique will apply the specified damping ratio at responses with frequency fmin and fmax. For frequencies<br />

between fmin and fmax the damping ratio will be less than the specified damping ratio which ensures that artificial<br />

over-damping is avoided.<br />

Note: Since this approach leads to a damping ratio less than the specified damping ratio for frequencies<br />

between fmin and fmax it could be argued that the response will be under-damped. Generally this<br />

conservative under-damping is far less significant than the non-conservative over-damping that we<br />

are trying to avoid.<br />

If your system response is concentrated at the wave frequency for all critical design cases then it is safe to apply<br />

stiffness proportional damping.<br />

Discussion<br />

The above procedure will help you avoid non-conservative over-damping of high or low frequency responses in<br />

your system. However, it is quite laborious and time-consuming. Can we adopt a simpler approach?<br />

For a great many of the systems that are analysed by <strong>OrcaFlex</strong> it turns out that structural damping has little or no<br />

effect on system performance. For subsea lines the structural damping is usually negligible in comparison with the<br />

damping due to hydrodynamic drag. For this reason Rayleigh damping can usually be ignored for analysis of subsea<br />

lines. For systems which show significantly different responses when Rayleigh damping is applied you should check<br />

that this is not due to the over-damping issues described above.<br />

For in-air lines (e.g. jumper hoses) the situation is different. These lines have no hydrodynamic damping and so the<br />

structural damping can be significant. For such lines it is very easy for resonant responses to be excited and if no<br />

damping is modelled then these responses do not decay. In this situation Rayleigh damping can be very useful. It is,<br />

of course, important to apply it carefully as described above.<br />

One common phenomenon that is sometimes modelled with Rayleigh damping is the damping due to internal<br />

friction between layers of a pressurised, unbonded flexible riser. This effect is strongly amplitude dependent and is<br />

poorly represented by Rayleigh damping. The problem is that the damping ratio depends on the amplitude of<br />

response. This makes the damping ratio very difficult to set and it will differ for different load cases. Instead we<br />

recommend that you use a hysteretic bend stiffness which gives a more accurate model of the riser.<br />

6.8.6 P-y Models<br />

Data<br />

P-y models are used to specify horizontal soil loads for near-vertical line objects that extend beneath the seabed.<br />

You can define one or more named P-y models which can then be associated with individual Line objects. The P-y<br />

model data can be specified to vary with depth beneath the seabed.<br />

Input data for P-y Models<br />

Name<br />

Used to refer to the P-y Model.<br />

Depth below seabed<br />

Specifies the range of depths over which each set of P-y curve data applies. The P-y curve data is treated as constant<br />

over this range of depths. However, the two API RP 2A formulations provide load-deflection curves that vary with<br />

depth given constant input data.<br />

Model type<br />

One of the following options:<br />

� The API RP 2A Soft Clay option uses the load-deflection curves for piles in soft clay under short-term static<br />

loading as specified in API RP 2A (2000).<br />

� Similarly, the API RP 2A Sand option uses the API RP 2A (2000) load-deflection curves for sand.


System Modelling: Data and Results, Lines<br />

� The P-y Table option allows you to specify the load-deflection curves directly in tabular form.<br />

Effective unit soil density (Soft Clay and Sand)<br />

The effective density of the soil, equal to the saturated soil density minus the sea water density.<br />

344<br />

w<br />

Note: The value specified in <strong>OrcaFlex</strong> is a density value (mass per unit volume), whereas in the API RP 2A<br />

code the value is expressed as a weight value (force per unit volume).<br />

Undrained shear strength, J, εc (Soft Clay)<br />

The input parameters to the API RP 2A Soft Clay model. Note that εc is specified as a percentage strain.<br />

C1, C2, C3, k (Sand)<br />

The input parameters to the API RP 2A Sand model.<br />

Deflection, Resistance (Table)<br />

The load-deflection curve in tabulated form.<br />

Modelling Details<br />

Note: The line properties report contains detailed information of how the P-y model data is interpreted<br />

and applied in the <strong>OrcaFlex</strong> model.<br />

When a P-y model is associated with a line, the horizontal load-deflection curves for the line are setup as follows:<br />

� Immediately prior to the static calculation each node on the line is assigned a nominal position, P0.<br />

� The node at the bottom end of the line is assigned a nominal position defined by its position in the reset state.<br />

� All other nodes have nominal positions on a straight line passing through the bottom node's nominal position,<br />

and with direction determined by the bottom node's end orientation.<br />

� Adjacent node's nominal positions are separated by the length of the line segment.<br />

� The depth of each node's nominal position is then used to determine which set of P-y curve data is used.<br />

� The P-y load and deflection are calculated radially in the horizontal plane, as described below.<br />

Note: It is expected that the shallowest P-y curve will start from the seabed, i.e. have Depth From equal to<br />

zero. However, the program does not enforce this and will not attach P-y springs to any nodes that<br />

are above this initial depth yet below the seabed.<br />

When a P-y model is active a number of modifications are made to the modelling of the line. In particular, all normal<br />

seabed reaction forces are suppressed for the line. Other lines in the model which do not use P-y models are still<br />

subject to normal seabed reaction forces. Nodes that have P-y springs attached are further modified as follows:<br />

� Drag, lift, added mass and hydrodynamic inertia effects are suppressed.<br />

� Time domain VIV loading is suppressed.<br />

� Wake interference modelling (both wake creation and reaction to wakes) is suppressed.<br />

Buoyancy and pressure calculations are not affected by the presence of a P-y model. You may extend the sea density<br />

profile beneath the seabed if you want to vary the fluid density used to calculate these effects.<br />

The use of P-y models also influences the interfaces to SHEAR7 and VIVA.<br />

Each P-y model type ultimately leads to a relationship between lateral deflection y and soil resistance p. The<br />

deflection is obtained by subtracting the node's instantaneous position, P, from its nominal position, P0, and then<br />

projecting into the horizontal plane. The magnitude of this horizontal vector is taken to be the deflection y. If we<br />

write P-P0 in component form as (dX, dY, dZ) then y = √(dX 2 + dY 2 ). From the deflection value y, the soil resistance p is<br />

calculated, see below. The load is then defined to be pDL where D and L are the node's contact diameter and length,<br />

respectively. This load is applied in the horizontal plane, towards P0. The deflection and resistance at each node are<br />

available as results variables.


w<br />

Inclination<br />

Ez<br />

End A<br />

P0<br />

Figure: P-y modelling<br />

Load-deflection curves<br />

API RP 2A Soft Clay<br />

y<br />

Ex<br />

P<br />

345<br />

Inclination<br />

E x<br />

System Modelling: Data and Results, Lines<br />

E z<br />

P0<br />

End B<br />

The load-deflection formulation is based on the ultimate unit lateral bearing capacity of the soil, pu. The code<br />

provides two equations for this:<br />

(6.8.2-1) pu = 3c + ɣX + JcX/D<br />

(6.8.2-2) pu = 9c<br />

where c is the undrained shear strength, D is the pile diameter, ɣ is the effective unit weight of soil, J is a<br />

dimensionless empirical constant and X is the depth below soil surface.<br />

The first equation, 6.8.2-1 is meant to capture the reduced lateral bearing capacity of the soil close to the surface.<br />

The intent of the code is that pu is defined by whichever of 6.8.2-1 and 6.8.2-2 gives a smaller value. The code<br />

approaches this by defining XR, the depth to which the reduced resistance zone extends, and applying 6.8.2-1 for<br />

X


System Modelling: Data and Results, Lines<br />

p/pu y/yc<br />

1.00 8.0<br />

1.00 ∞<br />

where yc = 2.5εcD.<br />

346<br />

w<br />

Note: The table above is taken from API RP 2A Supplement 3 and differs from earlier versions of the API<br />

code. <strong>OrcaFlex</strong> 9.5 used the version of the table that was presented in earlier versions of the API<br />

code. <strong>OrcaFlex</strong> 9.6 and later use the version of the table presented above.<br />

API RP 2A Sand<br />

The load-deflection formulation is based on the ultimate bearing capacity of the soil, pu. The code provides two<br />

equations for this:<br />

(6.8.6-1) pu = (C1H + C2D)ɣH<br />

(6.8.6-2) pu = C3DɣH<br />

where D is the pile diameter, ɣ is the effective unit weight of soil and H is the depth below soil surface.<br />

Both equations 6.8.6-1 and 6.8.6-2 should be evaluated and pu taken to be the smaller value. The resistance p is then<br />

defined to be:<br />

p = (Apu/D) tanh(kHy/Apu)<br />

where A = max(0.9, 3-0.8H/D).<br />

P-y Table<br />

The input data specifies a table of deflection and resistance values. The deflection column must include the value<br />

zero, and must be specified in increasing order. For deflections exceeding the largest specified deflection value, the<br />

resistance associated with that largest specified deflection value is used. For other deflection values, linear<br />

interpolation is used.<br />

6.8.7 Line Results<br />

This section describes the line results that are available for the static and dynamic analyses. These results are<br />

available using the Results Selection form.<br />

Results from the modal analysis and fatigue analysis are described elsewhere – see the Modal Analysis and Fatigue<br />

Analysis sections.<br />

Selecting which Categories of Line Results are Shown<br />

For Lines there are a large number of results variables available on the Results form. So <strong>OrcaFlex</strong> groups the results<br />

variables into the following categories:<br />

� Positions.<br />

� Motions.<br />

� Angles.<br />

� Forces.<br />

� Moments.<br />

� Contact.<br />

� Pipe Stress / Strain.<br />

� End Loads.<br />

To ease results selection the Show boxes on the results form allow you to choose which of these categories of<br />

variables are shown in the Variable list. To get the full list of available variables simply select all the categories. But<br />

normally there are several categories of variable that you do not currently need, in which case de-selecting them<br />

reduces the displayed list of variables to a more manageable set.


w<br />

Specifying the Position on the Line<br />

347<br />

System Modelling: Data and Results, Lines<br />

For line results you need to specify the position on the line at which you want results. This is done by setting the<br />

entries in a row in the Position table on the results form. You are then offered the Variables that are available for<br />

the point specified by the currently-selected row.<br />

Each row in the table specifies one point on the line. There are multiple rows in the table, so you can set up rows<br />

specifying a number of different points of interest and then easily switch between them by choosing which row you<br />

select. In a row that you don't want to use you can set the Node or Arc Length column to '~', meaning 'unspecified'.<br />

Three rows in the table are dedicated to special arc lengths on the line:<br />

� The first and last rows in the Position table are dedicated to the line's end points A and B.<br />

� The next to last row in the table is dedicated to the Touchdown point. This is defined to be the first node on the<br />

seabed (starting from the Top End). If the results variable selected is a segment variable (i.e. is only available at<br />

mid-segment points) then the value reported for the touchdown point is the mid-segment valued in the segment<br />

that precedes the Touchdown node. When there are no nodes on the seabed then the results variable is reported<br />

as N/A (meaning 'not available') and the graph shows no value.<br />

Arc Length and Node Columns<br />

The Arc Length column specifies how far along the line the point is, measured from zero at End A. For information,<br />

if you set the Arc Length column then the adjacent Node cell is set to the number of the nearest node to that arc<br />

length.<br />

The Node column can also be used as an alternative way of setting the arc length. You can set the Node column to<br />

the number of a node on the line. The adjacent Arc Length cell will then be set to the arc length to that node. The<br />

node number must be in the range 1 (the node at End A) to N+1 (the node at End B), where N is the total number of<br />

segments in the line.<br />

Note: The actual arc length for which line results are reported may not be exactly the specified arc<br />

length. <strong>OrcaFlex</strong> reports results for the 'nearest appropriate' result point. See Result Points below.<br />

R and Theta Columns<br />

For some variables (e.g. stress components) you must also specify the position of the point within the cross section<br />

through the specified arc length. Whenever one of these variables is selected in the Variables list, two extra<br />

columns become visible in the Position table. These extra columns specify the polar coordinates (R,Theta) of the<br />

point within the cross section; see the diagram in the Pipe Stress Calculation section. The R column can only be set<br />

to either Inner or Outer, meaning the radii corresponding to the Stress ID or Stress OD respectively. Results are not<br />

available for points between these two radii.<br />

Clearance Results<br />

Clearance results can be reported either as clearances from this line to all other lines or from this line to a specified<br />

other line. You choose which of the options is used from the drop-down list labelled "Clearances are reported as<br />

clearances from".<br />

Result Points<br />

<strong>OrcaFlex</strong> uses a discretised model and so results are only available at nodes, mid-segment points and line ends; we<br />

call these points 'result points'. The available result points depend on which variable you request, they are<br />

documented in the description of the variable.<br />

When you ask for a variable at a specified arc length <strong>OrcaFlex</strong> gives the value for the 'nearest appropriate' result<br />

point. The phrase 'nearest appropriate' here means that <strong>OrcaFlex</strong> considers the available result points that are in the<br />

same section as the arc length you specified and then chooses the one that is nearest to the arc length you specified.<br />

If you specify an arc length that is exactly at the boundary of two sections then <strong>OrcaFlex</strong> uses the section that starts<br />

at that arc length.<br />

<strong>OrcaFlex</strong> always labels results with the actual arc length to the result point to which they apply, so you can check to<br />

ensure that you are getting results at the result point you want.


System Modelling: Data and Results, Lines<br />

Positions<br />

X, Y and Z<br />

Available at nodes. The global coordinates of the selected node.<br />

Layback<br />

348<br />

w<br />

Available at nodes. The horizontal component of distance between the selected node and the touchdown point.<br />

Layback is not defined (N/A) if there is no touchdown point, that is if there are no nodes on the seabed. Likewise, if<br />

the selected node is after the touchdown point, then Layback is not defined.<br />

Proportion Wet<br />

Available at nodes. The proportion of the part of the line that the node represents, that is submerged in the sea. The<br />

value is in the range 0 to 1, a value of 0 meaning no submersion and 1 meaning is completely submerged. For details<br />

see Line Interaction with the Sea Surface.<br />

Sea Surface Z<br />

Available at nodes. The global Z coordinate of the sea surface directly above the instantaneous position of the<br />

selected node.<br />

Depth<br />

Available at nodes. The depth of the node beneath the sea surface (= Surface Z - Node Z).<br />

Sea Surface Clearance<br />

Available at nodes. The vertical clearance from node centre to the instantaneous sea surface. Negative values mean<br />

that the node is submerged.<br />

Arc Length<br />

Available at nodes. The arc length from End A to the selected point. This is normally only useful for the touchdown<br />

point, since for other points it is constant. For the touchdown point it gives the arc length from End A to the first<br />

node on the seabed, or zero if there is no touchdown.<br />

Expansion Factor<br />

Available at mid-segments. The expansion factor of the selected segment.<br />

Transverse VIV Offset<br />

Available at nodes. This is the node's offset from the non-VIV node position, in the transverse VIV direction.<br />

Estimated Transverse A/D<br />

Available only at nodes that use one of the time domain VIV models from the VIV Toolbox. The amplitude of the<br />

oscillation in the transverse VIV direction divided by the node's VIV diameter.<br />

Motions<br />

Velocity, GX-Velocity, GY-Velocity, GZ-Velocity,<br />

Acceleration, GX-Acceleration, GY-Acceleration, GZ-Acceleration<br />

Available at nodes. The magnitude and components (with respect to global axes) of the velocity and acceleration of<br />

the node.<br />

Warning: The velocity results are derived by numerically differentiating the logged positions of the node with<br />

respect to time, using the central difference scheme. The acceleration results are derived by a<br />

further such numerical differentiation. Because of this the accuracy of the results (especially the<br />

accelerations) will depend on the log sample interval. If the log sample interval is large then the<br />

results will not show higher frequency components of velocity and acceleration. If the log sample<br />

interval is small then the results may be inaccurate due to loss of precision due to subtraction.<br />

Acceleration rel. g, x-Acceleration rel. g, y-Acceleration rel. g, z-Acceleration rel. g<br />

Available at nodes. The magnitude and components, in node axes directions, of the acceleration vector, a, of the<br />

node, relative to the vertically downwards acceleration due to gravity, g. That is, these results report the vector a - g.


w<br />

349<br />

System Modelling: Data and Results, Lines<br />

This relative acceleration can be thought of as the acceleration of the point P relative to the free-falling state. This is<br />

the acceleration that would be reported by an accelerometer attached to the node (since an accelerometer reading<br />

of zero corresponds to free-falling), with its measurement directions aligned with the node axes directions.<br />

Relative Velocity, Normal Relative Velocity, Axial Relative Velocity<br />

Available at nodes. Relative Velocity is the velocity of the fluid relative to the node, i.e. Vfluid - Vnode. The results<br />

reported are the magnitude of the relative velocity and its normal and axial components (relative to the line). For<br />

the axial component, a positive value means that the fluid is moving (relative to the line) towards End B.<br />

The fluid velocity used is the velocity of the principal fluid affecting the node. The principal fluid is defined as<br />

follows:<br />

1. If proportion dry > 0.5 and the Include wind loads on Lines option is enabled in the Environment data then the<br />

principal fluid is the air.<br />

2. Otherwise the principal fluid is the sea.<br />

Note: For a node that is above the water surface <strong>OrcaFlex</strong> reports a relative velocity based on the fluid<br />

velocity at the surface point vertically below the node.<br />

Warnings: The relative velocity results are derived using the node velocity results, so see the accuracy warning<br />

given above.<br />

Strouhal Frequency<br />

The relative velocity results are reported without taking into account possible containment arising<br />

from participation in line contact. For more details, see the Containment Scaling section of the line<br />

contact documentation.<br />

Available at nodes. The Strouhal Frequency is defined to be St.V/D where St=0.2, V is the normal component of<br />

relative velocity and D is the normal drag diameter.<br />

Warning: Strouhal frequency is reported without taking into account possible containment arising from<br />

participation in line contact. For more details, see the Containment Scaling section of the line<br />

contact documentation.<br />

Reynolds Number<br />

Available at nodes. The Reynolds number is a measure of the flow regime. <strong>OrcaFlex</strong> offers a number of different<br />

options for the calculation of Reynolds number, specified on the Environment data form.<br />

Warning: Reynolds number is reported without taking into account possible containment arising from<br />

participation in line contact. For more details, see the Containment Scaling section of the line<br />

contact documentation.<br />

x-Drag Coefficient, y-Drag Coefficient, z-Drag Coefficient, Lift Coefficient<br />

Available at nodes. These are the drag and lift coefficients used in the calculation.<br />

For constant coefficients then these results report the values given in the user's data, except for a node at the<br />

junction between two sections with different coefficients, where an effective average value is used.<br />

If the line's drag or lift coefficients vary with Reynolds number or Height above Seabed then these results report the<br />

computed value that was used.<br />

If the line uses a wake oscillator VIV model with inline drag amplification then the amplification factor is included in<br />

these results. The inline drag amplification factor is also available as a separate result.<br />

Wake Velocity Reduction Factor, Wake Cd, Wake Cl<br />

Available at nodes only, for lines which include sections that react to wake effects.<br />

Wake Velocity Reduction Factor is the factor applied to the velocity at the node as a result of upstream wake effects.<br />

Wake Cd and Wake Cl are the drag and lift coefficients respectively, used to calculate the hydrodynamic forces at the<br />

node as a result of any upstream wake effects.<br />

Note: Wake Cl is positive when the lift force is applied in the y direction of the upstream wake's frame of<br />

reference and negative when the lift force is applied in the -y direction of the upstream wake's<br />

frame of reference.


System Modelling: Data and Results, Lines<br />

Angles<br />

Azimuth, Declination and Gamma<br />

350<br />

w<br />

Available at mid-segment points and line ends. These angles report the local orientation of the line relative to global<br />

axes. The gamma angle is defined as for line ends – see Line End Orientation.<br />

Declination is in the range 0° to 180°. Range jump suppression is applied to Azimuth and Gamma (so values outside<br />

the range -360° to +360° might be reported).<br />

Ez-Angle, Exy-Angle, Ezx-Angle, Ezy-Angle<br />

Available at mid-segment points and line ends. The direction angles of the mid-segment point, relative to the end<br />

axes of the nearest line end. See End Direction Results.<br />

Ez-Angle is in the range 0° to 180°. Range jump suppression is applied to Exy-Angle, Ezx-Angle and Ezy-Angle (so<br />

values outside the range -360° to +360° might be reported).<br />

Twist<br />

Available at mid-segment points. The twist per unit length experienced by the segment.<br />

Fluid Incidence Angle<br />

Available at nodes. The angle between the relative velocity direction and the line axial direction. A value in the range<br />

0° to 90°.<br />

No-Moment Azimuth, No-Moment Declination<br />

Available at line ends. The azimuth and declination angles, relative to global axes, of the no-moment direction at the<br />

end, allowing for any motion of the object to which the line is attached. These results are only available if the end<br />

orientation angles are defined.<br />

No-Moment Declination is in the range 0° to 180°. Range jump suppression is applied to No-Moment Azimuth (so<br />

values outside the range -360° to +360° might be reported).<br />

End Force Azimuth, End Force Declination<br />

Available at line ends. The azimuth and declination of the end force vector, relative to global axes.<br />

End Force Declination is in the range 0° to 180°. Range jump suppression is applied to End Force Azimuth (so values<br />

outside the range -360° to +360° might be reported).<br />

End Force Ez-Angle, End Force Exy-Angle, End Force Ezx-Angle, End Force Ezy-Angle<br />

Available at line ends. The direction angles of the end force vector, with respect to the frame of reference of the line<br />

end. See End Direction Results. These results are only available if the end orientation angles are defined.<br />

End Force Ez-Angle is in the range 0° to 180°. Range jump suppression is applied to the other 3 end force angles (so<br />

values outside the range -360° to +360° might be reported).<br />

VIV Stagnation Point, VIV Neg Separation Point, VIV Pos Separation Point<br />

Available only at nodes that use one of the vortex tracking VIV models from the VIV Toolbox. The values reported<br />

are the angular positions of the stagnation and separation points.<br />

Forces<br />

Effective Tension and Wall Tension<br />

Available at mid-segment points and line ends. The structural force along the line axis. Positive values denote<br />

tension and negative values denote compression.<br />

The reported wall tension is the total wall tension, Tw, scaled by the tensile stress loading factor. By default this<br />

loading factor equals 1.<br />

For details of the difference between the effective tension, Te, and the wall tension, Tw, see the Line Pressure Effects<br />

section. In particular see the note on that page if the line type stress diameters differ from the outer and inner<br />

diameters.


w<br />

Normalised Tension<br />

351<br />

System Modelling: Data and Results, Lines<br />

Defined to be Effective Tension divided by Allowable Tension. Available at mid-segment points and line ends; not<br />

available if the Allowable Tension is set to '~'.<br />

Contents Density<br />

Available at nodes. This result is most useful when the free-flooding or slug flow contents methods are in use.<br />

Shear Force, x-Shear Force, y-Shear Force, Shear Force component, In-plane Shear Force, Out-of-plane Shear Force<br />

Available at mid-segment points and line ends. The magnitude of structural force normal to the line axis, its<br />

components in the local x and y-directions, its component in the user specified local direction theta and its<br />

components in the in-plane and out-of-plane directions.<br />

The out-of-plane direction is normal to both the line's axis (at the specified arc length) and the vertical direction.<br />

The in-plane direction is normal to both the line's axis and the out-of-plane direction.<br />

If the line's axis is vertical then these directions are ill-defined and therefore no values can be reported.<br />

Vortex Force Magnitude,<br />

Inline Vortex Force, Transverse Vortex Force,<br />

GX-Vortex Force, GY-Vortex Force, GZ-Vortex Force<br />

Available only at nodes that use one of the time domain VIV models from the VIV Toolbox. The magnitude of the lift<br />

and drag force per unit length of line, and its components in the VIV directions and global axes directions. For<br />

details, see the documentation of the relevant time domain VIV model.<br />

Inline Drag Amplification Factor<br />

Available only at nodes that use one of the wake oscillator VIV models from the VIV Toolbox. The instantaneous<br />

value of the Inline Drag Amplification Factor.<br />

Moments<br />

Bend Moment, x-Bend Moment, y-Bend Moment, Bend Moment component, In-plane Bend Moment, Out-of-plane Bend<br />

Moment<br />

Available at mid-segment points and line ends. The magnitude of bend moment, its components in the local x and ydirections,<br />

its component in the user specified local direction theta and its components in the in-plane and out-ofplane<br />

directions.<br />

The out-of-plane direction is normal to both the line's axis (at the specified arc length) and the vertical direction.<br />

The in-plane direction is normal to both the line's axis and the out-of-plane direction.<br />

If the line's axis is vertical then these directions are ill-defined and therefore no values can be reported.<br />

Curvature, x-Curvature, y-Curvature, Curvature component, In-plane Curvature, Out-of-plane Curvature<br />

Available at mid-segment points and line ends. The magnitude of curvature, its components in the local x and ydirections,<br />

its component in the user specified local direction theta, the in-plane and out-of plane-components and<br />

its components in the in-plane and out-of-plane directions, as defined above.<br />

When pre-bend is modelled curvature results are reported relative to the pre-bent curvature.<br />

Note: When using non-linear bend stiffness, the reported mid-segment curvature depends on whether the<br />

bend stiffness is specified to be hysteretic or not. For details see the note in the Non-linear Bend<br />

Stiffness section.<br />

Warning: Curvature results are accurate only if the segment length is sufficiently short. The accuracy can be<br />

estimated by performing a sensitivity study on segment length in the area of interest.<br />

Normalised Curvature<br />

Available at mid-segment points and line ends. Defined to be Curvature divided by Allowable Curvature.<br />

If minimum bend radius (MBR) is specified as varying with wall tension then this variation is taken into account<br />

when calculating Normalised Curvature.


System Modelling: Data and Results, Lines<br />

352<br />

w<br />

Bend Radius, x-Bend Radius, y-Bend Radius, Bend Radius component, In-plane Bend Radius, Out-of-plane Bend Radius<br />

Available at mid-segment points and line ends. The magnitude of bend radius, its components in the local x and ydirections,<br />

its component in the user specified local direction theta and its components in the in-plane and out-ofplane<br />

directions, as defined above.<br />

When pre-bend is modelled these results are reported relative to the pre-bent curvature.<br />

Torque<br />

Notes: Bend radius is defined to be 1 / curvature. If the curvature is 0 then a value of 'Infinity' is reported.<br />

When using non-linear bend stiffness, the reported mid-segment curvature depends on whether the<br />

bend stiffness is specified to be hysteretic or not. For details see the note in the Non-linear Bend<br />

Stiffness section.<br />

Warning: Bend radius results are accurate only if the segment length is sufficiently short. The accuracy can<br />

be estimated by performing a sensitivity study on segment length in the area of interest.<br />

Available at mid-segment points and line ends only, and available only for lines with torsion included. The<br />

component of structural moment along the line axis.<br />

Contact<br />

Line Clearance Results<br />

Line Centreline Clearance, Line Clearance<br />

Available at mid-segment points and line ends. These line clearance results report shortest distances between the<br />

segment or line end and the segments of other lines in the model. These distances can be either the shortest distance<br />

between centrelines (Line Centreline Clearance) or the shortest distance between outer edges (Line Clearance).<br />

The results selection form lets you choose to report clearances either:<br />

� from this line to all other lines or<br />

� from this line to a specified other line.<br />

In the text below we refer to the other lines used in the clearance calculations as the clearance lines, be they all other<br />

lines or a single specified other line.<br />

Line Centreline Clearance reports the centreline clearance from this line to the clearance lines. More precisely, the<br />

clearance reported for a segment is the shortest distance from the centreline of the segment to the centreline of any<br />

segment on the clearance lines. Note that the clearance reported therefore does not allow for the radii of the lines<br />

involved. When clearance is reported for a line end it reports the shortest distance from the centreline of the point<br />

at the end node to the centreline of any segment on the clearance lines.<br />

Line Clearance is similar but it reports the clearance between line outer edges, allowing for their contact diameters.<br />

Note: Line Clearance can report negative values. This means that the segments in question are<br />

penetrating each other. If clashing is being modelled for both segments then a clash force will<br />

result from this penetration.<br />

The line clearance variables are useful for checking for clashing between lines. They are available in both range<br />

graph and time history form. The range graph, for a given period of the simulation, enables you to see where on the<br />

line clashing may be a problem. You can then examine the time history of line clearance for that point on the line, to<br />

see when closest approach occurs. You can then use the replay to examine which other line is coming closest.<br />

It is sometimes worth choosing carefully which line to check for clearance. An example is checking for clashing<br />

between a single mooring line and one or more of a number of closely spaced flowlines. Let us assume that you are<br />

reporting clearances from all other lines. The clearance graphs for the flowlines will include clearance to the other<br />

flowlines, between which clashing may not be a concern. The mooring line clearance is probably more useful, since<br />

it only includes clearance to the flowlines.<br />

Line clearance only checks against other lines, not against edges of vessels, buoys, etc. However you can check<br />

clearance against part of a vessel, for example, by attaching a dummy single-segment line to the vessel, spanning<br />

across the area of interest. The line clearance graphs for that dummy line will then show how close other lines come<br />

to that area of the vessel.<br />

Notes: For mid-segment points the segment used is the one containing the selected arc length.


w<br />

353<br />

System Modelling: Data and Results, Lines<br />

Line clearance results are only available if there are at least 2 lines in the model.<br />

Warning: For complex models, building and updating clearance graphs can be slow. Having "live" clearance<br />

graphs open while a simulation is running can significantly slow down the simulation.<br />

Line Clashing Results<br />

Note: As well as the results variables documented below <strong>OrcaFlex</strong> also provides a Line Clashing Report.<br />

Line Clash Force<br />

Available at mid-segment points. The magnitude of the clash force between this segment and other lines. Please note<br />

that this variable is only available if clash checking has been included for the lines concerned. See Line Clashing for<br />

details.<br />

Line Clash Force is given for the segment containing the selected arc length and results are available in the form of<br />

time histories and range graphs. If multiple clashes occur simultaneously on the same segment then the value<br />

reported is the magnitude of the vector sum of the clash forces involved.<br />

Line Clash Impulse<br />

Available at mid-segment points. The integral of Line Clash Force with respect to time.<br />

Line Clash Energy<br />

Available at mid-segment points. Clash energy is calculated by integrating the magnitude of clash force with respect<br />

to depth of penetration.<br />

Suppose that this segment is denoted by S1 and segment S2 is another segment which S1 is in contact with. The<br />

clash energy for the spring/damper representing contact between these 2 segments is calculated by integrating the<br />

magnitude of clash force with respect to depth of penetration. This then is the potential energy in the<br />

spring/damper.<br />

If multiple clashes occur simultaneously on the same segment then the value reported is the sum of all individual<br />

clash energies between this segment and other segments.<br />

Line Contact Results<br />

Line Contact Force,<br />

Line Contact x-Force, Line Contact y-Force, Line Contact z-Force<br />

Available at nodes. Line Contact Force is the magnitude of the total force per unit length, due to Line Contact with<br />

any of the lines in the model with which it has a specified line contact relationship. Line Contact x-Force, Line<br />

Contact y-Force and Line Contact z-Force are the components of that total Line Contact Force in the line's node<br />

Nx-, Ny- and Nz-axes directions.<br />

Solid Contact Results<br />

Solid Contact Force<br />

Available at nodes. The magnitude of the total force per unit length, due to contact with any of the elastic solids in<br />

the model.<br />

Seabed Contact Results<br />

Seabed Clearance<br />

Available at nodes. The clearance is the shortest distance between the node and any point on the seabed, allowing<br />

for the contact diameter. The value reported is for the node that is nearest the specified arc length. A negative value<br />

indicates that the node is in contact with the seabed.<br />

This result is not available for 3D seabeds because it is difficult to calculate. Instead you should use Vertical Seabed<br />

Clearance.<br />

Vertical Seabed Clearance<br />

Available at nodes. The clearance is the vertical distance between the node and the seabed, allowing for the contact<br />

diameter. The value reported is for the node that is nearest the specified arc length. A negative value indicates that<br />

the node is in contact with the seabed.


System Modelling: Data and Results, Lines<br />

Seabed Normal Penetration/D<br />

354<br />

w<br />

Available at nodes. The component of seabed penetration normal to the seabed, divided by the contact diameter.<br />

Seabed Normal Resistance, Seabed Normal Resistance/D<br />

Available at nodes. Seabed Normal Resistance is the component of seabed resistance normal to the seabed, where<br />

seabed resistance means the seabed reaction force per unit length of line. Seabed Normal Resistance/D is the<br />

Seabed Normal Resistance divided by the contact diameter.<br />

The forces due to both seabed stiffness and seabed damping are included.<br />

Warnings: The damping force depends upon node velocity. This is derived by numerically differentiating the<br />

logged positions of the node with respect to time, using the central difference scheme. Because of<br />

this the accuracy of the results will depend on the log sample interval. See Motions results for more<br />

details.<br />

P-y deflection, P-y resistance<br />

Seabed resistance results from interaction with a linear seabed are reported without taking into<br />

account possible containment arising from participation in line contact. For more details, see the<br />

Containment Scaling section of the line contact documentation.<br />

Available at nodes. The magnitude of deflection and resistance of the P-y spring attached to this node.<br />

Pipe Stress / Strain<br />

Stress and strain results are available at mid-segment points and at line ends. For terminology see Pipe Stress<br />

Calculation.<br />

The stress calculations make the following assumptions:<br />

� At each point along the line all the loads are taken by a single simple cylinder of the specified Stress OD and<br />

Stress ID and made of a homogeneous material.<br />

� The stresses included are those due to tension, bending, shear and hoop stress.<br />

� The loads (tension, bend moment, shear and torque) which are used in stress calculations are scaled by the<br />

stress loading factors before being used.<br />

� Internal pressure in the line generates wall tension in the line as it would do in a sealed cylinder.<br />

� Shear stress is assumed to be uniformly distributed across the cross section. Although this is not strictly the<br />

case, the shear stress is normally negligible so this simplifying assumption is reasonable.<br />

� The hoop stress due to static internal and external pressure at the current Z-level is included, and is calculated<br />

using the standard Lamé equation for thick walled cylinders. However the effect of dynamic variations in<br />

pressure, for example from the passage of the wave, are not included.<br />

Limitations of stress calculations<br />

The assumptions described above mean that the stress calculations are only valid for pipes such as steel or titanium<br />

risers, not for composite flexible risers, ropes chains, etc.<br />

If the pipe has non-linear stiffness then the program cannot, in general, accurately calculate pipe stresses. The<br />

program uses the same formulae for stress calculation as it does for linear stiffness. For example the bending stress<br />

is calculated as Mr/Ixy. An exception to this is made for a homogeneous pipe with non-linear stress-strain. In this<br />

situation stress results can be calculated accurately by using the stress-strain data.<br />

If the line type stress diameters differ from the outer and inner diameters then see the warning in the Line Pressure<br />

Effects section.<br />

The program does not, and indeed cannot, allow for the complex stress concentrations that can occur at joints or at<br />

the top and bottom of a riser.<br />

Direct Tensile Strain<br />

Available at mid-segment points and line ends. This is the component of axial strain due to wall tension (which<br />

includes the effects of internal and external pressure).


w<br />

Max Bending Strain<br />

355<br />

System Modelling: Data and Results, Lines<br />

Available at mid-segment points and line ends. This is the axial strain due to bending at the outer fibre on the<br />

outside of the bend.<br />

Worst ZZ Strain<br />

Available at mid-segment points and line ends. This equals whichever of Direct Tensile Strain ± Max Bending Strain<br />

has the larger absolute value.<br />

ZZ Strain<br />

Available at mid-segment points. This equals Direct Tensile Strain + Bending Strain. ZZ Strain varies across the cross<br />

section and so its value is reported at a specified (R,θ) position.<br />

Internal and External Pressure<br />

Available at mid-segment points and line ends. The internal and external static pressures, Pi and Po. See Line<br />

Pressure Effects for details.<br />

Pressures in <strong>OrcaFlex</strong> are gauge pressures, not absolute pressures. That is, they are relative to atmospheric pressure<br />

and so can be as low as minus 1 atmosphere (-101.325 kPa).<br />

Net External Pressure<br />

Available at mid-segment points and line ends. Defined as Pi - Po.<br />

Direct Tensile Stress<br />

Available at mid-segment points and line ends. This is the axial stress due to wall tension (which includes the effects<br />

of internal and external pressure). It is constant across the cross section and equals Tw/A. A positive value indicates<br />

tension; a negative value indicates compression.<br />

Max Bending Stress<br />

Available at mid-segment points and line ends. This is the maximum value that the Bending Stress takes anywhere<br />

in the cross section. It is given by<br />

Max Bending Stress = (C2.M.ODstress/2) / Ixy<br />

and this maximum occurs at the extreme fibre on the outside of the bend.<br />

For a homogeneous pipe with non-linear stress-strain<br />

Max Bending Stress = σ(εzz) - Direct Tensile Stress = σ(εzz) - Tw/A<br />

where σ(·) is the specified stress-strain relationship and εzz is the axial strain at the extreme fibre on the outside of<br />

the bend data.<br />

Worst ZZ Stress<br />

Available at mid-segment points and line ends. This is the value of ZZ Stress that has the greatest magnitude<br />

anywhere in the cross section.<br />

Worst Hoop Stress<br />

Available at mid-segment points and line ends. The Hoop Stress is due to internal and external pressure. It varies<br />

across the section and can be positive (tension) or negative (compression), and by the Worst Hoop Stress we mean<br />

the hoop stress of greatest magnitude. It is obtained by finding the point in the cross section where the unsigned<br />

magnitude of the Hoop Stress is largest; this must be either at the inside or outside fibre of the stress area. The Hoop<br />

Stress at this point is called the Worst Hoop Stress.<br />

Max xy-Shear Stress<br />

Available at mid-segment points and line ends. The value (σRZ 2 + σCZ 2 ) ½ is called the xy-Shear Stress. This varies<br />

across the cross section, and <strong>OrcaFlex</strong> reports the maximum value that occurs anywhere in the cross section. This is<br />

the Max xy-Shear Stress and it is given by<br />

Max xy-Shear Stress = (C4.τ.ODstress/2) / Iz + C3.S / A


System Modelling: Data and Results, Lines<br />

von Mises Stress, Max von Mises Stress<br />

356<br />

w<br />

Available at mid-segment points and line ends. The von Mises stress, σvm, is a stress measure that is often used as a<br />

yield criterion. It is a combination of all the components of the stress matrix and in terms of principal stresses it is<br />

given by:<br />

σvm = [{(σ1-σ2) 2 + (σ2-σ3) 2 + (σ3-σ1) 2 }/2] ½<br />

where σ1, σ2 and σ3 are the principal stresses, i.e. the eigenvalues of the 3 by 3 stress matrix.<br />

The von Mises Stress varies across the cross section, so its value is reported at a specified (R,θ) position.<br />

The Max von Mises Stress is an estimate of the maximum value of the von Mises Stress over the cross section. The<br />

way it is calculated depends on whether the line includes torsion or not, as follows.<br />

� If torsion is not included, then <strong>OrcaFlex</strong> assumes that the torque is zero. In this case the maximum value of the<br />

von Mises stress must occur in the plane of bending. <strong>OrcaFlex</strong> also assumes that the maximum occurs at either<br />

the inner or outer fibre. (This is a commonly-used assumption that is almost always valid, since if the internal<br />

pressure stress contribution is dominant then the maximum will be at the inner fibre, whereas if bending stress<br />

is dominant then it will occur at the outer fibre.) <strong>OrcaFlex</strong> therefore calculates the von Mises stress at 4 points<br />

(R = ±IDstress/2 and ±ODstress/2, in the plane of bending) and reports the largest value.<br />

� If torsion is included, then the maximum value of the von Mises stress can, in general, occur anywhere in the<br />

pipe wall. So <strong>OrcaFlex</strong> calculates the von Mises stress at a grid of points across the pipe wall and reports the<br />

largest value found. Currently, the grid comprises 36 θ-values (i.e. every 10° around the pipe circumference) at<br />

each of 5 R-values across the pipe wall.<br />

API RP 2RD Stress, API RP 2RD Utilisation<br />

Available at mid-segment points and line ends.<br />

API RP 2RD Stress, σAPI, is a von-Mises type stress defined in section 5.2 of API RP 2RD as:<br />

where<br />

σAPI = max [{(σpr-σpθ) 2 + (σpθ-σpz) 2 + (σpz-σpr) 2 }/2] ½<br />

σpr = - (Po.ODstress + Pi.IDstress) / (ODstress + IDstress)<br />

σpθ = (Pi - Po)ODstress/2tmin - Pi<br />

σpz = Tw/A ± M(ODstress - t)/2Ixy<br />

tmin is the minimum wall thickness<br />

t is the nominal wall thickness, (ODstress - IDstress)/2<br />

The max in the formula for σAPI accounts for the fact that the ± sign in the formula for σpz makes σpz double-valued.<br />

API RP 2RD Utilisation, UAPI, is reported as a percentage and is defined to be:<br />

where<br />

UAPI = σAPI / (CfCaσy)<br />

Cf is the design case factor<br />

Ca is 2/3<br />

σy is the material minimum yield strength (SMYS)<br />

The strength check for API RP 2RD code is therefore equivalent to the inequality UAPI ≤ 1.<br />

RR Stress, CC Stress, ZZ Stress, RC Stress, RZ Stress, CZ Stress<br />

Available at mid-segment points and line ends. These are the individual stress components at a point in the cross<br />

section. The point is specified by its polar coordinates (R,θ) within the cross section. See Pipe Stress Calculation and<br />

Pipe Stress Matrix for details.<br />

End Loads<br />

The line end load results are based on the end force and end moment vectors at the line end.<br />

Note that these results include the structural inertia load and added inertia load due to acceleration of the end node.<br />

There are 3 groups of end load results:


w<br />

357<br />

System Modelling: Data and Results, Lines<br />

� Standard results like Effective Tension, Bend Moment, etc. are available at line ends as well as at mid-segment<br />

points. For example to obtain the end tension at End A you can ask for the Effective Tension (or Wall Tension) at<br />

End A.<br />

� Magnitude and other components of the end force and end moment vectors.<br />

� Bend Restrictor Load, which is a special end load result useful for bend restrictor design.<br />

Sign Convention<br />

When considering the sign of end load components the question arises as to whether the load reported is that<br />

applied by the line to its connection or vice versa. The <strong>OrcaFlex</strong> convention is that the load reported at any point is<br />

that applied by the B side of that point to the A side. So at End A we report the end load applied by the line to its<br />

connection (e.g. a vessel), but at End B we report the end load applied to the line by its connection. This is in keeping<br />

with the <strong>OrcaFlex</strong> convention for specifying the no-moment direction.<br />

Treatment of Links and Winches attached to the end node<br />

Normally, the end force and end moment are the total load acting between the end node and the object to which it is<br />

connected. This includes forces from any links or winches attached to the end node.<br />

However if the line end is free, or has been released, then it is not connected to any object. In this case the end<br />

moment is zero and the end force is taken to be the total force acting between the line end and any links or winches<br />

attached to the end node. If there are no attached links or winches, or they have been released, then the end force is<br />

zero.<br />

Standard Results<br />

Effective Tension, Wall Tension,<br />

Shear Force, x-Shear Force, y-Shear Force,<br />

Bend Moment, x-Bend Moment, y-Bend Moment,<br />

Curvature, x-Curvature, y-Curvature<br />

These results variables are available at the line end nodes, as well as at mid-segment points. Whether you are given<br />

end values or mid-segment values depends on the point at which you ask for the results. If you ask for these results<br />

at EndA or EndB, or at an arc length that is closer to a line end than to the nearest mid-segment arc length, then the<br />

values at the line end will be given. Otherwise the values for the nearest mid-segment point will be given.<br />

For mid-segment values see Line Results: Forces, Line Results: Moments and Line Results: Pipe Stresses.<br />

At a line end they report the components of the end loads in the local node directions of the end node, as follows:<br />

� Effective tension is the component of the end force vector in the end node axial direction (= Nz direction).<br />

� Wall tension is derived from the effective tension at the line end, using the pressure effects formula.<br />

� Shear is the component of the end force vector normal to the end node axial direction.<br />

� x-Shear and y-Shear are the components of the end force vector in the end node Nx and Ny directions.<br />

� Torque is the component of the end moment vector in the end node axial direction.<br />

� Bend moment is the component of the end moment vector normal to the end node axial direction.<br />

� x-Bend Moment and y-Bend Moment are the components in the end node Nx and Ny directions.<br />

� Stress results are based on the end load components in the end node axes directions.<br />

Differences between End Loads and End Segment Loads<br />

The end values of these results differ from the corresponding values for the end segment for two reasons.<br />

Firstly, they include the loads (weight, buoyancy, drag etc.) on the last half segment adjacent to the end.<br />

Secondly, they are components in the local node directions (Nx,Ny,Nz) at the end node, whereas the end segment<br />

values are components with respect to the segment directions (Sx,Sy,Sz). The end node is often not aligned with the<br />

end segment because end connection stiffness turns it towards the end orientation direction. For example:<br />

� If the end connection stiffness is zero, or if the line end is free or has been released, then the end node directions<br />

are aligned with the end segment directions. The end node values then differ from the end segment values only<br />

by the loads on the end half segment.


System Modelling: Data and Results, Lines<br />

358<br />

w<br />

� If the end connection stiffness is Infinity (and the end is not free or released) then the end node directions stay<br />

aligned with the line end axes Ex, Ey, Ez. The end node values are then usually in different directions to the end<br />

segment values.<br />

� For intermediate values of end connection stiffness, the end node directions will be somewhere between the<br />

two. They will tend to be nearer to the end fitting directions if the end connection stiffnesses are stronger than<br />

the line bend stiffness and torsional stiffness, but nearer to the end segment directions if it is weaker.<br />

End Load Magnitude and Components<br />

End Force, End Moment,<br />

End GX-Force, End GY-Force and End GZ-Force, End GX-Moment, End GY-Moment, End GZ-Moment,<br />

End Lx-Force, End Ly-Force and End Lz-Force, End Lx-Moment, End Ly-Moment, End Lz-Moment,<br />

End Ex-Force, End Ey-Force and End Ez-Force, End Ex-Moment, End Ey-Moment, End Ez-Moment<br />

These results report the magnitude of the end force and end moment vectors, and their components in the following<br />

directions:<br />

� The directions of the global axes GX, GY, GZ.<br />

� The directions of the local axes Lx, Ly, Lz of the object to which the line end is connected. For example if the line<br />

end is connected to a vessel, the Lx, Ly, Lz are the directions of the vessel axes.<br />

� The directions of the line end axes Ex, Ey, Ez. See Line End Orientation.<br />

For a line with a stiffener attached results are reported separately for the protected line and its stiffener. However, it<br />

is sometimes necessary (e.g. when designing end fittings) to report combined end loads including the load from both<br />

the protected line and its stiffener.<br />

End load results are available for the protected line which include the stiffener end load, in addition to the protected<br />

line end load. These results are all prefixed with "Total", e.g. Total End Load, Total End Moment, Total End GZ-<br />

Force etc.<br />

Bend Restrictor Load<br />

This is defined as Bend Restrictor Load = End Force*(1 - cos(End Force Ez-Angle)). Another commonly used name<br />

for this variable is "pseudo-curvature". It is only available for line ends that are pin-connected (zero bending<br />

stiffness at the line end connection) and without a stiffener attached.<br />

6.8.8 Drag Chain Results<br />

For details on how to select results variables see Selecting Variables.<br />

For Drag Chains the following results variables are available.<br />

Azimuth and Declination<br />

The azimuth and declination of the drag chain, relative to global axes.<br />

Supported Length and Hanging Length<br />

The supported length is the length deemed to be supported by the seabed. The hanging length is the length of the<br />

rest of the drag chain. The supported length plus the hanging length equals the total length of the drag chain. See<br />

Drag Chain Seabed Interaction for details on how these values are calculated.<br />

Drag Force<br />

The magnitude of the drag force acting on the drag chain. This includes both the axial and normal components of the<br />

drag force.<br />

Axial Drag Force, Normal Drag Force<br />

The components of drag force axial and normal to the drag chain.<br />

Horizontal Drag Force, Vertical Drag Force<br />

The horizontal and vertical components of the drag force. For the vertical drag force a positive value indicates an<br />

upwards force.<br />

See Drag Chain Theory for details on how the drag force is calculated.


w<br />

6.8.9 Flex Joint Results<br />

For details on how to select results variables see Selecting Variables.<br />

For Flex Joints the following results variables are available.<br />

Bend Moment, x-Bend Moment, y-Bend Moment<br />

359<br />

System Modelling: Data and Results, Lines<br />

The magnitude of bending moment at the Flex Joint and its components in the local x and y-directions.<br />

6.8.10 Line Setup Wizard<br />

Intended principally for mooring analyses, this wizard adjusts line configuration to achieve specified tension,<br />

declination or layback. The wizard is available when the current simulation is in Reset state and is opened by<br />

clicking the Calculation | Line Setup Wizard menu item.<br />

Figure: The Line Setup Wizard<br />

Calculation Mode<br />

The Wizard has two modes of operation: Calculate Line Lengths or Calculate Anchor Positions.<br />

The Calculate Line Lengths option operates by varying the length of the specified section of each included line until<br />

the target top value is achieved. Because the section length is altered by the Calculate Line Lengths option we<br />

recommend that you specify the segmentation using Target Segment Length rather than Number of Segments. Thus<br />

if the wizard lengthens the line then the program will automatically add more segments to meet the Target Segment<br />

Length.


System Modelling: Data and Results, Lines<br />

360<br />

w<br />

The Calculate Anchor Positions option operates by varying the position of the Bottom End of each included line<br />

until the target value is achieved. The Bottom End position is constrained to be on a line in the Lay Azimuth<br />

direction so you must set these data items before using the wizard.<br />

Note: These calculations use a numerical method which is not 100% robust. We recommend that you set<br />

up your model so that your top tension / top declination values are quite close to your exact target<br />

values before using the wizard. If you do this the wizard is more likely to be able to find a solution.<br />

Target Values<br />

To use the wizard you must first specify the target tensions or declinations. The wizard presents a list of all Lines in<br />

the model.<br />

The Include this Line option determines which Lines are included in the calculation which allows you to exclude<br />

certain Lines. For example, you may be modelling both moorings and flow lines in the same <strong>OrcaFlex</strong> file. Typically<br />

you would only include the moorings in this calculation.<br />

The Target Variable option allows you to switch between the following options:<br />

� End A Tension or End B Tension.<br />

� End A Horizontal End Force or End B Horizontal End Force.<br />

� End A Declination or End B Declination.<br />

� Layback, defined to be the horizontal component of distance between the Top End of the line and the<br />

touchdown point.<br />

� No Target, which means that the line will be included in the static calculation but that its data is not to be<br />

modified. This is particularly useful if you are analysing buoyed systems where the upper and lower catenaries<br />

are modelled with different Lines.<br />

Finally you specify Tension, Horizontal End Force, Declination or Layback values, as applicable, in the Target Value<br />

field.<br />

Line section to be modified<br />

Specifies which section on the line is to have its length modified when using the Calculate Line Lengths mode.<br />

Convergence Parameters<br />

The Wizard performs an iterative calculation and these parameters can be used to help convergence.<br />

The calculation is abandoned if convergence has not been achieved after the number of steps specified by Max<br />

Iterations. For some difficult cases simply increasing this limit may be enough.<br />

The non-dimensional Tolerance parameter determines when the calculation is deemed to have converged. The<br />

calculation has converged once the following conditions are satisfied:<br />

� Calculated Value < Tolerance × Typical Force for tension and end force targets. Typical Force for a line is defined<br />

as to be the total dry weight of the line.<br />

� Calculated Value < Tolerance for declination targets.<br />

� Calculated Value < Tolerance × Target Value for a layback target.<br />

The Min Damping and Max Damping parameters can sometimes be used to help difficult problems converge. Try<br />

increasing the Min Damping factor, say values in the range 1.5 to 10. You can also try increasing the Max Damping<br />

factor, say to values in the range 10 to 100.<br />

Automation<br />

The Line Setup Wizard can be executed in automated fashion either through the InvokeLineSetupWizard batch<br />

script command or from the <strong>OrcaFlex</strong> programming interface.<br />

6.8.11 Line Type Wizard<br />

The Line Type Wizard is a tool that helps you set up a Line Type that represents one of the following commonly used<br />

structures:<br />

� Chain.<br />

� Rope/Wire.


w<br />

� Line with Floats.<br />

� Homogeneous Pipe.<br />

� Hose.<br />

� Umbilical.<br />

361<br />

System Modelling: Data and Results, Lines<br />

What the Wizard does is ask you for the basic data of the structure – e.g. the bar diameter for a chain – and then<br />

calculate for you as much of the line type data as it reasonably can for representing that structure. The Wizard<br />

leaves you to set other data – e.g. friction coefficients – where there is no formula on which to base the data.<br />

Warning: The values generated by the Wizard are offered in good faith, but due to variations in properties<br />

between products they cannot be guaranteed. Please use suppliers' data where this is available.<br />

How The Line Type Wizard Works<br />

The Wizard works on the currently selected line type on the line types form, so you should first create, name and<br />

select the Line Type that you want to set up. You can then open the Wizard using the Wizard button on the Line<br />

Types form.<br />

The first time you use the Wizard on a given line type you must be in reset state, since you will be setting data. You<br />

then tell the Wizard the category of structure that you want to model (chain, rope etc.) and the data for that<br />

structure (e.g. chain bar diameter). This information is called the Wizard data, and from it the Wizard derives line<br />

type data to correspond to that Wizard data. If necessary you can then manually adjust the derived line type data.<br />

Once you have used the Wizard to set up data for a given line type, then the Wizard remembers the Wizard data you<br />

gave it. If you re-open the Wizard when in reset state then you can edit the Wizard data and the Wizard will<br />

calculate corresponding new derived line type data. Any manual adjustments will need to be done again.<br />

You can also re-open the Wizard when in other states (e.g. in static state or when a simulation is active) but only in<br />

order to view the Wizard data. You cannot edit Wizard data or re-derive line type data except in reset state.<br />

Note: Remember that the current line type data might not correspond to the current Wizard data, since<br />

you might have manually edited the line type data after it was derived by the Wizard.<br />

Using the Line Type Wizard<br />

The Wizard has three stages, with Next and Back buttons so that you can move between stages to set up the data<br />

you want.<br />

Stage 1 displays the name of the selected Line Type and asks you to specify the special category that you want. You<br />

can then click Next to proceed to the second stage.<br />

Stage 2 presents 3 frames of information. The top left frame asks you for the basic data of the special category you<br />

have selected. The bottom left frame displays the resulting derived Line Type data – you should check that the<br />

values are reasonable.<br />

The right hand frame displays other properties of the resulting Line Type, which are often useful as a check. In some<br />

cases these depend on contents density, in which case you can specify the contents density to be used for the<br />

calculation of properties. If there are any errors then a message will be displayed. When everything is correct you<br />

can click Next to proceed to the last stage.<br />

Stage 3 displays all of the Line Type data. Bold text is data that has been derived for you by the Wizard, based on the<br />

special line type data you specified. Non-bold text is data that has not been set by the Wizard – this data will be as<br />

you last set it. You can adjust any of the data at this stage, overriding the values derived by the Wizard if you wish.<br />

You can also still go back to previous stages of the Wizard if further modifications are required. When everything is<br />

correct you can click the Finish button, in which case the new data will be written, overwriting the previous data for<br />

that line type. Alternatively, you can Cancel to leave the line type unchanged, but then any newly entered special<br />

category data will also be lost.<br />

6.8.12 Chain<br />

A chain can be modelled in <strong>OrcaFlex</strong> by using a Line Type with its various properties set to suitable values. This note<br />

derives the values to use for anchor chain of nominal (i.e. bar) diameter D, as shown in the Figure: Chain Geometry.<br />

The properties of an equivalent line type are given below.<br />

Studless Studlink


System Modelling: Data and Results, Lines<br />

Studless Studlink<br />

OD 1.80D 1.89D<br />

ID 0 0<br />

Contact diameter 3.35D 3.6D<br />

Mass/Length 19.9D 2 21.9D 2 te/m for D in m<br />

Axial stiffness 0.854x10 8 D 2 1.01x10 8 D 2 kN for D in m<br />

Bend stiffness 0 0<br />

Limit Compression yes yes<br />

Normal drag coefficient 1.0 1.0<br />

Normal drag diameter 2.10D 2.26D<br />

Axial drag coefficient 0.4 0.4<br />

Axial drag diameter 0.54D/π 0.60D/π<br />

Normal added mass coefficient 1.0 1.0<br />

Axial added mass coefficient 0.08 0.07<br />

Stress diameters '~' '~'<br />

Allowable stress '~' '~'<br />

Friction coefficient typically 0.4 - 0.8 depending on the seabed<br />

Reference<br />

Puech A, 1984.<br />

Geometry<br />

D = Nominal Diameter<br />

3.35D (studless)<br />

3.6D (studlink)<br />

Figure: Chain Geometry<br />

Data<br />

AEDGE<br />

362<br />

AFACE<br />

6D<br />

3.35D (studless)<br />

3.6D (studlink)<br />

w<br />

Chains are widely used in a variety of offshore applications, most obviously in mooring. The Line Type Wizard helps<br />

derive a line type to represent a chain based on the following input data.<br />

Bar Diameter<br />

The diameter of the metal bar that forms the links.<br />

Link Type<br />

Can be either studlink or studless.


w<br />

Mechanical Properties<br />

Catalogue Data<br />

363<br />

System Modelling: Data and Results, Lines<br />

When modelling mooring chain the Line Type Wizard aims to derive data for a line type whose characteristics are<br />

equivalent to that of a chain.<br />

Warning: The values generated by the Wizard are approximate only and are intended as first estimates for<br />

preliminary use. They are offered in good faith, but due to variations in properties between<br />

products they cannot be guaranteed. Please use suppliers' data where this is available.<br />

In deriving these some of the available catalogue data will prove useful and we outline here the relevant aspects.<br />

The Mooring Chain figure shows the geometry of a pair of chain links. The values are given in terms of the nominal<br />

bar diameter of the chain (D), assumed to be in metres, and are given for both a studless chain and, where different,<br />

for a studlink chain. The geometry given in the figure is based on catalogue data available from the chain<br />

manufacturer Scana Ramnas (1990 & 1995), as is the following expression for mass per metre:<br />

Mass per metre (M) = 19.9D 2 te/m (studless) or 21.9D 2 te/m (studlink).<br />

The catalogue also gives the following value for the Young's Modulus of the chain that has been deduced from stressstrain<br />

relationships in which the cross-sectional area of two bars is taken to be the load bearing area:<br />

E = 5.44 x 10 7 kN/m 2 (studless) or 6.40 x 10 7 kN/m 2 (studlink).<br />

Minimum Breaking Loads<br />

For information, the properties window displays minimum breaking loads that depend on the nominal diameter and<br />

chain grade. They are derived using the following relationship, which was obtained from the manufacturer's<br />

catalogue:<br />

Min Breaking Load = c.D 2 .(44 - 80D) kN<br />

where c is a grade-dependent constant, given in the catalogue data as Grade 2: 1.37e4, Grade 3: 1.96e4, ORQ: 2.11e4,<br />

R4 - 2.74e4.<br />

Studless and Studlink chains with the same nominal diameters are stated to withstand the same break- and proofloads.<br />

Derived Data<br />

It will be useful to know the centreline length of bar needed to make a single link. We can obtain this by noting that,<br />

for a long chain, there is one chain link every 4D length of chain. Hence, the number of links per metre of chain is N =<br />

1/(4D), and thus for a single link:<br />

Mass per link = M / N = 79.6D 3 te (studless) or 87 6D 3 te (studlink).<br />

Assuming that the chain is made from steel, and using ρs as density of steel (= 7.8 te/m 3 ), this then leads to:<br />

Volume per link = (M / N) / ρs = 10.2D 3 m 3 (studless) or 11.2D 3 m 3 (studlink).<br />

But, by considering the geometry of a link, we also have<br />

Volume = L . πD 2 /4,<br />

where L is centreline length of bar needed to make a single link (including the stud in the case of the studlink chain).<br />

Hence:<br />

L = Volume / (πD 2 /4) = 13.0D m (studless) or 14.3D m (studlink).<br />

Outer, Inner and Contact Diameter<br />

The Line Type Wizard sets up diameters for a chain as follows:<br />

Outer Diameter<br />

The effective outer diameter of the equivalent line is obtained using a similar argument to that deployed in<br />

obtaining the overall length of bar per link. Firstly, note that the volume per metre can be expressed as both:<br />

and also as<br />

Volume per metre = M/ρs<br />

Volume per metre = πOD 2 /4


System Modelling: Data and Results, Lines<br />

364<br />

w<br />

where OD is the equivalent diameter for a line with constant volume along its length. Equating these expressions<br />

leads to:<br />

Inner Diameter<br />

Outer Diameter = [4M/(πρs)] ½ = 1.80D m (studless) or 1.89D m (studlink).<br />

Chains do not have any contents, so the Inner Diameter is set to zero.<br />

Contact Diameter<br />

The contact diameter is set to the chain link envelope diameter. That is Contact Diameter = 3.35D m (studless) or<br />

3.6D m (studlink).<br />

Axial and Bending Stiffness<br />

The Line Type Wizard sets up Axial and Bending Stiffness and Limit Compression for a chain as follows:<br />

Axial Stiffness<br />

As detailed in Mechanical Properties of Mooring Chains we have values for the Young's Modulus for both studlink<br />

and studless chains from catalogue data. Taking A to be the combined cross-sectional area of two bars, that is:<br />

leads to:<br />

A = 2(πD 2 / 4) m 2<br />

EA = 0.854 x 10 8 D 2 kN (studless) or 1.01 x 10 8 D 2 kN (studlink).<br />

Bending Stiffness<br />

For both studlink and studless chains the bending stiffness is set to zero as the chains are assumed to bend when<br />

subjected to very small moments.<br />

Limit Compression<br />

In conjunction with a zero value for bend stiffness, Limit Compression is set to 'yes'.<br />

Axial Added Mass Coefficient<br />

The Line Type Wizard sets up Axial Added Mass Coefficient for a chain as follows.<br />

As for axial drag, the parts attracting added mass in axial flow are the projecting lobes only – see the figure. Each<br />

pair of lobes are simply a link with the middle section (and stud if present) removed, and can be viewed roughly as<br />

an ellipsoid split down the centre with the following dimensions:<br />

length 6D, width D and height 2.35D (studless) or 2.60D (studlink).<br />

J N Newman (1977) (page 147, Fig 4.8) gives added mass coefficients for spheroids. We approximate the ellipsoid as<br />

a spheroid with a length of 6D (the link length) and a mean width of (D+2.35D)/2 = 1.675D for studless), or<br />

(D+2.60D)/2 = 1.80D for studlink. This gives an aspect ratio (width/length) of about 0.3 in both cases.<br />

For this aspect ratio and axial flow Newman gives an added mass coefficient of 0.1. This is for use with a reference<br />

volume equal to the spheroid volume, which in this case is the volume of the lobes only. But <strong>OrcaFlex</strong> uses the total<br />

displaced volume as the reference volume, so a suitable scaling of Newman's coefficient is needed to allow for this<br />

difference in reference volume.<br />

For a studless link the non-lobe length of bar is 2D (the middle section) out of a total of 13D, so the lobes represent<br />

11D/13D = 84.6% of the total link volume. For a studlink chain the non-lobe length of bar is 2D + 1.6D (the stud) our<br />

of a total of 14.3D, so the lobes represent 10.7D/14.3D = 74.8% of the total link volume. So we scale Newman's<br />

added mass coefficient 0.1 by these factors and round to give <strong>OrcaFlex</strong> axial added mass coefficients of<br />

Axial Drag<br />

Caa = 0.08 (studless) or 0.07 (studlink).<br />

The Line Type Wizard sets up the axial drag coefficient and axial drag diameter for a chain as follows.<br />

Generally, axial drag is very low for smooth pipes, being due to skin friction only. However, for a chain there is some<br />

projected area present even in axial flow and we consider the drag force due to this effect. We ignore the effect of<br />

skin friction in the derivation outlined below.


w<br />

365<br />

System Modelling: Data and Results, Lines<br />

As in the calculation for normal flow we consider two adjacent links and calculate their projected area. The<br />

projected area, normal to the flow, for axial flow consists of the four "lobes" only, since the central part is effectively<br />

shielded from the flow – see the figure.<br />

Hoerner (1965), page 5-8, Fig 14c, gives Cda = 0.32 for a hemispherical rivet head projecting from a plane. The lobes<br />

here are similar – more elongated in the flow direction (implying a lower Cda) but on a less smooth body (implying a<br />

higher Cda). Hence, we assume:<br />

Cda = 0.40.<br />

The reference drag area that corresponds to this is the axial projected area of the lobes. Each lobe is (3.35D - D)/2 =<br />

1.175D long for studless, or (3.6D - D)/2 = 1.30D long for studlink, consisting of a semicircle of diameter D on the<br />

end of a rectangle of width D and length 1.175D - 0.5D = 0.675D (studless), or 1.3D - 0.5D = 0.8D (studlink). And<br />

each pair of links gives 4 lobes, so the total axial projected area per metre of chain (= 1/8D pairs of links) is given by:<br />

4 . (πD 2 /8 + 0.675D 2 ) / (8D) = 0.54D for studless<br />

4 . (πD 2 /8 + 0.8D 2 ) / (8D) = 0.60D for studlink.<br />

However for axial drag <strong>OrcaFlex</strong> uses a reference drag area equal to πDa, where Da is the axial drag diameter. So the<br />

axial drag diameter for <strong>OrcaFlex</strong> is:<br />

Da = 0.54D/π (studless)<br />

Da = 0.60D/π (studlink).<br />

Normal Drag<br />

The Line Type Wizard sets up the Normal Drag Coefficient for a chain as follows:<br />

We first calculate the drag force on a chain in normal flow, for which we require a value for its projected area<br />

(normal to the flow). To calculate this we must consider the chain as a collection of pairs of adjacent links, one face<br />

on to the flow, with projected area AFACE, and one edge on, with projected area AEDGE – see Figure. The overall<br />

projected area per metre will be a multiple of the sum of these two areas.<br />

and<br />

AFACE = L D - 2D 2 = 11.0 D 2 m 2 (studless) or 12.3D 2 m 2 (studlink)<br />

AEDGE = 5D D + 2(πD 2 /4)/2 = 5.79 D 2 m 2 .<br />

There are 1/(4D) links per metre and hence 1/(8D) such pairs of links per metre. Hence, the total projected area per<br />

metre (normal to the flow) is given by the following expression:<br />

ANORMAL = (AFACE + AEDGE) (1/(8D)) = 2.10D m (studless) or 2.26D m (studlink).<br />

So, we are now able to calculate the drag force per metre length of chain as:<br />

Drag force = ½ ρv 2 Cdn ANORMAL<br />

for a given drag coefficient Cdn, where ρ is the density of seawater and v is the flow velocity. For irregular shaped<br />

bluff bodies such as chain links, of either type, a suitable value for Cdn is 1.0.<br />

The drag force per metre length as calculated by <strong>OrcaFlex</strong> is given by:<br />

Drag force = ½ ρv 2 Cdn Dn<br />

where Dn is the normal drag diameter. Equating the two equations for drag force leads to:<br />

Dn = ANORMAL = 2.10D m (studless) or 2.26D m (studlink).<br />

Normal Added Mass Coefficient<br />

The Line Type Wizard sets up the Normal Added Mass Coefficient for a chain as follows:<br />

When a line is accelerated in water it requires an impulse in excess of that needed for the same acceleration in air.<br />

This is due to the extra force required to displace the water in the vicinity of the submerged part of the line. An<br />

added mass term is used to reflect this and it is found to be proportional to the volume of displaced fluid:<br />

where<br />

Added mass = Ca . ρ . Vol<br />

ρ is density of water,


System Modelling: Data and Results, Lines<br />

Vol is the displaced volume.<br />

366<br />

w<br />

The parts of a line displacing the fluid are said to be attracting added mass. For asymmetrical bodies the parts<br />

attracting added mass will differ in different directions. Hence, we consider the effect due to fluid flow exerting a<br />

force in, first, the normal and then the axial directions.<br />

For a circular cylinder in flow normal to its axis:<br />

Can = 1.0.<br />

The situation for a chain is more complicated as, for flow normal to a link, parts of the link are shielded from the<br />

flow but there is also some entrapped water within each edge-on link. An accurate calculation is very problematic<br />

and is unlikely to give a value for the normal added mass coefficient far distant from 1.0. Hence we assume:<br />

Can = 1.0.<br />

Stress Diameters and Allowable Stress<br />

These are set to '~' because the entire structure is load bearing. Please note, however, that stress results are not<br />

meaningful for a chain.<br />

6.8.13 Rope/Wire<br />

D = Nominal rope diameter<br />

Fibre rope<br />

Figure: Rope/Wire Geometry<br />

D<br />

Wire with Fibre core Wire with Wire core<br />

Ropes and wires have many applications in the offshore industry including towing, mooring and winching. The Line<br />

Type Wizard can be used to derive Line Type data to represent five different types: Nylon (8-strand Multiplait);<br />

Polyester (8-strand Multiplait); Polyethylene (8-strand Multiplait); 6x19 Wire Rope with Fibre Core; and 6x19 Wire<br />

Rope with Wire Core.<br />

Most of the calculations of the derived line properties are based on data from a catalogue published by Marlow<br />

Ropes Ltd (1995). All quantities are expressed as a function of the rope's nominal diameter D. Note that this<br />

documentation uses the SI units system, so D is in metres in this documentation, but the program automatically<br />

adjusts the formulae to match the units specified by the user.<br />

Data<br />

Warning: The values generated by the Wizard are approximate only and are intended as first estimates for<br />

preliminary use. They are offered in good faith, but due to variations in properties between<br />

products they cannot be guaranteed. Please use suppliers' data where this is available.<br />

The Line Type Wizard can be used to create line types representing a variety of ropes and wires. The input data<br />

required consists of the following:<br />

Rope/Wire Nominal Diameter<br />

The overall diameter of the rope or wire. The majority of the derived line type data are functions of this diameter.<br />

Warning: The line type outer diameter derived by the wizard is less than this nominal diameter, in order to<br />

give the correct buoyancy. You need to allow for this when setting the line type drag and added<br />

mass coefficients, since the coefficients correspond to the derived line type outer diameter, not the<br />

nominal diameter.


w<br />

Construction<br />

Can be one of:<br />

� Nylon (8-strand Multiplait).<br />

� Polyester (8-strand Multiplait).<br />

� Polyethylene (8-strand Multiplait).<br />

� 6x19 Wire with Fibre Core (8-strand Multiplait).<br />

� 6x19 Wire with Wire Core (8-strand Multiplait).<br />

367<br />

System Modelling: Data and Results, Lines<br />

The construction affects both the mass per unit length of the line type and the strength of the line type.<br />

Mass per unit length<br />

The Line Type Wizard sets up Mass for a Rope/Wire as follows:<br />

The quantity Mass per unit length is available from catalogue data for ropes. The nominal rope diameter and<br />

nominal mass are available for a variety of rope constructions. A simple statistical analysis of the available data<br />

leads to the following expressions:<br />

Mass Per Metre = 0.6476 D 2 te/m (for Nylon ropes).<br />

Mass Per Metre = 0.7978 D 2 te/m (for Polyester ropes).<br />

Mass Per Metre = 0.4526 D 2 te/m (for Polypropylene ropes).<br />

Mass Per Metre = 3.6109 D 2 te/m (for Wire ropes with fibre core).<br />

Mass Per Metre = 3.9897 D 2 te/m (for Wire ropes with wire core).<br />

Outer and Inner Diameters<br />

The Line Type Wizard sets up outer and inner diameters for a Rope/Wire as follows.<br />

The inner diameter is set to zero for all rope construction types. The line type outer diameter, OD, is set as follows:<br />

OD = 0.85 D (for Nylon ropes).<br />

OD = 0.86 D (for Polyester ropes).<br />

OD = 0.80 D (for Polypropylene ropes).<br />

OD = 0.82 D (for Wire ropes with fibre core).<br />

OD = 0.80 D (for Wire ropes with wire core).<br />

where D is the specified rope diameter.<br />

These outer diameters are effective diameters that give the line type a displaced volume per unit length that equals<br />

the estimated displaced volume per unit length of the rope/wire. The line type then has the appropriate buoyancy.<br />

Note that this effective diameter is less than the specified rope diameter, because there are gaps between the fibres<br />

and so not all of the specified nominal diameter contributes to buoyancy.<br />

The above formulae for the line type OD were derived by equating the line type displaced volume per unit length,<br />

πOD 2 /4, to the displaced volume per metre, M/ρ, where M is the rope/wire mass per unit length and ρ is the average<br />

density of the material.<br />

The following average material densities ρ (in te/m 3 ) were assumed: Nylon 1.14; Polyester 1.38; Polypropylene<br />

0.91; Wire with fibre core 6.87; Wire with Wire core 7.85. The average material density for the Wire with fibre core<br />

was estimated by assuming a ratio of 6:1 between the wire and fibre volume, with the fibre taken to have the same<br />

density as (fresh) water.<br />

Axial and Bending Stiffness<br />

The Line Type Wizard sets up Axial and Bending Stiffness and Limit Compression for a Rope/Wire as follows<br />

Axial Stiffness<br />

The expressions for axial stiffness are calculated in different ways for the two groups of fibre ropes and wire ropes.


System Modelling: Data and Results, Lines<br />

368<br />

w<br />

For Fibre Ropes we use the catalogue data. Load/extension characteristics depend on previous load history,<br />

whether the rope is wet or dry, and the rate of application of the load. To reflect the likely working environment of<br />

the rope we use data associated with ropes that have been tested under the following conditions:<br />

� the rope has been pre-worked – loaded to 50% of breaking load and then rested for 24 hours (this causes the<br />

rope to bed down so that its elastic behaviour is more consistent and repeatable)<br />

� subjected to slowly varying loads (for loads varying at wave frequency, stiffness should be about twice the value<br />

shown)<br />

� a wet rope – pre-soaked in water (this is most significant for Nylon ropes which suffer a loss in performance<br />

when wet)<br />

� we use figures for the average performance when the mean extension is 10% (by taking the tangent of the<br />

stress-strain curve at 10%).<br />

Incorporating all of the factors indicated above we can produce values of axial stiffness for a range of rope<br />

diameters. Once again using simple statistical techniques we obtain the following expression for axial stiffness of<br />

fibre ropes:<br />

Axial Stiffness = 1.18 x 10 5 D 2 kN (for Nylon ropes).<br />

Axial Stiffness = 1.09 x 10 6 D 2 kN (for Polyester ropes).<br />

Axial Stiffness = 1.06 x 10 6 D 2 kN (for Polypropylene ropes).<br />

Axial stiffness for Wire Ropes is calculated directly, rather than estimated from empirical relationships. We assume<br />

a value for Young's Modulus, for the 6x19 strand group, of:<br />

E = 1.03 x 10 8 kN/m 2 (for Wire ropes with fibre core).<br />

E = 1.13 x 10 8 kN/m 2 (for Wire ropes with wire core).<br />

and work on an assumed metallic area of:<br />

A = 0.455 (πD 2 /4) m 2 (for both wire ropes).<br />

Both of these quantities have been obtained from the HER Group Marine Equipment & Wire Rope Handbook. Note<br />

that for wire ropes with a wire core the additional axial stiffness is accounted for in the enhanced Young's modulus.<br />

This leads to:<br />

Axial Stiffness = 3.67 x 10 7 D 2 kN (for Wire ropes with fibre core).<br />

Axial Stiffness = 4.04 x 10 7 D 2 kN (for Wire ropes with wire core).<br />

Bending Stiffness<br />

For all rope construction types the bending stiffness offered by the Wizard is zero. For systems where bend stiffness<br />

is a significant factor you should override this value with the true value obtained from the rope supplier.<br />

Limit Compression<br />

In conjunction with a zero value for bend stiffness Limit Compression is set to yes.<br />

Stress Diameters and Allowable Stress<br />

These are set to '~' because the entire structure is load bearing. Please note, however, that stress results are not<br />

meaningful for complex structures such as ropes or wires.<br />

Minimum Breaking Loads<br />

The properties window in the line type wizard displays approximate minimum breaking load (MBL) values for<br />

ropes and wires. These may be useful for setting the Allowable Tension data item for the line type.<br />

The MBL values displayed are calculated using the following functional formulae, where D is rope/wire nominal<br />

diameter in metres:<br />

Nylon ropes (dry) 163950.D 2 kN<br />

Nylon ropes (wet) 139357.D 2 kN<br />

Polyester ropes 170466.D 2 kN<br />

Polypropylene ropes 105990.D 2 kN


w<br />

Wire ropes with fibre core 584175.D 2 kN<br />

Wire ropes with wire core 633358.D 2 kN<br />

369<br />

System Modelling: Data and Results, Lines<br />

These formulae were derived from manufacturer's catalogue data, which consist of minimum (dry) strength against<br />

nominal diameter for each of the five rope/wire constructions. The formulae were derived using least squares<br />

fitting, and they were found to give a good fit to the manufacturer's data, except that they tend to underestimate<br />

MBL for small diameter non-wire ropes.<br />

Note: Nylon ropes lose some strength when wet; the formula given for wet nylon ropes is based on the<br />

manufacturer's statement that they can lose up to 15% of their (dry) strength when wet.<br />

6.8.14 Line with Floats<br />

You can model floats or buoyancy modules attached to a line by using buoyant Clumps attached at the relevant<br />

points. However when a number of floats are supporting a length of line it is often easier to model the buoyancy as if<br />

it were smeared, i.e. spread out evenly, along that part of the line. This allows the length and segmentation of the<br />

buoyed section to be varied easily without having to add and remove individual floats.<br />

To use this smeared properties approach you need to do the following:<br />

� Create a new line type.<br />

� Set the new line type's properties to be equivalent to those of the original pipe+floats. This is done by spreading<br />

each float's buoyancy, drag, etc. uniformly over the length of pipe from Sf/2 before the float centre to Sf/2 after<br />

the float centre, where Sf is the float pitch, i.e. the spacing between float centres (see diagram below). The result<br />

is a uniform circular section line which will experience the same forces per unit length as the original line plus<br />

floats. The line type wizard will automatically set up this equivalent line type for you.<br />

� Set up a line section to model the length of line supported by the floats. The section's line type should be set to<br />

the equivalent line type and its length should be N x Sf, where N is the number of floats and Sf is the float pitch.<br />

Note that this length is a little more than the length between the start of the first float and the end of the last<br />

one, since each float is effectively being smeared equally both ways from its centre; see the diagram below,<br />

which show the situation when N=3.<br />

We describe below how the Line Type Wizard derives the properties of the equivalent line type. Note that this<br />

approach is also suitable for modelling a regularly weighted section of line.<br />

Warning: The values generated by the Wizard are based on current best practice, but more specific project<br />

data should be used where this is available.<br />

Floats<br />

Sf Sf<br />

Sf<br />

Figure: Geometry of Line and Floats<br />

Dp Df<br />

We first define the notation to represent the underlying line onto which the floats are to be attached, which we refer<br />

to as the Base Line Type. We then specify the quantities required to represent the floats.<br />

The following properties are all deemed to be unaffected by the addition of floats to the base line and so are set to<br />

have the same values as those of the base line.


System Modelling: Data and Results, Lines<br />

� Axial and Bending Stiffness<br />

� Limit Compression<br />

� Allowable Tension<br />

� Minimum Bend Radius<br />

� Torsional Stiffness<br />

Data<br />

370<br />

w<br />

Adding floats to a line to produce extra buoyancy is a common requirement. The Line Type Wizard helps you to<br />

quickly derive such a line type by specifying both the existing underlying base line type, onto which the floats will be<br />

added, and various properties of the floats:<br />

Base Line Type<br />

The line type on which the floats are mounted.<br />

Float Diameter<br />

The outside diameter of each float. It must be greater than the outside diameter of the underlying base line type.<br />

Float Length<br />

The axial length of each float.<br />

Float Pitch<br />

The average distance between the centres of successive floats.<br />

Float Material Density<br />

The density of the material forming the floats, excluding additional items such as fixing material.<br />

Float Hardware Mass<br />

This accounts for the extra mass due to the addition of the floats above that due to the material density and covers<br />

such items as the clamping/fixing mechanisms.<br />

Float Normal Drag Coefficient<br />

The drag coefficient associated with the float for flow normal to the line.<br />

Float Axial Skin Drag Coefficient<br />

The drag coefficient associated with the floats, due to the floats' skin friction, for flow along the axis of the line.<br />

Float Axial Form Drag Coefficient<br />

The drag coefficient associated with the float, due to the projected annulus area of the end of the float, for flow along<br />

the axis of the line.<br />

Float Normal Added Mass Coefficient<br />

The added mass coefficient for flow normal to the line.<br />

Float Axial Added Mass Coefficient<br />

The added mass coefficient for flow along the axis of the line.<br />

The Line Type data that are derived, and the associated underlying expressions, are detailed in Modelling Lines with<br />

Floats.<br />

Properties of Base Line Type<br />

For modelling lines with floats the line without floats is referred to as the base line type and the following notation is<br />

used. The line without floats is assumed to be of circular cross-section and have the following characteristics:<br />

� ODp – outer diameter.<br />

� IDp – inner diameter.<br />

� Mp – mass per unit length.


w<br />

� Dnp – normal drag diameter.<br />

� Dap – axial drag diameter.<br />

� Cdnp – drag coefficient in normal flow.<br />

� Cdap – drag coefficient in axial flow.<br />

� Canp – Added mass coefficient in Normal flow (commonly taken as 1.0 for circular section).<br />

� Caap – Added Mass coefficient in Axial flow (commonly taken as zero).<br />

Properties of the Floats<br />

371<br />

System Modelling: Data and Results, Lines<br />

For modelling lines with floats the following notation is used for the floats. The floats are assumed to be short<br />

cylinders fitted co-axially on the line at constant spacing:<br />

Lf<br />

Df<br />

ρf<br />

Sf<br />

mfh<br />

length<br />

diameter<br />

float density<br />

float pitch<br />

float hardware mass (e.g. fixing clamps, bolts, etc.)<br />

Cdnf drag coefficient, normal flow<br />

Cdaf1 drag coefficient, axial flow due to form<br />

Cdaf2 drag coefficient, axial flow due to skin friction<br />

Canf<br />

Caaf<br />

added mass coefficients in normal flow<br />

added mass coefficient in axial flow<br />

With the above information we can calculate the volume occupied by an individual float as:<br />

Vf = π/4 (Df 2 - ODp 2 ) Lf<br />

which leads to the mass of the float being calculated as follows:<br />

Mf = Vf.ρf + mfh.<br />

Outer, Inner and Contact Diameter<br />

The Line Type Wizard sets up diameters for a Line with Floats as follows:<br />

Outer Diameter<br />

The Outer Diameter (OD) of the equivalent line is calculated by equating two equivalent expressions for the volume<br />

per unit length of the line:<br />

This leads to:<br />

Inner Diameter<br />

Vol per unit length = π/4.OD 2 (equivalent line)<br />

Vol per unit length (V) = π/4.ODp 2 + Vf /Sf (line with floats)<br />

Outer Diameter (OD) = (4V/π) ½<br />

The Inner Diameter is unaffected by the addition of floats and so is set to be the same as that of the base line.<br />

Contact Diameter<br />

The Contact Diameter is set to equal the float diameter Df. This allows float clearance to be reported using the Line<br />

Contact Clearance result.<br />

Mass per Unit Length<br />

The line type mass per unit length is calculated by allowing for the fact that there is one float for every Sf length of<br />

the section and hence (1/Sf) floats per unit length, giving:<br />

Mass per unit length = Mp + Mf / Sf


System Modelling: Data and Results, Lines<br />

Normal Drag Coefficient<br />

The Line Type Wizard sets up the Normal Drag Coefficient for a Line with Floats as follows:<br />

372<br />

w<br />

The drag force per unit length of the equivalent line when flow is normal to the line's axis can be expressed as:<br />

Drag Forcen = ½ ρv 2 Cdn Dnp<br />

in which the reference drag area per unit length, normal to the flow, is given by the normal drag diameter of the<br />

base line, Dnp, and where ρ is the density of seawater and v is the flow velocity.<br />

We can also express the drag force per unit length experienced by the equivalent line as the sum of the drag forces<br />

experienced by the floats and the drag forces experienced by the part of the line not hidden by the floats:<br />

Drag Forcen = Drag Forcen-FLOATS + Drag Forcen-EXP LINE<br />

= ½ ρv 2 [Cdnf.Drag Arean-FLOATS + Cdnp.Drag Arean-EXP LINE]<br />

in which the reference drag area for the floats in normal flow is given by:<br />

Drag Arean-FLOATS = Df Lf/Sf<br />

and the reference drag area for the exposed line in normal flow is given by:<br />

Drag Arean-EXP LINE = Dnp (Sf-Lf)/Sf.<br />

Equating the two expressions for drag force leads to:<br />

Cdn = [Cdnf.Drag Arean-FLOATS + Cdnp.Drag Arean-EXP LINE] / Dnp.<br />

If the base line type uses drag which varies with Reynold's number, then a variable data table is created which<br />

specifies the drag variation with Reynold's number for the equivalent line. The formula above is then applied to the<br />

drag coefficients in each row of the table.<br />

Axial Drag Coefficient<br />

The Line Type Wizard sets up the Axial Drag Coefficient for a Line with Floats as follows.<br />

To derive the drag coefficient when flow is axial to the line we adopt a similar approach to that used above for<br />

normal flow.<br />

When considering the equivalent line, with the additional buoyancy smeared along it's outer surface, the drag force<br />

per unit length, when flow is axial to the line, is due solely to skin friction and can be expressed as:<br />

Drag Forcea = ½ ρv 2 Cda (πDap)<br />

in which the reference drag area per unit length is the circumference of the base line (calculated using the axial drag<br />

diameter Dap) and where r is the density of seawater and v is the flow velocity.<br />

As in the case for flow normal to the line, we can also express the drag force per unit length experienced by the<br />

equivalent line as the sum of the drag forces experienced by the floats and the drag forces experienced by the part of<br />

the line not hidden by the floats. However, the drag forces experienced by the floats are slightly more complicated in<br />

axial flow as there will be a drag force due to the exposed annulus on the end of each float and a drag force due to<br />

skin friction.<br />

Drag Forcea = Drag Forcea-FLOATS + Drag Forcea-EXP LINE<br />

= ½ ρv 2 [Cdaf1.Drag Area1a-FLOATS + Cdaf2.Drag Area2a-FLOATS + Cdap.Drag Areaa-EXP LINE]<br />

in which the reference drag area, due to the annulus, for the floats in axial flow is given by:<br />

Drag Area1a-FLOATS = π/4 (Df 2 -ODp 2 )/Sf<br />

the reference drag area, due to the skin, for the floats in axial flow is given by:<br />

Drag Area2a-FLOATS = πDfLf/Sf<br />

and the reference drag area, due to the skin, for the exposed line in axial flow is given by:<br />

Drag Areaa-EXP LINE = πDap (Sf-Lf)/Sf.<br />

Equating these two expressions leads to:<br />

Cda = [Cdaf1.Drag Area1a-FLOATS + Cdaf2.Drag Area2a-FLOATS + Cdap.Drag Areaa-EXP LINE] / (πDap).


w<br />

Added Mass Coefficients<br />

373<br />

System Modelling: Data and Results, Lines<br />

The Line Type Wizard sets up Normal and Axial Added Mass Coefficients for a Line with Floats as follows:<br />

Normal Added Mass Coefficient<br />

Added mass coefficients are calculated in a similar way to the drag force coefficients. For flow normal to the axis of<br />

the line the added mass per unit length is given by:<br />

Added Massn = ρ π/4 OD 2 Can<br />

in which the reference volume is the volume of the equivalent line and where ρ is the density of seawater.<br />

We can also express the added mass term of the equivalent line as the sum of the added masses due to the floats and<br />

due to the underlying line:<br />

Added Massn = ρ (Canf AMVolFLOATS + Canp AMVolEXP LINE)<br />

in which the reference volume per unit length for the floats (and the portion of line they cover) is given by:<br />

AMVolFLOATS = π/4 Df 2 Lf/Sf<br />

and the reference volume per unit length for the exposed part of the line is given by:<br />

AMVolEXP LINE = π/4 ODp 2 (Sf-Lf)/Sf<br />

Equating the expressions for added mass leads to:<br />

Can = (Canf AMVolFLOATS + Canp AMVolEXP LINE)/(π/4 OD 2 ).<br />

Axial Added Mass Coefficient<br />

The added mass coefficients follow in a similar way to above. The reference volumes for the equivalent line and for<br />

the floats and exposed part of the underlying base line are taken to be the same in axial flow as in normal flow.<br />

Hence, we can take the above expression for the added mass coefficient in normal flow and replace the coefficients<br />

for normal flow with those for axial flow:<br />

Caa = (Caaf AMVolFLOATS + Caap AMVolEXP LINE)/(π/4 OD 2 ).<br />

Stress Diameters and Allowable Stress<br />

The stress diameter and allowable stress are set to be the values used by the base line, since it is the base line which<br />

is load bearing.<br />

6.8.15 Homogeneous Pipe<br />

O<br />

O’<br />

Figure: Homogeneous Pipe<br />

N N’<br />

The Line Type Wizard for Homogeneous Pipe creates data for a General Category Line Type with properties<br />

appropriate to a pipe constructed from a single homogeneous material, for example a metal riser.


System Modelling: Data and Results, Lines<br />

374<br />

w<br />

Note: If you are modelling a homogeneous pipe then it is normally better to do so using a Homogeneous<br />

Pipe Category Line Type. This allows you to specify material density, Young's modulus etc. directly.<br />

The derived properties are based on the following input data:<br />

ρ material density<br />

E Young's Modulus<br />

ν Poisson Ratio<br />

OD Outer Diameter<br />

ID Inner Diameter = OD-2t where t is the wall thickness<br />

The properties of the derived equivalent line type are given below.<br />

Mass per Unit Length<br />

Mass per unit length = ρ (π/4) (OD 2 - ID 2 ) where ρ is the material density specified.<br />

Outer and Inner Diameters<br />

The line type outer and inner diameters are set to the pipe diameters specified by the user.<br />

Axial Stiffness<br />

The line type axial stiffness is given by:<br />

Axial Stiffness = EA<br />

where E is the Young's Modulus and A is the cross sectional area, hence:<br />

Axial Stiffness = E(π/4) (OD 2 - ID 2 ).<br />

Bending Stiffness<br />

The line type bending stiffness is given by:<br />

Bending Stiffness = EI<br />

where I is the second moment of area, about an axis in the plane of the cross-section through the centroid (e.g. NN'),<br />

and leads to:<br />

Bending Stiffness = E(π/64) (OD 4 - ID 4 ).<br />

Limit Compression<br />

As the bending stiffness is significant this is set to 'no'.<br />

Torsional Stiffness<br />

The line type torsional stiffness is set as follows. The torque experienced by a pipe of length l when twisted through<br />

an angle θ is given by:<br />

Torque = (Gθ/l)J<br />

where J is the second moment of area about the axial axis OO' (often called the polar moment of inertia) and G is the<br />

Shear Modulus (sometimes called the modulus of rigidity). For homogeneous pipes J = 2I. The quantity G is related to<br />

the Young's Modulus (E) and Poisson Ratio (ν) of the material through the following relationship:<br />

G = E/{2(1+ν)}.<br />

The Torsional Stiffness, representing the Torque resisting a twist of 1 radian, per unit length, is therefore given by:<br />

Torsional Stiffness = GJ = E/{2(1+ν)} (π/32) (OD 4 - ID 4 ).<br />

Stress Outer and Inner Diameters<br />

The line type stress diameters are set to '~', since they are the same as the pipe diameters.<br />

Stress Loading Factors<br />

These are set to one, the default value, as a simple homogeneous pipe carries all the loads.<br />

Data<br />

The Line Type Wizard helps build a line type to represent a homogeneous pipe, based on the following data:


w<br />

Material<br />

375<br />

System Modelling: Data and Results, Lines<br />

The Wizard provides 3 standard materials for a homogeneous pipe: Steel; Titanium and High Density<br />

Polyethylene. For these standard materials <strong>OrcaFlex</strong> automatically sets Material Density, Young's Modulus and<br />

Poisson Ratio.<br />

There is also an option to enter User Specified as the Material. In this case you must set Material Density, Young's<br />

Modulus and Poisson Ratio.<br />

Material Density<br />

This is the density of the material used in the construction of the pipe.<br />

Outer Diameter, Wall Thickness<br />

These data specify the geometry of the pipe cross-section.<br />

Young's Modulus<br />

The ratio of the tensile stress to the tensile strain.<br />

Poisson Ratio<br />

The amount of lateral strain experienced by a material subjected to tensile strain as a negative proportion of the<br />

tensile strain.<br />

The Line Type data that are derived, and the associated underlying expressions, are detailed in Modelling<br />

Homogeneous Pipes.<br />

6.8.16 Hoses and Umbilicals<br />

The Line Type Wizard estimates typical properties for hoses and umbilicals based on project data.<br />

Warning: The values generated by the Wizard are approximate only and are intended as first estimates for<br />

preliminary use. They are offered in good faith, but due to variations in properties between<br />

products they cannot be guaranteed. Please use suppliers' data where this is available.<br />

There are three categories of hose available:<br />

� High pressure which covers high pressure flexible risers and flowlines of unbonded construction with inside<br />

diameters in the range 2 to 15 inches (50 to 380mm).<br />

� Low pressure which covers low pressure floating hoses of bonded rubber construction with inside diameter<br />

from 2 to 20 inches (50 to 500 mm).<br />

� Fold-flat which covers low pressure, fold-flat hoses with steel reinforcement; inside diameter around 6 inches<br />

(150 mm).<br />

The umbilical properties assume construction with steel wire armour and thermoplastic hoses and outside diameter<br />

up to 250mm.<br />

The properties derived by the Wizard are obtained from empirically estimated relationships with the diameter of<br />

the hose/cable. They have been estimated from a limited amount of data covering only the range of diameters<br />

indicated above. For simplicity, only those relationships of the form:<br />

Y = aX b ,<br />

where b is an integer, were considered.<br />

In the details below the diameter is assumed to be in metres and the SI units system is applied throughout.<br />

The amount of data available for low pressure hoses and fold-flat hoses is very small.<br />

There is quite a bit more data for high pressure hoses and umbilicals but it is found to have quite a large spread. To<br />

demonstrate this spread, the ratio of the observed value to the fitted value, expressed as a percentage, is calculated<br />

and the largest and smallest of these is given.<br />

The <strong>OrcaFlex</strong> stress analysis is not applicable to complex structures such as hoses and umbilicals. Any available<br />

stress or wall tension results should therefore be ignored.


System Modelling: Data and Results, Lines<br />

Data for Umbilicals<br />

376<br />

w<br />

The Line Type Wizard can help build a line type to represent umbilical. Umbilical cables have many applications<br />

including the carrying of electrical communication wires and hydraulic connectors to submersibles. The Line Type<br />

data quantities that the wizard derives have been estimated from a limited amount of project data. The single item<br />

of input data is:<br />

Umbilical Diameter<br />

The outer diameter of the umbilical. Each derived line type property is a function of this diameter.<br />

Data for Hoses<br />

The Line Type Wizard helps you build a line type to represent a hose, based on the following data. A limited amount<br />

of available project data has been collated and used to derive purely empirical relationships between the diameter<br />

of types of hose and certain line type data quantities. The input data consists of:<br />

Hose Inner Diameter<br />

Each derived line type property is a function of the hose inner diameter.<br />

Hose Type<br />

The Hose Type can be one of high pressure, low pressure or fold-flat. These categories roughly cover the available<br />

project data.<br />

Outer and Inner Diameters<br />

The Line Type Wizard sets up Outer and Inner Diameters for hoses and umbilicals as follows:<br />

Hoses<br />

The inner diameter (ID) is specified by the user and the outer diameter (OD) is a function of the inner diameter:<br />

Umbilicals<br />

OD = 1.40 ID m (for High Pressure) [90% 150%],<br />

OD = 1.28 ID m (for Low Pressure),<br />

OD = 1.34 ID m (for Fold-Flat).<br />

The inner diameter (ID) is set to zero and the outer diameter (OD) is specified by the user.<br />

Mass per unit length<br />

The Line Type Wizard sets up mass for hoses and umbilicals as follows:<br />

Hoses<br />

For each type of hose the mass per metre has been estimated as a function of inner diameter giving:<br />

Umbilicals<br />

Mass per metre = 0.7253 ID te/m (for High Pressure) [55% 145%],<br />

Mass per metre = 0.3642 ID te/m (for Low Pressure),<br />

Mass per metre = 0.1844 ID te/m (for Fold-Flat).<br />

For the umbilicals the mass per metre has been estimated as a function of outer diameter giving:<br />

Mass per metre = 1.8 OD 2 te/m (for Umbilical) [35% 170%].<br />

Axial and Bending Stiffness<br />

The Line Type Wizard sets up Axial and Bending Stiffness and Limit Compression for hoses and umbilicals as<br />

follows:<br />

Axial Stiffness<br />

For each type of hose the axial stiffness has been estimated as a function of inner diameter giving:<br />

Axial Stiffness = 2.80 x 10 6 ID kN (for High Pressure) [40% 160%],


w<br />

Axial Stiffness = 3.40 x 10 4 ID kN (for Low Pressure),<br />

Axial Stiffness = 6.56 x 10 3 ID kN (for Fold-Flat).<br />

For the umbilicals the axial stiffness has been estimated as a function of outer diameter giving:<br />

Axial Stiffness = 1.44 x 10 6 OD kN (for Umbilical) [15% 415%].<br />

Bending Stiffness<br />

377<br />

System Modelling: Data and Results, Lines<br />

For each type of hose the bending stiffness has been estimated as a function of inner diameter giving:<br />

Bending Stiffness = 3 x 10 4 ID 4 kN.m 2 (for High Pressure) [45% 300%],<br />

Bending Stiffness = 6 x 10 2 ID 3 kN.m 2 (for Low Pressure),<br />

Bending Stiffness = 1 x 10 3 ID 3 kN.m 2 (for Fold-Flat).<br />

For the umbilicals the bending stiffness has been estimated as a function of outer diameter giving:<br />

Bending Stiffness = 3 x 10 3 OD 3 kN.m 2 (for Umbilical) [55% 240%].<br />

Limit Compression<br />

As the bending stiffness is significant this is set to 'no'.<br />

6.8.17 Modelling Stress Joints<br />

A tapered stress joint is a riser joint with a tapered cross-section. Stress joints are used to spread loads over a<br />

critical section of the riser. Stress joints are typically fabricated from steel or titanium.<br />

Stress joints are modelled in <strong>OrcaFlex</strong> using profiled line types. To model a stress joints you need to take the<br />

following steps:<br />

1. Create a line type with the homogeneous pipe category and set the inner diameter, material data (Young's<br />

modulus, Poisson ratio, material density), hydrodynamic properties etc.<br />

2. Create a Line Type Outer Diameter variable data source which defines the stress joint profile.<br />

3. Set the line type outer diameter to refer to the variable data source of the profile.<br />

4. Set the Line Type data item on the structure page of the line data form to refer to the profiled line type created<br />

above.<br />

Segmentation<br />

<strong>OrcaFlex</strong> line segments are straight, that is the diameter is constant over the length of the segment. Each segment in<br />

a profile line section has a diameter defined by evaluating the profile data at the mid-point of the segments.<br />

Because of this you typically need to use quite short segments to model the taper accurately. However, note that a<br />

stress joint is usually placed in a region of concentrated stress. Such regions also require short segments for<br />

accurate modelling and so the use of straight segments to model the profile does not in practice turn out to be a<br />

significant limitation.<br />

In order to determine segment length we recommend that you perform sensitivity studies on segment length.<br />

Arc length convention<br />

Profile arc length is defined relative to the start of the line section and increases from End A towards End B. To<br />

illustrate this consider a stress joint defined by the following profile:


System Modelling: Data and Results, Lines<br />

Figure: Stress joint profile<br />

378<br />

w<br />

A stress joint specified this way would commonly be used in the first section of a line. If, however, your stress joint is<br />

located adjacent to End B of the line, then the End A to End B convention means that the stress joint would be<br />

incorrectly configured. This is easy to check with the profile graph available on the line data form:<br />

Figure: Stress joint profile at End B, incorrectly modelled<br />

The problem is that the taper is now in the wrong direction. The thicker end of the taper should be adjacent to End B<br />

of the line. In order to fix this we simply need to reverse the profile data. This is very simple to do using the Reverse<br />

button on the variable data form. The result looks like this:<br />

Figure: Stress joint profile at End B, corrected<br />

The line profile graph when using the reversed profile now shows that the data is now applied as intended:


w<br />

Figure: Stress joint profile at End B, correctly modelled<br />

6.8.18 Modelling Bend Restrictors<br />

379<br />

System Modelling: Data and Results, Lines<br />

We begin by introducing some terminology. A bend restrictor is any device that controls, restricts or limits bending<br />

on a line. A bend limiter is a bend restrictor that has no effect until a certain curvature is reached, and then<br />

curvature is prevented from going above that value. A bend stiffener is a bend restrictor that provides increased<br />

bend stiffness in order to distribute more widely the bending.<br />

Modelling Bend Limiters<br />

Non-linear bend stiffness can be used to model a bend limiter. The approach is to specify a relationship between<br />

curvature and bend moment that has:<br />

� Low stiffness for curvature values lower than the lock-out curvature.<br />

� High stiffness for curvature values greater than the lock-out curvature.<br />

Typically the low stiffness value will be close to zero and the high stiffness value will be one or two orders of<br />

magnitude greater than the stiffness of the protected line. Try to avoid using too large a value since doing so can<br />

result in numerical instability. It may also help to smooth the transition from low to high stiffness.<br />

The most common modelling approach for bend limiters uses a single equivalent line type object to represent both<br />

the protected line and the limiter. The bend stiffness for this equivalent line type must account for both the<br />

protected line and the limiter. You may choose also to account for mass, displacement and hydrodynamic properties<br />

but often these properties are of lesser importance.<br />

An alternative to the equivalent line approach is to model the limiter as a separate object using the bend stiffener<br />

attachment (see below). The main difference from an elastomeric stiffener is that a general category line type with<br />

non-linear bend stiffness must be used for the attachment line type. The main advantage of this approach is that it<br />

becomes easier to check that the data is specified correctly because you can keep the data for the protected line<br />

separate from the data for the limiter.<br />

Modelling Bend Stiffeners<br />

Bend stiffeners are modelled in <strong>OrcaFlex</strong> using two separate lines to represent the stiffener and the line which it<br />

protects, which we refer to as the protected line. The region of the protected line which is covered by the stiffener<br />

is called the protected region.<br />

The two line approach enables reporting of separate results for the protected line and stiffener. In particular this<br />

makes fatigue analysis of the protected line quite simple since the reported loads and stresses for the protected line<br />

do not include the contributions of the stiffener.<br />

The protected line can have linear, non-linear elastic or hysteretic bending properties. The stiffener is modelled as a<br />

profiled homogeneous pipe. The stiffener can have linear or non-linear elastic material properties.


System Modelling: Data and Results, Lines<br />

Data<br />

380<br />

w<br />

Although the stiffener is modelled as a separate line you do not need to create this line manually – <strong>OrcaFlex</strong> creates<br />

it automatically as an attachment. The procedure for setting up a bend stiffener is as follows:<br />

1. Create a Line Type which defines the material, structural and hydrodynamic properties of the stiffener. Usually<br />

this will be a profiled homogeneous pipe.<br />

2. Create a Stiffener Type which uses this Line Type.<br />

3. Create a line attachment based on this Stiffener Type.<br />

4. Set the line attachment position and the Stiffener Type connection arc length so that the stiffener is attached at<br />

the desired location on the protected line.<br />

If you have multiple protected lines which all use identical bend stiffeners then you can create a single Stiffener<br />

Type which can be re-used on each protected line.<br />

The stiffener profile uses the convention that profile arc length increases from End A towards End B of the stiffener.<br />

If you have a bend stiffener connected at End B of a line then you will need to define the profile so that the arc length<br />

0 refers to the tip of the stiffener. The Modelling Stress Joints topic illustrates this issue in some more detail.<br />

Although the discussion there centres on stress joints many of the points covered are equally applicable to bend<br />

stiffeners.<br />

We strongly recommend that you use the Profile Graph available from the Line Data form to check that the stiffener<br />

is connected at the correct location on the line with the profile defined as you intended.<br />

Segmentation<br />

The stiffener line that <strong>OrcaFlex</strong> creates is modelled with uniform segment length – that is every segment in the<br />

stiffener has the same length. The segment length is determined by the segment length of the protected line in the<br />

protected region.<br />

The stiffener modelling (see below) requires that each node on the stiffener line is associated with a node on the<br />

protected line. Each stiffener node is effectively clamped to its associated protected node.<br />

These constraints have the following implications for the segmentation of the protected line:<br />

1. The protected region must have uniform segment length.<br />

2. The stiffener length must be an exact multiple of the segment length.<br />

One simple way to satisfy these requirements is to model the protected region as a single section with length equal<br />

to the stiffener length.<br />

Note that it is not essential for the protected region to be a single section. The protected region could comprise<br />

multiple sections each using different line types, so long as you satisfy the two rules above.<br />

Drawing and Results<br />

The stiffener line is drawn using the drawing data of the protected line to which it is attached. Note that the stiffener<br />

is not drawn when the program is in reset state; it is only drawn after the static or dynamic analysis has started.<br />

Results are available for the stiffener line exactly as they are for any other <strong>OrcaFlex</strong> line.<br />

<strong>OrcaFlex</strong> reports results separately for protected line and stiffener line and this does need some explanation. For<br />

example, consider bend moment at a particular location in the protected line and at the corresponding location in<br />

the stiffener line. Suppose that the bending stiffnesses are EIp and EIs for protected line and stiffener respectively<br />

(we are assuming linear bend stiffness for simplicity). The bend moment carried by the protected line and stiffener<br />

ensemble is given by BMtotal = C(EIp + EIs) where C is the curvature at this location. For the protected line <strong>OrcaFlex</strong><br />

reports the local protected line bend moment BMp = C.EIp and likewise for the stiffener line <strong>OrcaFlex</strong> reports BMs =<br />

C.EIs. It is straightforward to see that BMtotal = BMp + BMs.<br />

The total load is also split into separate protected line and stiffener loads for effective tension, wall tension, shear<br />

force, torque and stress results. However, the method for doing this varies for axial components as explained in the<br />

next section.<br />

Modelling details<br />

As mentioned above the stiffener is modelled as a separate <strong>OrcaFlex</strong> line which is created automatically by <strong>OrcaFlex</strong><br />

as an attachment. The stiffener line inherits a number of properties from its protected line, namely:


w<br />

� Include Torsion.<br />

� Segment length.<br />

� Statics friction data.<br />

� Drag formulation and wake interference data.<br />

� VIV data.<br />

� Drawing data.<br />

� Results data.<br />

381<br />

System Modelling: Data and Results, Lines<br />

The stiffener line does not have any free degrees of freedom. Instead each node on the stiffener is clamped to and<br />

moves and rotates with its associated node on the protected line. The stiffener line calculates its loads and inertia<br />

and then transfers them to the protected line. How this transfer is performed is governed by the Axial load/inertia<br />

transfer data of the Stiffener Type.<br />

All components of load and inertia normal to the stiffener are transferred directly from each stiffener node to its<br />

associated protected node. This, of course, enables the stiffener to perform its job of spreading the bend loads over<br />

the protected region.<br />

If the axial load/inertia transfer is specified to occur at the connection point then components of axial load/inertia<br />

are transferred to the protected node at the connection point. Typically this connection point is at the end of the<br />

protected line and the axial loads and inertia are thus transferred to the protected line's end connection. This<br />

modelling option effectively neglects any axial friction due to contact between stiffener and protected line.<br />

If the axial load/inertia transfer is specified to occur over the stiffener's full length then components of axial<br />

load/inertia are transferred directly from each stiffener node to its associated protected node. This corresponds to<br />

the assumption that the axial contact friction is sufficient that there is no axial slipping. The axial load will be shared<br />

between protected line and stiffener as determined by their relative axial stiffnesses, just as the bend moment is<br />

shared.<br />

Bend Stiffener design using <strong>OrcaFlex</strong><br />

The modelling approach described above applies where a bend stiffener has already been designed, and one of the<br />

objectives of the analysis is to confirm that the stiffener provides the required protection. However, in many cases<br />

the stiffener design does not yet exist and the analysis is needed in order to define design loads. If this is the case,<br />

then run a preliminary analysis with no bend stiffener included. The line should be modelled with a pinned end (i.e.<br />

zero bending stiffness at the line end connection).<br />

The load information required for bend stiffener design then consists of paired values of force and angle at the<br />

pinned end. These can be extracted in the form of an X-Y graph showing End Force against End Force Ez-Angle for<br />

the first segment. In practice, it is often sufficient to consider just three points on this graph, corresponding to<br />

maximum tension, maximum angle and maximum bend restrictor load: these can be extracted as linked statistics.<br />

Recall that End Force Ez-Angle is an absolute magnitude and therefore always takes a positive value. If a signed<br />

value is required (e.g. to define out-to-out load cycles for fatigue analysis), then use the End Force Ezx or End Force<br />

Ezy Angle as appropriate.<br />

It is usually necessary to combine results from several analysis runs in order to fully define the bend stiffener design<br />

loading. This is most conveniently done by exporting the End Force vs End Force Ez Angle results as a table of values<br />

for each analysis case, combining into a single Excel spreadsheet and using the plotting facilities in Excel to generate<br />

a single plot with all results superimposed. A simplified set of load cases representing the overall loading envelope<br />

can then be selected for use in stiffener design. The export to Excel can be done manually or automated through the<br />

Results spreadsheet.<br />

Bend Stiffener design using OrcaBend<br />

The task of bend stiffener design is usually left to the manufacturer, since the actual stiffener shape selected is<br />

governed in part by the manufacturing process, availability of tooling, etc., as well as by the load cases. The <strong>Orcina</strong><br />

program OrcaBend has been developed to assist this process. For further information contact <strong>Orcina</strong>.<br />

6.8.19 Modelling non-linear homogeneous pipes<br />

A non-linear stress-strain relationship is most commonly used to model either:<br />

� non-linear behaviour of elastomeric bend stiffeners, or


System Modelling: Data and Results, Lines<br />

� plastic deformation of steel pipes during installation.<br />

382<br />

w<br />

<strong>OrcaFlex</strong> can also model non-linear bend stiffness for General Category Line Types. However there are a number of<br />

advantages of using the homogeneous pipe approach if it is applicable:<br />

� The data are entered directly and there is no need to use the Line Type Wizard for Homogeneous Pipe or the<br />

Plasticity Wizard which makes data checking simpler.<br />

� The effects of a diameter profile and a non-linear material (e.g. bend stiffener) are handled automatically by the<br />

program.<br />

� The effects of direct tensile strain variation are again handled automatically by the program (see below).<br />

� Stress results are derived using the stress-strain relationship.<br />

On the other hand if you wish to model hysteretic bending behaviour then you must use the General Category Line<br />

Types approach.<br />

Data<br />

Stress-Strain Relationship variable data sources are used to define non-linear elastic material properties for<br />

homogeneous pipes.<br />

Stress-Strain relationship<br />

The relationship between stress and strain can be specified by either Ramberg-Osgood curve or Stress-Strain<br />

table.<br />

Material E, Reference Stress (σy), K, n (Ramberg-Osgood curve only)<br />

These data define the relationship between stress (σ) and strain (ε) in terms of a Ramberg-Osgood curve as follows:<br />

ε(σ) = σ/E + K(σ/σy) n for σ ≥ 0.<br />

ε(σ) = -ε(-σ) for σ < 0.<br />

The reference stress parameter is usually taken to be the yield stress, which is why it is denoted σy here.<br />

Note that there is an alternative parameterisation of the Ramberg-Osgood equation. It is straightforward to convert<br />

between the two forms of the equation but please take care to ensure that the data you input correspond to the<br />

parameterisation used by <strong>OrcaFlex</strong>.<br />

Stress, Strain (Stress-Strain table only)<br />

This table directly specifies the relationship between stress and strain. Values for positive strain must be entered<br />

and the relationship for negative strain is then determined by reflection so that σ(ε) = -σ(-ε). The table is<br />

interpolated linearly and for values of strain outside the table linear extrapolation will be used.<br />

Model building<br />

<strong>OrcaFlex</strong> uses the stress-strain relationship to generate a table of bend moment against curvature using the same<br />

algorithm as the Plasticity Wizard. Each segment in the <strong>OrcaFlex</strong> model uses a distinct bend moment / curvature<br />

table which is clearly necessary if the line type has a diameter profile.<br />

The use of distinct bend moment / curvature tables also allows <strong>OrcaFlex</strong> to account for the variation of direct tensile<br />

strain within a line. The bend moment / curvature relationship depends upon:<br />

� The stress-strain relationship (as described above).<br />

� The inner and outer diameter (as specified in the Line Type data).<br />

� The direct tensile strain.<br />

The direct tensile strain can have a significant effect on the non-linear bending behaviour if it is large. To see why<br />

this is so consider a steel pipe under tension such that the direct tensile strain equals the yield strain. When the pipe<br />

is in this state then any small amount of curvature will yield the pipe outer fibres. On the other hand consider an<br />

unstressed steel pipe, where the direct tensile strain is zero. In this state the pipe can withstand significant<br />

curvature before the outer fibres yield.<br />

In principle the bend moment / curvature relationship could be recalculated at each time step of an <strong>OrcaFlex</strong><br />

calculation. However this would incur a significant performance cost. Instead we make the assumption that the<br />

effect of dynamic variation of direct tensile strain on the bend moment / curvature relationship is small.


w<br />

383<br />

System Modelling: Data and Results, Lines<br />

This allows us to use a constant value of direct tensile strain for the purpose of deriving the bend moment /<br />

curvature relationship. Note that each segment in the model has a distinct bend moment / curvature relationship<br />

based on a distinct value of direct tensile strain. By "constant" we mean that we do not update the bend moment /<br />

curvature relationship during the dynamic simulation. Note also that this discussion of direct tensile strain only<br />

pertains to the generation of bend moment / curvature relationships. The program does, of course, account for<br />

dynamic variation of direct tensile strain when calculating wall tension, effective tension etc.<br />

The program chooses the value of direct tensile strain by first performing a static calculation under the assumption<br />

that direct tensile strain is 0. Non-linear bend moment / curvature relationships are created for each segment under<br />

this assumption. The direct tensile strain values from this initial static solution are then used to update the nonlinear<br />

bend moment / curvature relationships. Finally the static calculation is repeated to obtain a solution which<br />

accounts for the effects of direct tensile strain.<br />

Stress results<br />

The non-linear stress-strain relationship is also used to calculate certain stress results from strain values. Nonlinear<br />

stress-strain leads to a non-linear elastic bend stiffness, but the axial and torsional stiffnesses are still<br />

assumed to be linear. This means that the only stress results affected are those that depend on bending: Max<br />

Bending Stress, von Mises Stress, Max von Mises Stress and ZZ Stress.<br />

6.8.20 Line Ends<br />

Lines in <strong>OrcaFlex</strong> run from End A to End B. Travelling from A to B, the orientation of any segment in the line is<br />

defined in terms of Azimuth and Declination angles, relative to global axes. Azimuth is measured in the X-Y plane,<br />

Declination is measured downwards from the Z axis. See No-Moment Direction.<br />

No-moment Direction<br />

Associated with each end is a stiffness, and a no-moment direction which is described in terms of azimuth and<br />

declination. This too uses the End A to End B convention, so if we hang up a catenary of line, and then freeze the<br />

ends, the no-moment directions are as shown below:<br />

End A<br />

Declination<br />

Angle<br />

No moment direction<br />

( Az = 0, Dec = 160 )<br />

Figure: Directions<br />

z<br />

y<br />

x<br />

Azimuth<br />

Angle<br />

No moment direction<br />

( Az = 0, Dec = 45 )<br />

End B<br />

If the line end is attached to a body which can move (a Vessel or Buoy), then the no-moment direction is defined<br />

relative to the body axes and therefore moves with the body. Otherwise, it is defined in global axes.


System Modelling: Data and Results, Lines<br />

End Stiffness<br />

384<br />

w<br />

The stiffness associated with the end can be used to represent an item such as a flexjoint, whose stiffness is in units<br />

of moment per unit angle, e.g. kN.m/degree. More commonly, the line end is either free to rotate or fully restrained.<br />

In the first case, the end stiffness is set to zero; in the second case, the end stiffness is set to Infinity. Note that it is<br />

never necessary (or correct) to 'convert' the line stiffness into an end stiffness: the program includes the line<br />

stiffness for you automatically.<br />

Free-to-rotate or Fully-restrained Ends<br />

In many practical cases, the line ends are neither completely free nor fully restrained. Nevertheless, we recommend<br />

that you should usually choose one of these conditions. When should you use one rather than the other? The<br />

following notes offer a brief guide:<br />

1. Many systems modelled using <strong>OrcaFlex</strong> consist of relatively long flexible lines where bend stiffness plays only a<br />

minor role in determining the overall forces on and movements of the system. In such systems, line ends may<br />

safely be modelled as free-to-rotate.<br />

2. An exception to this rule is systems which include one or more 6D buoys. The rotational motions of the buoy<br />

may then be influenced by moment transfer from the ends of lines attached to it, particularly where buoy<br />

rotational inertias are small. In such cases, the end connections to the buoy should be fully restrained.<br />

3. A further exception is systems where the flexible lines are relatively short and stiff, e.g. a large diameter underbuoy<br />

hose in shallow water. Bend stiffness, including end moments, may have a significant influence on overall<br />

system behaviour in such cases, and the end connections should be fully restrained.<br />

4. Where fully restrained ends are used, it is necessary to pay more attention to the modelling of the line close to<br />

the end. In particular make allowance for the additional stiffness of a bend stiffener, if one is fitted and use<br />

shorter segments near the line ends so as to represent the moments with sufficient accuracy.<br />

5. Roll-on/roll-off contact (e.g. stern rollers, pipelay stingers, mid-water arches for riser systems). A pinned<br />

connection at the average contact point is often sufficient. For a more exact representation, use one or more<br />

solids to represent the supporting surface, but remember that there must be sufficient nodes at the line end to<br />

interact with the solid.<br />

End Force and End Force Ez-Angle<br />

The figure below shows the end connection of a flexible line fitted with a bend stiffener. The line applies a load<br />

(tension) T as shown. If the local loads (weight, drag, etc.) on the end part of the line, including the bend stiffener,<br />

are small by comparison with T, then the reaction force F is equal and opposite to T, and the bend moment at the<br />

end fitting is M = T.h.<br />

<strong>OrcaFlex</strong> reports the End Force, F, and the End Force Ez-Angle, θ, as shown. The "No moment direction" is defined in<br />

the input data. When the reaction force F acts in the no moment direction, then the reaction moment M is zero.<br />

It is clear from this that<br />

1. End Force and End Force Ez-Angle are the same whether the end condition is defined as free-to-rotate, fully<br />

restrained, or some intermediate condition;<br />

2. The bend moment at the end fitting, M, is a function of the lever arm, h, which depends not only on the end<br />

condition but also on the bend stiffness distribution in the line/bend stiffener.


w<br />

F<br />

M<br />

�<br />

No moment direction<br />

Figure: End connection of a flexible line fitted with a Bend Stiffener<br />

Design Loads for End Fittings<br />

385<br />

h<br />

System Modelling: Data and Results, Lines<br />

For design of end fittings, including bend restrictors, the principal parameters provided by <strong>OrcaFlex</strong> are End Force<br />

and End Force Ez-Angle. The moment at the end can then be determined by a local (static) analysis which can be<br />

developed to incorporate as much detail as required.<br />

This approach is usually sufficient, except where End Force is very small. This occurs when the line tension T comes<br />

close to zero. The direction of the end force is then no longer dominated by the line tension, and other loads (shear,<br />

local drag and inertia loads etc.) which are usually negligible become important. In these conditions, the reported<br />

End Force Ez-Angle is misleading and a more appropriate estimate should be made from the system geometry. This<br />

can be done using the Ez-Angle results variable. Ez-Angle for any segment gives the angle of that segment relative to<br />

the No Moment Direction at the adjacent line end, including allowance for the motion of line end where the line is<br />

attached to a vessel or buoy. Ez-Angle for a point near the end of the bend restrictor is a reasonable alternative<br />

where End Force Ez-Angle is not suitable.<br />

Results<br />

When examining results at line ends note that if a stiff pipe goes into compression, line tension becomes negative<br />

but End Force remains positive, and End Force Ez-Angle may approach 180°.<br />

Curvature is calculated in <strong>OrcaFlex</strong> by dividing the angle change at any node by the sum of the half-segment lengths<br />

on each side of the node: bend moment is curvature multiplied by bend stiffness. At the end, <strong>OrcaFlex</strong> takes the<br />

angle change between the end segment of the line and the no-moment direction, and reports the corresponding<br />

curvature and bend moment based on the half length of the end segment. Where bend stiffness at the line end is<br />

zero (pinned end or a zero stiffness line), curvature and bend moment are reported as zero.<br />

Design Data for Bend Restrictors<br />

We classify bend restrictors into 3 types:<br />

� Bellmouths: curved surfaces which support the flexible and maintain acceptable curvature.<br />

� Bend Limiters: articulated devices which rotate freely to a specified curvature, then stop.<br />

� Bend Stiffeners: elastomeric devices which provide a tapered additional bend stiffness.<br />

Different design information is required for each type:<br />

Bellmouth<br />

The principal design requirement is that bellmouth angle should be greater than the maximum value of End Force<br />

Ez-Angle. For cases where the bellmouth is not radially symmetrical, <strong>OrcaFlex</strong> reports components of End Force<br />

T


System Modelling: Data and Results, Lines<br />

386<br />

w<br />

Angle in the local XZ and YZ planes. End Force Ezx-Angle is the component in the local xz plane; End Force Ezy-Angle<br />

is the component in the local yz plane.<br />

Bend Limiter<br />

There are two design requirements:<br />

1. The limiter length must be not less than a*R where a is End Force Ez-Angle and R is the limiter locking radius.<br />

2. The limiter must be capable of withstanding the maximum bend moment M given by M = R*F*(1-cos(a)) where<br />

F, a are simultaneous values of End Force and End Force Ez-Angle. <strong>OrcaFlex</strong> reports Bend Restrictor Load P =<br />

F*(1-cos(a)) as an aid to bend limiter design. P is sometimes called "pseudo-curvature".<br />

Bend Stiffener<br />

The design process for a stiffener is more complex than for a bellmouth or a bend limiter, and the critical design load<br />

cases are not always self-evident. An X-Y graph of F against a (End Force against End Force-Ez Angle) provides a<br />

complete definition of the loading for one analysis case, with each (F,a) pair defining a load case. The bend stiffener<br />

should be designed to prevent infringement of the permitted curvature for any (F,a) pair. In practice, it is often<br />

sufficient to consider just the three (F,a) pairs corresponding to maximum values of End Force F, End Force Ez-<br />

Angle a and Bend Restrictor Load P.<br />

Once the stiffener design is known the stiffener can be modelled using a bend stiffener attachment.<br />

6.8.21 Modelling Compression in Flexibles<br />

When a flexible line experiences compression, it responds by deflecting transversely: the magnitude of the<br />

deflection is controlled by bend stiffness. Under static conditions, the behaviour of an initially straight section of line<br />

under pure axial loading is described by classic Euler buckling theory. This defines the maximum compressive load –<br />

the "Euler load" – which a particular length of line can withstand before transverse deflection occurs. The Euler load<br />

is a function of the length of the straight section, the bend stiffness and the end conditions. For a simple stick of<br />

length L, bend stiffness EI, with pin joints at each end, the Euler load is π 2 EI/L 2 . The Euler load is derived from a<br />

stability analysis: it tells us the value of axial load at which transverse deflection will occur but nothing about the<br />

post-buckling behaviour.<br />

Under dynamic loading conditions, the transverse deflection is resisted by a combination of inertia and bending.<br />

<strong>OrcaFlex</strong> is fully capable of modelling this behaviour provided the discretisation of the model is sufficient, i.e.<br />

provided the segments are short enough to model the deflected shape properly. Another way of saying the same<br />

thing is that the compressive load in any segment of the line should never exceed the Euler load for the segment.<br />

Why are these two statements equivalent? Imagine the real line replaced by a series of rigid sticks connected by<br />

rotational springs at the joints – this is essentially how <strong>OrcaFlex</strong> models the line. Under compression, the line<br />

deflects: the sticks remain straight and the joints rotate. Provided the wavelength of the deflection is longer than the<br />

length of the individual sticks then the rigid stick model can approximate it: shorter sticks give a better<br />

approximation.<br />

If the compressive load reaches the Euler load for an individual stick, then the real line which the stick represents<br />

will start to deform at a shorter wavelength, and deflections within the stick length become significant. Clearly, this<br />

stick model is no longer adequate. By replacing each long stick by several short ones, we can make the Euler load for<br />

each stick greater than the applied compressive load. Each stick will then remain straight, but we now have more<br />

sticks with which to model the deflected shape.<br />

This gives us a convenient way of checking the adequacy of our model: provided the compressive load in each<br />

segment always remains less than the Euler load for that segment, then we can have confidence that the behaviour<br />

of the line in compression is adequately modelled. <strong>OrcaFlex</strong> makes this comparison automatically for all segments<br />

and reports any infringements in the Statistics tables. The segment Euler load is also plotted in tension range graphs<br />

(as a negative value – compression is negative) so that infringements are clearly visible.<br />

If the segment Euler load is infringed during a simulation, then we have to decide what to do about it. If<br />

infringement occurs only during the build-up period, perhaps as a result of a starting transient, then we can safely<br />

ignore it. If it occurs during the main part of the simulation, then we should examine the time histories of tension in<br />

the affected areas. Where infringements are severe and repeated or of long duration the analysis should be repeated<br />

with shorter segments in the affected area. However it may be acceptable to disregard occasional minor<br />

infringements of short duration on the following grounds:<br />

� Transverse deflection caused by compression takes some time to occur because of inertia.


w<br />

387<br />

System Modelling: Data and Results, 6D Buoys<br />

� The segment Euler load used in <strong>OrcaFlex</strong> as a basis for comparison is the lowest of the various alternatives, and<br />

assumes pinned joints with no bend stiffness at each end of the segment. This is a conservative assumption.<br />

� Whether or not to disregard an infringement is a decision which can only be taken by the analyst in the context<br />

of the task in hand.<br />

Limit Compression Switch<br />

For each line type, the data includes a Limit Compression switch.<br />

The usual setting is "No". This means that each segment of this line type is treated as a strut capable of taking<br />

whatever compressive loads arise in the course of the simulation.<br />

For some special cases, such as chains and soft ropes with little bend stiffness, this is not the most useful model and<br />

<strong>OrcaFlex</strong> offers an alternative. Lines of this sort cannot take compression at all, so the "Limit Compression" switch<br />

can be set to "Yes". <strong>OrcaFlex</strong> then does not allow compressive loading greater than the segment Euler load (which is<br />

zero if the bend stiffness is zero).<br />

Note: In either case, if the segment Euler load is reached then a Warning is given on the result form and<br />

in the statistics table.<br />

6.9 6D BUOYS<br />

6D Buoys are objects having all six degrees of freedom – 3 translational (X, Y, Z) and 3 rotational (Rotation 1, 2, 3).<br />

Buoys have both mass and moments of inertia, and forces and moments from many different effects can be<br />

modelled, including:<br />

� Weight and inertial loads.<br />

� Buoyancy, added mass, damping and drag. For a surface-piercing buoy these fluid loads take account of the<br />

proportion of the buoy that is below the water surface.<br />

� Slam forces as the buoy passes through the sea surface.<br />

� Connection loads from objects attached to the buoy (e.g. lines, links or winches).<br />

� Wing loads. A wing is a rectangular surface attached to the buoy at a specified position and orientation, which<br />

experiences lift and drag forces, and a moment, due to the relative flow of the sea past the wing. If the wing<br />

pierces the surface then the wing loads are scaled by the proportion of the wing area that is below the surface.<br />

� Applied loads. These can be used to model thrusters.<br />

� Contact loads from the vertices of the buoy contacting the seabed or elastic solids, including friction modelling.<br />

Lines attached to a 6D Buoy can thus experience both moment effects and translations as the buoy rotates. Lines can<br />

be attached to an offset position on a buoy – this allows the direct study of line clashing, including the separation<br />

introduced by spaced attachment points.<br />

Three types of 6D Buoy are available: Lumped Buoys, Spar Buoys and Towed Fish. These 3 types share some<br />

common data, but they differ in how the geometry of the buoy is defined and how the fluid loads and surfacepiercing<br />

effects are calculated – see below.<br />

Lumped Buoys<br />

The first type, Lumped Buoys, are specified without reference to a specific geometry. This necessarily restricts the<br />

accuracy with which interactions with the water surface are modelled. Where a lumped buoy pierces the surface it is<br />

treated for buoyancy purposes as a simple vertical stick element with a length equal to the specified height of the<br />

buoy, and buoyancy therefore changes linearly with vertical position without regard to orientation. This model does<br />

not provide the rotational stiffness that would be experienced by most surface piercing buoys. See Lumped Buoy<br />

Properties for further details.<br />

Spar Buoys<br />

The second type, called Spar Buoys, are intended for modelling axi-symmetric buoys whose axis is normally<br />

vertical, particularly where surface piercing effects are important (such as for a CALM buoy).<br />

Spar Buoys are modelled as a series of co-axial cylinders mounted end to end along the local z-axis (see Spar Buoy<br />

and Towed Fish Properties). This allows you to provide some information about the buoy geometry, by specifying


System Modelling: Data and Results, 6D Buoys<br />

388<br />

w<br />

the number of cylinders and their lengths and diameters. A conical or spherical shape can be approximated as a<br />

series of short cylinders of gradually increasing or diminishing diameter.<br />

Spar Buoys model surface-piercing effects in a much more sophisticated way than Lumped buoys. Effects such as<br />

heave stiffness and righting moments in pitch and roll are determined by calculating the intersection of the water<br />

surface with each of the cylinders making up the buoy, allowing for the instantaneous position and orientation of<br />

each cylinder in the wave. Slam forces are also calculated and applied separately for each cylinder.<br />

Hydrodynamic loads on Spar Buoys are calculated using Morison's equation. Added mass and drag forces are<br />

applied only to those parts of the buoy which are in the water at the time for which the force is calculated. For partly<br />

immersed cylinders, added mass and drag are scaled according to the proportion of the cylinder volume that is<br />

submerged. The use of Morison's equation implies that the buoy diameter is small compared to the wavelength<br />

(usually the case for CALM buoys and the like) but means that some load terms are not represented.<br />

Towed Fish<br />

The third type, called Towed Fish, are intended for modelling bodies, such as towed fish, whose principal axis is<br />

normally horizontal. Towed Fish buoys are identical to Spar Buoys except that the stack of cylinders representing<br />

the buoy is laid out along the x-axis of the buoy, rather than along the z-axis.<br />

Because they are modelled as a stack of concentric cylinders, Spar Buoys and Towed Fish are less suitable for fully<br />

submerged objects with more complex geometry.<br />

For further details see Spar Buoy and Towed Fish Properties.<br />

6.9.1 Wings<br />

6D buoys can have a number of wings attached; these are useful for representing lift surfaces, diverters etc. Each<br />

wing has its own data and results available.<br />

A wing is a rectangular surface, attached to the buoy at a specified position and orientation, which experiences lift<br />

force, drag force and drag moment, due to the relative flow of fluid past the wing. These loads depend on userspecified<br />

coefficients that depend on the incidence angle of the relative fluid flow.<br />

The fluid referred to here can be the sea, the air, or both, as follows.<br />

� Whenever the wing is completely below the instantaneous water surface, then the lift and drag loads are<br />

calculated using the sea density, velocity and incidence angle.<br />

� Whenever the wing is completely above the water surface, and if you have selected to include wind loads on<br />

wings (on the Wind page on the Environment data form), then instead air lift and drag loads are calculated and<br />

applied, using the same formulae and coefficients, but using the air density, velocity and incidence angle.<br />

� When the wing is partially submerged, <strong>OrcaFlex</strong> calculates what proportion of the wing rectangle area is below<br />

the instantaneous water surface, i.e. its 'proportion wet' PW. <strong>OrcaFlex</strong> then calculates the water lift and drag<br />

loads as if the wing was fully submerged, but then scales them by PW before they are applied. In addition, if you<br />

have selected to include wind loads on wings, then <strong>OrcaFlex</strong> also calculates the air lift and drag loads (as if the<br />

wing was not submerged) and scales them by 1-PW, i.e. the 'proportion dry', before they are applied. When this<br />

happens, therefore, both water and air lift and drag loads are applied, each appropriately scaled. The wing lift,<br />

drag and moment results then report the water loads whenever the wing is more than half submerged and the<br />

air loads whenever it is less than half submerged.<br />

Note: The true effects of a wing breaking surface, for instance planing and slamming, are much more<br />

complex than this and are not modelled for wings. However slam loads on the 6D buoy itself can be<br />

modelled – see Slam Force Theory.<br />

Wings do not have any mass, added mass or buoyancy associated with them. Therefore any mass, added mass or<br />

buoyancy due to wings should be added into the properties specified for the buoy itself.<br />

The drag force on a wing is the force applied in the direction of relative flow. The lift force is the force at 90° to that<br />

direction. The moment represents the moment (about the wing centre) that arises due to the fact that the centre of<br />

pressure may not be at the wing centre. These loads are applied at the wing centre and are specified by giving lift,<br />

drag and moment coefficients as a function of the incidence angle α between the relative velocity vector (flow<br />

velocity relative to wing) and the wing plane.


w<br />

Chord<br />

Leading<br />

edge<br />

Figure: Wing Model<br />

+ve lift<br />

Wx<br />

Span<br />

Wy<br />

Wz Principal<br />

W<br />

Wing Axis<br />

-ve lift<br />

389<br />

System Modelling: Data and Results, 6D Buoys<br />

Flow Velocity V<br />

(relative to wing)<br />

Each wing has its own set of local wing axes, with origin W at the wing centre and axes Wx, Wy and Wz.<br />

� Wy is normal to the wing surface and points towards the positive side of the wing, i.e. the side towards which<br />

positive lift forces act.<br />

� Wx and Wz are in the plane of the wing. The wing is therefore a rectangle in the Wxz plane, centred on W.<br />

� Wz is the principal axis of the wing. It is the axis about which the wing can easily be pitched, by adjusting the<br />

wing gamma angle.<br />

� Wx is in the plane of the wing, normal to the axis Wz, so that (Wx,Wy,Wz) form a right-hand triad.<br />

� We normally choose Wz and Wx so that Wx is towards the leading edge of the wing. With this arrangement,<br />

increasing the wing gamma angle moves the leading edge in the direction of positive lift.<br />

We refer to the wing's length in the Wz direction as its span and its width in the Wx direction as its chord.<br />

6.9.2 Common Data<br />

All types of 6D Buoy use a local buoy axes coordinate system. The origin of the buoy axes can any point chosen by<br />

the user, but the buoy axes directions should be in the directions of the principal axes of structural inertia of the<br />

buoy – see Mass Moments of Inertia below.<br />

Name<br />

Used to refer to the 6D Buoy.<br />

Type<br />

Three types of buoy are available: Lumped Buoys, Spar Buoys and Towed Fish. The following data items are<br />

common to all types.<br />

Connection<br />

A 6D Buoy can either be Free, Fixed or connected to a Vessel, 6D Buoy or a Line (provided that line includes<br />

torsion).<br />

� If the buoy is Free then it is free to move in response to wave loads, attached lines etc. In this case the buoy's<br />

Initial Position and Attitude are specified relative to global axes.<br />

� If the buoy is Fixed then it cannot move. Its Initial Position and Attitude are specified relative to global axes.<br />


System Modelling: Data and Results, 6D Buoys<br />

390<br />

w<br />

� If the buoy is connected to a Vessel, 6D Buoy or a Line, then it is rigidly connected to that object and so moves<br />

and rotates with it. All resulting forces and moments on the buoy are transmitted to the object. In this case the<br />

buoy's Initial Position and Attitude are specified relative to the object to which it is connected.<br />

Initial Position and Attitude<br />

Specifies the initial position of the buoy origin and the buoy initial orientation.<br />

If the buoy is Free or Fixed then its initial position is specified by giving the X, Y and Z coordinates of the buoy<br />

origin B, relative to the global axes. And its initial orientation is specified by giving 3 angles Rotation 1, Rotation 2,<br />

Rotation 3, which are successive rotations that define the orientation of the buoy axes Bxyz, relative to global axes,<br />

as follows. First align the buoy with global axes, so that Bxyz are in the same directions as GXYZ. Then apply<br />

Rotation 1 about Bx (=GX), followed by Rotation 2 about the new By direction, and finally Rotation 3 about the new<br />

(and final) Bz direction.<br />

If a Free buoy is not included in the static analysis then this initial position is taken to be the static position of the<br />

buoy. If the buoy is included in the static analysis, then this initial position is used as an initial estimate of the buoy<br />

position and the static analysis will move and rotate the buoy from this position until an equilibrium position is<br />

found. See Degrees of Freedom Included in Static Analysis.<br />

If the buoy is connected to a Line, then the Initial Position and Attitude specify where on the line it is connected, and<br />

with what orientation, as follows:<br />

� The Initial Position z-coordinate specifies the arc length at which the buoy should be connected to the line. The<br />

buoy will be connected to the nearest node to that arc length. This arc length may be measured relative to either<br />

End A or End B as specified by the user.<br />

� The buoy will be connected to that node, but with an offset relative to that node's axes that is given by (x, y, 0).<br />

� The buoy orientation relative to the node axes is specified by the Initial Attitude angles.<br />

Degrees of Freedom Included in Static Analysis<br />

Determines which degrees of freedom are calculated by the static analysis. This data item only applies to Free buoys<br />

and it can be set to one of:<br />

� None: the buoy position and orientation are not calculated by the static analysis – they are simply set to the<br />

initial position and orientation specified on the buoy data form.<br />

� X,Y,Z: the buoy position is calculated by the static analysis, but its orientation is simply set to the initial<br />

orientation set on the buoy data form.<br />

� All: the buoy position and orientation are calculated by the static analysis.<br />

Normally this data item should be set to All so that the static analysis calculates the true equilibrium position and<br />

orientation of the buoy. However it is sometimes useful to fix the buoy position or orientation, for example if the<br />

static analysis is unable to find the equilibrium position or orientation.<br />

Mass<br />

Mass or weight in air.<br />

Mass Moments of Inertia<br />

The solid moments of inertia of the buoy, about the local x, y and z buoy axes directions through its centre of mass.<br />

Note: These moments of inertia are the diagonal terms in the structural inertia matrix about the<br />

specified centre of mass. The off-diagonal terms are taken to be zero, so the buoy axes should be<br />

chosen to be in the principal directions of inertia about the centre of mass (or at least be close to<br />

those directions).<br />

Damping relative to<br />

You can choose whether the buoy velocity used with the damping data that you specify (see lumped buoy data or<br />

spar buoy or towed fish data) should be the buoy velocity relative to earth, or the buoy velocity relative to the fluid.<br />

To model wave radiation damping the velocity relative to earth should be used, whereas to model skin friction<br />

damping the velocity relative to the fluid should be used.


w<br />

Centre of Mass<br />

391<br />

System Modelling: Data and Results, 6D Buoys<br />

The centre of mass of the buoy, relative to the buoy origin. The weight force, mass and moments of inertia are<br />

applied at this point.<br />

Bulk Modulus<br />

Specifies the compressibility of the buoy. If the buoy is not significantly compressible, then the Bulk Modulus can be<br />

set to Infinity, which means 'incompressible'. See Buoyancy Variation for details.<br />

Contact<br />

Total Contact Area<br />

This is used to determine contact forces when the buoy comes in to contact with the seabed and with elastic solids.<br />

If a value of '~' is specified then <strong>OrcaFlex</strong> calculates a default value for total contact area based on the buoy<br />

geometry. See Contact Forces for details.<br />

Specifying a value of zero allows you to disable contact for the buoy.<br />

Seabed Friction Coefficient<br />

<strong>OrcaFlex</strong> can model Coulomb friction between the buoy and the seabed and elastic solids. The friction force applied<br />

never exceeds μR where R is the contact reaction force and μ is the friction coefficient.<br />

Note: The friction coefficient for contact with elastic solids is specified on the Solid Friction Coefficients<br />

data form.<br />

See Friction Theory for further details of the friction model used.<br />

6.9.3 Applied Loads<br />

You can apply to the buoy external Global Loads that do not rotate if the buoy rotates. These are specified by giving<br />

the components of Applied Force and Applied Moment relative to global axes. These components can be constant,<br />

vary with simulation time or be given by an external function. If the buoy rotates then the loads do not rotate with it.<br />

In addition, you can specify external Local Loads that do rotate with the buoy. These are specified by giving the<br />

components of Applied Force and Applied Moment relative to buoy axes. Again these components can be constant,<br />

vary with simulation time or be given by an external function. If the buoy rotates then the loads do rotate with it.<br />

These are suitable for modelling thrusters, for example.<br />

In both cases the Point of Application of the load is specified by giving its x,y,z coordinates relative to buoy axes.<br />

6.9.4 Wing Data<br />

6D buoys can have a number of wings attached, each having its own data and type.<br />

Name<br />

Used to refer to the wing.<br />

Span<br />

The length of the wing, in the local Wz direction.<br />

Chord<br />

The width of the wing, in the local Wx direction.<br />

Centre of Wing<br />

The position of the wing origin, relative to buoy axes. The wing is drawn as a simple rectangle centred on this origin,<br />

the rectangle's dimensions being the specified Chord and Span.<br />

Note that this origin is the point at which the relative velocity is calculated and at which the resulting wing lift and<br />

drag forces are applied. It should therefore normally be at the centre of pressure, which may not be at the centre of<br />

area (even though <strong>OrcaFlex</strong> draws the wing as being centred at this point).<br />

Orientation<br />

The orientation of the wing is specified by giving 3 angles – azimuth, declination and gamma – relative to the buoy<br />

axes. The angles can be fixed, or can vary with simulation time, or can vary and be given by an external function.


System Modelling: Data and Results, 6D Buoys<br />

The angles define the orientation of the local wing axes relative to the buoy axes as follows:<br />

392<br />

w<br />

� Start with the wing axes Wxyz aligned with the buoy axes Bxyz and then rotate Wxyz about Bz by the azimuth<br />

angle. This leaves Wz aligned with Bz but Wx now points in the direction towards which the declination is to be<br />

made.<br />

� Now rotate by the declination angle about the new direction of Wy. This declines Wz down into its final<br />

direction, i.e. Wz now points along the direction whose azimuth and declination angles are as specified.<br />

� Finally rotate by the gamma angle about this final Wz direction. This is a rotation about the principal wing axis,<br />

so it allows you to adjust the pitch of the wing.<br />

For each of these rotations, positive angles mean clockwise rotation and negative angles mean anti-clockwise<br />

rotation, when looked at along the axis of rotation.<br />

When setting these orientation angles, it is easiest to first set the azimuth and declination values to give the desired<br />

Wz-direction. This is the direction of the axis about which the wing pitch is set. Then set gamma to give the correct<br />

pitch of the wing. This process is best done with the Draw Local Axes option set on (see the View menu or the<br />

Tools | Preferences menu) since the wing axes are then visible on the 3D view and you can check that the resulting<br />

orientation is correct.<br />

Wing Type<br />

Determines the properties of the wing. You can define a number of wing types – click the "Wing Types" button to<br />

access the wing types data form.<br />

6.9.5 Wing Type Data<br />

6D buoys can have a number of wings attached, each having its own data and type.<br />

Name<br />

Used to refer to the wing type.<br />

Wing Type Properties<br />

The properties of each wing type are specified by giving a table of lift, drag and moment coefficients as a function of<br />

the incidence angle of the flow relative to the wing.<br />

A 'Graph' button is provided, which displays a graph of the 3 coefficients so that you can visually check your data.<br />

Incidence Angle<br />

The incidence angle is the angle, α, that the relative flow vector makes to the wing surface. This equals 90° minus the<br />

angle between Wy and the relative flow vector.<br />

The incidence angle is always in the range -90° to +90°, where positive values mean that the flow is towards the<br />

positive side of the wing (i.e. hitting the negative side) and negative values mean that the flow is towards the<br />

negative side of the wing (i.e. hitting the positive side).<br />

The incidence angles in the table must be given in strictly increasing order and the table must cover the full range of<br />

incidence angles, so the first and last angle in the table are set to -90° and +90° and cannot be changed. Linear<br />

interpolation is used to obtain coefficients over the continuous range of angles.<br />

Note: The wing lift, drag and moment are assumed to depend only on the incidence angle, not on the<br />

angle of attack in the wing plane. <strong>OrcaFlex</strong> will therefore use the same lift, drag and moment<br />

coefficients for flow (with the same incidence angle) onto the front, the side or the back of the wing,<br />

even though your data may only apply over a limited range of in-plane attack angles. You can<br />

check that the angle of attack in the wing plane stays within the range of your data by examining<br />

the Beta angle result variable.<br />

Lift, Drag and Moment Coefficients<br />

These define the hydrodynamic and aerodynamic loads applied to the wing. Aerodynamic loads are only applied if<br />

the Include wind loads on 6D Buoy Wings option is enabled in the Environment data.<br />

The lift coefficient Cl(α) defines the lift force applied to the wing, as a function of incidence angle α. The lift<br />

coefficients can be positive or negative and the lift force is given by:<br />

Lift Force = P ½.Cl(α).ρ.A.V 2


w<br />

where<br />

P is the proportion wet or proportion dry as appropriate.<br />

ρ is the fluid density,<br />

A is the area of wing that is inside the fluid and<br />

V is the relative flow velocity at the wing centre.<br />

393<br />

System Modelling: Data and Results, 6D Buoys<br />

The lift force is applied at the wing centre, along the line that is at 90° to the relative flow vector and in the plane of<br />

that vector and Wy. For α = ±90° this line is ill-defined and the lift coefficient must be zero. Positive lift coefficients<br />

mean lift pushing the wing towards its positive side (the +ve Wy side).<br />

The drag force is defined by the drag coefficient Cd(α) using the formula:<br />

Drag Force = P ½.Cd(α).ρ.A.V 2<br />

The drag coefficient cannot be negative, so the drag force is always in the relative flow direction.<br />

The moment coefficient Cm(α) defines a moment that is applied to the wing. This moment represents the fact that<br />

the position of the centre of pressure may depend on the incidence angle α.<br />

The moment coefficients can be positive or negative and the moment is given by:<br />

Moment = P ½.Cm(α).ρ.A.V 2 .Chord<br />

This moment is applied about the line that is in the wing plane and is at 90° to the relative flow vector. For α = ±90°<br />

this line is ill-defined and the moment coefficient must be zero. Positive moment coefficients mean that the moment<br />

is trying to turn the wing to bring Wy to point along the relative flow direction. Negative moment coefficients mean<br />

the moment tries to turn the wing the opposite way.<br />

Pen<br />

This controls which pen is used to draw a Wing which uses this Wing Type. If it is set to Use Buoy's pen then the 6D<br />

Buoy pen will be used. If it is set to Use this pen then the specified pen is used.<br />

Shaded Drawing<br />

By default, for shaded 3D Views, wings are drawn as plates with the specified span and chord.<br />

Alternatively the object can be represented by an imported 3D model by specifying the Shaded Drawing File. This<br />

must be a Direct X format file, usually with the .x file extension. If you use a relative path then the path will be taken<br />

as relative to the folder containing the <strong>OrcaFlex</strong> file.<br />

The Browse button allows you to specify the Shaded Drawing File quickly and also provides quick access to the<br />

<strong>Orcina</strong> sample drawings via the Navigate to <strong>Orcina</strong> sample drawings button.<br />

The Use Culling option is normally selected since it can provide a useful performance benefit. However, in order to<br />

work it requires that the triangles defined in the .x file have their outward facing directions defined correctly. In the<br />

unusual situation where the outward facing directions are not defined correctly then the .x file will not display<br />

correctly. If this happens then typically sections of the model will be missing when drawn by <strong>OrcaFlex</strong>. Disabling the<br />

Use Culling option resolves this problem.<br />

Draw Size is provided to allow you to scale the drawing. All directions are scaled equally to arrange that the longest<br />

side in the drawing is drawn to the specified Draw Size. This longest side is calculated by first fitting the smallest<br />

possible cuboid around the vertices of the shaded drawing (these are defined in the .x file). This cuboid is aligned<br />

with the shaded drawing's local axes. Then the length of the longest side of this cuboid is found.<br />

Specify a value of '~' to display the drawing using the absolute coordinates as specified in the .x file.<br />

Note: If you use a value of '~' for Draw Size then <strong>OrcaFlex</strong> uses the coordinates in the .x file directly. If<br />

these coordinates use a different length units system from your <strong>OrcaFlex</strong> model then you should<br />

specify the units used in the .x file by including an auxiliary file called AdditionalInformation.txt.<br />

Examples of this can be found in the sample shaded drawings provided by <strong>Orcina</strong>.<br />

Shaded Drawing Origin is provided because the shaded drawing and the wing may have different origins. The<br />

Shaded Drawing Origin defines the origin of the shaded drawing with respect to the wing's local axis system.<br />

Similarly Shaded Drawing Orientation allows you to reorient the shaded drawing to match the wing's axis system.


System Modelling: Data and Results, 6D Buoys<br />

6.9.6 Lumped Buoy Properties<br />

yaw<br />

z (heave)<br />

B<br />

(B=buoy origin)<br />

Figure: Lumped Buoy<br />

y (sway)<br />

pitch<br />

roll<br />

x (surge)<br />

394<br />

Vertices<br />

w<br />

A Lumped Buoy is specified relative to its own local frame of reference Bxyz. The Centre of Mass is specified<br />

relative to Bxyz.<br />

The forces and moments are calculated as follows (ρ is water density, g is acceleration due to gravity). Each degree<br />

of freedom is calculated independently.<br />

Geometry<br />

Volume is the total volume of the buoy, with its centre at the Centre of Volume, defined relative to the local buoy<br />

axes Bxyz.<br />

Height is the buoy vertical dimension, assumed equally spaced about the centre of volume. Height is assumed to be<br />

independent of buoy rotation.<br />

The Height is used for two main purposes:<br />

� To calculate the contact area used to calculate forces of contact with shapes and the seabed.<br />

� To calculate the ProportionWet, which is used to scale the hydrostatic and hydrodynamic forces and to<br />

determine the centre of wetted volume, which is the point at which they are applied.<br />

Damping<br />

Hydrodynamic damping forces and moments may be applied to the buoy. These are loads that are directly<br />

proportional to the relative velocity, or angular velocity, of the sea past the buoy. For each of the local buoy axes<br />

directions, you specify the magnitude of the Unit Force that is applied when the relative velocity is<br />

1 length unit/second. <strong>OrcaFlex</strong> then scales these magnitudes according to the actual relative velocity and applies the<br />

resulting force or moment. Similarly you can specify a Unit Moment that is applied when the relative angular<br />

velocity is 1 radian/second.<br />

Drag<br />

Hydrodynamic drag forces and moments may be applied to the buoy. These are loads that are proportional to the<br />

square of the relative velocity, or angular velocity, of the sea past the buoy.<br />

The drag force properties are specified by giving, for each of the local buoy axes directions, the Drag Area that is<br />

subject to drag loading in that direction and the corresponding Drag Coefficient.<br />

Drag moment properties are specified in a similar way, except that instead of specifying a drag area you must<br />

specify a Moment of Area.


w<br />

395<br />

System Modelling: Data and Results, 6D Buoys<br />

Note: Drag Area Moment is the 3rd absolute moment of drag area about the axis. Separate Cd values are<br />

given for force and moment calculations.<br />

Fluid Inertia<br />

Fluid inertia properties are those that are proportional to the acceleration of the sea and the buoy. These<br />

accelerations have two main effects. Firstly, they result in forces and moments being applied to the buoy – these are<br />

referred to as the fluid acceleration loads. Secondly, the buoy experiences an increase in inertia – this is known as<br />

the added mass.<br />

Full details of the calculation are presented in the Lumped Buoy Added Mass, Damping and Drag topic.<br />

The fluid inertia properties can be specified either by providing the Diagonal values or Full matrices.<br />

Fluid Inertia specified by diagonal values<br />

These properties are specified separately for translational and rotational motions and also separately for each local<br />

axis direction.<br />

The translational fluid inertia properties of the buoy are specified, for each of the local buoy axis directions, by<br />

giving a reference Hydrodynamic Mass together with the two inertia coefficients, Ca and Cm. The translational Cm<br />

values can be set to '~' to mean 1 + Ca.<br />

The translational Hydrodynamic Mass values can be set to '~', meaning equal to the fully submerged displaced<br />

mass.(= volume x water density). This is often a convenient reference mass to use.<br />

Fluid Inertia specified by full matrices<br />

The added mass and fluid inertia properties are specified as full 6x6 symmetric matrices. The added mass matrix is<br />

simply added in to the buoy's virtual mass matrix. The fluid inertia matrix is multiplied by the instantaneous fluid<br />

acceleration vector to produce the fluid acceleration loads.<br />

The units of the added mass and fluid inertia matrices are as follows, where M, L and T indicate the units of mass,<br />

length and time:<br />

� The upper-left 3x3 block of cells has units M.<br />

� The upper-right and lower-left 3x3 blocks have units M.L.<br />

� The lower-right 3x3 block of cells has units M.L 2 .<br />

Slam<br />

The slam force, as the buoy enters or exits the water through the surface, can be modelled by setting the Slam Area<br />

and Slam Coefficients. Separate coefficients are specified for water entry and water exit, and the slam force is<br />

proportional to both the Slam Area and the coefficient. For details see Slam Force Theory. If the Slam Area is zero, or<br />

both Slam Coefficients are zero, then no slam force will be applied, and the slam force results are then not available.<br />

6.9.7 Lumped Buoy Drawing Data<br />

Vertices and Edges<br />

This defines a "wire frame" representation of the buoy. The wire frame representation of the buoy is used to draw<br />

the buoy. It is also used to calculate the interaction of the buoy with shapes and the seabed. See Contact Forces for<br />

details.<br />

The vertices are specified by giving their coordinates with respect to buoy axes Bxyz, and the edges are specified by<br />

giving the vertex numbers of the vertices they connect.<br />

Edge diameter (used only for shaded drawing)<br />

For shaded graphics views, by default, the Lumped Buoy is drawn using a solid, filled-in shape based on the vertices<br />

and edges. As an alternative you can use the vertices and edges to define a frame like structure. If the edge diameter<br />

is '~' then that edge will be used to build a filled in shape, otherwise that edge is drawn as a cylinder with the<br />

specified diameter.


System Modelling: Data and Results, 6D Buoys<br />

396<br />

w<br />

Figure: Wire frames with different edge diameter. A value of '~' is used for the wire frame on the left<br />

and a value of 1m is used for the wire frame on the right.<br />

6.9.8 Spar Buoy and Towed Fish Properties<br />

The figure below shows the geometry of a Spar Buoy. The buoy is specified relative to its own local frame of<br />

reference Bxyz. The Centre of Mass is specified relative to Bxyz.<br />

A Spar Buoy is modelled as a series of co-axial cylinders mounted end to end along the local z-axis. The geometry of<br />

a Towed Fish is identical except that the buoy axis is aligned with the x-axis of the buoy.<br />

The cylinders are numbered from the top downwards. So in the tables on the buoy data form the cylinder at the base<br />

of the stack (lowest x or z) appears at the bottom of the table.<br />

If you are modelling a CALM or SPAR buoy then see also Modelling a Surface-Piercing Buoy.


w<br />

Rotation 3<br />

B<br />

(B=buoy origin)<br />

Buoy Axis<br />

Cylinder 1 OD<br />

Figure: Spar Buoy<br />

Geometry<br />

z<br />

Cylinder 1 Length<br />

y<br />

Rotation 1<br />

Rotation 2<br />

x<br />

Stack Base Position<br />

397<br />

System Modelling: Data and Results, 6D Buoys<br />

The shape of a Spar Buoy or Towed Fish is specified by the following data on the Geometry page on the buoy data<br />

form.<br />

Stack Base Centre Position<br />

The centre of the base of the stack, relative to buoy axes.<br />

Cylinders: Outer Diameter, Inner Diameter and Length<br />

The diameters of the cylinder and its length measured along the axis.<br />

These parameters define the buoy geometry from which buoyancy forces and moments are determined. When the<br />

buoy pierces the water surface, <strong>OrcaFlex</strong> allows for the angle of intersection between the sea surface and the buoy<br />

axis when calculating the immersed volume and centre of immersed volume, and includes the appropriate<br />

contributions to static stability.<br />

If the inner diameter is greater than zero then the cylinder is actually a hollow cylindrical pipe. The internal region<br />

of the cylinder contains sea water if the buoy is submerged. In this case then the contained water contributes to the<br />

buoy's inertia. These inertial effects are only included in directions normal to the buoy.<br />

The remaining parameters determine the hydrodynamic loads acting on each cylinder. Loads are calculated for each<br />

cylinder individually, then summed to obtain the total load on the buoy.


System Modelling: Data and Results, 6D Buoys<br />

Hydrodynamic Loads<br />

See the Added Mass and Damping and Drag pages on the buoy data form.<br />

6.9.9 Spar Buoy and Towed Fish Drag & Slam<br />

Munk Moment Coefficient<br />

398<br />

w<br />

Slender bodies in near-axial flow experience a destabilising moment called the Munk moment. This effect can be<br />

modelled by specifying a non-zero Munk moment coefficient.<br />

Normal drag area calculated from geometry<br />

If this option is checked then the normal drag area, for each cylinder, is calculated directly from the cylinder<br />

geometry by multiplying the outer diameter by the cylinder length.<br />

If this option is not checked then the normal drag area, for each cylinder, must be specified by the user.<br />

Drag Forces and Moments<br />

Drag loads are the hydrodynamic loads that are proportional to the square of fluid velocity relative to the cylinder.<br />

For details of the drag load formulae see Spar Buoy and Towed Fish Theory. For information when modelling a<br />

SPAR or CALM buoy see Modelling a Surface-Piercing Buoy.<br />

The drag forces are calculated on each cylinder using the "cross flow" assumption. That is, the relative velocity of the<br />

sea past the cylinder is split into its normal and axial components and these components are used, together with the<br />

specified drag areas and coefficients, to calculate the normal and axial components of the drag force.<br />

The drag forces are specified by giving separate Drag Area and Drag Coefficient values for flow in the normal<br />

direction (local x and y directions) and in the axial direction (local z direction). The Drag Area is a reference area<br />

that is multiplied by the Drag Coefficient in the drag force formula. You can therefore use any positive Drag Area that<br />

suits your need, but you then need to give a Drag Coefficient that corresponds to that specified reference area.<br />

The Drag moments are specified and calculated in a similar way to the drag forces, except that the reference drag<br />

area is replaced by a reference Area Moment. This and the Drag Coefficient are multiplied together in the drag<br />

moment formula, so again you can use any positive Area Moment that suits your need, providing you then specify a<br />

Drag Coefficient that corresponds to the specified Area Moment.<br />

There are two alternative methods that you can adopt when specifying the drag data. The first method is to set the<br />

<strong>OrcaFlex</strong> data to get best possible match with real measured results for the buoy (e.g. from model tests or full scale<br />

measurements). This is the most accurate method, and we recommend it for CALM and discus buoys – see Modelling<br />

a Surface-Piercing Buoy for details. Because the Drag Area and Drag Coefficient data are simply multiplied together,<br />

you can calibrate the model to the real results by fixing one of these two data items and then adjusting the other. For<br />

example, you could set the axial Drag Coefficient to 1 and adjust the axial Drag Area until the heave response decay<br />

rate in the <strong>OrcaFlex</strong> model best matches the model test results. Or, you could set the axial Drag Area to a fixed value<br />

(e.g. 1 or some appropriate reference area) and then adjust the axial Drag Coefficient until the heave response decay<br />

rate in <strong>OrcaFlex</strong> best matches the model test results.<br />

The second method is to set the drag data using theoretical values or given in the literature. It is less accurate but<br />

can be used if you cannot get any real buoy results against which to calibrate. To use this method, set the data as<br />

follows.<br />

Set the Drag Areas to the projected surface area that is exposed to drag in that direction and then set the Drag Force<br />

Coefficients based on values given in the literature (see Barltrop & Adams, 1991, Hoerner,1965 and DNV-RP-C205).<br />

Note that the drag area specified should be the total projected area exposed to drag when the buoy is fully<br />

submerged, since <strong>OrcaFlex</strong> allows for the proportion wet in the drag force formula. For a simple cylinder of<br />

diameter D and length L the total projected drag area is D.L for the normal direction and (π.D 2 )/4 for the axial<br />

direction, but if the buoy has attachments that will experience drag then their areas must also be included.<br />

Set the Drag Area Moments to the 3rd absolute moments of projected area exposed to drag in the direction<br />

concerned; see Drag Area Moments for details. And then set the Drag Moment Coefficients based on values given in<br />

the literature.<br />

Slam Force Coefficients<br />

The slam force, as the buoy enters or exits the water through the surface, can be modelled by specifying non-zero<br />

Slam Coefficients. Separate coefficients are specified for water entry and water exit. For spar buoys and towed fish<br />

the slam area is not specified by the user – it is set to the instantaneous water plane area. If the Slam Coeffcient is


w<br />

399<br />

System Modelling: Data and Results, 6D Buoys<br />

zero then no slam force is applied. If both Slam Coefficients are zero then the slam force results are not available. For<br />

details of the slam force see Slam Force Theory.<br />

6.9.10 Spar Buoy and Towed Fish Added Mass and Damping<br />

There are two choices that affect how these first order effects are modelled:<br />

� First, on the Added Mass and Damping page of the spar buoy and towed fish data form, you can choose to<br />

specify the added mass and damping either by giving values for each cylinder, or else by giving RAOs and<br />

matrices for the whole buoy. See below for details.<br />

� Second, you can choose whether the velocity that is used in the damping load calculation is the buoy velocity<br />

relative to the earth or relative to the fluid.<br />

Values for Each Cylinder<br />

With this option, the added mass and damping effects are calculated separately for each cylinder using Morison's<br />

Equation.<br />

Added Mass<br />

Translational added mass effects are calculated using the displaced mass as the reference mass for each cylinder.<br />

Separate added mass coefficients (Ca) are given for flow normal (x and y directions) and axial (z direction) to the<br />

cylinder.<br />

Translational inertia coefficients (Cm) are also specified. A value of "~" is equivalent to setting the coefficient to 1+Ca.<br />

Rotational added inertia is specified directly (so no reference inertia is involved). Separate values can be given for<br />

rotation about the cylinder axis and normal to that axis.<br />

See Spar Buoy and Towed Fish Theory.<br />

Damping Forces and Moments<br />

Damping forces and moments are the hydrodynamic loads that are proportional to cylinder velocity (angular<br />

velocity for moments) relative to the earth or relative to the fluid, as specified in the buoy data. They are specified by<br />

giving the Unit Damping Force and Unit Damping Moment for the normal and axial directions. These specify the<br />

force and moment that the cylinder will experience, in that direction, when the cylinder velocity (relative to earth or<br />

fluid, angular velocity for moments) in that direction is 1 unit. See Damping Forces and Moments for details.<br />

These damping terms are primarily intended to represent radiation damping on 6D buoys, in which case damping<br />

relative to earth should normally be specified. In this case they will generally be used only with surface piercing<br />

buoys, where the waves generated by the buoy motion effectively extract energy from the buoy motion.<br />

For a fully-submerged buoy, wave radiation damping will not normally apply (unless it is close to the surface). This<br />

data can then instead be used to model linear skin friction damping, in which case damping relative to fluid should<br />

normally be specified. However such linear damping is usually not significant compared to the quadratic drag, in<br />

which case the damping data can be set to zero.<br />

RAOs and Matrices for Buoy<br />

In this option the linear hydrodynamic effects are specified by giving wave force and moment RAOs, and added mass<br />

and damping matrices. Normally this data would come from a separate program, such as a diffraction program.<br />

Note: This option is only appropriate for circularly-symmetric spar buoys whose axis undergoes only<br />

small oscillations about vertical. It was developed primarily for CALM buoys with diameter in the<br />

range 5m to 15m. It is therefore not available for towed fish.<br />

Warning: The RAOs and added mass and damping matrices specified must apply to the mean position of the<br />

buoy. They are not modified to account for any variations in buoy attitude or immersion, so this<br />

option is only suitable for buoys that undergo small oscillations about their mean position.<br />

RAO, Added Mass and Damping Origin<br />

This specifies the coordinates, with respect to buoy axes, of the point on the buoy at which the RAOs and added<br />

mass and damping matrices are applied. This means that:<br />

� The RAOs are applied to the wave conditions at this point to give the wave loads, which are then applied at this<br />

point.


System Modelling: Data and Results, 6D Buoys<br />

400<br />

w<br />

� The damping matrix is multiplied by the current velocity relative to the buoy at this point to give the damping<br />

load, which is applied at this point.<br />

� The added mass matrix is applied at this point.<br />

Wave Force and Moment RAOs<br />

The RAOs are specified in a table giving the amplitudes and phases of the surge force, heave force and pitch moment<br />

RAOs, as a function of wave angular frequency. RAOs must be specified for both of the limiting cases, i.e. for long and<br />

short waves, and for at least one other frequency.<br />

The RAOs must be specified using the following <strong>Orcina</strong> conventions. The force and moment amplitudes must be the<br />

forces and moments that are applied at the buoy origin when a unit amplitude wave is applied. The phases must be<br />

lags, in degrees, from the time the wave crest passes the buoy origin until the maximum positive force or moment<br />

occurs.<br />

Added Mass and Damping Matrices<br />

In reality the added mass and damping matrices are frequency-dependent, but in <strong>OrcaFlex</strong> you can only enter the<br />

matrices for one frequency. You should give the values for the principal frequency of excitation expected.<br />

The added mass and damping matrices are 6 x 6 symmetric matrices, so only the cells on and above the leading<br />

diagonal are editable. The cells below the leading diagonal are non-editable and always equal the corresponding cell<br />

values above the diagonal.<br />

The units of the added mass and damping matrices are as follows, where M, L and T indicate the units of mass,<br />

length and time:<br />

� Added mass matrix. The upper-left 3x3 block of cells has units M. The upper-right and lower-left 3x3 blocks<br />

have units M.L. The lower-right 3x3 block of cells has units M.L 2 .<br />

� Damping matrix. The upper-left 3x3 block of cells has units F/(L/T). The upper-right 3x3 block has units<br />

F/(rad/T). The lower-left 3x3 block of cells has units (F.L)/(L/T). The lower-right 3x3 block of cells has units<br />

(F.L)/(rad/T).<br />

Because the buoy is assumed to be axi-symmetric these matrices should both have the following axi-symmetric<br />

form:<br />

� a<br />

�<br />

� 0<br />

� 0<br />

�<br />

� 0<br />

�<br />

�<br />

b<br />

�<br />

� 0<br />

0<br />

a<br />

0<br />

� b<br />

0<br />

0<br />

0<br />

0<br />

c<br />

0<br />

0<br />

0<br />

0<br />

� b<br />

0<br />

d<br />

0<br />

0<br />

b<br />

0<br />

0<br />

0<br />

d<br />

0<br />

0 �<br />

�<br />

0 �<br />

0 �<br />

�<br />

0 �<br />

�<br />

0<br />

�<br />

e �<br />

�<br />

<strong>OrcaFlex</strong> warns at simulation time if the matrices are not of this form.<br />

6.9.11 Spar Buoy and Towed Fish Drawing<br />

There are two alternative methods of drawing the Spar Buoy and Towed Fish cylinders:<br />

1. Draw square cylinders. If this option is selected then each cylinder is drawn as a square-based cuboid. <strong>OrcaFlex</strong><br />

automatically generates the vertices and edges. There are eight vertices per cylinder and the square base has a<br />

side length equal to the diameter of the actual circular cylinder.<br />

2. Draw circular cylinders. With this option selected the circular cylinders are drawn as such. You can specify pens<br />

for the outside and inside of the cylinders. In addition you specify how many lines are drawn. Increasing this<br />

number makes the buoy drawing more realistic but increases the time taken to draw the buoy.<br />

Notes: The selected drawing method only affects the way the object is drawn. It does not affect<br />

calculations in any way.<br />

The vertices of the square-based cuboids are used for calculation of any contact with the seabed or<br />

shapes. This applies even if you choose for presentation purposes to draw circular cylinders.


w<br />

6.9.12 Shaded Drawing<br />

401<br />

System Modelling: Data and Results, 6D Buoys<br />

By default, for shaded 3D Views, Spar Buoys and Towed Fish are drawn as solid objects using the specified cylinder<br />

geometry. Lumped Buoys are drawn using the wire frame data.<br />

The wire frame drawing data comprises vertices and edges, but <strong>OrcaFlex</strong> needs a solid surface for the shaded<br />

graphics representation. <strong>OrcaFlex</strong> uses the following procedure to generate this surface from the wire frame<br />

vertices and edges.<br />

First any edges with specified diameters (i.e. diameters not equal to '~') are drawn as cylinders. This allows you to<br />

use such edges to visualise parts of the structure that are not solid, e.g. crane boom latticework. These edges are<br />

now handled and are excluded from the remainder of the procedure.<br />

The remaining edges are used to partition the vertices into sets of connected vertices. Two vertices are deemed to<br />

be connected if there exists a path of edges between the two vertices.<br />

Finally, for each set of connected vertices, the smallest convex hull enclosing the set is drawn.<br />

This algorithm does not always generate the shaded drawings that you might expect. Consider the following two<br />

wire frame vessels. When drawn in wire frame mode they look the same, but in shaded mode they differ.


System Modelling: Data and Results, 6D Buoys<br />

Figure: Wire Frame and Shaded Drawing<br />

402<br />

w<br />

For the green vessel the superstructure and the hull share vertices and so all vertices are connected. This results in a<br />

single convex hull for all vertices being drawn. In the red vessel, the superstructure and hull do not share vertices<br />

and so there are two distinct sets of connected vertices. This results in two separate convex hulls and a better<br />

representation.<br />

Alternatively the object can be represented by an imported 3D model by specifying the Shaded Drawing File. This<br />

must be a Direct X format file, usually with the .x file extension. If you use a relative path then the path will be taken<br />

as relative to the folder containing the <strong>OrcaFlex</strong> file.<br />

The Browse button allows you to specify the Shaded Drawing File quickly and also provides quick access to the<br />

<strong>Orcina</strong> sample drawings via the Navigate to <strong>Orcina</strong> sample drawings button.<br />

The Use Culling option is normally selected since it can provide a useful performance benefit. However, in order to<br />

work it requires that the triangles defined in the .x file have their outward facing directions defined correctly. In the


w<br />

403<br />

System Modelling: Data and Results, 6D Buoys<br />

unusual situation where the outward facing directions are not defined correctly then the .x file will not display<br />

correctly. If this happens then typically sections of the model will be missing when drawn by <strong>OrcaFlex</strong>. Disabling the<br />

Use Culling option resolves this problem.<br />

Draw Size is provided to allow you to scale the drawing. All directions are scaled equally to arrange that the longest<br />

side in the drawing is drawn to the specified Draw Size. This longest side is calculated by first fitting the smallest<br />

possible cuboid around the vertices of the shaded drawing (these are defined in the .x file). This cuboid is aligned<br />

with the shaded drawing's local axes. Then the length of the longest side of this cuboid is found.<br />

Specify a value of '~' to display the drawing using the absolute coordinates as specified in the .x file.<br />

Note: If you use a value of '~' for Draw Size then <strong>OrcaFlex</strong> uses the coordinates in the .x file directly. If<br />

these coordinates use a different length units system from your <strong>OrcaFlex</strong> model then you should<br />

specify the units used in the .x file by including an auxiliary file called AdditionalInformation.txt.<br />

Examples of this can be found in the sample shaded drawings provided by <strong>Orcina</strong>.<br />

Shaded Drawing Origin is provided because the shaded drawing and the buoy may have different origins. The<br />

Shaded Drawing Origin defines the origin of the shaded drawing with respect to the buoy's local axis system.<br />

Similarly Shaded Drawing Orientation allows you to reorient the shaded drawing to match the buoy's axis system.<br />

6.9.13 Other uses<br />

6D Buoys are frequently used for non-standard purposes. For example they can be used to connect Lines together.<br />

Sometimes they are used as frame of reference objects where the properties are provided by various other objects<br />

(usually single segment Lines) connected to the 6D Buoy.<br />

For such uses the 6D Buoy needs negligible structural and hydrodynamic properties. Because this is such a common<br />

thing to do we have provided a facility on the 6D Buoy data form to set up appropriate properties. Clicking on the<br />

Give Buoy negligible properties button has the following effects:<br />

� Buoy Type will be set as Lumped Buoy.<br />

� Mass will be set to a negligible value.<br />

� Height will not be modified since it cannot be set to zero. Because other properties are set to zero its value is not<br />

significant.<br />

� All other Lumped Buoy properties are set to zero.<br />

� Any existing Wing, Applied Load and Drawing data is not modified.<br />

6.9.14 External Functions<br />

Parameters<br />

This data item specifies the External Function Parameters, a free form multi-line text field which is passed to any<br />

external function used by the 6D Buoy object.<br />

6.9.15 Properties Report<br />

The 6D Buoy properties report is available from the popup-menu on the data form. It reports the following:<br />

Weight in air<br />

The force due to gravity acting on the buoy's mass.<br />

Displacement<br />

The weight of water displaced by the buoy's volume. The reported value uses the water density at the sea surface.<br />

Weight in water<br />

Equals Weight in air - Displacement.<br />

Centre of mass<br />

The centre of mass data item.<br />

Volume<br />

The volume of the buoy.


System Modelling: Data and Results, 6D Buoys<br />

Centre of volume<br />

Reported with respect to the buoy frame of reference.<br />

x-mass radius of gyration, y-mass radius of gyration, z-mass radius of gyration<br />

Equals √(Mass Moment of Inertia / Mass).<br />

Total contact area<br />

404<br />

w<br />

Reports the Total contact area data. If a value of '~' is set on the data form then the value reported here is the default<br />

value calculated by <strong>OrcaFlex</strong>.<br />

Number of vertices<br />

The number of vertices in the wire frame drawing. Contact for 6D Buoys is calculated at each of these vertices.<br />

Contact area per vertex<br />

Equals Total contact area / Number of vertices.<br />

Statics force accuracy, Statics moment accuracy<br />

These are only reported if the buoy is included in statics.<br />

The static analysis searches for an equilibrium position for the buoy – that is a position for which the resultant force<br />

and moment on the buoy is zero. We refer to the resultant force and moment as the out of balance load. Because<br />

computers have limited numerical precision the static analysis cannot always find a configuration where the out of<br />

balance load is exactly zero. <strong>OrcaFlex</strong> accepts a position as a static equilibrium position if the largest out of balance<br />

load component is less than the statics accuracy.<br />

The Statics force accuracy equals Tolerance * buoy typical force and the Statics moment accuracy equals Tolerance *<br />

buoy typical moment. The buoy typical force and moment are based on the weight in air, the height of the buoy and<br />

the forces and moments applied by connected objects.<br />

Reducing the Tolerance value will give a more accurate static equilibrium position, but will take more iterations.<br />

<strong>OrcaFlex</strong> may not be able to achieve the Tolerance specified if it is too small, since the computer has limited<br />

numerical precision.<br />

Note: The statics accuracies change during the static analysis because the forces and moments applied<br />

by connected objects vary with the position of the buoy. The statics accuracies reported in Reset<br />

state may be quite different from those used for the final equilibrium position and should be<br />

treated as rough approximations to the true statics accuracies.<br />

6.9.16 Results<br />

For 6D Buoys the available results are as follows. For details on how to select results variables see Selecting<br />

Variables.<br />

Position and Orientation Results<br />

X, Y and Z<br />

The position of a user specified point P on the buoy, relative to global axes. The point P is specified in buoy local<br />

coordinates. If P=(0,0,0) then the global X, Y and Z coordinates of the buoy origin are reported.<br />

Rotation 1, Rotation 2 and Rotation 3<br />

Define the orientation of the buoy relative to global axes. They are 3 successive rotations that take the global axes<br />

directions to the buoy axes directions. See Initial Position and Attitude for the definition of these angles.<br />

Rotation 2 is in the range -90° to +90°. Range jump suppression is applied to Rotation 1 and Rotation 3 (so values<br />

outside the range -360° to +360° might be reported).<br />

Azimuth, Declination<br />

The azimuth and declination of the local z axis.


w<br />

Velocity and Acceleration Results<br />

Velocity, GX-Velocity, GY-Velocity, GZ-Velocity<br />

405<br />

System Modelling: Data and Results, 6D Buoys<br />

The magnitude and components of the velocity of the buoy, relative to global axes. These results are reported at a<br />

user specified point P on the buoy. The point P is specified in buoy local coordinates.<br />

Angular Velocity, x-Angular Velocity, y-Angular Velocity, z-Angular Velocity<br />

The magnitude and components of the angular velocity of the buoy, relative to buoy axes.<br />

Acceleration, GX-Acceleration, GY-Acceleration, GZ-Acceleration<br />

The magnitude and components of the acceleration of the buoy, relative to global axes. These results are reported at<br />

a user specified point P on the buoy. The point P is specified in buoy local coordinates.<br />

Acceleration rel. g, x-Acceleration rel. g, y-Acceleration rel. g, z-Acceleration rel. g<br />

The magnitude and components, in buoy axes directions, of the acceleration vector, a, of the user-specified point P<br />

on the buoy, relative to the vertically downwards acceleration due to gravity, g. That is, these results report the<br />

vector a - g.<br />

This relative acceleration can be thought of as the acceleration of the point P relative to the free-falling state. This is<br />

the acceleration that would be reported by an accelerometer attached at the point P (since an accelerometer reading<br />

of zero corresponds to free-falling), with its measurement directions aligned with the buoy local axes directions.<br />

Angular Acceleration, x-Angular Acceleration, y-Angular Acceleration, z-Angular Acceleration<br />

The magnitude and components of the angular acceleration of the buoy, relative to buoy axes.<br />

Sea Surface Results<br />

Sea Surface Z<br />

The global Z coordinate of the sea surface directly above the instantaneous position of the buoy origin.<br />

Dry Length<br />

The length of buoy above the water surface, measured along the buoy z axis, calculated as follows:<br />

� For a Lumped Buoy, this is calculated by assuming that the z-extent of a Lumped Buoy is ½Height either side of<br />

its centre of volume.<br />

� For a Spar Buoy it is the sum of the dry lengths of each of its cylinders, where the dry length of an individual<br />

cylinder is calculated as:<br />

(cylinder length) × (cylinder volume above surface) / (cylinder total volume).<br />

Force and Moment Results<br />

Connection Force, Connection Moment<br />

Connection x-Force, Connection y-Force, Connection z-Force<br />

Connection x-Moment, Connection y-Moment, Connection z-Moment<br />

These connection load results are only available for buoys that are connected to other objects. They report the total<br />

force and moment applied to the buoy by the object to which it is connected, including structural inertia loads and<br />

added inertia loads.<br />

Connection Force and Connection Moment report the magnitudes of the connection loads. The Lx, Ly and Lz<br />

results report the components of the connection force and moment in the local buoy axes directions. The moments<br />

given are moments about the buoy origin.<br />

Note that these connection force and moment results include the structural and added inertial load on the buoy due<br />

to any acceleration of the object to which it is attached. This means that these results can be used for sea fastening<br />

calculations, by using a 6D buoy to model the object to be fastened and then attaching it to a vessel. The connection<br />

force and moment include the weight of the buoy and the inertial loads due to the vessel acceleration. Note that if<br />

the vessel motion is specified by a time history then the time history interpolation method used is important since it<br />

affects the calculation of vessel acceleration and hence affects the inertial loads.


System Modelling: Data and Results, 6D Buoys<br />

Applied Force, Applied Moment<br />

Applied Lx-Force, Applied Ly-Force, Applied Lz-Force<br />

Applied Lx-Moment, Applied Ly-Moment, Applied Lz-Moment<br />

The sum of all the local and global applied loads, reported in the local buoy axes directions.<br />

Force, Moment<br />

Lx-Force, Ly-Force, Lz-Force, Lx-Moment, Ly-Moment, Lz-Moment,<br />

GX-Force, GY-Force, GZ-Force, GX-Moment, GY-Moment, GZ-Moment<br />

406<br />

w<br />

These results are not available for buoys that are connected to other objects – you can instead use the Connection<br />

Force and Connection Moment results.<br />

These results are the total force and moment applied to the buoy, excluding structural inertia loads and added<br />

inertia loads due to acceleration of the buoy. They include the loads from any objects connected to the buoy, but<br />

again exclude structural inertia and added inertia loads on the connected object. The reported loads therefore<br />

correspond to the left hand side of the equation of motion TotalLoad = VirtualInertia x Acceleration, where<br />

VirtualInertia is the total structural and added inertia of the buoy and any connected objects.<br />

Force and Moment report the magnitudes of the loads. The Lx, Ly and Lz results report the components of the force<br />

and moment in the local buoy axes directions. The GX, GY and GZ results report the components of the force and<br />

moment in the global axes directions. The moments given are about the buoy origin.<br />

Solid Contact Force<br />

Solid Contact Lx-Force, Solid Contact Ly-Force, Solid Contact Lz-Force<br />

The magnitude and components, in local buoy axes directions, of the force due to contact with elastic solids.<br />

Slam Load Results<br />

These results are only available for 6D lumped buoys that have non-zero Slam Area and Slam Coefficient, and for<br />

spar buoys and towed fish that have a non-zero Slam Coefficient.<br />

Slam Force, Slam GX-Force, Slam GY-Force, Slam GZ-Force<br />

Slam Force reports the total instantaneous slamming load experienced as the body enters or exits the water. Slam<br />

Force acts in the direction normal to the water surface. The GX, GY, GZ results give components of the total slam load<br />

in the global axes directions.<br />

Slam GX-Moment, Slam GY-Moment, Slam GZ-Moment<br />

The components in global axes directions of the moment of the slam force about the body reference origin.<br />

Wing Results<br />

If the 6D buoy has wings attached then for each wing the following results are available.<br />

Wing X, Wing Y, Wing Z<br />

The position of the wing origin, relative to global axes.<br />

Wing Azimuth, Declination and Gamma<br />

The orientation angles of the wing, relative to the buoy.<br />

Lift, Drag, Moment<br />

The lift force, drag force and drag moment applied to the wing.<br />

The lift force is applied at 90° to the relative flow direction. Positive values mean a force trying to push the wing<br />

towards its positive side, negative values towards its negative side.<br />

The drag force is applied in the relative flow direction and is always positive.<br />

The drag moment is applied about the line that is in the wing plane and at 90° to the relative flow direction. Positive<br />

values are moments trying to turn the wing to bring the wing y-axis Wy to point along the relative flow direction;<br />

negative values are moments trying to turn the wing the opposite way.<br />

Note: When the wing is less than half submerged, and you have included wind loads on wings, then the<br />

lift force, drag force and moment reported are the air loads. Otherwise they are the water loads.


w<br />

Incidence Angle<br />

407<br />

System Modelling: Data and Results, 6D Buoys<br />

The angle, α, that the relative flow vector makes with the plane of the wing, in the range -90° to +90°. Positive values<br />

mean that the flow is towards the positive side of the wing (i.e. hitting the negative side) and negative values mean<br />

that the flow is towards the negative side of the wing (i.e. hitting the positive side).<br />

The value reported is with respect to the principal fluid affecting the wing.<br />

Beta Angle<br />

The angle of the relative flow direction, measured in the wing plane. More specifically, it is the angle between wing<br />

Wx axis and the projection of the relative flow vector onto the wing plane, measured positive towards Wz. Zero beta<br />

angle means that this projection is in the Wx direction, 90° means it is along Wz and -90° means it is along the<br />

negative Wz direction.<br />

The value reported is with respect to the principal fluid affecting the wing.<br />

Range jump suppression is applied to the Beta Angle (so values outside the range -360° to +360° might be reported).<br />

6.9.17 Buoy Hydrodynamics<br />

3D and Lumped 6D buoys are generalised objects for which no geometry is defined in the data other than a height:<br />

This is used for proportioning hydrodynamic properties when the object is partially immersed, and for drawing a<br />

3D buoy.<br />

Since the geometry of the object is undefined, it is necessary to define properties such as inertias, drag areas, added<br />

masses, etc. explicitly as data items. This can be a difficult task, especially where a 6D buoy is used to represent a<br />

complex shape such as a midwater arch of the sort used to support a flexible riser system.<br />

We cannot give a simple step-by-step procedure for this task since the geometry of different objects can be widely<br />

different. As an example, the hydrodynamic properties in 6 degrees of freedom are derived for a rectangular box.<br />

This gives a general indication of the way in which the problem should be approached. If a 3D buoy is used, the<br />

rotational properties are not used.<br />

6.9.18 Hydrodynamic Properties of a Rectangular Box<br />

O is the centre of the box<br />

z<br />

Y<br />

Figure: Box Geometry<br />

Drag areas<br />

y<br />

In X direction: Ax = y . z<br />

In Y direction: Ay = x . z<br />

In Z direction: Az = x . y<br />

Z<br />

O<br />

x<br />

X


System Modelling: Data and Results, 6D Buoys<br />

Drag Coefficients for Translational Motions<br />

408<br />

w<br />

These are obtained from ESDU 71016, Figure 1 which gives data for drag of isolated rectangular blocks with one<br />

face normal to the flow. The dimensions of the block are<br />

a in the flow direction<br />

b and c normal to the flow direction (c>b).<br />

The figure plots drag coefficient, Cx against (a/b) for (c/b) from 1 to infinity (2D flow). Cx is in the range 0.9 to 2.75<br />

for blocks with square corners.<br />

Note: ESDU 71016 uses Cd for the force in the flow direction; Cx for the force normal to the face. For<br />

present purposes the two are identical.<br />

Drag Properties for Rotational Motions<br />

There is no standard data source. As an approximation, we assume that the drag force contribution from an<br />

elementary area dA is given by<br />

dF = ½.ρ.V 2 .Cd.dA<br />

where Cd is assumed to be the same for all points on the surface.<br />

Note: This is not strictly correct. ESDU 71016 gives pressure distributions for sample blocks in uniform<br />

flow which show that the pressure is greatest at the centre and least at the edges. However we do<br />

not allow for this here.<br />

Figure: Integration for rotational drag properties<br />

O<br />

Z<br />

Consider the box rotating about OX. The areas Ay and Az will attract drag forces which will result in moments about<br />

OX. For the area Ay, consider an elementary strip as shown:<br />

For an angular velocity ω about OX, the drag force on the strip is<br />

dF = ½.ρ.(ωz).|ωz|.Cd.x.dz<br />

and the moment of this force about OX is<br />

dM = ½.ρ.(ωz).|ωz|.Cd.x.dz.z = (½.ρ.ω.|ω|.Cd).x.z 3 .dz<br />

Total moment is obtained by integration. Because of the V.|V| form of the drag force, simple integration from -Z/2 to<br />

+Z/2 gives M = 0. We therefore integrate from 0 to Z/2 and multiply the answer by 2. The result is<br />

M = (½.ρ.ω.|ω|.Cd).(x.z 4 /32)<br />

<strong>OrcaFlex</strong> calculates the drag moment by<br />

so we set<br />

M = (½.ρ. ω.|ω| .Cdm).(AM)<br />

z<br />

dz<br />

X


w<br />

Cdm = Cd, AM = x.z 4 /32.<br />

409<br />

System Modelling: Data and Results, 6D Buoys<br />

This is the drag moment contribution about OX from the Ay area. There is a similar contribution from the Az area.<br />

Since Cd is generally different for the 2 areas, it is convenient to calculate the sum of (Cd.AM) for both, set AM equal<br />

to this value and set Cd equal to 1.<br />

Added Mass<br />

<strong>OrcaFlex</strong> requires the added mass and inertia contributions to the mass matrix, plus the hydrodynamic masses and<br />

inertias to be used for computation of wave forces. For each degree of freedom (3 translations, 3 rotations), 3 data<br />

items are required. These are Hydrodynamic Mass in tonnes (or Inertia in tonne.m 2 ); and coefficients Ca and Cm.<br />

Added mass is then defined as Hydrodynamic Mass . Ca; and wave force is defined as (Hydrodynamic mass . Cm)<br />

multiplied by the water particle acceleration, aw.<br />

On the usual assumptions intrinsic in the use of Morison's Equation (that the body is small by comparison with the<br />

wavelength), the wave force is given by (Δ + AM) . aw, where Δ is body displacement and AM is added mass. <strong>OrcaFlex</strong><br />

calculates the wave force as Cm . HM . aw where HM is the Hydrodynamic Mass given in the data.<br />

For translational motions, set HM = Δ for all degrees of freedom. Then Ca = AM/Δ, Cm = 1 + Ca. For rotational<br />

motions, set HI = ΔI, the moment of inertia of the displaced mass. Then Ca = AI/ΔI, Cm = 1 + Ca where AI is the added<br />

inertia (i.e. the rotational analogue of added mass).<br />

Translational Motion<br />

DNV-RP-C205, Table 6.2, gives added mass data for a square section prism accelerating along its axis. The square<br />

section is of side a, prism length is b, and data are given for b/a = 1.0 and over. The reference volume is the volume<br />

of the body which is the same definition we have adopted. We can therefore use the calculated Ca without further<br />

adjustment.<br />

Consider the X direction: Area normal to flow = Ax.<br />

For a square of the same area, a = √(Ax).<br />

Length in flow direction = x.<br />

Hence b/a = x/√(Ax).<br />

Hence Ca can be obtained from DNV-RP-C205 by interpolation, and then Cm = 1 + Ca.<br />

If b/a < 1.0 this approach fails and we use the data given in DNV-RP-C205 for rectangular flat plates. If y > z, aspect<br />

ratio of the plate = y/z. Hence CA from DNV-RP-C205 by interpolation. The reference volume in this case is that of a<br />

cylinder of diameter z, length y. Hence:<br />

Added mass = CA.ρ.(π/4).y.z 2 = AMx, say<br />

and then Ca = AMx/Δ and Cm = 1 + Ca.<br />

Note: If y < z, then aspect ratio = z/y and reference volume = CA . ρ. (π/4) . z . y 2 .<br />

Rotational Motion<br />

DNV-RP-C205 gives no data for hydrodynamic inertia of rotating bodies. The only data for 3D solids we know of is<br />

for spheroids (Newman 1977). Fig 4.8 of Newman 1977 gives the added inertia for coefficient for spheroids of<br />

varying aspect ratio referred to the moment of inertia of the displaced mass. We assume that the same coefficient<br />

applies to the moment of inertia of the displaced mass of the rectangular block.<br />

Rotation about X<br />

Added inertia:<br />

ΔI = Δ(Y 2 + Z 2 )/12<br />

Using data for spheroids from Newman 1977 :<br />

Length in flow direction = 2a = x, so a = x/2.<br />

Equivalent radius normal to flow, b, is given by πb 2 = yz, so b = √(y . z/π).<br />

Hence Ca from Newman 1977.


System Modelling: Data and Results, 6D Buoys<br />

For b/a < 1.6<br />

410<br />

w<br />

Ca can be read from the upper figure where the value is referred to the moment of inertia of the displaced mass. In<br />

this case no further adjustment is required.<br />

For b/a > 1.6<br />

The coefficient CA is read from the lower graph in which the reference volume is the sphere of radius b. In this case:<br />

Ca = CA . (2 . b 3 )/(a . (a 2 +b 2 ))<br />

In either case, Cm = 1 + Ca.<br />

6.9.19 Modelling a Surface-Piercing Buoy<br />

Surface-piercing buoys, such as CALM buoys, SPAR buoys or meteorological discus buoys, can be modelled in<br />

<strong>OrcaFlex</strong> using the Spar Buoy version of a 6D Buoy. Despite its name, the <strong>OrcaFlex</strong> Spar Buoy can be used to model<br />

any axi-symmetric body.<br />

Spar Buoys have many data items available. This enables you to model a wide range of effects, but it also makes<br />

setting up a Spar Buoy model more complicated. To help in this task we describe, in this section, the approach we<br />

adopt for setting up an <strong>OrcaFlex</strong> model of a surface-piercing buoy.<br />

1. Create a simple model containing just a Spar Buoy<br />

Start by modelling the free-floating behaviour of the buoy, without any lines attached. This allows us to get the basic<br />

behaviour of the buoy correct, before complications such as moorings etc. are introduced. We therefore set up an<br />

<strong>OrcaFlex</strong> model containing just a Spar Buoy and with no waves or current.<br />

Set the buoy's Applied Load to zero. This data allows you to apply extra forces and moments to the buoy, in addition<br />

to those from any lines that you attach to it. You can use this later to model the wind force on the upper part of the<br />

buoy. To do this you will need to know the projected area (i.e. the area exposed to wind) of the pipe work etc. in the<br />

upper part of the buoy.<br />

Set the buoy's Munk Moment Coefficient to zero. This data item is only used for slender bodies in near axial fullysubmerged<br />

flow only.<br />

Set the number of wings to zero. Wings are normally only relevant for towed fish.<br />

Finally, we start by setting all the buoy's drag and added mass data to zero. We will set up the actual values later.<br />

2. Set up the geometry data<br />

The Spar Buoy has its own local buoy axes coordinate system. You can choose the origin for these buoy axes, but the<br />

buoy z-axis direction must be chosen to be parallel to the axis of the buoy, and the buoy x- and y-axes should be<br />

parallel to the other two principal directions of structural inertia. You also need to specify the position of the centre<br />

of gravity, relative to the local coordinate system. The buoy manufacturer should supply this information.<br />

Set the Stack Base Position. This is the position of the centre of the bottom of the buoy, relative to the buoy axes. The<br />

Stack Base Position therefore has z-coordinate = -h, where h is the distance axially from the bottom of the buoy to<br />

the buoy origin.<br />

Now set up a number of cylinders, and their lengths and diameters, in order to model the shape of the buoy. To do<br />

this you need the dimensions of the various parts of the buoy. The buoy manufacturer should supply this<br />

information. Set the cylinder lengths and diameters so that you get the correct length and volume for each section.<br />

You can represent tapered sections by a series of short cylinders with diameters changing progressively from one to<br />

the next.<br />

We recommend using a number of short cylinders, even where the buoy diameter is constant over a long length.<br />

Using more cylinders gives more accurate results, though at the cost of reduced computation speed.<br />

You can check your geometry data by zooming in on the buoy in a 3D View window. Turn on the local axes so that<br />

you can check that the buoy origin is in the correct place.<br />

The Bulk Modulus data item is not relevant to a surface-piercing buoy, so it can be left at the default value of Infinity.<br />

3. Set up the mass and inertia data<br />

Now set the Mass and Moments of Inertia of the buoy. The buoy manufacturer should supply this information.<br />

The mass equals the weight of the buoy in air. The moments of inertia are those of the buoy (in air) about its centre<br />

of gravity, as follows:


w<br />

� Iz = the moment of inertia about the buoy axis.<br />

411<br />

System Modelling: Data and Results, 6D Buoys<br />

� Ix and Iy = the moments of inertia about axes perpendicular to the buoy axis, through the centre of gravity.<br />

Usually it is sufficient to assume that Ix = Iy.<br />

If you cannot obtain data for the moments of inertia, then they can be approximately calculated from a knowledge of<br />

the masses of the various parts of the buoy, and approximately how that mass is distributed.<br />

4. Check that the buoy floats at the correct draught<br />

Set the Initial Position and Initial Attitude of the buoy so that the buoy is in its expected equilibrium position. The<br />

initial position is the position of the buoy local origin, and therefore of the CG, and you can calculate this point's<br />

expected equilibrium position from the buoy draught, which should be available from the buoy manufacturer.<br />

The Initial Attitude defines the initial orientation of the buoy. Set it to (0,0,0), which orients the buoy with its axis<br />

vertical and the buoy local x,y axes aligned with the global X,Y axes.<br />

Set the Degrees of freedom included in statics to None and then run the simulation and look at the time history of<br />

buoy Z. If the data has been set up correctly then the buoy should have stayed basically in its initial position and<br />

attitude, with perhaps just small oscillations about that position.<br />

If the buoy Z has oscillated significantly then the model's equilibrium position does not match the expected<br />

equilibrium position. This means that something is wrong in the data and this needs tracing and correcting before<br />

you proceed. You can estimate the model's equilibrium position by looking at the mean Z position in the time<br />

history.<br />

5. Check that the buoy is stable<br />

Now check that the buoy is stable - i.e. that if it is pitched over to one side and released then it rights itself. In the<br />

Initial Attitude data, set the Rotation 2 value to say 10° and run the simulation. If the buoy falls over then there is<br />

something wrong with the CG position or the volume distribution, and this must be corrected.<br />

Note: The buoy on its own may not be intended to be stable, e.g. stability may only be achieved when the<br />

moorings are attached. In this case you will need to model the moorings in order to check stability.<br />

6. Set the Added Mass data<br />

The x and y added mass coefficients can be set to 1.0, which is the standard value for a cylinder in flow normal to its<br />

axis.<br />

Added mass in the z direction should be estimated for the buoy from the published literature (DNV rules, Barltrop &<br />

Adams, 1991) and distributed between the immersed cylinders (remember that hydrodynamic loads are only<br />

applied to the immersed parts of the model).<br />

Ideally, this data should then be checked by comparing the heave and pitch natural periods of the model against<br />

values obtained from model tests or full scale measurements, and adjustments made as necessary.<br />

7. Set the drag and damping data<br />

The best approach depends on whether the buoy is a SPAR whose length is great by comparison with its diameter,<br />

or a surface-following Discus shape such as an oceanographic buoy. CALM buoys are usually closer to the Discus<br />

configuration, often with a damping skirt which is submerged at normal draft.<br />

Spar Buoys<br />

Set the Drag Areas for each cylinder to the areas, of the part of the buoy which that cylinder represents, that are<br />

exposed to fluid drag in the direction concerned. Note that you should specify the areas that are exposed to drag<br />

when the buoy is fully submerged. <strong>OrcaFlex</strong> automatically calculates the proportion of the cylinder that is<br />

submerged and scales all the fluid loads on the cylinder using that 'proportion wet' as a factor. So if a cylinder is not<br />

submerged, or is partially submerged, then the drag loads will be scaled accordingly for you.<br />

For a simple cylinder, of diameter D and length L, the normal drag area is D.L since that is the area of a cylinder<br />

when viewed normal to its axis. And the axial drag area is (π.D 2 )/4 since that is the area of the cylinder when viewed<br />

along its axis. However, where a cylinder is representing part of the buoy that is not in reality a simple cylinder (for<br />

example, we may represent the pipework and turntable on the deck of a SPAR buoy as an equivalent cylinder) or<br />

where the cylinder is shielded from drag by adjacent structure, then the drag areas should be set accordingly. For<br />

example, if the cylinder is shielded below by another cylinder of diameter d (less than D) then the axial drag area<br />

should be reduced by (π.d 2 )/4 to model that shielding.


System Modelling: Data and Results, 3D Buoys<br />

412<br />

w<br />

Set the Drag Force Coefficient based on values given in the literature. For short simple cylinders fully immersed<br />

there are standard values given in the literature (see Barltrop & Adams, 1991, Hoerner,1965 and DNV-RP-C205).<br />

However, the standard book values do not include energy absorption by wave-making at the free surface. Strictly,<br />

this is a linear term (forces directly proportional to velocity), but in <strong>OrcaFlex</strong> this must be done by adjusting the<br />

drag coefficients of one or more cylinders.<br />

The Unit Damping Force data can be set to zero. If you later find that the buoy shows persistent small amplitude<br />

oscillations then you may wish to set a non-zero value to damp this out.<br />

Set the Drag Area Moments, Drag Moment Coefficients and Unit Damping Moment data. For the normal direction<br />

these data items can usually all be left as zero, providing you have subdivided the buoy into short enough cylinders<br />

(since these terms involve a high power of L, the cylinder length). For the axial direction these data items model the<br />

yaw drag and damping effects, so if this is important to you then set them to model the two main sources, namely<br />

skin friction on the cylinder surface and form drag on any protuberances on the buoy.<br />

Having set up this drag and damping data, it is well worth now running simulations of heave and pitch oscillations<br />

and checking that their rate of decay is reasonable and consistent with any real data you have available.<br />

Discus and CALM Buoys<br />

These types of buoy require different treatment since they have little axial extension. Instead it is their radial<br />

extension that most affects the buoy's pitch properties. As a result the axial discretisation of the buoy into cylinders<br />

does not capture the important effects. For example the pitch damping is often mostly due to radiation damping, i.e.<br />

surface wave generation; this is especially important for a CALM buoy with a skirt.<br />

To deal with this <strong>OrcaFlex</strong> offers the rotational drag and damping data, but there is little information in the<br />

literature to help in setting up this data. We therefore strongly recommend that you set the data up by calibration<br />

against real test results from model or full scale tests. The easiest information to work with are time history graphs<br />

of the buoy heave and pitch in still water, starting from a displaced position. This will give the heave and pitch<br />

natural periods and the rates of decay and you can adjust the buoy's drag and damping data until you get a good<br />

match with this measured behaviour.<br />

Here is the approach we use:<br />

� For the normal direction, set the Drag Area, Drag Force Coefficient and Unit Damping Force as described for<br />

Spar buoys above.<br />

� Then set the axial Unit Damping Force to zero and run a simulation that matches the conditions that existed in<br />

the real heave time history results, i.e. with the same initial Z displacement.<br />

� Then adjust the axial Drag Area and Drag Force Coefficients until the <strong>OrcaFlex</strong> buoy's Z time history matches the<br />

real time history. These two data items are simply multiplied together when they are used to calculate the drag<br />

force, so you can give one of the two data items a fixed positive value (e.g. 1) and then adjust the other.<br />

� The match will probably be poor in the later parts of the time history, where the heave amplitude has decayed<br />

to small values. This is because the square law drag term is insignificant at small amplitude and instead the<br />

damping force takes over. Therefore we now adjust the axial Unit Damping Force to further improve the match<br />

where the amplitude is small. You may find that this disturbs the match in the large amplitude part, in which<br />

case you might need to readjust the drag data.<br />

� For the axial direction, set the Drag Area Moment, Drag Moment Coefficient and Unit Damping Moment as<br />

described for Spar buoys above.<br />

� Then set the normal Drag Area Moment, Drag Moment Coefficient and Unit Damping Moment to best match the<br />

real pitch time history, in a similar way to that used above to match the heave time history.<br />

6.10 3D BUOYS<br />

<strong>OrcaFlex</strong> 3D Buoys are simplified point elements with only 3 degrees of freedom: X, Y and Z. They do not rotate, but<br />

remain aligned with the global axes. They therefore do not have rotational properties and moments on the buoy are<br />

ignored. They should therefore be used only where these limitations are unimportant.<br />

3D Buoys are able to float part-submerged at the surface, and may also be used independently, with no lines<br />

attached. Although they are much less sophisticated than 6D Buoys, 3D Buoys are easier to use and are convenient<br />

for modelling buoys at line junctions etc.


w<br />

height/2<br />

height/2<br />

Figure: 3D Buoy<br />

6.10.1 Data<br />

Name<br />

Used to refer to the 3D Buoy.<br />

Included in Static Analysis<br />

z<br />

B<br />

y<br />

x<br />

413<br />

Buoy Axes<br />

always aligned<br />

with Global Axes<br />

System Modelling: Data and Results, 3D Buoys<br />

Determines whether the equilibrium position of the buoy is calculated by the static analysis. See Buoy Degrees of<br />

Freedom Included in Static Analysis.<br />

Initial Position<br />

Specifies the initial position for the buoy origin as coordinates relative to the global axes. If the buoy is not included<br />

in the static analysis then this initial position is taken to be the static position of the buoy. If the buoy is included in<br />

the static analysis, then this initial position is used as an initial estimate of the buoy position and the statics<br />

calculation will move the buoy from this position iteratively until an equilibrium position is found. See Buoy Degrees<br />

of Freedom Included in Static Analysis.<br />

Mass<br />

Mass or weight in air.<br />

Volume<br />

Used to calculate buoyancy and added mass.<br />

Bulk Modulus<br />

Specifies the compressibility of the buoy. If the buoy is not significantly compressible, then the Bulk Modulus can be<br />

set to Infinity, which means "incompressible". See Buoyancy Variation.<br />

Height<br />

Used to model floating buoys correctly, where the buoyancy, drag etc. vary according to the depth of immersion. It<br />

also determines the height used to draw the buoy. The Height is the vertical distance over which the fluid-related<br />

forces change from zero to full force as the buoy pierces the surface. It is taken to be symmetrical about the buoy's<br />

origin.


System Modelling: Data and Results, 3D Buoys<br />

Seabed Friction Coefficient<br />

414<br />

w<br />

<strong>OrcaFlex</strong> applies Coulomb friction between the buoy and the seabed. The friction force applied never exceeds μR<br />

where R is the seabed reaction force and μ is the friction coefficient.<br />

See Friction Theory for further details of the friction model used.<br />

Contact Area<br />

Note: The friction coefficient for contact with elastic solids is specified on the Solid Friction Coefficients<br />

data form.<br />

Used to determine contact forces when the buoy comes in to contact with the seabed and with elastic solids. If a<br />

value of '~' is specified then <strong>OrcaFlex</strong> uses Volume / Height.<br />

Specifying a value of zero allows you to disable contact for the buoy.<br />

Drag<br />

Drag forces are applied in each of the global axes directions GX, GY and GZ. For each direction you must specify a<br />

Drag Coefficient and Drag Area.<br />

Added Mass<br />

You must specify the added mass coefficient Ca for each global axis direction. The added mass is set to be Ca<br />

multiplied by the mass of water currently displaced. The inertia coefficient, Cm, is set automatically to equal 1+Ca.<br />

6.10.2 Properties Report<br />

The 3D Buoy properties report is available from the popup-menu on the data form. It reports the following:<br />

Weight in air<br />

The force due to gravity acting on the buoy's mass.<br />

Displacement<br />

The weight of water displaced by the buoy's volume. The reported value uses the water density at the sea surface.<br />

Weight in water<br />

Equals Weight in air - Displacement.<br />

Statics force accuracy, Statics moment accuracy<br />

These are only reported if the buoy is included in statics.<br />

The static analysis searches for an equilibrium position for the buoy – that is a position for which the resultant force<br />

on the buoy is zero. We refer to the resultant force as the out of balance load. Because computers have limited<br />

numerical precision the static analysis cannot always find a configuration where the out of balance load is exactly<br />

zero. <strong>OrcaFlex</strong> accepts a position as a static equilibrium position if the largest out of balance load component is less<br />

than the statics accuracy.<br />

The Statics force accuracy equals Tolerance * buoy typical force. The buoy typical force is based on the weight in air,<br />

the displacement and the forces applied by connected objects.<br />

Reducing the Tolerance value will give a more accurate static equilibrium position, but will take more iterations.<br />

<strong>OrcaFlex</strong> may not be able to achieve the Tolerance specified if it is too small, since the computer has limited<br />

numerical precision.<br />

Note: The statics accuracies change during the static analysis because the forces applied by connected<br />

objects vary with the position of the buoy. The statics accuracies reported in Reset state may be<br />

quite different from those used for the final equilibrium position and should be treated as rough<br />

approximations to the true statics accuracies.<br />

6.10.3 Results<br />

For details on how to select results variables see Selecting Variables.<br />

For 3D Buoys the available variables are:


w<br />

X,Y and Z<br />

Positions of the buoy origin, relative to global axes.<br />

Velocity, X Velocity, Y Velocity, Z Velocity<br />

Acceleration, X Acceleration, Y Acceleration, Z Acceleration<br />

415<br />

System Modelling: Data and Results, Winches<br />

The magnitude and components (with respect to global axes) of the velocity and acceleration of the buoy.<br />

Surface Z<br />

The global Z coordinate of the sea surface directly above the instantaneous position of the buoy origin.<br />

Dry Length<br />

Length of buoy above the water surface, measured along the buoy z axis. For this purpose, the z-extent of a 3D buoy<br />

is assumed to be Height/2 either side of its volume centre.<br />

6.11 WINCHES<br />

Winches provide a way of modelling constant tension or constant speed winches. They connect two (or more)<br />

points in the model by a winch wire, fed from a winch inertia (typically representing a winch drum) that is then<br />

driven by a winch drive (typically representing the winch hydraulics that drive the drum).<br />

As well as connecting its two end points, the winch wire may, optionally, pass via intermediate points, in which case<br />

it does so as if passing over a small frictionless pulley at that point. The wire tension either side of the intermediate<br />

point is then applied to that point; if the point is offset on the object involved then this also gives rise to an applied<br />

moment.<br />

Drive<br />

Force<br />

f t t<br />

Winch Drive Winch Inertia<br />

Figure: Winch Model<br />

Two types of winch are available in <strong>OrcaFlex</strong>:<br />

Simple Winches<br />

Winch may pull via<br />

intermediate objects<br />

Winch wire<br />

t<br />

Wire<br />

Tension<br />

t<br />

Simple Winches model perfect constant tension or constant speed performance and are easiest to use. It is assumed<br />

that the winch inertia is negligible and the winch drive is perfect, so that it always exactly achieves the requested<br />

constant tension or constant speed. Because of these assumptions, no data needs to be given for the winch inertia or<br />

winch drive.<br />

Detailed Winches<br />

Detailed Winches include modelling of the performance of the winch drive system – its deadband, stiffness, inertia,<br />

damping and drag – but therefore require more data and are harder to set up.<br />

We recommend using Simple winches unless you know the characteristics of the winch drive system and believe<br />

that its performance significantly differs from the constant tension or speed ideal. In particular, Simple winches are<br />

appropriate:<br />

� At the early design stage, when the type of winch to be used has not yet been decided.


System Modelling: Data and Results, Winches<br />

416<br />

w<br />

� If the duty is such that the winch drive will give near to perfect constant tension or constant speed performance.<br />

� If the winch drive data are not available.<br />

Winch Control<br />

<strong>OrcaFlex</strong> winches allow quite complex offshore operations to be modelled. The winch drive can be operated in<br />

either of two modes:<br />

Length Control Mode<br />

For modelling constant speed winches. The winch wire is paid out or hauled in at a velocity specified in the data.<br />

Force Control Mode<br />

For modelling tension controlled winches. Since such winches are usually hydraulic devices whose performance<br />

deviates quite seriously from the target tension ideal, <strong>OrcaFlex</strong> Winches provides facilities for modelling winch<br />

deadband, damping and drag forces (force decrements proportional to velocity and velocity 2 respectively) and<br />

winch stiffness effects such as those caused by hydraulic accumulators.<br />

The winch can be switched between these two modes at predetermined times during the simulation and the<br />

constant velocity or target tension can also be varied.<br />

6.11.1 Data<br />

Name<br />

Used to refer to the Winch.<br />

Type<br />

May be either Simple or Detailed. See Winches.<br />

Connect to Object and Object Relative Position<br />

The (mass-less) winch wire connects at least two objects, one at each end of the winch wire.<br />

If more than 2 are specified then the winch wire passes from the first connection point to the last via the<br />

intermediate points specified. When intermediate connections are specified, the winch wire slides freely through<br />

these intermediate points as if passing via small friction-less pulleys mounted there. The winch wire tension on<br />

either side then pulls on the intermediate points, so applying forces and moments (if the points are offset) to the<br />

objects concerned.<br />

Each connection is defined by specifying the object connected and the object-relative position of the connection<br />

point.<br />

For connecting to a Line, the object-relative z coordinate specifies the arc length to the connection point. The z<br />

coordinate specifies the arc length along the Line and this arc length may be measured relative to either End A or<br />

End B as specified by the user. The connection point is attached to the nearest node. If torsion is not modelled then<br />

the x,y coordinates are ignored and the connection point is at the centreline of the Line. If torsion is modelled then<br />

the x,y coordinates allow you to offset the connection from the centreline.<br />

For Fixed connections the object-relative coordinates given are the global coordinates of the point.<br />

For connecting to an Anchor, the object-relative x,y coordinates given are the global X,Y coordinates of the anchor<br />

point, and the z-coordinate is the distance of the anchor above (positive) or below (negative) the seabed at that X,Y<br />

position.<br />

For connecting to other objects, the coordinates of the connection point are given relative to the object local frame<br />

of reference.<br />

Release at Start of Stage<br />

The winch wire can be released at the start of a given stage of the simulation, by setting this number to the stage<br />

number required. Once released the winch no longer applies any forces to the objects it connects. If no release is<br />

required, then set this item to '~'.<br />

6.11.2 Wire Properties<br />

Wire Stiffness<br />

The elastic stiffness, K, of the winch wire. The winch tension contribution from wire stiffness is given by


w<br />

K . ε<br />

where ε = wire strain.<br />

Wire Damping<br />

417<br />

System Modelling: Data and Results, Winches<br />

A dimensional stiffness-proportional material damping factor, C, for the winch wire. The winch tension contribution<br />

from wire material damping is given by<br />

C . K . dε/dt<br />

where dε/dt = wire strain rate.<br />

Note: The mass of the winch wire is not modelled.<br />

Winch Inertia (Detailed Winches only)<br />

The inertia of the winch drive, which resists changes in the rate of pay out of haul in of the winch wire if the winch is<br />

in Force Control mode. The Winch Inertia has no effect if the winch is in Length Control mode.<br />

This is a linear, rather than rotational, inertia. To represent the rotational inertia of a winch drum, set the winch<br />

inertia to<br />

where<br />

l / r 2<br />

I = drum rotational inertia,<br />

r = radius at which the wire is fed.<br />

See Winch Theory.<br />

Notes: The winch inertia does not contribute to the mass of any objects to which the winch is attached<br />

and so does not directly resist acceleration of any of the connection points. (Such accelerations are<br />

resisted indirectly, of course, through the changes they cause to the winch wire path length and<br />

hence to the winch wire tension.) To include the true translational inertia of the winch drive, drum<br />

and wire it is necessary to suitably increase the masses of the objects to which it is attached.<br />

6.11.3 Control<br />

Control Type<br />

Setting the winch inertia to a small value to model a low inertia winch can lead to very short<br />

natural periods for the winch system. These then require very short time steps for the simulation,<br />

slowing the simulation. To avoid this, the winch inertia can be set to zero, rather than to a small<br />

value; the winch system inertia is then not modelled at all, but the short natural periods are then<br />

avoided. See Winch Theory for full details of the algorithm used when the winch inertia is zero.<br />

Can be either By Stage or Whole Simulation.<br />

When By Stage is selected the winch is controlled on a stage by stage basis. For each stage of the simulation you<br />

choose from the winch control modes. These modes allow you to control the winch payout rate, control the rate of<br />

change of target tension or specify a constant target tension.<br />

Note: The control mode remains fixed for the duration of each stage. Because there is a limit on the<br />

number of stages in an <strong>OrcaFlex</strong> simulation this can be restrictive.<br />

When Whole Simulation is selected the winch is either tension controlled or length controlled for the whole<br />

simulation. For the tension controlled mode the target tension can be fixed, vary with simulation time or be given by<br />

an external function. Likewise for the length controlled mode the payout rate of unstretched winch wire can be<br />

fixed, vary with simulation time or be given by an external function.<br />

6.11.4 Control by Stage<br />

Winch Control for Statics<br />

For the static analysis, the winch control Mode can be set to one of the following values.


System Modelling: Data and Results, Winches<br />

Specified Length<br />

418<br />

w<br />

The winch drive is locked with the unstretched length of winch wire out, L0, being set to the Value specified. The<br />

winch wire tension t then depends on the stretched length L of the winch wire path.<br />

Specified Tension<br />

The winch drive operates in perfect constant tension mode, the tension t being the Value specified. The unstretched<br />

length out L0 is then set to correspond to this tension.<br />

Winch Control for Dynamics<br />

During the simulation the winch is controlled on a stage by stage basis. For each stage the winch control Mode can<br />

be set to one of the following values.<br />

Specified Payout<br />

The Value specifies the unstretched length of winch wire to be paid out (positive) or hauled in (negative) at a<br />

constant rate during this stage. That is, the Value specifies the total change in unstretched length during the stage,<br />

so to keep a constant length set the Value to zero.<br />

Specified Payout Rate<br />

The Value specifies the rate at which the winch wire is to be paid out (positive) or hauled in (negative) during this<br />

stage.<br />

Specified Payout Rate Change<br />

The Value specifies the change in the payout rate during this stage. This typically results in smoother responses<br />

than Specified Payout or Specified Payout Rate.<br />

Length at Stage End<br />

The Value specifies the length of the winch at the end of this stage. This typically results in smoother responses than<br />

Specified Payout or Specified Payout Rate.<br />

Specified Tension<br />

The Value specifies the target constant tension for this stage.<br />

For Simple winches the winch drive is assumed to always achieve this nominal tension, so the Value is used as the<br />

actual winch wire tension.<br />

For Detailed winches this nominal tension is used as the target tension for the winch drive, which then applies<br />

drive force to the winch inertia to try to achieve this target tension. The algorithm for the winch drive force is<br />

designed to model the characteristics of real-world winches that are nominally "constant tension". See Winch<br />

Theory.<br />

Note: Changes of nominal tension are applied instantly at the start of each stage, and this can therefore<br />

apply a shock load which, if large enough, may affect the stability of the simulation.<br />

Specified Tension Change<br />

The Value specifies the change in target tension for this stage. That is, the Value specifies the total change in<br />

nominal tension during the stage, so to keep at a constant nominal tension set the Value to zero.<br />

The above comments for the Specified Tension control method also apply to this method.<br />

Specified Tension Rate of Change<br />

The Value specifies the rate of change in target tension for this stage.<br />

The above comments for the Specified Tension control method also apply to this method.<br />

Note: The Specified Tension Change and Specified Tension Rate of Change modes allow you, for example,<br />

to model a constant tension winch where the tension is determined by an earlier simulation stage.<br />

By specifying a tension change of 0 following a payout stage you can lock the winch at the tension<br />

used at the end of the payout operation.


w<br />

6.11.5 Control by Whole Simulation<br />

Statics Mode<br />

419<br />

System Modelling: Data and Results, Winches<br />

The winch control data for statics is the same as the data specified in the By Stage control type.<br />

Dynamics Mode<br />

The winch is controlled either by Specified Tension or by Specified Payout Rate.<br />

If Specified Tension is set then you must also specify the target tension. This value can be fixed, vary with<br />

simulation time or be given by an external function.<br />

If Specified Payout Rate is set then you must also specify the payout rate of unstretched winch wire. This value can<br />

be fixed, vary with simulation time or be given by an external function.<br />

6.11.6 Drive Unit<br />

Winch Drive<br />

Note: The drive unit data applies to Detailed Winches only<br />

The winch drive controls the winch wire in one of two winch control modes: Length Control mode ("Specified<br />

Length", "Specified Payout" or "Specified Payout Rate") or Force Control mode ("Specified Tension", "Specified<br />

Tension Change" or "Specified Tension Rate of Change").<br />

� Length Control mode is for modelling a constant speed winch. The winch tension then depends simply on the<br />

unstretched length of winch wire out, and the wire properties (Stiffness and Damping).<br />

� Force Control mode is for modelling a (nominally) constant tension winch. Because such winches often deviate<br />

quite seriously from the constant tension ideal, facilities are provided for modelling winch Deadband,<br />

Damping, Drag and Stiffness.<br />

Deadband<br />

A deadband of +/- this value is applied to the winch drive force between hauling in and paying out the winch. See<br />

Winch Theory for full details.<br />

Stiffness<br />

This can be used to model, for example, winch hydraulic accumulators. It is the rate at which the zero-velocity winch<br />

force (the drive force applied when the winch is neither hauling in nor paying out) varies with the total unstretched<br />

length of winch wire paid out. See Winch Theory.<br />

Damping Terms A and B<br />

These terms can be used to model damping in a winch's hydraulic drive system. The winch drive force is taken to<br />

vary with haul-in/payout velocity at rates A and B, respectively. See Winch Theory.<br />

Drag Terms C and D<br />

These terms can be used to model drag in a winch's hydraulic drive system. The winch drive force is taken to vary<br />

with haul-in/payout velocity 2 at rates C and D, respectively. See Winch Theory.<br />

6.11.7 External Functions<br />

Parameters<br />

This data item specifies the External Function Parameters, a free form multi-line text field which is passed to any<br />

external function used by the Winch object.<br />

6.11.8 Results<br />

For details on how to select results variables see Selecting Variables.<br />

For winches the available variables are:<br />

X, Y and Z<br />

The global coordinates of the specified winch connection point.


System Modelling: Data and Results, Links<br />

Tension<br />

The tension in the winch wire.<br />

Length<br />

The unstretched length of winch wire paid out.<br />

Stretched Length<br />

The stretched length of winch wire. This is the total distance between the winch connection points.<br />

Velocity<br />

The rate of pay out of winch wire. Positive value means paying out, negative value means hauling in.<br />

Azimuth and Declination<br />

420<br />

w<br />

The azimuth and declination angles of the direction of the winch wire between the final 2 connection points, relative<br />

to the global axes. This direction is measured from the last connection point towards the previous connection point.<br />

Declination is in the range 0° to 180°. Range jump suppression is applied to Azimuth (so values outside the range -<br />

360° to +360° might be reported).<br />

Sea Surface Z<br />

The global Z coordinate of the sea surface directly above the instantaneous position of the winch mount.<br />

Connection Force, Connection GX-Force, Connection GY-Force, Connection GZ-Force<br />

The magnitude and components relative to global axes of the connection force at the specified winch connection<br />

point. We adopt the convention that the force reported is that applied by the winch to the object to which it is<br />

connected.<br />

6.12 LINKS<br />

Links are simple spring or spring/damper connections linking two points in the model, for example a node on a line<br />

to a vessel, or a buoy to an anchor. They pull the two points together, or hold them apart, with a force that depends<br />

on their relative positions and velocities.<br />

Links have no mass or hydrodynamic loading and simply apply an equal and opposite force to the two points. They<br />

are useful for modelling items such as wires where the mass and hydrodynamic effects are small and can be<br />

neglected; for example buoy ties can sometimes be modelled using links.<br />

Two types of Link are available:<br />

Tethers<br />

Simple elastic ties that can take tension but not compression. The unstretched length and stiffness of the<br />

tether are specified. The tether remains slack and does not apply a force if the distance between the ends is<br />

less than the unstretched length.<br />

Spring/Dampers<br />

Combined spring and independent damper units. The spring can take both compression and tension and can<br />

have either a linear or a piecewise-linear length-force relationship. The damper velocity-force relationship<br />

can also be either linear or piecewise-linear.


w<br />

Tether:<br />

Spring-Damper:<br />

Figure: Types of Link<br />

6.12.1 Data<br />

Name<br />

Used to refer to the Link.<br />

Type<br />

may be either:<br />

� Tether: a simple elastic tie having linear stiffness and no damping.<br />

421<br />

System Modelling: Data and Results, Links<br />

� Spring/Damper: a combined spring and independent damper, each of which can be either linear or piecewiselinear.<br />

Connect to Object and Object Relative Position<br />

Specifies the objects to be linked.<br />

For connecting to a Line, the object-relative z coordinate specifies the arc length to the connection point. The z<br />

coordinate specifies the arc length along the Line and this arc length may be measured relative to either End A or<br />

End B as specified by the user. The connection point is attached to the nearest node. If torsion is not modelled then<br />

the x,y coordinates are ignored and the connection point is at the centreline of the Line. If torsion is modelled then<br />

the x,y coordinates allow you to offset the connection from the centreline.<br />

For Fixed connections the object-relative coordinates given are the global coordinates of the point.<br />

For connecting to an Anchor, the object-relative x,y coordinates given are the global X,Y coordinates of the anchor<br />

point, and the z-coordinate is the distance of the anchor above (positive) or below (negative) the seabed at that X,Y<br />

position.<br />

For connecting to other objects, the coordinates of the connection point are given relative to the object local frame<br />

of reference.<br />

Release at Start of Stage<br />

The link can be released at the start of a given stage of the simulation, by setting this number to the stage number<br />

required. Once released a link no longer applies any forces to the objects it connects. If no release is required, then<br />

set this item to '~'.<br />

Unstretched Length<br />

Is the unstretched length of the Tether or Spring.<br />

Linear<br />

Both the spring and damper in a Spring/Damper can have either simple linear force characteristics or else a userspecified<br />

piecewise-linear force table.<br />

Stiffness<br />

For a tether the tension t depends on its strain and stiffness as follows:<br />

t = k.(L-L0)/L0


System Modelling: Data and Results, Links<br />

where<br />

k is the specified Stiffness,<br />

L is the current stretched length between the two ends,<br />

L0 is the specified Unstretched Length.<br />

Tethers remain slack and exert no force if L is less than L0.<br />

For a linear spring in a Spring/Damper the tension (positive) or compression (negative) is given by:<br />

where<br />

t = k.(L-L0)<br />

k is the specified Stiffness,<br />

L is the current stretched length between the two ends,<br />

L0 is the specified Unstretched Length.<br />

The linear spring does not go slack if L is less than L0, but instead goes into compression.<br />

Damping<br />

Warning: Please note that this is not the same formula as for tethers.<br />

A linear damper in a Spring/Damper exerts an extra tension of<br />

where<br />

t = c.(rate of increase of L)<br />

c is the specified Damping,<br />

L is the current stretched length between the two ends.<br />

Non-linear force tables<br />

422<br />

w<br />

For a non-linear spring (or damper) the force characteristic is specified as a table of tension against length (or<br />

velocity). The table must be arranged in increasing order of length (velocity) and a negative tension indicates<br />

compression. For a passive damper the tensions specified should therefore normally have the same sign as the<br />

velocities, since otherwise the damper will apply negative damping. For lengths (velocities) between, or outside,<br />

those specified in the table the program will use linear interpolation, or extrapolation, to calculate the tension.<br />

6.12.2 Results<br />

For details on how to select results variables see Selecting Variables.<br />

For links the following variables are available:<br />

Tension<br />

The total tension in the link.<br />

Length<br />

The current stretched length of the link.<br />

Velocity<br />

The rate of increase of the stretched length.<br />

Azimuth and Declination<br />

The azimuth and declination angles, relative to global axes, of the End A to End B direction of the link.<br />

End A X, End A Y, End A Z, End B X, End B Y and End B Z<br />

The global coordinates of the link.


w<br />

6.13 SHAPES<br />

Figure: Examples of Block, Cylinder and Curved plate shapes<br />

Shapes are simple 3 dimensional geometric objects that can be configured in a variety of ways:<br />

1. Elastic solids are used to model physical obstacles,<br />

423<br />

System Modelling: Data and Results, Shapes<br />

2. Trapped water are used to model moonpools or other areas where fluid motion is suppressed.<br />

3. Drawing shapes have no physical effect on the model and are just intended for drawing purposes.<br />

You may choose between a number of different basic geometric shapes and several shapes can then be placed<br />

together to defined more complex shapes. The basic shapes available are planes, blocks, cylinders and curved plates.<br />

Elastic solids<br />

An elastic solid represents a physical barrier to the motion of lines and buoys. It is made of a material of a specified<br />

stiffness and resists penetration by applying a reaction force normal to the nearest surface of the elastic solid and<br />

proportional to the depth of penetration of the object into the elastic solid.<br />

Each elastic solid has an associated stiffness, which determines the rate at which the force applied to an object<br />

increases with the area of contact and depth of penetration into the elastic solid. The stiffness is the force per unit<br />

area of contact per unit depth of penetration.<br />

Contact with elastic solids can model friction. Friction coefficients are specified on the Solid Friction Coefficients<br />

data form. Note that friction for contact with elastic solids is only included during dynamics.<br />

Where an object interacts with more than one elastic solid simultaneously, the force acting on it is the sum of the<br />

individual forces from each elastic solid.<br />

Elastic solids are intended only for modelling the overall limitation on movement that a physical barrier presents;<br />

they are not intended to model an object's interaction with the barrier in detail. For example the calculation of the<br />

contact area and penetration depth are very simplistic and do not allow for the detailed geometric shape of the<br />

object. The value given for Stiffness is therefore not normally important, providing it is high enough to keep<br />

penetration small. On the other hand, although the actual stiffness of real barriers is usually very high, the Stiffness<br />

should not be set too high since this can introduce very short natural periods which in turn require very short<br />

simulation time steps.<br />

Lines only interact with elastic solids by their nodes coming into contact, so elastic solids that are smaller than the<br />

segment length can "slip" between adjacent nodes. The segment length in a line should be therefore be small<br />

compared with the dimensions of any elastic solid with which the line may make contact.


System Modelling: Data and Results, Shapes<br />

Trapped water<br />

424<br />

w<br />

Trapped water can be used to model hydrodynamic shielding – i.e. areas such as moonpools, the inside of spars or<br />

behind breakwaters, where wave and current effects are suppressed.<br />

Inside a trapped water shape the fluid motion is calculated as if the fluid was moving with the shape. So if the<br />

trapped water shape is fixed then no fluid motion occurs in the shape – this could be used to model a breakwater.<br />

But if the shape is connected to a moving vessel, for example, then the trapped water is assumed to move with the<br />

vessel – this could be used to model a moonpool.<br />

Note: Objects ignore any trapped water shapes which are connected to that particular object. If this<br />

wasn't done then if you connected a trapped water shape to a buoy and part of the buoy was in the<br />

trapped water shape then a feedback would occur (the buoy motion determines the motion of the<br />

shape, which in turn would affect the fluid forces on the buoy and hence its motion). Such feedback<br />

is undesirable so the buoy ignores any trapped water shapes that are connected to it.<br />

Drawing shapes<br />

Drawing shapes have no physical effect on the model. They can be used to draw objects of interest and do not<br />

interact with other objects.<br />

6.13.1 Data<br />

Name<br />

Used to refer to the shape.<br />

Type<br />

Either Elastic Solid or Trapped Water.<br />

Shape<br />

Can be one of Block, Cylinder, Curved Plate or Plane.<br />

Connection<br />

Can be Fixed, Anchored or connected to another object (Vessels, 3D Buoys or 6D Buoys).<br />

Position<br />

Each shape has position data. For blocks it is named Origin, for cylinders and curved plates it is named End<br />

Position and for planes it is named Point on Plane.<br />

This point is taken as the origin of the shape's local x,y,z axes.<br />

For Fixed connections this is the global position of the point.<br />

For Anchored connections the object-relative x,y coordinates given are the global X,Y coordinates of the anchor<br />

point, and the z-coordinate is the distance of the anchor above (positive) or below (negative) the seabed at that X,Y<br />

position.<br />

For connections to other objects, the coordinates of the connection point are given relative to the object local frame<br />

of reference.<br />

Pens and Number of Lines<br />

Each surface of the solid is drawn as a wire frame using one the specified pens. To aid visualisation, the Outside pen<br />

is used if the surface is being viewed from the outside of the solid, and the Inside pen is used if it is being viewed<br />

from the inside.<br />

The Number of Lines determines how many lines are used in the wire frames – a larger value gives a more realistic<br />

picture, but takes a little longer to draw.<br />

Data for Elastic Solids<br />

Normal Stiffness<br />

This is the reaction force that the solid applies per unit depth of penetration per unit area of contact. Stiffness may<br />

be set to zero, giving a solid that is drawn but which has no effect on the other objects in the system.


w<br />

Shear Stiffness<br />

425<br />

System Modelling: Data and Results, Shapes<br />

The Shear Stiffness is used by the friction calculation. A value of '~' results in the Normal Stiffness being used.<br />

Damping<br />

The percentage of critical damping for the elastic solid. Damping is always zero when using the implicit integration<br />

scheme.<br />

See Shape Theory for technical details.<br />

6.13.2 Blocks<br />

z<br />

Block Position B<br />

x-size<br />

A Block shape is a rectangular cuboid, defined by giving:<br />

Size<br />

y<br />

x<br />

y-size<br />

z-size<br />

This defines the block's dimensions in its local x, y and z directions. With respect to its local axes, the block occupies<br />

the volume x=0 to Size(x), y=0 to Size(y), z=0 to Size(z).<br />

Orientation<br />

This is defined by giving three rotation angles, Rotation 1, 2 and 3, that define its orientation relative to the object to<br />

which the block is attached, or else relative to global axes if it is not attached to another object. For example, if the<br />

block is attached to an object with local axes Lxyz, then the 3 rotations define the orientation of the block axes Bxyz<br />

as follows. First align the block with the local axes of the object to which it is attached, so that Bxyz are in the same<br />

directions as Lxyz. Then apply Rotation 1 about Bx (=Lx), followed by Rotation 2 about the new By direction, and<br />

finally Rotation 2 about the new (and final) Bz direction.


System Modelling: Data and Results, Shapes<br />

6.13.3 Cylinders<br />

r = Inner Radius<br />

R = Outer Radius<br />

R<br />

r<br />

End 1 Position<br />

A cylinder shape is a thick walled hollow pipe defined by giving:<br />

� Inner and Outer Diameter.<br />

� Length.<br />

� Azimuth and Declination of the axis.<br />

426<br />

End 2 Position<br />

w<br />

The azimuth and declination define the direction of the axis relative to the local axes of the object to which the end is<br />

connected. For objects that rotate, such as vessels and 6D buoys, the axis direction therefore rotates with the object.<br />

For Fixed or Anchored ends it is defined relative to global axes.<br />

Cylinders are drawn using circles to represent the end faces and a number of rectangular facets to represent around<br />

the curved surfaces. The number of facets used is the Number of Lines specified. Two gives a very simple wire frame<br />

profile of the cylinder, whilst a very large number gives a pseudo-opaque cylinder at the expense of drawing speed.<br />

If the Inner Diameter is zero then a solid disc is formed.<br />

If the cylinder is an elastic solid then reaction forces are applied:<br />

� Radially inwards if an object comes into contact with the inner curved surface.<br />

� Radially outwards if an object comes into contact with the outer curved surface.<br />

� Normally outwards if an object comes into contact with one of the end faces.<br />

6.13.4 Curved Plates<br />

Figure: Some example curved plate shapes


w<br />

427<br />

System Modelling: Data and Results, Shapes<br />

Curved plate shapes are particularly suited to modelling bellmouths although they are not restricted to this<br />

application. The curved plate shape is similar to the cylinder. It differs in that the radius of the shape can vary<br />

smoothly between the ends. Curved plates can be either filled in or hollow.<br />

Shape is hollow<br />

If ticked then the shape is hollow and has both inner and outer surfaces. The middle picture above is not hollow<br />

whereas the other two are.<br />

Orientation<br />

This is defined by giving three rotation angles, Azimuth, Declination and Gamma, that define its orientation<br />

relative to the object to which the shape is attached, or else relative to global axes if it is not attached to another<br />

object. The Azimuth and Declination values define the direction of the principal axis. The Gamma value specifies<br />

rotation of the shape about its own axis and so is only relevant when the Included Angle of Revolution is not equal to<br />

360°.<br />

Included Angle of Revolution<br />

The curved plate is a solid of revolution. A value of 360° gives a complete revolution as shown in the first 2 pictures<br />

above. Other values can be used to model partial or cut-away curved plates – for example the right-most picture<br />

above has an included angle of 90°.<br />

Thickness<br />

If the shape is hollow then this data item specifies the wall thickness. This thickness specifies the thickness normal<br />

to the shape's axis or centreline.<br />

Profile<br />

Note: You may need to specify an artificially large value for thickness in order to avoid objects passing<br />

through the shape's wall during the static calculation.<br />

A table specifying the variation of diameter with distance along the shape's axis or centreline. The radius is the<br />

radial distance (i.e. in direction normal to the shape axis) from the axis to the surface. If the shape is hollow then the<br />

profile defines the radius to the inner surface. If the shape is not hollow then the profile defines the radius to the<br />

outer surface. Cubic Bessel interpolation is used to generate a smooth profile.<br />

6.13.5 Planes<br />

Point on Plane<br />

Direction of<br />

Maximum Slope<br />

Slope<br />

A plane shape is an infinite plane surface – one side of the plane is outside and the other is inside. The position of<br />

the plane is defined by specifying a Point on Plane through which it passes.<br />

The angle of the plane is specified by giving its (maximum) Slope Angle and Slope Direction, relative to the object<br />

to which it is connected, as follows.<br />

� For a fixed or anchored shape, the Slope Angle is specified by giving the angle of elevation of the line of<br />

maximum slope, relative to the global XY plane (i.e. relative to the horizontal). A Slope Angle of 90° is therefore a<br />

vertical plane. The Slope Direction is specified as the direction of the line of maximum upwards slope, relative to<br />

global axes. For example a plane having a Slope Angle of 30° and a Slope Direction of 90° slopes upwards in the<br />

positive Y direction at 30° to the horizontal.<br />

� For a shape connected to another object, the Slope Angle and Slope Direction are relative to the object's local xy<br />

plane. For example with a Slope Angle of 30° and a Slope Direction of 90°, the plane slopes upwards in the<br />

positive y direction at 30° to the object's local xy plane.


System Modelling: Data and Results, Shapes<br />

428<br />

w<br />

A plane with zero slope angle is therefore parallel to the xy plane of the object to which it is connected, or parallel to<br />

the global XY plane (i.e. horizontal) in the case of a Fixed or Anchored plane.<br />

The 'inside' of a plane is on the negative z side (i.e. below for a Fixed or Anchored plane) if the Slope Angle is in the<br />

range -90° to +90°, and on the positive z side (i.e. above for a Fixed or Anchored plane) otherwise.<br />

Planes are drawn as a rectangular grid, with the specified Number of Lines, using a spacing determined by the view<br />

size. Planes extend to infinity in all directions, but only a part of the infinite plane local to the view centre is shown<br />

on the 3D view.<br />

6.13.6 Drawing<br />

Wire frame drawing<br />

Representation of shapes in the wire frame drawing mode can be confusing. <strong>OrcaFlex</strong> does not provide hidden-line<br />

removal so shape objects are displayed by simple wire-frame drawings. You may exercise control over the display<br />

by selecting the number of lines drawn for each object, and the sequence in which they are drawn. For pen details,<br />

see How Objects Are Drawn.<br />

Where it is necessary to keep the display simple you should set Number of Lines to 2 for blocks and cylinders. If the<br />

number of lines is set large for blocks or cylinders they appear as solid objects, although they may take a long time<br />

to draw.<br />

For planes you can control how they are drawn with the Grid Density data item. This is specified in terms of the<br />

length of the scale bar on the 3D view. A density of d means that there are d lines per scale bar length, so higher<br />

density values give a finer grid (but takes longer to draw).<br />

Please note also that the Number of Lines only affects the drawing, and not the calculations (which are correctly<br />

performed with curved geometry). Planes and Blocks are drawn first, and then Cylinders, but otherwise the solids in<br />

the model are drawn in the sequence that they were created. You can sometimes take advantage of this, by defining<br />

background shapes before foreground ones, to obtain a pseudo-hidden line effect. You are encouraged to<br />

experiment, but simplicity is best.<br />

Hint: Although the program provides depth clues to the eye by drawing rear faces in a different colour,<br />

the eye can sometimes be fooled by the picture – try rotating the view back and forth a few times.<br />

Shaded Drawing<br />

By default, for shaded 3D Views, shapes are drawn as solid objects using the specified geometry.<br />

Alternatively the object can be represented by an imported 3D model by specifying the Shaded Drawing File. This<br />

must be a Direct X format file, usually with the .x file extension. If you use a relative path then the path will be taken<br />

as relative to the folder containing the <strong>OrcaFlex</strong> file.<br />

The Browse button allows you to specify the Shaded Drawing File quickly and also provides quick access to the<br />

<strong>Orcina</strong> sample drawings via the Navigate to <strong>Orcina</strong> sample drawings button.<br />

The Use Culling option is normally selected since it can provide a useful performance benefit. However, in order to<br />

work it requires that the triangles defined in the .x file have their outward facing directions defined correctly. In the<br />

unusual situation where the outward facing directions are not defined correctly then the .x file will not display<br />

correctly. If this happens then typically sections of the model will be missing when drawn by <strong>OrcaFlex</strong>. Disabling the<br />

Use Culling option resolves this problem.<br />

Draw Size is provided to allow you to scale the drawing. All directions are scaled equally to arrange that the longest<br />

side in the drawing is drawn to the specified Draw Size. This longest side is calculated by first fitting the smallest<br />

possible cuboid around the vertices of the shaded drawing (these are defined in the .x file). This cuboid is aligned<br />

with the shaded drawing's local axes. Then the length of the longest side of this cuboid is found.<br />

Specify a value of '~' to display the drawing using the absolute coordinates as specified in the .x file.<br />

Note: If you use a value of '~' for Draw Size then <strong>OrcaFlex</strong> uses the coordinates in the .x file directly. If<br />

these coordinates use a different length units system from your <strong>OrcaFlex</strong> model then you should<br />

specify the units used in the .x file by including an auxiliary file called AdditionalInformation.txt.<br />

Examples of this can be found in the sample shaded drawings provided by <strong>Orcina</strong>.<br />

Shaded Drawing Origin is provided because the shaded drawing and the shape may have different origins. The<br />

Shaded Drawing Origin defines the origin of the shaded drawing with respect to the shape's local axis system.


w<br />

System Modelling: Data and Results, All Objects Data Form<br />

Similarly Shaded Drawing Orientation allows you to reorient the shaded drawing to match the shape's axis<br />

system.<br />

Shaded Drawing Plane Translucency (only available for planes)<br />

Controls how translucent the plane appears in the Shaded Graphics mode. A value of 0% gives a solid surface and all<br />

objects behind the surface will not be visible. A value of 100% specifies transparency and leads to a completely seethrough<br />

surface.<br />

Note: This data item is not used if an imported 3D model is used to draw the shape.<br />

6.13.7 Results<br />

For details on how to select results variables see Selecting Variables.<br />

Contact Force,<br />

Contact GX-Force, Contact GY-Force, Contact GZ-Force,<br />

Contact Lx-Force, Contact Ly-Force and Contact Lz-Force<br />

The magnitude and components of the total force applied by an elastic solid to other objects in the model. The<br />

components are reported relative to either global axes (GX, GY, GZ) or local axes (Lx, Ly, Lz).<br />

These variables are only available for elastic solids.<br />

X, Y, Z<br />

The global coordinates of the shape origin.<br />

Velocity, GX-Velocity, GY-Velocity, GZ-Velocity,<br />

Acceleration, GX-Acceleration, GY-Acceleration, GZ-Acceleration<br />

The magnitude and components (with respect to global axes) of the velocity and acceleration of the shape origin.<br />

6.14 ALL OBJECTS DATA FORM<br />

The All Objects Data Form allows you to view or edit data for all the objects in the model on a single form. This is<br />

particularly useful for simultaneous viewing or editing of properties of multiple objects. The form can be opened<br />

using the model browser.<br />

There are two modes of operation: Connections or Other data.<br />

Connections<br />

The Connections mode allows you to edit connection specific data for all Lines, Links and Winches in the model.<br />

You can choose to filter which object types appear in the list – each object type (Lines, Links or Winches) can be<br />

included or excluded from the list.<br />

Positions and Connections pages<br />

The Positions and Connections pages allow you to view or edit all the connection data. This is the same data as on<br />

the individual data forms and includes the following data items:<br />

� The positions (as Cartesian coordinates) relative to the frame of reference of the object to which the connection<br />

is attached.<br />

� For Links and Winches connected to a line, the reference line end (either End A or End B) for the z coordinate.<br />

� Height above seabed for anchored line ends.<br />

� Connection orientation and stiffnesses for line ends.<br />

� Release stage for line ends.<br />

Polar Coordinates page<br />

The Polar Coordinates page provides a way of viewing or setting the positions of the connections using polar<br />

coordinates, relative to a choice of frames of reference. This facility is useful for cases, for example mooring arrays,<br />

where a series of connections need to be laid out around a circle.<br />

The polar coordinates (R, θ, Z) are those of the connection position relative to the selected polar coordinates frame<br />

of reference (see below). The Cartesian coordinates of the connection, relative to the same reference frame, are<br />

(Rcos(θ), Rsin(θ), Z).<br />

429


System Modelling: Data and Results, All Objects Data Form<br />

430<br />

w<br />

On the other hand, the Object Relative Position data are the Cartesian coordinates of the connection relative to the<br />

frame of reference of the object to which it is connected.<br />

<strong>OrcaFlex</strong> keeps the two sets of coordinates synchronised, so if you change one then the other is automatically<br />

updated to match. If you change any other data then the Cartesian Object Relative Position coordinates are taken to<br />

be the master data and so left unchanged, and the polar coordinates are updated to match.<br />

You have a quite a lot of flexibility to choose what reference frame you want for the polar coordinates. The reference<br />

frame has its origin at your chosen Reference Origin and has its axes are parallel to those of your chosen<br />

Reference Axes.<br />

For the reference origin you can choose between:<br />

� The global origin.<br />

� The point on the seabed that is directly below the global origin. This is only available if a connection point is<br />

anchored.<br />

� The origin of the frame of reference of any connected object.<br />

� The position of the other end of the object – available for Lines and Links only.<br />

And for the reference axes directions you can choose between:<br />

� The global axes directions.<br />

� The axes directions of the frame of reference of any connected object.<br />

Example of Using Polar Coordinates<br />

The choices of reference frame for the polar coordinates may seem complex at first sight, but they allow various<br />

useful coordinate transformations to be done easily and accurately. Here is an example.<br />

Consider mooring a spar with an array of 4 lines, each of which has End A connected to the spar and End B<br />

anchored. Suppose you want to place the A ends of the lines so that they are evenly spaced circumferentially around<br />

the spar, all at radius 5m from the spar axis and all 3m below the spar origin. To do this easily, first sort into<br />

Connection order so that all the End A connections are grouped together. Then, for the first line, set the reference<br />

frame origin and axes to be the spar origin and spar axes and set its polar coordinates to be R=5, and Z=-3. You can<br />

now use copy/paste or fill down to set all the other A ends to the same reference origin, axes and R and Z<br />

coordinates. Finally you can set the θ coordinates for the A ends to 0°, 90°, 180° and 270°.<br />

Similarly, suppose you want the End B connections to be anchored to the seabed, with the anchors again evenly<br />

spaced circumferentially, and with each line spanning 200m horizontally. The easiest reference frame for this is<br />

with the reference origin being End A and the reference axes being the spar axes. The θ coordinates should again be<br />

set to 0°, 90°, 180° and 270° and the R coordinates set to 200m. But this time, to set the vertical positions of the B<br />

ends, it is easier (especially if the seabed is sloping) to go to the Connections page and set Connect To Object to be<br />

Anchored and then go to the Positions page and set the Object Relative Position z coordinate to zero.<br />

Other data<br />

The Other data mode presents tables of data for Vessels, Lines, 6D Buoys, 3D Buoys, Links, Winches and Shapes.<br />

The tables are laid out with each row containing related data for a single object. The notable exception is the Line<br />

sections page in which each row contains data for a single section of a Line.<br />

This tabulation allows data for multiple objects to be set in an efficient and coordinated way. The copy/paste or fill<br />

down keyboard shortcuts are particularly useful here. Another useful technique is to build a table of data in Excel<br />

with identical layout of columns and rows. This allows you to make use of Excel's formulae and data handling<br />

facilities to prepare data, and then to paste it into <strong>OrcaFlex</strong> in a single operation.


w<br />

7 MODAL ANALYSIS<br />

7.1 DATA AND RESULTS<br />

431<br />

Modal Analysis, Data and Results<br />

The modal analysis form enables you to calculate and view the undamped natural modes of the whole system, or of<br />

a single line. To open this form, see the Modal Analysis command on the Results menu. Note that the analysis is only<br />

available when the static position of the model has been calculated.<br />

For full details of the calculation, and a discussion of its limitations, see the Modal Analysis theory section.<br />

Performing modal analysis<br />

To perform a modal analysis you need to specify the following:<br />

� What you want to analyse: the whole system or a single line.<br />

� Which modes you want to calculate. You can ask for All modes or a specified range of modes. For large systems<br />

it is much quicker to calculate only a small number of modes – see Modal Analysis Theory for more details.<br />

� Whether you want to calculate the mode shapes or just the natural periods. If you exclude the mode shapes then<br />

the analysis only calculates the natural periods, not the shapes of the natural modes. If you include the mode<br />

shapes then the analysis takes longer.<br />

When you have made your selections click the Calculate button. The modal analysis will then calculate the<br />

undamped natural periods and, if requested, the mode shapes. Each mode is normalised to have largest offset<br />

magnitude equal to 1, i.e. the offsets vectors are scaled so that largest offset vector is a unit vector. The modes are<br />

numbered in order of increasing frequency.<br />

Modes Table<br />

This page displays a spreadsheet giving the mode periods and mode shape results in numerical form. If you do not<br />

calculate the mode shape then the table reports only the periods of the requested natural modes. If you calculate the<br />

mode shapes then the table also gives the shape in the form of the displacements of each degree of freedom. Mode<br />

shapes can be reported with respect to either global axes directions or local axes directions.<br />

If mode shapes are calculated then the table includes the following information:<br />

� Offset distribution displays a measure of how inline, transverse, axial and (if torsion is included) rotational the<br />

mode is. For details see Offset Distribution below.<br />

� Mode type classifies each mode according to the offset distribution. Transverse means that the transverse<br />

component is more than 90% of the total, Mostly transverse means that it is between 50% and 90%, and<br />

similarly for inline, mostly inline, axial, mostly axial, rotational and mostly rotational. Mixed means that<br />

none of the components are more than 50% of the total.<br />

Mode View<br />

Note: The Offset Distribution and Mode Type information is only available for single line analyses where<br />

there is relative flow normal to the line. So, if the line is entirely above the water, or there is no<br />

current defined then this information will not be available.<br />

If you requested the mode shapes then the View page displays a 3D view of the system showing one selected mode<br />

shape superimposed on the static position of the system. The current direction is also shown on the view, and you<br />

can control the view angle, zoom etc., as on any 3D view. You may need to zoom out in order to see the system, and<br />

you may need to adjust the view angle to suit the mode that you are viewing. For example an out of plane mode for a<br />

catenary is best viewed by looking along the plane of the catenary.<br />

You can use the mode drop-down list to control which mode is shown on the view. Note that when that drop-down<br />

list has the focus (click it to give it the focus) then you can use the arrow keys to quickly increment or decrement the<br />

mode shape number that is displayed.<br />

The drawing exaggeration value allows you to vary the amplitude of the drawn mode shape. The animate mode<br />

shape and draw node axes options allow further control of the mode shape drawing.<br />

If the mode shape is being animated then there is a further choice to make, the animation period. If you select the<br />

mode period option then the animation has a cycle period equal to the mode period. However, for modes with<br />

either very long or very short periods, this option can make visualisation of the mode shape quite difficult. The<br />

alternative option, fixed, animates the mode with a 5s cycle period.


Modal Analysis, Theory<br />

432<br />

w<br />

For single line analyses, the offset distribution and mode type for the selected mode is also shown, provided that<br />

there is relative flow normal to the line.<br />

VIV Page<br />

The VIV facilities related to modal analysis are currently only available for single line modal analyses.<br />

If you requested that mode shapes be calculated then the View page displays a table of information relating to VIV.<br />

Each row of the table refers to a single mode and contains the following information:<br />

� The mode number.<br />

� The mode's period and frequency.<br />

� The mode's offset distribution and mode type.<br />

� Export to SHEAR7 Mds file determines whether or not the mode will be included in the exported SHEAR7 Mds<br />

file.<br />

The filter allows you to restrict the table to show only certain types of mode. For example, you may wish to view<br />

only the transverse modes when considering transverse VIV. The table reports modes in order of increasing mode<br />

number.<br />

Offset Distribution<br />

For a given mode, let T be the translational part of the mode offset vector at a given node, let Ti, Tt and Ta be T's<br />

components in the local inline, transverse and axial directions and let L be the length of line represented by that<br />

node. Then <strong>OrcaFlex</strong> calculates the inline, transverse and axial components of the overall translation in the mode<br />

shape as follows:<br />

Mode shape inline component = Mi = (∑ LTi 2 ) ½<br />

Mode shape transverse component = Mt = (∑ LTt 2 ) ½<br />

Mode shape axial component = Ma = (∑ LTa 2 ) ½<br />

where the summations are over all nodes in the line.<br />

The root sum of squares formulation used above is the multi-dimensional equivalent of the standard 3D formula |V|<br />

= (Vi 2 + Vt 2 + Va 2 ) ½ . The scaling by L is there so that the values are independent of the level of discretisation.<br />

When torsion is included, a further component Mr is required to represent the overall rotational content of the mode<br />

shape. Components Ri, Rt and Ra are formed from the rotational part of the mode offset vector, and these are then<br />

multiplied by L to give them dimensions of length. This allows an appropriate comparison between the magnitude of<br />

translation and the magnitude of rotation.<br />

Again we sum over all the line nodes to obtain a measurement for the overall mode shape, but we also sum the three<br />

components because all we require is a single measure of how much rotational content is present in the mode offset<br />

vector. So,<br />

Mode shape rotational component = Mr = (∑ L(LRi) 2 ) ½ + (∑ L(LRt) 2 ) ½ + (∑ L(LRa) 2 ) ½<br />

<strong>OrcaFlex</strong> then reports these 3 or 4 mode shape components as percentages of their sum, i.e. the offset distribution<br />

values reported by <strong>OrcaFlex</strong> are Mi/M, Mt/M, Ma/M and Mr/M where M = Mi + Mt + Ma + Mr. These values are only<br />

used to provide some measure of how inline, transverse, axial and rotational the mode is.<br />

Export SHEAR7 Mds File<br />

This button exports a SHEAR7 .Mds file.<br />

7.2 THEORY<br />

A modal analysis calculates the undamped natural modes of a system. These modes are given in decreasing order<br />

of period and are numbered starting from 1.<br />

The analysis calculates the natural modes of the discretised model, not those of the real continuous system.<br />

However the discretised modes are close to the continuous ones and for a mode number the accuracy improves as<br />

more and more elements are used to model the system. For any given level of discretisation the accuracy is better<br />

for the lower modes and progressively worsens as you go to higher and higher modes. The highest numbered modes<br />

are unlikely to be realistic since they are oscillations whose wavelengths are of the same order as the segment<br />

length.


w<br />

433<br />

Modal Analysis, Theory<br />

If the system hangs in one of the global axis planes then you can often distinguish whether a mode is in-plane or outof-plane<br />

by looking at the pattern of zeros in the table of displacements. For example if the system hangs in the XZ<br />

plane then the out-of-plane modes have non-zero Y-displacements but zero (or very small) X- and Z-displacements,<br />

and the in-plane modes have the opposite pattern of zeros.<br />

Outline Theory<br />

Modal analysis is a standard technique that is well-documented in the literature, but here is a brief outline. First<br />

consider a single degree of freedom system consisting of a mass attached to a linear spring. The undamped equation<br />

of motion is:<br />

Mx''(t) = -Kx(t)<br />

where x(t) is the offset (at time t) from mean position, x''(t) is the acceleration, M is its mass and K is the stiffness of<br />

the spring. Since this analysis neglects any damping the results are referred to as the undamped modes.<br />

The solution of the equation is known to be simple harmonic, i.e. of the form x(t) = a.sin(ωt), where a and ω are<br />

unknowns to be found by solving the equation. Differentiating x(t) gives:<br />

x''(t) = -ω 2 .a.sin(ωt)<br />

so when we substitute into the equation of motion we obtain:<br />

-M.ω 2 .a.sin(ωt) = -K.a.sin(ωt) (1)<br />

which can be rearranged to give:<br />

ω = (K/M) ½ .<br />

This is the angular frequency of the oscillation and so the natural period T is given by:<br />

T = 2π(M/K) ½<br />

For this simple harmonic oscillator there is just a single undamped natural mode, corresponding to the single degree<br />

of freedom. For a continuous riser there are an infinite number of degrees of freedom, and hence an infinite number<br />

of undamped natural modes, but computers work with discretised models with finite numbers of degrees of<br />

freedom.<br />

Consider a discretised line in <strong>OrcaFlex</strong> with N degrees of freedom. In this situation the above equations still apply,<br />

but they now have to be interpreted as matrix/vector equations where ω and T remain scalars, a, x and x'' become<br />

vectors with N elements, and M and K become N×N matrices.<br />

Equation (1) is an eigen-problem with N solutions, the i th solution being ωi and ai, say, where ωi is a scalar and ai is a<br />

vector with N elements. This i th solution is called the i th natural mode. It is an oscillation of the line in which all the<br />

degrees of freedom oscillate at the same angular frequency ωi. But different degrees of freedom have different<br />

amplitudes, given by the components of ai. This amplitude variation is called the mode's shape.<br />

Eigen-solvers<br />

Two eigen-solvers are used to perform modal analysis. The choice of which to use is made based on the number of<br />

modes extracted, n, and the number of degrees of freedom, N.<br />

If n ≤ N/3 and n ≤ 1000 then an iterative Lanczos algorithm will be used. Otherwise a direct method based on<br />

tridiagonal MATRIX diagonalisation is used. For large problems the iterative Lanczos algorithm is much faster and<br />

requires much less memory and so should be used if at all possible.<br />

One final subtlety concerns the precise definition of n in the above inequalities. The Lanczos algorithm works by<br />

finding the largest (or smallest) eigenvalue first, then the next largest (or smallest) and so on. Consequently if you<br />

ask for modes 5 to 10 then the solver has to find modes 1 to 4 first and so the number of modes extracted, n, is 10.<br />

Seabed friction<br />

The theory outlined above requires that the mass and stiffness matrices are symmetric which is not always the case<br />

in an <strong>OrcaFlex</strong> model. The most important example of this is the friction model. Friction is a non-conservative effect<br />

and non-conservatism equates to non-symmetric terms in the stiffness matrix. Clearly this presents a problem.<br />

The non-conservatism of the standard <strong>OrcaFlex</strong> friction model arises when a node is slipping, that is when the<br />

deflection from its friction target position exceeds Dcrit. When performing modal analysis <strong>OrcaFlex</strong> assumes that<br />

nodes on the seabed are restrained by a linear stiffness effect determined by the seabed's shear stiffness, Ks and the<br />

node's contact area, A. This stiffness term corresponds to the stiffness of a linear spring acting in the plane of the<br />

seabed, connecting the node and its target position, and with a stiffness of KsA.


Modal Analysis, Theory<br />

434<br />

w<br />

This has the effect of restraining movement of the nodes on the seabed, in the plane of the seabed which is desirable<br />

for a modal analysis of a system with seabed contact. This modification to the seabed friction model results in a<br />

symmetric, conservative system and hence enables modal analysis to be performed successfully.<br />

Stiffness terms due to fluid loading<br />

As mentioned above, the modal analysis is an undamped analysis which means that damping terms (i.e. those<br />

dependent on x') are neglected. So, for example, the effects of drag loading are neglected in the modal analysis.<br />

However, fluid loads do contribute stiffness terms because perturbations of position and orientation can result in<br />

changes of direction of the fluid load vector. These are stiffness terms, as opposed to damping terms, because they<br />

arise from displacements even though the magnitude of the loads themselves are dependent on velocities. <strong>OrcaFlex</strong><br />

does include these stiffness terms to improve convergence for whole system statics and implicit dynamics<br />

calculations. However, these fluid load terms are neglected in the modal analysis.<br />

Non-linear bend stiffness<br />

Modal analysis inherently assumes linearity of the system under consideration. For non-linear, elastic bend stiffness<br />

the local tangent stiffness is used. For small oscillations about the static configuration, such a system is linear and<br />

modal analysis may be adequately accurate.<br />

For hysteretic bend stiffness the situation is more complex. The local tangent stiffness is, in general, ill-defined<br />

because it can be many-values depending on whether the perturbation increases or decreases curvature. In this<br />

situation <strong>OrcaFlex</strong> uses an average of the possible stiffness values.<br />

Yet another case to consider is externally calculated bend stiffness. The external function interface provides no<br />

mechanism for specifying the local tangent bend stiffness. Hence <strong>OrcaFlex</strong> uses the nominal bend stiffness as<br />

provided by the external function.<br />

Clearly the modal analysis will be less accurate for hysteretic and externally calculated bend stiffness than it is for<br />

the other bend stiffness options. However, it is often the case that tension, as opposed to bend stiffness, is the<br />

dominant contribution to lateral stiffness and so the limitations described above are often not significant.<br />

Vessel added mass<br />

When performing a whole system modal analysis with vessel degrees of freedom included, the added mass of a<br />

vessel is usually a significant factor in the analysis. However, if the vessel added mass and damping data is specified<br />

as frequency dependent there is no easy way for the modal analysis to account for this dependency on frequency.<br />

Therefore, for modal analyses, the program neglects added mass when the data is frequency dependent.<br />

In order to perform a more accurate modal analysis you can use the constant option for added mass specification. In<br />

this situation you provide a single added mass matrix which is included in the system wide mass matrix. Because<br />

you can only specify a single added mass matrix you must first assess what modes are of interest and choose<br />

appropriate added mass values. If the added mass varies significantly with mode period, over the range of periods<br />

under consideration, then you may need to perform multiple analyses with different added mass matrices.


w<br />

8 FATIGUE ANALYSIS<br />

8.1 INTRODUCTION<br />

435<br />

Fatigue Analysis, Introduction<br />

The <strong>OrcaFlex</strong> fatigue analysis is a post-processor which calculates fatigue damage using a variety of methods.<br />

Damage is then collated and summed for specified load cases and then presented, either as plots or in tabular<br />

fashion.<br />

Damage can be calculated in a variety of ways:<br />

� The S-N curve approaches recover stress using homogeneous pipe stress (for metal risers), stress factors (for<br />

umbilicals and flexibles), or externally calculated stress (suitable for bespoke applications). Damage is then<br />

calculated based on the specified S-N curve.<br />

� Mooring line fatigue calculates damage from effective tension ranges using T-N curves.<br />

Likewise, damage is summed in a variety of ways:<br />

� Deterministic regular wave fatigue analysis.<br />

� Deterministic irregular wave fatigue analysis using the rainflow cycle counting method.<br />

� Stochastic irregular wave fatigue analysis using spectral methods.<br />

The SHEAR7 option is rather different because damage is calculated external to <strong>OrcaFlex</strong> by SHEAR7. This option<br />

allows you to collate fatigue damage from a number of SHEAR7 load cases.<br />

The fatigue analysis tool is accessed by selecting the Fatigue Analysis command from the <strong>OrcaFlex</strong> Results menu. It<br />

is essentially a self-contained sub-program within <strong>OrcaFlex</strong>, with its own menus, data and results.<br />

The steps involved in performing a fatigue analysis are:<br />

1. Use the normal <strong>OrcaFlex</strong> facilities to set up and run simulations that model the various load cases that the line<br />

will experience. Alternatively, for a SHEAR7 analysis, create a set of SHEAR7 .plt output files to represent your<br />

VIV load cases.<br />

2. Open the fatigue analysis tool and set up the fatigue analysis data. This fatigue analysis data is held separately<br />

from the other <strong>OrcaFlex</strong> data and can be saved in a separate file with the file extension .ftg.<br />

3. Check the data for errors.<br />

4. Calculate and collate the damage.<br />

Load Cases<br />

Notes: The calculation stage of a fatigue analysis can take a long time , especially a rainflow analysis with<br />

a lot of load cases. To help with this there is an Estimate Calculation Time facility and fatigue<br />

analyses can be run in batch mode. The calculation makes use of all available processor cores to<br />

process load cases concurrently.<br />

The fatigue calculation performance is often limited by disk access – consequently it is important<br />

that the disk access speed is as fast as possible. Usually this means that the simulation files should<br />

be stored on a local disk of the machine performing the fatigue calculation.<br />

Before the fatigue analysis can be performed you must first prepare a set of <strong>OrcaFlex</strong> simulation files that model the<br />

same system but under the various load conditions that the system will experience in its lifetime.<br />

The approach is to divide the range of sea states that the system will experience into a number of wave classes;<br />

typically this is done with a wave scatter table.<br />

For both regular and rainflow analysis you typically represent each wave class with a distinct <strong>OrcaFlex</strong> simulation<br />

file. For regular analysis the simulation should use a regular wave representative of the wave class and for rainflow<br />

analysis the simulation should use an irregular wave representative of the wave class.<br />

For spectral analysis multiple wave classes with similar Hs values may be represented by a single response<br />

calculation simulation. The reason this is possible is that the spectral response analysis provides information about<br />

how the system responds to a range of wave frequencies. Typically you will have a range of simulations which cover<br />

the range of Hs values in your wave scatter table.


Fatigue Analysis, Commands<br />

436<br />

w<br />

For SHEAR7 fatigue analysis the load cases are specified by a set of SHEAR7 .plt output files. These are most easily<br />

generated using the direct SHEAR7 interface, together with the standard <strong>OrcaFlex</strong> automation facilities – the .plt<br />

files are automatically exported if you run the direct SHEAR7 interface in batch mode.<br />

Each load case is assigned an exposure level. For regular load cases this is the total number of occurrences of waves<br />

within the wave class. For the other methods the exposure level is specified as the total time exposed to waves<br />

within the wave class.<br />

Choice of fatigue analysis method<br />

As described above <strong>OrcaFlex</strong> can perform three different types of fatigue analysis: regular, rainflow or spectral.<br />

Rainflow fatigue is the most accurate of the methods, but also the most time consuming and demanding of disk<br />

storage. The time and storage requirements can be somewhat alleviated by careful selection of load cases. The other<br />

factor which can be adjusted is the duration of the irregular wave load case simulations. In our experience it is often<br />

possible to achieve accurate damage predictions with simulations of 20 minutes duration.<br />

Regular wave fatigue analysis is much faster and requires much less disk storage than rainflow fatigue. The wave<br />

scatter conversion facility provides an efficient and productive way to generate a regular wave scatter table from a<br />

random sea scatter table. Provided that the regular wave bin discretisation is performed well, the results from a<br />

regular wave fatigue analysis will generally agree well with an equivalent rainflow analysis.<br />

The spectral fatigue analysis method was originally included to provide a very quick alternative to the other<br />

methods. The spectral fatigue method in <strong>OrcaFlex</strong> is much more difficult to use effectively than the other methods.<br />

This is largely due to weaknesses and limitations in the response calculation approach used to generate response<br />

RAOs. If you do perform a spectral fatigue analysis in <strong>OrcaFlex</strong> then it is very important that you check that the<br />

spectral response RAOs are smooth. The response calculation method often results in very noisy RAOs which in turn<br />

result in gross over-predictions of damage. It is our experience that use of the spectral fatigue method usually<br />

results in poor and inaccurate results.<br />

Recommendations<br />

The advent of multi-core processors and the wave scatter conversion facility mean that regular wave fatigue<br />

analysis is often just as fast as spectral fatigue analysis, as well as giving much more reliable and accurate answers.<br />

Because of this we no longer recommend the use of spectral fatigue analysis in <strong>OrcaFlex</strong>.<br />

This then reduces the choice of methods to regular and rainflow. Because of the calculation time and disk storage<br />

advantages it is clearly desirable to use regular wave fatigue. Certainly during system design these advantages are<br />

significant because they allow for greater coverage and exploration of the design space.<br />

Another effective strategy is to use regular fatigue analysis for the bulk of the time and switch to rainflow analysis<br />

for a final, more detailed check. If the regular wave fatigue analysis predicts a system life significantly in excess of<br />

the design life then this final detailed check could be omitted.<br />

8.2 COMMANDS<br />

File Menu<br />

New<br />

Clears previously entered Fatigue Analysis data and resets data to default values.<br />

Open<br />

Opens a Fatigue Analysis file. These files can be either binary format (.ftg) or text files (.yml).<br />

� The .ftg extension is used for binary format files. If the file does contain results then these will be available<br />

without having to perform the time-consuming calculation again.<br />

� The .yml extension is used for the text file format. These are YAML files and are intended to be used for<br />

automation purposes.<br />

Just as is the case for <strong>OrcaFlex</strong> data files, the binary file has strong version compatibility features. For example, when<br />

<strong>OrcaFlex</strong> attempts to open a binary .ftg file written by a later version of the program it is able to report informative<br />

compatibility warnings. The program is not able to be as helpful and informative when working with text data files<br />

across program versions. Whilst we strive to achieve as much compatibility as possible for text data files across<br />

program versions, we cannot achieve the same level of compatibility as that for binary data files.


w<br />

Save<br />

Saves the data to the currently selected file name (shown in title bar of the window).<br />

437<br />

Fatigue Analysis, Data<br />

� If results have been calculated then these are also saved to the file. This allows you to view results at a later date<br />

without having to perform the calculation again. Note that results can only be saved to the binary format file<br />

(.ftg).<br />

� If results have not been calculated then the file will contain input data only.<br />

Save As<br />

This is the same as Save, but allows you to specify the file name to save to.<br />

Open Data<br />

If the file contains results and there are a large number of load cases then the file can take a long time to load. If you<br />

want to work with just the input data then this command loads just the input data which is a much quicker process.<br />

Most Recent Files List<br />

A list of the most recently used files. Selecting an item on the list causes the file to be loaded. The size of the list can<br />

be adjusted from the Preferences form.<br />

Analysis Menu<br />

Estimate Calculation Time<br />

Gives an estimate of how long it will take to do the fatigue analysis and present the results. This is useful for long<br />

analyses, e.g. rainflow analyses involving a lot of cases or long simulations.<br />

Check<br />

The Check command performs a preliminary check of the fatigue analysis data. For example it checks that all the<br />

specified load case simulation files exist and that the named line and the specified arc length intervals exist in each<br />

load case.<br />

The Check command is generally much quicker that the fatigue analysis itself, so we recommend that the Check<br />

command is used before the Fatigue Analysis is run, since the check can often detect data errors that would<br />

otherwise only be found part way through what may be quite a long fatigue analysis. It is particularly important to<br />

use the Check command when a new fatigue analysis has been first set up or when significant changes have been<br />

made to the data.<br />

Calculate<br />

The Calculate command starts the Fatigue Analysis. The fatigue analysis can take a long time if there are many load<br />

cases, or if there are many log samples in the load case simulations, or finally if there are a lot of segments in the arc<br />

length intervals specified. A progress window is displayed and you can cancel the analysis if desired.<br />

When the calculation is complete the results are displayed in a spreadsheet window.<br />

8.3 DATA<br />

Title<br />

Used to label all output of the fatigue analysis.<br />

Damage calculation<br />

A variety of methods are available for calculating damage:<br />

� Homogeneous pipe stress which assumes a pipe made of a straight, uniform, homogeneous, linear material.<br />

The damage calculation is based on ZZ Stress. This option is appropriate for metal risers.<br />

� An approach based on stress factors. Here the stress is assumed to comprise a tensile contribution<br />

(proportional to either wall tension or effective tension) and a bending contribution (proportional to<br />

curvature). This approach is commonly used for umbilicals but could also be used for unbonded flexibles.<br />

� The mooring fatigue option calculates damage from effective tension ranges using T-N curves.


Fatigue Analysis, Load Cases Data for Regular Analysis<br />

438<br />

w<br />

� The SHEAR7 option is rather different because damage is calculated external to <strong>OrcaFlex</strong> by SHEAR7. This<br />

option allows you to collate fatigue damage from a number of SHEAR7 load cases.<br />

� The final option, externally calculated stress, is very similar to the stress factor option. The difference is that<br />

stress is calculated by means of an externally specified results variable. Please refer to the External Function<br />

Examples for more details.<br />

Analysis Type<br />

Three types of fatigue analysis are available:<br />

� Regular analysis must be based on a series of regular wave simulations that represent the various load cases<br />

that will occur. For each of these load cases a single-occurrence damage value is calculated based on the last<br />

wave cycle in the simulation. This damage value is then scaled up by the specified number of cycles expected to<br />

occur during the structure's life, and this gives the total load case damage value. Finally these total load case<br />

damage values are then summed for each load case to give the overall total damage.<br />

� Rainflow analysis is normally based on a series of random wave simulations. It uses a cycle counting technique<br />

to break down each random wave case into a series of half cycles, and then sums the damage from each half<br />

cycle according to the Palmgren-Miner law. For details see the book by Maddox and the paper by Rychlik. This<br />

gives the damage value for that load case, which is then scaled to the specified total exposure time. Finally these<br />

total load case damage values are then summed for each load case to give the overall total damage.<br />

� Spectral analysis calculates damage in the frequency domain using statistical methods. The method requires a<br />

power spectral density function (PSD) for a particular load variable (stress or tension). The PSD is obtained<br />

from a response calculation simulation. This calculates RAOs for the load variables of interest and these are then<br />

combined with the load case wave spectrum to give PSDs for load. These PSDs are then used to calculate<br />

damage using either Dirlik's formula or the Rayleigh distribution. The damage is scaled to the specified total<br />

exposure time for the load case. Finally these total load case damage values are then summed for each load case<br />

to give the overall total damage.<br />

Units<br />

The units to be used for the fatigue analysis, for both the fatigue analysis data and for its results. The units are<br />

specified in the same way as elsewhere in <strong>OrcaFlex</strong>.<br />

Note that the units specified for the fatigue analysis need not match the units that were used in the various load case<br />

simulation files. If they do not match, then the results from that simulation file will automatically be converted to the<br />

units specified for the fatigue analysis. This is useful, since it allows the fatigue analysis to be done using m and MN<br />

as the length and force units (giving stresses in MN/m 2 = MPa), for example, even if the simulation load cases use m<br />

and kN (which corresponds to stresses in kN/m 2 = kPa). Similarly, in US units, the fatigue analysis can use inches<br />

(giving stresses in ksi) even if the simulation files use feet as the length unit.<br />

If you change units, then all existing fatigue analysis data is automatically changed to match the new units. This is<br />

useful if you want to enter data in some other set of units, since you can simply change to the units of the new data,<br />

then enter the new data, and then change back to the original units again.<br />

Cycle Range Distribution (spectral analysis only)<br />

The spectral fatigue calculation assumes that cycle ranges follow a statistical distribution which is specified by this<br />

data item. The distribution can be either Dirlik's formula or the Rayleigh distribution. The Rayleigh distribution<br />

is appropriate if the variation of the response is a narrow banded random Gaussian process. Dirlik's formula is<br />

applicable even if the variation of the response is not a narrow banded process. For this reason we recommend<br />

using Dirlik's formula.<br />

8.4 LOAD CASES DATA FOR REGULAR ANALYSIS<br />

Simulation File Name<br />

The name of the simulation file which represents the load case. You can either specify the full path or a relative path.<br />

Line Name<br />

The name, in this load case simulation file, of the line to be analysed.<br />

Note: Normally the line name will be the same in all of the load cases (though this is not necessary).<br />

However the named lines in the various load cases must, of course, all represent the same physical<br />

line and use the same discretisation in the areas being analysed.


w<br />

Number of Cycles<br />

439<br />

Fatigue Analysis, Load Cases Data for Rainflow Analysis<br />

The number of wave cycles, of this particular set of load conditions, that the line will experience.<br />

8.5 LOAD CASES DATA FOR RAINFLOW ANALYSIS<br />

Simulation File Name<br />

The name of the simulation file which represents the load case. You can either specify the full path or a relative path.<br />

Line Name<br />

The name, in this load case simulation file, of the line to be analysed.<br />

Note: Normally the line name will be the same in all of the load cases (though this is not necessary).<br />

However the named lines in the various load cases must, of course, all represent the same physical<br />

line and use the same discretisation in the areas being analysed.<br />

Simulation Period<br />

The period of the pre-run simulation file that defines the load case.<br />

Exposure Time<br />

The total time the system is exposed to this load case.<br />

8.6 LOAD CASES DATA FOR SPECTRAL ANALYSIS<br />

Simulation File Name<br />

The name of the simulation file which represents the load case. You can either specify the full path or a relative path.<br />

Line Name<br />

The name, in this load case simulation file, of the line to be analysed.<br />

Note: Normally the line name will be the same in all of the load cases (though this is not necessary).<br />

However the named lines in the various load cases must, of course, all represent the same physical<br />

line and use the same discretisation in the areas being analysed.<br />

Exposure Time<br />

The total time the system is exposed to this load case.<br />

Spectral Form, Spectral Parameters<br />

For spectral analysis the simulation file specifies a response calculation simulation file from which response RAOs<br />

are derived. The spectral fatigue calculation then proceeds by combining these response RAOs with a wave<br />

spectrum to produce power spectral density (PSD) functions.<br />

Spectral Form can be one of JONSWAP, ISSC, Ochi-Hubble or Torsethaugen. This specifies the general form of the<br />

wave spectrum.<br />

The parameters for the chosen spectral form are specified as follows:<br />

� If JONSWAP is selected then Spectral Parameters can be either Automatic, Partially Specified or Fully<br />

Specified. This determines exactly how the spectral parameters for each load case are specified. For example, if<br />

Automatic is selected then you specify Hs and Tz and the other JONSWAP parameters are calculated<br />

automatically and reported. For details see Data for JONSWAP and ISSC Spectra.<br />

� If ISSC is selected then you must specify Hs and Tz for each load case. You can also specify fm or Tp but since Tz,<br />

Tp and fm are tied together then setting any one of them changes the other two to match. For details see Data for<br />

JONSWAP and ISSC Spectra.<br />

� If Ochi-Hubble is selected then Spectral Parameters can be either Automatic, or Specified. Again, this<br />

determines exactly how the spectral parameters for each load case are specified. If you select Automatic the<br />

program calculates the parameters of the most probable spectrum, based on the overall significant wave height<br />

Hs that you have specified. If you select Specified you must specify all 6 parameters and <strong>OrcaFlex</strong> then derives<br />

and displays the corresponding overall Hs and Tz values. For details see Data for Ochi-Hubble Spectrum.


Fatigue Analysis, Load Cases Data for Spectral Analysis<br />

440<br />

w<br />

� If Torsethaugen is selected then you must specify Hs and Tp for each load case. You can also specify fm but since<br />

Tp and fm are tied together then setting either one changes the other to match. For details see Data for<br />

Torsethaugen Spectrum.<br />

Setting up load cases for Spectral Analysis<br />

When performing a spectral fatigue analysis you will typically have a wave scatter table describing the relative<br />

probability of storm occurrence. This determines a number of wave classes, e.g. storms defined by Hs,Tz pairs.<br />

The load cases data should be setup to match load cases with wave classes. For example, suppose that you were<br />

working with the following (truncated) wave scatter table:<br />

4-5 9 3<br />

3-4 6 18 6<br />

Hs 2-3 22 132 117<br />

1-2 3 57 201 249<br />

0-1 15 48 69 45<br />

4-5 5-6 6-7 7-8<br />

Tz<br />

The values in the table represent joint probabilities in parts per thousand, so that a value of 201 represents a<br />

probability of 0.201.<br />

This wave scatter table gives 16 wave classes and so the fatigue analysis data in <strong>OrcaFlex</strong> would be setup with 16<br />

corresponding load cases with appropriate Hs and Tz values.<br />

Simulation files for spectral fatigue analysis load cases<br />

The simulation files used to represent a load case for spectral fatigue analysis should model all aspects of the system<br />

and environment other than the wave spectrum. So you must specify vessel offset, current profile and direction,<br />

wave direction and so on which are appropriate for the load case being analysed.<br />

The wave type for the load case simulation file must be response calculation. This effectively calculates system<br />

responses (i.e. RAOs) for a range of wave frequencies. The spectral fatigue analysis then combines these RAOs with<br />

the load case wave spectra (i.e. the Hs,Tz pairs) to produce fatigue damage estimates for the load case.<br />

Choice of Hs for response calculation simulation files<br />

The Spectral Response Analysis method which is used to calculate system responses (RAOs) includes non-linear<br />

effects such as hydrodynamic drag. In order for these non-linear effects to be well modelled the choice of Hs for the<br />

response calculation simulation files is important. Essentially the RAOs can be considered as being dependent on<br />

wave height. How significant this dependence is will vary from case to case. Certain systems are dominated by linear<br />

physical effects and the RAOs may not in fact be dependent on wave height. To determine how significant this effect<br />

is we would recommend sensitivity studies.<br />

In the example above we might choose to run a response calculation simulation for each row of the wave scatter<br />

table (assuming that the system had significant non-linearities). This would give 5 simulation files for Hs ranges 0-1,<br />

1-2, 2-3, 3-4 and 4-5. There are 4 wave classes corresponding to the 0-1 Hs range. The load case corresponding to<br />

each of these wave classes would then be represented by the same simulation file. The other Hs ranges are dealt<br />

with similarly and so the load cases table would look as below:


w<br />

Figure: Example load cases table<br />

441<br />

Fatigue Analysis, Load Cases Data for SHEAR7<br />

If the non-linearities in the system are not so significant then you may be able to obtain accurate results with fewer<br />

simulation files. This may be desirable to reduce the amount of time taken to run the simulations. For example the<br />

Hs1, Hs2 and Hs3 simulations could be combined into a single Hs2 simulation etc. Again, the accuracy of such a<br />

simplification should be tested with sensitivity studies.<br />

Response calculation simulation duration<br />

The other decision to make is over the length of the response calculation simulations. You need to simulate for long<br />

enough to get accurate results. As for the issue of Hs discussed above we would recommend using sensitivity studies<br />

to determine how long is required.<br />

8.7 LOAD CASES DATA FOR SHEAR7<br />

Load Case File Name<br />

The name of the SHEAR7 .plt output file which represents the load case. You can either specify the full path or a<br />

relative path.<br />

Exposure Time<br />

The total time the system is exposed to this load case. The damage for the load case is calculated by multiplying the<br />

exposure time by the damage rate read from the load case .plt file.<br />

8.8 COMPONENTS DATA<br />

The Components Data page is only available when damage is calculated using stress factors or using externally<br />

calculated stress.


Fatigue Analysis, Analysis Data<br />

442<br />

w<br />

You define a number of components for which damage is to be calculated. Components can be used to represent<br />

different layers or components in the cross-section of an umbilical or a flexible.<br />

Component Name<br />

This is used to identify the component in the results.<br />

For externally calculated stress, this data has an extra use. It is passed to the external function that calculates stress<br />

in the ExternalResultText of the ObjectExtra structure. This allows you to pass parameters to the external<br />

function. The most important use is to pass the θ value to the external function. The convention is that, before the<br />

external function is called to derive a stress result, any occurrences of the text %theta% is replaced with the actual<br />

value of theta, in degrees. So suppose that the component name was specified to be theta=%theta%. The actual<br />

ExternalResultText strings passed to the external function would be of the form theta=0.0, theta=45.0 etc. Please<br />

refer to the External Function Examples for more details.<br />

Tension Variable (stress factors only)<br />

Specifies wall tension or effective tension is used to calculate stress.<br />

Tension and Curvature Stress Factors (stress factors only)<br />

The stresses used to calculate damage are calculated according to the formula:<br />

where<br />

S = KtT + Kc(Cxsin θ - Cycos θ)<br />

S is stress,<br />

Kt and Kc are the tension and curvature stress factors, respectively,<br />

T is either wall tension or effective tension, as specified by the tension variable data,<br />

Cx and Cy are the components of curvature in the line's local x and y directions, respectively, and<br />

θ is the circumferential location of the fatigue point.<br />

In effect this formula defines stress to be the sum of contributions due to direct tensile strain and bending strain.<br />

The circumferential variation (i.e. the terms which refer to θ) is to account for the fact that bending strain varies<br />

with θ. So, for a point in the plane of bending, stress is given by S = KtT ± Kc|C|, where C is the curvature vector (Cx,<br />

Cy). Similarly, for a point at 90° to the plane of bending, stress is given by S = KtT.<br />

The stress factors will typically be calculated from experimental data or from detailed analytic models of the<br />

umbilical or riser cross-section. Suppliers of such products are usually able to provide the necessary stress factors.<br />

Stress Result (externally calculated stress only)<br />

The name of the externally calculated result variable that provides the stress values.<br />

S-N Curve<br />

Specifies which S-N curve is used for damage calculations for this component.<br />

8.9 ANALYSIS DATA<br />

The Analysis Data page contains the following data items, which specify the parts of the line to be analysed.<br />

Critical Damage<br />

Is a warning level. If the total damage at any fatigue point exceeds the Critical Damage then that damage figure will<br />

be highlighted in the results.<br />

Number of Thetas<br />

The number of points (N) around the pipe circumference, at which fatigue analysis will be performed. There will be<br />

N fatigue points uniformly distributed at 360°/N intervals around the pipe circumference. A larger number of thetas<br />

gives a more comprehensive analysis, but takes a little longer.<br />

This data is not required, and hence not available, for mooring and SHEAR7 fatigue.<br />

Line Length (SHEAR7 fatigue only)<br />

Specifies the length of the line being consider by the SHEAR7 analysis. This data item is implemented solely to<br />

provide some convenience to results reporting. A value of '~' results in arc lengths being reported as non-


w<br />

443<br />

Fatigue Analysis, S-N and T-N Curves<br />

dimensional x/L values, the native form for SHEAR7. If a value is specified for the line length then the x/L values are<br />

re-dimensionalised using that specified value.<br />

Arc Length Intervals<br />

You define the parts of the line that are to be analysed by specifying a number of Arc Length Intervals in the form<br />

of From and To arc length values. <strong>OrcaFlex</strong> will analyse cross-sections at each line end and mid-segment whose arc<br />

length z is in the range From ≤ z ≤ To.<br />

For simple cases you can use just one arc length interval covering the whole line. However it is often clear which<br />

part, or parts, of the line are liable to fatigue problems. If calculation time is significant then you can save calculation<br />

time by analysing those parts of the line.<br />

Warning: The included arc lengths must be the same in each load case, so the line to be analysed should have<br />

the same number and distribution of segments in each of the load case simulations.<br />

The arc length intervals can be overlapping. For example, this would be desirable if you wished to calculate damage<br />

for both inner and outer fibres of a homogeneous pipe.<br />

Radial Position (homogeneous pipe stresses only)<br />

Specifies whether the fatigue analysis is performed at the inner or outer fibre of the pipe.<br />

SCF and Thickness Correction Factor (homogeneous pipe stresses only)<br />

When stress ranges are used with the S-N curve to calculate damage, the stress ranges are scaled by the Stress<br />

Concentration Factor (SCF) and the Thickness Correction Factor before calculating damage.<br />

If no stress correction is required then these factors should both be set to 1.<br />

Notes: To use different stress correction factors for different parts of the line, you will need to specify<br />

separate arc length intervals for those parts.<br />

S-N Curve (homogeneous pipe stresses only)<br />

Specifies which S-N curve is used for damage calculations in this arc length interval.<br />

T-N Curve (mooring fatigue only)<br />

Specifies which T-N curve is used for damage calculations in this arc length interval.<br />

8.10 S-N AND T-N CURVES<br />

S-N Curves<br />

An S-N curve defines the number of cycles to failure, N(S), when a material is repeatedly cycled through a given<br />

stress range S. <strong>OrcaFlex</strong> uses the S-N curve to calculate the damage in a fatigue analysis. If needed you can define a<br />

number of different S-N curves and use them at different arc lengths along a line.<br />

With each S-N curve you must also specify an associated stress endurance limit, FL, which is the stress range below<br />

which no damage occurs.<br />

The S-N curve itself can be specified either by parameters or by a table.<br />

When the curve is specified by parameters the user specifies two parameters, A and b, and the curve is then given<br />

by either of the following equivalent formulae:<br />

N = 10 A S -b<br />

Log10(N) = A - b Log10(S)<br />

When the curve is specified by a table the user gives a table of corresponding values of S and N. For other values of S<br />

we use log linear interpolation or extrapolation to find the value of N.<br />

Mean stress effects can be accounted for using Goodman, Soderberg or Gerber models.<br />

For details of how the S-N curve is used to calculate the damage see How Damage is Calculated.<br />

S-N Curve Units<br />

The S-N curve parameters entered must be consistent with the fatigue analysis units. S-N curve parameters are<br />

typically quoted with respect to stresses in MPa, but you might be doing the fatigue analysis using some other stress<br />

units. You can handle this problem as follows. First change the fatigue analysis units and set the units system to be


Fatigue Analysis, Integration Parameters<br />

444<br />

w<br />

'User', the length units to be 'mm' and the force units to be 'N'. This corresponds to stresses in MPa, so you can then<br />

enter the S-N parameters in terms of MPa. Finally, restore the units to those that you want for the fatigue analysis.<br />

The parameters will automatically be converted to allow for the change in units.<br />

T-N Curves<br />

For mooring fatigue damage is calculated with T-N curves. These define the number of cycles to failure, N(T), when a<br />

material is repeatedly cycled through a given effective tension range T.<br />

The T-N curve can be specified either by parameters or by a table.<br />

When the curve is specified by parameters the user specifies three parameters, m, k and the reference breaking<br />

strength (RBS). The curve is then given by the following formula:<br />

N = k(T/RBS) -m<br />

When the curve is specified by a table the user gives a table of corresponding values of T and N. For other values of<br />

T we use log linear interpolation or extrapolation to find the value of N.<br />

For details of how the T-N curve is used to calculate the damage see How Damage is Calculated.<br />

8.11 INTEGRATION PARAMETERS<br />

Integration parameters are only available when the spectral fatigue analysis option is selected. Normally you should<br />

not need to modify the parameters from their default values. However, if the spectral fatigue calculation has<br />

problems with convergence then it may prove productive to try different values for these parameters.<br />

We recommend that you contact <strong>Orcina</strong> for further details should you encounter problems with spectral fatigue<br />

convergence.<br />

8.12 RESULTS<br />

Fatigue results are presented in a separate window. Results are available in either graphical or tabular form.<br />

Graphical output<br />

The graphical output produces plots of fatigue damage or fatigue life against arc length – range graphs of fatigue.<br />

We denote a damage value at arc length z and circumferential position as D(z,θ). This could be overall total damage<br />

or the total exposure damage value for an individual load case. The damage graphs all plot D(z) = maxθ D(z,θ), that is<br />

the maximum damage value at a given arc length z.<br />

The life graphs plot the corresponding life values T/D(z) where T is the exposure time. For individual load cases T is<br />

the exposure time for the load case. For total life T is the total exposure time of all the load cases.<br />

Graphs are available for:<br />

� Total damage/life: the overall total damage/life.<br />

� Individual load case damage/life: the total exposure damage/life from the specified load case.<br />

� Worst cases: the total exposure damage value from the five most damaging load cases. By most damaging we<br />

mean the load cases with the largest values of maxz,θ D(z,θ), the maximum damage value over all z,θ.<br />

The graphs can be customised in a number of ways:<br />

� The arc length axis can be either horizontal or vertical, the latter option being more appropriate for vertical<br />

risers.<br />

� The arc length axis can be inverted. When it is inverted increasing values run from right to left (if it is<br />

horizontal) and top to bottom (if it is vertical). Again this is particularly useful for vertical risers with arc length<br />

values that increase from the top end to the bottom end.<br />

� Fatigue damage/life can optionally be plotted on a logarithmic scale.<br />

� Individual arc length intervals can be plotted.<br />

Tabular output<br />

The tabular output is presented in a spreadsheet that has one Damage Tables sheet, plus one Load Case sheet for<br />

each load case. There is also a sheet echoing the S-N curve data.


w<br />

Load Case sheets<br />

445<br />

Fatigue Analysis, Automation<br />

The Load Case sheets contain the derived stress results for each fatigue point that has been analysed, together with<br />

general information such as the environmental data that applied to that load case.<br />

There is one table of stress results for each arc length covered by the specified arc length intervals. Each such table<br />

contains a row of results for each fatigue point in that arc length cross-section. These results are the stress ranges<br />

(for each of the stress components), the maximum stress range and the resulting load case damage values.<br />

In addition to the detailed tables a damage summary table is presented which tabulates the load case damage at<br />

each fatigue point.<br />

For mooring fatigue, tension results rather than stress results are reported. For SHEAR7 fatigue, since the damage<br />

calculation has been performed by SHEAR7, only damage values are reported.<br />

Damage Table sheet<br />

The Damage Table sheet starts with an Excessive Damage table, which lists any fatigue points at which the overall<br />

total damage has exceeded the specified critical damage value. Details of where on the line the worst total damage<br />

occurred are also reported.<br />

A table summarising the overall damage over total exposure for all arc lengths is presented.<br />

Finally, the Damage Table sheet provides damage tables for each arc length cross-section analysed. These report, for<br />

each fatigue point in the cross-section, the total exposure damage value from each load case and the overall total<br />

damage.<br />

In all of these tables, overall total damage values that exceed the specified critical damage value are highlighted in<br />

red.<br />

Printing and Exporting<br />

To save the results you will need to export the spreadsheet as an Excel sheet. If you want to print the results then for<br />

best results you should first export them and then use Excel to do the printing.<br />

Customising results output<br />

The tabular results output can be customised using the options on the Results page of the main fatigue form.<br />

Output load case tables<br />

If this option is deselected then the load case sheets are omitted from the fatigue results. This can significantly<br />

reduce the time and memory required to generate the results tables.<br />

Output detailed load case tables<br />

If this option is deselected then the detailed tables on the load case sheets are omitted from the fatigue results. This<br />

can significantly reduce the time and memory required to generate the results tables.<br />

Load case damage units<br />

Load case damage values can be reported as damage per hour, damage per day or damage per year, as specified by<br />

this data item.<br />

8.13 AUTOMATION<br />

The fatigue analysis capabilities can be automated in a number of different ways.<br />

YAML text files<br />

The YAML format fatigue files can be used for automation in exactly the same manner as <strong>OrcaFlex</strong> data files. In<br />

particular the <strong>OrcaFlex</strong> Spreadsheet provides a simple, yet effective, facility for automating the production of text<br />

fatigue files.<br />

A typical text fatigue file would load a base file, and then make a small number of modifications. For example:<br />

# Type: Fatigue<br />

BaseFile: base.ftg<br />

RadialPosition[1]: Inner


Fatigue Analysis, Fatigue Points<br />

Batch script<br />

446<br />

w<br />

Note: The comment line in the above example is needed if you are going to batch process YAML text files.<br />

Without the comment line, the batch processing code assumes that the YAML file specifies an<br />

<strong>OrcaFlex</strong> model rather than a fatigue analysis.<br />

The batch script facility includes a number of commands for fatigue analysis automation. The available commands<br />

are: Select, Load, Save, Run and NewFatigue. Assignment using the Name = Value syntax is also supported.<br />

The following contrived example illustrates all these commands.<br />

NewFatigue<br />

DamageCalculation = "Homogeneous pipe stress"<br />

AnalysisType = Rainflow<br />

ArclengthIntervalsCount = 1<br />

FromArclength[1] = 0.0<br />

ToArclength[1] = 30.0<br />

SCF[0] = 1.5<br />

SNcurveCount = 2<br />

SNcurveName[2] = ProjectSteel<br />

Select SNcurve ProjectSteel<br />

SNDataEnduranceLimit = 0.0<br />

Save fatigue.ftg<br />

Load base.ftg<br />

RadialPosition[1] = Outer<br />

Run outer.ftg<br />

Load base.ftg<br />

RadialPosition[1] = Inner<br />

Run inner.ftg<br />

The <strong>OrcaFlex</strong> spreadsheet facility for automating script file generation can be used to generate batch script files for<br />

fatigue.<br />

<strong>OrcaFlex</strong> programming interface<br />

The C/C++, Delphi, Python and MATLAB programming interfaces to <strong>OrcaFlex</strong> all support automation of fatigue<br />

analysis. As with all other functionality, the Python and MATLAB interfaces are the easiest to use.<br />

8.14 FATIGUE POINTS<br />

Damage is calculated at a number of line end and mid-segment cross-sections along the line, as specified by defining<br />

Arc Length Intervals in the Analysis Data. Each included arc length defines a cross-section through the pipe.<br />

Damage calculated by homogeneous pipe stresses<br />

Each cross-section is described by polar coordinates (R, θ) where R is the radial distance from the centre-line and θ<br />

is measured from the line's local x-axis towards its y-axis.<br />

<strong>OrcaFlex</strong> calculates the damage at either the inner or outer fibre of the pipe and so R is either ODstress/2 or IDstress/2.<br />

For θ we calculate damage at equally spaced intervals determined by the specified Number of Thetas. For example, if<br />

you specify 16 theta values, then they will be equally spaced at 360°/16 = 22.5° intervals 0°, 22.5°, 45° etc.<br />

Damage calculated by stress factors<br />

For stress factor fatigue the radial position is implicit in the stress factors and so is not explicitly used in the<br />

calculation. Damage is calculated at circumferential locations determined by the specified Number of Thetas, as<br />

described above.<br />

Mooring fatigue damage<br />

For mooring fatigue there is no need to consider radial and circumferential variation and so there is one fatigue<br />

point for each arc length considered.<br />

8.15 HOW DAMAGE IS CALCULATED<br />

For each load case and fatigue point <strong>OrcaFlex</strong> calculates damage values as follows:


w<br />

447<br />

Fatigue Analysis, How Damage is Calculated<br />

� The time history of response, in that load case, at that fatigue point, is calculated. For homogeneous pipes the ZZ<br />

stress variable is used. For stress factor fatigue then the stress is calculated based on the stress factors. For<br />

mooring fatigue the response variable is effective tension.<br />

� The damage value corresponding to the response time history is calculated – see below for details. This value is<br />

the damage value at that fatigue point due to one occurrence of that load case.<br />

� The load case damage values are scaled to allow for the exposure associated with that load case.<br />

� The above step gives the total exposure damage value from that load case at this fatigue point.<br />

� Finally, these total exposure load case damage values are summed over all load cases to obtain the overall total<br />

damage value at that fatigue point.<br />

Damage Calculation using S-N curves<br />

The S-N curve defines the number of cycles to failure, N(S), for stress range S, and also defines a endurance limit, FL,<br />

below which no damage occurs. <strong>OrcaFlex</strong> uses these to calculate a damage value given by:<br />

D(S) = 1/N(S) if S > FL<br />

D(S) = 0 if S ≤ FL<br />

This damage value can be thought of as the proportion of the fatigue life that is used up by 1 cycle of stress range S.<br />

If the S-N curve is defined by parameters then for S > FL we have:<br />

Log10(N) = A - b Log10(S)<br />

so D(S) can be expressed in the following form:<br />

D(S) = 10 -A S b .<br />

Mean stress effects<br />

Mean stress effects are handled by modifying each stress range according to a formula dependent on the mean<br />

stress level. Three models of mean stress effects are provided: Goodman, Soderberg and Gerber. Each method is<br />

defined by a formula for Se, the equivalent stress, allowing for mean stress effects, to be used in the zero mean stress<br />

S-N curve.<br />

The Goodman model is:<br />

Se = Sr / (1 - Sm/SMTS) for 0 < Sm < SMTS<br />

Se = Sr for -SMTS < Sm ≤ 0<br />

where Sr is the true stress range, Sm is the mean stress and SMTS is the ultimate tensile strength as specified in the S-<br />

N data.<br />

The Soderberg model is:<br />

Se = Sr / (1 - Sm/SMYS) for 0 < Sm < SMYS<br />

Se = Sr for -SMYS < Sm ≤ 0<br />

where SMYS is the yield strength as specified in the S-N data.<br />

The Gerber model is:<br />

Se = Sr / (1 - [Sm/SMTS] 2 ) for -SMTS < Sm < SMTS<br />

The definition of mean stress, Sm, depends on the analysis method being used. For regular analysis, Sm is defined to<br />

be the mean of the min and max stress values associated with the stress range Sr. For rainflow analysis, Sm is the<br />

mean value of the local turning points in the stress time history. For spectral fatigue, Sm is the mean of the time<br />

history used to determine the stress RAOs.<br />

Regular analysis<br />

The minimum and maximum values of stress over the last simulated wave cycle define a stress range S. The<br />

associated single-occurrence load case damage value is then given by D(κS) where κ is the product of the stress<br />

concentration factor and the thickness correction factor. If mean stress effects are included then the equivalent<br />

stress range Se is used.


Fatigue Analysis, How Damage is Calculated<br />

Rainflow analysis<br />

448<br />

w<br />

The stress time history is analysed using the rainflow cycle counting method. This gives a number of stress ranges<br />

for half cycles, say Si where i runs from 1 to the number of stress ranges. The associated single-occurrence load case<br />

damage value is then given by ½∑D(κSi) where the summation is over all the half cycles. Note that the factor of one<br />

half is present because the rainflow algorithm counts half cycles rather than full-cycles. Again, if mean stress effects<br />

are included, then the equivalent stress range Se is used.<br />

Spectral analysis<br />

For spectral analysis damage is calculated in the frequency domain using statistical methods. The calculation<br />

requires a power spectral density function (PSD) for stress. The PSD is obtained from a response calculation<br />

simulation. This calculates RAOs for stress which is then combined with the load case wave spectrum to give the<br />

PSD for stress. These PSD are then used to calculate damage using either Dirlik's formula or the Rayleigh<br />

distribution. The stress concentration factor, thickness correction factor and mean stress effects are all accounted<br />

for in the spectral damage calculation.<br />

For detailed references on how spectral fatigue analysis calculates damage from stress PSDs please refer to:<br />

� Barltrop and Adams (1991) which has an excellent section on spectral fatigue analysis.<br />

� Dirlik (1985) is the original reference for Dirlik's stress range distribution formula.<br />

Damage Calculation using T-N curves<br />

T-N curves are handled in a similar way. A T-N curve defines the number of cycles to failure, N(T), for effective<br />

tension range T. There is no analog of endurance limit for T-N curves. Likewise there are no analogs of stress<br />

concentration factor and thickness correction factor.<br />

As for S-N curves, <strong>OrcaFlex</strong> defines damage as:<br />

D(T) = 1/N(T)<br />

The summation of damage is then performed in an identical manner to that performed for S-N curves.<br />

Damage Calculation for SHEAR7 fatigue<br />

SHEAR7 fatigue is rather different from the other fatigue methods because damage is calculated external to <strong>OrcaFlex</strong><br />

by SHEAR7. <strong>OrcaFlex</strong> merely provides a means to collate, sum and plot the damage from a number of different<br />

SHEAR7 load cases in a convenient manner.<br />

The SHEAR7 damage calculation is based on the damage rate output in the SHEAR7 .plt file. This value is multipled<br />

by the load case exposure time to produce the damage associated with that load case.


w<br />

9 VIV TOOLBOX<br />

449<br />

VIV Toolbox, Frequency Domain Models<br />

The <strong>OrcaFlex</strong> VIV Toolbox provides analysis of vortex induced vibration (VIV) of lines. It offers a choice of various<br />

alternative ways of modelling VIV, including both frequency and time domain approaches, and has been developed<br />

in co-operation with academics in the UK and USA. The VIV Toolbox is included as standard in <strong>OrcaFlex</strong>.<br />

A separate user guide for the time domain VIV models is available (Time Domain VIV Models.pdf).<br />

Different VIV Models<br />

The VIV Toolbox provides facilities for using the following different VIV models:<br />

� VIVA. The VIV Toolbox provides a fully integrated link to VIVA. <strong>OrcaFlex</strong> automatically prepares the VIVA data<br />

from the <strong>OrcaFlex</strong> data, calls VIVA and presents the results. To use this you will need a copy of VIVA, release<br />

2.0.6 or later.<br />

� SHEAR7. The VIV Toolbox provides facilities for exporting SHEAR7 structural data files and SHEAR7 .mds files<br />

based on an <strong>OrcaFlex</strong> model. SHEAR7 can then be run manually using these files as input, or called directly from<br />

<strong>OrcaFlex</strong>.<br />

� Two wake oscillator models, the Milan model and the Iwan and Blevins model.<br />

� Two vortex tracking models.<br />

Of all these models, VIVA and SHEAR7 are the two main programs in current use in the industry. They are both<br />

independent non-<strong>Orcina</strong> programs written and distributed by other companies, so to use them you need to<br />

purchase and install them on your machine. They are both frequency domain models, so they only analyse steady<br />

state conditions.<br />

The other models are included in the VIV Toolbox within <strong>OrcaFlex</strong>, so no further software is needed. They are all<br />

time-domain models, so they can analyse non-steady-state conditions. They do not yet have a track record in the<br />

industry.<br />

Using VIV Models<br />

You choose which VIV model to use (if any) on the VIV page on the line data form. There are separate choices for the<br />

static and dynamic analyses and so you do not have to use the same model for the two analyses. The time-domain<br />

models are only applicable to the dynamic analysis.<br />

9.1 FREQUENCY DOMAIN MODELS<br />

9.1.1 VIVA<br />

VIVA is an independent frequency domain program developed by Prof. M Triantafyllou at MIT and distributed by JD<br />

Marine (formerly DTCEL).<br />

<strong>Orcina</strong> was a participating member of a Joint Industry Project, started in 2000 and run by DTCEL and Prof.<br />

Triantafyllou of MIT. As part of the project, a software link has been written between <strong>OrcaFlex</strong> and VIVA. The<br />

software link allows a riser model to be built in <strong>OrcaFlex</strong> taking advantage of the existing interactive user interface.<br />

<strong>OrcaFlex</strong> then calls VIVA which carries out a frequency domain calculation of VIV response based on an energy<br />

balance. Results are reported in spreadsheet form for each single excited mode of vibration. A combined multi-mode<br />

response is also reported. Results include amplitudes of vibration and mean effective drag coefficients. The drag<br />

coefficients can be used by <strong>OrcaFlex</strong> to carry out a coupled steady-state VIV analysis.<br />

<strong>OrcaFlex</strong> VIVA Interface<br />

The <strong>OrcaFlex</strong> interface to VIVA requires VIVA to be installed on your machine and available in the form of a dynamic<br />

link library (DLL) called v3ddll.dll. This DLL file, and the VIVA database files that it uses, must be located in the same<br />

directory as the <strong>OrcaFlex</strong>.exe program file. The current version of <strong>OrcaFlex</strong> is compatible, and has been tested with,<br />

the VIVA DLL version 2.0.6. Later versions of the DLL can be used – <strong>OrcaFlex</strong> checks for interface compatibility<br />

before calling the DLL, and reports an error if the DLL found is not compatible.<br />

To use VIVA for VIV analysis of a line, set the line's Statics VIV data item to VIVA. Then set up the VIVA data that<br />

appears.<br />

VIVA will then be called when you perform the <strong>OrcaFlex</strong> static analysis, and the drag coefficients predicted by VIVA<br />

(for the specified Target Mode) will be used instead of the user-specified drag coefficients from the line type form.<br />

These VIVA drag coefficients, and other results calculated by VIVA, are available in <strong>OrcaFlex</strong> – see VIVA Results.


VIV Toolbox, Frequency Domain Models<br />

Calculation procedure<br />

450<br />

w<br />

When Statics VIV is set to VIVA, <strong>OrcaFlex</strong> calculates the static position of the line using the drag coefficients<br />

calculated by VIVA. A fully coupled statics calculation is performed since VIVA's analysis depends on the position of<br />

the line and vice versa. The coupled static analysis is done as follows:<br />

1. First <strong>OrcaFlex</strong> sets the line's drag coefficients to those specified on the <strong>OrcaFlex</strong> line type form.<br />

2. <strong>OrcaFlex</strong> then calculates the static position of the line using those drag coefficients.<br />

3. <strong>OrcaFlex</strong> then calls VIVA to analyse VIV for that position and the line drag coefficients are updated to those<br />

calculated by VIVA for the specified Target Mode.<br />

4. <strong>OrcaFlex</strong> then recalculates the static position of the line for those new drag coefficients.<br />

5. Steps 3 and 4 are then repeated until the static position has converged.<br />

The iteration is deemed to have converged when none of the nodes has changed position (compared with the<br />

previous iteration) by more than Convergence Tolerance * NodeLength, where NodeLength is the length of line<br />

represented by that node. The method usually requires only 2 or 3 coupling iterations to converge.<br />

Limitations<br />

When using the <strong>OrcaFlex</strong> interface to VIVA please note the following limitations:<br />

� The VIVA analysis involves a modal analysis of the line. Currently this modal analysis is done by VIVA but this<br />

has limitations – see VIVA modal analysis limitations.<br />

� There are difficulties in passing to VIVA details of attachments to the line (e.g. clumps, buoys, links, winches), so<br />

attachment are ignored by the VIVA analysis.<br />

� The VIVA DLL is not currently capable of handling multiple simultaneous use, so you should not use the VIVA<br />

interface from more than one copy of <strong>OrcaFlex</strong> at a time running on a single machine.<br />

VIVA Data<br />

The VIVA data is the data that VIVA needs and which <strong>OrcaFlex</strong> cannot deduce automatically from the ordinary<br />

<strong>OrcaFlex</strong> data. It is described below and appears on the VIV page on the line data form when you select VIVA for<br />

Statics VIV.<br />

When using VIVA please note the following:<br />

� You should set up the line with End A at the top and End B at the bottom.<br />

� All the sections in the line must have the same segment length. This is a requirement of VIVA.<br />

� If the line touches down on the seabed then <strong>OrcaFlex</strong> passes only the suspended part of the line to VIVA for<br />

analysis. The rest of the line is not passed to VIVA. By 'suspended part' here is meant the part between End A<br />

and the first node in contact with the seabed. Note that if there are multiple touchdowns then the VIVA analysis<br />

is only applied to the part of the line up to the first touchdown point.<br />

� Likewise, if the line uses a P-y model, only the parts of the line that do not have attached P-y springs are passed<br />

to VIVA for analysis.<br />

� When there is seabed contact <strong>OrcaFlex</strong> tells VIVA to treat the touchdown point as pinned. This is as in the<br />

touchdown example in the VIVA documentation.<br />

� You need to use enough segments in the suspended part of the line. There is a lower limit in VIVA of 100<br />

segments, and if the line has fewer than this then VIVA reports an error and no VIV calculation is done. If the<br />

line has 100 or more segments then VIVA checks whether there are enough segments to reasonably model VIV;<br />

and if not then VIVA gives a warning but the calculation continues. For details see the VIVA documentation.<br />

� When modelling Vetco type risers (i.e. with auxiliary pipes attached), you need to set the <strong>OrcaFlex</strong> line end<br />

orientation to match the orientation of the auxiliary pipes. For details see Modelling Vetco Risers.<br />

� <strong>OrcaFlex</strong> passes VIVA the fluid density and viscosity at each node. For fully submerged nodes <strong>OrcaFlex</strong> passes<br />

the sea density and kinematic viscosity at that point. For a node out of the water <strong>OrcaFlex</strong> passes the air density<br />

specified in the <strong>OrcaFlex</strong> data and a hard-coded viscosity value of 1.5e-5 m 2 /s (Source: Batchelor, page 594, air<br />

at 20°C). For a partially submerged node <strong>OrcaFlex</strong> interpolates between the two, based on the node's<br />

Proportion Wet.


w<br />

Whole Line Properties<br />

Target Mode<br />

451<br />

VIV Toolbox, Frequency Domain Models<br />

VIVA predicts which modes of oscillation might be excited and it gives separate VIV results for each possible excited<br />

mode. In addition it gives VIV results for 'multi-mode' response, i.e. response that is a mixture of the possible modes.<br />

You must specify which set of VIVA Cd results to use, based on the type of response you expect, by setting the Target<br />

Mode data item. The Target Mode can be set to a mode number, meaning use the single mode results for that mode<br />

number. Or it can be set to '~', meaning use the multi-mode results.<br />

If you set the Target Mode to a mode number that VIVA does not predict will be excited then <strong>OrcaFlex</strong> will report a<br />

warning and use the line type Cd values.<br />

Convergence Tolerance<br />

This data item only applies when Statics VIV is set to VIVA. It specifies the tolerance used in the statics iteration. For<br />

details see VIVA in Static Analysis.<br />

Transverse Damping Ratio<br />

The structural damping ratio that VIVA should use. It is a single value that applies to the whole line. For details see<br />

the VIVA documentation, where it is referred to as ZETA.<br />

VIVA Z Axis Direction<br />

This data item specifies the direction of the VIVA global Z-axis.<br />

VIVA uses its own global, right-handed frame of reference, in which the X-axis is vertically upwards (i.e. in the<br />

<strong>OrcaFlex</strong> global Z-axis direction) and the Y and Z axes are horizontal.<br />

VIVA recommends that the VIVA Z-axis is chosen to be in the downstream flow direction, if that is well-defined. For<br />

constant uniform flow there is a unique flow direction, so it is well-defined. If the flow direction varies along the line<br />

then there is no unique flow direction. In this case it is probably best to set the VIVA Z-axis to be in the average flow<br />

direction.<br />

A value of '~' is interpreted to mean the current direction at the sea surface.<br />

Use Relative Fluid Velocity<br />

VIVA needs to know the flow velocity at each point along the line. You can choose either to use the relative velocity,<br />

including the velocity of the line, or else use only the fluid velocity, ignoring any velocity of the line. Since VIVA is<br />

only called from the <strong>OrcaFlex</strong> static analysis, this data item only has any effect if the model starting velocity is nonzero.<br />

We recommend that the relative velocity should be used, since it is the total relative velocity that generates<br />

vortices.<br />

Section-Specific Properties<br />

For each section of the line, you must specify the VIVA section type and its properties. The <strong>OrcaFlex</strong> line type and<br />

length of the sections are displayed for information, but they are not editable (to edit them see the Structure page on<br />

the <strong>OrcaFlex</strong> line data form).<br />

VIV Diameter<br />

The VIV diameter specifies the diameter used by the VIV model. Separate values can be specified for each section.<br />

The value specified is used for all nodes in that section. For a node at the intersection of two sections the VIV<br />

diameter of the following section is used. The VIV Diameter can be set to '~', which is taken to mean 'same as the<br />

section normal drag diameter'.<br />

Section Type<br />

The VIVA section type can be one of:<br />

� Smooth: No further VIVA section data is needed.<br />

� Strake: You must also specify the height to diameter ratio for the strakes.<br />

� Fairing: You must also specify the chord length and thickness of the fairing.<br />

� Vetco: No further VIVA section data is needed, but the line orientation must match the orientation of the Vetco<br />

riser. See Modelling Vetco Risers below.


VIV Toolbox, Frequency Domain Models<br />

For details of this VIVA data see the VIVA documentation.<br />

Modelling Vetco Risers<br />

452<br />

w<br />

Vetco risers have auxiliary pipes attached and VIVA needs to know the direction of the flow, relative to the<br />

orientation of the auxiliary pipes. The diagram below shows a section through the line, looking towards End B. VIVA<br />

needs to know the angle Alpha.<br />

<strong>OrcaFlex</strong> calculates this angle automatically by assuming that the auxiliary pipes are oriented, relative to the<br />

<strong>OrcaFlex</strong> local x and y-direction, as shown in the diagram. You must therefore set up the line end orientation data so<br />

that the line's local x and y-directions are oriented as shown. In other words you should set up the line end<br />

orientation data so that the line local x-axis points through the larger of the two gaps between auxiliary pipes.<br />

VIVA Results<br />

y<br />

Alpha<br />

x<br />

Flow<br />

Direction<br />

The VIVA results are presented in <strong>OrcaFlex</strong> as extra worksheets in the Full Results tables. The worksheets give the<br />

results from the latest VIVA call.<br />

There is a separate worksheet for each excited mode, plus an extra worksheet for the multi-mode response. The<br />

drag coefficients currently in use are those corresponding to the specified Target Mode.<br />

The VIVA results are described briefly below. For details see the VIVA documentation.<br />

Note: Amplitudes in VIVA results are single amplitudes, i.e. measured from the mean position to the peak.<br />

Single Mode Results<br />

The worksheet for a given single excited mode gives a table of Single Mode results as a function of arc length along<br />

the line. These are results predicted by VIVA if single-mode VIV response occurs in that mode. They include:<br />

Max Amplitude<br />

The amplitude of predicted VIV motion at that point.<br />

Max Bend Moment, Max Stress<br />

The dynamic bend moment and stress amplitudes due to VIV. Note that they do not include the bend moment and<br />

stress due to the mean position of the line.<br />

Drag Coefficient<br />

The predicted drag coefficient, allowing for VIV.<br />

Multi-Mode Results<br />

The Multi-Mode worksheet gives two tables. The second table is the multi-mode equivalent of the single mode<br />

results table; it gives the same information, but this time for the case where multi-mode VIV response occurs.


w<br />

The first table summarises the bending modes. It has the following columns:<br />

Mode<br />

453<br />

VIV Toolbox, Frequency Domain Models<br />

This column shows which modes have been analysed. Those that VIVA calculates as possibly being excited are<br />

marked with an asterisk.<br />

Natural Mode Frequency With and Without VIV<br />

These columns give the natural frequencies of the mode, as calculated by VIVA. Those Without VIV are calculated<br />

using VIVA's own default added mass coefficients (not those specified in the <strong>OrcaFlex</strong> line type data). Whereas in<br />

those With VIV the VIVA default added mass coefficients have been modified to allow for VIV.<br />

Warning: VIVA's modal analysis calculates bending modes only and does not allow for the mean curvature.<br />

This omission is equivalent to VIVA calculating the out-of-plane modes, since there is no mean<br />

curvature component in the out-of-plane direction. The natural frequencies in the VIVA results<br />

therefore correspond to the out-of-plane bending modes predicted by the <strong>OrcaFlex</strong> modal analysis.<br />

These are correct modes to use for in-plane flow (since VIV will then be in the out of plane<br />

direction), but they are not the right modes to use for out-of-plane flow, since the VIV will then be<br />

in-plane. The difference between the in-plane and out-of-plane bending modes depends on the<br />

magnitude of the curvature and the wave length of the mode.<br />

Max Amplitude<br />

The largest offset of any node in this mode.<br />

9.1.2 SHEAR7<br />

SHEAR7 is an independent program, developed by Prof. K Vandiver at MIT and distributed by AMOG. The link to<br />

SHEAR7 is based around <strong>OrcaFlex</strong>'s ability to export SHEAR7 data files (.dat) and SHEAR7 mode shape files (.mds).<br />

Note: SHEAR7 must be licensed separately to <strong>OrcaFlex</strong>. Please contact AMOG for details.<br />

When exporting a SHEAR7 data file the program assumes that you will also be using a mode shape file produced by<br />

<strong>OrcaFlex</strong>. The procedure for linking SHEAR7 to your <strong>OrcaFlex</strong> model is as follows:<br />

1. Build your <strong>OrcaFlex</strong> model as normal. SHEAR7 analyses VIV for one or more of your <strong>OrcaFlex</strong> Lines.<br />

2. Input the appropriate values on the SHEAR7 data form.<br />

3. Calculate the static position of the model.<br />

4. Export a SHEAR7 data file and a SHEAR7 Mds file.<br />

5. These files can now be used as inputs to SHEAR7.<br />

Direct SHEAR7 interface<br />

As an alternative to exporting files and running SHEAR7 manually, as described above, <strong>OrcaFlex</strong> is capable of calling<br />

SHEAR7 directly. This capability is enabled by selecting the SHEAR7 statics VIV option on the VIV page of the Line<br />

data form.<br />

SHEAR7 executable file location, SHEAR7 lift file location<br />

The direct SHEAR7 interface operates by executing the SHEAR7 executable file. In order to do this <strong>OrcaFlex</strong> must be<br />

told where to locate the executable file. This data is specified on the SHEAR7 data form and is only available when<br />

SHEAR7 is selected for the statics VIV option on the VIV page of the Line data form.<br />

In addition SHEAR7 requires a file to specify lift coefficients, usually called "common.cl". Typically the lift file will be<br />

the standard one supplied with SHEAR7. If the lift file location is left blank <strong>OrcaFlex</strong> attempts to use a file called<br />

"common.cl" in the same directory as the executable file.<br />

These file locations can be specified as either full paths or as paths relative to the directory containing the <strong>OrcaFlex</strong><br />

file.<br />

These data are model-wide properties. A consequence of this is that if you wish to modify the values using batch<br />

script then you need to select the General object rather than a Line object.


VIV Toolbox, Frequency Domain Models<br />

SHEAR7 coupling method<br />

454<br />

w<br />

The SHEAR7 direct interface performs a coupled statics calculation since the SHEAR7 analysis depends on the<br />

position of the line and vice versa. The coupled static analysis is done as follows:<br />

1. First <strong>OrcaFlex</strong> sets the line's drag coefficients to those specified on the <strong>OrcaFlex</strong> line type form.<br />

2. <strong>OrcaFlex</strong> then calculates the static position of the line using those drag coefficients.<br />

3. <strong>OrcaFlex</strong> then calls SHEAR7 to analyse VIV for that position and the line drag coefficients are updated.<br />

4. <strong>OrcaFlex</strong> then recalculates the static position of the line for those new drag coefficients.<br />

5. Steps 3 and 4 are then repeated until the static position has converged.<br />

The iteration is deemed to have converged when none of the nodes has changed position (compared with the<br />

previous iteration) by more than Convergence Tolerance * NodeLength, where NodeLength is the length of line<br />

represented by that node. The method usually requires only 2 or 3 coupling iterations to converge.<br />

The direct SHEAR7 interface offers a variety of coupling options which differ in how they handle the SHEAR7 .mds<br />

file.<br />

� The full coupling option generates a new .mds file at each coupling iteration, that is every time SHEAR7 is<br />

called.<br />

� The partial, automatic .mds file coupling option creates an .mds file on the first coupling iteration which is<br />

then used in all subsequent coupling iterations.<br />

� The partial, user .mds file coupling option uses an .mds file specified on the data form for all coupling<br />

iterations.<br />

The fully coupled approach does have the disadvantage that generating an .mds file at each coupling iteration can be<br />

time consuming, especially for more complex models, and so the partially coupled approach can be significantly<br />

faster.<br />

The partially coupled approaches are more akin to running SHEAR7 manually. However, the ultimate static solution<br />

will differ because it does include the effect of drag enhancement. When running SHEAR7 manually the only way to<br />

account for drag enhancement is to manually modify drag coefficients in the <strong>OrcaFlex</strong> model which is extremely<br />

impractical.<br />

First and last modes<br />

These data items specify which modes are to be included in the .mds file. These data are not required if you select the<br />

partial, user .mds file coupling option.<br />

A value of '~' for the first mode is interpreted as the lowest numbered transverse mode. A value of '~' for the last<br />

mode is interpreted as the highest numbered transverse mode. By transverse we mean that the modal analysis<br />

classifies the mode as either Transverse or Mostly Transverse.<br />

These data items are interpreted in exactly the same way as the FirstMode and LastMode parameters to the<br />

SHEAR7MdsFile batch script command.<br />

SHEAR7 .mds file<br />

The location of the .mds file to be passed to SHEAR7. This data is only required if you select the partial, user .mds<br />

file coupling option.<br />

The location can be specified as either a full path or as a path relative to the directory containing the <strong>OrcaFlex</strong> file.<br />

The .mds file must be generated separately which is normally done either form the modal analysis form or using<br />

batch script.<br />

Although SHEAR7 requires .mds files to be named "common.mds" that restriction does not apply to <strong>OrcaFlex</strong>'s direct<br />

interface to SHEAR7. This is a significant benefit of the direct interface to SHEAR7 because it allows you to have<br />

multiple .mds files in the same directory.<br />

Results output<br />

When <strong>OrcaFlex</strong> calls SHEAR7 it captures output files and includes them in the Full Results tables for the Line. These<br />

output files can also be exported from the SHEAR7 data form and by using the SHEAR7OutputFile batch script<br />

command.


w<br />

455<br />

VIV Toolbox, Frequency Domain Models<br />

The output files are automatically exported if you run the static analysis in batch mode. The files are exported with<br />

file names based on the model file name and the line name.<br />

The enhanced drag coefficients can be obtained from a static state range graph of x-Drag Coefficient (or indeed y-<br />

Drag Coefficient which is identical).<br />

Technical details<br />

The direct SHEAR7 interface operates by calling the SHEAR7 executable directly as follows:<br />

1. A temporary directory is created to contain the SHEAR7 input and output files.<br />

2. A SHEAR7 .dat file is generated in the temporary directory.<br />

3. The SHEAR7 .mds file is created in the temporary directory and called "Common.mds". How this .mds file is<br />

created is determined by the chosen coupling option as described above.<br />

4. The specified lift file is copied to the temporary directory and renamed as "Common.cl".<br />

5. The SHEAR7 executable is run and the SHEAR7 .out and .plt files are read by <strong>OrcaFlex</strong>.<br />

6. The .plt file is parsed by <strong>OrcaFlex</strong> to find the drag enhancements factors Cf.<br />

This process depends very heavily on the current implementation details of SHEAR7. We have developed and tested<br />

the SHEAR7 direct interface with SHEAR7 versions 4.4, 4.5 and 4.6. We cannot guarantee that other versions of<br />

SHEAR7 will be compatible with the SHEAR7 direct interface.<br />

<strong>OrcaFlex</strong> uses linear interpolation of the Cf values if the locations read from the .plt file do not correspond to the<br />

node locations in the <strong>OrcaFlex</strong> model. This can occur if the discretisation of a user-supplied .mds file differs from<br />

that of the <strong>OrcaFlex</strong> model.<br />

SHEAR7 data file<br />

To export a SHEAR7 data files you must first provide extra data that SHEAR7 requires but which is not needed by<br />

<strong>OrcaFlex</strong>. This is done from the SHEAR7 data form which can be opened from the Model Browser. Note that your<br />

model must include at least one Line for the SHEAR7 data form to be available.<br />

When you have input all the necessary data on the SHEAR7 data form you create the SHEAR7 data file by clicking on<br />

the Export SHEAR7 Data File button. The model must be in Statics Complete state when you export the SHEAR7<br />

data file but please note that data on the SHEAR7 data form is editable while in this state.<br />

A more convenient way to work is to use the direct SHEAR7 interface which can automatically save the required<br />

SHEAR7 input files, run SHEAR7, extract drag amplification factors and perform a coupled static analysis.<br />

Include SHEAR7 data in text data file<br />

By default the SHEAR7 data is not included in text data files saved by <strong>OrcaFlex</strong>. You can check this option to override<br />

that default and ensure that SHEAR7 data is included in text data files.<br />

If you are using the direct SHEAR7 interface then the SHEAR7 data is always included in text data files irrespective<br />

of this setting.<br />

Exporting from Batch Script<br />

The SHEAR7 data file can be exported from an <strong>OrcaFlex</strong> batch script using the SHEAR7DataFile command.<br />

SHEAR7 data<br />

The majority of the information in a SHEAR7 data file can be derived from the data for an <strong>OrcaFlex</strong> Line. However,<br />

there are a number of other values which SHEAR7 needs and these are documented below. Mostly these values are<br />

given the same name as used by SHEAR7. For full details on how they are used please refer to the SHEAR7<br />

documentation.<br />

SHEAR7 File Version<br />

Different versions of SHEAR7 use slightly different data file formats. <strong>OrcaFlex</strong> can output data files for version<br />

4.3/4.4, version 4.5 or version 4.6, as specified by this data.<br />

This data is a model-wide property. A consequence of this is that if you wish to modify the value using batch script<br />

then you need to select the General object rather than a Line object.


VIV Toolbox, Frequency Domain Models<br />

Output options (SHEAR7 version 4.5 and later)<br />

The options control whether or not SHEAR7 is instructed to output .anm, .dmg and .fat files.<br />

Out file selection (SHEAR7 version 4.6 and later)<br />

Specifies which out files (.out, .out1, .out2) are generated.<br />

Line<br />

Specifies the <strong>OrcaFlex</strong> Line to be described in the SHEAR7 data file.<br />

Output summary Locations<br />

456<br />

w<br />

These data specify the locations at which a summary of the response is given in the SHEAR7 .out file. A value of '~'<br />

can be used for the Arc Length Range Start to mean 'End A'. Likewise, a value of '~' for Arc Length Range End<br />

means 'End B'.<br />

Reduced Velocity Bandwidths<br />

For SHEAR7 version 4.3/4.4 you specify the single-mode and multi-mode reduced velocity bandwidth.<br />

For SHEAR7 version 4.5 you specify just a single value for reduced velocity bandwidth.<br />

For SHEAR7 version 4.6 you specify a value for reduced velocity bandwidth for each section.<br />

Structural Damping Ratio<br />

Corresponds to the SHEAR7 data item of the same name.<br />

Power Ratio Cutoff Level<br />

Corresponds to the SHEAR7 data item of the same name. In SHEAR7 version 4.4 and earlier this data item was<br />

named cutoff level.<br />

Primary zone amplitude limit (SHEAR7 version 4.5 and later)<br />

Corresponds to the SHEAR7 data item of the same name.<br />

Number of Lift Coefficient Tables (SHEAR7 version 4.3/4.4 only)<br />

This is the number of tables you want SHEAR7 to read from the common.cl file.<br />

Current Profile<br />

The discretisation option allows you to control how the current profile is output. You can specify that the current<br />

profile contains one entry for each node in the line. However this can give rise to numerical problems in SHEAR7,<br />

especially for finely segmented models, and so it is preferable to discretise the current more coarsely using the<br />

regular spacing option.<br />

You also specify the probability of occurrence (a number between 0 and 1) of the flow profile and the flow profile ID.<br />

The current speed is exported as zero for any part of the line which uses a P-y model. This allows for hydrodynamic<br />

damping, using the still water coefficient, but excludes any excitation due to current.<br />

Young's Modulus<br />

Young's modulus for the strength member. SHEAR7 uses this for computing stress and damage rate.<br />

For SHEAR7 version 4.6 you specify this value per section. For earlier SHEAR7 versions you specify a single global<br />

value.<br />

Power Ratio exponent (SHEAR7 version 4.5 and later)<br />

Corresponds to the SHEAR7 data item of the same name.<br />

S-N Curves<br />

Specifies the S-N curves to be used by SHEAR7 for its fatigue calculations. An endurance limit can be specified – this<br />

is called the "cutoff stress range" in the SHEAR7 documentation.<br />

For SHEAR7 version 4.6 you can define multiple S-N curves each with an endurance limit and then select which one<br />

to use on a section by section basis. For earlier SHEAR7 versions you specify a single S-N Curve and endurance limit<br />

which apply to the entire line.


w<br />

Stress Concentration Factors<br />

457<br />

VIV Toolbox, Frequency Domain Models<br />

Specify a global stress concentration factor for the line and optionally a number of local stress concentration factors.<br />

VIV Diameter<br />

The VIV diameter specifies the diameter used by the VIV model. Separate values can be specified for each section.<br />

The value specified is used for all nodes in that section. For a node at the intersection of two sections the VIV<br />

diameter of the following section is used. The VIV Diameter can be set to '~', which is taken to mean 'same as the<br />

section normal drag diameter'.<br />

Strouhal Type, Strouhal Number<br />

The Strouhal type and number defines the relationship of flow velocity and cylinder diameter to the local vortex<br />

shedding frequency. Strouhal Type can be Rough Cylinder or User Specified. Rough Cylinder corresponds to the<br />

SHEAR7 Strouhal code 200. If User Specified is chosen then you must also specify a Strouhal Number.<br />

Lift Coefficient Table, Lift Coefficient Factor<br />

Lift Coefficient Table specifies which table is used from the common.cl file.<br />

Lift Coefficient Factor corresponds to the SHEAR7 data item called Lift Coefficient Reduction Factor.<br />

Reduced Velocity Damping Coefficients<br />

Damping Coefficients for still water, low and high reduced velocity are specified.<br />

SHEAR7 structural zones<br />

When <strong>OrcaFlex</strong> generates the SHEAR7 data file it assumes a one-to-one mapping between <strong>OrcaFlex</strong> sections and<br />

SHEAR7 structural zones. This has some implications for how you create your <strong>OrcaFlex</strong> model. Essentially,<br />

anywhere on your line where you need SHEAR7 structural zone data to change you must ensure that there is an<br />

<strong>OrcaFlex</strong> section boundary.<br />

SHEAR7 structural zone data comprises the following:<br />

� Hydrodynamic and strength diameters.<br />

� Added mass coefficient, lift coefficient and Strouhal number.<br />

� Area moment of inertia, mass per unit length and tension variation.<br />

� Hydrodynamic damping coefficients.<br />

Since most of these properties are constant within an <strong>OrcaFlex</strong> section you will naturally introduce section<br />

boundaries at the locations where they change. However, there are a few exceptions.<br />

Lift coefficient, Strouhal number and hydrodynamic damping coefficients are SHEAR7 specific data which are<br />

specified in <strong>OrcaFlex</strong> on the Section Data page of the SHEAR7 data form. You may need to introduce <strong>OrcaFlex</strong> section<br />

boundaries which coincide with the locations where these properties change.<br />

Area moment of inertia and tension variation are used by SHEAR7 to calculate modal frequencies. Typically these<br />

parameters would not be used since <strong>OrcaFlex</strong> produces a modes file which is more accurate than the internal<br />

SHEAR7 modal calculations.<br />

The mass per unit length is also used by SHEAR7 to calculate modal frequencies and again this aspect of the SHEAR7<br />

calculation would be bypassed when using a modes file produced by <strong>OrcaFlex</strong>. However, the mass per unit length is<br />

used by SHEAR7 to compute damping ratio. For almost all situations in <strong>OrcaFlex</strong> the mass per unit length is constant<br />

along a section.<br />

One exception to this is a free-flooding line with sections that cross the water surface. Because SHEAR7 has a single<br />

mass parameter for a structural zone this means that the mass is effectively smeared across the zone. A freeflooding<br />

line has greater mass below the water surface because it is full of water. Quite often this issue is of little<br />

significance but if you wish you can also change your <strong>OrcaFlex</strong> model to arrange that there is a section boundary at<br />

the water surface. Similar issues arise when the slug flow contents method is specified.<br />

The other modelling choice in <strong>OrcaFlex</strong> that leads to properties varying along the length of a section is when profiled<br />

line types (e.g. stress joints) are used. Although it may be tempting to use many structural zones to represent the<br />

variation of properties the SHEAR7 manual strongly recommends not doing so. Accordingly <strong>OrcaFlex</strong> outputs a<br />

single structural zone for a profiled line type section which has the effect of smearing properties and we believe that<br />

this is the correct approach to take in the vast majority of cases.


VIV Toolbox, Frequency Domain Models<br />

SHEAR7 Mds file<br />

The SHEAR7 Mds file export facility is provided on the Modal Analysis form. To use it:<br />

458<br />

w<br />

� You will need to create a SHEAR7 data file. The simplest way to do this is to use the built-in facility to export<br />

SHEAR7 data files.<br />

� Calculate the static position of the model.<br />

� On the Results menu select the Modal Analysis.<br />

� Do the modal analysis for the line you want to analyse. You must include calculation of the mode shapes and<br />

include all modes that might to be needed by SHEAR7.<br />

� Select the VIV page. For each mode, the VIV page reports the extent to which the mode is transverse (i.e. in the<br />

VIV direction), inline (i.e. in the normal drag direction), axial, or some mixture. This helps you decide which<br />

modes to export to SHEAR7. See Mode Selection Table below for details.<br />

� The final column of the table shows which modes are currently selected to be exported to the .Mds file.<br />

Whenever you calculate the modes <strong>OrcaFlex</strong> ticks just the Transverse and Mostly Transverse modes, but you<br />

can then change the selection as required.<br />

� Use the Export SHEAR7 Mds File button. A SHEAR7 .Mds file is generated for those modes that are currently<br />

ticked for export. You are asked where to save the file. See Values Exported for details.<br />

Warning: <strong>OrcaFlex</strong> does not calculate the mode slope; in its place <strong>OrcaFlex</strong> outputs zero. See Values Exported<br />

for details.<br />

Exporting from Batch Script<br />

The SHEAR7 Mds file can be exported from an <strong>OrcaFlex</strong> batch script using the SHEAR7MdsFile command.<br />

Mode Selection Table<br />

VIV excitation occurs in the transverse direction. In SHEAR7 mode shapes are 1D since it assumes that all the modes<br />

in the .Mds file are purely in that transverse direction. The <strong>OrcaFlex</strong> modal analysis is fully 3D, so in principle you<br />

should therefore only export modes that are purely transverse.<br />

In practice the natural modes do not always neatly divide into the transverse, inline and axial directions, so you will<br />

sometimes have to export the modes that are nearest to being transverse. <strong>OrcaFlex</strong> therefore provides the mode<br />

selection table to help you decide which modes should be exported to SHEAR7.<br />

The table includes the following columns:<br />

� Offset Distribution displays a measure of how inline, transverse and axial the mode is. For details see Offset<br />

Distribution.<br />

� Mode Type classifies each mode according to the offset distribution. Transverse means that the transverse<br />

component is more than 90% of the total, Mostly Transverse means that it is between 50% and 90%, and<br />

similarly for Inline, Mostly Inline, Axial and Mostly Axial. Mixed means that none of the components are more<br />

than 50% of the total.<br />

� Export to SHEAR7 Mds File determines which modes will be exported to SHEAR7. When you calculate (or<br />

recalculate) the modes <strong>OrcaFlex</strong> ticks just the Transverse and Mostly Transverse modes, but you can then<br />

change the selection as required. See Discussion and Examples.<br />

Values Exported<br />

The first line in the .Mds file contains the number of selected modes and the number of nodes in the line. Then<br />

follows a section giving the angular frequencies of the selected modes, in radians per second. Finally there follows a<br />

section for each selected mode, giving the Mode Offset, Mode Slope and Mode Curvature.<br />

Warning: <strong>OrcaFlex</strong> does not calculate the mode slope; in its place <strong>OrcaFlex</strong> outputs zero. The mode slope is<br />

only used in SHEAR7 to correct the predicted RMS acceleration for a vertical riser, in the special<br />

case where one is trying to model the gravitational contamination from tilt that a transversely<br />

mounted accelerometer would measure. See the SHEAR7 documentation for details. The RMS<br />

acceleration is listed in the SHEAR7 .plt plotting files.


w<br />

Exported Mode Offset and Mode Curvature<br />

459<br />

VIV Toolbox, Frequency Domain Models<br />

The <strong>OrcaFlex</strong> modal analysis gives vector values, but SHEAR7 requires scalar values. These are calculated as follows.<br />

Let:<br />

V = the mode shape vector calculated by <strong>OrcaFlex</strong> at a given node,<br />

Vi Vt and Va = V's inline, transverse and axial component vectors, respectively,<br />

VL = lateral component vector of V, given by VL = Vi + Vt (vector sum),<br />

m = maximum value of |VL| for any node,<br />

C = curvature vector at the node, for the mean position (this is a vector in the direction normal to the plane<br />

of curvature),<br />

dC/dm = linear rate of change of C per unit maximum lateral mode offset. This rate of change (a vector)<br />

equals the change in curvature vector at the node caused by applying the mode offsets V to all the nodes and<br />

then dividing by m.<br />

Then the scalar Mode Offset and Mode Curvature values exported by <strong>OrcaFlex</strong> to the Mds file are<br />

Mode Offset = Sign(Vt).|VL| / m<br />

Mode Curvature = Sign(inline component of dC/dm).|dC/dm|<br />

The reasoning behind these formulae is as follows:<br />

� SHEAR7 assumes that the exported mode offset is in the transverse direction. This assumption applies to the<br />

power-in zone, since in this zone SHEAR7 assumes that the mode offset is in the direction of VIV excitation.<br />

However SHEAR7's power-out calculation will still be valid providing the mode offset is lateral (i.e. no axial<br />

component), since fluid drag and damping occur in any lateral direction.<br />

� <strong>OrcaFlex</strong> should therefore ideally export the transverse component of mode offset for the power-in zone and<br />

the lateral offset for the power-out zone. However <strong>OrcaFlex</strong> does not know the power-in and power-out zones,<br />

since they are calculated inside SHEAR7, so it therefore outputs the lateral offset (suitably signed and<br />

normalised) throughout. This correctly removes the axial component, and if there is no inline component then<br />

no error is introduced.<br />

� For a mode that has some inline components there will be an error introduced in the power-in calculation, since<br />

SHEAR7 will assume that the lateral offset is in fact transverse. This error is equivalent to rotating the VIV<br />

excitation to be in the lateral mode offset direction, so it should be conservative.<br />

� The mode curvature values are used in SHEAR7 to calculate the dynamic bending stresses that are induced<br />

when the mode is excited. Such stresses occur due to both transverse and inline oscillations, so it is appropriate<br />

to export the whole of the dynamic curvature (dC), rather than just its transverse component.<br />

� Finally, the exported values are signed and normalised as specified by SHEAR7. That is, the Mode Offset value<br />

has maximum magnitude 1. And the Mode Curvature is the change in curvature caused by applying the mode<br />

with that magnitude.<br />

Discussion and Examples<br />

The <strong>OrcaFlex</strong> modal analysis is fully 3D, so for a general line configuration a mode can be a mixture of axial (i.e.<br />

tensile) and lateral (i.e. bending) motion. However for many configurations the modes broadly fall into one of three<br />

categories – tensile modes, in-plane bending modes and out-of-plane bending modes. Here in-plane and out-of-plane<br />

refers to the vertical plane of the catenary in which the line is hanging.<br />

Vertical Riser<br />

For an exactly straight vertical riser there is no unique such vertical plane. In this case the bending modes appear as<br />

a series of twins, i.e. pairs of modes with identical (or near identical) amplitude and frequency, but in orthogonal<br />

directions.<br />

Warning: In such cases it is important that only one of the pair is exported to SHEAR7 – the one that is<br />

nearest to being in the transverse direction.<br />

In practice, however, the current will make the riser bow out slightly in the current direction. This defines a vertical<br />

plane for the static position, and the transverse direction is normal to this plane. The natural modes typically divide<br />

neatly into modes that are virtually 100% transverse (the out-of-plane lateral modes), inline (the in-plane lateral


VIV Toolbox, Time Domain Models<br />

460<br />

w<br />

modes) or axial (the tensile modes). It is therefore clear cut as to which modes to export to SHEAR7, i.e. the<br />

transverse modes, and <strong>OrcaFlex</strong> selects these for you.<br />

U-shape Catenary, In-plane Current<br />

For this case the transverse direction is the out-of-plane direction, so the transverse modes are the out-of-plane<br />

modes. These typically have virtually 100% of their power in the transverse direction, whereas the remaining<br />

modes have very little power in the transverse direction, so again it is clear cut as to which modes to export to<br />

SHEAR7.<br />

U-shape Catenary, Out-of-plane Current<br />

For this case the transverse direction is in-plane and normal to the line axis. It therefore varies along the line and so<br />

the transverse modes are some, but not all, of the in-plane modes.<br />

The lowest in-plane mode is typically the in-plane fundamental 'swinging' mode. In the parts of the line that are<br />

nearly vertical this mode is transverse, but near the bottom of the U the motion is near axial. This mode is therefore<br />

often displayed as Mostly Transverse. <strong>OrcaFlex</strong> removes the axial components of the modes when exporting to<br />

SHEAR7 (see Values Exported) so it is reasonable to export this mode.<br />

Most of the remaining in-plane modes are bending modes in which the nodes oscillate laterally, with the wavelength<br />

decreasing as the frequency increases. These are predominantly in the transverse direction and so are suitable for<br />

export to SHEAR7.<br />

However there are also some tensile in-plane modes present, in which the nodes oscillate in the axial direction,<br />

causing alternating tension and compression in the line. These tend to be in amongst the higher frequency modes,<br />

due to the typically high axial stiffness of a line.<br />

U-shape Catenary, Oblique Current<br />

If the current is at 10°, say, to the plane of the catenary, then the transverse direction is at 80° to the plane. None of<br />

the modes will be purely in this direction, but the out-of-plane modes are nearest to this direction, so they are the<br />

best ones to choose.<br />

SHEAR7 will assume that each exported mode is purely transverse, so an approximation is involved. This<br />

approximation gets worse as the angle of the current to the plane increases up to 45°. The approximation is worst<br />

for the low modes. For the higher modes the out-of-plane modes and the in-plane lateral modes tend to have quite<br />

similar frequencies and shapes, so the approximation is less of a problem.<br />

9.2 TIME DOMAIN MODELS<br />

There are four time domain models, two being wake oscillator models and two being vortex tracking models.<br />

With all the time domain models, the vortex force applied in the static analysis is the standard Morison drag force.<br />

Then, during the build-up stage of the simulation, the ramping function is used to smoothly change to the vortex<br />

force given by the VIV model.<br />

Note: This ramping is only applied for the components of vortex force which are calculated by the VIV<br />

model. For example, the wake oscillator models only provide transverse vortex force. So, for the<br />

wake oscillators, the ramping is done for the transverse component of force, but the inline<br />

component of force is calculated using the standard Morison drag formulation.<br />

The data described below are common to all the time domain models.<br />

Outer Time Step<br />

For all the time domain models, it is important that the outer time step (on the General Data form) is set to a value<br />

that is small compared with the Strouhal Period. Assuming a Strouhal number of 0.2, then the Strouhal period is<br />

given by 5D/V where D is the line diameter and V is the relative flow velocity. The outer time step needs to be set to<br />

a fraction of this Strouhal period, the fraction to use depending on which model is being used, as follows.<br />

Wake oscillator models<br />

The wake oscillator calculations are done every outer time step and experience so far suggests that the integration<br />

of the wake oscillator loses accuracy if this time step is greater than about 1/200th of the Strouhal period. At the<br />

start of the simulation <strong>OrcaFlex</strong> checks and warns if the outer time step exceeds this limit at any node on lines that<br />

use a wake oscillator. Note that this check is against the Strouhal period for the flow velocity that applies in the<br />

static analysis, so it does not take into account changes in Strouhal period during the simulation.


w<br />

Vortex Tracking (1) Model<br />

461<br />

VIV Toolbox, Time Domain Models<br />

The outer time step determines how often the fluid forces on the line are updated. The model performs its<br />

calculations using a variable time step. The calculations done in this variable time step are typically much more<br />

time-consuming than the other calculations in the simulation, so the outer time step does not usually have much<br />

effect on the simulation speed. We therefore recommend that the outer time step is set to a very small value,<br />

preferably a lot less than the variable time step, so that the line has a chance to quickly react to changes in fluid<br />

force.<br />

Vortex Tracking (2) Model<br />

The outer time step sets the time step used by the vortex tracking model, and also determines how often the fluid<br />

forces on the line are updated. It should be small enough to discretise the VIV, but if it is too small then a lot of<br />

vortices must be tracked and this significantly slows the model. Based on our experience so far, we recommend that<br />

the outer time step is set to approximately 1/100th or 1/200th of the Strouhal period.<br />

Note: The automated recommended time step feature in <strong>OrcaFlex</strong> implements the above<br />

recommendation for the Wake oscillator models but does not implement the recommendations for<br />

the Vortex Tracking models.<br />

Data for the Whole Line<br />

Filter Period<br />

<strong>OrcaFlex</strong> uses a digital filter, with this filter cut-off period, to separate the mean motion of the node from the VIV<br />

motion. For example, this filtering is needed with the wake oscillator models in order to allow non-VIV motion of the<br />

node to contribute to VIV, without letting the VIV motion feed back into the velocity input into the wake oscillator<br />

model.<br />

Here is more detail. The node velocity vector is filtered and the resulting 'non-VIV' velocity is subtracted from the<br />

fluid velocity to obtain a 'non-VIV' relative velocity vector. Then:<br />

� For the wake oscillator models, the normal component of this 'non-VIV' relative velocity vector is used as the<br />

velocity input to the wake oscillator model.<br />

� For all the time domain models, the inline and transverse directions are based on the 'non-VIV' relative velocity<br />

vector.<br />

� The node position vector is also filtered and the resulting 'non-VIV node position' is used when calculating the<br />

Transverse VIV Offset.<br />

� For the Milan wake oscillator only, the 'non-VIV node position' is used as the mean position for the Milan<br />

oscillator.<br />

The filter tries to filter out motion whose period is below the filter period. So a filter period of zero gives an all-pass<br />

filter, which isn't desirable since it allows VIV motion to feed back into the wake oscillator models and into the<br />

definitions of the inline and transverse directions.<br />

At the other extreme, a filter period of Infinity gives a no-pass filter, which filters out all oscillatory motion of the<br />

line, leaving only any non-zero starting velocity. So if a filter period of Infinity is used then the only line velocity that<br />

contributes to the inline and transverse directions is any non-zero starting velocity, and with the wake oscillator<br />

models the only velocity input to the model will be any non-zero starting velocity.<br />

In practice, the filter period should be set to be significantly above, preferably by a factor of 10 or more, the period<br />

of any expected VIV. However it should also be significantly below, again preferably by a factor of 10 or more, the<br />

period of any line motion (e.g. due to towing or vessel motion) that you want to contribute to VIV.<br />

For simple cases where VIV is excited only by fluid flow, not by line motion, the filter period can be set to a large<br />

value that is at least 10 times the period of any expected VIV. For cases where line motion contributes to VIV it might<br />

be harder to achieve the above recommended factors of 10, in which case it will be necessary to compromise by<br />

setting the filter period to a value about half way between the two periods.<br />

The reason a significant factor is recommended here is that the filter does not achieve a very sharp cut-off. Its<br />

response is shown in the following graphs, which illustrate how it attenuates and lags frequencies that are near to<br />

the filter period.


VIV Toolbox, Time Domain Models<br />

Filter RAO Amplitude<br />

1.2<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

0 1 2 3 4 5<br />

Period / FilterPeriod<br />

462<br />

Filter RAO Phase Lag (deg)<br />

160<br />

140<br />

120<br />

100<br />

80<br />

60<br />

40<br />

20<br />

0<br />

w<br />

0 1 2 3 4 5<br />

Period / FilterPeriod<br />

Warning: Note also that with the Milan wake oscillator, if you set the filter period to Infinity or a very high<br />

value, then the node mean position used by the wake oscillator will remain at the node's starting<br />

position found by the static analysis. In that case it is important that the line uses Full statics, since<br />

otherwise that starting position might not be a sensible mean position for the Milan wake<br />

oscillator model to use.<br />

Data for Each Section<br />

The following data can be set for each section of the line. A node at the junction between two sections uses the value<br />

for the higher numbered section.<br />

VIV Diameter<br />

The VIV diameter specifies the diameter used by the VIV model. Separate values can be specified for each section.<br />

The value specified is used for all nodes in that section. For a node at the intersection of two sections the VIV<br />

diameter of the following section is used. The VIV Diameter can be set to '~', which is taken to mean 'same as the<br />

section normal drag diameter'.<br />

VIV Enabled<br />

You can control which sections of the line the VIV model is applied to. All the time domain models analyse what goes<br />

on at a single specified point on the line, so <strong>OrcaFlex</strong> creates one instance of the model for each node in each of the<br />

enabled sections.<br />

You can use this switch to disable VIV modelling where you think VIV excitation is not significant. For example:<br />

� You might disable VIV modelling if the normal component of flow velocity is not significant, or the incidence<br />

angle is near to being tangential<br />

� You might disable VIV modelling if there are VIV suppression devices (e.g. strakes, fairings) and you believe they<br />

will be effective.<br />

� The vortex tracking model requires a lot of computing, so you could improve the speed of simulation by<br />

disabling VIV modelling where you believe VIV will not be significant.<br />

Inline Drag Amplification Factor<br />

Only available for the wake oscillator models. The inline component of drag is multiplied by this value. The data can<br />

be specified as a variable data item which varies with Transverse A/D, that is the amplitude of transverse oscillation<br />

divided by the VIV diameter.<br />

This is not available for the vortex tracking models since they include the effect of inline drag amplification.<br />

Vortex Force Factors<br />

These factors allow you to scale the inline and transverse components of the vortex force. Set them both to 1 to use<br />

the vortex force predicted by the VIV model, without adjustment.<br />

If VIV suppression devices (e.g. strakes, fairings, shrouds) are fitted to a section of the line then you could allow for<br />

their VIV-reduction effect by setting the transverse force factor to a value less than 1. The device is also likely to


w<br />

463<br />

VIV Toolbox, Time Domain Models<br />

affect the inline drag force, so you might also want to allow for this by adjusting the inline force factor. See Barltrop<br />

and Adams page 372.<br />

The inline force factor is not available for wake oscillator models, instead you should use the Inline Drag<br />

Amplification Factor data.<br />

Note: With the Milan wake oscillator model the transverse force generated by the model is not the whole<br />

of the transverse force, since the Milan model requires the transverse component of standard drag<br />

force to be added to give the total transverse force. The transverse vortex force factor is only<br />

applied to the force generated by the model, not to the transverse component of the standard drag<br />

force.<br />

Sea Surface and Sea Bed<br />

The time domain VIV models (wake oscillator and vortex tracking) make no allowance for surface-piercing or<br />

seabed contact effects. <strong>OrcaFlex</strong> therefore handles these effects as follows:<br />

� If a node comes completely out of the water, or comes into contact with the seabed, then the time domain wake<br />

model is reset. For the wake oscillator models this means that the wake degree of freedom is reset to zero; for<br />

the vortex tracking model all existing vortices are removed. If the node later comes back into the water, or<br />

breaks contact with the seabed, then the model starts again from that reset state.<br />

� If the node is partially submerged (i.e. the length of line represented by the node is surface-piercing) then the<br />

time domain wake model continues to run but the forces it applies to the node are scaled by the node's<br />

Proportion Wet.<br />

VIV Directions<br />

For the time domain VIV models, <strong>OrcaFlex</strong> calculates the following directions:<br />

� The Axial direction is the local tangential direction, given by the node's local z-direction.<br />

� The Transverse direction is normal to the axial direction and normal to the 'non-VIV' relative velocity vector.<br />

� The Inline direction is normal to the Axial and Transverse directions. It is therefore normal to the line axis and<br />

in the plane defined by that axis and the relative flow direction. It is the direction of the normal component of<br />

the drag force (assuming Cdx=Cdy).<br />

These directions are used for three purposes:<br />

� The velocity input to the wake oscillator models is the inline component of the 'non-VIV' relative velocity.<br />

� The transverse displacement input into the Milan wake oscillator model is the transverse component of the<br />

node position relative to its 'non-VIV' node position.<br />

� The inline and transverse components of the vortex force are available as results.<br />

9.2.1 Wake Oscillator Models<br />

The VIV Toolbox provides two wake oscillator models, the Milan model and the Iwan and Blevins model. These are<br />

two of many different wake oscillator models that have been proposed by many different authors over the last<br />

twenty years. We selected these two models after reviewing the literature and testing a number of different models.<br />

We found that there are errors in some of the published models and that many of the wake oscillator models contain<br />

disguised references to frequency domain concepts. This makes them difficult to implement in a true time domain<br />

analysis, unless additional assumptions are made.<br />

What is a Wake Oscillator Model?<br />

A typical wake oscillator model is a heuristic model that uses a single degree of freedom, Q say, to represent the<br />

wake behind a rigid cylinder. It models the oscillation of the wake by Q being a function of time that obeys a<br />

differential equation that we will call the wake equation of motion.<br />

The oscillation of the wake generates a lift force, i.e. a force that is normal to the cylinder axis and normal to the flow<br />

direction. The model gives the lift force magnitude as a function of Q, and this force is applied to the cylinder and so<br />

affects the motion of the cylinder. In return, the wake equation of motion involves terms that depend on the motion<br />

of the cylinder. This couples the wake equation of motion to the cylinder equation of motion, so together the two<br />

form a coupled non-linear system.


VIV Toolbox, Time Domain Models<br />

Wake Equation of Motion<br />

464<br />

w<br />

The wake equation of motion is typically a nearly linear, second order, ordinary differential equation. It is not<br />

usually derived from physical laws, but is chosen to be one whose qualitative characteristics are known to be similar<br />

to VIV. For example there are differential equations that are known to have solutions that are oscillatory, self<br />

generating and self limiting.<br />

The wake equation of motion involves parameters whose values are calibrated to match empirical results. This sort<br />

of modelling ethos is commonly known as an inverse method. This is where one attempts to reproduce empirical<br />

data without recourse to the fundamental physics of the system. Rather, one simply writes down a system of<br />

equations that have the right sort of characteristics and then adjusts parameters in the equations to tune them to<br />

best match the empirical data.<br />

Almost universally, wake oscillator models only give the lift force and say nothing about the effect of VIV on the drag<br />

force. The main aim behind the wake oscillator paradigm is to model the oscillating lift force.<br />

Using a Wake Oscillator Model<br />

Wake oscillator models are time-domain models and so can only be used in the dynamic analysis. To use a wake<br />

oscillator model set the Dynamics VIV to that model.<br />

When the simulation is run <strong>OrcaFlex</strong> creates and attaches a wake oscillator, of the chosen model, to each node in the<br />

line. Each such oscillator then obeys the equations of the chosen model. There is no linkage between the wake<br />

oscillators except through the structure. It is therefore effectively being assumed that the interaction between VIV at<br />

different levels occurs predominantly through the structure, not through the fluid.<br />

Lift Direction<br />

The wake oscillator models are single degree of freedom models, i.e. they only model the transverse direction. Note<br />

that this direction can change during the simulation, either because the line orientation changes or because of wave<br />

motion changing the fluid velocity direction. When this happens the wake oscillator model is effectively being<br />

rotated and there is an implicit assumption that this rotation does not significantly affect the wake.<br />

Node Steady Motion Included<br />

The wake oscillator models require the flow velocity as input. In <strong>OrcaFlex</strong> this input flow velocity is taken to be the<br />

fluid velocity minus the filtered node velocity. This allows non-VIV motion, e.g. in a towed case, to contribute to VIV,<br />

providing its period is significantly longer than the filter period. The filtering is necessary to prevent the VIV motion<br />

itself feeding back into the input to the wake oscillator.<br />

Current and Wave Motion Are Both Included<br />

The input velocity to the wake oscillator models include the fluid velocity due to both current and any waves<br />

specified. The models can therefore in principle be used to model the effect of waves on VIV. However please note<br />

that the models were developed and calibrated for steady state conditions, so unsteady flow is outside their<br />

intended area of application.<br />

Inline drag amplification<br />

The effect of inline drag amplification can be modelled by means of a table relating amplification factor to transverse<br />

A/D.<br />

Data Common to Wake Oscillator Models<br />

Model Parameters<br />

Both the Milan and the Iwan and Blevins models have various parameters that determine their properties. You can<br />

choose to either use the Default set of values for these parameters or else choose to use your own Specified values.<br />

Except for the Initial Value (see below), the Default values are the parameters given in the original published<br />

papers, i.e. in the Milan and Iwan and Blevins papers. If the Specified option is chosen then you have complete<br />

control over the model parameters.<br />

Warning: The Specified option has been provided principally to allow users the option of calibrating the<br />

model against other experimental results. If you are not doing this then we strongly recommend<br />

that you use the Default parameters.<br />

The following two model parameters are common to both wake oscillator models.


w<br />

465<br />

VIV Toolbox, Time Domain Models<br />

� Strouhal Number. Note that the Strouhal number interacts with the other model parameters, and the other<br />

default published values are intended to be used with the default Strouhal number 0.2. Adjusting the Strouhal<br />

number is therefore not recommended unless you are calibrating the model parameters against known results.<br />

� Initial Value is the magnitude of the initial value given to the wake degree of freedom used by the models. The<br />

wake oscillation can take a long time to build-up if it is started from zero, so giving it a small non-zero initial<br />

value helps to start up the wake oscillation at the start of the simulation. The sign of the initial value is chosen<br />

randomly for each node in the line. This avoids the situation where the nodes on a line all start by moving in the<br />

same direction.<br />

How well do wake oscillators model VIV?<br />

Any wake oscillator model is very heavily tied to the data set used to calibrate it. One must ensure that the relevant<br />

fluid dynamical and structural dimensionless parameters (for example, the Reynolds number) of the experimental<br />

set-up used to generate the data are sufficiently similar to that of the situation that one wants to model. Otherwise,<br />

one is relying on luck to provide the right answer. For example, if one wants to model the VIV of telephone wires in<br />

air, then one should use a data set obtained from a wire vibrating in a wind tunnel. The experimental data is usually<br />

obtained from a system with a constant fluid in-flow speed, so one cannot expect the model to be applicable for<br />

currents that vary over the same time scale as that due to VIV. If the current variation is sufficiently slow then the<br />

model should be valid.<br />

In general, the authors of wake oscillators make no attempt to model the start-up of VIV. This is due to the nature of<br />

the devised mathematical model. The modelling method used exploits the fact that the solution phase space of the<br />

system contains limit cycles that correspond to stationary VIV. The parameters are set so that the limit cycles have<br />

the right radius and that the system state tracks around them with the right frequency. To find the non-stationary<br />

dynamical behaviour of the system far away from such critical regions in the phase space is extremely difficult<br />

without simply integrating the equations of motion.<br />

Milan Wake Oscillator Model<br />

The Milan model is an implementation of the model developed by a group in Italy and documented in the paper by<br />

Falco, Fossati and Resta. It is a wake oscillator model; see the wake oscillator models topic for information that<br />

applies to all such models.<br />

Results<br />

The Vortex Force is available as a line force results variable. This reports the total lift and drag force. Note that this is<br />

the sum of the force generated by the wake oscillator model, which is in the transverse direction but doesn't include<br />

the drag force in that direction, plus the standard Morison drag force in the inline, transverse and axial directions.<br />

Transverse VIV Offset is also available as a line position results variable.<br />

Milan Model Implementation in <strong>OrcaFlex</strong><br />

In implementing the Milan model in <strong>OrcaFlex</strong> we came across the following issues.<br />

Lift Force<br />

In the Milan model the standard Morison drag force in the transverse direction must be added to the force<br />

generated by the wake oscillator. <strong>OrcaFlex</strong> therefore calculates the drag forces as usual and then adds in the force<br />

generated by the Milan wake oscillator. The line motion therefore depends significantly on the drag coefficient<br />

specified for the transverse direction.<br />

Notes: The Milan model was calibrated by assuming a transverse drag coefficient of 1.2 and a transverse<br />

added mass coefficient of 1.0, so other values of these coefficients take the model outside its domain<br />

of calibration.<br />

Node Mean Position<br />

The transverse force factor is only applied to the force generated by the Milan model, not to the<br />

transverse component of the standard drag force.<br />

The Milan model needs the node's offset in the lift direction, relative to its mean position, i.e. relative to the position<br />

about which VIV is occurring. For this mean position <strong>OrcaFlex</strong> uses the filtered position of the node. This enables<br />

<strong>OrcaFlex</strong> to handle cases such as towed lines, where the VIV excitation is due to motion of the line rather (or as well<br />

as) fluid flow. It is important that the filter period is suitably set.


VIV Toolbox, Time Domain Models<br />

Our experience of the Milan Model<br />

466<br />

w<br />

� If a line end node doesn't move at all (e.g. because it is fixed) then the wake oscillation does not develop and so<br />

the Vortex Force decays to zero. The Milan model is therefore not suitable for predicting the vortex force on<br />

fixed line end nodes.<br />

� We have run the Milan model for the case of a simple spring-mounted cylinder, and compared the results with<br />

the empirically based response curve published by Skop and Balasubramanian. For details contact <strong>Orcina</strong>.<br />

� We have also run the Milan model for flexible riser cases and compared it against experimental results. The<br />

results so far suggest that the Milan model is reasonable for cases where the flow velocity is uniform along the<br />

riser, but the model is less satisfactory when the flow velocity varies a lot along the riser.<br />

Iwan and Blevins Wake Oscillator Model<br />

This wake oscillator model is as published by Iwan and Blevins. In their paper the model is developed from<br />

theoretical considerations of momentum, and the hidden wake degree of freedom is such that its rate of change is a<br />

measure of the fluid momentum in the transverse direction.<br />

The resulting model makes the wake degree of freedom obey a Van der Pol equation. This is a type of equation that<br />

has been used in other wake oscillator models, and it is known to have VIV-type characteristics such as frequency<br />

lock-in.<br />

The authors calibrated the model against experimental results for fixed and forced cylinders, and then compared the<br />

model's predictions against experimental results for spring-mounted cylinders.<br />

In addition note that the force generated by the Iwan and Blevins model (unlike the Milan wake oscillator model)<br />

includes the standard Morison drag force in the transverse direction. When this model is used <strong>OrcaFlex</strong> therefore<br />

suppresses the transverse component of the usual drag force, so the drag coefficient specified for the transverse<br />

direction is not used.<br />

Results<br />

The Vortex Force is available as a line force results variable. This reports the total lift and drag force. Note that this is<br />

the sum of the force generated by the wake oscillator model, which is in the transverse direction but doesn't include<br />

the drag force in that direction, plus the standard Morison drag force in the inline, transverse and axial directions.<br />

Transverse VIV Offset is also available as a line position results variable.<br />

9.2.2 Vortex Tracking Models<br />

Overview<br />

Two vortex tracking models are available in <strong>OrcaFlex</strong>, which we refer to by number: Vortex Tracking (1) and Vortex<br />

Tracking (2). Both are based on the underlying physical equations of boundary layer theory and the Navier-Stokes<br />

equation. As a result they introduce physical realism that is absent from the wake oscillator models.<br />

Vorticity is a measure of a fluid's rotation and it is often advantageous to analyse fluid dynamics in terms of<br />

vorticity. The reason for this is that the vorticity is often confined to narrow sheet-like regions and the important<br />

fluid forces on a body in the flow are intimately related to the vorticity. One can focus on the sheet-like regions and<br />

this is far more efficient from a computational point of view. Vortex methods are prevalent throughout<br />

computational fluid dynamics.<br />

The vortex tracking models are much more computationally demanding than the wake oscillator models. In fact they<br />

are a type of computational fluid dynamic model, but they are much less computationally demanding than 'full'<br />

Computational Fluid Dynamics (CFD). Work to date shows considerable promise, and we hope they will offer a<br />

practical analysis technique which gives much of the realism of full CFD without the associated extremely long run<br />

times.<br />

The vortex tracking models model the full fluid flow field. In <strong>OrcaFlex</strong> the vortex tracking models are used to give<br />

the force acting on the line, but they can also give other results, such as the fluid velocity and pressure at any point.<br />

For example we have experimentally used them to calculate the pressure variations on the line surface due to VIV. If<br />

other results such as these interest you then please contact <strong>Orcina</strong> for further details.<br />

The vortex tracking models are based on the relative velocity of the flow past the line. They can therefore be used<br />

both for cases where the excitation is due to current or waves, and also where the excitation is due to the line<br />

moving, for example towed cases.


w<br />

467<br />

VIV Toolbox, Time Domain Models<br />

The models involve calculating and tracking many vortices for each node of the line. This can make the simulation<br />

file very large, but this can be controlled by limiting the Maximum Number of Vortices Logged.<br />

Note: We have done validation work comparing the VIV models with real measured results – see the VIV<br />

Validation section on the <strong>OrcaFlex</strong> Validation page of the <strong>Orcina</strong> website. This work showed that<br />

the vortex tracking models tend to substantially overpredict VIV amplitudes. However we believe<br />

they are useful for qualitative investigations, especially of in-line VIV in low to moderate shear<br />

conditions, since the other VIV models can not model this situation.<br />

Features Common to both Vortex Tracking Models<br />

This section describes the basic vortex tracking model on which both models are based.<br />

Vortex Tracking Plane<br />

The basic vortex tracking model is a 2D fluid model associated with a particular node on the line. It models the 2D<br />

'slice' through the fluid normal to the line axis, which we call the vortex tracking plane. In this 2D slice the node is a<br />

disc.<br />

To apply this 2D model to the 3D situation present in <strong>OrcaFlex</strong>, we attach a separate vortex tracking plane to each<br />

node on the line where VIV modelling is enabled. Each node therefore models its own fluid interaction, by<br />

generating and shedding vortices and then tracking them in its associated vortex tracking plane.<br />

The drawing below shows a typical vortex plane, i.e. it is a cross-section through the line, normal to the line axis. The<br />

line itself is represented by the grey disc and the fluid flow is coming from the left.<br />

flow<br />

Figure: Vortex Tracking Plane<br />

The model has two main elements:<br />

� A boundary layer theory is used to analyse the fluid very near to the disc surface, where viscosity plays a<br />

dominant role. At each time step, the boundary layer theory gives the positions of the two separation points,<br />

and a new vortex is created at each of these two points, to model the vorticity being generated there.<br />

� The vortex tracking itself handles the rest of the fluid, where viscosity is much less important. The created<br />

vortices are tracked downstream by solving the inviscid Navier Stokes equations (which are approximately<br />

valid outside the boundary layer). This models the wake development, i.e. how the vorticity flows after leaving<br />

the boundary layer.<br />

Boundary Layer<br />

When the flow meets the disc it has to flow around the disc circumference and a boundary layer is formed.<br />

Boundary layer theory is used to model this region, where viscosity plays a crucial role. Sarpkaya and Shoaff<br />

originally used the Polhausen boundary layer method, but since then this method has been superseded by simpler<br />

and more accurate methods. <strong>OrcaFlex</strong> uses Thwaites' method (see Young 1989) for both models.<br />

Some of the fluid flows around one side of the disc and some around the other, and the point where the flow splits is<br />

called the stagnation point. As the fluid flows around the disc it initially remains in contact with the disc, but it<br />

typically then reaches a point on each side where the flow separates. These are called the separation points, and at<br />

these points vorticity is shed from the disc.


VIV Toolbox, Time Domain Models<br />

468<br />

w<br />

The boundary layer theory gives the position of each separation point and the strength of vorticity shed there in one<br />

time step. A new vortex of this strength is then created at the separation point. The new vortex is placed at the<br />

separation point but at a distance λ.R from the disc surface. In the model 2 λ is the Creation Clearance specified by<br />

the user. In model 1, or if the Creation Clearance is set to '~', λ is calculated to be the value that results in the<br />

tangential velocity contribution of the new vortex just cancelling out the existing tangential velocity at the<br />

separation point.<br />

In the drawing above (and in the <strong>OrcaFlex</strong> 3D view) the stagnation point is shown as a small triangle and the<br />

separation points as small blobs, part way around the disc circumference. The vorticity shed from the two sides of<br />

the disc is distinguished by being drawn in separate colours, to denote the difference in the direction of rotation –<br />

clockwise for vorticity shed from the upper side and anti-clockwise from the lower side, as seen in the drawing.<br />

Vortex Tracking<br />

After being shed from the boundary layer, the vorticity then flows downstream. In reality, the vorticity is shed<br />

continuously and it is shed along the neighbouring parts of the line at the same time, so as it flows away it forms<br />

sheets of vorticity, one on each side. In the above drawing these vortex sheets are shown as red and green lines,<br />

since the drawing shows the intersection of the sheets with the vortex plane. The colour denotes the sign of the<br />

vorticity.<br />

For computation purposes the model has to discretise the vorticity being shed, so in the vortex tracking model the<br />

vorticity is represented by discrete vortex points. The vortex sheet is therefore represented by a sequence of vortex<br />

points, each one of which represents the vorticity of a short length of vortex sheet.<br />

In the 3D view the individual vortex points are drawn as circles with their centres joined to represent the vortex<br />

sheet line, with the colour indicating the sign of vorticity. A vortex sheet therefore appears as a linked sequence of<br />

circles flowing away from the line.<br />

Sarpkaya and Shoaff originally used singular vortex points, but in both vortex tracking models <strong>OrcaFlex</strong> uses<br />

smeared vortex points.<br />

Strouhal Number<br />

The vortex tracking models do not have any Strouhal number built in. Instead the Strouhal period emerges directly<br />

from the physics of the vortex dynamics and boundary layer.<br />

Vortex Tracking (1) Model<br />

The Vortex Tracking (1) model is our implementation and development of the vortex tracking model originally<br />

developed by Sarpkaya and Shoaff. It shares many common features with the Vortex Tracking (2) model – see<br />

Features Common to both Vortex Tracking Models. It differs in the following ways:<br />

� It uses a variable time step given by:<br />

Δt = 0.2 . R / V<br />

where R is the radius of the line and V is the fluid velocity relative to the node. Assuming a Strouhal number of 0.2,<br />

this value is 1/50th of the (instantaneous) Strouhal period.<br />

� Vortices shed from the same side of the disc are grouped to represent the vortex sheets coming off that side. The<br />

model tries to detect a suitable point in the cycle at which to break the attached sheet away from the disc and<br />

start a new attached sheet. See Sheet Detachment and Coalescing below.<br />

� At each time step each sheet is rediscretised in a way that keeps the vortices at equally spaced arc lengths along<br />

the sheet.<br />

� At each time step the model searches for vortices from detached sheets that have moved in between the two<br />

attached sheet. Such a vortex is 'entrained' into the attached sheet of opposite sign to its vorticity. See Wake<br />

Line and Entrainment below.<br />

Sheet Detachment and Coalescing<br />

At any given time there are typically two vortex sheets being fed from the disc – one from each side. These are called<br />

the attached sheets.<br />

As the flow progresses, an attached sheet can become detached and a new attached sheet then starts forming on that<br />

side. Typically this happens first on one side of the disc, then on the other, etc., and this alternating behaviour is<br />

typically synchronised with the oscillatory nature of the lift force.


w<br />

469<br />

VIV Toolbox, Time Domain Models<br />

In reality the vortex sheets form, become detached and flow downstream ad infinitum, but their effect becomes<br />

much less as they move further away from the disc. <strong>OrcaFlex</strong>, of course, has to limit the number of vortices being<br />

modelled. In model 1 this is done as follows:<br />

� The two attached sheets and the one most recently detached sheet are modelled in detail, i.e. as linked<br />

sequences of discrete vortex points.<br />

� Older detached sheets (providing they are not still close to the disc) are simplified by 'coalescing' them to single<br />

vortex points. In other words whenever a sheet becomes detached the previous detached sheet is usually<br />

replaced by a single vortex point whose strength is the total vorticity in the sheet and whose position is the<br />

centroid of the vorticity in that sheet. The sheet is then referred to as a coalesced sheet.<br />

� When a coalesced sheet gets beyond a certain distance from the disc, its effect is assumed to have decayed to the<br />

point where it is no longer significant and so it can be removed from the model. <strong>OrcaFlex</strong> does this by<br />

transferring its vorticity to the nearest coalesced sheet of the opposite sign. Doing the removal in this way has<br />

the advantage that the total vorticity present is preserved, and so vorticity is only being moved a small distance,<br />

rather than being destroyed.<br />

To summarise, the wake is modelled using:<br />

� Detailed modelling of two attached vortex sheets and (usually) one detached vortex sheet, plus single vortex<br />

modelling of a number of coalesced sheets. The two attached (one green, one red) and the most recent detached<br />

sheet (red) can be seen as vortex lines in the drawing below.<br />

� Single vortex point modelling of the earlier detached sheets, now coalesced. These are shown in the drawing as<br />

circles, which is also how they appear in the <strong>OrcaFlex</strong> 3D view.<br />

flow<br />

Wake Line and Entrainment<br />

In practice the tail end of the detached sheet trails into the spiral part of the preceding attached sheet. This can lead<br />

to very contorted situations and to modelling problems if vortex points come very close to each other. Model 1<br />

handles this as follows.<br />

The model calculates the tangent line between the two attached sheets. This line, called the wake line, is the dashed<br />

line in the drawing above.<br />

The region between this wake line, the two attached sheets and the disc itself is called the wake region. Vortex<br />

points in the detached sheet that trail into the wake region can then be absorbed into the attached sheet of the<br />

opposite sign. We refer to this process as entrainment.<br />

Vortex Tracking (2) Model<br />

The Vortex Tracking (2) model is a simplified variant of the Vortex Tracking (1) model.<br />

Warning: Model 2 has been developed more recently than model 1. It has undergone testing but has had<br />

limited use so far.<br />

Model 2 shares many features of model 1 – see Features Common to both Vortex Tracking Models. It differs in the<br />

following ways:<br />

� It uses a constant time step, equal to the simulation outer time step. (Model 1 uses a variable time step.)


VIV Toolbox, Time Domain Models<br />

470<br />

w<br />

� It does not use sheet detachment to separate the vortices coming from one side of the disc into separate sheets.<br />

� It does not use entrainment, nor rediscretisation to keep the vortices at equally spaced arc lengths along the<br />

sheet.<br />

� It uses a coalescing algorithm to control the number of vortices.<br />

Coalescing<br />

To keep down the number of vortices being tracked, model 2 tries, at each time step, to coalesce pairs of vortices<br />

that have come very close to each other. This is done as follows:<br />

� At each time step the model finds, for each vortex, the nearest neighbouring vortex. If two vortices are each<br />

other's nearest neighbours then they are called 'mutually nearest neighbours', and such a pair are considered<br />

for possible coalescing into one.<br />

� Such a pair of mutually nearest neighbours are coalesced if their separation is less than Sc, where Sc is a<br />

coalescing separation that depends on the distance D from the two vortices to the disc surface. Sc is given by:<br />

Sc = λ.R if D≤2R<br />

Sc = λ.R.(D/2R) 2 if D>2R<br />

where R is the disc radius and λ is the coalescing threshold specified by the user. The threshold used depends on<br />

whether the two vortices are of the same or opposite signs.<br />

� These formulae for Sc mean that the user's data sets, in disc radius units, the coalescing separation for vortices<br />

that are within 2 disc radii of the disc surface, and for vortices further away the coalescing separation increases<br />

according to the square of the distance from the disc surface. The aim of this is to restrict coalescing near to the<br />

disc but encourage it once the vortices have convected significantly away from the disc.<br />

� If the two vortices are coalesced then they are replaced by one vortex whose strength is the sum of their signed<br />

strengths and which is placed at their centroid of absolute vorticity.<br />

Data and Results<br />

Data<br />

The following data needs setting for the vortex tracking models. See also the data that is common to all the time<br />

domain VIV models.<br />

Maximum Number of Vortices Logged (per side of the line)<br />

This controls the maximum number of vortices that will be displayed and logged, for each side of the line. Note that<br />

this setting only affects the display of vortices and does not affect the calculation itself in any way. Its purpose is<br />

only to allow you to control the size of the log file (and hence the simulation file) and to control the speed of drawing<br />

the 3D view. You can set the maximum number of vortices to one of:<br />

� 0 is the default value, meaning 'log and draw no vortices'. The log file and simulation file are then as small as<br />

possible and the replay as fast as possible. However the drawback of doing this is that you will not see any<br />

vortices on the 3D view.<br />

� '~', meaning 'log and draw all vortices'. There are typically up to several hundred vortices generated per node,<br />

and each vortex needs to log its position and strength so that it can be drawn on the 3D view. So if all vortices<br />

are logged then the log file and simulation file can therefore be quite large. Also the replay might be slower<br />

because many vortices must be drawn for each frame of the replay.<br />

� An intermediate value, 30 say, allows you to see the youngest 30 vortices per side of the line. Note that if you do<br />

this then as new vortices are generated at the separation points you will see the oldest vortices (typically now<br />

downstream) disappear from view. They have not been destroyed and will still be in the calculation, but their<br />

position and strength is no longer available to the 3D view.<br />

Model Parameters<br />

If the Default option is chosen then appropriate default values for the model parameters are used. Alternatively the<br />

Specified option can be selected which gives you complete control over the model parameters.<br />

Warning: The Specified option has been provided principally to allow users the option of calibrating the<br />

model against other experimental results. If you are not doing this then we strongly recommend<br />

that you use the Default parameters.


w<br />

Vortex Smear Factor<br />

471<br />

VIV Toolbox, Time Domain Models<br />

This setting controls the degree to which vortices are smeared. The original Sarpkaya and Shoaff model used point<br />

vortices, i.e. the vorticity was concentrated at a single point. This is what arises in the formal mathematical solution<br />

of the inviscid Navier Stokes equations (i.e. those ignoring fluid viscosity) but it means that each vortex is a<br />

singularity, since the vorticity density at the point itself is actually infinity. In reality viscosity in the fluid spreads the<br />

vorticity to some extent, and we have found that the model is more stable if the vortices are smeared to reflect this.<br />

The smear factor is non-dimensional. Very small values make each vortex more concentrated into a single point,<br />

whereas larger values spread the vorticity in the vortex over a region surrounding the point. The default value is 0.1<br />

and in our experience this gives reasonable performance. The smear factor should not be set too high, since that<br />

would be unrealistic. <strong>OrcaFlex</strong> warns if the value is more than 0.2.<br />

Creation Clearance<br />

This is a non-dimensional value that is only used by model 2. At each time step the model creates two new vortices,<br />

one at each of the two separation points. This data controls how close to the disc surface these newly-created<br />

vortices are placed. They are placed at the separation angle determined by the boundary layer model and at a<br />

distance λ.R from the disc surface, where λ is the specified creation clearance and R is the disc radius (= half the line<br />

outer diameter).<br />

The Creation Clearance can also be set to '~', in which case the new vortices are placed using the same algorithm<br />

as in model 1. This sets the factor λ to the value that results in the tangential velocity contribution of the new vortex<br />

at the separation point just cancelling out the previous tangential velocity at that point.<br />

Coalesce Same, Coalesce Opposite<br />

These are non-dimensional thresholds that are only used for coalescing in model 2. They control how close to each<br />

other two vortices have to be before they are allowed to be coalesced into one combined vortex. For details, see<br />

Coalescing.<br />

There are separate threshold values depending on whether the two vortices have equal or opposite signs of<br />

vorticity. So if one of the two vortices is clockwise and the other is anti-clockwise then the opposite sign threshold<br />

will be used, whereas if they are both clockwise or both anti-clockwise then the same sign threshold will be used.<br />

Reducing the thresholds makes the model coalesce vortices less often, so the model will have to keep track of more<br />

vortices and the simulation will therefore be slower. Conversely, increasing the thresholds makes the model<br />

coalesce more readily, so fewer vortices need to be tracked and the simulation is faster, but less accurate.<br />

Our experience so far is that the default values of 0.04 for both thresholds gives a reasonable balance between<br />

performance and accuracy. If the mass ratio (= mass of line / mass of water displaced) is low then the fluid forces<br />

are more significant, and in these cases lower coalescing thresholds may be needed so that the fluid behaviour is<br />

more accurately modelled.<br />

Vortex Decay Constant, Vortex Decay Threshold 1, Vortex Decay Threshold 2<br />

These data items set the rate of vortex strength decay in both vortex tracking models. The decay model is described<br />

below. It is as in Sarpkaya and Shoaff's report (page 79) and the default values for this data are as given in that<br />

report. We therefore recommend that the default values be used unless you wish to experiment with other values,<br />

for example to calibrate the model.<br />

Vortices are created at the separation points, with an initial vortex strength determined by the tangential velocity at<br />

the separation point. The strength of each vortex then decays at a rate that depends on how far the vortex is away<br />

from the centre of the disc, in the relative flow direction.<br />

Let R be the disc radius (= half the line outer diameter) and D be the distance, measured in the relative flow<br />

direction from the centre of the line to the vortex. In model 1, at each variable time step the vortex strength is scaled<br />

by a factor λ that depends on D as follows:<br />

� If D ≤ DecayThreshold1*R then λ = (1-DecayConstant)<br />

� If D ≥ DecayThreshold2*R then λ = 1<br />

� If DecayThreshold1*R < D < DecayThreshold2*R then λ varies linearly with D, from (1-DecayConstant) to 1.<br />

The effect of this is that while the vortex is less than DecayThreshold1 radii downstream then the vortex loses<br />

DecayConstant of its strength (e.g. DecayConstant=0.01 means 1% decay) per variable time step. While the vortex is<br />

between DecayThreshold1 and DecayThreshold2 radii downstream its rate of decay falls linearly (as a function of<br />

D) to zero. And when the vortex is more than DecayThreshold2 radii downstream then there is no decay.


VIV Toolbox, Time Domain Models<br />

472<br />

w<br />

Clearly DecayConstant must be in the range 0 to 1, and DecayThreshold1 must be less than DecayThreshold2. Note<br />

that DecayThreshold1 and DecayThreshold2 can be set to Infinity. If either of them is Infinity then λ = 1-<br />

DecayConstant always, so the vortices always lose DecayConstant of their strength per variable time step.<br />

The same decay model is used in model 2, except that the factor λ is adjusted to allow for the fact that model 2 uses<br />

the outer time step instead of the variable time step used in model 1. The adjustment results in the same rate of<br />

decay per unit time.<br />

Drag Coefficients<br />

The vortex tracking model includes the drag effects in both the transverse and inline directions, but not in the axial<br />

direction. When the vortex tracking model is used, <strong>OrcaFlex</strong> therefore suppresses the components of the usual<br />

Morison drag force in the transverse and inline directions, but includes the component in the axial direction. The<br />

drag coefficients for the normal directions are therefore not used, but the axial drag coefficient is used.<br />

Results<br />

The Vortex Force is available as line force results variables. This reports the total lift and drag force. Note that this is<br />

the sum of the force generated by the vortex tracking model, which is in the inline and transverse directions and<br />

already includes the drag force in those directions, plus the standard Morison drag force in the axial direction.<br />

The stagnation and separation points are available as line angle results variables.<br />

Transverse VIV Offset is also available as a line position results variable.<br />

9.2.3 VIV Drawing<br />

With the time-domain VIV models you can control how various aspects of VIV are drawn on the 3D view, by setting<br />

data on the VIV Drawing page on the line data form.<br />

Arc Length Intervals<br />

You can control which nodes have VIV detail drawn, by specifying one or more Arc Length Intervals. An arc length<br />

interval specifies a contiguous length of line From one specified arc length To another. The VIV details are drawn<br />

for all nodes whose arc lengths fall in any one of the specified intervals. For convenience '~' in the From column<br />

means End A of the line, and '~' in the To column means End B.<br />

For example, to view the detail for one node only, specify 1 arc length interval and set both its From and To values<br />

equal to the arc length of that node. Whereas to view the detail for the whole line specify 1 arc length interval and<br />

set both its From and To values equal to '~'.<br />

What is Drawn<br />

The following VIV details are drawn for all nodes whose arc lengths fall in any one of the specified arc length<br />

intervals.<br />

For all the time domain VIV models, the vortex force is drawn as a line radiating from the disc centre in the direction<br />

of the vortex force. The line length is scaled so that a vortex force equal to the standard Morison drag force with<br />

Cd=1 in a relative velocity of 1m/s, is represented by a line 1 disc radius long (i.e. just reaching the edge of the disc).<br />

For the vortex tracking models only, and only if the maximum number of vortices logged is set greater than zero,<br />

then the following extra details are drawn.<br />

� The node is drawn as a disc (even if you have not specified nodes drawn as discs) and the stagnation and<br />

separation points are drawn on the edge of the disc.<br />

� The positive and negative vortices are drawn as circles whose areas are proportional to the vortex strengths.<br />

The constant of proportionality can be controlled by setting Area per Unit Strength.<br />

� The centre-lines of the positive and negative vortex sheets, and the wake line are drawn.<br />

Note: The vortices and sheet centre-lines drawn are limited by the specified maximum number of vortices<br />

logged.<br />

For all these items you can control the pen used for drawing. With the vortex tracking models, for example, this<br />

allows you to suppress (by setting the pen style to null) or downplay (by choosing a suitable colour) individual<br />

aspects of the detail.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!